Name: series-workflowsslzn Phase: Succeeded StartedAt: 2026-08-15 05:47:08 +0000 UTC FinishedAt: 2026-08-15 07:18:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[0] Phase: Succeeded StartedAt: 2026-08-15 05:47:08 +0000 UTC FinishedAt: 2026-08-15 06:36:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[0].run-triage Phase: Succeeded StartedAt: 2026-08-15 05:47:08 +0000 UTC FinishedAt: 2026-08-15 06:36:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "dac3e89a2c90c2feeb471e1f22a2512ad424b792", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW88", "RTW88_8822CU" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "dac3e89a2c90c2feeb471e1f22a2512ad424b792", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW88", "RTW88_8822CU" ], "series_id": "ba6e4ef6-48d7-46c2-bc48-540a8aadc97e" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw_usb_probe", "rtw_core_start", "rtw_power_on" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJDVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0d191c2JfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3X2NvcmVfc3RhcnQmIzM0OywKICAgICYjMzQ7cnR3X3Bvd2VyX29uJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIElRIGNhbGlicmF0aW9uIGxvZ2ljIGluIHRoZSBydHc4OCBkcml2ZXIsIHJlcGxhY2luZyBjdXN0b20gMTAtYml0IHR3byYjMzk7cyBjb21wbGVtZW50IGFyaXRobWV0aWMgYW5kIGEgY3VzdG9tIGJ1YmJsZSBzb3J0IHdpdGggc3RhbmRhcmQgc2lnbmVkIGludGVnZXJzIChzMzIpIGFuZCB0aGUga2VybmVsJiMzOTtzIHNvcnQoKSBmdW5jdGlvbi4gV2hpbGUgdGhlIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgYGl2YCBhbmQgYHF2YCBjb3VsZCBwb3RlbnRpYWxseSBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBpZiB0aGUgaGFyZHdhcmUgcmVhZCBsb29wIHRpbWVzIG91dCwgdGhpcyBleGFjdCBzYW1lIGJlaGF2aW9yIGFuZCBzdWJzZXF1ZW50IHJlYWRpbmcgb2YgdGhlc2UgYXJyYXlzIGV4aXN0ZWQgcHJpb3IgdG8gdGhlIHBhdGNoLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgYWxsb2NhdGlvbnMsIG5vciBkb2VzIGl0IGV4cG9zZSBhbnkga2VybmVsIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlLiBBbnkgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWVzIChzdWNoIGFzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMpIHdvdWxkIGJlIGNhdWdodCBieSBzdGFuZGFyZCBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIFJlYWx0ZWsgODgyMkMgd2lyZWxlc3MgZHJpdmVyLCByZXBsYWNpbmcgYSBjdXN0b20gc29ydGluZyBpbXBsZW1lbnRhdGlvbiB3aXRoIHRoZSBzdGFuZGFyZCBzb3J0KCkgZnVuY3Rpb24gYW5kIGNoYW5naW5nIHRoZSBkYXRhIHR5cGVzIGZyb20gdTMyIHRvIHMzMi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gYW5kIGNhbGlicmF0aW9uIHNlcXVlbmNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIHZhcmlhbnQgb2YgdGhlIGRyaXZlciAocnR3ODhfODgyMmN1KSB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDM0M2UxNmUzODE3ZjI1NjM5NGNiMzk0NzE2YmJlNTAxYzMzYmE0MmRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxNSAwNjozMzozMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcbmluZGV4IDI0NGM4MDI2NDc5YzIuLjAxNDBmMmU2NDRjYTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1xuQEAgLTMsNiAmIzQzOzMsNyBAQFxuICAqL1xuIFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvcnQuaFx1MDAzZVxuICNpbmNsdWRlIFwmIzM0O21haW4uaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2NvZXguaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2Z3LmhcJiMzNDtcbkBAIC0xOCw3ICYjNDM7MTksNyBAQFxuICNpbmNsdWRlIFwmIzM0O2JmLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtlZnVzZS5oXCYjMzQ7XG4gXG4tI2RlZmluZSBJUUtfRE9ORV84ODIyQyAweGFhXG4mIzQzOyNkZWZpbmUgSVFLX0RPTkVfODgyMkMgMHhhYTRcbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbiBcdFx0XHRcdCAgICAgdTggcnhfcGF0aCwgYm9vbCBpc190eDJfcGF0aCk7XG5AQCAtMTUzLDg0ICYjNDM7MTU0LDI1IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19yZXN0b3JlX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0fVxuIH1cbiBcbi1zdGF0aWMgdm9pZCBydHc4ODIyY19yZl9taW5tYXhfY21wKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSxcbi1cdFx0XHRcdCAgIHUzMiAqbWluLCB1MzIgKm1heClcbiYjNDM7c3RhdGljIGludCBydHc4ODIyY19kYWNfaXFfY21wX3MzMihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKVxuIHtcbi1cdGlmICh2YWx1ZSBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdGlmICgqbWluIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0XHRpZiAoKm1pbiBcdTAwM2UgdmFsdWUpXG4tXHRcdFx0XHQqbWluID0gdmFsdWU7XG4tXHRcdH0gZWxzZSB7XG4tXHRcdFx0Km1pbiA9IHZhbHVlO1xuLVx0XHR9XG4tXHRcdGlmICgqbWF4IFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0XHRpZiAoKm1heCBcdTAwM2MgdmFsdWUpXG4tXHRcdFx0XHQqbWF4ID0gdmFsdWU7XG4tXHRcdH1cbi1cdH0gZWxzZSB7XG4tXHRcdGlmICgqbWluIFx1MDAzYyAweDIwMCkge1xuLVx0XHRcdGlmICgqbWluIFx1MDAzZSB2YWx1ZSlcbi1cdFx0XHRcdCptaW4gPSB2YWx1ZTtcbi1cdFx0fVxuJiM0MztcdHMzMiB2YWxfYSA9ICooY29uc3QgczMyICopYTtcbiYjNDM7XHRzMzIgdmFsX2IgPSAqKGNvbnN0IHMzMiAqKWI7XG4gXG4tXHRcdGlmICgqbWF4ICBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdFx0Km1heCA9IHZhbHVlO1xuLVx0XHR9IGVsc2Uge1xuLVx0XHRcdGlmICgqbWF4IFx1MDAzYyB2YWx1ZSlcbi1cdFx0XHRcdCptYXggPSB2YWx1ZTtcbi1cdFx0fVxuLVx0fVxuJiM0MztcdHJldHVybiAodmFsX2EgXHUwMDNlIHZhbF9iKSAtICh2YWxfYSBcdTAwM2MgdmFsX2IpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqdjEsIHUzMiAqdjIpXG4te1xuLVx0aWYgKCp2MSBcdTAwM2U9IDB4MjAwIFx1MDAyNlx1MDAyNiAqdjIgXHUwMDNlPSAweDIwMCkge1xuLVx0XHRpZiAoKnYxIFx1MDAzZSAqdjIpXG4tXHRcdFx0c3dhcCgqdjEsICp2Mik7XG4tXHR9IGVsc2UgaWYgKCp2MSBcdTAwM2MgMHgyMDAgXHUwMDI2XHUwMDI2ICp2MiBcdTAwM2MgMHgyMDApIHtcbi1cdFx0aWYgKCp2MSBcdTAwM2UgKnYyKVxuLVx0XHRcdHN3YXAoKnYxLCAqdjIpO1xuLVx0fSBlbHNlIGlmICgqdjEgXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiAqdjIgXHUwMDNlPSAweDIwMCkge1xuLVx0XHRzd2FwKCp2MSwgKnYyKTtcbi1cdH1cbi19XG4gXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2lxX3NvcnQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdilcbiYjNDM7c3RhdGljIHUzMiBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqdmVjKVxuIHtcbi1cdHUzMiBpLCBqO1xuJiM0MztcdHMzMiBzdW0gPSAwO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgREFDS19TTl84ODIyQyAtIDE7IGkmIzQzOyYjNDM7KSB7XG4tXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIChEQUNLX1NOXzg4MjJDIC0gMSAtIGkpIDsgaiYjNDM7JiM0MzspIHtcbi1cdFx0XHRfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgXHUwMDI2aXZbal0sIFx1MDAyNml2W2ogJiM0MzsgMV0pO1xuLVx0XHRcdF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBcdTAwMjZxdltqXSwgXHUwMDI2cXZbaiAmIzQzOyAxXSk7XG4tXHRcdH1cbi1cdH1cbi19XG4tXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnZlYywgdTMyICp2YWwpXG4te1xuLVx0dTMyIHAsIG0sIHQsIGk7XG4tXG4tXHRtID0gMDtcbi1cdHAgPSAwO1xuLVx0Zm9yIChpID0gMTA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkMgLSAxMDsgaSYjNDM7JiM0MzspIHtcbi1cdFx0aWYgKHZlY1tpXSBcdTAwM2UgMHgyMDApXG4tXHRcdFx0bSA9ICgweDQwMCAtIHZlY1tpXSkgJiM0MzsgbTtcbi1cdFx0ZWxzZVxuLVx0XHRcdHAgPSB2ZWNbaV0gJiM0MzsgcDtcbi1cdH1cbiYjNDM7XHRmb3IgKHUzMiBpID0gMTA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkMgLSAxMDsgaSYjNDM7JiM0MzspXG4mIzQzO1x0XHRzdW0gJiM0Mzs9IHZlY1tpXTtcbiBcbi1cdGlmIChwIFx1MDAzZSBtKSB7XG4tXHRcdHQgPSBwIC0gbTtcbi1cdFx0dCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbi1cdH0gZWxzZSB7XG4tXHRcdHQgPSBtIC0gcDtcbi1cdFx0dCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbi1cdFx0aWYgKHQgIT0gMHgwKVxuLVx0XHRcdHQgPSAweDQwMCAtIHQ7XG4tXHR9XG4mIzQzO1x0czMyIGF2ZyA9IHN1bSAvIChEQUNLX1NOXzg4MjJDIC0gMjApO1xuIFxuLVx0KnZhbCA9IHQ7XG4mIzQzO1x0cmV0dXJuIGF2ZyBcdTAwM2U9IDAgPyAodTMyKWF2ZyA6ICh1MzIpKDB4NDAwICYjNDM7IGF2Zyk7XG4gfVxuIFxuIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxuQEAgLTI3MSwyOSAmIzQzOzIxMywyNyBAQCBzdGF0aWMgdTMyIHJ0dzg4MjJjX2dldF9wYXRoX3JlYWRfYWRkcih1OCBwYXRoKVxuIFx0cmV0dXJuIGJhc2VfYWRkcjtcbiB9XG4gXG4tc3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSlcbiYjNDM7c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiB2YWx1ZSlcbiB7XG4tXHRib29sIHJldCA9IHRydWU7XG4gXG4tXHRpZiAoKHZhbHVlIFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2ICgweDQwMCAtIHZhbHVlKSBcdTAwM2UgMHg2NCkgfHxcbi1cdCAgICAodmFsdWUgXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiB2YWx1ZSBcdTAwM2UgMHg2NCkpIHtcbi1cdFx0cmV0ID0gZmFsc2U7XG4mIzQzO1x0aWYgKHZhbHVlIFx1MDAzZSAxMDAgfHwgdmFsdWUgXHUwMDNjIC0xMDApIHtcbiBcdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCBcJiMzNDtbREFDS10gRXJyb3Igb3ZlcmZsb3dcXG5cJiMzNDspO1xuJiM0MztcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuLVx0cmV0dXJuIHJldDtcbiYjNDM7XHRyZXR1cm4gdHJ1ZTtcbiB9XG4gXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdilcbiYjNDM7c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyICppdiwgczMyICpxdilcbiB7XG4gXHR1MzIgdGVtcDtcbiBcdGludCBpID0gMCwgY250ID0gMDtcbiBcbiBcdHdoaWxlIChpIFx1MDAzYyBEQUNLX1NOXzg4MjJDIFx1MDAyNlx1MDAyNiBjbnQgXHUwMDNjIDEwMDAwKSB7XG4gXHRcdGNudCYjNDM7JiM0Mzs7XG4tXHRcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcbi1cdFx0aXZbaV0gPSAodGVtcCBcdTAwMjYgMHgzZmYwMDApIFx1MDAzZVx1MDAzZSAxMjtcbi1cdFx0cXZbaV0gPSB0ZW1wIFx1MDAyNiAweDNmZjtcbiYjNDM7XHRcdHRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTtcbiYjNDM7XHRcdGl2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4mIzQzO1x0XHRxdltpXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApO1xuIFxuIFx0XHRpZiAocnR3ODgyMmNfZGFjX2lxX2NoZWNrKHJ0d2RldiwgaXZbaV0pIFx1MDAyNlx1MDAyNlxuIFx0XHQgICAgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHJ0d2RldiwgcXZbaV0pKVxuQEAgLTMwMiwxMyAmIzQzOzI0MiwxMyBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KVxuIH1cbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLVx0XHRcdFx0ICAgICAgIHUzMiAqaXYsIHUzMiAqcXYsXG4mIzQzO1x0XHRcdFx0ICAgICAgIHMzMiAqaXYsIHMzMiAqcXYsXG4gXHRcdFx0XHQgICAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXG4ge1xuLVx0dTMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDtcbiYjNDM7XHRzMzIgaV9tYXggPSAwLCBxX21heCA9IDAsIGlfbWluID0gMCwgcV9taW4gPSAwO1xuIFx0dTMyIGlfZGVsdGEsIHFfZGVsdGE7XG4gXHR1MzIgdGVtcDtcbi1cdGludCBpLCBjbnQgPSAwO1xuJiM0MztcdHUzMiBpLCBjbnQgPSAwO1xuIFxuIFx0ZG8ge1xuIFx0XHRpX21pbiA9IGl2WzBdO1xuQEAgLTMxNiwyMyAmIzQzOzI1NiwxOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0XHRxX21pbiA9IHF2WzBdO1xuIFx0XHRxX21heCA9IHF2WzBdO1xuIFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBEQUNLX1NOXzg4MjJDOyBpJiM0MzsmIzQzOykge1xuLVx0XHRcdHJ0dzg4MjJjX3JmX21pbm1heF9jbXAocnR3ZGV2LCBpdltpXSwgXHUwMDI2aV9taW4sIFx1MDAyNmlfbWF4KTtcbi1cdFx0XHRydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgcXZbaV0sIFx1MDAyNnFfbWluLCBcdTAwMjZxX21heCk7XG4mIzQzO1x0XHRcdGlmIChpdltpXSBcdTAwM2MgaV9taW4pXG4mIzQzO1x0XHRcdFx0aV9taW4gPSBpdltpXTtcbiYjNDM7XHRcdFx0aWYgKGl2W2ldIFx1MDAzZSBpX21heClcbiYjNDM7XHRcdFx0XHRpX21heCA9IGl2W2ldO1xuJiM0MztcdFx0XHRpZiAocXZbaV0gXHUwMDNjIHFfbWluKVxuJiM0MztcdFx0XHRcdHFfbWluID0gcXZbaV07XG4mIzQzO1x0XHRcdGlmIChxdltpXSBcdTAwM2UgcV9tYXgpXG4mIzQzO1x0XHRcdFx0cV9tYXggPSBxdltpXTtcbiBcdFx0fVxuIFxuLVx0XHRpZiAoaV9tYXggXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiBpX21pbiBcdTAwM2MgMHgyMDApXG4tXHRcdFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XG4tXHRcdGVsc2UgaWYgKGlfbWF4IFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2IGlfbWluIFx1MDAzZT0gMHgyMDApXG4tXHRcdFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XG4tXHRcdGVsc2Vcbi1cdFx0XHRpX2RlbHRhID0gaV9tYXggJiM0MzsgKDB4NDAwIC0gaV9taW4pO1xuJiM0MztcdFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XG4mIzQzO1x0XHRxX2RlbHRhID0gcV9tYXggLSBxX21pbjtcbiBcbi1cdFx0aWYgKHFfbWF4IFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgcV9taW4gXHUwMDNjIDB4MjAwKVxuLVx0XHRcdHFfZGVsdGEgPSBxX21heCAtIHFfbWluO1xuLVx0XHRlbHNlIGlmIChxX21heCBcdTAwM2U9IDB4MjAwIFx1MDAyNlx1MDAyNiBxX21pbiBcdTAwM2U9IDB4MjAwKVxuLVx0XHRcdHFfZGVsdGEgPSBxX21heCAtIHFfbWluO1xuLVx0XHRlbHNlXG4tXHRcdFx0cV9kZWx0YSA9IHFfbWF4ICYjNDM7ICgweDQwMCAtIHFfbWluKTtcbiBcbiBcdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLFxuIFx0XHRcdFwmIzM0O1tEQUNLXSBpOiBtaW49MHglMDh4LCBtYXg9MHglMDh4LCBkZWx0YT0weCUwOHhcXG5cJiMzNDssXG5AQCAtMzQxLDI4ICYjNDM7Mjc3LDI5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHRcdFx0XCYjMzQ7W0RBQ0tdIHE6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxcblwmIzM0OyxcbiBcdFx0XHRxX21pbiwgcV9tYXgsIHFfZGVsdGEpO1xuIFxuLVx0XHRydHc4ODIyY19kYWNfaXFfc29ydChydHdkZXYsIGl2LCBxdik7XG4mIzQzO1x0XHRzb3J0KGl2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xuJiM0MztcdFx0c29ydChxdiwgREFDS19TTl84ODIyQywgc2l6ZW9mKHMzMiksIHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyLCBOVUxMKTtcbiBcbiBcdFx0aWYgKGlfZGVsdGEgXHUwMDNlIDUgfHwgcV9kZWx0YSBcdTAwM2UgNSkge1xuLVx0XHRcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcbi1cdFx0XHRpdlswXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRcdHF2WzBdID0gdGVtcCBcdTAwMjYgMHgzZmY7XG4tXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpO1xuLVx0XHRcdGl2W0RBQ0tfU05fODgyMkMgLSAxXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IHRlbXAgXHUwMDI2IDB4M2ZmO1xuJiM0MztcdFx0XHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XG4mIzQzO1x0XHRcdGl2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4mIzQzO1x0XHRcdHF2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XG4mIzQzO1x0XHRcdHRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTtcbiYjNDM7XHRcdFx0aXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4mIzQzO1x0XHRcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9IHdoaWxlIChjbnQmIzQzOyYjNDM7IFx1MDAzYyAxMDApO1xuIFxuLVx0cnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIGl2LCBpX3ZhbHVlKTtcbi1cdHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdiwgcV92YWx1ZSk7XG4mIzQzO1x0KmlfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgaXYpO1xuJiM0MztcdCpxX3ZhbHVlID0gcnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIHF2KTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHRcdFx0XHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxuIHtcbi1cdHUzMiBpdltEQUNLX1NOXzg4MjJDXSwgcXZbREFDS19TTl84ODIyQ107XG4mIzQzO1x0czMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTtcbiBcdHUzMiByZl9hLCByZl9iO1xuIFxuIFx0cmZfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweDAsIFJGUkVHX01BU0spO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuaW5kZXggZmM2MmI2N2ExNWYyMS4uN2JlYTk5NjE0MzU0YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oXG5AQCAtMTQxLDYgJiM0MzsxNDEsOSBAQCBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlIG5hbWUgIyMgX3RibCA9IHtcdFx0XHRcXFxuICNkZWZpbmUgREFDS19SRl84ODIyQ1x0XHQxXG4gI2RlZmluZSBEQUNLX1NOXzg4MjJDXHRcdDEwMFxuIFxuJiM0MzsjZGVmaW5lIFJUVzg4MjJDX0RBQ19JVl9NQVNLIEdFTk1BU0soMjEsIDEyKVxuJiM0MzsjZGVmaW5lIFJUVzg4MjJDX0RBQ19RVl9NQVNLIEdFTk1BU0soOSwgMClcbiYjNDM7XG4gLyogcGh5IHN0YXR1cyBwYWdlMCAqL1xuICNkZWZpbmUgR0VUX1BIWV9TVEFUX1AwX1BXREJfQShwaHlfc3RhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuIFx0bGUzMl9nZXRfYml0cygqKChfX2xlMzIgKikocGh5X3N0YXQpICYjNDM7IDB4MDApLCBHRU5NQVNLKDE1LCA4KSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODgmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMkNVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnR3X3VzYl9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHdfY29yZV9zdGFydCYjMzQ7LAogICAgJiMzNDtydHdfcG93ZXJfb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBpbml0aWFsaXphdGlvbiBhbmQgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgdmFyaWFudCBvZiB0aGUgZHJpdmVyIChydHc4OF84ODIyY3UpIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzQzZTE2ZTM4MTdmMjU2Mzk0Y2IzOTQ3MTZiYmU1MDFjMzNiYTQyZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDE1IDA2OjMzOjMyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jCmluZGV4IDI0NGM4MDI2NDc5YzIuLjAxNDBmMmU2NDRjYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMKQEAgLTMsNiAmIzQzOzMsNyBAQAogICovCiAKICNpbmNsdWRlICZsdDtsaW51eC9tb2R1bGUuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvc29ydC5oJmd0OwogI2luY2x1ZGUgJiMzNDttYWluLmgmIzM0OwogI2luY2x1ZGUgJiMzNDtjb2V4LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtmdy5oJiMzNDsKQEAgLTE4LDcgJiM0MzsxOSw3IEBACiAjaW5jbHVkZSAmIzM0O2JmLmgmIzM0OwogI2luY2x1ZGUgJiMzNDtlZnVzZS5oJiMzNDsKIAotI2RlZmluZSBJUUtfRE9ORV84ODIyQyAweGFhCiYjNDM7I2RlZmluZSBJUUtfRE9ORV84ODIyQyAweGFhNAogCiBzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCwKIAkJCQkgICAgIHU4IHJ4X3BhdGgsIGJvb2wgaXNfdHgyX3BhdGgpOwpAQCAtMTUzLDg0ICYjNDM7MTU0LDI1IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19yZXN0b3JlX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LAogCX0KIH0KIAotc3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfbWlubWF4X2NtcChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgdmFsdWUsCi0JCQkJICAgdTMyICptaW4sIHUzMiAqbWF4KQomIzQzO3N0YXRpYyBpbnQgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKLQlpZiAodmFsdWUgJmd0Oz0gMHgyMDApIHsKLQkJaWYgKCptaW4gJmd0Oz0gMHgyMDApIHsKLQkJCWlmICgqbWluICZndDsgdmFsdWUpCi0JCQkJKm1pbiA9IHZhbHVlOwotCQl9IGVsc2UgewotCQkJKm1pbiA9IHZhbHVlOwotCQl9Ci0JCWlmICgqbWF4ICZndDs9IDB4MjAwKSB7Ci0JCQlpZiAoKm1heCAmbHQ7IHZhbHVlKQotCQkJCSptYXggPSB2YWx1ZTsKLQkJfQotCX0gZWxzZSB7Ci0JCWlmICgqbWluICZsdDsgMHgyMDApIHsKLQkJCWlmICgqbWluICZndDsgdmFsdWUpCi0JCQkJKm1pbiA9IHZhbHVlOwotCQl9CiYjNDM7CXMzMiB2YWxfYSA9ICooY29uc3QgczMyICopYTsKJiM0MzsJczMyIHZhbF9iID0gKihjb25zdCBzMzIgKiliOwogCi0JCWlmICgqbWF4ICAmZ3Q7PSAweDIwMCkgewotCQkJKm1heCA9IHZhbHVlOwotCQl9IGVsc2UgewotCQkJaWYgKCptYXggJmx0OyB2YWx1ZSkKLQkJCQkqbWF4ID0gdmFsdWU7Ci0JCX0KLQl9CiYjNDM7CXJldHVybiAodmFsX2EgJmd0OyB2YWxfYikgLSAodmFsX2EgJmx0OyB2YWxfYik7CiB9CiAKLXN0YXRpYyB2b2lkIF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICp2MSwgdTMyICp2MikKLXsKLQlpZiAoKnYxICZndDs9IDB4MjAwICZhbXA7JmFtcDsgKnYyICZndDs9IDB4MjAwKSB7Ci0JCWlmICgqdjEgJmd0OyAqdjIpCi0JCQlzd2FwKCp2MSwgKnYyKTsKLQl9IGVsc2UgaWYgKCp2MSAmbHQ7IDB4MjAwICZhbXA7JmFtcDsgKnYyICZsdDsgMHgyMDApIHsKLQkJaWYgKCp2MSAmZ3Q7ICp2MikKLQkJCXN3YXAoKnYxLCAqdjIpOwotCX0gZWxzZSBpZiAoKnYxICZsdDsgMHgyMDAgJmFtcDsmYW1wOyAqdjIgJmd0Oz0gMHgyMDApIHsKLQkJc3dhcCgqdjEsICp2Mik7Ci0JfQotfQogCi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfaXFfc29ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KQomIzQzO3N0YXRpYyB1MzIgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKnZlYykKIHsKLQl1MzIgaSwgajsKJiM0MzsJczMyIHN1bSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpICZsdDsgREFDS19TTl84ODIyQyAtIDE7IGkmIzQzOyYjNDM7KSB7Ci0JCWZvciAoaiA9IDA7IGogJmx0OyAoREFDS19TTl84ODIyQyAtIDEgLSBpKSA7IGomIzQzOyYjNDM7KSB7Ci0JCQlfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgJmFtcDtpdltqXSwgJmFtcDtpdltqICYjNDM7IDFdKTsKLQkJCV9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCAmYW1wO3F2W2pdLCAmYW1wO3F2W2ogJiM0MzsgMV0pOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqdmVjLCB1MzIgKnZhbCkKLXsKLQl1MzIgcCwgbSwgdCwgaTsKLQotCW0gPSAwOwotCXAgPSAwOwotCWZvciAoaSA9IDEwOyBpICZsdDsgREFDS19TTl84ODIyQyAtIDEwOyBpJiM0MzsmIzQzOykgewotCQlpZiAodmVjW2ldICZndDsgMHgyMDApCi0JCQltID0gKDB4NDAwIC0gdmVjW2ldKSAmIzQzOyBtOwotCQllbHNlCi0JCQlwID0gdmVjW2ldICYjNDM7IHA7Ci0JfQomIzQzOwlmb3IgKHUzMiBpID0gMTA7IGkgJmx0OyBEQUNLX1NOXzg4MjJDIC0gMTA7IGkmIzQzOyYjNDM7KQomIzQzOwkJc3VtICYjNDM7PSB2ZWNbaV07CiAKLQlpZiAocCAmZ3Q7IG0pIHsKLQkJdCA9IHAgLSBtOwotCQl0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApOwotCX0gZWxzZSB7Ci0JCXQgPSBtIC0gcDsKLQkJdCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTsKLQkJaWYgKHQgIT0gMHgwKQotCQkJdCA9IDB4NDAwIC0gdDsKLQl9CiYjNDM7CXMzMiBhdmcgPSBzdW0gLyAoREFDS19TTl84ODIyQyAtIDIwKTsKIAotCSp2YWwgPSB0OwomIzQzOwlyZXR1cm4gYXZnICZndDs9IDAgPyAodTMyKWF2ZyA6ICh1MzIpKDB4NDAwICYjNDM7IGF2Zyk7CiB9CiAKIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKQpAQCAtMjcxLDI5ICYjNDM7MjEzLDI3IEBAIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfcmVhZF9hZGRyKHU4IHBhdGgpCiAJcmV0dXJuIGJhc2VfYWRkcjsKIH0KIAotc3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSkKJiM0MztzdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyIHZhbHVlKQogewotCWJvb2wgcmV0ID0gdHJ1ZTsKIAotCWlmICgodmFsdWUgJmd0Oz0gMHgyMDAgJmFtcDsmYW1wOyAoMHg0MDAgLSB2YWx1ZSkgJmd0OyAweDY0KSB8fAotCSAgICAodmFsdWUgJmx0OyAweDIwMCAmYW1wOyZhbXA7IHZhbHVlICZndDsgMHg2NCkpIHsKLQkJcmV0ID0gZmFsc2U7CiYjNDM7CWlmICh2YWx1ZSAmZ3Q7IDEwMCB8fCB2YWx1ZSAmbHQ7IC0xMDApIHsKIAkJcnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCAmIzM0O1tEQUNLXSBFcnJvciBvdmVyZmxvd1xuJiMzNDspOwomIzQzOwkJcmV0dXJuIGZhbHNlOwogCX0KIAotCXJldHVybiByZXQ7CiYjNDM7CXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KQomIzQzO3N0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqaXYsIHMzMiAqcXYpCiB7CiAJdTMyIHRlbXA7CiAJaW50IGkgPSAwLCBjbnQgPSAwOwogCiAJd2hpbGUgKGkgJmx0OyBEQUNLX1NOXzg4MjJDICZhbXA7JmFtcDsgY250ICZsdDsgMTAwMDApIHsKIAkJY250JiM0MzsmIzQzOzsKLQkJdGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpOwotCQlpdltpXSA9ICh0ZW1wICZhbXA7IDB4M2ZmMDAwKSAmZ3Q7Jmd0OyAxMjsKLQkJcXZbaV0gPSB0ZW1wICZhbXA7IDB4M2ZmOwomIzQzOwkJdGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpOwomIzQzOwkJaXZbaV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19JVl9NQVNLLCB0ZW1wKTsKJiM0MzsJCXF2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7CiAKIAkJaWYgKHJ0dzg4MjJjX2RhY19pcV9jaGVjayhydHdkZXYsIGl2W2ldKSAmYW1wOyZhbXA7CiAJCSAgICBydHc4ODIyY19kYWNfaXFfY2hlY2socnR3ZGV2LCBxdltpXSkpCkBAIC0zMDIsMTMgJiM0MzsyNDIsMTMgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdikKIH0KIAogc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwKLQkJCQkgICAgICAgdTMyICppdiwgdTMyICpxdiwKJiM0MzsJCQkJICAgICAgIHMzMiAqaXYsIHMzMiAqcXYsCiAJCQkJICAgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKQogewotCXUzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7CiYjNDM7CXMzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7CiAJdTMyIGlfZGVsdGEsIHFfZGVsdGE7CiAJdTMyIHRlbXA7Ci0JaW50IGksIGNudCA9IDA7CiYjNDM7CXUzMiBpLCBjbnQgPSAwOwogCiAJZG8gewogCQlpX21pbiA9IGl2WzBdOwpAQCAtMzE2LDIzICYjNDM7MjU2LDE5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsCiAJCXFfbWluID0gcXZbMF07CiAJCXFfbWF4ID0gcXZbMF07CiAJCWZvciAoaSA9IDA7IGkgJmx0OyBEQUNLX1NOXzg4MjJDOyBpJiM0MzsmIzQzOykgewotCQkJcnR3ODgyMmNfcmZfbWlubWF4X2NtcChydHdkZXYsIGl2W2ldLCAmYW1wO2lfbWluLCAmYW1wO2lfbWF4KTsKLQkJCXJ0dzg4MjJjX3JmX21pbm1heF9jbXAocnR3ZGV2LCBxdltpXSwgJmFtcDtxX21pbiwgJmFtcDtxX21heCk7CiYjNDM7CQkJaWYgKGl2W2ldICZsdDsgaV9taW4pCiYjNDM7CQkJCWlfbWluID0gaXZbaV07CiYjNDM7CQkJaWYgKGl2W2ldICZndDsgaV9tYXgpCiYjNDM7CQkJCWlfbWF4ID0gaXZbaV07CiYjNDM7CQkJaWYgKHF2W2ldICZsdDsgcV9taW4pCiYjNDM7CQkJCXFfbWluID0gcXZbaV07CiYjNDM7CQkJaWYgKHF2W2ldICZndDsgcV9tYXgpCiYjNDM7CQkJCXFfbWF4ID0gcXZbaV07CiAJCX0KIAotCQlpZiAoaV9tYXggJmx0OyAweDIwMCAmYW1wOyZhbXA7IGlfbWluICZsdDsgMHgyMDApCi0JCQlpX2RlbHRhID0gaV9tYXggLSBpX21pbjsKLQkJZWxzZSBpZiAoaV9tYXggJmd0Oz0gMHgyMDAgJmFtcDsmYW1wOyBpX21pbiAmZ3Q7PSAweDIwMCkKLQkJCWlfZGVsdGEgPSBpX21heCAtIGlfbWluOwotCQllbHNlCi0JCQlpX2RlbHRhID0gaV9tYXggJiM0MzsgKDB4NDAwIC0gaV9taW4pOwomIzQzOwkJaV9kZWx0YSA9IGlfbWF4IC0gaV9taW47CiYjNDM7CQlxX2RlbHRhID0gcV9tYXggLSBxX21pbjsKIAotCQlpZiAocV9tYXggJmx0OyAweDIwMCAmYW1wOyZhbXA7IHFfbWluICZsdDsgMHgyMDApCi0JCQlxX2RlbHRhID0gcV9tYXggLSBxX21pbjsKLQkJZWxzZSBpZiAocV9tYXggJmd0Oz0gMHgyMDAgJmFtcDsmYW1wOyBxX21pbiAmZ3Q7PSAweDIwMCkKLQkJCXFfZGVsdGEgPSBxX21heCAtIHFfbWluOwotCQllbHNlCi0JCQlxX2RlbHRhID0gcV9tYXggJiM0MzsgKDB4NDAwIC0gcV9taW4pOwogCiAJCXJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSywKIAkJCSYjMzQ7W0RBQ0tdIGk6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxuJiMzNDssCkBAIC0zNDEsMjggJiM0MzsyNzcsMjkgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwKIAkJCSYjMzQ7W0RBQ0tdIHE6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxuJiMzNDssCiAJCQlxX21pbiwgcV9tYXgsIHFfZGVsdGEpOwogCi0JCXJ0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgaXYsIHF2KTsKJiM0MzsJCXNvcnQoaXYsIERBQ0tfU05fODgyMkMsIHNpemVvZihzMzIpLCBydHc4ODIyY19kYWNfaXFfY21wX3MzMiwgTlVMTCk7CiYjNDM7CQlzb3J0KHF2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpOwogCiAJCWlmIChpX2RlbHRhICZndDsgNSB8fCBxX2RlbHRhICZndDsgNSkgewotCQkJdGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpOwotCQkJaXZbMF0gPSAodGVtcCAmYW1wOyAweDNmZjAwMCkgJmd0OyZndDsgMTI7Ci0JCQlxdlswXSA9IHRlbXAgJmFtcDsgMHgzZmY7Ci0JCQl0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7Ci0JCQlpdltEQUNLX1NOXzg4MjJDIC0gMV0gPSAodGVtcCAmYW1wOyAweDNmZjAwMCkgJmd0OyZndDsgMTI7Ci0JCQlxdltEQUNLX1NOXzg4MjJDIC0gMV0gPSB0ZW1wICZhbXA7IDB4M2ZmOwomIzQzOwkJCXRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTsKJiM0MzsJCQlpdlswXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApOwomIzQzOwkJCXF2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7CiYjNDM7CQkJdGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpOwomIzQzOwkJCWl2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApOwomIzQzOwkJCXF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApOwogCQl9IGVsc2UgewogCQkJYnJlYWs7CiAJCX0KIAl9IHdoaWxlIChjbnQmIzQzOyYjNDM7ICZsdDsgMTAwKTsKIAotCXJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBpdiwgaV92YWx1ZSk7Ci0JcnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIHF2LCBxX3ZhbHVlKTsKJiM0MzsJKmlfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgaXYpOwomIzQzOwkqcV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdik7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LAogCQkJCSAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpCiB7Ci0JdTMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTsKJiM0MzsJczMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTsKIAl1MzIgcmZfYSwgcmZfYjsKIAogCXJmX2EgPSBydHdfcmVhZF9yZihydHdkZXYsIFJGX1BBVEhfQSwgMHgwLCBSRlJFR19NQVNLKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaAppbmRleCBmYzYyYjY3YTE1ZjIxLi43YmVhOTk2MTQzNTRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oCkBAIC0xNDEsNiAmIzQzOzE0MSw5IEBAIGNvbnN0IHN0cnVjdCBydHdfdGFibGUgbmFtZSAjIyBfdGJsID0gewkJCVwKICNkZWZpbmUgREFDS19SRl84ODIyQwkJMQogI2RlZmluZSBEQUNLX1NOXzg4MjJDCQkxMDAKIAomIzQzOyNkZWZpbmUgUlRXODgyMkNfREFDX0lWX01BU0sgR0VOTUFTSygyMSwgMTIpCiYjNDM7I2RlZmluZSBSVFc4ODIyQ19EQUNfUVZfTUFTSyBHRU5NQVNLKDksIDApCiYjNDM7CiAvKiBwaHkgc3RhdHVzIHBhZ2UwICovCiAjZGVmaW5lIEdFVF9QSFlfU1RBVF9QMF9QV0RCX0EocGh5X3N0YXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCWxlMzJfZ2V0X2JpdHMoKigoX19sZTMyICopKHBoeV9zdGF0KSAmIzQzOyAweDAwKSwgR0VOTUFTSygxNSwgOCkpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNzQKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA2MjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBhZmZlY3RpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY2AuIEl0JiMzOTtzIHR3ZWFraW5nIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gcHJvY2VzcyB3aXRoaW4gdGhlIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zLiBTZWVtcyBsaWtlIHRoZXkmIzM5O3JlIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0IHdpdGggdGhlIHN0YW5kYXJkIGBzb3J0KClgIGZ1bmN0aW9uIGZyb20gYGxpbnV4L3NvcnQuaGAsIHdoaWNoIGlzIHVzdWFsbHkgYSBnb29kIHNpZ24gZm9yIG1haW50YWluYWJpbGl0eSBhbmQgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cy4gVGhleSYjMzk7dmUgYWxzbyBzd2l0Y2hlZCB0aGUgYGl2YCBhbmQgYHF2YCBhcnJheXMgdG8gYHMzMmAgYW5kIGFyZSBub3cgdXNpbmcgYEZJRUxEX0dFVF9TSUdORURgIGZvciByZWdpc3RlciB2YWx1ZSBleHRyYWN0aW9uLCBhbmQgcmlwcGVkIG91dCBhIGJ1bmNoIG9mIGN1c3RvbSBzb3J0IGZ1bmN0aW9ucy4gRmluYWxseSBgcnR3ODgyMmNfZGFjX2lxX29mZnNldGAgaGFzIGJlZW4gdXBkYXRlZCB0byBhY2NvbW1vZGF0ZSB0aGUgYHMzMmAgY2hhbmdlLgoKVGhlIGtleSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5ICpmdXp6KiB0aGlzPyBMZXQmIzM5O3MgZmlndXJlIG91dCBpZiB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBpZiBmdXp6aW5nIGl0IGlzIHByYWN0aWNhbC4gVGhlIGRyaXZlciBpcyBgcnR3ODhgLCB3aGljaCBJIGtub3cgaXMgYSBSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGFkYXB0ZXIgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBydHc4ODIyY2AgdmFyaWFudCwgd2hpY2ggaXMgZm9yIHRoZSBSVEw4ODIyQy4gU2luY2UgaXQmIzM5O3MgYSBXaS1GaSBkcml2ZXIsIHRoYXQgc2NyZWFtcyBwaHlzaWNhbCBoYXJkd2FyZSB0byBtZS4gUmVhbHRlayBXaS1GaSBjYXJkcyBhcmUgKmRlZmluaXRlbHkqIHBoeXNpY2FsIGhhcmR3YXJlLgoKTm93LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSB2ZXJ5IHNwZWNpZmljOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnMgLi4uIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIC4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7LiBPa2F5LCBzbyBpcyBhIFdpLUZpIGRyaXZlciBsaWtlIGBydHc4OGAgZW11bGF0ZWQgaW4gUUVNVT8gVXN1YWxseSwgbm8uIFdpLUZpIGRyaXZlcnMgdHlwaWNhbGx5IG5lZWQgcGh5c2ljYWwgaGFyZHdhcmUgKFBDSWUgb3IgVVNCKS4gU28gd2UgbmVlZCB0byBjb25zaWRlciBob3cgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBjb25uZWN0ZWQuCgpUaGUgY3JpdGljYWwgcGF0aCBoZXJlIGlzIHRvIGRldGVybWluZSBpZiB3ZSBjYW4gZnV6eiB0aGlzLiBEb2VzIGBydHc4OGAgaGF2ZSBhIFVTQiwgU0RJTywgb3IgaXMgaXQgb25seSBQQ0llPyBJZiBpdCYjMzk7cyBVU0IsIHdlICptaWdodCogYmUgYWJsZSB0byBmdXp6IGl0IHVzaW5nIFVTQiBnYWRnZXQgb3IgZHVtbXlfaGNkIChzeXprYWxsZXIgc3VwcG9ydHMgVVNCIGZ1enppbmcpLiBTRElPIGlzIHByb2JhYmx5IGEgbm8tZ28gZm9yIGZ1enppbmcgZWFzaWx5LiBQQ0llIGlzIGxpa2VseSBhIG5vLWdvIHRvbywgdW5sZXNzIHRoZSBQQ0kgZnV6emluZyBzdXBwb3J0IGluIHN5emthbGxlciBpcyBzdHJvbmcgZW5vdWdoLiBUaGUgaW5zdHJ1Y3Rpb25zIHN0YXRlICYjMzQ7Q29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlJiMzNDsuCgpTbywgSSBuZWVkIHRvIGNoZWNrIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2AgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBoaW50IG9mIFVTQiBzdXBwb3J0LiBJZiBpdCYjMzk7cyBwdXJlIFBDSWUsIGl0JiMzOTtzIHByb2JhYmx5IG5vdCB3b3J0aCBmdXp6aW5nLCBiYXNlZCBvbiB0aGUgcHJvbXB0JiMzOTtzIGluc3RydWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2JmLmMmIzM0OywKICAgICYjMzQ7YmYuaCYjMzQ7LAogICAgJiMzNDtjb2V4LmMmIzM0OywKICAgICYjMzQ7Y29leC5oJiMzNDssCiAgICAmIzM0O2RlYnVnLmMmIzM0OywKICAgICYjMzQ7ZGVidWcuaCYjMzQ7LAogICAgJiMzNDtlZnVzZS5jJiMzNDssCiAgICAmIzM0O2VmdXNlLmgmIzM0OywKICAgICYjMzQ7ZncuYyYjMzQ7LAogICAgJiMzNDtmdy5oJiMzNDssCiAgICAmIzM0O2hjaS5oJiMzNDssCiAgICAmIzM0O2xlZC5jJiMzNDssCiAgICAmIzM0O2xlZC5oJiMzNDssCiAgICAmIzM0O21hYy5jJiMzNDssCiAgICAmIzM0O21hYy5oJiMzNDssCiAgICAmIzM0O21hYzgwMjExLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21haW4uaCYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtwY2kuaCYjMzQ7LAogICAgJiMzNDtwaHkuYyYjMzQ7LAogICAgJiMzNDtwaHkuaCYjMzQ7LAogICAgJiMzNDtwcy5jJiMzNDssCiAgICAmIzM0O3BzLmgmIzM0OywKICAgICYjMzQ7cmVnLmgmIzM0OywKICAgICYjMzQ7cmVnZC5jJiMzNDssCiAgICAmIzM0O3JlZ2QuaCYjMzQ7LAogICAgJiMzNDtydHc4NzAzYi5jJiMzNDssCiAgICAmIzM0O3J0dzg3MDNiLmgmIzM0OywKICAgICYjMzQ7cnR3ODcwM2JfdGFibGVzLmMmIzM0OywKICAgICYjMzQ7cnR3ODcwM2JfdGFibGVzLmgmIzM0OywKICAgICYjMzQ7cnR3ODcyM2NzLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2QuYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzZC5oJiMzNDssCiAgICAmIzM0O3J0dzg3MjNkX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2RfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4NzIzZGUuYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzZHMuYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzZHUuYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzeC5jJiMzNDssCiAgICAmIzM0O3J0dzg3MjN4LmgmIzM0OywKICAgICYjMzQ7cnR3ODgxMmEuYyYjMzQ7LAogICAgJiMzNDtydHc4ODEyYS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MTJhX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgxMmFfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4ODEyYXUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODE0YS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MTRhLmgmIzM0OywKICAgICYjMzQ7cnR3ODgxNGFfdGFibGUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODE0YV90YWJsZS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MTRhZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MTRhdS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFhLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWEuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIxYV90YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFhX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMWF1LmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWMuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxYy5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjFjX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWNfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIxY2UuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxY3MuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxY3UuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYi5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJiLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMmJfdGFibGUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYl90YWJsZS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjJiZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJicy5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJidS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmMuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIyY190YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMmNlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmNzLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmN1LmMmIzM0OywKICAgICYjMzQ7cnR3ODh4eGEuYyYjMzQ7LAogICAgJiMzNDtydHc4OHh4YS5oJiMzNDssCiAgICAmIzM0O3J4LmMmIzM0OywKICAgICYjMzQ7cnguaCYjMzQ7LAogICAgJiMzNDtzYXIuYyYjMzQ7LAogICAgJiMzNDtzYXIuaCYjMzQ7LAogICAgJiMzNDtzZGlvLmMmIzM0OywKICAgICYjMzQ7c2Rpby5oJiMzNDssCiAgICAmIzM0O3NlYy5jJiMzNDssCiAgICAmIzM0O3NlYy5oJiMzNDssCiAgICAmIzM0O3R4LmMmIzM0OywKICAgICYjMzQ7dHguaCYjMzQ7LAogICAgJiMzNDt1c2IuYyYjMzQ7LAogICAgJiMzNDt1c2IuaCYjMzQ7LAogICAgJiMzNDt1dGlsLmMmIzM0OywKICAgICYjMzQ7dXRpbC5oJiMzNDssCiAgICAmIzM0O3dvdy5jJiMzNDssCiAgICAmIzM0O3dvdy5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MjkxCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUlRMODgyMkMgRHJpdmVyIFVwZGF0ZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIGRyaXZlciBmaWxlczogYHVzYi5jYCwgYHJ0dzg4MjJjdS5jYCwgYHJ0dzg4MjJjZS5jYCwgYW5kIGBydHc4ODIyY3MuY2AuIFJpZ2h0IGF3YXksIGl0JiMzOTtzIGNsZWFyIHRoZSBSVEw4ODIyQyBjaGlwIGhhcyBVU0IsIFBDSWUsIGFuZCBTRElPIGltcGxlbWVudGF0aW9ucy4gSW50ZXJlc3RpbmcuIFRoZSBzcGVjaWZpYyBmaWxlIHRoYXQmIzM5O3MgYmVlbiBtb2RpZmllZCwgYHJ0dzg4MjJjLmNgLCBpcyB0aGUgY2VudHJhbCBjb3JlIGxvZ2ljIHNoYXJlZCBieSBhbGwgdGhlc2UgaW50ZXJmYWNlIHZhcmlhbnRzLiBHaXZlbiB0aGF0IGl0JiMzOTtzIGFjY2Vzc2libGUgdGhyb3VnaCBVU0IsIG15IGluaXRpYWwgdGhvdWdodCBpczogdGhpcyBpcyByaXBlIGZvciBmdXp6aW5nIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uIGluIHN5emthbGxlci4gVGhhdCYjMzk7cyB0aGUgaWRlYWwgYXBwcm9hY2ggaGVyZSB0byBzdHJlc3MgdGVzdCB0aGUgY29yZSBjaGlwIGZ1bmN0aW9uYWxpdHkuIE5vdywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgIGlzIGNhbGxlZCBmcm9tIOKAkyB0aGF0IHNlZW1zIGxpa2UgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGRpZ2dpbmcgZGVlcGVyIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4MjJjX2RhY19jYWxfcmZfbW9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yNDQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDAtXHRcdFx0XHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMzE9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9hZGMoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY4LVx0XHRydHdfd3JpdGUzMihydHdkZXYsIDB4MWMyNCwgMHgwMDAxMDAwMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY5Olx0XHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcdTAwMjZpYywgXHUwMDI2cWMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM3MC1cdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zODgtXHRcdHJ0d193cml0ZTMyKHJ0d2RldiwgMHgxYzNjLCBwYXRoX3NlbCAmIzQzOyAweDgxMDMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM4OTpcdFx0cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHJ0d2RldiwgXHUwMDI2aWMsIFx1MDAyNnFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zOTAtXHRcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDU0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ3MjpcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFx1MDAyNmljX2luLCBcdTAwMjZxY19pbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDczLVx0aWMgPSBpY19pbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NTAzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTUzLVx0cnR3X3dyaXRlMzIocnR3ZGV2LCBiYXNlX2FkZHIgJiM0MzsgMHg2MCwgMHhmMDAwMDAwMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTU0Olx0cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHJ0d2RldiwgXHUwMDI2aWMsIFx1MDAyNnFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01NTUtXHRpZiAoaWMgXHUwMDNlPSAweDEwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk2OTQKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiA5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipUcmFjaW5nIHRoZSBEQUMgQ2FsaWJyYXRpb24gRmxvdyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBydHc4ODIyY2AgZHJpdmVyIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgRGlnaXRhbC10by1BbmFsb2cgQ29udmVydGVyIChEQUMpIGNhbGlicmF0aW9uIHByb2Nlc3MuIEkmIzM5O3ZlIG5vdGljZWQgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCBpcyBhIGtleSBmdW5jdGlvbiBpbiB0aGlzIGNhbGlicmF0aW9uIHJvdXRpbmUuIFRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoYXQgYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAgZ2V0cyBjYWxsZWQgZnJvbSBtdWx0aXBsZSBwb2ludHMgd2l0aGluIHRoZSBjYWxpYnJhdGlvbiBwcm9jZXNzIGl0c2VsZjogYHJ0dzg4MjJjX2RhY19jYWxfYWRjYCwgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDJgLCBhbmQgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDNgLgoKUmlnaHQgbm93LCBJJiMzOTttIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSBhbmQgZmxvdy4gU28sIEkgbmVlZCB0byBrbm93IHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3N0ZXAyYCBpcyBnZXR0aW5nIGNhbGxlZCBmcm9tLiBUaGF0IHdpbGwgZ2l2ZSBtZSBjb250ZXh0IG9uIHRoZSBzdXJyb3VuZGluZyBzdGVwcyBpbnZvbHZlZC4gQnkgdW5kZXJzdGFuZGluZyB3aGVyZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tLCBJIGNhbiBidWlsZCBhIG1lbnRhbCBtYXAgb2YgdGhlIGVudGlyZSBEQUMgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoaXMgd2lsbCBhbGxvdyBtZSB0byBwcm9wZXJseSBpZGVudGlmeSBhbnkgcG90ZW50aWFsIGlzc3Vlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHc4ODIyY19kYWNfY2FsX3N0ZXAyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQwOT1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXAxKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1NS1cdFx0XHRcdCAgIHU4IHBhdGgsIHUzMiAqaWNfb3V0LCB1MzIgKnFjX291dClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9ODgwPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2RhY19jYWwoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTAxLVx0XHRydHc4ODIyY19kYWNfY2FsX3N0ZXAxKHJ0d2RldiwgUkZfUEFUSF9BKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo5MDI6XHRcdHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIocnR3ZGV2LCBSRl9QQVRIX0EsIFx1MDAyNmljLCBcdTAwMjZxYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTAzLVx0XHRpY19hID0gaWM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkxNy1cdFx0cnR3ODgyMmNfZGFjX2NhbF9zdGVwMShydHdkZXYsIFJGX1BBVEhfQik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6OTE4Olx0XHRydHc4ODIyY19kYWNfY2FsX3N0ZXAyKHJ0d2RldiwgUkZfUEFUSF9CLCBcdTAwMjZpYywgXHUwMDI2cWMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkxOS1cdFx0aWNfYiA9IGljO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNjU0CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBxdWVzdGlvbjoKCioqVHJhY2luZyB0aGUgT3JpZ2lucyBvZiBgcnR3ODgyMmNfcmZfZGFjX2NhbGAqKgoKT2theSwgc28gSSYjMzk7bSBwcmVzZW50ZWQgd2l0aCBgcnR3ODgyMmNfcmZfZGFjX2NhbGAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBjYWxsaW5nIGNvbnRleHQuIFdoZXJlIGlzIHRoaXMgZnVuY3Rpb24gYmVpbmcgaW52b2tlZCBmcm9tPyBUaGF0JiMzOTtzIHRoZSBjb3JlIHF1ZXN0aW9uIGhlcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250cm9sIGZsb3csIHRoZSBzdXJyb3VuZGluZyBsb2dpYywgYW5kIHRoZSBkZXBlbmRlbmNpZXMuIElzIGl0IGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIGR1cmluZyBhY3RpdmUgb3BlcmF0aW9uLCBvciBwZXJoYXBzIGluIHJlc3BvbnNlIHRvIGEgc3BlY2lmaWMgZXZlbnQ/IERldGVybWluaW5nIHRoZSBjYWxsIHN0YWNrIGlzIHBhcmFtb3VudCB0byB1bmRlcnN0YW5kaW5nIGl0cyBwdXJwb3NlIGFuZCBwb3RlbnRpYWwgaW1wYWN0LiBJJiMzOTtsbCBuZWVkIHRvIHVzZSBteSB0eXBpY2FsIGRlYnVnZ2luZyB0b29scyBvciBjb2RlIG5hdmlnYXRpb24gdGVjaG5pcXVlcyDigJMgZGVwZW5kaW5nIG9uIHRoZSBwcm9qZWN0LiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBmdW5jdGlvbiBjYWxsIGFuZCBzZWUgd2hlcmUgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4MjJjX3JmX2RhY19jYWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9ODM5PXN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19jYWxfcmVzdG9yZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6ODgwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2RhY19jYWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04ODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xNzc1PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc3Olx0cnR3ODgyMmNfcmZfZGFjX2NhbChydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3NzgtXHRydHc4ODIyY19yZl94Ml9jaGVjayhydHdkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTI2MwoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgcXVlc3Rpb246CgoqKlRyYWNpbmcgdGhlIENhbGwgT3JpZ2luIG9mIGBydHc4ODIyY19yZl9pbml0YCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBgcnR3ODgyMmNfcmZfaW5pdGAgaXMgYmVpbmcgY2FsbGVkIGZyb20uIFRoaXMgZnVuY3Rpb24gaXMgcHJldHR5IGNydWNpYWwgaW4gdGhlIFJlYWx0ZWsgV2lGaSBkcml2ZXIgc3RhY2ssIGVzcGVjaWFsbHkgZm9yIHRoZSA4ODIyQyBjaGlwLCBzbyBrbm93aW5nIGl0cyBlbnRyeSBwb2ludCBpcyBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYW5kIHBvdGVudGlhbCBkZWJ1Z2dpbmcuIEkmIzM5O2xsIG5lZWQgdG8gcmV0cmFjZSB0aGUgY29kZSBleGVjdXRpb24gcGF0aC4gSSYjMzk7bSBhc3N1bWluZyB0aGF0IGl0JiMzOTtzIHBhcnQgb2YgdGhlIGdlbmVyYWwgZHJpdmVyIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLgoKRmlyc3QsIEkmIzM5O2Qgd2FudCB0byB1c2UgYSB0b29sIGxpa2UgYGdyZXBgIChvciBteSBJREUmIzM5O3Mgc2VhcmNoIGZ1bmN0aW9uKSB0byBzZWFyY2ggdGhlIGRyaXZlciBzb3VyY2UgdHJlZSBmb3IgYWxsIGluc3RhbmNlcyB3aGVyZSBgcnR3ODgyMmNfcmZfaW5pdGAgaXMgY2FsbGVkLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgbGlzdCBvZiBwb3RlbnRpYWwgY2FsbCBzaXRlcy4gVGhlbiwgSSYjMzk7ZCBuZWVkIHRvIGV4YW1pbmUgdGhvc2Ugc2l0ZXMsIGxvb2tpbmcgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBvZiB0aGUgY2FsbCBhbmQgd2hpY2ggZnVuY3Rpb25zIGFyZSBjYWxsaW5nIGl0LiBJJiMzOTtkIGxvb2sgZm9yIGZ1bmN0aW9uIHByb3RvdHlwZXMgb3IgZGVmaW5pdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGluaXRpYWxpemF0aW9uLCBwcm9iaW5nIG9yIGRldmljZSBkZXRlY3Rpb24uCgpJJiMzOTtkIGFsc28gY29uc2lkZXIgdGhlIGJyb2FkZXIgZHJpdmVyIHN0cnVjdHVyZS4gRG9lcyB0aGlzIGRyaXZlciBmb2xsb3cgYSBzdGFuZGFyZCBwcm9iZS9hdHRhY2gvZGV0YWNoIG1vZGVsPyBJZiBzbywgYHJ0dzg4MjJjX3JmX2luaXRgIGxpa2VseSBmYWxscyBzb21ld2hlcmUgd2l0aGluIHRoZSAmIzM0O2F0dGFjaCYjMzQ7IHBoYXNlLCBhZnRlciB0aGUgaGFyZHdhcmUgaXMgcmVjb2duaXplZC4gR2l2ZW4gdGhhdCwgSSYjMzk7ZCB0cmFjZSBiYWNrIGZyb20gYW55IGF0dGFjaCBvciBpbml0aWFsaXphdGlvbiByZWxhdGVkIGZ1bmN0aW9ucywgbG9va2luZyB0byBzZWUgd2hpY2ggZnVuY3Rpb25zIGV2ZW50dWFsbHkgZW5kIHVwIGNhbGxpbmcgYHJ0dzg4MjJjX3JmX2luaXRgLgoKQmFzaWNhbGx5LCBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IHdpdGggdGhlIG9idmlvdXMgYW5kIHdvcmsgbXkgd2F5IG91dHdhcmQsIGZvbGxvd2luZyB0aGUgZnVuY3Rpb24gY2FsbCBncmFwaC4gSSYjMzk7bGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBhcmd1bWVudHMgYmVpbmcgcGFzc2VkIHRvIGBydHc4ODIyY19yZl9pbml0YCBhcyB3ZWxsLCBhcyB0aG9zZSB3b3VsZCBwcm92aWRlIGhpbnRzIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUgc3lzdGVtIGF0IHRoZSBwb2ludCBvZiB0aGUgY2FsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODgyMmNfcmZfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xNzYyPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RvX2dhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTgwMD1zdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTg0NjpcdHJ0dzg4MjJjX3JmX2luaXQocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xODQ3LVx0cnR3ODgyMmNfcHdydHJhY2tfaW5pdChydHdkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjEwMgoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgcXVlc3Rpb246CgoqKlBpbnBvaW50aW5nIHRoZSBPcmlnaW4gb2YgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZSBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGZyb20uIFRoYXQmIzM5O3MgdGhlIGNvcmUgcXVlc3Rpb24sIHJpZ2h0PyBJZGVudGlmeWluZyB0aGUgY2FsbCBzaXRlcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyBjb250ZXh0LCB0aGUgZGF0YSBpdCYjMzk7cyBvcGVyYXRpbmcgb24sIGFuZCBhbnkgcG90ZW50aWFsIHNpZGUgZWZmZWN0cy4gS25vd2luZyB0aGUgY2FsbGVyIGFsc28gaGVscHMgaW4gZGVidWdnaW5nIGFuZCBtb2RpZmljYXRpb24sIGFzIEkgY2FuIHRyYWNlIHRoZSBjYWxsIHN0YWNrIHRvIHNlZSB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGxlYWRpbmcgdXAgdG8gaXRzIGV4ZWN1dGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBJJiMzOTtsbCBuZWVkIHRvIHVzZSBzb21lIHRvb2xpbmcsIG1vc3QgbGlrZWx5IGEgY29kZSBzZWFyY2ggb3Igc3RhdGljIGFuYWx5c2lzIHRvb2wuIEkmIzM5O2QgdHlwaWNhbGx5IHN0YXJ0IGJ5IGdyZXBwaW5nIHRoZSBjb2RlYmFzZSBmb3IgdGhlIGZ1bmN0aW9uIG5hbWUgZGlyZWN0bHkuIEZyb20gdGhlcmUsIEkmIzM5O2QgZXhhbWluZSB0aGUgY2FsbCBzaXRlcy4gSSB3aWxsIGJlIGxvb2tpbmcgZm9yIGNvbW1vbiBwYXR0ZXJucy4gSXMgaXQgY2FsbGVkIHdpdGhpbiBhIHNwZWNpZmljIGRyaXZlciBjb21wb25lbnQsIGR1cmluZyBpbml0aWFsaXphdGlvbiwgb3IgaW4gcmVzcG9uc2UgdG8gc29tZSBraW5kIG9mIGV2ZW50PyBUaGUgY29udGV4dCB3aWxsIGJlIGtleS4gT25jZSBJIGxvY2F0ZSB0aGUgY2FsbHMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzdXJyb3VuZGluZyBjb2RlIGluIG9yZGVyIHRvIHRydWx5IHVuZGVyc3RhbmQgdGhlIHJhdGlvbmFsZSBmb3IgdGhlIGZ1bmN0aW9uIGNhbGwsIGFuZCBob3cgdGhpcyBmdW5jdGlvbiBjYWxsIGlzIHJlbGF0ZWQgdG8gb3RoZXIgcm91dGluZXMgaW4gdGhlIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4MjJjX3BoeV9zZXRfcGFyYW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTc4ND1zdGF0aWMgdm9pZCBydHc4ODIyY19wd3J0cmFja19pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTgwMDpzdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTgwMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00ODk4LVx0LnBvd2VyX29mZlx0XHQ9IHJ0d19wb3dlcl9vZmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDg5OTpcdC5waHlfc2V0X3BhcmFtXHRcdD0gcnR3ODgyMmNfcGh5X3NldF9wYXJhbSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00OTAwLVx0LnJlYWRfZWZ1c2VcdFx0PSBydHc4ODIyY19yZWFkX2VmdXNlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjgxNgoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhbHRlayBQSFkgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIFJlYWx0ZWsgUEhZIGNvZGUuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGZ1bmN0aW9uLCBgcGh5X3NldF9wYXJhbWAsIGlzIHBhcnQgb2YgdGhlIGBydHdfY2hpcF9vcHNgIHN0cnVjdHVyZSwgd2hpY2ggbWFrZXMgc2Vuc2UuIEdpdmVuIGl0cyBuYW1pbmcsIEkmIzM5O20gZ3Vlc3NpbmcgdGhpcyBmdW5jdGlvbiYjMzk7cyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBjcml0aWNhbCBQSFkgcGFyYW1ldGVycy4gTXkgbmV4dCBzdGVwIGlzIHRvIHRyYWNlIHRoZSBjYWxsIHRvIGBwaHlfc2V0X3BhcmFtYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlbiB0aGlzIGlzIGJlaW5nIGludm9rZWQsIGFuZCBtb3JlIHNwZWNpZmljYWxseSwgZHVyaW5nIHdoaWNoIHN0YWdlcyBvZiB0aGUgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4gS25vd2luZyB3aGVyZSBpdCYjMzk7cyBjYWxsZWQgZHVyaW5nIHRoYXQgcHJvY2VzcyBzaG91bGQgcXVpY2tseSBnaXZlIG1lIGFuIG92ZXJ2aWV3IGFuZCBzb21lIGluc2lnaHRzIGludG8gaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BoeV9zZXRfcGFyYW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0xMzc0PWludCBydHdfcG93ZXJfb24oc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xNDEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MTQxMzpcdGNoaXAtXHUwMDNlb3BzLVx1MDAzZXBoeV9zZXRfcGFyYW0ocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE0MTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9ODYyPXN0cnVjdCBydHdfY2hpcF9vcHMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTg2OS1cdGludCAoKnJlYWRfZWZ1c2UpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICptYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6ODcwOlx0dm9pZCAoKnBoeV9zZXRfcGFyYW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtODcxLVx0dm9pZCAoKnNldF9jaGFubmVsKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBjaGFubmVsLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYz01NTM9c3RhdGljIHZvaWQgcnR3ODcwM2JfcHdydHJhY2tfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYy01NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM6NTc4OnN0YXRpYyB2b2lkIHJ0dzg3MDNiX3BoeV9zZXRfcGFyYW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYy01Nzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYz0xODM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg3MDNiX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmMtMTg0My1cdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODcwM2JfcmVhZF9lZnVzZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYzoxODQ0Olx0LnBoeV9zZXRfcGFyYW1cdFx0PSBydHc4NzAzYl9waHlfc2V0X3BhcmFtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jLTE4NDUtXHQuc2V0X2NoYW5uZWxcdFx0PSBydHc4NzAzYl9zZXRfY2hhbm5lbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM9Njc9c3RhdGljIHZvaWQgcnR3ODcyM2RfcHdydHJhY2tfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy04NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYzo4NTpzdGF0aWMgdm9pZCBydHc4NzIzZF9waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYz0xMzkyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg3MjNkX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtMTM5NC1cdC5wb3dlcl9vZmZcdFx0PSBydHdfcG93ZXJfb2ZmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZC5jOjEzOTU6XHQucGh5X3NldF9wYXJhbVx0XHQ9IHJ0dzg3MjNkX3BoeV9zZXRfcGFyYW0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtMTM5Ni1cdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODcyM3hfcmVhZF9lZnVzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmM9OTE0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MTJhX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmMtOTE2LVx0LnBvd2VyX29mZlx0XHQ9IHJ0dzg4MTJhX3Bvd2VyX29mZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYzo5MTc6XHQucGh5X3NldF9wYXJhbVx0XHQ9IE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmMtOTE4LVx0LnJlYWRfZWZ1c2VcdFx0PSBydHc4OHh4YV9yZWFkX2VmdXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYz0yNjU9c3RhdGljIHZvaWQgcnR3ODgxNGFfY29uZmlnX2Nja19yeF9hbnRlbm5hX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jOjI4MzpzdGF0aWMgdm9pZCBydHc4ODE0YV9waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjg0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjA1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODE0YV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNTItXHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyMDUzOlx0LnBoeV9zZXRfcGFyYW1cdFx0PSBydHc4ODE0YV9waHlfc2V0X3BhcmFtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNTQtXHQucmVhZF9lZnVzZVx0XHQ9IHJ0dzg4MTRhX3JlYWRfZWZ1c2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jPTg2MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIxYV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTg2Mi1cdC5wb3dlcl9vZmZcdFx0PSBydHc4ODIxYV9wb3dlcl9vZmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM6ODYzOlx0LnBoeV9zZXRfcGFyYW1cdFx0PSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTg2NC1cdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODh4eGFfcmVhZF9lZnVzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM9MTUxPXN0YXRpYyB2b2lkIHJ0dzg4MjFjX3BoeV9iZl9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYzoxNTg6c3RhdGljIHZvaWQgcnR3ODgyMWNfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE1OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jPTE2NTg9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMWNfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYy0xNjYwLVx0LnBvd2VyX29mZlx0XHQ9IHJ0d19wb3dlcl9vZmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM6MTY2MTpcdC5waHlfc2V0X3BhcmFtXHRcdD0gcnR3ODgyMWNfcGh5X3NldF9wYXJhbSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYy0xNjYyLVx0LnJlYWRfZWZ1c2VcdFx0PSBydHc4ODIxY19yZWFkX2VmdXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYz0xNDU9c3RhdGljIHZvaWQgcnR3ODgyMmJfcGh5X2JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jOjE1MjpzdGF0aWMgdm9pZCBydHc4ODIyYl9waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMTUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MjE1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyYl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTIxNTItXHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoyMTUzOlx0LnBoeV9zZXRfcGFyYW1cdFx0PSBydHc4ODIyYl9waHlfc2V0X3BhcmFtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTIxNTQtXHQucmVhZF9lZnVzZVx0XHQ9IHJ0dzg4MjJiX3JlYWRfZWZ1c2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTE3ODQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfcHdydHJhY2tfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE4MDA6c3RhdGljIHZvaWQgcnR3ODgyMmNfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4MDEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00ODk2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjJjX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDg5OC1cdC5wb3dlcl9vZmZcdFx0PSBydHdfcG93ZXJfb2ZmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ4OTk6XHQucGh5X3NldF9wYXJhbVx0XHQ9IHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDkwMC1cdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODgyMmNfcmVhZF9lZnVzZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU5ODIKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA2MTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBXb3J0aCBvZiBGdXp6aW5nIHRoaXMgUmVhbHRlayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byB0b3VjaCB0aGUgaW5pdGlhbGl6YXRpb24gb3IgY2FsaWJyYXRpb24gcHJvY2VzcyB3aXRoaW4gdGhlIFJlYWx0ZWsgODgyMkNVIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aC4gSXQgYXBwZWFycyBgcnR3X3Bvd2VyX29uYCBjYWxscyBgY2hpcC0mZ3Q7b3BzLSZndDtwaHlfc2V0X3BhcmFtYCwgd2hpY2ggaXMgdHJpZ2dlcmVkIGR1cmluZyBkZXZpY2UgYnJpbmctdXAsIGluaXRpYXRlZCBieSBgcnR3X2NvcmVfc3RhcnRgLCBhbmQgdWx0aW1hdGVseSwgYHJ0d19tYWM4MDIxMV9zdGFydGAuIFRoYXQgbWVhbnMgaXQmIzM5O3MgcnVubmluZyBkdXJpbmcgdGhlIG5vcm1hbCBpbml0aWFsaXphdGlvbiBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFNpbmNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB0aGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGZ1enppbmcgcG90ZW50aWFsLgoKVGhlIHByb21wdCBpcyBtYWtpbmcgbWUgdGhpbmsgYWJvdXQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBidXQgdGhpcyBzZWVtcyBhY2hpZXZhYmxlIHZpYSBVU0IgZ2FkZ2V0IGZ1enppbmcuIFRoZSBrZXkgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGNvZGUgcGF0aCBpcyByZWFjaGFibGUgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXImIzM5O3MgVVNCIGZ1enplci4gQW5kIHRoZSBhbnN3ZXIgaXMgbGlrZWx5IHllcyEgSWYgc3l6a2FsbGVyIGlzIGFibGUgdG8gZ2VuZXJhdGUgVVNCIGRlc2NyaXB0b3JzIHRoYXQgbWF0Y2ggdGhlIFZJRC9QSUQgb2YgYSBSZWFsdGVrIDg4MjJDVSBkZXZpY2UsIHRoZSBgcnR3ODhfODgyMmN1YCBkcml2ZXIgd2lsbCBiaW5kIGFuZCBwcm9iZSwgY2F1c2luZyBgcnR3X2NvcmVfaW5pdGAgYW5kIGBydHdfY29yZV9zdGFydGAgdG8gZXhlY3V0ZS4gVGhlIFVTQiBmdXp6ZXIgY291bGQgZGVmaW5pdGVseSB0cmlnZ2VyIHRoZSBwcm9iZSBhbmQgdGhlIHJlZ2lzdGVyIHJlYWRzLCBlc3BlY2lhbGx5IGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBgcnR3X3JlYWQzMmAuIGBydHdfcmVhZDMyYCBpcyBjcml0aWNhbCBoZXJlOyB0aGUgZnV6emVyIGNvbnRyb2xzIHRoZSByZXR1cm4gdmFsdWVzIGJlY2F1c2UgaXQmIzM5O3MgZW11bGF0aW5nIHRoZSBkZXZpY2UsIHdoaWNoIG1ha2VzIHRoZSBwYXRjaCBpbnRlcmVzdGluZy4KClRoZSBwYXRjaCBhbHRlcnMgdGhlIHNvcnRpbmcgbG9naWMgYW5kIHRoZSBvZmZzZXQgY2FsY3VsYXRpb24gd2l0aGluIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAsIHNwZWNpZmljYWxseSB0aGUgYWxnb3JpdGhtIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBJUSBvZmZzZXQsIGNoYW5naW5nIGZyb20gYSBjdXN0b20gYnViYmxlIHNvcnQgdG8gYHNvcnQoKWAsIGFuZCBjaGFuZ2luZyB0eXBlcyBmcm9tIGB1MzJgIHRvIGBzMzJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEl0JiMzOTtzIG5vdCBqdXN0IGEgcmVmYWN0b3Jpbmc7IGl0JiMzOTtzIGNoYW5naW5nICpob3cqIHRoZSBkcml2ZXIgY2FsY3VsYXRlcyB0aGUgSVEgb2Zmc2V0IGR1cmluZyBpbml0aWFsaXphdGlvbiBvciBjYWxpYnJhdGlvbi4gVGhlIGNvZGUgYWNjZXNzZXMgYW5kIG1vZGlmaWVzIHRoZSB2YWx1ZXMgcmVhZCB1c2luZyBgcnR3X3JlYWQzMmAuIFRoaXMgc2VlbXMgbGlrZSBhIGdyZWF0IGNhbmRpZGF0ZSBmb3IgZnV6emluZywgZ2l2ZW4gdGhhdCBhIGZ1enplciBlbXVsYXRpbmcgdGhlIFVTQiBkZXZpY2UgY2FuIGNvbnRyb2wgdGhlIGRhdGEgcHJvdmlkZWQgdG8gdGhlIGRyaXZlci4KCk5vdywgdG8gYmUgY29tcGxldGVseSB0aG9yb3VnaCwgbGV0JiMzOTtzIHZlcmlmeSBhbnkgcmVsZXZhbnQgS2NvbmZpZyBvcHRpb25zIHRvIGJlIHN1cmUuIEkmIzM5O2xsIG5lZWQgdG8gbG9jYXRlIHRoZSBLY29uZmlnIGVudHJpZXMgZm9yIHRoZSBgcnR3ODhgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciB0aGUgYHJ0dzg4MjJjYCB2YXJpYW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExPWlmIFJUVzg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTM6Y29uZmlnIFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE3OmNvbmZpZyBSVFc4OF9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjA6Y29uZmlnIFJUVzg4X1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMS1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNjpjb25maWcgUlRXODhfODgyMkJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6Mjk6Y29uZmlnIFJUVzg4Xzg4MjJDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzAtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OF84NzIzWFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMzLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzozNTpjb25maWcgUlRXODhfODcwM0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNi1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM5OmNvbmZpZyBSVFc4OF84NzIzRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQwLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDM6Y29uZmlnIFJUVzg4Xzg4MjFDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDQtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ2OmNvbmZpZyBSVFc4OF84OFhYQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQ3LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0OTpjb25maWcgUlRXODhfODgyMUFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01MC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjUzOmNvbmZpZyBSVFc4OF84ODEyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU0LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NTc6Y29uZmlnIFJUVzg4Xzg4MTRBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTgtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYwOmNvbmZpZyBSVFc4OF84ODIyQkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NzE6Y29uZmlnIFJUVzg4Xzg4MjJCU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTcyLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQlMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6ODI6Y29uZmlnIFJUVzg4Xzg4MjJCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy05Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5Mzpjb25maWcgUlRXODhfODgyMkNFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOTQtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMDQ6Y29uZmlnIFJUVzg4Xzg4MjJDU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwNS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMTU6Y29uZmlnIFJUVzg4Xzg4MjJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyNjpjb25maWcgUlRXODhfODcyM0RFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTI3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTM3OmNvbmZpZyBSVFc4OF84NzIzRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNEUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTQ4OmNvbmZpZyBSVFc4OF84NzIzQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTYyOmNvbmZpZyBSVFc4OF84NzIzRFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzM6Y29uZmlnIFJUVzg4Xzg4MjFDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE4NDpjb25maWcgUlRXODhfODgyMUNTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ1MgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NTpjb25maWcgUlRXODhfODgyMUNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjA2OmNvbmZpZyBSVFc4OF84ODIxQVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDctXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFBVS84ODExQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjE3OmNvbmZpZyBSVFc4OF84ODEyQVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjg6Y29uZmlnIFJUVzg4Xzg4MTRBRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyOS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIzOTpjb25maWcgUlRXODhfODgxNEFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODE0QVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjUwOmNvbmZpZyBSVFc4OF9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1ZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTg6Y29uZmlnIFJUVzg4X0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNTktXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNjY6Y29uZmlnIFJUVzg4X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjctXHRib29sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwMzA5CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqQW5hbHl6aW5nIFJUVzg4IENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqCgpBbHJpZ2h0LCBzbyB0aGUgY3VycmVudCBvcHRpb25zIHdlJiMzOTtyZSB3b3JraW5nIHdpdGggYXJlIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhhdCBzcGVjaWZpYyBgUlRXODhfODgyMkNVYCB2YXJpYXRpb24uIEdpdmVuIHRoZSB1c3VhbCBjb25maWd1cmF0aW9uIGNvbXBsZXhpdGllcyBhbmQgcG90ZW50aWFsIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlc2UgZHJpdmVycywgaXQmIzM5O3MgZXNzZW50aWFsIHRvIG1ldGljdWxvdXNseSB2ZXJpZnkgd2hhdCAqUlRXODhfODgyMkNVKiByZWxpZXMgdXBvbi4gVGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuIFdlIGNhbiYjMzk7dCBhZmZvcmQgdG8gbWlzcyBhbnl0aGluZyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIGZvciB0aGF0IHNwZWNpZmljIG1vZHVsZS4gR2V0dGluZyBhIGNsZWFyIGRlcGVuZGVuY3kgcGljdHVyZSB3aWxsIGJlIHRoZSBmaXJzdCBhbmQgbW9zdCBjcml0aWNhbCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODhfODgyMkNVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTEwND1jb25maWcgUlRXODhfODgyMkNTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMTU6Y29uZmlnIFJUVzg4Xzg4MjJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA2OTMKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZCwgZ2VhcmVkIHRvd2FyZCBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBmcm9tIGEgZmlyc3QtcGVyc29uIHBlcnNwZWN0aXZlOgoKKipSVFc4OF84ODIyQ1U6IERlZXAgRGl2ZSAmYW1wOyBTdHJhdGVneSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgcHVsbCB1cCB0aGF0IGZ1bGwgYmxvY2sgb2YgY29kZSBmb3IgdGhlIGBSVFc4OF84ODIyQ1VgIGRyaXZlci4gSSBuZWVkIHRvIGdldCBhIHJlYWxseSBnb29kIGdyYXNwIG9mIHRoaXMuIEZpcnN0LCBJJiMzOTttIGdvaW5nIHRvIHNjYW4gdGhlIG1haW4gZW50cnkgcG9pbnRzLCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIHByb2JlIGZ1bmN0aW9ucy4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUgLSBob3cgdGhleSYjMzk7cmUgaGFuZGxpbmcgaGFyZHdhcmUgYWJzdHJhY3Rpb24sIGludGVycnVwdCBoYW5kbGluZywgYW5kIHdoYXQga2luZCBvZiBwb3dlciBtYW5hZ2VtZW50IGhvb2tzIHRoZXnigJl2ZSBwdXQgaW4gcGxhY2UuIEFyZSB0aGV5IHVzaW5nIHRoZSBzdGFuZGFyZCByZWd1bGF0b3J5IGRvbWFpbiBpbnRlcmZhY2VzIGNvcnJlY3RseT8gQW55IGRldmlhdGlvbnM/IEFueSBjdXN0b20gbWVjaGFuaXNtcyBJIHNob3VsZCBiZSBhd2FyZSBvZj8KClRoZW4sIEkmIzM5O2xsIGhvbmUgaW4gb24gdGhlIGltcG9ydGFudCBkYXRhIHN0cnVjdHVyZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGV5JiMzOTtyZSByZXByZXNlbnRpbmcgdGhlIGhhcmR3YXJlIHN0YXRlIOKAkyB0aGUgcmVnaXN0ZXJzLCB0aGUgY29uZmlndXJhdGlvbiwgdGhlIG9wZXJhdGlvbmFsIHBhcmFtZXRlcnMuIEFyZSB0aGV5IGVtcGxveWluZyBhbnkgY2xldmVyIG1lbW9yeSBtYXBwaW5nIHRlY2huaXF1ZXMgb3IgZGlyZWN0IHJlZ2lzdGVyIGFjY2Vzcz8gQW55IHVudXN1YWwgdXNlIG9mIERNQSBvciBzb3BoaXN0aWNhdGVkIGJ1ZmZlcmluZyBzdHJhdGVnaWVzPyBJJiMzOTttIGhvcGluZyB0byBxdWlja2x5IGlkZW50aWZ5IGFueSBwb3RlbnRpYWwgYm90dGxlbmVja3Mgb3IgYXJlYXMgZm9yIG9wdGltaXphdGlvbi4KCk5leHQsIEkmIzM5O2xsIGRpdmUgaW50byB0aGUgaW50ZXJydXB0IGhhbmRsZXJzLiBUaGF0JiMzOTtzIHVzdWFsbHkgd2hlcmUgdGhlIHJlYWwtdGltZSBjb25zdHJhaW50cyBhcmUgZ29pbmcgdG8gc3VyZmFjZS4gSG93IGFyZSB0aGV5IHByaW9yaXRpemluZyBpbnRlcnJ1cHRzPyBBcmUgdGhleSB1c2luZyBib3R0b20taGFsdmVzIGVmZmVjdGl2ZWx5PyBIb3cgYXJlIHRoZXkgaGFuZGxpbmcgc2hhcmVkIGludGVycnVwdHMsIGlmIGF0IGFsbD8gSSBuZWVkIHRvIGFuYWx5emUgdGhlIGludGVycnVwdCBsYXRlbmN5IHRvIGtub3cgaWYgaXQgY2FuIHN1cHBvcnQgbXkgdXNlIGNhc2VzLiBBcmUgdGhlcmUgYW55IGNvbnRlbnRpb24gaXNzdWVzIEkgc2hvdWxkIGxvb2sgb3V0IGZvcj8KCkFmdGVyIHRoYXQsIEkmIzM5O2xsIHRyYWNlIHRocm91Z2ggdGhlIGtleSBkYXRhIHBhdGhzOiB0aGUgVFggcGF0aCwgdGhlIFJYIHBhdGgsIGFuZCB0aGUgbWFuYWdlbWVudCBmcmFtZSBwcm9jZXNzaW5nLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkmIzM5O3JlIG1hbmFnaW5nIHBhY2tldCBxdWV1ZXMsIGZsb3cgY29udHJvbCwgYW5kIGFueSBmcmFnbWVudGF0aW9uL3JlYXNzZW1ibHkuIEFyZSB0aGV5IGRvaW5nIGFueSBwZXItcGFja2V0IG9wdGltaXphdGlvbnMsIG9yIGlzIGl0IG1vcmUgb2YgYSAmIzM0O29uZS1zaXplLWZpdHMtYWxsJiMzNDsgYXBwcm9hY2g/IFdoYXQgYWJvdXQgb2ZmbG9hZGluZyAtIGFueSBoYXJkd2FyZSBvZmZsb2FkIGNhcGFiaWxpdGllcz8KCkZpbmFsbHksIEkmIzM5O2xsIGxvb2sgaW50byBwb3dlciBtYW5hZ2VtZW50LiBIb3cgYXJlIHRoZXkgcmVzcG9uZGluZyB0byBwb3dlciBzdGF0ZSBjaGFuZ2VzPyBBcmUgdGhleSB1c2luZyB0aGUgc3RhbmRhcmQgUE0gQVBJcyBjb3JyZWN0bHksIG9yIGFyZSB0aGVyZSBhbnkgY3VzdG9tIHBvd2VyLXNhdmluZyBtZWNoYW5pc21zPyBJJiMzOTtsbCBhc3Nlc3MgdGhlIGNsb2NrIGdhdGluZyBhbmQgcG93ZXIgZG9tYWluIG1hbmFnZW1lbnQuIEFyZSB0aGV5IGFnZ3Jlc3NpdmUgZW5vdWdoIGluIHJlZHVjaW5nIHBvd2VyIGNvbnN1bXB0aW9uIHdoZW4gaWRsZT8KClRoZSBlbmQgZ29hbCBpcyB0byBnZXQgYSByZWFsbHkgZ29vZCBoYW5kbGUgb24gaXRzIGFyY2hpdGVjdHVyZSwgaXRzIHBvdGVudGlhbCB3ZWFrbmVzc2VzLCBhbmQgaWRlbnRpZnkgYW55IGFyZWFzIHdoZXJlIEkgY2FuIG1ha2UgaW1wcm92ZW1lbnRzIG9yIG1vZGlmaWNhdGlvbnMuIEFsc28sIEkgd2lsbCBiZSBvbiB0aGUgbG9va291dCB0byBzZWUgaWYgdGhpcyBjb2RlIGlzIGEgZ29vZCBiYXNlIGZvciBteSBwcm9qZWN0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDExMDpcdFx0aGVscFxuIDExMTpcdFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgODgyMkNTIGNoaXBzZXRcbiAxMTI6XHRcbiAxMTM6XHRcdCAgODAyLjExYWMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcbiAxMTQ6XHRcbiAxMTU6XHRjb25maWcgUlRXODhfODgyMkNVXG4gMTE2Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4gMTE3Olx0XHRkZXBlbmRzIG9uIFVTQlxuIDExODpcdFx0c2VsZWN0IFJUVzg4X0NPUkVcbiAxMTk6XHRcdHNlbGVjdCBSVFc4OF9VU0JcbiAxMjA6XHRcdHNlbGVjdCBSVFc4OF84ODIyQ1xuIDEyMTpcdFx0aGVscFxuIDEyMjpcdFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgODgyMkNVIGNoaXBzZXRcbiAxMjM6XHRcbiAxMjQ6XHRcdCAgODAyLjExYWMgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxuIDEyNTpcdFxuIDEyNjpcdGNvbmZpZyBSVFc4OF84NzIzREVcbiAxMjc6XHRcdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0RFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbiAxMjg6XHRcdGRlcGVuZHMgb24gUENJXG4gMTI5Olx0XHRzZWxlY3QgUlRXODhfQ09SRVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTU4NAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDYxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYFJUVzg4Xzg4MjJDVWAgRHJpdmVyIERlcGVuZGVuY2llcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgUlRXODhfODgyMkNVYCBkcml2ZXIuIEl0JiMzOTtzIHRoZSBvbmUgSSBuZWVkIHRvIGZvY3VzIG9uLiBSaWdodCwgaXQgbG9va3MgbGlrZSBpdCBkZXBlbmRzIGRpcmVjdGx5IG9uIHRoZSBgVVNCYCBzdWJzeXN0ZW0uIE1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgYENVYCBpbiB0aGUgbmFtZSBwcm9iYWJseSBpbXBsaWVzIGEgVVNCIGludGVyZmFjZS4gTm93LCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBsb29rIGF0IHRoZSBiaWdnZXIgcGljdHVyZS4gVGhlIHBhcmVudCBjb25maWcsIGBSVFc4OGAsIHRoYXQgKnRoaXMqIHNwZWNpZmljIGRyaXZlciBpcyBwYXJ0IG9mLCBkZXBlbmRzIG9uIGJvdGggYE1BQzgwMjExYCBhbmQgYFdMQU5gLiBUaGF0JiMzOTtzIHN0YW5kYXJkIGZvciB3aXJlbGVzcyBkcml2ZXJzLCBvZiBjb3Vyc2UuIE5vdywgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIgSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgYFJUVzg4YCBpdHNlbGYgaXMgY29tcGxldGVseSBzb3VuZC4gQmV0dGVyIHRvIGJlIHRob3JvdWdoLCBJJiMzOTtsbCBjaGVjayAqdGhvc2UqIGRlcGVuZGVuY2llcyBuZXh0LiBNYWtlIHN1cmUgZXZlcnl0aGluZyYjMzk7cyBpbiBvcmRlciwgYXZvaWQgc3VycHJpc2VzLCBhbmQgYWxsIHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0bWVudWNvbmZpZyBSVFc4OFxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgbWFjODAyMTEtYmFzZWQgd2lyZWxlc3MgZHJpdmVycyB0aGF0XG4gICA3Olx0XHQgIGVuYWJsZXMgUmVhbHRlayBJRUVFIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzZXRzLlxuICAgODpcdFxuICAgOTpcdFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCYjMzk7bGwgYmUgY2FsbGVkIHJ0dzg4LlxuICAxMDpcdFxuICAxMTpcdGlmIFJUVzg4XG4gIDEyOlx0XG4gIDEzOlx0Y29uZmlnIFJUVzg4X0NPUkVcbiAgMTQ6XHRcdHRyaXN0YXRlXG4gIDE1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgUlRXODhfUENJXG4gIDE4Olx0XHR0cmlzdGF0ZVxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBSVFc4OF9TRElPXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMTU0CgkJCQkJCQlvdXRwdXQ6IDcyCgkJCQkJCQl0aG91Z2h0czogNDkzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBDb25maWd1cmF0aW9uIGFuZCBTeW1ib2wgSW5jbHVzaW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXIuIFRoZSBjb25maWdzIEkgbmVlZCB0byBmb2N1cyBvbiBmb3IgZW5hYmxpbmcgYXJlIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgLiBFYXN5IGVub3VnaCwgYW5kIEkgbmVlZCB0byByZW1lbWJlciB0byAqbm90KiBpbmNsdWRlIHRoZSAmIzM0O0NPTkZJR18mIzM0OyBwcmVmaXgsIHNvIGp1c3QgdGhlIHJhdyBuYW1lcyBhcmUgd2hhdCYjMzk7cyBnb2luZyBpbiB0aGUgb3V0cHV0IGFycmF5LiBgTUFDODAyMTFgIGFuZCBgV0xBTmAgYXJlIHN0YW5kYXJkLCB0aG9zZSBhcmUgb3V0LgoKTm93LCBJJiMzOTt2ZSBnb3QgdG8gZGV0ZXJtaW5lIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgbGlzdGVkIGluIGBGb2N1c1N5bWJvbHNgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBhbmQgYHJ0dzg4MjJjX2RhY19pcV9vZmZzZXRgLiBXYWl0LCBob2xkIG9uLiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHN0YXRpYyBhbmQgdGhhdCYjMzk7cyBub3Qgd2hhdCBJIHdhbnQuIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHNwZWNpZmljOiBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZC4gU28gSSBuZWVkIHRvIHRyYWNlIGJhY2sgZnJvbSB0aGF0IHN0YXRpYyBoZWxwZXIuCgpPa2F5LCBsZXQmIzM5O3Mgc2VlLiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIGNhbGxlZCBieSBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCwgd2hpY2ggaXMgKmFsc28qIHN0YXRpYy4gSXQgc2VlbXMgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCBpcyBjYWxsZWQgYnkgYHJ0dzg4MjJjX2RhY19jYWxfYWRjYCwgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDJgLCBhbmQgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDNgLiBUaGVzZSBhcmUgYWxsIGNhbGxlZCBieSBgcnR3ODgyMmNfcmZfZGFjX2NhbGAuIGBydHc4ODIyY19yZl9kYWNfY2FsYCBpcyBpbiB0dXJuIGNhbGxlZCBieSBgcnR3ODgyMmNfcmZfaW5pdGAuIFRoZW4sIGZpbmFsbHksIGBydHc4ODIyY19yZl9pbml0YCBpcyBjYWxsZWQgYnkgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gLgoKT2theSwgc28gYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gIGlzIGFsc28gc3RhdGljLCBidXQgaXQgKmlzKiBhc3NpZ25lZCB0byBgLnBoeV9zZXRfcGFyYW1gIGluIGBydHc4ODIyY19vcHNgLiBUaGlzIGlzIG1ha2luZyBtZSB0aGluayB0aGVyZSYjMzk7cyBhIG5vbi1zdGF0aWMgZnVuY3Rpb24gZGVlcGVyIHdpdGhpbiBgcnR3ODgyMmMuY2AgdGhhdCBoYW5kbGVzIHRoaXMuCgpUaW1lIHRvIGdvIGNoZWNrIGBydHc4ODIyYy5jYCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDteKFthLXpfMC05XSYjNDM7ICkmIzQzO3J0dzg4MjJjX1thLXpfMC05XSYjNDM7XFwoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NDEgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNDpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNS1cdFx0XHRcdCAgICAgdTggcnhfcGF0aCwgYm9vbCBpc190eDJfcGF0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM5PXN0YXRpYyB2b2lkIHJ0dzg4MjJjc19lZnVzZV9wYXJzaW5nKHN0cnVjdCBydHdfZWZ1c2UgKmVmdXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTpzdGF0aWMgaW50IHJ0dzg4MjJjX3JlYWRfZWZ1c2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmxvZ19tYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo4OTpzdGF0aWMgdm9pZCBydHc4ODIyY19oZWFkZXJfZmlsZV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgcHJlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEwMjpzdGF0aWMgdm9pZCBydHc4ODIyY19iYl9yZXNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2JhY2t1cF9yZWcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMTAtXHRcdFx0XHQgICAgc3RydWN0IHJ0d19iYWNrdXBfaW5mbyAqYmFja3VwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTM4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19yZXN0b3JlX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEzOS1cdFx0XHRcdCAgICAgc3RydWN0IHJ0d19iYWNrdXBfaW5mbyAqYmFja3VwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTU3OnN0YXRpYyBpbnQgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTY2OnN0YXRpYyB1MzIgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKnZlYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTc4OnN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxOTc6c3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF9yZWFkX2FkZHIodTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xOTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjE2OnN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgdmFsdWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIyNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKml2LCBzMzIgKnF2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNDQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDUtXHRcdFx0XHQgICAgICAgczMyICppdiwgczMyICpxdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDAtXHRcdFx0XHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzE1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19iYl9zZXR0aW5nKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMzMTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2FkYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzMi1cdFx0XHRcdCB1OCBwYXRoLCB1MzIgKmFkY19pYywgdTMyICphZGNfcWMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0MDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQxMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1NS1cdFx0XHRcdCAgIHU4IHBhdGgsIHUzMiAqaWNfb3V0LCB1MzIgKnFjX291dClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUwMzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXAzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTA0LVx0XHRcdFx0ICAgdTMyIGFkY19pYywgdTMyIGFkY19xYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjU4MDpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXA0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTgxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTg5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjU5MDpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cF92ZWMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01OTEtXHRcdFx0XHRcdHU4IHBhdGgsIHU4IHZlYywgdTMyIHdfYWRkciwgdTMyIHJfYWRkcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjYwNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjA4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjYyNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cF9kY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02Mjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02NTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NjUxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfYmFja3VwKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjY4MTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmVfZGNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjgyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNzEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjcxMTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmVfcHJlcGFyZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTcxMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo3NjQ6c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2NhbF9yZXN0b3JlX3dhaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy03NjUtXHRcdFx0XHRcdCAgdTMyIHRhcmdldF9hZGRyLCB1MzIgdG9nZ2xlX2FkZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo3ODE6c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2NhbF9yZXN0b3JlX3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy03ODIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz04Mjg9c3RhdGljIGJvb2wgX19ydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtODM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjgzOTpzdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04NDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6ODgwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2RhY19jYWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04ODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy05NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6OTQ3OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX3gyX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTQ4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjk2MTpzdGF0aWMgdm9pZCBydHc4ODIyY19zZXRfcG93ZXJfdHJpbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzOCBiYl9nYWluWzJdWzhdKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk2Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo5OTM6c3RhdGljIHZvaWQgcnR3ODgyMmNfcG93ZXJfdHJpbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTAzMDpzdGF0aWMgdm9pZCBydHc4ODIyY190aGVybWFsX3RyaW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMDMxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTA0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMDQ4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3BhX2JpYXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMDQ5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTA2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMDcwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3Jma19oYW5kc2hha2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgYm9vbCBpc19iZWZvcmVfaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMDcxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTExNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTE2OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3Jma19wb3dlcl9zYXZlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTExNy1cdFx0XHRcdCAgICBib29sIGlzX3Bvd2VyX3NhdmUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTEyODpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfYmFja3VwX2JiX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBjb25zdCB1MzIgcmVnW10sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTEyOS1cdFx0XHRcdFx0ICB1MzIgcmVnX2JhY2t1cFtdLCB1MzIgcmVnX251bSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTQxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19yZWxvYWRfYmJfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE0Mi1cdFx0XHRcdFx0ICBjb25zdCB1MzIgcmVnW10sIHUzMiByZWdfYmFja3VwW10sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTExNTQ9c3RhdGljIGJvb2wgY2hlY2tfcmZfc3RhdHVzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHN0YXR1cylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTY5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa190eF9wYXVzZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExNzAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjExODU6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2JiX2RwayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMjE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEyMTc6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2FmZV9kcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMjE4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTI1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMjUzOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19hZmVfZHBrX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMjU0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTI4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMjg2OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19iYl9kcGtfcmVzdG9yZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyODcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xMzM1PXN0YXRpYyB2b2lkIF9ydHc4ODIyY190eGdhcGtfd3JpdGVfZ2Fpbl9iYl90YWJsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMzg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEzODk6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3dyaXRlX2dhaW5fYmJfdGFibGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMzkwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTQwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNDA0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19yZWFkX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE0MDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE0ODE6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2NhbGN1bGF0ZV9vZmZzZXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDgyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTU1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNTU1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19yZl9yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTU1Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTU2NzpzdGF0aWMgdTMyIHJ0dzg4MjJjX3R4Z2Fwa19jYWxfZ2FpbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgZ2Fpbiwgczggb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1Njgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE1OTE6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3dyaXRlX3R4X2dhaW4oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTkyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTY2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNjYxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19zYXZlX2FsbF90eF9nYWluX3RhYmxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTY2Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3MTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTcyMDpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzIxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzYyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RvX2dhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzYzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzg0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzg1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxODAwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xODAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTk0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxOTQxOnN0YXRpYyBpbnQgcnR3ODgyMmNfbWFjX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xOTQyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MjA4ND1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19md2NkX3NlZ3MgcnR3ODgyMmNfZndjZF9zZWdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMDg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIwODk6c3RhdGljIGludCBydHc4ODIyY19kdW1wX2Z3X2NyYXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjA5MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIxMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjExNzpzdGF0aWMgdm9pZCBydHc4ODIyY19yc3RiXzN3aXJlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIxMTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIxMjg6c3RhdGljIHZvaWQgcnR3ODgyMmNfc2V0X2NoYW5uZWxfcmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggY2hhbm5lbCwgdTggYncpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjEyOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIxOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjE5NDpzdGF0aWMgdm9pZCBydHc4ODIyY190b2dnbGVfaWdpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE5NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIyMDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjIwNTpzdGF0aWMgdm9pZCBydHc4ODIyY19zZXRfY2hhbm5lbF9iYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMjA2LVx0XHRcdFx0ICAgIHU4IHByaW1hcnlfY2hfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIzNjM6c3RhdGljIHZvaWQgcnR3ODgyMmNfc2V0X2NoYW5uZWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggY2hhbm5lbCwgdTggYncsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM2NC1cdFx0XHRcdCB1OCBwcmltYXJ5X2NoYW5faWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIzNzI6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29uZmlnX2Nja19yeF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHJ4X3BhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM3My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIzODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjM5MDpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfb2ZkbV9yeF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHJ4X3BhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM5MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQxMDpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfcnhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCByeF9wYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0MTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI0MTY6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29uZmlnX2Nja190eF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHR4X3BhdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQxNy1cdFx0XHRcdFx0Ym9vbCBpc190eDJfcGF0aClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNDMyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ19vZmRtX3R4X3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDMzLVx0XHRcdFx0XHQgZW51bSBydHdfYmJfcGF0aCB0eF9wYXRoX3NlbF8xc3MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQ1NjpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB0eF9wYXRoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NTctXHRcdFx0XHQgICAgZW51bSBydHdfYmJfcGF0aCB0eF9wYXRoX3NlbF8xc3MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQ2NjpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDY3LVx0XHRcdFx0ICAgICB1OCByeF9wYXRoLCBib29sIGlzX3R4Ml9wYXRoKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yNjMxPXJ0dzg4MjJjX3NldF93cml0ZV90eF9wb3dlcl9yZWYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKnR4X3B3cl9yZWZfY2NrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI2NTE6c3RhdGljIHZvaWQgcnR3ODgyMmNfc2V0X3R4X3Bvd2VyX2RpZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcmF0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjUyLVx0XHRcdFx0ICAgICAgIHM4ICpkaWZmX2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjY3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNjczOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3NldF90eF9wb3dlcl9pbmRleChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI2NzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI3MDY6c3RhdGljIGludCBydHc4ODIyY19zZXRfYW50ZW5uYShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI3MDctXHRcdFx0XHRpbnQgcmFkaW9faWR4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI3NDE6c3RhdGljIHZvaWQgcnR3ODgyMmNfY2ZnX2xkbzI1KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI3NDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI3NTA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZmFsc2VfYWxhcm1fc3RhdGlzdGljcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI3NTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yODE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI4MjA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZG9fbGNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjgyMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI4MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjg0MDpzdGF0aWMgdm9pZCBydHc4ODIyY19kb19pcWsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yODQxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg1Ny0vKiBmb3IgY29leCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI4NTg6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI4NTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yODg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI4ODc6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfZ250X2ZpeChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI4ODgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yOTY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5NjY6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfZ250X2RlYnVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk2Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjk3NTpzdGF0aWMgdm9pZCBydHc4ODIyY19jb2V4X2NmZ19yZmVfdHlwZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5NzYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yOTk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTg6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfd2xfdHhfcG93ZXIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggd2xfcHdyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5OTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwMDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfd2xfcnhfZ2FpbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGxvd19nYWluKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwMzk6c3RhdGljIHZvaWQgcnR3ODgyMmNfYmZfZW5hYmxlX2JmZWVfc3Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDQwLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBydHdfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzA1OTpzdGF0aWMgdm9pZCBydHc4ODIyY19iZl9jb25maWdfYmZlZV9zdShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwNjAtXHRcdFx0XHQgICAgICAgc3RydWN0IHJ0d192aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDY5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2JmX2NvbmZpZ19iZmVlX211KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA3MC1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcnR3X3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwNzk6c3RhdGljIHZvaWQgcnR3ODgyMmNfYmZfY29uZmlnX2JmZWUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d192aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDgwLVx0XHRcdFx0ICAgIHN0cnVjdCBydHdfYmZlZSAqYmZlZSwgYm9vbCBlbmFibGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTMwOTA9c3RydWN0IGRwa19jZmdfcGFpciB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwOTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzA5Njp2b2lkIHJ0dzg4MjJjX3BhcnNlX3RibF9kcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk3LVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlICp0YmwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxMDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzEwODpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfc2V0X2dudF93bChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGlzX2JlZm9yZV9rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxMDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMTM0PXJ0dzg4MjJjX2Rwa19iYWNrdXBfcmVnaXN0ZXJzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqcmVnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNDY6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2JhY2t1cF9yZl9yZWdpc3RlcnMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTQ3LVx0XHRcdFx0XHQgICAgIHUzMiAqcmZfcmVnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNjA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3JlbG9hZF9yZl9yZWdpc3RlcnMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTYxLVx0XHRcdFx0XHQgICAgIHUzMiAqcmZfcmVnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNzQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE3NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzE4ODpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfcnhiYl9kY19jYWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTg5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMTk3OnN0YXRpYyB1OCBydHc4ODIyY19kcGtfZGNfY29ycl9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxOTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyMjI6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3R4X3BhdXNlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzIyMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzIzODpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfbWFjX2JiX3NldHRpbmcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjM5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzI0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMjQ0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19hZmVfc2V0dGluZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGlzX2RvX2RwaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjQ1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzI1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMjUyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19wcmVfc2V0dGluZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyNTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyNzE6c3RhdGljIHUzMiBydHc4ODIyY19kcGtfcmZfc2V0dGluZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyNzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMzMDk6c3RhdGljIHUxNiBydHc4ODIyY19kcGtfZ2V0X2NtZChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBhY3Rpb24sIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMxMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzMzNDpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX29uZV9zaG90KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsIHU4IGFjdGlvbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzM1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMzc1OnN0YXRpYyB1MTYgcnR3ODgyMmNfZHBrX2RnYWluX3JlYWQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMzg3OnN0YXRpYyB1OCBydHc4ODIyY19kcGtfdGhlcm1hbF9yZWFkKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM4OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzM5NzpzdGF0aWMgdTMyIHJ0dzg4MjJjX2Rwa19wYXNfcmVhZChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzOTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM0MjA6c3RhdGljIHUzMiBydHc4ODIyY19wc2RfbG9nMmJhc2UodTMyIHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDIxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzQ0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNDQ2OnN0YXRpYyB1OCBydHc4ODIyY19kcGtfZ2Fpbmxvc3NfcmVzdWx0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzQ0Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzQ2MTpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX2FnY19nYWluX2NoayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0NjItXHRcdFx0XHQgICAgdTggbGltaXRlZF9wZ2EpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzQ3ODpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX2FnY19sb3NzX2NoayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0Nzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zNDk1PXN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1MDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzUwNTpzdGF0aWMgdTggcnR3ODgyMmNfZ2Fpbl9jaGVja19zdGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1MDYtXHRcdFx0XHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM1MzU6c3RhdGljIHU4IHJ0dzg4MjJjX2dhaW5fbGFyZ2Vfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTM2LVx0XHRcdFx0ICAgIHN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTUwOnN0YXRpYyB1OCBydHc4ODIyY19nYWluX2xlc3Nfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTUxLVx0XHRcdFx0ICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM1NjU6c3RhdGljIHU4IHJ0dzg4MjJjX2dsX3N0YXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU2Ni1cdFx0XHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhLCB1OCBpc19sYXJnZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTg0OnN0YXRpYyB1OCBydHc4ODIyY19nbF9sYXJnZV9zdGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1ODUtXHRcdFx0XHQgIHN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU4OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTkwOnN0YXRpYyB1OCBydHc4ODIyY19nbF9sZXNzX3N0YXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU5MS1cdFx0XHRcdCBzdHJ1Y3QgcnR3ODgyMmNfZHBrX2RhdGEgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzU5NjpzdGF0aWMgdTggcnR3ODgyMmNfbG9zc19jaGVja19zdGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1OTctXHRcdFx0XHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zNjA4PXN0YXRpYyB1OCAoKmRwa19zdGF0ZVtdKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM2MTQ6c3RhdGljIHU4IHJ0dzg4MjJjX2Rwa19wYXNfYWdjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzYxNS1cdFx0XHQgICAgICAgYm9vbCBnYWluX29ubHksIGJvb2wgbG9zc19vbmx5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM2MzU6c3RhdGljIGJvb2wgcnR3ODgyMmNfZHBrX2NvZWZfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjM2LVx0XHRcdFx0ICAgICAgIHUxNiBjb2VmX2ksIHUxNiBjb2VmX3EpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM2NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY0NTpzdGF0aWMgdTMyIHJ0dzg4MjJjX2Rwa19jb2VmX3RyYW5zZmVyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY0Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM2NjI9c3RhdGljIGNvbnN0IHUzMiBydHc4ODIyY19kcGtfZ2V0X2NvZWZfdGJsW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM2NjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY2OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfY29lZl90YmxfYXBwbHkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNjgxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19nZXRfY29lZihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4OTcxCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgcnR3ODgyMmNfb3BzIFN0cnVjdHVyZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGBydHc4ODIyY19vcHNgIHN0cnVjdCBpcyBiZWluZyB1c2VkIGluIHRoaXMgZHJpdmVyLiBSaWdodCwgaXQmIzM5O3MgdGhlIG9uZSBob2xkaW5nIHRoZSBmdW5jdGlvbiBwb2ludGVycyDigJMgdGhlIGhlYXJ0IG9mIHRoaXMgdGhpbmcuIFRoYXQmIzM5O3MgdXN1YWxseSBob3cgdGhleSBkbyBpdCBpbiB0aGVzZSBrZXJuZWwgbW9kdWxlcywgYSBjbGVhbiB3YXkgdG8gZGVmaW5lIGFuIGludGVyZmFjZSBmb3IgdGhlIGhhcmR3YXJlIG9wZXJhdGlvbnMuIFRpbWUgdG8gZGlzc2VjdCB0aGlzIHN0cnVjdCBhbmQgc2VlIHdoaWNoIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCB3aXRoaW4gYHJ0dzg4MjJjX29wc2AuIExldCYjMzk7cyBzZWUgd2hhdCBtZXRob2RzIGl0IGRlZmluZXMsIHdoYXQga2luZCBvZiBvcGVyYXRpb25zIHdlIGhhdmUgaGVyZS4gSSB3YW50IHRvIHNlZSBob3cgdGhlIGNvcmUgZnVuY3Rpb25zIGFyZSBtYXBwZWQgYW5kIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZS4gSSB3aWxsIHN0YXJ0IGJ5IHNlZWluZyB3aGF0IHRoZSBmdW5jdGlvbnMgYXJlLCBhbmQgdGhlbiBJIHdpbGwgY2hlY2sgaWYgdGhlaXIgaW1wbGVtZW50YXRpb24gaXMgY29uc2lzdGVudCB3aXRoIG90aGVyIHJlbGF0ZWQgZHJpdmVycyBJIGFtIGZhbWlsaWFyIHdpdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4MjJjX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00ODgwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3ByaW9xX2FkZHJzIHByaW9xX2FkZHJzXzg4MjJjID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00ODk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ4OTY6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ4OTctXHQucG93ZXJfb25cdFx0PSBydHdfcG93ZXJfb24sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTUyNzM9Y29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gcnR3ODgyMmNfaHdfc3BlYyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo1Mjc0Olx0Lm9wcyA9IFx1MDAyNnJ0dzg4MjJjX29wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01Mjc1LVx0LmlkID0gUlRXX0NISVBfVFlQRV84ODIyQyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk1ODEKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSB3ZSBnby4uLgoKKipEaXZpbmcgaW50byBgcnR3ODgyMmNfb3BzYCoqCgpBbHJpZ2h0LCB0aW1lIHRvIGNyYWNrIG9wZW4gdGhlIGBydHc4ODIyY19vcHNgIHN0cnVjdHVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUgd2l0aGluIHRoZSBicm9hZGVyIGZyYW1ld29yay4gSW1tZWRpYXRlbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucy4gVGhpcyBsaWtlbHkgcmVwcmVzZW50cyB0aGUgc3BlY2lmaWMgb3BlcmF0aW9ucyBpbnRlcmZhY2UgZm9yIHRoZSBSZWFsdGVrIFJUTDg4MjJDIHdpcmVsZXNzIGNoaXAuIE15IG1pbmQmIzM5O3MgcmFjaW5nIOKAkyB3aGF0IGFyZSB0aGUga2V5IGZ1bmN0aW9ucyBkZWZpbmVkIGhlcmU/IFRoaW5rIGRyaXZlciBpbml0aWFsaXphdGlvbiwgcG93ZXIgbWFuYWdlbWVudCBjYWxsYmFja3MsIHBlcmhhcHMgdHJhbnNtaXQgYW5kIHJlY2VpdmUgcGF0aCBjb25maWd1cmF0aW9uLCBhbmQgaW50ZXJydXB0IGhhbmRsaW5nLi4uYWxsIHRoZSBjb3JlIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBkcml2ZXIgYW5kIHRoZSBoYXJkd2FyZS4gSSBoYXZlIGEgaHVuY2ggaXQgd2lsbCBnaXZlIG1lIGFuIGluc2lnaHQgaW50byB0aGUgZGVzaWduIGRlY2lzaW9ucyBhcm91bmQgdGhpcyBzcGVjaWZpYyBjaGlwLCBtYXliZSBpdHMgbGltaXRhdGlvbnMgdG9vLiBMZXTigJlzIHNlZSBpZiB0aGV5JiMzOTt2ZSBpbXBsZW1lbnRlZCB0aGVpciBvd24gc2NoZWR1bGluZyBtZWNoYW5pc21zLCBvciBhcmUgcmVseWluZyBvbiB0aGUgZ2VuZXJpYyBzdGFjayBtb3JlIGhlYXZpbHkuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIHNvIHRvIHNwZWFrLiBOb3csIGxldCYjMzk7cyBnZXQgcmVhZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA0ODk2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzQ4OTY6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyY19vcHMgPSB7XG40ODk3Olx0XHQucG93ZXJfb25cdFx0PSBydHdfcG93ZXJfb24sXG40ODk4Olx0XHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbjQ4OTk6XHRcdC5waHlfc2V0X3BhcmFtXHRcdD0gcnR3ODgyMmNfcGh5X3NldF9wYXJhbSxcbjQ5MDA6XHRcdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODgyMmNfcmVhZF9lZnVzZSxcbjQ5MDE6XHRcdC5xdWVyeV9waHlfc3RhdHVzXHQ9IHF1ZXJ5X3BoeV9zdGF0dXMsXG40OTAyOlx0XHQuc2V0X2NoYW5uZWxcdFx0PSBydHc4ODIyY19zZXRfY2hhbm5lbCxcbjQ5MDM6XHRcdC5tYWNfaW5pdFx0XHQ9IHJ0dzg4MjJjX21hY19pbml0LFxuNDkwNDpcdFx0Lm1hY19wb3N0aW5pdFx0XHQ9IE5VTEwsXG40OTA1Olx0XHQuZHVtcF9md19jcmFzaFx0XHQ9IHJ0dzg4MjJjX2R1bXBfZndfY3Jhc2gsXG40OTA2Olx0XHQucmVhZF9yZlx0XHQ9IHJ0d19waHlfcmVhZF9yZixcbjQ5MDc6XHRcdC53cml0ZV9yZlx0XHQ9IHJ0d19waHlfd3JpdGVfcmZfcmVnX21peCxcbjQ5MDg6XHRcdC5zZXRfdHhfcG93ZXJfaW5kZXhcdD0gcnR3ODgyMmNfc2V0X3R4X3Bvd2VyX2luZGV4LFxuNDkwOTpcdFx0LnNldF9hbnRlbm5hXHRcdD0gcnR3ODgyMmNfc2V0X2FudGVubmEsXG40OTEwOlx0XHQuY2ZnX2xkbzI1XHRcdD0gcnR3ODgyMmNfY2ZnX2xkbzI1LFxuNDkxMTpcdFx0LnNldF9hbXBkdV9mYWN0b3JcdD0gTlVMTCxcbjQ5MTI6XHRcdC5mYWxzZV9hbGFybV9zdGF0aXN0aWNzXHQ9IHJ0dzg4MjJjX2ZhbHNlX2FsYXJtX3N0YXRpc3RpY3MsXG40OTEzOlx0XHQuZHBrX3RyYWNrXHRcdD0gcnR3ODgyMmNfZHBrX3RyYWNrLFxuNDkxNDpcdFx0LnBoeV9jYWxpYnJhdGlvblx0PSBydHc4ODIyY19waHlfY2FsaWJyYXRpb24sXG40OTE1Olx0XHQuY2NrX3BkX3NldFx0XHQ9IHJ0dzg4MjJjX3BoeV9jY2tfcGRfc2V0LFxuNDkxNjpcdFx0LnB3cl90cmFja1x0XHQ9IHJ0dzg4MjJjX3B3cl90cmFjayxcbjQ5MTc6XHRcdC5jb25maWdfYmZlZVx0XHQ9IHJ0dzg4MjJjX2JmX2NvbmZpZ19iZmVlLFxuNDkxODpcdFx0LnNldF9naWRfdGFibGVcdFx0PSBydHdfYmZfc2V0X2dpZF90YWJsZSxcbjQ5MTk6XHRcdC5jZmdfY3NpX3JhdGVcdFx0PSBydHdfYmZfY2ZnX2NzaV9yYXRlLFxuNDkyMDpcdFx0LmFkYXB0aXZpdHlfaW5pdFx0PSBydHc4ODIyY19hZGFwdGl2aXR5X2luaXQsXG40OTIxOlx0XHQuYWRhcHRpdml0eVx0XHQ9IHJ0dzg4MjJjX2FkYXB0aXZpdHksXG40OTIyOlx0XHQuY2ZvX2luaXRcdFx0PSBydHc4ODIyY19jZm9faW5pdCxcbjQ5MjM6XHRcdC5jZm9fdHJhY2tcdFx0PSBydHc4ODIyY19jZm9fdHJhY2ssXG40OTI0Olx0XHQuY29uZmlnX3R4X3BhdGhcdFx0PSBydHc4ODIyY19jb25maWdfdHhfcGF0aCxcbjQ5MjU6XHRcdC5jb25maWdfdHhyeF9tb2RlXHQ9IHJ0dzg4MjJjX2NvbmZpZ190cnhfbW9kZSxcbjQ5MjY6XHRcdC5sZWRfc2V0XHRcdD0gcnR3ODgyMmNfbGVkX3NldCxcbjQ5Mjc6XHRcdC5maWxsX3R4ZGVzY19jaGVja3N1bVx0PSBydHc4ODIyY19maWxsX3R4ZGVzY19jaGVja3N1bSxcbjQ5Mjg6XHRcbjQ5Mjk6XHRcdC5jb2V4X3NldF9pbml0XHRcdD0gcnR3ODgyMmNfY29leF9jZmdfaW5pdCxcbjQ5MzA6XHRcdC5jb2V4X3NldF9hbnRfc3dpdGNoXHQ9IE5VTEwsXG40OTMxOlx0XHQuY29leF9zZXRfZ250X2ZpeFx0PSBydHc4ODIyY19jb2V4X2NmZ19nbnRfZml4LFxuNDkzMjpcdFx0LmNvZXhfc2V0X2dudF9kZWJ1Z1x0PSBydHc4ODIyY19jb2V4X2NmZ19nbnRfZGVidWcsXG40OTMzOlx0XHQuY29leF9zZXRfcmZlX3R5cGVcdD0gcnR3ODgyMmNfY29leF9jZmdfcmZlX3R5cGUsXG40OTM0Olx0XHQuY29leF9zZXRfd2xfdHhfcG93ZXJcdD0gcnR3ODgyMmNfY29leF9jZmdfd2xfdHhfcG93ZXIsXG40OTM1Olx0XHQuY29leF9zZXRfd2xfcnhfZ2Fpblx0PSBydHc4ODIyY19jb2V4X2NmZ193bF9yeF9nYWluLFxuNDkzNjpcdH07XG40OTM3Olx0XG40OTM4Olx0LyogU2hhcmVkLUFudGVubmEgQ29leCBUYWJsZSAqL1xuNDkzOTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29leF90YWJsZV9wYXJhIHRhYmxlX3NhbnRfODgyMmNbXSA9IHtcbjQ5NDA6XHRcdHsweGZmZmZmZmZmLCAweGZmZmZmZmZmfSwgLyogY2FzZS0wICovXG40OTQxOlx0XHR7MHg1NTU1NTU1NSwgMHg1NTU1NTU1NX0sXG40OTQyOlx0XHR7MHg2NjU1NTU1NSwgMHg2NjU1NTU1NX0sXG40OTQzOlx0XHR7MHhhYWFhYWFhYSwgMHhhYWFhYWFhYX0sXG40OTQ0Olx0XHR7MHg1YTVhNWE1YSwgMHg1YTVhNWE1YX0sXG40OTQ1Olx0XHR7MHhmYWZhZmFmYSwgMHhmYWZhZmFmYX0sIC8qIGNhc2UtNSAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTE1OQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDEwMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBQb3dlci1PbiBTZXF1ZW5jZSoqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byB0cmFjZSB0aGUgcG93ZXItb24gc2VxdWVuY2UgZm9yIHRoaXMgc3lzdGVtLiBUaGUgc3RhcnRpbmcgcG9pbnQgc2VlbXMgdG8gYmUgYHJ0d19wb3dlcl9vbmAuIFRoYXQgbWFrZXMgc2Vuc2U7IGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHRoZSBtYWluIGVudHJ5IGZ1bmN0aW9uLiBUaGlzIHRoZW4gbGVhZHMgdG8gYSBjYWxsIHRvIGBwaHlfc2V0X3BhcmFtYCwgd2hpY2ggdWx0aW1hdGVseSByZXNvbHZlcyB0byBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAuIEhtbSwgYnV0IGBydHc4ODIyY19waHlfc2V0X3BhcmFtYCBpcyBkZWNsYXJlZCBhcyBgc3RhdGljYC4gVGhhdCYjMzk7cyBhIGJpdCBvZiBhIHJvYWRibG9jay4gSXQmIzM5O3Mgbm90IGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlIGl0cyBjb21waWxhdGlvbiB1bml0LCB3aGljaCBtaWdodCBjb21wbGljYXRlIHRoaW5ncy4KClRoZSBxdWVzdGlvbiB0aGVuIGlzLCBjYW4gSSBzdGlsbCBsZXZlcmFnZSBgcnR3X3Bvd2VyX29uYCBhcyBteSBzdGFydGluZyBwb2ludD8gTGV0JiMzOTtzIGFzc3VtZSBzbyBmb3Igbm93LiBJIHJlY2FsbCB0aGF0IGBydHdfcG93ZXJfb25gIHJlc2lkZXMgaW4gYG1haW4uY2AuIFRoYXQmIzM5O3MgdXNlZnVsIGluZm9ybWF0aW9uLiBTbywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgY29kZSBmb3IgYHJ0d19wb3dlcl9vbmAgaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGhhcHBlbmluZyB0aGVyZSB0byBzZWUgaG93IHRoZSBzdGF0aWMgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gIGlzIGJlaW5nIHVzZWQgb3IgYWNjZXNzZWQsIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBvd2VyLW9uIGluaXRpYWxpemF0aW9uIHByb2NlZHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3Bvd2VyX29uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MTM1ND1zdGF0aWMgZW51bSBydHdfbHBzX2RlZXBfbW9kZSBydHdfdXBkYXRlX2xwc19kZWVwX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xMzczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MTM3NDppbnQgcnR3X3Bvd2VyX29uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xMzc1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xNDQyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjE0NDM6RVhQT1JUX1NZTUJPTChydHdfcG93ZXJfb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMTQ0NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0yMjcxPWludCBydHdfd2FpdF9maXJtd2FyZV9jb21wbGV0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6MjI3MjppbnQgcnR3X3Bvd2VyX29uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI3My12b2lkIHJ0d19jb3JlX2Z3X3NjYW5fbm90aWZ5KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgc3RhcnQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYz0xODM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg3MDNiX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYzoxODM3Olx0LnBvd2VyX29uXHRcdD0gcnR3X3Bvd2VyX29uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jLTE4MzgtXHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM9MTM5Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzIzZF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM6MTM5MzpcdC5wb3dlcl9vblx0XHQ9IHJ0d19wb3dlcl9vbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy0xMzk0LVx0LnBvd2VyX29mZlx0XHQ9IHJ0d19wb3dlcl9vZmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jPTIwNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgxNGFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jOjIwNTE6XHQucG93ZXJfb25cdFx0PSBydHdfcG93ZXJfb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjA1Mi1cdC5wb3dlcl9vZmZcdFx0PSBydHdfcG93ZXJfb2ZmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYz0xNjU4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjFjX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYzoxNjU5Olx0LnBvd2VyX29uXHRcdD0gcnR3X3Bvd2VyX29uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE2NjAtXHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MjE1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyYl9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM6MjE1MTpcdC5wb3dlcl9vblx0XHQ9IHJ0d19wb3dlcl9vbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYy0yMTUyLVx0LnBvd2VyX29mZlx0XHQ9IHJ0d19wb3dlcl9vZmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ4OTc6XHQucG93ZXJfb25cdFx0PSBydHdfcG93ZXJfb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDg5OC1cdC5wb3dlcl9vZmZcdFx0PSBydHdfcG93ZXJfb2ZmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Mjc5MgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUG93ZXItT24gU2VxdWVuY2UqKgoKT2theSwgc28gYHJ0d19wb3dlcl9vbmAgaXMgZGVmaW5pdGVseSBhbiBleHBvcnRlZCBmdW5jdGlvbi4gTXkgZmlyc3QgdGhvdWdodCBpczogSXMgdGhpcyB0aGUgKm9ubHkqIGVudHJ5IHBvaW50PyBJIG5lZWQgdG8gYmUgc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nIGNydWNpYWwuIExldCYjMzk7cyBkaWcgZGVlcGVyLiBBaCwgcmlnaHQsIEkgcmVtZW1iZXIgc2VlaW5nIGBydHdfY29yZV9zdGFydGAgaW4gYG1haW4uY2AuIEl0JiMzOTtzIGNhbGxpbmcgYHJ0d19wb3dlcl9vbmAsIHNvIHRoYXQgc29saWRpZmllcyB0aGUgY29ubmVjdGlvbi4gTm93LCB0aGUgbG9naWNhbCBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBpbnRvIHRoZSBgcnR3X2NvcmVfc3RhcnRgIGZ1bmN0aW9uIGl0c2VsZi4gVW5kZXJzdGFuZGluZyB0aGF0IGZsb3cgd2lsbCBwcm9iYWJseSBnaXZlIG1lIGEgbXVjaCBjbGVhcmVyIHBpY3R1cmUgb2YgdGhlIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyBhbmQgaG93IHRoaXMgYHJ0d19wb3dlcl9vbmAgZnVuY3Rpb24gZml0cyBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X2NvcmVfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NTM9c3RhdGljIGludCBydHdfb3BzX3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy01OC1cdG11dGV4X2xvY2soXHUwMDI2cnR3ZGV2LVx1MDAzZW11dGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo1OTpcdHJldCA9IHJ0d19jb3JlX3N0YXJ0KHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNjAtXHRtdXRleF91bmxvY2soXHUwMDI2cnR3ZGV2LVx1MDAzZW11dGV4KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0xNDkwPXZvaWQgcnR3X2NvcmVfc2Nhbl9jb21wbGV0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE1MTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoxNTE1OmludCBydHdfY29yZV9zdGFydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMTUxNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjI1Mz12b2lkIHJ0d19jb3JlX3NjYW5fY29tcGxldGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIyNTQtXHRcdFx0ICAgIGJvb2wgaHdfc2Nhbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjU1OmludCBydHdfY29yZV9zdGFydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIyNTYtdm9pZCBydHdfcG93ZXJfb2ZmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcHMuYz0xMz1zdGF0aWMgaW50IHJ0d19pcHNfcHdyX3VwKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wcy5jLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wcy5jOjE3Olx0cmV0ID0gcnR3X2NvcmVfc3RhcnQocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcHMuYy0xOC1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzNjkwCgkJCQkJCQlvdXRwdXQ6IDY5CgkJCQkJCQl0aG91Z2h0czogMTcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhbHRlayBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gdGhlIGBydHdfY29yZV9zdGFydGAgZnVuY3Rpb24sIHRoYXQmIzM5O3Mgd2hlcmUgdGhpbmdzIGtpY2sgb2ZmLiBJIHNlZSBmcm9tIHRoZSBjYWxsIGdyYXBoIHRoYXQgaXQgZ2V0cyBjYWxsZWQgZnJvbSBgcnR3X29wc19zdGFydGAgd2l0aGluIGBtYWM4MDIxMS5jYC4gQW5kIGBydHdfb3BzX3N0YXJ0YCBpcyB0aGUgYC5zdGFydGAgY2FsbGJhY2sgZm9yIG1hYzgwMjExLCByaWdodD8gU28sIGBydHdfY29yZV9zdGFydGAgc2VlbXMgbGlrZSBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZyDigJMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IHRvIGV4cGxvcmUuIEJ1dCB3YWl0LCBgcnR3X2NvcmVfc3RhcnRgIHJlc2lkZXMgaW4gYG1haW4uY2AsIGFuZCB0aGUgcGF0Y2ggc3BlY2lmaWNhbGx5IG1vZGlmaWVzIGNvZGUgaW4gYHJ0dzg4MjJjLmNgLiBGb2N1c2luZyBvbiBgcnR3X2NvcmVfc3RhcnRgIHdvdWxkIHByaW1hcmlseSBmdXp6IHRoZSBvdmVyYWxsIGRldmljZSBpbml0aWFsaXphdGlvbiwgbm90IHRoZSBzcGVjaWZpYyBjaGFuZ2VzLiBUaGF0IGRvZXNuJiMzOTt0IGZlZWwgcmlnaHQuCgpMZXQmIzM5O3MgcmV0aGluayB0aGlzLiBJcyB0aGVyZSBhbnl0aGluZyBlbHNlIGluIGBydHc4ODIyYy5jYCB0aGF0JiMzOTtzIGV4cG9ydGVkIG9yIG5vdCBzdGF0aWM/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgZnVuY3Rpb25zIHdpdGhpbiB0aGF0IHNwZWNpZmljIGZpbGUgYXJlIGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlLCBvciBwZXJoYXBzIG1vcmUgcmVsZXZhbnQgdG8gdGhlIHJlY2VudCBjaGFuZ2VzLiBUaW1lIHRvIGRpdmUgaW50byBgcnR3ODgyMmMuY2AgYW5kIHNlYXJjaCBmb3Igbm9uLXN0YXRpYyBmdW5jdGlvbnMuIFRoYXQmIzM5O3MgdGhlIHJlYWwgYXJlYSBJIG5lZWQgdG8gaG9uZSBpbiBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XlthLXpfMC05XSYjNDM7IHJ0dzg4MjJjX1thLXpfMC05XSYjNDM7XFwoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMDkwPXN0cnVjdCBkcGtfY2ZnX3BhaXIge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwOTY6dm9pZCBydHc4ODIyY19wYXJzZV90YmxfZHBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA5Ny1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHJ0d190YWJsZSAqdGJsKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDM3OQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIGNvZGUgYW5hbHlzaXM6CgoqKkNvZGUgU3RydWN0dXJlIGFuZCBWaXNpYmlsaXR5IEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgYHJ0dzg4MjJjLmNgIGZpbGUuIFRoZSBtYWluIHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoZSBmdW5jdGlvbiBgcnR3ODgyMmNfcGFyc2VfdGJsX2Rwa2AuIEl0JiMzOTtzIHRoZSBvbmx5IG9uZSBvZiB0aGUgYnVuY2ggdGhhdCYjMzk7cyAqbm90KiBkZWNsYXJlZCBhcyBgc3RhdGljYCBpbiB0aGF0IGZpbGUsIHdoaWNoIGltbWVkaWF0ZWx5IHNpZ25hbHMgaXQmIzM5O3MgbGlrZWx5IGludGVuZGVkIGZvciBleHRlcm5hbCB1c2UuIEkgbmVlZCB0byBrZWVwIHRoYXQgaW4gbWluZCB3aGVuIHRyYWNpbmcgdGhlIGRhdGEgZmxvdy4KCldhaXQgYSBzZWNvbmQsIHRoZXJlJiMzOTtzIGBydHc4ODIyY19vcHNgLiBUaGF0ICppcyogZGVjbGFyZWQgYHN0YXRpY2AsIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGxpbWl0ZWQgdG8gdGhlIHNjb3BlIG9mIHRoaXMgcGFydGljdWxhciBmaWxlLiBCdXQsIGFuZCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIEkgc2VlIHRoYXQgaXQmIzM5O3MgYmVpbmcgYXNzaWduZWQgdG8gYHJ0dzg4MjJjX2h3X3NwZWMub3BzYC4gT2theSwgc28gYHJ0dzg4MjJjX29wc2AgaXRzZWxmIGlzIGludGVybmFsLCBidXQgaXRzIGNvbnRlbnRzLCBwcmVzdW1hYmx5IGEgY29sbGVjdGlvbiBvZiBmdW5jdGlvbiBwb2ludGVycywgYXJlIHBvdGVudGlhbGx5IGFjY2Vzc2libGUgaW5kaXJlY3RseSB0aHJvdWdoIHRoYXQgYHJ0dzg4MjJjX2h3X3NwZWNgIHN0cnVjdC4KCkFoLCBhbmQgSSBzZWUgYHJ0dzg4MjJjX2h3X3NwZWNgIGl0c2VsZiBpcyAqZXhwb3J0ZWQqLiBUaGF0IGNvbmZpcm1zIHRoZSBoeXBvdGhlc2lzOyBpdCYjMzk7cyB0aGUgZ2F0ZXdheS4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGhvdyBgcnR3ODgyMmNfaHdfc3BlY2AgaXMgdXNlZC4gVGhpcyBzdHJ1Y3QgcHJvYmFibHkgYWN0cyBhcyB0aGUgY2VudHJhbCBpbnRlcmZhY2UsIGV4cG9zaW5nIGludGVybmFsIG9wZXJhdGlvbnMgdGhyb3VnaCBwb2ludGVycyB0byBleHRlcm5hbCBjb21wb25lbnRzLiBUaGlzIHdob2xlIHNldHVwIHN1Z2dlc3RzIGEgbW9kdWxhciBkZXNpZ24gd2hlcmUgY29yZSBmdW5jdGlvbmFsaXR5IGlzIGVuY2Fwc3VsYXRlZCwgYnV0IGNlcnRhaW4gaG9va3MgYXJlIHByb3ZpZGVkIGZvciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBkcml2ZXImIzM5O3MgZW52aXJvbm1lbnQuIE5vdywgSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdGhvc2UgZnVuY3Rpb25zIGRvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHc4ODIyY19od19zcGVjJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTUyNDg9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfcmVnX2RvbWFpbiBjb2V4X2luZm9faHdfcmVnc184ODIyY1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01MjcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUyNzM6Y29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gcnR3ODgyMmNfaHdfc3BlYyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01Mjc0LVx0Lm9wcyA9IFx1MDAyNnJ0dzg4MjJjX29wcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTM3Ny19O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUzNzg6RVhQT1JUX1NZTUJPTChydHc4ODIyY19od19zcGVjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01Mzc5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaD0xMjc9dm9pZCBydHc4ODIyY19wYXJzZV90YmxfZHBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTEyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDoxMzA6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvIHJ0dzg4MjJjX2h3X3NwZWM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgtMTMxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM9MTA9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ0d184ODIyY2VfaWRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTEyLVx0XHRQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywgMHhDODIyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM6MTM6XHRcdC5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjZydHc4ODIyY19od19zcGVjXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE0LVx0fSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE2LVx0XHRQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywgMHhDODJGKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM6MTc6XHRcdC5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjZydHc4ODIyY19od19zcGVjXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE4LVx0fSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjcy5jPTEyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb19kZXZpY2VfaWQgcnR3Xzg4MjJjc19pZF90YWJsZVtdID0gIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjcy5jLTE1LVx0XHRcdCAgICBTRElPX0RFVklDRV9JRF9SRUFMVEVLX1JUVzg4MjJDUyksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjcy5jOjE2Olx0XHQuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2cnR3ODgyMmNfaHdfc3BlYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNzLmMtMTctXHR9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM9MTE9c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODIyY3VfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTItXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgyYywgMHhmZiwgMHhmZiwgMHhmZiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jOjEzOlx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTE0LVx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MTIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYzoxNTpcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYy0xNi1cdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oUlRXX1VTQl9WRU5ET1JfSURfUkVBTFRFSywgMHhjODJlLCAweGZmLCAweGZmLCAweGZmKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTc6XHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjYocnR3ODgyMmNfaHdfc3BlYykgfSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTgtXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4ZDgyMCwgMHhmZiwgMHhmZiwgMHhmZiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jOjE5Olx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTIwLVx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGQ4MmIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYzoyMTpcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYy0yMi1cdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgxM2IxLCAweDAwNDMsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYzoyMzpcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LCAvKiBBbHBoYSAtIEFscGhhICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTI0LVx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4MzMyOSwgMHhmZiwgMHhmZiwgMHhmZiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jOjI1Olx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEQtTGluayBBQzEzVSByZXYuIEExICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTI2LVx0e30sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2ODQxCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqRGl2aW5nIGludG8gdGhlIHJ0dzg4MjJjdSBEcml2ZXIqKgoKQWxyaWdodCwgdGhlIFVTQiBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYHJ0dzg4MjJjdWAuIE5vIHN1cnByaXNlcyB0aGVyZSwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIGZyb20gdGhlIG5hbWUuIFRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBMZXQmIzM5O3Mgc3RhcnQgYnkgbG9va2luZyBhdCBgcnR3ODgyMmN1LmNgLCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGZpbGUuIFRoYXQmIzM5O3MgdGhlIGhlYXJ0IG9mIGhvdyB0aGlzIGRyaXZlciBmdW5jdGlvbnMuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIGFuZCBpdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQgdG8gdHJ1bHkgdW5kZXJzdGFuZCBpdHMgYmVoYXZpb3IsIHBvdGVudGlhbCBpc3N1ZXMsIG9yIGFyZWFzIGZvciBvcHRpbWl6YXRpb24uIEkmIzM5O20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIHRoaW5ncyBsaWtlIGludGVycnVwdCBoYW5kbGluZywgcG93ZXIgbWFuYWdlbWVudCByb3V0aW5lcywgYW5kIGFueSBjdXN0b20gZXh0ZW5zaW9ucyBpbXBsZW1lbnRlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gICAyOlx0LyogQ29weXJpZ2h0KGMpIDIwMTgtMjAxOSAgUmVhbHRlayBDb3Jwb3JhdGlvblxuICAgMzpcdCAqL1xuICAgNDpcdFxuICAgNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gICA2Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvdXNiLmhcdTAwM2VcbiAgIDc6XHQjaW5jbHVkZSBcJiMzNDttYWluLmhcJiMzNDtcbiAgIDg6XHQjaW5jbHVkZSBcJiMzNDtydHc4ODIyYy5oXCYjMzQ7XG4gICA5Olx0I2luY2x1ZGUgXCYjMzQ7dXNiLmhcJiMzNDtcbiAgMTA6XHRcbiAgMTE6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4MjJjdV9pZF90YWJsZVtdID0ge1xuICAxMjpcdFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MmMsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAxMzpcdFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXG4gIDE0Olx0XHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgxMiwgMHhmZiwgMHhmZiwgMHhmZiksXG4gIDE1Olx0XHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjYocnR3ODgyMmNfaHdfc3BlYykgfSxcbiAgMTY6XHRcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oUlRXX1VTQl9WRU5ET1JfSURfUkVBTFRFSywgMHhjODJlLCAweGZmLCAweGZmLCAweGZmKSxcbiAgMTc6XHRcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxuICAxODpcdFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGQ4MjAsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAxOTpcdFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXG4gIDIwOlx0XHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4ZDgyYiwgMHhmZiwgMHhmZiwgMHhmZiksXG4gIDIxOlx0XHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjYocnR3ODgyMmNfaHdfc3BlYykgfSxcbiAgMjI6XHRcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgxM2IxLCAweDAwNDMsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAyMzpcdFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEFscGhhIC0gQWxwaGEgKi9cbiAgMjQ6XHRcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgyMDAxLCAweDMzMjksIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAyNTpcdFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEQtTGluayBBQzEzVSByZXYuIEExICovXG4gIDI2Olx0XHR7fSxcbiAgMjc6XHR9O1xuICAyODpcdE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODgyMmN1X2lkX3RhYmxlKTtcbiAgMjk6XHRcbiAgMzA6XHRzdGF0aWMgaW50IHJ0dzg4MjJjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbiAgMzE6XHRcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4gIDMyOlx0e1xuICAzMzpcdFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xuICAzNDpcdH1cbiAgMzU6XHRcbiAgMzY6XHRzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4MjJjdV9kcml2ZXIgPSB7XG4gIDM3Olx0XHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuICAzODpcdFx0LmlkX3RhYmxlID0gcnR3Xzg4MjJjdV9pZF90YWJsZSxcbiAgMzk6XHRcdC5wcm9iZSA9IHJ0dzg4MjJjdV9wcm9iZSxcbiAgNDA6XHRcdC5kaXNjb25uZWN0ID0gcnR3X3VzYl9kaXNjb25uZWN0LFxuICA0MTpcdH07XG4gIDQyOlx0bW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4MjJjdV9kcml2ZXIpO1xuICA0MzpcdFxuICA0NDpcdE1PRFVMRV9BVVRIT1IoXCYjMzQ7UmVhbHRlayBDb3Jwb3JhdGlvblwmIzM0Oyk7XG4gIDQ1Olx0TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgODgyMmN1IGRyaXZlclwmIzM0Oyk7XG4gIDQ2Olx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDgxNjEKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIFVTQiBEcml2ZXImIzM5O3MgRW50cnkgUG9pbnQqKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzIFVTQiBkcml2ZXIuIEEgc29saWQgc3RhcnRpbmcgcG9pbnQsIGEgZ29vZCBmb2N1cyBzeW1ib2wsIGlzIG9mdGVuIHRoZSBwcm9iZSBmdW5jdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBgcnR3X3VzYl9wcm9iZWAgbG9va3MgcHJvbWlzaW5nLiBJdCYjMzk7cyBleHBvcnRlZCBieSBgdXNiLmNgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyB0aGUgbGlrZWx5IGVudHJ5IHBvaW50LiBHb29kLCB0aGF0IGNvbmZpcm1zIGl0JiMzOTtzIHRoZSByaWdodCBmdW5jdGlvbi4gQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byBleGFtaW5pbmcgYHJ0d191c2JfcHJvYmVgIGFuZCBzZWUgd2hhdCBpdCByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHdfdXNiX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZHUuYz0yMD1zdGF0aWMgaW50IHJ0dzg3MjNkdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkdS5jLTIyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2R1LmM6MjM6XHRyZXR1cm4gcnR3X3VzYl9wcm9iZShpbnRmLCBpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkdS5jLTI0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhdS5jPTg0PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODgxMmF1X2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhdS5jLTg2LVx0LmlkX3RhYmxlID0gcnR3Xzg4MTJhdV9pZF90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmF1LmM6ODc6XHQucHJvYmUgPSBydHdfdXNiX3Byb2JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYXUuYy04OC1cdC5kaXNjb25uZWN0ID0gcnR3X3VzYl9kaXNjb25uZWN0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGF1LmM9NDQ9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODE0YXVfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGF1LmMtNDYtXHQuaWRfdGFibGUgPSBydHdfODgxNGF1X2lkX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YXUuYzo0NzpcdC5wcm9iZSA9IHJ0d191c2JfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhdS5jLTQ4LVx0LmRpc2Nvbm5lY3QgPSBydHdfdXNiX2Rpc2Nvbm5lY3QsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYXUuYz02OD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4MjFhdV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYXUuYy03MC1cdC5pZF90YWJsZSA9IHJ0d184ODIxYXVfaWRfdGFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhdS5jOjcxOlx0LnByb2JlID0gcnR3X3VzYl9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWF1LmMtNzItXHQuZGlzY29ubmVjdCA9IHJ0d191c2JfZGlzY29ubmVjdCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjdS5jPTQ2PXN0YXRpYyBpbnQgcnR3Xzg4MjFjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjdS5jLTQ4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWN1LmM6NDk6XHRyZXR1cm4gcnR3X3VzYl9wcm9iZShpbnRmLCBpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjdS5jLTUwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJidS5jPTg4PXN0YXRpYyBpbnQgcnR3ODgyMmJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmMtOTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYnUuYzo5MTpcdHJldHVybiBydHdfdXNiX3Byb2JlKGludGYsIGlkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmMtOTItfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM9MzA9c3RhdGljIGludCBydHc4ODIyY3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYy0zMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jOjMzOlx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYy0zNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz0xMjI1PXN0YXRpYyB2b2lkIHJ0d191c2JfcGh5X2NmZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI2Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTI2MzppbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNTgtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzoxMzU5OkVYUE9SVF9TWU1CT0wocnR3X3VzYl9wcm9iZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuaD05MD1zdGF0aWMgaW5saW5lIHN0cnVjdCBydHdfdXNiX3R4X2RhdGEgKnJ0d191c2JfZ2V0X3R4X2RhdGEoc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5oLTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuaDoxMDA6aW50IHJ0d191c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5oLTEwMS12b2lkIHJ0d191c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5OTA5CgkJCQkJCQlvdXRwdXQ6IDE2OQoJCQkJCQkJdGhvdWdodHM6IDE1NTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJlYWx0ZWsgODgyMkMgREFDIElRIENhbGlicmF0aW9uIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gaWRlbnRpZnkgc3VpdGFibGUgZm9jdXMgc3ltYm9scyBmb3IgZnV6emluZy4gSSBxdWlja2x5IHNldHRsZWQgb24gYHJ0d191c2JfcHJvYmVgLCBgcnR3X2NvcmVfc3RhcnRgLCBhbmQgYHJ0d19wb3dlcl9vbmAuIFRoZXkgYXJlIGFsbCBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMsIHdoaWNoIGFsaWducyBwZXJmZWN0bHkgd2l0aCB0aGUgcHJvbXB0JiMzOTtzIHByZWZlcmVuY2UuCgpJIGNvbmZpcm1lZCB0aGF0IGFsbCB0aHJlZSBmdW5jdGlvbnMgYXJlIHJlbGV2YW50LCBnaXZlbiB0aGUgcGF0Y2gmIzM5O3MgbW9kaWZpY2F0aW9uIG9mIGBydHc4ODIyYy5jYCwgd2hpY2ggaXMgc2hhcmVkIGFjcm9zcyBVU0IsIFBDSSwgYW5kIFNESU8uIFNpbmNlIHdlJiMzOTtyZSB0YXJnZXRpbmcgVVNCLCBgcnR3X3VzYl9wcm9iZWAgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBhbmQgYHJ0d19jb3JlX3N0YXJ0YCBhbmQgYHJ0d19wb3dlcl9vbmAgYXJlIGdvb2QgZm9yIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkuIEkgdGhlbiB0cmFjZWQgdGhlIGNhbGwgcGF0aHMgdG8gdmVyaWZ5IHRoYXQgdGhlIHRhcmdldCBmdW5jdGlvbiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHJlYWNoYWJsZSBmcm9tIGBydHdfdXNiX3Byb2JlYCDigJMgYW5kIGluZGVlZCwgaXQgaXMhIFRoZSBwYXRoIGdvZXMgdGhyb3VnaCBgcnR3X2NvcmVfaW5pdGAsIGBydHdfY29yZV9zdGFydGAgKHZpYSBgcnR3X29wc19zdGFydGApLCBgcnR3X3Bvd2VyX29uYCwgYW5kIGRvd24gdG8gdGhlIHNwZWNpZmljIGNhbGlicmF0aW9uIGZ1bmN0aW9uLiBUaGlzIGlzIGtleTogdGhlIGNhbGlicmF0aW9uIGlzIHBhcnQgb2YgdGhlIGJyaW5nLXVwIHNlcXVlbmNlLgoKTmV4dCwgSSBuYWlsZWQgZG93biB0aGUgbmVjZXNzYXJ5IGtlcm5lbCBjb25maWd1cmF0aW9ucy4gYFJUVzg4YCBhbmQgYFJUVzg4Xzg4MjJDVWAgc2VlbSBzdWZmaWNpZW50LiBgUlRXODhfODgyMkNVYCBkZXBlbmRzIG9uIGBVU0JgLCBzbyBpdCYjMzk7cyBhIGdvb2QgY2hvaWNlIGZvciBVU0IgcGF0aCB0ZXN0aW5nLiBJIGNoZWNrZWQgdGhlIEtjb25maWcgdG8gdmVyaWZ5IHRoYXQgYFJUVzg4Xzg4MjJDVWAgaXMsIGluIGZhY3QsIHRoZSBjb3JyZWN0IG5hbWUsIGFuZCB0aGF0IGBSVFc4OF84ODIyQ2AgaXMgYXV0b21hdGljYWxseSBzZWxlY3RlZC4gU3RhbmRhcmQgY29uZmlndXJhdGlvbnMgbGlrZSBgTUFDODAyMTFgIGFuZCBgV0xBTmAgYXJlIGltcGxpZWQsIGFuZCBgVVNCYCBpcyBhbHNvIHN0YW5kYXJkLiBUaGVyZWZvcmUsIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgIGFyZSBlbm91Z2guCgpJIHJlLWV4YW1pbmVkIHRoZSBwYXRjaCBpdHNlbGYsIHdoaWNoIHVzZXMgYHNvcnQoKWAgdG8gc29ydCBJUSB2YWx1ZXMgYW5kIGNoYW5nZXMgZGF0YSB0eXBlcyB0byBgczMyYC4gVGhpcyBpbmRpY2F0ZXMgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiB3aXRoaW4gdGhlIGRyaXZlciYjMzk7cyBjYWxpYnJhdGlvbi4gVGhpcyBpcyBnb29kOiBhIGZ1bmN0aW9uYWwgY2hhbmdlLCByZWFjaGFibGUgdmlhIHRoZSBVU0IgcGF0aCwgbWFrZXMgaXQgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuCgpNeSByZWFzb25pbmc/IFRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gYHJ0dzg4MjJjLmNgLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgdGhlIFVTQiB2YXJpYW50IG9mIHRoZSBkcml2ZXIgYW5kIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbi4KClNvLCBpbiBzdW1tYXJ5OgoKKiAgICoqRm9jdXMgU3ltYm9scyoqOiBgcnR3X3VzYl9wcm9iZWAsIGBydHdfY29yZV9zdGFydGAsIGBydHdfcG93ZXJfb25gCiogICAqKkVuYWJsZSBDb25maWd1cmF0aW9ucyoqOiBgUlRXODhgLCBgUlRXODhfODgyMkNVYAoKWWVzLCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHJlYWNoYWJsZS4gTGV0JiMzOTtzIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJDVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0d191c2JfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3X2NvcmVfc3RhcnQmIzM0OywKICAgICYjMzQ7cnR3X3Bvd2VyX29uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIFJlYWx0ZWsgODgyMkMgd2lyZWxlc3MgZHJpdmVyLCByZXBsYWNpbmcgYSBjdXN0b20gc29ydGluZyBpbXBsZW1lbnRhdGlvbiB3aXRoIHRoZSBzdGFuZGFyZCBzb3J0KCkgZnVuY3Rpb24gYW5kIGNoYW5naW5nIHRoZSBkYXRhIHR5cGVzIGZyb20gdTMyIHRvIHMzMi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gYW5kIGNhbGlicmF0aW9uIHNlcXVlbmNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIHZhcmlhbnQgb2YgdGhlIGRyaXZlciAocnR3ODhfODgyMmN1KSB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODgmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMkNVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnR3X3VzYl9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHdfY29yZV9zdGFydCYjMzQ7LAogICAgJiMzNDtydHdfcG93ZXJfb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBpbml0aWFsaXphdGlvbiBhbmQgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgdmFyaWFudCBvZiB0aGUgZHJpdmVyIChydHc4OF84ODIyY3UpIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlZmFjdG9ycyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgcnR3ODggZHJpdmVyLCByZXBsYWNpbmcgY3VzdG9tIDEwLWJpdCB0d28mIzM5O3MgY29tcGxlbWVudCBhcml0aG1ldGljIGFuZCBhIGN1c3RvbSBidWJibGUgc29ydCB3aXRoIHN0YW5kYXJkIHNpZ25lZCBpbnRlZ2VycyAoczMyKSBhbmQgdGhlIGtlcm5lbCYjMzk7cyBzb3J0KCkgZnVuY3Rpb24uIFdoaWxlIHRoZSBzdGFjay1hbGxvY2F0ZWQgYXJyYXlzIGBpdmAgYW5kIGBxdmAgY291bGQgcG90ZW50aWFsbHkgYmUgcGFydGlhbGx5IHVuaW5pdGlhbGl6ZWQgaWYgdGhlIGhhcmR3YXJlIHJlYWQgbG9vcCB0aW1lcyBvdXQsIHRoaXMgZXhhY3Qgc2FtZSBiZWhhdmlvciBhbmQgc3Vic2VxdWVudCByZWFkaW5nIG9mIHRoZXNlIGFycmF5cyBleGlzdGVkIHByaW9yIHRvIHRoZSBwYXRjaC4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGFsbG9jYXRpb25zLCBub3IgZG9lcyBpdCBleHBvc2UgYW55IGtlcm5lbCBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZS4gQW55IHBvdGVudGlhbCBtZW1vcnkgc2FmZXR5IGlzc3VlcyAoc3VjaCBhcyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzKSB3b3VsZCBiZSBjYXVnaHQgYnkgc3RhbmRhcmQgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gc2Vzc2lvbiBpcyBub3QganVzdGlmaWVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeQplcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZApkZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpCmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLgoKQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46Ci0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZQogIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTgogIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVAKICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLgotIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLAogIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy4KClJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sCkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuCkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFkKc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3MKdGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi4KCkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0CnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLAphIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXMKdGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmcKdW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sCmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSwKY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuCgpTZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6CjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiCiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzCiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuCjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMKICAgb3Igc3RydWN0IGZpZWxkcy4KMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcwogICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLgo0LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2VzcwogICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuCgpTZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjoKLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlcgogIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodAogIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS4KLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZAogIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC4KLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuCgpVc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlCmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzNDNlMTZlMzgxN2YyNTYzOTRjYjM5NDcxNmJiZTUwMWMzM2JhNDJkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMTUgMDY6MzM6MzIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMKaW5kZXggMjQ0YzgwMjY0NzljMi4uMDE0MGYyZTY0NGNhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYwpAQCAtMyw2ICYjNDM7Myw3IEBACiAgKi8KIAogI2luY2x1ZGUgJmx0O2xpbnV4L21vZHVsZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9zb3J0LmgmZ3Q7CiAjaW5jbHVkZSAmIzM0O21haW4uaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2NvZXguaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2Z3LmgmIzM0OwpAQCAtMTgsNyAmIzQzOzE5LDcgQEAKICNpbmNsdWRlICYjMzQ7YmYuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2VmdXNlLmgmIzM0OwogCi0jZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWEKJiM0MzsjZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWE0CiAKIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ190cnhfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB0eF9wYXRoLAogCQkJCSAgICAgdTggcnhfcGF0aCwgYm9vbCBpc190eDJfcGF0aCk7CkBAIC0xNTMsODQgJiM0MzsxNTQsMjUgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX3Jlc3RvcmVfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBydHc4ODIyY19yZl9taW5tYXhfY21wKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSwKLQkJCQkgICB1MzIgKm1pbiwgdTMyICptYXgpCiYjNDM7c3RhdGljIGludCBydHc4ODIyY19kYWNfaXFfY21wX3MzMihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogewotCWlmICh2YWx1ZSAmZ3Q7PSAweDIwMCkgewotCQlpZiAoKm1pbiAmZ3Q7PSAweDIwMCkgewotCQkJaWYgKCptaW4gJmd0OyB2YWx1ZSkKLQkJCQkqbWluID0gdmFsdWU7Ci0JCX0gZWxzZSB7Ci0JCQkqbWluID0gdmFsdWU7Ci0JCX0KLQkJaWYgKCptYXggJmd0Oz0gMHgyMDApIHsKLQkJCWlmICgqbWF4ICZsdDsgdmFsdWUpCi0JCQkJKm1heCA9IHZhbHVlOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKCptaW4gJmx0OyAweDIwMCkgewotCQkJaWYgKCptaW4gJmd0OyB2YWx1ZSkKLQkJCQkqbWluID0gdmFsdWU7Ci0JCX0KJiM0MzsJczMyIHZhbF9hID0gKihjb25zdCBzMzIgKilhOwomIzQzOwlzMzIgdmFsX2IgPSAqKGNvbnN0IHMzMiAqKWI7CiAKLQkJaWYgKCptYXggICZndDs9IDB4MjAwKSB7Ci0JCQkqbWF4ID0gdmFsdWU7Ci0JCX0gZWxzZSB7Ci0JCQlpZiAoKm1heCAmbHQ7IHZhbHVlKQotCQkJCSptYXggPSB2YWx1ZTsKLQkJfQotCX0KJiM0MzsJcmV0dXJuICh2YWxfYSAmZ3Q7IHZhbF9iKSAtICh2YWxfYSAmbHQ7IHZhbF9iKTsKIH0KIAotc3RhdGljIHZvaWQgX19ydHc4ODIyY19kYWNfaXFfc29ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnYxLCB1MzIgKnYyKQotewotCWlmICgqdjEgJmd0Oz0gMHgyMDAgJmFtcDsmYW1wOyAqdjIgJmd0Oz0gMHgyMDApIHsKLQkJaWYgKCp2MSAmZ3Q7ICp2MikKLQkJCXN3YXAoKnYxLCAqdjIpOwotCX0gZWxzZSBpZiAoKnYxICZsdDsgMHgyMDAgJmFtcDsmYW1wOyAqdjIgJmx0OyAweDIwMCkgewotCQlpZiAoKnYxICZndDsgKnYyKQotCQkJc3dhcCgqdjEsICp2Mik7Ci0JfSBlbHNlIGlmICgqdjEgJmx0OyAweDIwMCAmYW1wOyZhbXA7ICp2MiAmZ3Q7PSAweDIwMCkgewotCQlzd2FwKCp2MSwgKnYyKTsKLQl9Ci19CiAKLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpCiYjNDM7c3RhdGljIHUzMiBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqdmVjKQogewotCXUzMiBpLCBqOwomIzQzOwlzMzIgc3VtID0gMDsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyBEQUNLX1NOXzg4MjJDIC0gMTsgaSYjNDM7JiM0MzspIHsKLQkJZm9yIChqID0gMDsgaiAmbHQ7IChEQUNLX1NOXzg4MjJDIC0gMSAtIGkpIDsgaiYjNDM7JiM0MzspIHsKLQkJCV9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCAmYW1wO2l2W2pdLCAmYW1wO2l2W2ogJiM0MzsgMV0pOwotCQkJX19ydHc4ODIyY19kYWNfaXFfc29ydChydHdkZXYsICZhbXA7cXZbal0sICZhbXA7cXZbaiAmIzQzOyAxXSk7Ci0JCX0KLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICp2ZWMsIHUzMiAqdmFsKQotewotCXUzMiBwLCBtLCB0LCBpOwotCi0JbSA9IDA7Ci0JcCA9IDA7Ci0JZm9yIChpID0gMTA7IGkgJmx0OyBEQUNLX1NOXzg4MjJDIC0gMTA7IGkmIzQzOyYjNDM7KSB7Ci0JCWlmICh2ZWNbaV0gJmd0OyAweDIwMCkKLQkJCW0gPSAoMHg0MDAgLSB2ZWNbaV0pICYjNDM7IG07Ci0JCWVsc2UKLQkJCXAgPSB2ZWNbaV0gJiM0MzsgcDsKLQl9CiYjNDM7CWZvciAodTMyIGkgPSAxMDsgaSAmbHQ7IERBQ0tfU05fODgyMkMgLSAxMDsgaSYjNDM7JiM0MzspCiYjNDM7CQlzdW0gJiM0Mzs9IHZlY1tpXTsKIAotCWlmIChwICZndDsgbSkgewotCQl0ID0gcCAtIG07Ci0JCXQgPSB0IC8gKERBQ0tfU05fODgyMkMgLSAyMCk7Ci0JfSBlbHNlIHsKLQkJdCA9IG0gLSBwOwotCQl0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApOwotCQlpZiAodCAhPSAweDApCi0JCQl0ID0gMHg0MDAgLSB0OwotCX0KJiM0MzsJczMyIGF2ZyA9IHN1bSAvIChEQUNLX1NOXzg4MjJDIC0gMjApOwogCi0JKnZhbCA9IHQ7CiYjNDM7CXJldHVybiBhdmcgJmd0Oz0gMCA/ICh1MzIpYXZnIDogKHUzMikoMHg0MDAgJiM0MzsgYXZnKTsKIH0KIAogc3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF93cml0ZV9hZGRyKHU4IHBhdGgpCkBAIC0yNzEsMjkgJiM0MzsyMTMsMjcgQEAgc3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF9yZWFkX2FkZHIodTggcGF0aCkKIAlyZXR1cm4gYmFzZV9hZGRyOwogfQogCi1zdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVlKQomIzQzO3N0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgdmFsdWUpCiB7Ci0JYm9vbCByZXQgPSB0cnVlOwogCi0JaWYgKCh2YWx1ZSAmZ3Q7PSAweDIwMCAmYW1wOyZhbXA7ICgweDQwMCAtIHZhbHVlKSAmZ3Q7IDB4NjQpIHx8Ci0JICAgICh2YWx1ZSAmbHQ7IDB4MjAwICZhbXA7JmFtcDsgdmFsdWUgJmd0OyAweDY0KSkgewotCQlyZXQgPSBmYWxzZTsKJiM0MzsJaWYgKHZhbHVlICZndDsgMTAwIHx8IHZhbHVlICZsdDsgLTEwMCkgewogCQlydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssICYjMzQ7W0RBQ0tdIEVycm9yIG92ZXJmbG93XG4mIzM0Oyk7CiYjNDM7CQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JcmV0dXJuIHJldDsKJiM0MzsJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpCiYjNDM7c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyICppdiwgczMyICpxdikKIHsKIAl1MzIgdGVtcDsKIAlpbnQgaSA9IDAsIGNudCA9IDA7CiAKIAl3aGlsZSAoaSAmbHQ7IERBQ0tfU05fODgyMkMgJmFtcDsmYW1wOyBjbnQgJmx0OyAxMDAwMCkgewogCQljbnQmIzQzOyYjNDM7OwotCQl0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7Ci0JCWl2W2ldID0gKHRlbXAgJmFtcDsgMHgzZmYwMDApICZndDsmZ3Q7IDEyOwotCQlxdltpXSA9IHRlbXAgJmFtcDsgMHgzZmY7CiYjNDM7CQl0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7CiYjNDM7CQlpdltpXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApOwomIzQzOwkJcXZbaV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTsKIAogCQlpZiAocnR3ODgyMmNfZGFjX2lxX2NoZWNrKHJ0d2RldiwgaXZbaV0pICZhbXA7JmFtcDsKIAkJICAgIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhydHdkZXYsIHF2W2ldKSkKQEAgLTMwMiwxMyAmIzQzOzI0MiwxMyBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KQogfQogCiBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LAotCQkJCSAgICAgICB1MzIgKml2LCB1MzIgKnF2LAomIzQzOwkJCQkgICAgICAgczMyICppdiwgczMyICpxdiwKIAkJCQkgICAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpCiB7Ci0JdTMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDsKJiM0MzsJczMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDsKIAl1MzIgaV9kZWx0YSwgcV9kZWx0YTsKIAl1MzIgdGVtcDsKLQlpbnQgaSwgY250ID0gMDsKJiM0MzsJdTMyIGksIGNudCA9IDA7CiAKIAlkbyB7CiAJCWlfbWluID0gaXZbMF07CkBAIC0zMTYsMjMgJiM0MzsyNTYsMTkgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwKIAkJcV9taW4gPSBxdlswXTsKIAkJcV9tYXggPSBxdlswXTsKIAkJZm9yIChpID0gMDsgaSAmbHQ7IERBQ0tfU05fODgyMkM7IGkmIzQzOyYjNDM7KSB7Ci0JCQlydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgaXZbaV0sICZhbXA7aV9taW4sICZhbXA7aV9tYXgpOwotCQkJcnR3ODgyMmNfcmZfbWlubWF4X2NtcChydHdkZXYsIHF2W2ldLCAmYW1wO3FfbWluLCAmYW1wO3FfbWF4KTsKJiM0MzsJCQlpZiAoaXZbaV0gJmx0OyBpX21pbikKJiM0MzsJCQkJaV9taW4gPSBpdltpXTsKJiM0MzsJCQlpZiAoaXZbaV0gJmd0OyBpX21heCkKJiM0MzsJCQkJaV9tYXggPSBpdltpXTsKJiM0MzsJCQlpZiAocXZbaV0gJmx0OyBxX21pbikKJiM0MzsJCQkJcV9taW4gPSBxdltpXTsKJiM0MzsJCQlpZiAocXZbaV0gJmd0OyBxX21heCkKJiM0MzsJCQkJcV9tYXggPSBxdltpXTsKIAkJfQogCi0JCWlmIChpX21heCAmbHQ7IDB4MjAwICZhbXA7JmFtcDsgaV9taW4gJmx0OyAweDIwMCkKLQkJCWlfZGVsdGEgPSBpX21heCAtIGlfbWluOwotCQllbHNlIGlmIChpX21heCAmZ3Q7PSAweDIwMCAmYW1wOyZhbXA7IGlfbWluICZndDs9IDB4MjAwKQotCQkJaV9kZWx0YSA9IGlfbWF4IC0gaV9taW47Ci0JCWVsc2UKLQkJCWlfZGVsdGEgPSBpX21heCAmIzQzOyAoMHg0MDAgLSBpX21pbik7CiYjNDM7CQlpX2RlbHRhID0gaV9tYXggLSBpX21pbjsKJiM0MzsJCXFfZGVsdGEgPSBxX21heCAtIHFfbWluOwogCi0JCWlmIChxX21heCAmbHQ7IDB4MjAwICZhbXA7JmFtcDsgcV9taW4gJmx0OyAweDIwMCkKLQkJCXFfZGVsdGEgPSBxX21heCAtIHFfbWluOwotCQllbHNlIGlmIChxX21heCAmZ3Q7PSAweDIwMCAmYW1wOyZhbXA7IHFfbWluICZndDs9IDB4MjAwKQotCQkJcV9kZWx0YSA9IHFfbWF4IC0gcV9taW47Ci0JCWVsc2UKLQkJCXFfZGVsdGEgPSBxX21heCAmIzQzOyAoMHg0MDAgLSBxX21pbik7CiAKIAkJcnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLAogCQkJJiMzNDtbREFDS10gaTogbWluPTB4JTA4eCwgbWF4PTB4JTA4eCwgZGVsdGE9MHglMDh4XG4mIzM0OywKQEAgLTM0MSwyOCAmIzQzOzI3NywyOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LAogCQkJJiMzNDtbREFDS10gcTogbWluPTB4JTA4eCwgbWF4PTB4JTA4eCwgZGVsdGE9MHglMDh4XG4mIzM0OywKIAkJCXFfbWluLCBxX21heCwgcV9kZWx0YSk7CiAKLQkJcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBpdiwgcXYpOwomIzQzOwkJc29ydChpdiwgREFDS19TTl84ODIyQywgc2l6ZW9mKHMzMiksIHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyLCBOVUxMKTsKJiM0MzsJCXNvcnQocXYsIERBQ0tfU05fODgyMkMsIHNpemVvZihzMzIpLCBydHc4ODIyY19kYWNfaXFfY21wX3MzMiwgTlVMTCk7CiAKIAkJaWYgKGlfZGVsdGEgJmd0OyA1IHx8IHFfZGVsdGEgJmd0OyA1KSB7Ci0JCQl0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7Ci0JCQlpdlswXSA9ICh0ZW1wICZhbXA7IDB4M2ZmMDAwKSAmZ3Q7Jmd0OyAxMjsKLQkJCXF2WzBdID0gdGVtcCAmYW1wOyAweDNmZjsKLQkJCXRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTsKLQkJCWl2W0RBQ0tfU05fODgyMkMgLSAxXSA9ICh0ZW1wICZhbXA7IDB4M2ZmMDAwKSAmZ3Q7Jmd0OyAxMjsKLQkJCXF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IHRlbXAgJmFtcDsgMHgzZmY7CiYjNDM7CQkJdGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpOwomIzQzOwkJCWl2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7CiYjNDM7CQkJcXZbMF0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTsKJiM0MzsJCQl0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7CiYjNDM7CQkJaXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7CiYjNDM7CQkJcXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7CiAJCX0gZWxzZSB7CiAJCQlicmVhazsKIAkJfQogCX0gd2hpbGUgKGNudCYjNDM7JiM0MzsgJmx0OyAxMDApOwogCi0JcnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIGl2LCBpX3ZhbHVlKTsKLQlydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgcXYsIHFfdmFsdWUpOwomIzQzOwkqaV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBpdik7CiYjNDM7CSpxX3ZhbHVlID0gcnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIHF2KTsKIH0KIAogc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsCiAJCQkJICAgICB1MzIgKmlfdmFsdWUsIHUzMiAqcV92YWx1ZSkKIHsKLQl1MzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdOwomIzQzOwlzMzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdOwogCXUzMiByZl9hLCByZl9iOwogCiAJcmZfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweDAsIFJGUkVHX01BU0spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oCmluZGV4IGZjNjJiNjdhMTVmMjEuLjdiZWE5OTYxNDM1NGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgKQEAgLTE0MSw2ICYjNDM7MTQxLDkgQEAgY29uc3Qgc3RydWN0IHJ0d190YWJsZSBuYW1lICMjIF90YmwgPSB7CQkJXAogI2RlZmluZSBEQUNLX1JGXzg4MjJDCQkxCiAjZGVmaW5lIERBQ0tfU05fODgyMkMJCTEwMAogCiYjNDM7I2RlZmluZSBSVFc4ODIyQ19EQUNfSVZfTUFTSyBHRU5NQVNLKDIxLCAxMikKJiM0MzsjZGVmaW5lIFJUVzg4MjJDX0RBQ19RVl9NQVNLIEdFTk1BU0soOSwgMCkKJiM0MzsKIC8qIHBoeSBzdGF0dXMgcGFnZTAgKi8KICNkZWZpbmUgR0VUX1BIWV9TVEFUX1AwX1BXREJfQShwaHlfc3RhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJbGUzMl9nZXRfYml0cygqKChfX2xlMzIgKikocGh5X3N0YXQpICYjNDM7IDB4MDApLCBHRU5NQVNLKDE1LCA4KSkKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDcvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNzEKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAxNzkyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVuaW5pdGlhbGl6ZWQgTWVtb3J5IFJpc2sgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYHJ0dzg4MjJjLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGNoYW5nZXMgaW4gYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlYCwgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCwgYW5kIGBydHc4ODIyY19kYWNfaXFfb2Zmc2V0YC4gIFRoZSBwYXRjaCBwcmltYXJpbHkgc3dhcHMgb3V0IGN1c3RvbSBzb3J0aW5nIGFuZCBtaW4vbWF4IGxvZ2ljIGZvciB0aGUgc3RhbmRhcmQgYHNvcnQoKWAgZnVuY3Rpb24gZnJvbSBgbGludXgvc29ydC5oYCwgd2hpY2ggaXMgYSBnb29kIG1vdmUgZm9yIG1haW50YWluYWJpbGl0eSBhbmQgcG9zc2libHkgcGVyZm9ybWFuY2UuIFRoZSBjaGFuZ2UgaW4gYXJyYXkgdHlwZXMgZnJvbSBgdTMyYCB0byBgczMyYCBhbmQgdGhlIHVzZSBvZiBgRklFTERfR0VUX1NJR05FRGAgZm9yIHJlZ2lzdGVyIHJlYWRzIGFyZSBhbHNvIHN0YW5kYXJkIHByb2NlZHVyZSBpbiB0aGVzZSBzaXR1YXRpb25zLgoKTXkgY29uY2VybiwgaG93ZXZlciwgaXMgd2hldGhlciB0aGlzIGludHJvZHVjZXMgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgcmlza3MsIHdoaWNoIGlzIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uIFRoZSBhcnJheXMgYGl2YCBhbmQgYHF2YCBhcmUgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayB3aXRoaW4gYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAsIGFzIGBzMzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdO2AsIHdoZXJlIGBEQUNLX1NOXzg4MjJDYCBpcyAxMDAuICBTbywgd2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgMTAwIGBzMzJgIGVsZW1lbnRzIGZvciBlYWNoIGFycmF5LCBhbGwgYWxsb2NhdGVkIG9uIHRoZSBzdGFjay4KCk5vdywgZG8gdGhlc2UgYXJyYXlzIGdldCBmdWxseSBpbml0aWFsaXplZCBiZWZvcmUgdXNlPyBJIGxvb2sgYXQgaG93IHRoZSBhcnJheXMgYXJlIHBvcHVsYXRlZCwgd2hpY2ggaXMgdmlhIGBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZWAuIFRoZSBzYW1wbGUgZnVuY3Rpb24gcmVhZHMgYSByZWdpc3RlciBhbmQgcG9wdWxhdGVzIHRoZSBhcnJheXMgaW5zaWRlIGEgYHdoaWxlYCBsb29wIHRoYXQgY2FuIHRlcm1pbmF0ZSBlYXJseSBpZiBhIGNvdW50ZXIgYGNudGAgcmVhY2hlcyAxMDAwMCBiZWZvcmUgYWxsIGFycmF5IGVsZW1lbnRzIGFyZSBpbml0aWFsaXplZC4gVGhlIGNoZWNrIGZvciB0ZXJtaW5hdGlvbiBjb25kaXRpb25zIGlzOiBgaSAmbHQ7IERBQ0tfU05fODgyMkMgJmFtcDsmYW1wOyBjbnQgJmx0OyAxMDAwMGAsIHNvIGlmIGBjbnRgIHJlYWNoZXMgMTAwMDAsIHRoZSBhcnJheSBgaXZgIGFuZCBgcXZgIGVsZW1lbnRzIHdpbGwgYmUgcGFydGlhbGx5IHVuaW5pdGlhbGl6ZWQuICBJIGltbWVkaWF0ZWx5IHJlY29nbml6ZSB0aGlzIGFzIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuCgpCdXQgaG9sZCBvbiwgbGV0IG1lIHF1aWNrbHkgZ28gYmFjayBhbmQgY2hlY2sgaWYgdGhpcyB3YXMgYSAqbmV3KiBwcm9ibGVtIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaC4gQW5kIGl0JiMzOTtzIG5vdC4gVGhlIG9sZCBpbXBsZW1lbnRhdGlvbiB1c2luZyBgdTMyYCBoYWQgdGhlIHNhbWUgY29uZGl0aW9uLiBUaGlzIG1lYW5zIHRoYXQgZXZlbiBiZWZvcmUgbXkgY2hhbmdlcywgdGhlIHByb2dyYW0gd2FzIGFsc28gc3ViamVjdCB0byB1bmluaXRpYWxpemVkIG1lbW9yeSBiZWluZyByZWFkLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoZSB0eXBlIGNvbnZlcnNpb24gZnJvbSBgdTMyYCB0byBgczMyYCAoYW5kIHRoZSBjaGFuZ2UgaW4gc29ydGluZyBtZWNoYW5pc20pLgoKU28sIHdoYXQgaGFwcGVucyBpZiBgaXZgIGFuZCBgcXZgIGFyZSBvbmx5ICpwYXJ0aWFsbHkqIGluaXRpYWxpemVkLCBhbmQgd2UgcmVhZCB0aGUgdmFsdWVzIGxhdGVyPyBUaGUgZnVuY3Rpb24gYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBpcyBjYWxsZWQgbmV4dCwgYW5kIGluc2lkZSBpdCwgd2UgaGF2ZSBhIGxvb3AgdGhhdCByZWFkcyBgaXZbaV1gIGFuZCBgcXZbaV1gLCB0aGVuIHdlIHJ1biBgc29ydCgpYCBhbmQgYHJ0dzg4MjJjX2RhY19pcV9vZmZzZXRgLCBhbGwgcG90ZW50aWFsbHkgcmVhZGluZyB0aGVzZSB1bmluaXRpYWxpemVkIHZhbHVlcy4gIFRoaXMgaXMgYSBkZWZpbml0ZSBpc3N1ZSDigJMgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgZXZlbiBpZiBpdCYjMzk7cyBub3QgYSAqbmV3KiBwcm9ibGVtLCBpcyBzdGlsbCBhIGNyaXRpY2FsIG9uZS4KClRoZSBmaW5hbCBxdWVzdGlvbjogZG9lcyB0aGlzIGxlYWsgdG8gdXNlcnNwYWNlPyBMb29raW5nIGF0IGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgLCBpdCB0YWtlcyBgdTMyICppX3ZhbHVlYCBhbmQgYHUzMiAqcV92YWx1ZWAgYXMgYXJndW1lbnRzLCBhbmQgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBjYWxjdWxhdGVzIHZhbHVlcyBmb3IgdGhlc2UgcG9pbnRlcnMuICBTbywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgIGlzIGNhbGxlZCB0byBzZWUgaWYgdGhlIHJlc3VsdGluZyB2YWx1ZXMgYXJlIHBhc3NlZCB0byBvdGhlciBmdW5jdGlvbnMuIEkmIzM5O2xsIHVzZSBgZ3JlcHBlcmAgdG8gc2VhcmNoIGZvciBjYWxsZXJzLiBUaGlzIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0byB1bmRlcnN0YW5kIHRoZSBzY29wZSBvZiB0aGUgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yNDQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDAtXHRcdFx0XHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMzE9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9hZGMoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY4LVx0XHRydHdfd3JpdGUzMihydHdkZXYsIDB4MWMyNCwgMHgwMDAxMDAwMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY5Olx0XHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcdTAwMjZpYywgXHUwMDI2cWMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM3MC1cdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zODgtXHRcdHJ0d193cml0ZTMyKHJ0d2RldiwgMHgxYzNjLCBwYXRoX3NlbCAmIzQzOyAweDgxMDMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM4OTpcdFx0cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHJ0d2RldiwgXHUwMDI2aWMsIFx1MDAyNnFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zOTAtXHRcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDU0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ3MjpcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFx1MDAyNmljX2luLCBcdTAwMjZxY19pbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDczLVx0aWMgPSBpY19pbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NTAzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTUzLVx0cnR3X3dyaXRlMzIocnR3ZGV2LCBiYXNlX2FkZHIgJiM0MzsgMHg2MCwgMHhmMDAwMDAwMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTU0Olx0cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHJ0d2RldiwgXHUwMDI2aWMsIFx1MDAyNnFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01NTUtXHRpZiAoaWMgXHUwMDNlPSAweDEwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ5LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzE0CgkJCQkJCQlvdXRwdXQ6IDE3NwoJCQkJCQkJdGhvdWdodHM6IDM5NDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgdGhlIHJ0dzg4MjJjIElRIENhbGlicmF0aW9uIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IHByaW1hcnkgY29uY2VybiBpcyBLTVNBTiBhbmQgd2hldGhlciB0aGlzIHBhdGNoIGludHJvZHVjZXMgb3IgZXhwb3NlcyBhbnkgbmV3IHJlYWRzIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBvciBhbnkgb3V0LW9mLWJvdW5kcyBhY2Nlc3Nlcy4KCkluaXRpYWxseSwgSSYjMzk7bSBzZWVpbmcgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGFuZCBgcnR3ODgyMmNfZGFjX2lxX29mZnNldGAgYXJlIHJlYWRpbmcgZGF0YSBhbmQgcG90ZW50aWFsbHkgdXNpbmcgdGhlIHJlc3VsdCBpbiB3cml0ZXMgdG8gaGFyZHdhcmUgb3IgY29udHJvbCBmbG93LiBUaGlzIHJhaXNlcyBhIGZsYWcuICBLTVNBTiBpcyBkZXNpZ25lZCB0byBjYXRjaCB0aGlzLiAgSWYgYGNudGAgaW4gdGhlIGNvZGUgaGl0cyAxMDAwMCwgYW5kIGBpYCAmbHQ7IGBEQUNLX1NOXzg4MjJDYCwgaXQgbG9va3MgbGlrZSB0aGUgYXJyYXlzIGBpdmAgYW5kIGBxdmAgbWlnaHQgYmUgcGFydGlhbGx5IHVuaW5pdGlhbGl6ZWQuICBUaGVuLCB0aGUgY29kZSBjYWxscyBgc29ydCgpYCBvbiB0aGVtLiAgVGhhdCB3aWxsIHJlYWQgdGhlIHZhbHVlcyBpbiB0aG9zZSBhcnJheXMuICAqKlRoYXQgc2hvdWxkIHRyaWdnZXIgS01TQU4qKi4gQnV0LCBpcyB0aGlzICpuZXcqPwoKTGV0JiMzOTtzIGxvb2sgYXQgdGhlIHByZS1wYXRjaCBjb2RlLiBCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB3YXMgY2FsbGluZyBgcnR3ODgyMmNfZGFjX2lxX3NvcnRgLCB3aGljaCBhbHNvIGRpZCBzb3J0aW5nIHVzaW5nIGN1c3RvbSBsb2dpYy4gVGhlIGNvZGUgcmVhZHMgdGhlIGFycmF5IGVsZW1lbnRzIGR1cmluZyBzb3J0aW5nLiBUaGVyZWZvcmUsIHRoaXMgaXNzdWUgd2FzIHByZXNlbnQgYmVmb3JlIHRoZSBwYXRjaCBhcyB3ZWxsLiBLTVNBTiB3b3VsZCBoYXZlIGNhdWdodCB0aGlzIGNvbmRpdGlvbiByZWdhcmRsZXNzLCBzbyB0aGUgcGF0Y2ggZG9lc24mIzM5O3QgKmV4cG9zZSogb3IgKmludHJvZHVjZSogYW55ICpuZXcqIGlzc3VlIGhlcmUuCgpUaGUgcGF0Y2ggaXRzZWxmIGludm9sdmVzIGEgY2hhbmdlIGZyb20gcmVhZGluZyBkYXRhIHVzaW5nIGBydHdfcmVhZDMyX21hc2tgIHRvIHVzaW5nIGBydHdfcmVhZDMyYCBhbmQgYEZJRUxEX0dFVF9TSUdORURgIG1hY3Jvcy4gIFRoZSBtYWNyb3Mgc2ltcGx5IGV4dHJhY3QgYml0ZmllbGRzLiBUaGlzIHNob3VsZG4mIzM5O3QgYmUgYSBwcm9ibGVtLCB0aGV5JiMzOTtyZSBub3QgZG9pbmcgYW55dGhpbmcgdW51c3VhbCwganVzdCBtYXNraW5nIGFuZCBzaWduLWV4dGVuZGluZyB0aGUgcmVhZCB2YWx1ZXMuIGBGSUVMRF9HRVRfU0lHTkVEYCBpc24mIzM5O3QgYSBsaWtlbHkgY3VscHJpdC4KCk5vdywgbGV0JiMzOTtzIHRoaW5rIGFib3V0IGBydHc4ODIyY19kYWNfaXFfb2Zmc2V0YC4gSXQgaXRlcmF0ZXMgdGhyb3VnaCBhbiBhcnJheSBgdmVjYC4gRG9lcyB0aGUgcGF0Y2ggY2hhbmdlIHRoaXM/IEluIGZhY3QsIHRoZSBwYXRjaCAqZG9lcyBub3QqIGNoYW5nZSB0aGUgbG9naWMgaW4gdGhpcyBjYXNlLiAgSXQgc2VlbXMgdGhlIGNvZGUgaXMgdXNpbmcgdGhlIGVsZW1lbnRzLCBzbyBLTVNBTiBzaG91bGQgY2F0Y2ggYW55IGlzc3VlcyB3aXRoIHVuaW5pdGlhbGl6ZWQgcmVhZHMuCgpTbywgYXJlIHRoZXJlIGFueSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzICppbnRyb2R1Y2VkKiBieSB0aGUgcGF0Y2g/IFRoZSBjb21wYXJpc29uIGZ1bmN0aW9uLCBgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzJgLCBpcyBzdGFuZGFyZCwgYW5kIHRoZSBjYWxscyB0byBgc29ydGAgYXJlIG9uIGFycmF5cyBhbGxvY2F0ZWQgaW4gdGhlIGNhbGxlciBvbiB0aGUgc3RhY2ssIGFuZCBpdCYjMzk7cyBhbGwgYmFzZWQgb24gdGhlIGRhdGEgd2l0aGluIHRob3NlIGFycmF5cy4gVGhpcyBkb2VzbiYjMzk7dCBzZWVtIHRvIGJlIGEgcHJvYmxlbS4gVGhlIGFycmF5cyBgaXZgIGFuZCBgcXZgIGFyZSBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrLiBUaGUgdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWUsIGFnYWluLCBpc24mIzM5O3QgbmV3LiAgSWYgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlYCAqZG9lc24mIzM5O3QqIGZpbGwgdGhlIGFycmF5IGBpdmAgYW5kIGBxdmAgY29tcGxldGVseSwgdGhlbiBgc29ydCgpYCB3aWxsIHJlYWQgZnJvbSB1bmluaXRpYWxpemVkIHN0YWNrIG1lbW9yeS4gSXQgd2FzICphbHdheXMqIHRoZSBjYXNlLgoKSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gRG9lcyB0aGUgcGF0Y2ggY2hhbmdlIGhvdyB0aGUgc2FtcGxlIGZpbGxzIHRoZSBhcnJheT8gQmVmb3JlLCB0aGVyZSB3YXMgYSBjaGVjazogIGBydHc4ODIyY19kYWNfaXFfY2hlY2tgLCBidXQgdGhlIGxvZ2ljIGlzIGVxdWl2YWxlbnQuIFRoZSBjaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyAobm93IHVzaW5nIHNpZ25lZCBpbnRlZ2Vycywgc28gbm8gbW9yZSBpc3N1ZXMgd2l0aCB0d28mIzM5O3MgY29tcGxlbWVudCB1bnNpZ25lZCAxMC1iaXQgaW50ZWdlcikgaXMgaWRlbnRpY2FsLCB0aGVyZWZvcmUsIGl0IHJlbWFpbnMgdGhlIHNhbWUuIFRoZSBjb2RlIGp1c3QgY2hhbmdlZCB0aGUgdHlwZXMuCgpOb3csIGlmIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAgaXMgY2FsbGVkIHdpdGggdW5pbml0aWFsaXplZCBtZW1vcnksIHRoYXQmIzM5O3MgcG9zc2libGUuICBUaGUgY29kZSBtb2RpZmllcyB0aGUgZmlyc3QgYW5kIGxhc3QgZWxlbWVudHM6ICBgaXZbMF1gLCBgcXZbMF1gLCBgaXZbREFDS19TTl84ODIyQyAtIDFdYCwgYW5kIGBxdltEQUNLX1NOXzg4MjJDIC0gMV1gLiBUaGVuLCB0aGUgbG9vcCByZWFkcyB0aGUgZW50aXJlIGFycmF5LiAgSWYgdGhlIGFycmF5cyBhcmUgdW5pbml0aWFsaXplZCwgdGhlbiB0aGF0IGlzIGFuIGlzc3VlLiAgS01TQU4gd2lsbCBjYXRjaCBpdCwgYnV0IHRoaXMgaXMgdGhlIHByZS1leGlzdGluZyBiZWhhdmlvci4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpcyByZWZhY3RvcmluZy4gSXQgcmVwbGFjZXMgY3VzdG9tIHNvcnRpbmcgYW5kIG1pbi9tYXggbG9naWMgd2l0aCBgc29ydGAgYW5kIHN0YW5kYXJkIGNvbXBhcmlzb25zLiBJdCBkb2VzICpub3QqIGludHJvZHVjZSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNlLiBJZiB0aGUgaGFyZHdhcmUgdGltZXMgb3V0LCB0aGF0JiMzOTtzIGFscmVhZHkgaW4gdGhlIG9sZCBjb2RlLiAgS01TQU4gd2lsbCBjYXRjaCBpdC4KCkxldCYjMzk7cyBkbyBhIGZpbmFsIGNoZWNrLiAgYGl2YCBhbmQgYHF2YCBhcmUgYWxsb2NhdGVkIGluIGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgLiBgREFDS19TTl84ODIyQ2AgaXMgdGhlIGNvcnJlY3QgdmFsdWUuIFRoZSBgRklFTERfR0VUX1NJR05FRGAgbWFjcm9zIGV4dHJhY3QgdGhlIGNvcnJlY3QgYml0cy4gIFRoZSBgc29ydGAgZnVuY3Rpb24gdXNlcyBhIHN0YW5kYXJkIGNvbXBhcmlzb24gZnVuY3Rpb24uCgpCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB1c2VkIGEgY3VzdG9tIHNvcnRpbmcgZnVuY3Rpb24uCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIElRIGNhbGlicmF0aW9uIGxvZ2ljIGluIHRoZSBydHc4OCBkcml2ZXIsIHJlcGxhY2luZyBjdXN0b20gMTAtYml0IHR3byYjMzk7cyBjb21wbGVtZW50IGFyaXRobWV0aWMgYW5kIGEgY3VzdG9tIGJ1YmJsZSBzb3J0IHdpdGggc3RhbmRhcmQgc2lnbmVkIGludGVnZXJzIChzMzIpIGFuZCB0aGUga2VybmVsJiMzOTtzIHNvcnQoKSBmdW5jdGlvbi4gV2hpbGUgdGhlIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgYGl2YCBhbmQgYHF2YCBjb3VsZCBwb3RlbnRpYWxseSBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBpZiB0aGUgaGFyZHdhcmUgcmVhZCBsb29wIHRpbWVzIG91dCwgdGhpcyBleGFjdCBzYW1lIGJlaGF2aW9yIGFuZCBzdWJzZXF1ZW50IHJlYWRpbmcgb2YgdGhlc2UgYXJyYXlzIGV4aXN0ZWQgcHJpb3IgdG8gdGhlIHBhdGNoLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgYWxsb2NhdGlvbnMsIG5vciBkb2VzIGl0IGV4cG9zZSBhbnkga2VybmVsIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlLiBBbnkgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWVzIChzdWNoIGFzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMpIHdvdWxkIGJlIGNhdWdodCBieSBzdGFuZGFyZCBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIHJ0dzg4IGRyaXZlciwgcmVwbGFjaW5nIGN1c3RvbSAxMC1iaXQgdHdvJiMzOTtzIGNvbXBsZW1lbnQgYXJpdGhtZXRpYyBhbmQgYSBjdXN0b20gYnViYmxlIHNvcnQgd2l0aCBzdGFuZGFyZCBzaWduZWQgaW50ZWdlcnMgKHMzMikgYW5kIHRoZSBrZXJuZWwmIzM5O3Mgc29ydCgpIGZ1bmN0aW9uLiBXaGlsZSB0aGUgc3RhY2stYWxsb2NhdGVkIGFycmF5cyBgaXZgIGFuZCBgcXZgIGNvdWxkIHBvdGVudGlhbGx5IGJlIHBhcnRpYWxseSB1bmluaXRpYWxpemVkIGlmIHRoZSBoYXJkd2FyZSByZWFkIGxvb3AgdGltZXMgb3V0LCB0aGlzIGV4YWN0IHNhbWUgYmVoYXZpb3IgYW5kIHN1YnNlcXVlbnQgcmVhZGluZyBvZiB0aGVzZSBhcnJheXMgZXhpc3RlZCBwcmlvciB0byB0aGUgcGF0Y2guIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyB1bmluaXRpYWxpemVkIG1lbW9yeSBhbGxvY2F0aW9ucywgbm9yIGRvZXMgaXQgZXhwb3NlIGFueSBrZXJuZWwgc3RydWN0dXJlcyB0byB1c2Vyc3BhY2UuIEFueSBwb3RlbnRpYWwgbWVtb3J5IHNhZmV0eSBpc3N1ZXMgKHN1Y2ggYXMgb3V0LW9mLWJvdW5kcyBhY2Nlc3Nlcykgd291bGQgYmUgY2F1Z2h0IGJ5IHN0YW5kYXJkIEtBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzM6MzMuOTQ4NTQ4NjE4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1OTk4NzAwMjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdXNiX3Byb2JlXCIsXG4gICAgXCJydHdfY29yZV9zdGFydFwiLFxuICAgIFwicnR3X3Bvd2VyX29uXCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIHJ0dzg4IGRyaXZlciwgcmVwbGFjaW5nIGN1c3RvbSAxMC1iaXQgdHdvJ3MgY29tcGxlbWVudCBhcml0aG1ldGljIGFuZCBhIGN1c3RvbSBidWJibGUgc29ydCB3aXRoIHN0YW5kYXJkIHNpZ25lZCBpbnRlZ2VycyAoczMyKSBhbmQgdGhlIGtlcm5lbCdzIHNvcnQoKSBmdW5jdGlvbi4gV2hpbGUgdGhlIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgYGl2YCBhbmQgYHF2YCBjb3VsZCBwb3RlbnRpYWxseSBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBpZiB0aGUgaGFyZHdhcmUgcmVhZCBsb29wIHRpbWVzIG91dCwgdGhpcyBleGFjdCBzYW1lIGJlaGF2aW9yIGFuZCBzdWJzZXF1ZW50IHJlYWRpbmcgb2YgdGhlc2UgYXJyYXlzIGV4aXN0ZWQgcHJpb3IgdG8gdGhlIHBhdGNoLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgYWxsb2NhdGlvbnMsIG5vciBkb2VzIGl0IGV4cG9zZSBhbnkga2VybmVsIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlLiBBbnkgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWVzIChzdWNoIGFzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMpIHdvdWxkIGJlIGNhdWdodCBieSBzdGFuZGFyZCBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGFuZCBjYWxpYnJhdGlvbiBzZXF1ZW5jZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiB2YXJpYW50IG9mIHRoZSBkcml2ZXIgKHJ0dzg4Xzg4MjJjdSkgdXNpbmcgVVNCIGdhZGdldCBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjMzOjMzLjk0ODU1NTg2OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQwNzQ4OTYzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDM0M2UxNmUzODE3ZjI1NjM5NGNiMzk0NzE2YmJlNTAxYzMzYmE0MmRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBBdWcgMTUgMDY6MzM6MzIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jXFxuaW5kZXggMjQ0YzgwMjY0NzljMi4uMDE0MGYyZTY0NGNhOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcXG5AQCAtMyw2ICszLDcgQEBcXG4gICovXFxuIFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb3J0LmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcXCJtYWluLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJjb2V4LmhcXFwiXFxuICNpbmNsdWRlIFxcXCJmdy5oXFxcIlxcbkBAIC0xOCw3ICsxOSw3IEBAXFxuICNpbmNsdWRlIFxcXCJiZi5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiZWZ1c2UuaFxcXCJcXG4gXFxuLSNkZWZpbmUgSVFLX0RPTkVfODgyMkMgMHhhYVxcbisjZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWE0XFxuIFxcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcXG4gXFx0XFx0XFx0XFx0ICAgICB1OCByeF9wYXRoLCBib29sIGlzX3R4Ml9wYXRoKTtcXG5AQCAtMTUzLDg0ICsxNTQsMjUgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX3Jlc3RvcmVfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuIFxcdH1cXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfbWlubWF4X2NtcChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgdmFsdWUsXFxuLVxcdFxcdFxcdFxcdCAgIHUzMiAqbWluLCB1MzIgKm1heClcXG4rc3RhdGljIGludCBydHc4ODIyY19kYWNfaXFfY21wX3MzMihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKVxcbiB7XFxuLVxcdGlmICh2YWx1ZSBcXHUwMDNlPSAweDIwMCkge1xcbi1cXHRcXHRpZiAoKm1pbiBcXHUwMDNlPSAweDIwMCkge1xcbi1cXHRcXHRcXHRpZiAoKm1pbiBcXHUwMDNlIHZhbHVlKVxcbi1cXHRcXHRcXHRcXHQqbWluID0gdmFsdWU7XFxuLVxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdCptaW4gPSB2YWx1ZTtcXG4tXFx0XFx0fVxcbi1cXHRcXHRpZiAoKm1heCBcXHUwMDNlPSAweDIwMCkge1xcbi1cXHRcXHRcXHRpZiAoKm1heCBcXHUwMDNjIHZhbHVlKVxcbi1cXHRcXHRcXHRcXHQqbWF4ID0gdmFsdWU7XFxuLVxcdFxcdH1cXG4tXFx0fSBlbHNlIHtcXG4tXFx0XFx0aWYgKCptaW4gXFx1MDAzYyAweDIwMCkge1xcbi1cXHRcXHRcXHRpZiAoKm1pbiBcXHUwMDNlIHZhbHVlKVxcbi1cXHRcXHRcXHRcXHQqbWluID0gdmFsdWU7XFxuLVxcdFxcdH1cXG4rXFx0czMyIHZhbF9hID0gKihjb25zdCBzMzIgKilhO1xcbitcXHRzMzIgdmFsX2IgPSAqKGNvbnN0IHMzMiAqKWI7XFxuIFxcbi1cXHRcXHRpZiAoKm1heCAgXFx1MDAzZT0gMHgyMDApIHtcXG4tXFx0XFx0XFx0Km1heCA9IHZhbHVlO1xcbi1cXHRcXHR9IGVsc2Uge1xcbi1cXHRcXHRcXHRpZiAoKm1heCBcXHUwMDNjIHZhbHVlKVxcbi1cXHRcXHRcXHRcXHQqbWF4ID0gdmFsdWU7XFxuLVxcdFxcdH1cXG4tXFx0fVxcbitcXHRyZXR1cm4gKHZhbF9hIFxcdTAwM2UgdmFsX2IpIC0gKHZhbF9hIFxcdTAwM2MgdmFsX2IpO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqdjEsIHUzMiAqdjIpXFxuLXtcXG4tXFx0aWYgKCp2MSBcXHUwMDNlPSAweDIwMCBcXHUwMDI2XFx1MDAyNiAqdjIgXFx1MDAzZT0gMHgyMDApIHtcXG4tXFx0XFx0aWYgKCp2MSBcXHUwMDNlICp2MilcXG4tXFx0XFx0XFx0c3dhcCgqdjEsICp2Mik7XFxuLVxcdH0gZWxzZSBpZiAoKnYxIFxcdTAwM2MgMHgyMDAgXFx1MDAyNlxcdTAwMjYgKnYyIFxcdTAwM2MgMHgyMDApIHtcXG4tXFx0XFx0aWYgKCp2MSBcXHUwMDNlICp2MilcXG4tXFx0XFx0XFx0c3dhcCgqdjEsICp2Mik7XFxuLVxcdH0gZWxzZSBpZiAoKnYxIFxcdTAwM2MgMHgyMDAgXFx1MDAyNlxcdTAwMjYgKnYyIFxcdTAwM2U9IDB4MjAwKSB7XFxuLVxcdFxcdHN3YXAoKnYxLCAqdjIpO1xcbi1cXHR9XFxuLX1cXG4gXFxuLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpXFxuK3N0YXRpYyB1MzIgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKnZlYylcXG4ge1xcbi1cXHR1MzIgaSwgajtcXG4rXFx0czMyIHN1bSA9IDA7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgREFDS19TTl84ODIyQyAtIDE7IGkrKykge1xcbi1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgKERBQ0tfU05fODgyMkMgLSAxIC0gaSkgOyBqKyspIHtcXG4tXFx0XFx0XFx0X19ydHc4ODIyY19kYWNfaXFfc29ydChydHdkZXYsIFxcdTAwMjZpdltqXSwgXFx1MDAyNml2W2ogKyAxXSk7XFxuLVxcdFxcdFxcdF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBcXHUwMDI2cXZbal0sIFxcdTAwMjZxdltqICsgMV0pO1xcbi1cXHRcXHR9XFxuLVxcdH1cXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnZlYywgdTMyICp2YWwpXFxuLXtcXG4tXFx0dTMyIHAsIG0sIHQsIGk7XFxuLVxcbi1cXHRtID0gMDtcXG4tXFx0cCA9IDA7XFxuLVxcdGZvciAoaSA9IDEwOyBpIFxcdTAwM2MgREFDS19TTl84ODIyQyAtIDEwOyBpKyspIHtcXG4tXFx0XFx0aWYgKHZlY1tpXSBcXHUwMDNlIDB4MjAwKVxcbi1cXHRcXHRcXHRtID0gKDB4NDAwIC0gdmVjW2ldKSArIG07XFxuLVxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0cCA9IHZlY1tpXSArIHA7XFxuLVxcdH1cXG4rXFx0Zm9yICh1MzIgaSA9IDEwOyBpIFxcdTAwM2MgREFDS19TTl84ODIyQyAtIDEwOyBpKyspXFxuK1xcdFxcdHN1bSArPSB2ZWNbaV07XFxuIFxcbi1cXHRpZiAocCBcXHUwMDNlIG0pIHtcXG4tXFx0XFx0dCA9IHAgLSBtO1xcbi1cXHRcXHR0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApO1xcbi1cXHR9IGVsc2Uge1xcbi1cXHRcXHR0ID0gbSAtIHA7XFxuLVxcdFxcdHQgPSB0IC8gKERBQ0tfU05fODgyMkMgLSAyMCk7XFxuLVxcdFxcdGlmICh0ICE9IDB4MClcXG4tXFx0XFx0XFx0dCA9IDB4NDAwIC0gdDtcXG4tXFx0fVxcbitcXHRzMzIgYXZnID0gc3VtIC8gKERBQ0tfU05fODgyMkMgLSAyMCk7XFxuIFxcbi1cXHQqdmFsID0gdDtcXG4rXFx0cmV0dXJuIGF2ZyBcXHUwMDNlPSAwID8gKHUzMilhdmcgOiAodTMyKSgweDQwMCArIGF2Zyk7XFxuIH1cXG4gXFxuIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxcbkBAIC0yNzEsMjkgKzIxMywyNyBAQCBzdGF0aWMgdTMyIHJ0dzg4MjJjX2dldF9wYXRoX3JlYWRfYWRkcih1OCBwYXRoKVxcbiBcXHRyZXR1cm4gYmFzZV9hZGRyO1xcbiB9XFxuIFxcbi1zdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVlKVxcbitzdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyIHZhbHVlKVxcbiB7XFxuLVxcdGJvb2wgcmV0ID0gdHJ1ZTtcXG4gXFxuLVxcdGlmICgodmFsdWUgXFx1MDAzZT0gMHgyMDAgXFx1MDAyNlxcdTAwMjYgKDB4NDAwIC0gdmFsdWUpIFxcdTAwM2UgMHg2NCkgfHxcXG4tXFx0ICAgICh2YWx1ZSBcXHUwMDNjIDB4MjAwIFxcdTAwMjZcXHUwMDI2IHZhbHVlIFxcdTAwM2UgMHg2NCkpIHtcXG4tXFx0XFx0cmV0ID0gZmFsc2U7XFxuK1xcdGlmICh2YWx1ZSBcXHUwMDNlIDEwMCB8fCB2YWx1ZSBcXHUwMDNjIC0xMDApIHtcXG4gXFx0XFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCBcXFwiW0RBQ0tdIEVycm9yIG92ZXJmbG93XFxcXG5cXFwiKTtcXG4rXFx0XFx0cmV0dXJuIGZhbHNlO1xcbiBcXHR9XFxuIFxcbi1cXHRyZXR1cm4gcmV0O1xcbitcXHRyZXR1cm4gdHJ1ZTtcXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdilcXG4rc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyICppdiwgczMyICpxdilcXG4ge1xcbiBcXHR1MzIgdGVtcDtcXG4gXFx0aW50IGkgPSAwLCBjbnQgPSAwO1xcbiBcXG4gXFx0d2hpbGUgKGkgXFx1MDAzYyBEQUNLX1NOXzg4MjJDIFxcdTAwMjZcXHUwMDI2IGNudCBcXHUwMDNjIDEwMDAwKSB7XFxuIFxcdFxcdGNudCsrO1xcbi1cXHRcXHR0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7XFxuLVxcdFxcdGl2W2ldID0gKHRlbXAgXFx1MDAyNiAweDNmZjAwMCkgXFx1MDAzZVxcdTAwM2UgMTI7XFxuLVxcdFxcdHF2W2ldID0gdGVtcCBcXHUwMDI2IDB4M2ZmO1xcbitcXHRcXHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XFxuK1xcdFxcdGl2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XFxuK1xcdFxcdHF2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XFxuIFxcbiBcXHRcXHRpZiAocnR3ODgyMmNfZGFjX2lxX2NoZWNrKHJ0d2RldiwgaXZbaV0pIFxcdTAwMjZcXHUwMDI2XFxuIFxcdFxcdCAgICBydHc4ODIyY19kYWNfaXFfY2hlY2socnR3ZGV2LCBxdltpXSkpXFxuQEAgLTMwMiwxMyArMjQyLDEzIEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpXFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLVxcdFxcdFxcdFxcdCAgICAgICB1MzIgKml2LCB1MzIgKnF2LFxcbitcXHRcXHRcXHRcXHQgICAgICAgczMyICppdiwgczMyICpxdixcXG4gXFx0XFx0XFx0XFx0ICAgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxcbiB7XFxuLVxcdHUzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7XFxuK1xcdHMzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7XFxuIFxcdHUzMiBpX2RlbHRhLCBxX2RlbHRhO1xcbiBcXHR1MzIgdGVtcDtcXG4tXFx0aW50IGksIGNudCA9IDA7XFxuK1xcdHUzMiBpLCBjbnQgPSAwO1xcbiBcXG4gXFx0ZG8ge1xcbiBcXHRcXHRpX21pbiA9IGl2WzBdO1xcbkBAIC0zMTYsMjMgKzI1NiwxOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbiBcXHRcXHRxX21pbiA9IHF2WzBdO1xcbiBcXHRcXHRxX21heCA9IHF2WzBdO1xcbiBcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgREFDS19TTl84ODIyQzsgaSsrKSB7XFxuLVxcdFxcdFxcdHJ0dzg4MjJjX3JmX21pbm1heF9jbXAocnR3ZGV2LCBpdltpXSwgXFx1MDAyNmlfbWluLCBcXHUwMDI2aV9tYXgpO1xcbi1cXHRcXHRcXHRydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgcXZbaV0sIFxcdTAwMjZxX21pbiwgXFx1MDAyNnFfbWF4KTtcXG4rXFx0XFx0XFx0aWYgKGl2W2ldIFxcdTAwM2MgaV9taW4pXFxuK1xcdFxcdFxcdFxcdGlfbWluID0gaXZbaV07XFxuK1xcdFxcdFxcdGlmIChpdltpXSBcXHUwMDNlIGlfbWF4KVxcbitcXHRcXHRcXHRcXHRpX21heCA9IGl2W2ldO1xcbitcXHRcXHRcXHRpZiAocXZbaV0gXFx1MDAzYyBxX21pbilcXG4rXFx0XFx0XFx0XFx0cV9taW4gPSBxdltpXTtcXG4rXFx0XFx0XFx0aWYgKHF2W2ldIFxcdTAwM2UgcV9tYXgpXFxuK1xcdFxcdFxcdFxcdHFfbWF4ID0gcXZbaV07XFxuIFxcdFxcdH1cXG4gXFxuLVxcdFxcdGlmIChpX21heCBcXHUwMDNjIDB4MjAwIFxcdTAwMjZcXHUwMDI2IGlfbWluIFxcdTAwM2MgMHgyMDApXFxuLVxcdFxcdFxcdGlfZGVsdGEgPSBpX21heCAtIGlfbWluO1xcbi1cXHRcXHRlbHNlIGlmIChpX21heCBcXHUwMDNlPSAweDIwMCBcXHUwMDI2XFx1MDAyNiBpX21pbiBcXHUwMDNlPSAweDIwMClcXG4tXFx0XFx0XFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XFxuLVxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0aV9kZWx0YSA9IGlfbWF4ICsgKDB4NDAwIC0gaV9taW4pO1xcbitcXHRcXHRpX2RlbHRhID0gaV9tYXggLSBpX21pbjtcXG4rXFx0XFx0cV9kZWx0YSA9IHFfbWF4IC0gcV9taW47XFxuIFxcbi1cXHRcXHRpZiAocV9tYXggXFx1MDAzYyAweDIwMCBcXHUwMDI2XFx1MDAyNiBxX21pbiBcXHUwMDNjIDB4MjAwKVxcbi1cXHRcXHRcXHRxX2RlbHRhID0gcV9tYXggLSBxX21pbjtcXG4tXFx0XFx0ZWxzZSBpZiAocV9tYXggXFx1MDAzZT0gMHgyMDAgXFx1MDAyNlxcdTAwMjYgcV9taW4gXFx1MDAzZT0gMHgyMDApXFxuLVxcdFxcdFxcdHFfZGVsdGEgPSBxX21heCAtIHFfbWluO1xcbi1cXHRcXHRlbHNlXFxuLVxcdFxcdFxcdHFfZGVsdGEgPSBxX21heCArICgweDQwMCAtIHFfbWluKTtcXG4gXFxuIFxcdFxcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcXG4gXFx0XFx0XFx0XFxcIltEQUNLXSBpOiBtaW49MHglMDh4LCBtYXg9MHglMDh4LCBkZWx0YT0weCUwOHhcXFxcblxcXCIsXFxuQEAgLTM0MSwyOCArMjc3LDI5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuIFxcdFxcdFxcdFxcXCJbREFDS10gcTogbWluPTB4JTA4eCwgbWF4PTB4JTA4eCwgZGVsdGE9MHglMDh4XFxcXG5cXFwiLFxcbiBcXHRcXHRcXHRxX21pbiwgcV9tYXgsIHFfZGVsdGEpO1xcbiBcXG4tXFx0XFx0cnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBpdiwgcXYpO1xcbitcXHRcXHRzb3J0KGl2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xcbitcXHRcXHRzb3J0KHF2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xcbiBcXG4gXFx0XFx0aWYgKGlfZGVsdGEgXFx1MDAzZSA1IHx8IHFfZGVsdGEgXFx1MDAzZSA1KSB7XFxuLVxcdFxcdFxcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcXG4tXFx0XFx0XFx0aXZbMF0gPSAodGVtcCBcXHUwMDI2IDB4M2ZmMDAwKSBcXHUwMDNlXFx1MDAzZSAxMjtcXG4tXFx0XFx0XFx0cXZbMF0gPSB0ZW1wIFxcdTAwMjYgMHgzZmY7XFxuLVxcdFxcdFxcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcXG4tXFx0XFx0XFx0aXZbREFDS19TTl84ODIyQyAtIDFdID0gKHRlbXAgXFx1MDAyNiAweDNmZjAwMCkgXFx1MDAzZVxcdTAwM2UgMTI7XFxuLVxcdFxcdFxcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IHRlbXAgXFx1MDAyNiAweDNmZjtcXG4rXFx0XFx0XFx0dGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpO1xcbitcXHRcXHRcXHRpdlswXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApO1xcbitcXHRcXHRcXHRxdlswXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApO1xcbitcXHRcXHRcXHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XFxuK1xcdFxcdFxcdGl2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApO1xcbitcXHRcXHRcXHRxdltEQUNLX1NOXzg4MjJDIC0gMV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTtcXG4gXFx0XFx0fSBlbHNlIHtcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdH1cXG4gXFx0fSB3aGlsZSAoY250KysgXFx1MDAzYyAxMDApO1xcbiBcXG4tXFx0cnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIGl2LCBpX3ZhbHVlKTtcXG4tXFx0cnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIHF2LCBxX3ZhbHVlKTtcXG4rXFx0KmlfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgaXYpO1xcbitcXHQqcV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdik7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbiBcXHRcXHRcXHRcXHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxcbiB7XFxuLVxcdHUzMiBpdltEQUNLX1NOXzg4MjJDXSwgcXZbREFDS19TTl84ODIyQ107XFxuK1xcdHMzMiBpdltEQUNLX1NOXzg4MjJDXSwgcXZbREFDS19TTl84ODIyQ107XFxuIFxcdHUzMiByZl9hLCByZl9iO1xcbiBcXG4gXFx0cmZfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweDAsIFJGUkVHX01BU0spO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmhcXG5pbmRleCBmYzYyYjY3YTE1ZjIxLi43YmVhOTk2MTQzNTRiIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxcbkBAIC0xNDEsNiArMTQxLDkgQEAgY29uc3Qgc3RydWN0IHJ0d190YWJsZSBuYW1lICMjIF90YmwgPSB7XFx0XFx0XFx0XFxcXFxcbiAjZGVmaW5lIERBQ0tfUkZfODgyMkNcXHRcXHQxXFxuICNkZWZpbmUgREFDS19TTl84ODIyQ1xcdFxcdDEwMFxcbiBcXG4rI2RlZmluZSBSVFc4ODIyQ19EQUNfSVZfTUFTSyBHRU5NQVNLKDIxLCAxMilcXG4rI2RlZmluZSBSVFc4ODIyQ19EQUNfUVZfTUFTSyBHRU5NQVNLKDksIDApXFxuK1xcbiAvKiBwaHkgc3RhdHVzIHBhZ2UwICovXFxuICNkZWZpbmUgR0VUX1BIWV9TVEFUX1AwX1BXREJfQShwaHlfc3RhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuIFxcdGxlMzJfZ2V0X2JpdHMoKigoX19sZTMyICopKHBoeV9zdGF0KSArIDB4MDApLCBHRU5NQVNLKDE1LCA4KSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzM6MzUuMzU2ODk2MTQzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTIyNDA4NjA2MTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdXNiX3Byb2JlXCIsXG4gICAgXCJydHdfY29yZV9zdGFydFwiLFxuICAgIFwicnR3X3Bvd2VyX29uXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGFuZCBjYWxpYnJhdGlvbiBzZXF1ZW5jZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiB2YXJpYW50IG9mIHRoZSBkcml2ZXIgKHJ0dzg4Xzg4MjJjdSkgdXNpbmcgVVNCIGdhZGdldCBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM0M2UxNmUzODE3ZjI1NjM5NGNiMzk0NzE2YmJlNTAxYzMzYmE0MmRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxNSAwNjozMzozMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1xuaW5kZXggMjQ0YzgwMjY0NzljMi4uMDE0MGYyZTY0NGNhOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jXG5AQCAtMyw2ICszLDcgQEBcbiAgKi9cbiBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGUuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvcnQuaFx1MDAzZVxuICNpbmNsdWRlIFwibWFpbi5oXCJcbiAjaW5jbHVkZSBcImNvZXguaFwiXG4gI2luY2x1ZGUgXCJmdy5oXCJcbkBAIC0xOCw3ICsxOSw3IEBAXG4gI2luY2x1ZGUgXCJiZi5oXCJcbiAjaW5jbHVkZSBcImVmdXNlLmhcIlxuIFxuLSNkZWZpbmUgSVFLX0RPTkVfODgyMkMgMHhhYVxuKyNkZWZpbmUgSVFLX0RPTkVfODgyMkMgMHhhYTRcbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbiBcdFx0XHRcdCAgICAgdTggcnhfcGF0aCwgYm9vbCBpc190eDJfcGF0aCk7XG5AQCAtMTUzLDg0ICsxNTQsMjUgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX3Jlc3RvcmVfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHR9XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX21pbm1heF9jbXAoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVlLFxuLVx0XHRcdFx0ICAgdTMyICptaW4sIHUzMiAqbWF4KVxuK3N0YXRpYyBpbnQgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYilcbiB7XG4tXHRpZiAodmFsdWUgXHUwMDNlPSAweDIwMCkge1xuLVx0XHRpZiAoKm1pbiBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdFx0aWYgKCptaW4gXHUwMDNlIHZhbHVlKVxuLVx0XHRcdFx0Km1pbiA9IHZhbHVlO1xuLVx0XHR9IGVsc2Uge1xuLVx0XHRcdCptaW4gPSB2YWx1ZTtcbi1cdFx0fVxuLVx0XHRpZiAoKm1heCBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdFx0aWYgKCptYXggXHUwMDNjIHZhbHVlKVxuLVx0XHRcdFx0Km1heCA9IHZhbHVlO1xuLVx0XHR9XG4tXHR9IGVsc2Uge1xuLVx0XHRpZiAoKm1pbiBcdTAwM2MgMHgyMDApIHtcbi1cdFx0XHRpZiAoKm1pbiBcdTAwM2UgdmFsdWUpXG4tXHRcdFx0XHQqbWluID0gdmFsdWU7XG4tXHRcdH1cbitcdHMzMiB2YWxfYSA9ICooY29uc3QgczMyICopYTtcbitcdHMzMiB2YWxfYiA9ICooY29uc3QgczMyICopYjtcbiBcbi1cdFx0aWYgKCptYXggIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0XHQqbWF4ID0gdmFsdWU7XG4tXHRcdH0gZWxzZSB7XG4tXHRcdFx0aWYgKCptYXggXHUwMDNjIHZhbHVlKVxuLVx0XHRcdFx0Km1heCA9IHZhbHVlO1xuLVx0XHR9XG4tXHR9XG4rXHRyZXR1cm4gKHZhbF9hIFx1MDAzZSB2YWxfYikgLSAodmFsX2EgXHUwMDNjIHZhbF9iKTtcbiB9XG4gXG4tc3RhdGljIHZvaWQgX19ydHc4ODIyY19kYWNfaXFfc29ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnYxLCB1MzIgKnYyKVxuLXtcbi1cdGlmICgqdjEgXHUwMDNlPSAweDIwMCBcdTAwMjZcdTAwMjYgKnYyIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0aWYgKCp2MSBcdTAwM2UgKnYyKVxuLVx0XHRcdHN3YXAoKnYxLCAqdjIpO1xuLVx0fSBlbHNlIGlmICgqdjEgXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiAqdjIgXHUwMDNjIDB4MjAwKSB7XG4tXHRcdGlmICgqdjEgXHUwMDNlICp2Milcbi1cdFx0XHRzd2FwKCp2MSwgKnYyKTtcbi1cdH0gZWxzZSBpZiAoKnYxIFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgKnYyIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0c3dhcCgqdjEsICp2Mik7XG4tXHR9XG4tfVxuIFxuLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpXG4rc3RhdGljIHUzMiBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqdmVjKVxuIHtcbi1cdHUzMiBpLCBqO1xuK1x0czMyIHN1bSA9IDA7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBEQUNLX1NOXzg4MjJDIC0gMTsgaSsrKSB7XG4tXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIChEQUNLX1NOXzg4MjJDIC0gMSAtIGkpIDsgaisrKSB7XG4tXHRcdFx0X19ydHc4ODIyY19kYWNfaXFfc29ydChydHdkZXYsIFx1MDAyNml2W2pdLCBcdTAwMjZpdltqICsgMV0pO1xuLVx0XHRcdF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBcdTAwMjZxdltqXSwgXHUwMDI2cXZbaiArIDFdKTtcbi1cdFx0fVxuLVx0fVxuLX1cbi1cbi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqdmVjLCB1MzIgKnZhbClcbi17XG4tXHR1MzIgcCwgbSwgdCwgaTtcbi1cbi1cdG0gPSAwO1xuLVx0cCA9IDA7XG4tXHRmb3IgKGkgPSAxMDsgaSBcdTAwM2MgREFDS19TTl84ODIyQyAtIDEwOyBpKyspIHtcbi1cdFx0aWYgKHZlY1tpXSBcdTAwM2UgMHgyMDApXG4tXHRcdFx0bSA9ICgweDQwMCAtIHZlY1tpXSkgKyBtO1xuLVx0XHRlbHNlXG4tXHRcdFx0cCA9IHZlY1tpXSArIHA7XG4tXHR9XG4rXHRmb3IgKHUzMiBpID0gMTA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkMgLSAxMDsgaSsrKVxuK1x0XHRzdW0gKz0gdmVjW2ldO1xuIFxuLVx0aWYgKHAgXHUwMDNlIG0pIHtcbi1cdFx0dCA9IHAgLSBtO1xuLVx0XHR0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApO1xuLVx0fSBlbHNlIHtcbi1cdFx0dCA9IG0gLSBwO1xuLVx0XHR0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApO1xuLVx0XHRpZiAodCAhPSAweDApXG4tXHRcdFx0dCA9IDB4NDAwIC0gdDtcbi1cdH1cbitcdHMzMiBhdmcgPSBzdW0gLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbiBcbi1cdCp2YWwgPSB0O1xuK1x0cmV0dXJuIGF2ZyBcdTAwM2U9IDAgPyAodTMyKWF2ZyA6ICh1MzIpKDB4NDAwICsgYXZnKTtcbiB9XG4gXG4gc3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF93cml0ZV9hZGRyKHU4IHBhdGgpXG5AQCAtMjcxLDI5ICsyMTMsMjcgQEAgc3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF9yZWFkX2FkZHIodTggcGF0aClcbiBcdHJldHVybiBiYXNlX2FkZHI7XG4gfVxuIFxuLXN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgdmFsdWUpXG4rc3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiB2YWx1ZSlcbiB7XG4tXHRib29sIHJldCA9IHRydWU7XG4gXG4tXHRpZiAoKHZhbHVlIFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2ICgweDQwMCAtIHZhbHVlKSBcdTAwM2UgMHg2NCkgfHxcbi1cdCAgICAodmFsdWUgXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiB2YWx1ZSBcdTAwM2UgMHg2NCkpIHtcbi1cdFx0cmV0ID0gZmFsc2U7XG4rXHRpZiAodmFsdWUgXHUwMDNlIDEwMCB8fCB2YWx1ZSBcdTAwM2MgLTEwMCkge1xuIFx0XHRydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssIFwiW0RBQ0tdIEVycm9yIG92ZXJmbG93XFxuXCIpO1xuK1x0XHRyZXR1cm4gZmFsc2U7XG4gXHR9XG4gXG4tXHRyZXR1cm4gcmV0O1xuK1x0cmV0dXJuIHRydWU7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpXG4rc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyICppdiwgczMyICpxdilcbiB7XG4gXHR1MzIgdGVtcDtcbiBcdGludCBpID0gMCwgY250ID0gMDtcbiBcbiBcdHdoaWxlIChpIFx1MDAzYyBEQUNLX1NOXzg4MjJDIFx1MDAyNlx1MDAyNiBjbnQgXHUwMDNjIDEwMDAwKSB7XG4gXHRcdGNudCsrO1xuLVx0XHR0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7XG4tXHRcdGl2W2ldID0gKHRlbXAgXHUwMDI2IDB4M2ZmMDAwKSBcdTAwM2VcdTAwM2UgMTI7XG4tXHRcdHF2W2ldID0gdGVtcCBcdTAwMjYgMHgzZmY7XG4rXHRcdHRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTtcbitcdFx0aXZbaV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19JVl9NQVNLLCB0ZW1wKTtcbitcdFx0cXZbaV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTtcbiBcbiBcdFx0aWYgKHJ0dzg4MjJjX2RhY19pcV9jaGVjayhydHdkZXYsIGl2W2ldKSBcdTAwMjZcdTAwMjZcbiBcdFx0ICAgIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhydHdkZXYsIHF2W2ldKSlcbkBAIC0zMDIsMTMgKzI0MiwxMyBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KVxuIH1cbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLVx0XHRcdFx0ICAgICAgIHUzMiAqaXYsIHUzMiAqcXYsXG4rXHRcdFx0XHQgICAgICAgczMyICppdiwgczMyICpxdixcbiBcdFx0XHRcdCAgICAgICB1MzIgKmlfdmFsdWUsIHUzMiAqcV92YWx1ZSlcbiB7XG4tXHR1MzIgaV9tYXggPSAwLCBxX21heCA9IDAsIGlfbWluID0gMCwgcV9taW4gPSAwO1xuK1x0czMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDtcbiBcdHUzMiBpX2RlbHRhLCBxX2RlbHRhO1xuIFx0dTMyIHRlbXA7XG4tXHRpbnQgaSwgY250ID0gMDtcbitcdHUzMiBpLCBjbnQgPSAwO1xuIFxuIFx0ZG8ge1xuIFx0XHRpX21pbiA9IGl2WzBdO1xuQEAgLTMxNiwyMyArMjU2LDE5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHRcdHFfbWluID0gcXZbMF07XG4gXHRcdHFfbWF4ID0gcXZbMF07XG4gXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkM7IGkrKykge1xuLVx0XHRcdHJ0dzg4MjJjX3JmX21pbm1heF9jbXAocnR3ZGV2LCBpdltpXSwgXHUwMDI2aV9taW4sIFx1MDAyNmlfbWF4KTtcbi1cdFx0XHRydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgcXZbaV0sIFx1MDAyNnFfbWluLCBcdTAwMjZxX21heCk7XG4rXHRcdFx0aWYgKGl2W2ldIFx1MDAzYyBpX21pbilcbitcdFx0XHRcdGlfbWluID0gaXZbaV07XG4rXHRcdFx0aWYgKGl2W2ldIFx1MDAzZSBpX21heClcbitcdFx0XHRcdGlfbWF4ID0gaXZbaV07XG4rXHRcdFx0aWYgKHF2W2ldIFx1MDAzYyBxX21pbilcbitcdFx0XHRcdHFfbWluID0gcXZbaV07XG4rXHRcdFx0aWYgKHF2W2ldIFx1MDAzZSBxX21heClcbitcdFx0XHRcdHFfbWF4ID0gcXZbaV07XG4gXHRcdH1cbiBcbi1cdFx0aWYgKGlfbWF4IFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgaV9taW4gXHUwMDNjIDB4MjAwKVxuLVx0XHRcdGlfZGVsdGEgPSBpX21heCAtIGlfbWluO1xuLVx0XHRlbHNlIGlmIChpX21heCBcdTAwM2U9IDB4MjAwIFx1MDAyNlx1MDAyNiBpX21pbiBcdTAwM2U9IDB4MjAwKVxuLVx0XHRcdGlfZGVsdGEgPSBpX21heCAtIGlfbWluO1xuLVx0XHRlbHNlXG4tXHRcdFx0aV9kZWx0YSA9IGlfbWF4ICsgKDB4NDAwIC0gaV9taW4pO1xuK1x0XHRpX2RlbHRhID0gaV9tYXggLSBpX21pbjtcbitcdFx0cV9kZWx0YSA9IHFfbWF4IC0gcV9taW47XG4gXG4tXHRcdGlmIChxX21heCBcdTAwM2MgMHgyMDAgXHUwMDI2XHUwMDI2IHFfbWluIFx1MDAzYyAweDIwMClcbi1cdFx0XHRxX2RlbHRhID0gcV9tYXggLSBxX21pbjtcbi1cdFx0ZWxzZSBpZiAocV9tYXggXHUwMDNlPSAweDIwMCBcdTAwMjZcdTAwMjYgcV9taW4gXHUwMDNlPSAweDIwMClcbi1cdFx0XHRxX2RlbHRhID0gcV9tYXggLSBxX21pbjtcbi1cdFx0ZWxzZVxuLVx0XHRcdHFfZGVsdGEgPSBxX21heCArICgweDQwMCAtIHFfbWluKTtcbiBcbiBcdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLFxuIFx0XHRcdFwiW0RBQ0tdIGk6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxcblwiLFxuQEAgLTM0MSwyOCArMjc3LDI5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHRcdFx0XCJbREFDS10gcTogbWluPTB4JTA4eCwgbWF4PTB4JTA4eCwgZGVsdGE9MHglMDh4XFxuXCIsXG4gXHRcdFx0cV9taW4sIHFfbWF4LCBxX2RlbHRhKTtcbiBcbi1cdFx0cnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBpdiwgcXYpO1xuK1x0XHRzb3J0KGl2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xuK1x0XHRzb3J0KHF2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xuIFxuIFx0XHRpZiAoaV9kZWx0YSBcdTAwM2UgNSB8fCBxX2RlbHRhIFx1MDAzZSA1KSB7XG4tXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpO1xuLVx0XHRcdGl2WzBdID0gKHRlbXAgXHUwMDI2IDB4M2ZmMDAwKSBcdTAwM2VcdTAwM2UgMTI7XG4tXHRcdFx0cXZbMF0gPSB0ZW1wIFx1MDAyNiAweDNmZjtcbi1cdFx0XHR0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7XG4tXHRcdFx0aXZbREFDS19TTl84ODIyQyAtIDFdID0gKHRlbXAgXHUwMDI2IDB4M2ZmMDAwKSBcdTAwM2VcdTAwM2UgMTI7XG4tXHRcdFx0cXZbREFDS19TTl84ODIyQyAtIDFdID0gdGVtcCBcdTAwMjYgMHgzZmY7XG4rXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpO1xuK1x0XHRcdGl2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4rXHRcdFx0cXZbMF0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTtcbitcdFx0XHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XG4rXHRcdFx0aXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4rXHRcdFx0cXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XG4gXHRcdH0gZWxzZSB7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH0gd2hpbGUgKGNudCsrIFx1MDAzYyAxMDApO1xuIFxuLVx0cnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIGl2LCBpX3ZhbHVlKTtcbi1cdHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdiwgcV92YWx1ZSk7XG4rXHQqaV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBpdik7XG4rXHQqcV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdik7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0XHRcdFx0ICAgICB1MzIgKmlfdmFsdWUsIHUzMiAqcV92YWx1ZSlcbiB7XG4tXHR1MzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdO1xuK1x0czMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTtcbiBcdHUzMiByZl9hLCByZl9iO1xuIFxuIFx0cmZfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweDAsIFJGUkVHX01BU0spO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuaW5kZXggZmM2MmI2N2ExNWYyMS4uN2JlYTk5NjE0MzU0YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oXG5AQCAtMTQxLDYgKzE0MSw5IEBAIGNvbnN0IHN0cnVjdCBydHdfdGFibGUgbmFtZSAjIyBfdGJsID0ge1x0XHRcdFxcXG4gI2RlZmluZSBEQUNLX1JGXzg4MjJDXHRcdDFcbiAjZGVmaW5lIERBQ0tfU05fODgyMkNcdFx0MTAwXG4gXG4rI2RlZmluZSBSVFc4ODIyQ19EQUNfSVZfTUFTSyBHRU5NQVNLKDIxLCAxMilcbisjZGVmaW5lIFJUVzg4MjJDX0RBQ19RVl9NQVNLIEdFTk1BU0soOSwgMClcbitcbiAvKiBwaHkgc3RhdHVzIHBhZ2UwICovXG4gI2RlZmluZSBHRVRfUEhZX1NUQVRfUDBfUFdEQl9BKHBoeV9zdGF0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4gXHRsZTMyX2dldF9iaXRzKCooKF9fbGUzMiAqKShwaHlfc3RhdCkgKyAweDAwKSwgR0VOTUFTSygxNSwgOCkpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzozNS4zNTY4OTc2NDNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MjE1OTgyMjE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgU3VpdGFiaWxpdHkqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGFmZmVjdGluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jYC4gSXQncyB0d2Vha2luZyB0aGUgREFDIElRIGNhbGlicmF0aW9uIHByb2Nlc3Mgd2l0aGluIHRoZSBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGFuZCByZWxhdGVkIGZ1bmN0aW9ucy4gU2VlbXMgbGlrZSB0aGV5J3JlIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0IHdpdGggdGhlIHN0YW5kYXJkIGBzb3J0KClgIGZ1bmN0aW9uIGZyb20gYGxpbnV4L3NvcnQuaGAsIHdoaWNoIGlzIHVzdWFsbHkgYSBnb29kIHNpZ24gZm9yIG1haW50YWluYWJpbGl0eSBhbmQgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cy4gVGhleSd2ZSBhbHNvIHN3aXRjaGVkIHRoZSBgaXZgIGFuZCBgcXZgIGFycmF5cyB0byBgczMyYCBhbmQgYXJlIG5vdyB1c2luZyBgRklFTERfR0VUX1NJR05FRGAgZm9yIHJlZ2lzdGVyIHZhbHVlIGV4dHJhY3Rpb24sIGFuZCByaXBwZWQgb3V0IGEgYnVuY2ggb2YgY3VzdG9tIHNvcnQgZnVuY3Rpb25zLiBGaW5hbGx5IGBydHc4ODIyY19kYWNfaXFfb2Zmc2V0YCBoYXMgYmVlbiB1cGRhdGVkIHRvIGFjY29tbW9kYXRlIHRoZSBgczMyYCBjaGFuZ2UuXG5cblRoZSBrZXkgcXVlc3Rpb24gaXMsIGNhbiB3ZSBhY3R1YWxseSAqZnV6eiogdGhpcz8gTGV0J3MgZmlndXJlIG91dCBpZiB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBpZiBmdXp6aW5nIGl0IGlzIHByYWN0aWNhbC4gVGhlIGRyaXZlciBpcyBgcnR3ODhgLCB3aGljaCBJIGtub3cgaXMgYSBSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGFkYXB0ZXIgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBydHc4ODIyY2AgdmFyaWFudCwgd2hpY2ggaXMgZm9yIHRoZSBSVEw4ODIyQy4gU2luY2UgaXQncyBhIFdpLUZpIGRyaXZlciwgdGhhdCBzY3JlYW1zIHBoeXNpY2FsIGhhcmR3YXJlIHRvIG1lLiBSZWFsdGVrIFdpLUZpIGNhcmRzIGFyZSAqZGVmaW5pdGVseSogcGh5c2ljYWwgaGFyZHdhcmUuXG5cbk5vdywgdGhlIGluc3RydWN0aW9ucyBhcmUgdmVyeSBzcGVjaWZpYzogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIC4uLiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVVcIi4gT2theSwgc28gaXMgYSBXaS1GaSBkcml2ZXIgbGlrZSBgcnR3ODhgIGVtdWxhdGVkIGluIFFFTVU/IFVzdWFsbHksIG5vLiBXaS1GaSBkcml2ZXJzIHR5cGljYWxseSBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlIChQQ0llIG9yIFVTQikuIFNvIHdlIG5lZWQgdG8gY29uc2lkZXIgaG93IHRoaXMgcGFydGljdWxhciBkcml2ZXIgaXMgY29ubmVjdGVkLlxuXG5UaGUgY3JpdGljYWwgcGF0aCBoZXJlIGlzIHRvIGRldGVybWluZSBpZiB3ZSBjYW4gZnV6eiB0aGlzLiBEb2VzIGBydHc4OGAgaGF2ZSBhIFVTQiwgU0RJTywgb3IgaXMgaXQgb25seSBQQ0llPyBJZiBpdCdzIFVTQiwgd2UgKm1pZ2h0KiBiZSBhYmxlIHRvIGZ1enogaXQgdXNpbmcgVVNCIGdhZGdldCBvciBkdW1teV9oY2QgKHN5emthbGxlciBzdXBwb3J0cyBVU0IgZnV6emluZykuIFNESU8gaXMgcHJvYmFibHkgYSBuby1nbyBmb3IgZnV6emluZyBlYXNpbHkuIFBDSWUgaXMgbGlrZWx5IGEgbm8tZ28gdG9vLCB1bmxlc3MgdGhlIFBDSSBmdXp6aW5nIHN1cHBvcnQgaW4gc3l6a2FsbGVyIGlzIHN0cm9uZyBlbm91Z2guIFRoZSBpbnN0cnVjdGlvbnMgc3RhdGUgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi5cblxuU28sIEkgbmVlZCB0byBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9gIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBoaW50IG9mIFVTQiBzdXBwb3J0LiBJZiBpdCdzIHB1cmUgUENJZSwgaXQncyBwcm9iYWJseSBub3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIHByb21wdCdzIGluc3RydWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA3NCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYyNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjMzOjQ0LjU3Mjg4Nzk4OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ1NDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiYmYuY1wiLFxuICAgIFwiYmYuaFwiLFxuICAgIFwiY29leC5jXCIsXG4gICAgXCJjb2V4LmhcIixcbiAgICBcImRlYnVnLmNcIixcbiAgICBcImRlYnVnLmhcIixcbiAgICBcImVmdXNlLmNcIixcbiAgICBcImVmdXNlLmhcIixcbiAgICBcImZ3LmNcIixcbiAgICBcImZ3LmhcIixcbiAgICBcImhjaS5oXCIsXG4gICAgXCJsZWQuY1wiLFxuICAgIFwibGVkLmhcIixcbiAgICBcIm1hYy5jXCIsXG4gICAgXCJtYWMuaFwiLFxuICAgIFwibWFjODAyMTEuY1wiLFxuICAgIFwibWFpbi5jXCIsXG4gICAgXCJtYWluLmhcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJwY2kuaFwiLFxuICAgIFwicGh5LmNcIixcbiAgICBcInBoeS5oXCIsXG4gICAgXCJwcy5jXCIsXG4gICAgXCJwcy5oXCIsXG4gICAgXCJyZWcuaFwiLFxuICAgIFwicmVnZC5jXCIsXG4gICAgXCJyZWdkLmhcIixcbiAgICBcInJ0dzg3MDNiLmNcIixcbiAgICBcInJ0dzg3MDNiLmhcIixcbiAgICBcInJ0dzg3MDNiX3RhYmxlcy5jXCIsXG4gICAgXCJydHc4NzAzYl90YWJsZXMuaFwiLFxuICAgIFwicnR3ODcyM2NzLmNcIixcbiAgICBcInJ0dzg3MjNkLmNcIixcbiAgICBcInJ0dzg3MjNkLmhcIixcbiAgICBcInJ0dzg3MjNkX3RhYmxlLmNcIixcbiAgICBcInJ0dzg3MjNkX3RhYmxlLmhcIixcbiAgICBcInJ0dzg3MjNkZS5jXCIsXG4gICAgXCJydHc4NzIzZHMuY1wiLFxuICAgIFwicnR3ODcyM2R1LmNcIixcbiAgICBcInJ0dzg3MjN4LmNcIixcbiAgICBcInJ0dzg3MjN4LmhcIixcbiAgICBcInJ0dzg4MTJhLmNcIixcbiAgICBcInJ0dzg4MTJhLmhcIixcbiAgICBcInJ0dzg4MTJhX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MTJhX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MTJhdS5jXCIsXG4gICAgXCJydHc4ODE0YS5jXCIsXG4gICAgXCJydHc4ODE0YS5oXCIsXG4gICAgXCJydHc4ODE0YV90YWJsZS5jXCIsXG4gICAgXCJydHc4ODE0YV90YWJsZS5oXCIsXG4gICAgXCJydHc4ODE0YWUuY1wiLFxuICAgIFwicnR3ODgxNGF1LmNcIixcbiAgICBcInJ0dzg4MjFhLmNcIixcbiAgICBcInJ0dzg4MjFhLmhcIixcbiAgICBcInJ0dzg4MjFhX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MjFhX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MjFhdS5jXCIsXG4gICAgXCJydHc4ODIxYy5jXCIsXG4gICAgXCJydHc4ODIxYy5oXCIsXG4gICAgXCJydHc4ODIxY190YWJsZS5jXCIsXG4gICAgXCJydHc4ODIxY190YWJsZS5oXCIsXG4gICAgXCJydHc4ODIxY2UuY1wiLFxuICAgIFwicnR3ODgyMWNzLmNcIixcbiAgICBcInJ0dzg4MjFjdS5jXCIsXG4gICAgXCJydHc4ODIyYi5jXCIsXG4gICAgXCJydHc4ODIyYi5oXCIsXG4gICAgXCJydHc4ODIyYl90YWJsZS5jXCIsXG4gICAgXCJydHc4ODIyYl90YWJsZS5oXCIsXG4gICAgXCJydHc4ODIyYmUuY1wiLFxuICAgIFwicnR3ODgyMmJzLmNcIixcbiAgICBcInJ0dzg4MjJidS5jXCIsXG4gICAgXCJydHc4ODIyYy5jXCIsXG4gICAgXCJydHc4ODIyYy5oXCIsXG4gICAgXCJydHc4ODIyY190YWJsZS5jXCIsXG4gICAgXCJydHc4ODIyY190YWJsZS5oXCIsXG4gICAgXCJydHc4ODIyY2UuY1wiLFxuICAgIFwicnR3ODgyMmNzLmNcIixcbiAgICBcInJ0dzg4MjJjdS5jXCIsXG4gICAgXCJydHc4OHh4YS5jXCIsXG4gICAgXCJydHc4OHh4YS5oXCIsXG4gICAgXCJyeC5jXCIsXG4gICAgXCJyeC5oXCIsXG4gICAgXCJzYXIuY1wiLFxuICAgIFwic2FyLmhcIixcbiAgICBcInNkaW8uY1wiLFxuICAgIFwic2Rpby5oXCIsXG4gICAgXCJzZWMuY1wiLFxuICAgIFwic2VjLmhcIixcbiAgICBcInR4LmNcIixcbiAgICBcInR4LmhcIixcbiAgICBcInVzYi5jXCIsXG4gICAgXCJ1c2IuaFwiLFxuICAgIFwidXRpbC5jXCIsXG4gICAgXCJ1dGlsLmhcIixcbiAgICBcIndvdy5jXCIsXG4gICAgXCJ3b3cuaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzo0NC41NzMwMzUwMTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDM5MTA4NzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUlRMODgyMkMgRHJpdmVyIFVwZGF0ZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBkcml2ZXIgZmlsZXM6IGB1c2IuY2AsIGBydHc4ODIyY3UuY2AsIGBydHc4ODIyY2UuY2AsIGFuZCBgcnR3ODgyMmNzLmNgLiBSaWdodCBhd2F5LCBpdCdzIGNsZWFyIHRoZSBSVEw4ODIyQyBjaGlwIGhhcyBVU0IsIFBDSWUsIGFuZCBTRElPIGltcGxlbWVudGF0aW9ucy4gSW50ZXJlc3RpbmcuIFRoZSBzcGVjaWZpYyBmaWxlIHRoYXQncyBiZWVuIG1vZGlmaWVkLCBgcnR3ODgyMmMuY2AsIGlzIHRoZSBjZW50cmFsIGNvcmUgbG9naWMgc2hhcmVkIGJ5IGFsbCB0aGVzZSBpbnRlcmZhY2UgdmFyaWFudHMuIEdpdmVuIHRoYXQgaXQncyBhY2Nlc3NpYmxlIHRocm91Z2ggVVNCLCBteSBpbml0aWFsIHRob3VnaHQgaXM6IHRoaXMgaXMgcmlwZSBmb3IgZnV6emluZyB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbiBpbiBzeXprYWxsZXIuIFRoYXQncyB0aGUgaWRlYWwgYXBwcm9hY2ggaGVyZSB0byBzdHJlc3MgdGVzdCB0aGUgY29yZSBjaGlwIGZ1bmN0aW9uYWxpdHkuIE5vdywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgIGlzIGNhbGxlZCBmcm9tIOKAkyB0aGF0IHNlZW1zIGxpa2UgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGRpZ2dpbmcgZGVlcGVyIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MjkxLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ0LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzo0OC42MTIxNDYzMzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQwNzQzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yNDQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzAwLVxcdFxcdFxcdFxcdCAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MzMxPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfYWRjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY4LVxcdFxcdHJ0d193cml0ZTMyKHJ0d2RldiwgMHgxYzI0LCAweDAwMDEwMDAyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY5OlxcdFxcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFxcdTAwMjZpYywgXFx1MDAyNnFjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzcwLVxcdFxcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zODgtXFx0XFx0cnR3X3dyaXRlMzIocnR3ZGV2LCAweDFjM2MsIHBhdGhfc2VsICsgMHg4MTAzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mzg5OlxcdFxcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFxcdTAwMjZpYywgXFx1MDAyNnFjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzkwLVxcdFxcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00NTQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDcyOlxcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFxcdTAwMjZpY19pbiwgXFx1MDAyNnFjX2luKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDczLVxcdGljID0gaWNfaW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NTAzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01NTMtXFx0cnR3X3dyaXRlMzIocnR3ZGV2LCBiYXNlX2FkZHIgKyAweDYwLCAweGYwMDAwMDAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTU0OlxcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFxcdTAwMjZpYywgXFx1MDAyNnFjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTU1LVxcdGlmIChpYyBcXHUwMDNlPSAweDEwKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzo0OC42NjYyMjU0MjhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTA3Nzc1NjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlRyYWNpbmcgdGhlIERBQyBDYWxpYnJhdGlvbiBGbG93KipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGBydHc4ODIyY2AgZHJpdmVyIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgRGlnaXRhbC10by1BbmFsb2cgQ29udmVydGVyIChEQUMpIGNhbGlicmF0aW9uIHByb2Nlc3MuIEkndmUgbm90aWNlZCB0aGF0IGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgIGlzIGEga2V5IGZ1bmN0aW9uIGluIHRoaXMgY2FsaWJyYXRpb24gcm91dGluZS4gVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCBnZXRzIGNhbGxlZCBmcm9tIG11bHRpcGxlIHBvaW50cyB3aXRoaW4gdGhlIGNhbGlicmF0aW9uIHByb2Nlc3MgaXRzZWxmOiBgcnR3ODgyMmNfZGFjX2NhbF9hZGNgLCBgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMmAsIGFuZCBgcnR3ODgyMmNfZGFjX2NhbF9zdGVwM2AuXG5cblJpZ2h0IG5vdywgSSdtIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSBhbmQgZmxvdy4gU28sIEkgbmVlZCB0byBrbm93IHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3N0ZXAyYCBpcyBnZXR0aW5nIGNhbGxlZCBmcm9tLiBUaGF0IHdpbGwgZ2l2ZSBtZSBjb250ZXh0IG9uIHRoZSBzdXJyb3VuZGluZyBzdGVwcyBpbnZvbHZlZC4gQnkgdW5kZXJzdGFuZGluZyB3aGVyZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tLCBJIGNhbiBidWlsZCBhIG1lbnRhbCBtYXAgb2YgdGhlIGVudGlyZSBEQUMgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoaXMgd2lsbCBhbGxvdyBtZSB0byBwcm9wZXJseSBpZGVudGlmeSBhbnkgcG90ZW50aWFsIGlzc3Vlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6OTY5NCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjMzOjUyLjE3NDAwNDg0MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTAxMDk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODIyY19kYWNfY2FsX3N0ZXAyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00MDk9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDU0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDU1LVxcdFxcdFxcdFxcdCAgIHU4IHBhdGgsIHUzMiAqaWNfb3V0LCB1MzIgKnFjX291dClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz04ODA9c3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfZGFjX2NhbChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkwMS1cXHRcXHRydHc4ODIyY19kYWNfY2FsX3N0ZXAxKHJ0d2RldiwgUkZfUEFUSF9BKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6OTAyOlxcdFxcdHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIocnR3ZGV2LCBSRl9QQVRIX0EsIFxcdTAwMjZpYywgXFx1MDAyNnFjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTAzLVxcdFxcdGljX2EgPSBpYztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy05MTctXFx0XFx0cnR3ODgyMmNfZGFjX2NhbF9zdGVwMShydHdkZXYsIFJGX1BBVEhfQik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjkxODpcXHRcXHRydHc4ODIyY19kYWNfY2FsX3N0ZXAyKHJ0d2RldiwgUkZfUEFUSF9CLCBcXHUwMDI2aWMsIFxcdTAwMjZxYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkxOS1cXHRcXHRpY19iID0gaWM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjMzOjUyLjIyNTAyNTI4MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5NTA1NzEyOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIHF1ZXN0aW9uOlxuXG4qKlRyYWNpbmcgdGhlIE9yaWdpbnMgb2YgYHJ0dzg4MjJjX3JmX2RhY19jYWxgKipcblxuT2theSwgc28gSSdtIHByZXNlbnRlZCB3aXRoIGBydHc4ODIyY19yZl9kYWNfY2FsYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGNhbGxpbmcgY29udGV4dC4gV2hlcmUgaXMgdGhpcyBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGZyb20/IFRoYXQncyB0aGUgY29yZSBxdWVzdGlvbiBoZXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udHJvbCBmbG93LCB0aGUgc3Vycm91bmRpbmcgbG9naWMsIGFuZCB0aGUgZGVwZW5kZW5jaWVzLiBJcyBpdCBjYWxsZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBkdXJpbmcgYWN0aXZlIG9wZXJhdGlvbiwgb3IgcGVyaGFwcyBpbiByZXNwb25zZSB0byBhIHNwZWNpZmljIGV2ZW50PyBEZXRlcm1pbmluZyB0aGUgY2FsbCBzdGFjayBpcyBwYXJhbW91bnQgdG8gdW5kZXJzdGFuZGluZyBpdHMgcHVycG9zZSBhbmQgcG90ZW50aWFsIGltcGFjdC4gSSdsbCBuZWVkIHRvIHVzZSBteSB0eXBpY2FsIGRlYnVnZ2luZyB0b29scyBvciBjb2RlIG5hdmlnYXRpb24gdGVjaG5pcXVlcyDigJMgZGVwZW5kaW5nIG9uIHRoZSBwcm9qZWN0LiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBmdW5jdGlvbiBjYWxsIGFuZCBzZWUgd2hlcmUgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNjU0LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzM6NTcuMTc1NTk5NTZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MTczNTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4MjJjX3JmX2RhY19jYWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTgzOT1zdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04NzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjg4MDpzdGF0aWMgdm9pZCBydHc4ODIyY19yZl9kYWNfY2FsKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTg4MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTc3NT1zdGF0aWMgdm9pZCBydHc4ODIyY19yZl9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3NzYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc3OlxcdHJ0dzg4MjJjX3JmX2RhY19jYWwocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc3OC1cXHRydHc4ODIyY19yZl94Ml9jaGVjayhydHdkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzo1Ny4yMjM3NzczMloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDY5MTY3NTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBxdWVzdGlvbjpcblxuKipUcmFjaW5nIHRoZSBDYWxsIE9yaWdpbiBvZiBgcnR3ODgyMmNfcmZfaW5pdGAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBgcnR3ODgyMmNfcmZfaW5pdGAgaXMgYmVpbmcgY2FsbGVkIGZyb20uIFRoaXMgZnVuY3Rpb24gaXMgcHJldHR5IGNydWNpYWwgaW4gdGhlIFJlYWx0ZWsgV2lGaSBkcml2ZXIgc3RhY2ssIGVzcGVjaWFsbHkgZm9yIHRoZSA4ODIyQyBjaGlwLCBzbyBrbm93aW5nIGl0cyBlbnRyeSBwb2ludCBpcyBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYW5kIHBvdGVudGlhbCBkZWJ1Z2dpbmcuIEknbGwgbmVlZCB0byByZXRyYWNlIHRoZSBjb2RlIGV4ZWN1dGlvbiBwYXRoLiBJJ20gYXNzdW1pbmcgdGhhdCBpdCdzIHBhcnQgb2YgdGhlIGdlbmVyYWwgZHJpdmVyIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLlxuXG5GaXJzdCwgSSdkIHdhbnQgdG8gdXNlIGEgdG9vbCBsaWtlIGBncmVwYCAob3IgbXkgSURFJ3Mgc2VhcmNoIGZ1bmN0aW9uKSB0byBzZWFyY2ggdGhlIGRyaXZlciBzb3VyY2UgdHJlZSBmb3IgYWxsIGluc3RhbmNlcyB3aGVyZSBgcnR3ODgyMmNfcmZfaW5pdGAgaXMgY2FsbGVkLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgbGlzdCBvZiBwb3RlbnRpYWwgY2FsbCBzaXRlcy4gVGhlbiwgSSdkIG5lZWQgdG8gZXhhbWluZSB0aG9zZSBzaXRlcywgbG9va2luZyBhdCB0aGUgc3Vycm91bmRpbmcgY29kZSB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IG9mIHRoZSBjYWxsIGFuZCB3aGljaCBmdW5jdGlvbnMgYXJlIGNhbGxpbmcgaXQuIEknZCBsb29rIGZvciBmdW5jdGlvbiBwcm90b3R5cGVzIG9yIGRlZmluaXRpb25zIGFzc29jaWF0ZWQgd2l0aCBpbml0aWFsaXphdGlvbiwgcHJvYmluZyBvciBkZXZpY2UgZGV0ZWN0aW9uLlxuXG5JJ2QgYWxzbyBjb25zaWRlciB0aGUgYnJvYWRlciBkcml2ZXIgc3RydWN0dXJlLiBEb2VzIHRoaXMgZHJpdmVyIGZvbGxvdyBhIHN0YW5kYXJkIHByb2JlL2F0dGFjaC9kZXRhY2ggbW9kZWw/IElmIHNvLCBgcnR3ODgyMmNfcmZfaW5pdGAgbGlrZWx5IGZhbGxzIHNvbWV3aGVyZSB3aXRoaW4gdGhlIFwiYXR0YWNoXCIgcGhhc2UsIGFmdGVyIHRoZSBoYXJkd2FyZSBpcyByZWNvZ25pemVkLiBHaXZlbiB0aGF0LCBJJ2QgdHJhY2UgYmFjayBmcm9tIGFueSBhdHRhY2ggb3IgaW5pdGlhbGl6YXRpb24gcmVsYXRlZCBmdW5jdGlvbnMsIGxvb2tpbmcgdG8gc2VlIHdoaWNoIGZ1bmN0aW9ucyBldmVudHVhbGx5IGVuZCB1cCBjYWxsaW5nIGBydHc4ODIyY19yZl9pbml0YC5cblxuQmFzaWNhbGx5LCBJJ20gZ29pbmcgdG8gc3RhcnQgd2l0aCB0aGUgb2J2aW91cyBhbmQgd29yayBteSB3YXkgb3V0d2FyZCwgZm9sbG93aW5nIHRoZSBmdW5jdGlvbiBjYWxsIGdyYXBoLiBJJ2xsIG5lZWQgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgYXJndW1lbnRzIGJlaW5nIHBhc3NlZCB0byBgcnR3ODgyMmNfcmZfaW5pdGAgYXMgd2VsbCwgYXMgdGhvc2Ugd291bGQgcHJvdmlkZSBoaW50cyBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIHN5c3RlbSBhdCB0aGUgcG9pbnQgb2YgdGhlIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMjYzLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MDEuMjkyOTQ3NjA5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTkwNTkzOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODIyY19yZl9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xNzYyPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RvX2dhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTgwMD1zdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTg0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTg0NjpcXHRydHc4ODIyY19yZl9pbml0KHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4NDctXFx0cnR3ODgyMmNfcHdydHJhY2tfaW5pdChydHdkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDowMS4zNDQ4NTg0MjlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk2NTI5MTcwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgcXVlc3Rpb246XG5cbioqUGlucG9pbnRpbmcgdGhlIE9yaWdpbiBvZiBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGUgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCBmcm9tLiBUaGF0J3MgdGhlIGNvcmUgcXVlc3Rpb24sIHJpZ2h0PyBJZGVudGlmeWluZyB0aGUgY2FsbCBzaXRlcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyBjb250ZXh0LCB0aGUgZGF0YSBpdCdzIG9wZXJhdGluZyBvbiwgYW5kIGFueSBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzLiBLbm93aW5nIHRoZSBjYWxsZXIgYWxzbyBoZWxwcyBpbiBkZWJ1Z2dpbmcgYW5kIG1vZGlmaWNhdGlvbiwgYXMgSSBjYW4gdHJhY2UgdGhlIGNhbGwgc3RhY2sgdG8gc2VlIHRoZSBzZXF1ZW5jZSBvZiBldmVudHMgbGVhZGluZyB1cCB0byBpdHMgZXhlY3V0aW9uLiBMZXQncyBzZWUuLi4gSSdsbCBuZWVkIHRvIHVzZSBzb21lIHRvb2xpbmcsIG1vc3QgbGlrZWx5IGEgY29kZSBzZWFyY2ggb3Igc3RhdGljIGFuYWx5c2lzIHRvb2wuIEknZCB0eXBpY2FsbHkgc3RhcnQgYnkgZ3JlcHBpbmcgdGhlIGNvZGViYXNlIGZvciB0aGUgZnVuY3Rpb24gbmFtZSBkaXJlY3RseS4gRnJvbSB0aGVyZSwgSSdkIGV4YW1pbmUgdGhlIGNhbGwgc2l0ZXMuIEkgd2lsbCBiZSBsb29raW5nIGZvciBjb21tb24gcGF0dGVybnMuIElzIGl0IGNhbGxlZCB3aXRoaW4gYSBzcGVjaWZpYyBkcml2ZXIgY29tcG9uZW50LCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIG9yIGluIHJlc3BvbnNlIHRvIHNvbWUga2luZCBvZiBldmVudD8gVGhlIGNvbnRleHQgd2lsbCBiZSBrZXkuIE9uY2UgSSBsb2NhdGUgdGhlIGNhbGxzLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3Vycm91bmRpbmcgY29kZSBpbiBvcmRlciB0byB0cnVseSB1bmRlcnN0YW5kIHRoZSByYXRpb25hbGUgZm9yIHRoZSBmdW5jdGlvbiBjYWxsLCBhbmQgaG93IHRoaXMgZnVuY3Rpb24gY2FsbCBpcyByZWxhdGVkIHRvIG90aGVyIHJvdXRpbmVzIGluIHRoZSBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjEwMiwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjA1LjMxMDE1MzA2OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgzMjYzMDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3ODgyMmNfcGh5X3NldF9wYXJhbVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTc4ND1zdGF0aWMgdm9pZCBydHc4ODIyY19wd3J0cmFja19pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTgwMDpzdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4MDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ4OTgtXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDg5OTpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODgyMmNfcGh5X3NldF9wYXJhbSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDkwMC1cXHQucmVhZF9lZnVzZVxcdFxcdD0gcnR3ODgyMmNfcmVhZF9lZnVzZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MDUuMzU4NDgyODM3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNTQ5NjYwNDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFBIWSBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIFJlYWx0ZWsgUEhZIGNvZGUuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGZ1bmN0aW9uLCBgcGh5X3NldF9wYXJhbWAsIGlzIHBhcnQgb2YgdGhlIGBydHdfY2hpcF9vcHNgIHN0cnVjdHVyZSwgd2hpY2ggbWFrZXMgc2Vuc2UuIEdpdmVuIGl0cyBuYW1pbmcsIEknbSBndWVzc2luZyB0aGlzIGZ1bmN0aW9uJ3MgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgY3JpdGljYWwgUEhZIHBhcmFtZXRlcnMuIE15IG5leHQgc3RlcCBpcyB0byB0cmFjZSB0aGUgY2FsbCB0byBgcGh5X3NldF9wYXJhbWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZW4gdGhpcyBpcyBiZWluZyBpbnZva2VkLCBhbmQgbW9yZSBzcGVjaWZpY2FsbHksIGR1cmluZyB3aGljaCBzdGFnZXMgb2YgdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuIEtub3dpbmcgd2hlcmUgaXQncyBjYWxsZWQgZHVyaW5nIHRoYXQgcHJvY2VzcyBzaG91bGQgcXVpY2tseSBnaXZlIG1lIGFuIG92ZXJ2aWV3IGFuZCBzb21lIGluc2lnaHRzIGludG8gaG93IGl0J3MgYmVpbmcgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI4MTYsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDowOC42MTM0NTE0NzVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjE5NTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBoeV9zZXRfcGFyYW1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MTM3ND1pbnQgcnR3X3Bvd2VyX29uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xNDEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjE0MTM6XFx0Y2hpcC1cXHUwMDNlb3BzLVxcdTAwM2VwaHlfc2V0X3BhcmFtKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMTQxNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTg2Mj1zdHJ1Y3QgcnR3X2NoaXBfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTg2OS1cXHRpbnQgKCpyZWFkX2VmdXNlKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqbWFwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo4NzA6XFx0dm9pZCAoKnBoeV9zZXRfcGFyYW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTg3MS1cXHR2b2lkICgqc2V0X2NoYW5uZWwpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IGNoYW5uZWwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM9NTUzPXN0YXRpYyB2b2lkIHJ0dzg3MDNiX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYy01NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jOjU3ODpzdGF0aWMgdm9pZCBydHc4NzAzYl9waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jLTU3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM9MTgzNj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzAzYl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmMtMTg0My1cXHQucmVhZF9lZnVzZVxcdFxcdD0gcnR3ODcwM2JfcmVhZF9lZnVzZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM6MTg0NDpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODcwM2JfcGh5X3NldF9wYXJhbSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmMtMTg0NS1cXHQuc2V0X2NoYW5uZWxcXHRcXHQ9IHJ0dzg3MDNiX3NldF9jaGFubmVsLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZC5jPTY3PXN0YXRpYyB2b2lkIHJ0dzg3MjNkX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy04NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM6ODU6c3RhdGljIHZvaWQgcnR3ODcyM2RfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy04Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM9MTM5Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzIzZF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtMTM5NC1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHdfcG93ZXJfb2ZmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYzoxMzk1OlxcdC5waHlfc2V0X3BhcmFtXFx0XFx0PSBydHc4NzIzZF9waHlfc2V0X3BhcmFtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy0xMzk2LVxcdC5yZWFkX2VmdXNlXFx0XFx0PSBydHc4NzIzeF9yZWFkX2VmdXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jPTkxND1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODEyYV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmMtOTE2LVxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0dzg4MTJhX3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmM6OTE3OlxcdC5waHlfc2V0X3BhcmFtXFx0XFx0PSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYy05MTgtXFx0LnJlYWRfZWZ1c2VcXHRcXHQ9IHJ0dzg4eHhhX3JlYWRfZWZ1c2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjY1PXN0YXRpYyB2b2lkIHJ0dzg4MTRhX2NvbmZpZ19jY2tfcnhfYW50ZW5uYV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyODM6c3RhdGljIHZvaWQgcnR3ODgxNGFfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYy0yODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jPTIwNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgxNGFfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNTItXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM6MjA1MzpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODgxNGFfcGh5X3NldF9wYXJhbSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjA1NC1cXHQucmVhZF9lZnVzZVxcdFxcdD0gcnR3ODgxNGFfcmVhZF9lZnVzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYz04NjA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMWFfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTg2Mi1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHc4ODIxYV9wb3dlcl9vZmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jOjg2MzpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmMtODY0LVxcdC5yZWFkX2VmdXNlXFx0XFx0PSBydHc4OHh4YV9yZWFkX2VmdXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jPTE1MT1zdGF0aWMgdm9pZCBydHc4ODIxY19waHlfYmZfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM6MTU4OnN0YXRpYyB2b2lkIHJ0dzg4MjFjX3BoeV9zZXRfcGFyYW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmMtMTU5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYz0xNjU4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjFjX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYy0xNjYwLVxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0d19wb3dlcl9vZmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjE2NjE6XFx0LnBoeV9zZXRfcGFyYW1cXHRcXHQ9IHJ0dzg4MjFjX3BoeV9zZXRfcGFyYW0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE2NjItXFx0LnJlYWRfZWZ1c2VcXHRcXHQ9IHJ0dzg4MjFjX3JlYWRfZWZ1c2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MTQ1PXN0YXRpYyB2b2lkIHJ0dzg4MjJiX3BoeV9iZl9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoxNTI6c3RhdGljIHZvaWQgcnR3ODgyMmJfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYy0xNTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jPTIxNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmJfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTIxNTItXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM6MjE1MzpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODgyMmJfcGh5X3NldF9wYXJhbSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMjE1NC1cXHQucmVhZF9lZnVzZVxcdFxcdD0gcnR3ODgyMmJfcmVhZF9lZnVzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xNzg0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxODAwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTgwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDg5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyY19vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDg5OC1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHdfcG93ZXJfb2ZmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0ODk5OlxcdC5waHlfc2V0X3BhcmFtXFx0XFx0PSBydHc4ODIyY19waHlfc2V0X3BhcmFtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00OTAwLVxcdC5yZWFkX2VmdXNlXFx0XFx0PSBydHc4ODIyY19yZWFkX2VmdXNlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDowOC42NjQwNzQ5MjRaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODA5NjQ2NDQ3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFdvcnRoIG9mIEZ1enppbmcgdGhpcyBSZWFsdGVrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byB0b3VjaCB0aGUgaW5pdGlhbGl6YXRpb24gb3IgY2FsaWJyYXRpb24gcHJvY2VzcyB3aXRoaW4gdGhlIFJlYWx0ZWsgODgyMkNVIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aC4gSXQgYXBwZWFycyBgcnR3X3Bvd2VyX29uYCBjYWxscyBgY2hpcC1cdTAwM2VvcHMtXHUwMDNlcGh5X3NldF9wYXJhbWAsIHdoaWNoIGlzIHRyaWdnZXJlZCBkdXJpbmcgZGV2aWNlIGJyaW5nLXVwLCBpbml0aWF0ZWQgYnkgYHJ0d19jb3JlX3N0YXJ0YCwgYW5kIHVsdGltYXRlbHksIGBydHdfbWFjODAyMTFfc3RhcnRgLiBUaGF0IG1lYW5zIGl0J3MgcnVubmluZyBkdXJpbmcgdGhlIG5vcm1hbCBpbml0aWFsaXphdGlvbiBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFNpbmNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB0aGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGZ1enppbmcgcG90ZW50aWFsLlxuXG5UaGUgcHJvbXB0IGlzIG1ha2luZyBtZSB0aGluayBhYm91dCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGJ1dCB0aGlzIHNlZW1zIGFjaGlldmFibGUgdmlhIFVTQiBnYWRnZXQgZnV6emluZy4gVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgY29kZSBwYXRoIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHNvbWV0aGluZyBsaWtlIHN5emthbGxlcidzIFVTQiBmdXp6ZXIuIEFuZCB0aGUgYW5zd2VyIGlzIGxpa2VseSB5ZXMhIElmIHN5emthbGxlciBpcyBhYmxlIHRvIGdlbmVyYXRlIFVTQiBkZXNjcmlwdG9ycyB0aGF0IG1hdGNoIHRoZSBWSUQvUElEIG9mIGEgUmVhbHRlayA4ODIyQ1UgZGV2aWNlLCB0aGUgYHJ0dzg4Xzg4MjJjdWAgZHJpdmVyIHdpbGwgYmluZCBhbmQgcHJvYmUsIGNhdXNpbmcgYHJ0d19jb3JlX2luaXRgIGFuZCBgcnR3X2NvcmVfc3RhcnRgIHRvIGV4ZWN1dGUuIFRoZSBVU0IgZnV6emVyIGNvdWxkIGRlZmluaXRlbHkgdHJpZ2dlciB0aGUgcHJvYmUgYW5kIHRoZSByZWdpc3RlciByZWFkcywgZXNwZWNpYWxseSBiZWNhdXNlIG9mIHRoZSB1c2Ugb2YgYHJ0d19yZWFkMzJgLiBgcnR3X3JlYWQzMmAgaXMgY3JpdGljYWwgaGVyZTsgdGhlIGZ1enplciBjb250cm9scyB0aGUgcmV0dXJuIHZhbHVlcyBiZWNhdXNlIGl0J3MgZW11bGF0aW5nIHRoZSBkZXZpY2UsIHdoaWNoIG1ha2VzIHRoZSBwYXRjaCBpbnRlcmVzdGluZy5cblxuVGhlIHBhdGNoIGFsdGVycyB0aGUgc29ydGluZyBsb2dpYyBhbmQgdGhlIG9mZnNldCBjYWxjdWxhdGlvbiB3aXRoaW4gYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCwgc3BlY2lmaWNhbGx5IHRoZSBhbGdvcml0aG0gdXNlZCBmb3IgY2FsY3VsYXRpbmcgdGhlIElRIG9mZnNldCwgY2hhbmdpbmcgZnJvbSBhIGN1c3RvbSBidWJibGUgc29ydCB0byBgc29ydCgpYCwgYW5kIGNoYW5naW5nIHR5cGVzIGZyb20gYHUzMmAgdG8gYHMzMmAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gSXQncyBub3QganVzdCBhIHJlZmFjdG9yaW5nOyBpdCdzIGNoYW5naW5nICpob3cqIHRoZSBkcml2ZXIgY2FsY3VsYXRlcyB0aGUgSVEgb2Zmc2V0IGR1cmluZyBpbml0aWFsaXphdGlvbiBvciBjYWxpYnJhdGlvbi4gVGhlIGNvZGUgYWNjZXNzZXMgYW5kIG1vZGlmaWVzIHRoZSB2YWx1ZXMgcmVhZCB1c2luZyBgcnR3X3JlYWQzMmAuIFRoaXMgc2VlbXMgbGlrZSBhIGdyZWF0IGNhbmRpZGF0ZSBmb3IgZnV6emluZywgZ2l2ZW4gdGhhdCBhIGZ1enplciBlbXVsYXRpbmcgdGhlIFVTQiBkZXZpY2UgY2FuIGNvbnRyb2wgdGhlIGRhdGEgcHJvdmlkZWQgdG8gdGhlIGRyaXZlci5cblxuTm93LCB0byBiZSBjb21wbGV0ZWx5IHRob3JvdWdoLCBsZXQncyB2ZXJpZnkgYW55IHJlbGV2YW50IEtjb25maWcgb3B0aW9ucyB0byBiZSBzdXJlLiBJJ2xsIG5lZWQgdG8gbG9jYXRlIHRoZSBLY29uZmlnIGVudHJpZXMgZm9yIHRoZSBgcnR3ODhgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciB0aGUgYHJ0dzg4MjJjYCB2YXJpYW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTk4MiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDoxNi43NjA1NDM1NVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIzODY0NTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExPWlmIFJUVzg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzpjb25maWcgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzpjb25maWcgUlRXODhfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDpjb25maWcgUlRXODhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY6Y29uZmlnIFJUVzg4Xzg4MjJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOTpjb25maWcgUlRXODhfODgyMkNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OF84NzIzWFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzU6Y29uZmlnIFJUVzg4Xzg3MDNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM2LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM5OmNvbmZpZyBSVFc4OF84NzIzRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00MC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Mzpjb25maWcgUlRXODhfODgyMUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ2OmNvbmZpZyBSVFc4OF84OFhYQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Ny1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDk6Y29uZmlnIFJUVzg4Xzg4MjFBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUwLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjUzOmNvbmZpZyBSVFc4OF84ODEyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Nzpjb25maWcgUlRXODhfODgxNEFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTgtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYwOmNvbmZpZyBSVFc4OF84ODIyQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjcxOmNvbmZpZyBSVFc4OF84ODIyQlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzItXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5Mzpjb25maWcgUlRXODhfODgyMkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA0OmNvbmZpZyBSVFc4OF84ODIyQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyNjpjb25maWcgUlRXODhfODcyM0RFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzNzpjb25maWcgUlRXODhfODcyM0RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNDg6Y29uZmlnIFJUVzg4Xzg3MjNDU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTYyOmNvbmZpZyBSVFc4OF84NzIzRFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTczOmNvbmZpZyBSVFc4OF84ODIxQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg0OmNvbmZpZyBSVFc4OF84ODIxQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NTpjb25maWcgUlRXODhfODgyMUNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwNjpjb25maWcgUlRXODhfODgyMUFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTc6Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjg6Y29uZmlnIFJUVzg4Xzg4MTRBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzk6Y29uZmlnIFJUVzg4Xzg4MTRBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTA6Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTg6Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY2OmNvbmZpZyBSVFc4OF9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjE2LjgyMjkzNDY1OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzQ5NDE5NTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipBbmFseXppbmcgUlRXODggQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuQWxyaWdodCwgc28gdGhlIGN1cnJlbnQgb3B0aW9ucyB3ZSdyZSB3b3JraW5nIHdpdGggYXJlIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhhdCBzcGVjaWZpYyBgUlRXODhfODgyMkNVYCB2YXJpYXRpb24uIEdpdmVuIHRoZSB1c3VhbCBjb25maWd1cmF0aW9uIGNvbXBsZXhpdGllcyBhbmQgcG90ZW50aWFsIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlc2UgZHJpdmVycywgaXQncyBlc3NlbnRpYWwgdG8gbWV0aWN1bG91c2x5IHZlcmlmeSB3aGF0ICpSVFc4OF84ODIyQ1UqIHJlbGllcyB1cG9uLiBUaGF0J3Mgd2hlcmUgSSBuZWVkIHRvIHN0YXJ0LiBXZSBjYW4ndCBhZmZvcmQgdG8gbWlzcyBhbnl0aGluZyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIGZvciB0aGF0IHNwZWNpZmljIG1vZHVsZS4gR2V0dGluZyBhIGNsZWFyIGRlcGVuZGVuY3kgcGljdHVyZSB3aWxsIGJlIHRoZSBmaXJzdCBhbmQgbW9zdCBjcml0aWNhbCBzdGVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDMwOSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjIwLjE3MjM1Njc5N1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTE3OTk1MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg4Xzg4MjJDVVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTA0PWNvbmZpZyBSVFc4OF84ODIyQ1NcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MjAuMjI0MTYxODQ2WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NTMyNzI1MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZCwgZ2VhcmVkIHRvd2FyZCBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBmcm9tIGEgZmlyc3QtcGVyc29uIHBlcnNwZWN0aXZlOlxuXG4qKlJUVzg4Xzg4MjJDVTogRGVlcCBEaXZlIFx1MDAyNiBTdHJhdGVneSoqXG5cbkFscmlnaHQsIGxldCdzIHB1bGwgdXAgdGhhdCBmdWxsIGJsb2NrIG9mIGNvZGUgZm9yIHRoZSBgUlRXODhfODgyMkNVYCBkcml2ZXIuIEkgbmVlZCB0byBnZXQgYSByZWFsbHkgZ29vZCBncmFzcCBvZiB0aGlzLiBGaXJzdCwgSSdtIGdvaW5nIHRvIHNjYW4gdGhlIG1haW4gZW50cnkgcG9pbnRzLCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIHByb2JlIGZ1bmN0aW9ucy4gSSdtIGxvb2tpbmcgZm9yIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSAtIGhvdyB0aGV5J3JlIGhhbmRsaW5nIGhhcmR3YXJlIGFic3RyYWN0aW9uLCBpbnRlcnJ1cHQgaGFuZGxpbmcsIGFuZCB3aGF0IGtpbmQgb2YgcG93ZXIgbWFuYWdlbWVudCBob29rcyB0aGV54oCZdmUgcHV0IGluIHBsYWNlLiBBcmUgdGhleSB1c2luZyB0aGUgc3RhbmRhcmQgcmVndWxhdG9yeSBkb21haW4gaW50ZXJmYWNlcyBjb3JyZWN0bHk/IEFueSBkZXZpYXRpb25zPyBBbnkgY3VzdG9tIG1lY2hhbmlzbXMgSSBzaG91bGQgYmUgYXdhcmUgb2Y/XG5cblRoZW4sIEknbGwgaG9uZSBpbiBvbiB0aGUgaW1wb3J0YW50IGRhdGEgc3RydWN0dXJlcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkncmUgcmVwcmVzZW50aW5nIHRoZSBoYXJkd2FyZSBzdGF0ZSDigJMgdGhlIHJlZ2lzdGVycywgdGhlIGNvbmZpZ3VyYXRpb24sIHRoZSBvcGVyYXRpb25hbCBwYXJhbWV0ZXJzLiBBcmUgdGhleSBlbXBsb3lpbmcgYW55IGNsZXZlciBtZW1vcnkgbWFwcGluZyB0ZWNobmlxdWVzIG9yIGRpcmVjdCByZWdpc3RlciBhY2Nlc3M/IEFueSB1bnVzdWFsIHVzZSBvZiBETUEgb3Igc29waGlzdGljYXRlZCBidWZmZXJpbmcgc3RyYXRlZ2llcz8gSSdtIGhvcGluZyB0byBxdWlja2x5IGlkZW50aWZ5IGFueSBwb3RlbnRpYWwgYm90dGxlbmVja3Mgb3IgYXJlYXMgZm9yIG9wdGltaXphdGlvbi5cblxuTmV4dCwgSSdsbCBkaXZlIGludG8gdGhlIGludGVycnVwdCBoYW5kbGVycy4gVGhhdCdzIHVzdWFsbHkgd2hlcmUgdGhlIHJlYWwtdGltZSBjb25zdHJhaW50cyBhcmUgZ29pbmcgdG8gc3VyZmFjZS4gSG93IGFyZSB0aGV5IHByaW9yaXRpemluZyBpbnRlcnJ1cHRzPyBBcmUgdGhleSB1c2luZyBib3R0b20taGFsdmVzIGVmZmVjdGl2ZWx5PyBIb3cgYXJlIHRoZXkgaGFuZGxpbmcgc2hhcmVkIGludGVycnVwdHMsIGlmIGF0IGFsbD8gSSBuZWVkIHRvIGFuYWx5emUgdGhlIGludGVycnVwdCBsYXRlbmN5IHRvIGtub3cgaWYgaXQgY2FuIHN1cHBvcnQgbXkgdXNlIGNhc2VzLiBBcmUgdGhlcmUgYW55IGNvbnRlbnRpb24gaXNzdWVzIEkgc2hvdWxkIGxvb2sgb3V0IGZvcj9cblxuQWZ0ZXIgdGhhdCwgSSdsbCB0cmFjZSB0aHJvdWdoIHRoZSBrZXkgZGF0YSBwYXRoczogdGhlIFRYIHBhdGgsIHRoZSBSWCBwYXRoLCBhbmQgdGhlIG1hbmFnZW1lbnQgZnJhbWUgcHJvY2Vzc2luZy4gSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkncmUgbWFuYWdpbmcgcGFja2V0IHF1ZXVlcywgZmxvdyBjb250cm9sLCBhbmQgYW55IGZyYWdtZW50YXRpb24vcmVhc3NlbWJseS4gQXJlIHRoZXkgZG9pbmcgYW55IHBlci1wYWNrZXQgb3B0aW1pemF0aW9ucywgb3IgaXMgaXQgbW9yZSBvZiBhIFwib25lLXNpemUtZml0cy1hbGxcIiBhcHByb2FjaD8gV2hhdCBhYm91dCBvZmZsb2FkaW5nIC0gYW55IGhhcmR3YXJlIG9mZmxvYWQgY2FwYWJpbGl0aWVzP1xuXG5GaW5hbGx5LCBJJ2xsIGxvb2sgaW50byBwb3dlciBtYW5hZ2VtZW50LiBIb3cgYXJlIHRoZXkgcmVzcG9uZGluZyB0byBwb3dlciBzdGF0ZSBjaGFuZ2VzPyBBcmUgdGhleSB1c2luZyB0aGUgc3RhbmRhcmQgUE0gQVBJcyBjb3JyZWN0bHksIG9yIGFyZSB0aGVyZSBhbnkgY3VzdG9tIHBvd2VyLXNhdmluZyBtZWNoYW5pc21zPyBJJ2xsIGFzc2VzcyB0aGUgY2xvY2sgZ2F0aW5nIGFuZCBwb3dlciBkb21haW4gbWFuYWdlbWVudC4gQXJlIHRoZXkgYWdncmVzc2l2ZSBlbm91Z2ggaW4gcmVkdWNpbmcgcG93ZXIgY29uc3VtcHRpb24gd2hlbiBpZGxlP1xuXG5UaGUgZW5kIGdvYWwgaXMgdG8gZ2V0IGEgcmVhbGx5IGdvb2QgaGFuZGxlIG9uIGl0cyBhcmNoaXRlY3R1cmUsIGl0cyBwb3RlbnRpYWwgd2Vha25lc3NlcywgYW5kIGlkZW50aWZ5IGFueSBhcmVhcyB3aGVyZSBJIGNhbiBtYWtlIGltcHJvdmVtZW50cyBvciBtb2RpZmljYXRpb25zLiBBbHNvLCBJIHdpbGwgYmUgb24gdGhlIGxvb2tvdXQgdG8gc2VlIGlmIHRoaXMgY29kZSBpcyBhIGdvb2QgYmFzZSBmb3IgbXkgcHJvamVjdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNjkzLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MjUuNjc3NDM2ODNaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQxMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDExMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDExMDpcXHRcXHRoZWxwXFxuIDExMTpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODIyQ1MgY2hpcHNldFxcbiAxMTI6XFx0XFxuIDExMzpcXHRcXHQgIDgwMi4xMWFjIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxuIDExNDpcXHRcXG4gMTE1OlxcdGNvbmZpZyBSVFc4OF84ODIyQ1VcXG4gMTE2OlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbiAxMTc6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gMTE4OlxcdFxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuIDExOTpcXHRcXHRzZWxlY3QgUlRXODhfVVNCXFxuIDEyMDpcXHRcXHRzZWxlY3QgUlRXODhfODgyMkNcXG4gMTIxOlxcdFxcdGhlbHBcXG4gMTIyOlxcdFxcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4MjJDVSBjaGlwc2V0XFxuIDEyMzpcXHRcXG4gMTI0OlxcdFxcdCAgODAyLjExYWMgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcbiAxMjU6XFx0XFxuIDEyNjpcXHRjb25maWcgUlRXODhfODcyM0RFXFxuIDEyNzpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4gMTI4OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuIDEyOTpcXHRcXHRzZWxlY3QgUlRXODhfQ09SRVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDoyNS42Nzc1MDI0M1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTQxODIyOTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYFJUVzg4Xzg4MjJDVWAgRHJpdmVyIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYFJUVzg4Xzg4MjJDVWAgZHJpdmVyLiBJdCdzIHRoZSBvbmUgSSBuZWVkIHRvIGZvY3VzIG9uLiBSaWdodCwgaXQgbG9va3MgbGlrZSBpdCBkZXBlbmRzIGRpcmVjdGx5IG9uIHRoZSBgVVNCYCBzdWJzeXN0ZW0uIE1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgYENVYCBpbiB0aGUgbmFtZSBwcm9iYWJseSBpbXBsaWVzIGEgVVNCIGludGVyZmFjZS4gTm93LCBsZXQncyBzdGVwIGJhY2sgYW5kIGxvb2sgYXQgdGhlIGJpZ2dlciBwaWN0dXJlLiBUaGUgcGFyZW50IGNvbmZpZywgYFJUVzg4YCwgdGhhdCAqdGhpcyogc3BlY2lmaWMgZHJpdmVyIGlzIHBhcnQgb2YsIGRlcGVuZHMgb24gYm90aCBgTUFDODAyMTFgIGFuZCBgV0xBTmAuIFRoYXQncyBzdGFuZGFyZCBmb3Igd2lyZWxlc3MgZHJpdmVycywgb2YgY291cnNlLiBOb3csIGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyIEkgd2FudCB0byBtYWtlIHN1cmUgdGhlIGBSVFc4OGAgaXRzZWxmIGlzIGNvbXBsZXRlbHkgc291bmQuIEJldHRlciB0byBiZSB0aG9yb3VnaCwgSSdsbCBjaGVjayAqdGhvc2UqIGRlcGVuZGVuY2llcyBuZXh0LiBNYWtlIHN1cmUgZXZlcnl0aGluZydzIGluIG9yZGVyLCBhdm9pZCBzdXJwcmlzZXMsIGFuZCBhbGwgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE1ODQsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjMwLjIxOTMyNzc0NVoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDEwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdG1lbnVjb25maWcgUlRXODhcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgbWFjODAyMTEtYmFzZWQgd2lyZWxlc3MgZHJpdmVycyB0aGF0XFxuICAgNzpcXHRcXHQgIGVuYWJsZXMgUmVhbHRlayBJRUVFIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzZXRzLlxcbiAgIDg6XFx0XFxuICAgOTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OC5cXG4gIDEwOlxcdFxcbiAgMTE6XFx0aWYgUlRXODhcXG4gIDEyOlxcdFxcbiAgMTM6XFx0Y29uZmlnIFJUVzg4X0NPUkVcXG4gIDE0OlxcdFxcdHRyaXN0YXRlXFxuICAxNTpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIFJUVzg4X1BDSVxcbiAgMTg6XFx0XFx0dHJpc3RhdGVcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIFJUVzg4X1NESU9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MzAuMjE5MzkzMzM1WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY2MzI1NTM5OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIENvbmZpZ3VyYXRpb24gYW5kIFN5bWJvbCBJbmNsdXNpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXIuIFRoZSBjb25maWdzIEkgbmVlZCB0byBmb2N1cyBvbiBmb3IgZW5hYmxpbmcgYXJlIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgLiBFYXN5IGVub3VnaCwgYW5kIEkgbmVlZCB0byByZW1lbWJlciB0byAqbm90KiBpbmNsdWRlIHRoZSBcIkNPTkZJR19cIiBwcmVmaXgsIHNvIGp1c3QgdGhlIHJhdyBuYW1lcyBhcmUgd2hhdCdzIGdvaW5nIGluIHRoZSBvdXRwdXQgYXJyYXkuIGBNQUM4MDIxMWAgYW5kIGBXTEFOYCBhcmUgc3RhbmRhcmQsIHRob3NlIGFyZSBvdXQuXG5cbk5vdywgSSd2ZSBnb3QgdG8gZGV0ZXJtaW5lIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgbGlzdGVkIGluIGBGb2N1c1N5bWJvbHNgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBhbmQgYHJ0dzg4MjJjX2RhY19pcV9vZmZzZXRgLiBXYWl0LCBob2xkIG9uLiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHN0YXRpYyBhbmQgdGhhdCdzIG5vdCB3aGF0IEkgd2FudC4gVGhlIGluc3RydWN0aW9ucyBhcmUgc3BlY2lmaWM6IG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkLiBTbyBJIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIHRoYXQgc3RhdGljIGhlbHBlci5cblxuT2theSwgbGV0J3Mgc2VlLiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIGNhbGxlZCBieSBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCwgd2hpY2ggaXMgKmFsc28qIHN0YXRpYy4gSXQgc2VlbXMgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCBpcyBjYWxsZWQgYnkgYHJ0dzg4MjJjX2RhY19jYWxfYWRjYCwgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDJgLCBhbmQgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDNgLiBUaGVzZSBhcmUgYWxsIGNhbGxlZCBieSBgcnR3ODgyMmNfcmZfZGFjX2NhbGAuIGBydHc4ODIyY19yZl9kYWNfY2FsYCBpcyBpbiB0dXJuIGNhbGxlZCBieSBgcnR3ODgyMmNfcmZfaW5pdGAuIFRoZW4sIGZpbmFsbHksIGBydHc4ODIyY19yZl9pbml0YCBpcyBjYWxsZWQgYnkgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gLlxuXG5Pa2F5LCBzbyBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAgaXMgYWxzbyBzdGF0aWMsIGJ1dCBpdCAqaXMqIGFzc2lnbmVkIHRvIGAucGh5X3NldF9wYXJhbWAgaW4gYHJ0dzg4MjJjX29wc2AuIFRoaXMgaXMgbWFraW5nIG1lIHRoaW5rIHRoZXJlJ3MgYSBub24tc3RhdGljIGZ1bmN0aW9uIGRlZXBlciB3aXRoaW4gYHJ0dzg4MjJjLmNgIHRoYXQgaGFuZGxlcyB0aGlzLlxuXG5UaW1lIHRvIGdvIGNoZWNrIGBydHc4ODIyYy5jYCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjE1NCwiT3V0cHV0VG9rZW5zIjo3MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjM2Ljg1MTk0OTk3OVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1MzY4NzQyNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeKFthLXpfMC05XSsgKStydHc4ODIyY19bYS16XzAtOV0rXFxcXChcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjQxIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ190cnhfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB0eF9wYXRoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNS1cXHRcXHRcXHRcXHQgICAgIHU4IHJ4X3BhdGgsIGJvb2wgaXNfdHgyX3BhdGgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM5PXN0YXRpYyB2b2lkIHJ0dzg4MjJjc19lZnVzZV9wYXJzaW5nKHN0cnVjdCBydHdfZWZ1c2UgKmVmdXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTpzdGF0aWMgaW50IHJ0dzg4MjJjX3JlYWRfZWZ1c2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmxvZ19tYXApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6ODk6c3RhdGljIHZvaWQgcnR3ODgyMmNfaGVhZGVyX2ZpbGVfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIHByZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTAyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2JiX3Jlc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwMy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2JhY2t1cF9yZWcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTEwLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X2JhY2t1cF9pbmZvICpiYWNrdXAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMzg6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX3Jlc3RvcmVfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEzOS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBydHdfYmFja3VwX2luZm8gKmJhY2t1cCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE1NzpzdGF0aWMgaW50IHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNjY6c3RhdGljIHUzMiBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqdmVjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNjcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTc4OnN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTk3OnN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfcmVhZF9hZGRyKHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE5OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMTY6c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIyNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKml2LCBzMzIgKnF2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQ0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NS1cXHRcXHRcXHRcXHQgICAgICAgczMyICppdiwgczMyICpxdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzAwLVxcdFxcdFxcdFxcdCAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMTU6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2JiX3NldHRpbmcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMzMTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2FkYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzItXFx0XFx0XFx0XFx0IHU4IHBhdGgsIHUzMiAqYWRjX2ljLCB1MzIgKmFkY19xYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQwOTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXAxKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00NTUtXFx0XFx0XFx0XFx0ICAgdTggcGF0aCwgdTMyICppY19vdXQsIHUzMiAqcWNfb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTUwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTAzOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTA0LVxcdFxcdFxcdFxcdCAgIHUzMiBhZGNfaWMsIHUzMiBhZGNfcWMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo1ODA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwNChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01ODEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTU4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTkwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfYmFja3VwX3ZlYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01OTEtXFx0XFx0XFx0XFx0XFx0dTggcGF0aCwgdTggdmVjLCB1MzIgd19hZGRyLCB1MzIgcl9hZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NjA3OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfYmFja3VwX3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02MjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjYyNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cF9kY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjY1MTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTY4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NjgxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfcmVzdG9yZV9kY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy03MTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjcxMTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmVfcHJlcGFyZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy03MTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NzY0OnN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19jYWxfcmVzdG9yZV93YWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc2NS1cXHRcXHRcXHRcXHRcXHQgIHUzMiB0YXJnZXRfYWRkciwgdTMyIHRvZ2dsZV9hZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NzgxOnN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19jYWxfcmVzdG9yZV9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc4Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9ODI4PXN0YXRpYyBib29sIF9fcnR3ODgyMmNfZGFjX2NhbF9yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtODM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo4Mzk6c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2NhbF9yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTg0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtODc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo4ODA6c3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfZGFjX2NhbChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04ODEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6OTQ3OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX3gyX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk0OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo5NjE6c3RhdGljIHZvaWQgcnR3ODgyMmNfc2V0X3Bvd2VyX3RyaW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczggYmJfZ2FpblsyXVs4XSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy05OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjk5MzpzdGF0aWMgdm9pZCBydHc4ODIyY19wb3dlcl90cmltKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk5NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTAyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTAzMDpzdGF0aWMgdm9pZCBydHc4ODIyY190aGVybWFsX3RyaW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTAzMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTA0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTA0ODpzdGF0aWMgdm9pZCBydHc4ODIyY19wYV9iaWFzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEwNzA6c3RhdGljIHZvaWQgcnR3ODgyMmNfcmZrX2hhbmRzaGFrZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGlzX2JlZm9yZV9rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMDcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMTE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTE2OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3Jma19wb3dlcl9zYXZlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExMTctXFx0XFx0XFx0XFx0ICAgIGJvb2wgaXNfcG93ZXJfc2F2ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTI4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19iYWNrdXBfYmJfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGNvbnN0IHUzMiByZWdbXSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTEyOS1cXHRcXHRcXHRcXHRcXHQgIHUzMiByZWdfYmFja3VwW10sIHUzMiByZWdfbnVtKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjExNDE6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3JlbG9hZF9iYl9yZWcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE0Mi1cXHRcXHRcXHRcXHRcXHQgIGNvbnN0IHUzMiByZWdbXSwgdTMyIHJlZ19iYWNrdXBbXSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xMTU0PXN0YXRpYyBib29sIGNoZWNrX3JmX3N0YXR1cyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBzdGF0dXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTE2OTpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfdHhfcGF1c2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTE4NTpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfYmJfZHBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExODYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEyMTc6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2FmZV9kcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTIxOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTI1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTI1MzpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfYWZlX2Rwa19yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyNTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEyODY6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2JiX2Rwa19yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyODcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTEzMzU9c3RhdGljIHZvaWQgX3J0dzg4MjJjX3R4Z2Fwa193cml0ZV9nYWluX2JiX3RhYmxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTM4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTM4OTpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfd3JpdGVfZ2Fpbl9iYl90YWJsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMzkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNDA0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19yZWFkX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDA1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNDgxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19jYWxjdWxhdGVfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE0ODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1NTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE1NTU6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3JmX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTU1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTU2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTU2NzpzdGF0aWMgdTMyIHJ0dzg4MjJjX3R4Z2Fwa19jYWxfZ2FpbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgZ2Fpbiwgczggb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNTkxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa193cml0ZV90eF9nYWluKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1OTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE2NjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE2NjE6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3NhdmVfYWxsX3R4X2dhaW5fdGFibGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTY2Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTcxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTcyMDpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTcyMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTc2MjpzdGF0aWMgdm9pZCBydHc4ODIyY19kb19nYXBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3NjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3NzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE3NzU6c3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzg0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc4NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTgwMDpzdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4MDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE5NDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE5NDE6c3RhdGljIGludCBydHc4ODIyY19tYWNfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xOTQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yMDg0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2Z3Y2Rfc2VncyBydHc4ODIyY19md2NkX3NlZ3MgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjA4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjA4OTpzdGF0aWMgaW50IHJ0dzg4MjJjX2R1bXBfZndfY3Jhc2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjA5MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjExNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjExNzpzdGF0aWMgdm9pZCBydHc4ODIyY19yc3RiXzN3aXJlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTE4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMTI4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3NldF9jaGFubmVsX3JmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IGNoYW5uZWwsIHU4IGJ3KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMTk0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3RvZ2dsZV9pZ2koc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE5NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjIwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjIwNTpzdGF0aWMgdm9pZCBydHc4ODIyY19zZXRfY2hhbm5lbF9iYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjIwNi1cXHRcXHRcXHRcXHQgICAgdTggcHJpbWFyeV9jaF9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM2Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjM2MzpzdGF0aWMgdm9pZCBydHc4ODIyY19zZXRfY2hhbm5lbChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM2NC1cXHRcXHRcXHRcXHQgdTggcHJpbWFyeV9jaGFuX2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMzcyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ19jY2tfcnhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCByeF9wYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzczLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMzkwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ19vZmRtX3J4X3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcnhfcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM5MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQxMDpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfcnhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCByeF9wYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNDE2OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ19jY2tfdHhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB0eF9wYXRoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDE3LVxcdFxcdFxcdFxcdFxcdGJvb2wgaXNfdHgyX3BhdGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQzMjpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfb2ZkbV90eF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHR4X3BhdGgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0MzMtXFx0XFx0XFx0XFx0XFx0IGVudW0gcnR3X2JiX3BhdGggdHhfcGF0aF9zZWxfMXNzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI0NTY6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29uZmlnX3R4X3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQ1Ny1cXHRcXHRcXHRcXHQgICAgZW51bSBydHdfYmJfcGF0aCB0eF9wYXRoX3NlbF8xc3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQ2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQ2NjpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQ2Ny1cXHRcXHRcXHRcXHQgICAgIHU4IHJ4X3BhdGgsIGJvb2wgaXNfdHgyX3BhdGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MjYzMT1ydHc4ODIyY19zZXRfd3JpdGVfdHhfcG93ZXJfcmVmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICp0eF9wd3JfcmVmX2NjayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNjUxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3NldF90eF9wb3dlcl9kaWZmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHJhdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI2NTItXFx0XFx0XFx0XFx0ICAgICAgIHM4ICpkaWZmX2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNjczOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3NldF90eF9wb3dlcl9pbmRleChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNzA2OnN0YXRpYyBpbnQgcnR3ODgyMmNfc2V0X2FudGVubmEoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjcwNy1cXHRcXHRcXHRcXHRpbnQgcmFkaW9faWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI3NDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI3NDE6c3RhdGljIHZvaWQgcnR3ODgyMmNfY2ZnX2xkbzI1KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNzUwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2ZhbHNlX2FsYXJtX3N0YXRpc3RpY3Moc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjc1MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjgxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjgyMDpzdGF0aWMgdm9pZCBydHc4ODIyY19kb19sY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjgyMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjgzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjg0MDpzdGF0aWMgdm9pZCBydHc4ODIyY19kb19pcWsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg0MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg1Ny0vKiBmb3IgY29leCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyODU4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvZXhfY2ZnX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg1OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjg4NzpzdGF0aWMgdm9pZCBydHc4ODIyY19jb2V4X2NmZ19nbnRfZml4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI4ODgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5NjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5NjY6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfZ250X2RlYnVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5Njcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5NzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5NzU6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfcmZlX3R5cGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjk5ODpzdGF0aWMgdm9pZCBydHc4ODIyY19jb2V4X2NmZ193bF90eF9wb3dlcihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB3bF9wd3IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5OTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwMDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfd2xfcnhfZ2FpbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGxvd19nYWluKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDM5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2JmX2VuYWJsZV9iZmVlX3N1KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwNDAtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBydHdfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzA1OTpzdGF0aWMgdm9pZCBydHc4ODIyY19iZl9jb25maWdfYmZlZV9zdShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDYwLVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3X3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwNjk6c3RhdGljIHZvaWQgcnR3ODgyMmNfYmZfY29uZmlnX2JmZWVfbXUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA3MC1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHJ0d192aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDc5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2JmX2NvbmZpZ19iZmVlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBydHdfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwODAtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHdfYmZlZSAqYmZlZSwgYm9vbCBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MzA5MD1zdHJ1Y3QgZHBrX2NmZ19wYWlyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDk2OnZvaWQgcnR3ODgyMmNfcGFyc2VfdGJsX2RwayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk3LVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlICp0YmwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzEwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzEwODpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfc2V0X2dudF93bChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGlzX2JlZm9yZV9rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMTM0PXJ0dzg4MjJjX2Rwa19iYWNrdXBfcmVnaXN0ZXJzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqcmVnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNDY6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2JhY2t1cF9yZl9yZWdpc3RlcnMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE0Ny1cXHRcXHRcXHRcXHRcXHQgICAgIHUzMiAqcmZfcmVnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNjA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3JlbG9hZF9yZl9yZWdpc3RlcnMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE2MS1cXHRcXHRcXHRcXHRcXHQgICAgIHUzMiAqcmZfcmVnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxNzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNzQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxNzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxODg6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3J4YmJfZGNfY2FsKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxODkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxOTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxOTc6c3RhdGljIHU4IHJ0dzg4MjJjX2Rwa19kY19jb3JyX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxOTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyMjI6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3R4X3BhdXNlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyMzg6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX21hY19iYl9zZXR0aW5nKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyNDQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2FmZV9zZXR0aW5nKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgaXNfZG9fZHBrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMjUyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19wcmVfc2V0dGluZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMjcxOnN0YXRpYyB1MzIgcnR3ODgyMmNfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzI3Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzMwOTpzdGF0aWMgdTE2IHJ0dzg4MjJjX2Rwa19nZXRfY21kKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IGFjdGlvbiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzMzNDpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX29uZV9zaG90KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsIHU4IGFjdGlvbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzM3NTpzdGF0aWMgdTE2IHJ0dzg4MjJjX2Rwa19kZ2Fpbl9yZWFkKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMzODc6c3RhdGljIHU4IHJ0dzg4MjJjX2Rwa190aGVybWFsX3JlYWQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM4OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzM5NzpzdGF0aWMgdTMyIHJ0dzg4MjJjX2Rwa19wYXNfcmVhZChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzk4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNDIwOnN0YXRpYyB1MzIgcnR3ODgyMmNfcHNkX2xvZzJiYXNlKHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0MjEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM0NDY6c3RhdGljIHU4IHJ0dzg4MjJjX2Rwa19nYWlubG9zc19yZXN1bHQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzQ0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzQ2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzQ2MTpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX2FnY19nYWluX2NoayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDYyLVxcdFxcdFxcdFxcdCAgICB1OCBsaW1pdGVkX3BnYSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNDc4OnN0YXRpYyB1OCBydHc4ODIyY19kcGtfYWdjX2xvc3NfY2hrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0Nzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM0OTU9c3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTA1OnN0YXRpYyB1OCBydHc4ODIyY19nYWluX2NoZWNrX3N0YXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1MDYtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTM1OnN0YXRpYyB1OCBydHc4ODIyY19nYWluX2xhcmdlX3N0YXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1MzYtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTUwOnN0YXRpYyB1OCBydHc4ODIyY19nYWluX2xlc3Nfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU1MS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3ODgyMmNfZHBrX2RhdGEgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzU2NTpzdGF0aWMgdTggcnR3ODgyMmNfZ2xfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU2Ni1cXHRcXHRcXHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhLCB1OCBpc19sYXJnZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTg0OnN0YXRpYyB1OCBydHc4ODIyY19nbF9sYXJnZV9zdGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTg1LVxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM1OTA6c3RhdGljIHU4IHJ0dzg4MjJjX2dsX2xlc3Nfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU5MS1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1OTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM1OTY6c3RhdGljIHU4IHJ0dzg4MjJjX2xvc3NfY2hlY2tfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU5Ny1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM2MDg9c3RhdGljIHU4ICgqZHBrX3N0YXRlW10pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzYxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzYxNDpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX3Bhc19hZ2Moc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzYxNS1cXHRcXHRcXHQgICAgICAgYm9vbCBnYWluX29ubHksIGJvb2wgbG9zc19vbmx5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM2MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM2MzU6c3RhdGljIGJvb2wgcnR3ODgyMmNfZHBrX2NvZWZfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzYzNi1cXHRcXHRcXHRcXHQgICAgICAgdTE2IGNvZWZfaSwgdTE2IGNvZWZfcSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNjQ1OnN0YXRpYyB1MzIgcnR3ODgyMmNfZHBrX2NvZWZfdHJhbnNmZXIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY0Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MzY2Mj1zdGF0aWMgY29uc3QgdTMyIHJ0dzg4MjJjX2Rwa19nZXRfY29lZl90YmxbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNjY5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19jb2VmX3RibF9hcHBseShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjcwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNjgxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19nZXRfY29lZihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDozOC4yMDU2NDM2NzVaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk4OTA1MTI4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgcnR3ODgyMmNfb3BzIFN0cnVjdHVyZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgYHJ0dzg4MjJjX29wc2Agc3RydWN0IGlzIGJlaW5nIHVzZWQgaW4gdGhpcyBkcml2ZXIuIFJpZ2h0LCBpdCdzIHRoZSBvbmUgaG9sZGluZyB0aGUgZnVuY3Rpb24gcG9pbnRlcnMg4oCTIHRoZSBoZWFydCBvZiB0aGlzIHRoaW5nLiBUaGF0J3MgdXN1YWxseSBob3cgdGhleSBkbyBpdCBpbiB0aGVzZSBrZXJuZWwgbW9kdWxlcywgYSBjbGVhbiB3YXkgdG8gZGVmaW5lIGFuIGludGVyZmFjZSBmb3IgdGhlIGhhcmR3YXJlIG9wZXJhdGlvbnMuIFRpbWUgdG8gZGlzc2VjdCB0aGlzIHN0cnVjdCBhbmQgc2VlIHdoaWNoIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCB3aXRoaW4gYHJ0dzg4MjJjX29wc2AuIExldCdzIHNlZSB3aGF0IG1ldGhvZHMgaXQgZGVmaW5lcywgd2hhdCBraW5kIG9mIG9wZXJhdGlvbnMgd2UgaGF2ZSBoZXJlLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgY29yZSBmdW5jdGlvbnMgYXJlIG1hcHBlZCBhbmQgaG93IHRoZSBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhhcmR3YXJlLiBJIHdpbGwgc3RhcnQgYnkgc2VlaW5nIHdoYXQgdGhlIGZ1bmN0aW9ucyBhcmUsIGFuZCB0aGVuIEkgd2lsbCBjaGVjayBpZiB0aGVpciBpbXBsZW1lbnRhdGlvbiBpcyBjb25zaXN0ZW50IHdpdGggb3RoZXIgcmVsYXRlZCBkcml2ZXJzIEkgYW0gZmFtaWxpYXIgd2l0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg5NzEsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDo0My4xOTQ2OTgxMTRaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5NTkzOTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4MjJjX29wc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDg4MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19wcmlvcV9hZGRycyBwcmlvcV9hZGRyc184ODIyYyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00ODk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0ODk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjJjX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDg5Ny1cXHQucG93ZXJfb25cXHRcXHQ9IHJ0d19wb3dlcl9vbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz01MjczPWNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvIHJ0dzg4MjJjX2h3X3NwZWMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUyNzQ6XFx0Lm9wcyA9IFxcdTAwMjZydHc4ODIyY19vcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTUyNzUtXFx0LmlkID0gUlRXX0NISVBfVFlQRV84ODIyQyxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6NDMuMjQ0Mjk3MTczWiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3NjcyNzI4MzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUgd2UgZ28uLi5cblxuKipEaXZpbmcgaW50byBgcnR3ODgyMmNfb3BzYCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gY3JhY2sgb3BlbiB0aGUgYHJ0dzg4MjJjX29wc2Agc3RydWN0dXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSB3aXRoaW4gdGhlIGJyb2FkZXIgZnJhbWV3b3JrLiBJbW1lZGlhdGVseSwgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMuIFRoaXMgbGlrZWx5IHJlcHJlc2VudHMgdGhlIHNwZWNpZmljIG9wZXJhdGlvbnMgaW50ZXJmYWNlIGZvciB0aGUgUmVhbHRlayBSVEw4ODIyQyB3aXJlbGVzcyBjaGlwLiBNeSBtaW5kJ3MgcmFjaW5nIOKAkyB3aGF0IGFyZSB0aGUga2V5IGZ1bmN0aW9ucyBkZWZpbmVkIGhlcmU/IFRoaW5rIGRyaXZlciBpbml0aWFsaXphdGlvbiwgcG93ZXIgbWFuYWdlbWVudCBjYWxsYmFja3MsIHBlcmhhcHMgdHJhbnNtaXQgYW5kIHJlY2VpdmUgcGF0aCBjb25maWd1cmF0aW9uLCBhbmQgaW50ZXJydXB0IGhhbmRsaW5nLi4uYWxsIHRoZSBjb3JlIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBkcml2ZXIgYW5kIHRoZSBoYXJkd2FyZS4gSSBoYXZlIGEgaHVuY2ggaXQgd2lsbCBnaXZlIG1lIGFuIGluc2lnaHQgaW50byB0aGUgZGVzaWduIGRlY2lzaW9ucyBhcm91bmQgdGhpcyBzcGVjaWZpYyBjaGlwLCBtYXliZSBpdHMgbGltaXRhdGlvbnMgdG9vLiBMZXTigJlzIHNlZSBpZiB0aGV5J3ZlIGltcGxlbWVudGVkIHRoZWlyIG93biBzY2hlZHVsaW5nIG1lY2hhbmlzbXMsIG9yIGFyZSByZWx5aW5nIG9uIHRoZSBnZW5lcmljIHN0YWNrIG1vcmUgaGVhdmlseS4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucywgc28gdG8gc3BlYWsuIE5vdywgbGV0J3MgZ2V0IHJlYWRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5NTgxLCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6NDkuMDExNTczOTc2WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjQwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNDg5NixcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiNDg5NjpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyY19vcHMgPSB7XFxuNDg5NzpcXHRcXHQucG93ZXJfb25cXHRcXHQ9IHJ0d19wb3dlcl9vbixcXG40ODk4OlxcdFxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0d19wb3dlcl9vZmYsXFxuNDg5OTpcXHRcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODgyMmNfcGh5X3NldF9wYXJhbSxcXG40OTAwOlxcdFxcdC5yZWFkX2VmdXNlXFx0XFx0PSBydHc4ODIyY19yZWFkX2VmdXNlLFxcbjQ5MDE6XFx0XFx0LnF1ZXJ5X3BoeV9zdGF0dXNcXHQ9IHF1ZXJ5X3BoeV9zdGF0dXMsXFxuNDkwMjpcXHRcXHQuc2V0X2NoYW5uZWxcXHRcXHQ9IHJ0dzg4MjJjX3NldF9jaGFubmVsLFxcbjQ5MDM6XFx0XFx0Lm1hY19pbml0XFx0XFx0PSBydHc4ODIyY19tYWNfaW5pdCxcXG40OTA0OlxcdFxcdC5tYWNfcG9zdGluaXRcXHRcXHQ9IE5VTEwsXFxuNDkwNTpcXHRcXHQuZHVtcF9md19jcmFzaFxcdFxcdD0gcnR3ODgyMmNfZHVtcF9md19jcmFzaCxcXG40OTA2OlxcdFxcdC5yZWFkX3JmXFx0XFx0PSBydHdfcGh5X3JlYWRfcmYsXFxuNDkwNzpcXHRcXHQud3JpdGVfcmZcXHRcXHQ9IHJ0d19waHlfd3JpdGVfcmZfcmVnX21peCxcXG40OTA4OlxcdFxcdC5zZXRfdHhfcG93ZXJfaW5kZXhcXHQ9IHJ0dzg4MjJjX3NldF90eF9wb3dlcl9pbmRleCxcXG40OTA5OlxcdFxcdC5zZXRfYW50ZW5uYVxcdFxcdD0gcnR3ODgyMmNfc2V0X2FudGVubmEsXFxuNDkxMDpcXHRcXHQuY2ZnX2xkbzI1XFx0XFx0PSBydHc4ODIyY19jZmdfbGRvMjUsXFxuNDkxMTpcXHRcXHQuc2V0X2FtcGR1X2ZhY3RvclxcdD0gTlVMTCxcXG40OTEyOlxcdFxcdC5mYWxzZV9hbGFybV9zdGF0aXN0aWNzXFx0PSBydHc4ODIyY19mYWxzZV9hbGFybV9zdGF0aXN0aWNzLFxcbjQ5MTM6XFx0XFx0LmRwa190cmFja1xcdFxcdD0gcnR3ODgyMmNfZHBrX3RyYWNrLFxcbjQ5MTQ6XFx0XFx0LnBoeV9jYWxpYnJhdGlvblxcdD0gcnR3ODgyMmNfcGh5X2NhbGlicmF0aW9uLFxcbjQ5MTU6XFx0XFx0LmNja19wZF9zZXRcXHRcXHQ9IHJ0dzg4MjJjX3BoeV9jY2tfcGRfc2V0LFxcbjQ5MTY6XFx0XFx0LnB3cl90cmFja1xcdFxcdD0gcnR3ODgyMmNfcHdyX3RyYWNrLFxcbjQ5MTc6XFx0XFx0LmNvbmZpZ19iZmVlXFx0XFx0PSBydHc4ODIyY19iZl9jb25maWdfYmZlZSxcXG40OTE4OlxcdFxcdC5zZXRfZ2lkX3RhYmxlXFx0XFx0PSBydHdfYmZfc2V0X2dpZF90YWJsZSxcXG40OTE5OlxcdFxcdC5jZmdfY3NpX3JhdGVcXHRcXHQ9IHJ0d19iZl9jZmdfY3NpX3JhdGUsXFxuNDkyMDpcXHRcXHQuYWRhcHRpdml0eV9pbml0XFx0PSBydHc4ODIyY19hZGFwdGl2aXR5X2luaXQsXFxuNDkyMTpcXHRcXHQuYWRhcHRpdml0eVxcdFxcdD0gcnR3ODgyMmNfYWRhcHRpdml0eSxcXG40OTIyOlxcdFxcdC5jZm9faW5pdFxcdFxcdD0gcnR3ODgyMmNfY2ZvX2luaXQsXFxuNDkyMzpcXHRcXHQuY2ZvX3RyYWNrXFx0XFx0PSBydHc4ODIyY19jZm9fdHJhY2ssXFxuNDkyNDpcXHRcXHQuY29uZmlnX3R4X3BhdGhcXHRcXHQ9IHJ0dzg4MjJjX2NvbmZpZ190eF9wYXRoLFxcbjQ5MjU6XFx0XFx0LmNvbmZpZ190eHJ4X21vZGVcXHQ9IHJ0dzg4MjJjX2NvbmZpZ190cnhfbW9kZSxcXG40OTI2OlxcdFxcdC5sZWRfc2V0XFx0XFx0PSBydHc4ODIyY19sZWRfc2V0LFxcbjQ5Mjc6XFx0XFx0LmZpbGxfdHhkZXNjX2NoZWNrc3VtXFx0PSBydHc4ODIyY19maWxsX3R4ZGVzY19jaGVja3N1bSxcXG40OTI4OlxcdFxcbjQ5Mjk6XFx0XFx0LmNvZXhfc2V0X2luaXRcXHRcXHQ9IHJ0dzg4MjJjX2NvZXhfY2ZnX2luaXQsXFxuNDkzMDpcXHRcXHQuY29leF9zZXRfYW50X3N3aXRjaFxcdD0gTlVMTCxcXG40OTMxOlxcdFxcdC5jb2V4X3NldF9nbnRfZml4XFx0PSBydHc4ODIyY19jb2V4X2NmZ19nbnRfZml4LFxcbjQ5MzI6XFx0XFx0LmNvZXhfc2V0X2dudF9kZWJ1Z1xcdD0gcnR3ODgyMmNfY29leF9jZmdfZ250X2RlYnVnLFxcbjQ5MzM6XFx0XFx0LmNvZXhfc2V0X3JmZV90eXBlXFx0PSBydHc4ODIyY19jb2V4X2NmZ19yZmVfdHlwZSxcXG40OTM0OlxcdFxcdC5jb2V4X3NldF93bF90eF9wb3dlclxcdD0gcnR3ODgyMmNfY29leF9jZmdfd2xfdHhfcG93ZXIsXFxuNDkzNTpcXHRcXHQuY29leF9zZXRfd2xfcnhfZ2FpblxcdD0gcnR3ODgyMmNfY29leF9jZmdfd2xfcnhfZ2FpbixcXG40OTM2OlxcdH07XFxuNDkzNzpcXHRcXG40OTM4OlxcdC8qIFNoYXJlZC1BbnRlbm5hIENvZXggVGFibGUgKi9cXG40OTM5OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29leF90YWJsZV9wYXJhIHRhYmxlX3NhbnRfODgyMmNbXSA9IHtcXG40OTQwOlxcdFxcdHsweGZmZmZmZmZmLCAweGZmZmZmZmZmfSwgLyogY2FzZS0wICovXFxuNDk0MTpcXHRcXHR7MHg1NTU1NTU1NSwgMHg1NTU1NTU1NX0sXFxuNDk0MjpcXHRcXHR7MHg2NjU1NTU1NSwgMHg2NjU1NTU1NX0sXFxuNDk0MzpcXHRcXHR7MHhhYWFhYWFhYSwgMHhhYWFhYWFhYX0sXFxuNDk0NDpcXHRcXHR7MHg1YTVhNWE1YSwgMHg1YTVhNWE1YX0sXFxuNDk0NTpcXHRcXHR7MHhmYWZhZmFmYSwgMHhmYWZhZmFmYX0sIC8qIGNhc2UtNSAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDo0OS4wMTIwODMwNzZaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI2NTE4MTY5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBQb3dlci1PbiBTZXF1ZW5jZSoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gdHJhY2UgdGhlIHBvd2VyLW9uIHNlcXVlbmNlIGZvciB0aGlzIHN5c3RlbS4gVGhlIHN0YXJ0aW5nIHBvaW50IHNlZW1zIHRvIGJlIGBydHdfcG93ZXJfb25gLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCdzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHRoZSBtYWluIGVudHJ5IGZ1bmN0aW9uLiBUaGlzIHRoZW4gbGVhZHMgdG8gYSBjYWxsIHRvIGBwaHlfc2V0X3BhcmFtYCwgd2hpY2ggdWx0aW1hdGVseSByZXNvbHZlcyB0byBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAuIEhtbSwgYnV0IGBydHc4ODIyY19waHlfc2V0X3BhcmFtYCBpcyBkZWNsYXJlZCBhcyBgc3RhdGljYC4gVGhhdCdzIGEgYml0IG9mIGEgcm9hZGJsb2NrLiBJdCdzIG5vdCBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZSBpdHMgY29tcGlsYXRpb24gdW5pdCwgd2hpY2ggbWlnaHQgY29tcGxpY2F0ZSB0aGluZ3MuXG5cblRoZSBxdWVzdGlvbiB0aGVuIGlzLCBjYW4gSSBzdGlsbCBsZXZlcmFnZSBgcnR3X3Bvd2VyX29uYCBhcyBteSBzdGFydGluZyBwb2ludD8gTGV0J3MgYXNzdW1lIHNvIGZvciBub3cuIEkgcmVjYWxsIHRoYXQgYHJ0d19wb3dlcl9vbmAgcmVzaWRlcyBpbiBgbWFpbi5jYC4gVGhhdCdzIHVzZWZ1bCBpbmZvcm1hdGlvbi4gU28sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIGNvZGUgZm9yIGBydHdfcG93ZXJfb25gIGl0c2VsZi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZyB0aGVyZSB0byBzZWUgaG93IHRoZSBzdGF0aWMgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gIGlzIGJlaW5nIHVzZWQgb3IgYWNjZXNzZWQsIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBvd2VyLW9uIGluaXRpYWxpemF0aW9uIHByb2NlZHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDExNTksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDo1My4yNzcyNjgzMTVaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2OTQ5MzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d19wb3dlcl9vblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0xMzU0PXN0YXRpYyBlbnVtIHJ0d19scHNfZGVlcF9tb2RlIHJ0d191cGRhdGVfbHBzX2RlZXBfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMTM3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoxMzc0OmludCBydHdfcG93ZXJfb24oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xMzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE0NDItfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjE0NDM6RVhQT1JUX1NZTUJPTChydHdfcG93ZXJfb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE0NDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0yMjcxPWludCBydHdfd2FpdF9maXJtd2FyZV9jb21wbGV0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIyNzI6aW50IHJ0d19wb3dlcl9vbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjczLXZvaWQgcnR3X2NvcmVfZndfc2Nhbl9ub3RpZnkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgYm9vbCBzdGFydCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM9MTgzNj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzAzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jOjE4Mzc6XFx0LnBvd2VyX29uXFx0XFx0PSBydHdfcG93ZXJfb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jLTE4MzgtXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYz0xMzkyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg3MjNkX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM6MTM5MzpcXHQucG93ZXJfb25cXHRcXHQ9IHJ0d19wb3dlcl9vbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtMTM5NC1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHdfcG93ZXJfb2ZmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jPTIwNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgxNGFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyMDUxOlxcdC5wb3dlcl9vblxcdFxcdD0gcnR3X3Bvd2VyX29uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYy0yMDUyLVxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0d19wb3dlcl9vZmYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM9MTY1OD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIxY19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjE2NTk6XFx0LnBvd2VyX29uXFx0XFx0PSBydHdfcG93ZXJfb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE2NjAtXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYz0yMTUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjJiX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM6MjE1MTpcXHQucG93ZXJfb25cXHRcXHQ9IHJ0d19wb3dlcl9vbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMjE1Mi1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHdfcG93ZXJfb2ZmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0ODk3OlxcdC5wb3dlcl9vblxcdFxcdD0gcnR3X3Bvd2VyX29uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00ODk4LVxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0d19wb3dlcl9vZmYsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjUzLjMzNDIyMzUxNFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzcxODM3NDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUG93ZXItT24gU2VxdWVuY2UqKlxuXG5Pa2F5LCBzbyBgcnR3X3Bvd2VyX29uYCBpcyBkZWZpbml0ZWx5IGFuIGV4cG9ydGVkIGZ1bmN0aW9uLiBNeSBmaXJzdCB0aG91Z2h0IGlzOiBJcyB0aGlzIHRoZSAqb25seSogZW50cnkgcG9pbnQ/IEkgbmVlZCB0byBiZSBzdXJlIEknbSBub3QgbWlzc2luZyBhbnl0aGluZyBjcnVjaWFsLiBMZXQncyBkaWcgZGVlcGVyLiBBaCwgcmlnaHQsIEkgcmVtZW1iZXIgc2VlaW5nIGBydHdfY29yZV9zdGFydGAgaW4gYG1haW4uY2AuIEl0J3MgY2FsbGluZyBgcnR3X3Bvd2VyX29uYCwgc28gdGhhdCBzb2xpZGlmaWVzIHRoZSBjb25uZWN0aW9uLiBOb3csIHRoZSBsb2dpY2FsIG5leHQgc3RlcCBpcyB0byBkcmlsbCBkb3duIGludG8gdGhlIGBydHdfY29yZV9zdGFydGAgZnVuY3Rpb24gaXRzZWxmLiBVbmRlcnN0YW5kaW5nIHRoYXQgZmxvdyB3aWxsIHByb2JhYmx5IGdpdmUgbWUgYSBtdWNoIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgb3ZlcmFsbCBpbml0aWFsaXphdGlvbiBwcm9jZXNzIGFuZCBob3cgdGhpcyBgcnR3X3Bvd2VyX29uYCBmdW5jdGlvbiBmaXRzIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjc5MiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjU3LjcwNjA2NDY3WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTE2Mjg3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfY29yZV9zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NTM9c3RhdGljIGludCBydHdfb3BzX3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTU4LVxcdG11dGV4X2xvY2soXFx1MDAyNnJ0d2Rldi1cXHUwMDNlbXV0ZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo1OTpcXHRyZXQgPSBydHdfY29yZV9zdGFydChydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy02MC1cXHRtdXRleF91bmxvY2soXFx1MDAyNnJ0d2Rldi1cXHUwMDNlbXV0ZXgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MTQ5MD12b2lkIHJ0d19jb3JlX3NjYW5fY29tcGxldGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE1MTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MTUxNTppbnQgcnR3X2NvcmVfc3RhcnQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xNTE2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIyNTM9dm9pZCBydHdfY29yZV9zY2FuX2NvbXBsZXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI1NC1cXHRcXHRcXHQgICAgYm9vbCBod19zY2FuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjU1OmludCBydHdfY29yZV9zdGFydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjU2LXZvaWQgcnR3X3Bvd2VyX29mZihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcHMuYz0xMz1zdGF0aWMgaW50IHJ0d19pcHNfcHdyX3VwKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BzLmMtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wcy5jOjE3OlxcdHJldCA9IHJ0d19jb3JlX3N0YXJ0KHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wcy5jLTE4LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjU3Ljc1NTIzMjQ2WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NjU2NTAwOTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIHNvIHRoZSBgcnR3X2NvcmVfc3RhcnRgIGZ1bmN0aW9uLCB0aGF0J3Mgd2hlcmUgdGhpbmdzIGtpY2sgb2ZmLiBJIHNlZSBmcm9tIHRoZSBjYWxsIGdyYXBoIHRoYXQgaXQgZ2V0cyBjYWxsZWQgZnJvbSBgcnR3X29wc19zdGFydGAgd2l0aGluIGBtYWM4MDIxMS5jYC4gQW5kIGBydHdfb3BzX3N0YXJ0YCBpcyB0aGUgYC5zdGFydGAgY2FsbGJhY2sgZm9yIG1hYzgwMjExLCByaWdodD8gU28sIGBydHdfY29yZV9zdGFydGAgc2VlbXMgbGlrZSBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZyDigJMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IHRvIGV4cGxvcmUuIEJ1dCB3YWl0LCBgcnR3X2NvcmVfc3RhcnRgIHJlc2lkZXMgaW4gYG1haW4uY2AsIGFuZCB0aGUgcGF0Y2ggc3BlY2lmaWNhbGx5IG1vZGlmaWVzIGNvZGUgaW4gYHJ0dzg4MjJjLmNgLiBGb2N1c2luZyBvbiBgcnR3X2NvcmVfc3RhcnRgIHdvdWxkIHByaW1hcmlseSBmdXp6IHRoZSBvdmVyYWxsIGRldmljZSBpbml0aWFsaXphdGlvbiwgbm90IHRoZSBzcGVjaWZpYyBjaGFuZ2VzLiBUaGF0IGRvZXNuJ3QgZmVlbCByaWdodC5cblxuTGV0J3MgcmV0aGluayB0aGlzLiBJcyB0aGVyZSBhbnl0aGluZyBlbHNlIGluIGBydHc4ODIyYy5jYCB0aGF0J3MgZXhwb3J0ZWQgb3Igbm90IHN0YXRpYz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBmdW5jdGlvbnMgd2l0aGluIHRoYXQgc3BlY2lmaWMgZmlsZSBhcmUgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGUsIG9yIHBlcmhhcHMgbW9yZSByZWxldmFudCB0byB0aGUgcmVjZW50IGNoYW5nZXMuIFRpbWUgdG8gZGl2ZSBpbnRvIGBydHc4ODIyYy5jYCBhbmQgc2VhcmNoIGZvciBub24tc3RhdGljIGZ1bmN0aW9ucy4gVGhhdCdzIHRoZSByZWFsIGFyZWEgSSBuZWVkIHRvIGhvbmUgaW4gb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzNjkwLCJPdXRwdXRUb2tlbnMiOjY5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjAyLjMyMDg4NTUxNVoiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA0MTI3MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXlthLXpfMC05XSsgcnR3ODgyMmNfW2Etel8wLTldK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MzA5MD1zdHJ1Y3QgZHBrX2NmZ19wYWlyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDk2OnZvaWQgcnR3ODgyMmNfcGFyc2VfdGJsX2RwayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk3LVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlICp0YmwpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjAyLjM3MTMwNDI0NFoiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjQ2MjQ5MDA0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIGNvZGUgYW5hbHlzaXM6XG5cbioqQ29kZSBTdHJ1Y3R1cmUgYW5kIFZpc2liaWxpdHkgQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYHJ0dzg4MjJjLmNgIGZpbGUuIFRoZSBtYWluIHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoZSBmdW5jdGlvbiBgcnR3ODgyMmNfcGFyc2VfdGJsX2Rwa2AuIEl0J3MgdGhlIG9ubHkgb25lIG9mIHRoZSBidW5jaCB0aGF0J3MgKm5vdCogZGVjbGFyZWQgYXMgYHN0YXRpY2AgaW4gdGhhdCBmaWxlLCB3aGljaCBpbW1lZGlhdGVseSBzaWduYWxzIGl0J3MgbGlrZWx5IGludGVuZGVkIGZvciBleHRlcm5hbCB1c2UuIEkgbmVlZCB0byBrZWVwIHRoYXQgaW4gbWluZCB3aGVuIHRyYWNpbmcgdGhlIGRhdGEgZmxvdy5cblxuV2FpdCBhIHNlY29uZCwgdGhlcmUncyBgcnR3ODgyMmNfb3BzYC4gVGhhdCAqaXMqIGRlY2xhcmVkIGBzdGF0aWNgLCB3aGljaCBtZWFucyBpdCdzIGxpbWl0ZWQgdG8gdGhlIHNjb3BlIG9mIHRoaXMgcGFydGljdWxhciBmaWxlLiBCdXQsIGFuZCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIEkgc2VlIHRoYXQgaXQncyBiZWluZyBhc3NpZ25lZCB0byBgcnR3ODgyMmNfaHdfc3BlYy5vcHNgLiBPa2F5LCBzbyBgcnR3ODgyMmNfb3BzYCBpdHNlbGYgaXMgaW50ZXJuYWwsIGJ1dCBpdHMgY29udGVudHMsIHByZXN1bWFibHkgYSBjb2xsZWN0aW9uIG9mIGZ1bmN0aW9uIHBvaW50ZXJzLCBhcmUgcG90ZW50aWFsbHkgYWNjZXNzaWJsZSBpbmRpcmVjdGx5IHRocm91Z2ggdGhhdCBgcnR3ODgyMmNfaHdfc3BlY2Agc3RydWN0LlxuXG5BaCwgYW5kIEkgc2VlIGBydHc4ODIyY19od19zcGVjYCBpdHNlbGYgaXMgKmV4cG9ydGVkKi4gVGhhdCBjb25maXJtcyB0aGUgaHlwb3RoZXNpczsgaXQncyB0aGUgZ2F0ZXdheS4gSSdsbCBuZWVkIHRvIGxvb2sgYXQgaG93IGBydHc4ODIyY19od19zcGVjYCBpcyB1c2VkLiBUaGlzIHN0cnVjdCBwcm9iYWJseSBhY3RzIGFzIHRoZSBjZW50cmFsIGludGVyZmFjZSwgZXhwb3NpbmcgaW50ZXJuYWwgb3BlcmF0aW9ucyB0aHJvdWdoIHBvaW50ZXJzIHRvIGV4dGVybmFsIGNvbXBvbmVudHMuIFRoaXMgd2hvbGUgc2V0dXAgc3VnZ2VzdHMgYSBtb2R1bGFyIGRlc2lnbiB3aGVyZSBjb3JlIGZ1bmN0aW9uYWxpdHkgaXMgZW5jYXBzdWxhdGVkLCBidXQgY2VydGFpbiBob29rcyBhcmUgcHJvdmlkZWQgZm9yIGludGVyYWN0aW9uIHdpdGggdGhlIGRyaXZlcidzIGVudmlyb25tZW50LiBOb3csIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdGhvc2UgZnVuY3Rpb25zIGRvLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDM3OSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjE0LjgzMzc5NjhaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyMDcxMzI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4MjJjX2h3X3NwZWNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTUyNDg9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfcmVnX2RvbWFpbiBjb2V4X2luZm9faHdfcmVnc184ODIyY1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTUyNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUyNzM6Y29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gcnR3ODgyMmNfaHdfc3BlYyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTI3NC1cXHQub3BzID0gXFx1MDAyNnJ0dzg4MjJjX29wcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01Mzc3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUzNzg6RVhQT1JUX1NZTUJPTChydHc4ODIyY19od19zcGVjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTM3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaD0xMjc9dm9pZCBydHc4ODIyY19wYXJzZV90YmxfZHBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgtMTI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDoxMzA6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvIHJ0dzg4MjJjX2h3X3NwZWM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTEzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM9MTA9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ0d184ODIyY2VfaWRfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmMtMTItXFx0XFx0UENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxURUssIDB4QzgyMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY2UuYzoxMzpcXHRcXHQuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNnJ0dzg4MjJjX2h3X3NwZWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE0LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE2LVxcdFxcdFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLCAweEM4MkYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM6MTc6XFx0XFx0LmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KVxcdTAwMjZydHc4ODIyY19od19zcGVjXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY2UuYy0xOC1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3MuYz0xMj1zdGF0aWMgY29uc3Qgc3RydWN0IHNkaW9fZGV2aWNlX2lkIHJ0d184ODIyY3NfaWRfdGFibGVbXSA9ICB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjcy5jLTE1LVxcdFxcdFxcdCAgICBTRElPX0RFVklDRV9JRF9SRUFMVEVLX1JUVzg4MjJDUyksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3MuYzoxNjpcXHRcXHQuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNnJ0dzg4MjJjX2h3X3NwZWMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3MuYy0xNy1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYz0xMT1zdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4MjJjdV9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTItXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MmMsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTM6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTQtXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MTIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTU6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTYtXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MmUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTc6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTgtXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGQ4MjAsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTk6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMjAtXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGQ4MmIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MjE6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMjItXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDEzYjEsIDB4MDA0MywgMHhmZiwgMHhmZiwgMHhmZiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYzoyMzpcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEFscGhhIC0gQWxwaGEgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTI0LVxcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgyMDAxLCAweDMzMjksIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MjU6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LCAvKiBELUxpbmsgQUMxM1UgcmV2LiBBMSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMjYtXFx0e30sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjE0Ljg4NTg3MTk3WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0OTcwNDMxMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIG15IG93biBtZW50YWwgcHJvY2VzcywgZ2l2ZW4gbXkgZXhwZXJ0aXNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBydHc4ODIyY3UgRHJpdmVyKipcblxuQWxyaWdodCwgdGhlIFVTQiBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYHJ0dzg4MjJjdWAuIE5vIHN1cnByaXNlcyB0aGVyZSwgaXQncyBwcmV0dHkgY2xlYXIgZnJvbSB0aGUgbmFtZS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIExldCdzIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgYHJ0dzg4MjJjdS5jYCwgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBmaWxlLiBUaGF0J3MgdGhlIGhlYXJ0IG9mIGhvdyB0aGlzIGRyaXZlciBmdW5jdGlvbnMuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIGFuZCBpdCdzIHdoZXJlIEkgbmVlZCB0byBzdGFydCB0byB0cnVseSB1bmRlcnN0YW5kIGl0cyBiZWhhdmlvciwgcG90ZW50aWFsIGlzc3Vlcywgb3IgYXJlYXMgZm9yIG9wdGltaXphdGlvbi4gSSdtIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB0aGluZ3MgbGlrZSBpbnRlcnJ1cHQgaGFuZGxpbmcsIHBvd2VyIG1hbmFnZW1lbnQgcm91dGluZXMsIGFuZCBhbnkgY3VzdG9tIGV4dGVuc2lvbnMgaW1wbGVtZW50ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2ODQxLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6MTguMzgyOTE4MzE2WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0ODQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcXG4gICAyOlxcdC8qIENvcHlyaWdodChjKSAyMDE4LTIwMTkgIFJlYWx0ZWsgQ29ycG9yYXRpb25cXG4gICAzOlxcdCAqL1xcbiAgIDQ6XFx0XFxuICAgNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAgNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdXNiLmhcXHUwMDNlXFxuICAgNzpcXHQjaW5jbHVkZSBcXFwibWFpbi5oXFxcIlxcbiAgIDg6XFx0I2luY2x1ZGUgXFxcInJ0dzg4MjJjLmhcXFwiXFxuICAgOTpcXHQjaW5jbHVkZSBcXFwidXNiLmhcXFwiXFxuICAxMDpcXHRcXG4gIDExOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODgyMmN1X2lkX3RhYmxlW10gPSB7XFxuICAxMjpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgyYywgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAxMzpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAxNDpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgxMiwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAxNTpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAxNjpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgyZSwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAxNzpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAxODpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4ZDgyMCwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAxOTpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAyMDpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4ZDgyYiwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAyMTpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAyMjpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MTNiMSwgMHgwMDQzLCAweGZmLCAweGZmLCAweGZmKSxcXG4gIDIzOlxcdFxcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVxcdTAwMjYocnR3ODgyMmNfaHdfc3BlYykgfSwgLyogQWxwaGEgLSBBbHBoYSAqL1xcbiAgMjQ6XFx0XFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4MzMyOSwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAyNTpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEQtTGluayBBQzEzVSByZXYuIEExICovXFxuICAyNjpcXHRcXHR7fSxcXG4gIDI3OlxcdH07XFxuICAyODpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4MjJjdV9pZF90YWJsZSk7XFxuICAyOTpcXHRcXG4gIDMwOlxcdHN0YXRpYyBpbnQgcnR3ODgyMmN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbiAgMzE6XFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbiAgMzI6XFx0e1xcbiAgMzM6XFx0XFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xcbiAgMzQ6XFx0fVxcbiAgMzU6XFx0XFxuICAzNjpcXHRzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4MjJjdV9kcml2ZXIgPSB7XFxuICAzNzpcXHRcXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxcbiAgMzg6XFx0XFx0LmlkX3RhYmxlID0gcnR3Xzg4MjJjdV9pZF90YWJsZSxcXG4gIDM5OlxcdFxcdC5wcm9iZSA9IHJ0dzg4MjJjdV9wcm9iZSxcXG4gIDQwOlxcdFxcdC5kaXNjb25uZWN0ID0gcnR3X3VzYl9kaXNjb25uZWN0LFxcbiAgNDE6XFx0fTtcXG4gIDQyOlxcdG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODIyY3VfZHJpdmVyKTtcXG4gIDQzOlxcdFxcbiAgNDQ6XFx0TU9EVUxFX0FVVEhPUihcXFwiUmVhbHRlayBDb3Jwb3JhdGlvblxcXCIpO1xcbiAgNDU6XFx0TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIDg4MjJjdSBkcml2ZXJcXFwiKTtcXG4gIDQ2OlxcdE1PRFVMRV9MSUNFTlNFKFxcXCJEdWFsIEJTRC9HUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6MTguMzgyOTg0NjE2WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMzc2MTMyMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBVU0IgRHJpdmVyJ3MgRW50cnkgUG9pbnQqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMgVVNCIGRyaXZlci4gQSBzb2xpZCBzdGFydGluZyBwb2ludCwgYSBnb29kIGZvY3VzIHN5bWJvbCwgaXMgb2Z0ZW4gdGhlIHByb2JlIGZ1bmN0aW9uLiBMZXQncyBzZWUuLi4gYHJ0d191c2JfcHJvYmVgIGxvb2tzIHByb21pc2luZy4gSXQncyBleHBvcnRlZCBieSBgdXNiLmNgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyB0aGUgbGlrZWx5IGVudHJ5IHBvaW50LiBHb29kLCB0aGF0IGNvbmZpcm1zIGl0J3MgdGhlIHJpZ2h0IGZ1bmN0aW9uLiBBbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gZXhhbWluaW5nIGBydHdfdXNiX3Byb2JlYCBhbmQgc2VlIHdoYXQgaXQgcmV2ZWFscy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgxNjEsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjIxLjQyMDYwMjIzNVoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQzNjEwMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3VzYl9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkdS5jPTIwPXN0YXRpYyBpbnQgcnR3ODcyM2R1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZHUuYy0yMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZHUuYzoyMzpcXHRyZXR1cm4gcnR3X3VzYl9wcm9iZShpbnRmLCBpZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZHUuYy0yNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhdS5jPTg0PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODgxMmF1X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmF1LmMtODYtXFx0LmlkX3RhYmxlID0gcnR3Xzg4MTJhdV9pZF90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhdS5jOjg3OlxcdC5wcm9iZSA9IHJ0d191c2JfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYXUuYy04OC1cXHQuZGlzY29ubmVjdCA9IHJ0d191c2JfZGlzY29ubmVjdCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGF1LmM9NDQ9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODE0YXVfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YXUuYy00Ni1cXHQuaWRfdGFibGUgPSBydHdfODgxNGF1X2lkX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGF1LmM6NDc6XFx0LnByb2JlID0gcnR3X3VzYl9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhdS5jLTQ4LVxcdC5kaXNjb25uZWN0ID0gcnR3X3VzYl9kaXNjb25uZWN0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYXUuYz02OD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4MjFhdV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhdS5jLTcwLVxcdC5pZF90YWJsZSA9IHJ0d184ODIxYXVfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYXUuYzo3MTpcXHQucHJvYmUgPSBydHdfdXNiX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWF1LmMtNzItXFx0LmRpc2Nvbm5lY3QgPSBydHdfdXNiX2Rpc2Nvbm5lY3QsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjdS5jPTQ2PXN0YXRpYyBpbnQgcnR3Xzg4MjFjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWN1LmMtNDgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWN1LmM6NDk6XFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWN1LmMtNTAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYnUuYz04OD1zdGF0aWMgaW50IHJ0dzg4MjJidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmMtOTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmM6OTE6XFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmMtOTItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYz0zMD1zdGF0aWMgaW50IHJ0dzg4MjJjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MzM6XFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMzQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz0xMjI1PXN0YXRpYyB2b2lkIHJ0d191c2JfcGh5X2NmZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTI2MzppbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI2NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNTgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTM1OTpFWFBPUlRfU1lNQk9MKHJ0d191c2JfcHJvYmUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTM2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmg9OTA9c3RhdGljIGlubGluZSBzdHJ1Y3QgcnR3X3VzYl90eF9kYXRhICpydHdfdXNiX2dldF90eF9kYXRhKHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5oLTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmg6MTAwOmludCBydHdfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmgtMTAxLXZvaWQgcnR3X3VzYl9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6MjEuNDg0OTY2OTE1WiIsIlNlcSI6NDMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MjA0NDUxNDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBSZWFsdGVrIDg4MjJDIERBQyBJUSBDYWxpYnJhdGlvbiBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBpZGVudGlmeSBzdWl0YWJsZSBmb2N1cyBzeW1ib2xzIGZvciBmdXp6aW5nLiBJIHF1aWNrbHkgc2V0dGxlZCBvbiBgcnR3X3VzYl9wcm9iZWAsIGBydHdfY29yZV9zdGFydGAsIGFuZCBgcnR3X3Bvd2VyX29uYC4gVGhleSBhcmUgYWxsIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50cywgd2hpY2ggYWxpZ25zIHBlcmZlY3RseSB3aXRoIHRoZSBwcm9tcHQncyBwcmVmZXJlbmNlLlxuXG5JIGNvbmZpcm1lZCB0aGF0IGFsbCB0aHJlZSBmdW5jdGlvbnMgYXJlIHJlbGV2YW50LCBnaXZlbiB0aGUgcGF0Y2gncyBtb2RpZmljYXRpb24gb2YgYHJ0dzg4MjJjLmNgLCB3aGljaCBpcyBzaGFyZWQgYWNyb3NzIFVTQiwgUENJLCBhbmQgU0RJTy4gU2luY2Ugd2UncmUgdGFyZ2V0aW5nIFVTQiwgYHJ0d191c2JfcHJvYmVgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgYW5kIGBydHdfY29yZV9zdGFydGAgYW5kIGBydHdfcG93ZXJfb25gIGFyZSBnb29kIGZvciB0aGUgY29yZSBmdW5jdGlvbmFsaXR5LiBJIHRoZW4gdHJhY2VkIHRoZSBjYWxsIHBhdGhzIHRvIHZlcmlmeSB0aGF0IHRoZSB0YXJnZXQgZnVuY3Rpb24gYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBpcyByZWFjaGFibGUgZnJvbSBgcnR3X3VzYl9wcm9iZWAg4oCTIGFuZCBpbmRlZWQsIGl0IGlzISBUaGUgcGF0aCBnb2VzIHRocm91Z2ggYHJ0d19jb3JlX2luaXRgLCBgcnR3X2NvcmVfc3RhcnRgICh2aWEgYHJ0d19vcHNfc3RhcnRgKSwgYHJ0d19wb3dlcl9vbmAsIGFuZCBkb3duIHRvIHRoZSBzcGVjaWZpYyBjYWxpYnJhdGlvbiBmdW5jdGlvbi4gVGhpcyBpcyBrZXk6IHRoZSBjYWxpYnJhdGlvbiBpcyBwYXJ0IG9mIHRoZSBicmluZy11cCBzZXF1ZW5jZS5cblxuTmV4dCwgSSBuYWlsZWQgZG93biB0aGUgbmVjZXNzYXJ5IGtlcm5lbCBjb25maWd1cmF0aW9ucy4gYFJUVzg4YCBhbmQgYFJUVzg4Xzg4MjJDVWAgc2VlbSBzdWZmaWNpZW50LiBgUlRXODhfODgyMkNVYCBkZXBlbmRzIG9uIGBVU0JgLCBzbyBpdCdzIGEgZ29vZCBjaG9pY2UgZm9yIFVTQiBwYXRoIHRlc3RpbmcuIEkgY2hlY2tlZCB0aGUgS2NvbmZpZyB0byB2ZXJpZnkgdGhhdCBgUlRXODhfODgyMkNVYCBpcywgaW4gZmFjdCwgdGhlIGNvcnJlY3QgbmFtZSwgYW5kIHRoYXQgYFJUVzg4Xzg4MjJDYCBpcyBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkLiBTdGFuZGFyZCBjb25maWd1cmF0aW9ucyBsaWtlIGBNQUM4MDIxMWAgYW5kIGBXTEFOYCBhcmUgaW1wbGllZCwgYW5kIGBVU0JgIGlzIGFsc28gc3RhbmRhcmQuIFRoZXJlZm9yZSwgYFJUVzg4YCBhbmQgYFJUVzg4Xzg4MjJDVWAgYXJlIGVub3VnaC5cblxuSSByZS1leGFtaW5lZCB0aGUgcGF0Y2ggaXRzZWxmLCB3aGljaCB1c2VzIGBzb3J0KClgIHRvIHNvcnQgSVEgdmFsdWVzIGFuZCBjaGFuZ2VzIGRhdGEgdHlwZXMgdG8gYHMzMmAuIFRoaXMgaW5kaWNhdGVzIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gd2l0aGluIHRoZSBkcml2ZXIncyBjYWxpYnJhdGlvbi4gVGhpcyBpcyBnb29kOiBhIGZ1bmN0aW9uYWwgY2hhbmdlLCByZWFjaGFibGUgdmlhIHRoZSBVU0IgcGF0aCwgbWFrZXMgaXQgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuXG5cbk15IHJlYXNvbmluZz8gVGhlIHBhdGNoIGNoYW5nZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiBgcnR3ODgyMmMuY2AuIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSB0aGUgVVNCIHZhcmlhbnQgb2YgdGhlIGRyaXZlciBhbmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uLlxuXG5TbywgaW4gc3VtbWFyeTpcblxuKiAgICoqRm9jdXMgU3ltYm9scyoqOiBgcnR3X3VzYl9wcm9iZWAsIGBydHdfY29yZV9zdGFydGAsIGBydHdfcG93ZXJfb25gXG4qICAgKipFbmFibGUgQ29uZmlndXJhdGlvbnMqKjogYFJUVzg4YCwgYFJUVzg4Xzg4MjJDVWBcblxuWWVzLCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHJlYWNoYWJsZS4gTGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTkwOSwiT3V0cHV0VG9rZW5zIjoxNjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjM3LjY4OTQyMTkwM1oiLCJTZXEiOjQ0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2MDc3ODQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkNVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnR3X3VzYl9wcm9iZVwiLFxuICAgIFwicnR3X2NvcmVfc3RhcnRcIixcbiAgICBcInJ0d19wb3dlcl9vblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIFJlYWx0ZWsgODgyMkMgd2lyZWxlc3MgZHJpdmVyLCByZXBsYWNpbmcgYSBjdXN0b20gc29ydGluZyBpbXBsZW1lbnRhdGlvbiB3aXRoIHRoZSBzdGFuZGFyZCBzb3J0KCkgZnVuY3Rpb24gYW5kIGNoYW5naW5nIHRoZSBkYXRhIHR5cGVzIGZyb20gdTMyIHRvIHMzMi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBhbmQgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgdmFyaWFudCBvZiB0aGUgZHJpdmVyIChydHc4OF84ODIyY3UpIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdXNiX3Byb2JlXCIsXG4gICAgXCJydHdfY29yZV9zdGFydFwiLFxuICAgIFwicnR3X3Bvd2VyX29uXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGFuZCBjYWxpYnJhdGlvbiBzZXF1ZW5jZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiB2YXJpYW50IG9mIHRoZSBkcml2ZXIgKHJ0dzg4Xzg4MjJjdSkgdXNpbmcgVVNCIGdhZGdldCBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjM3Ljc2NTUwNjQ2MloiLCJTZXEiOjQ1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIxODE3Mjk3ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNTozNy43NjYxMDc2MzJaIiwiU2VxIjo0NiwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NTIxODExMjQyNzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlZmFjdG9ycyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgcnR3ODggZHJpdmVyLCByZXBsYWNpbmcgY3VzdG9tIDEwLWJpdCB0d28ncyBjb21wbGVtZW50IGFyaXRobWV0aWMgYW5kIGEgY3VzdG9tIGJ1YmJsZSBzb3J0IHdpdGggc3RhbmRhcmQgc2lnbmVkIGludGVnZXJzIChzMzIpIGFuZCB0aGUga2VybmVsJ3Mgc29ydCgpIGZ1bmN0aW9uLiBXaGlsZSB0aGUgc3RhY2stYWxsb2NhdGVkIGFycmF5cyBgaXZgIGFuZCBgcXZgIGNvdWxkIHBvdGVudGlhbGx5IGJlIHBhcnRpYWxseSB1bmluaXRpYWxpemVkIGlmIHRoZSBoYXJkd2FyZSByZWFkIGxvb3AgdGltZXMgb3V0LCB0aGlzIGV4YWN0IHNhbWUgYmVoYXZpb3IgYW5kIHN1YnNlcXVlbnQgcmVhZGluZyBvZiB0aGVzZSBhcnJheXMgZXhpc3RlZCBwcmlvciB0byB0aGUgcGF0Y2guIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyB1bmluaXRpYWxpemVkIG1lbW9yeSBhbGxvY2F0aW9ucywgbm9yIGRvZXMgaXQgZXhwb3NlIGFueSBrZXJuZWwgc3RydWN0dXJlcyB0byB1c2Vyc3BhY2UuIEFueSBwb3RlbnRpYWwgbWVtb3J5IHNhZmV0eSBpc3N1ZXMgKHN1Y2ggYXMgb3V0LW9mLWJvdW5kcyBhY2Nlc3Nlcykgd291bGQgYmUgY2F1Z2h0IGJ5IHN0YW5kYXJkIEtBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzNDNlMTZlMzgxN2YyNTYzOTRjYjM5NDcxNmJiZTUwMWMzM2JhNDJkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMTUgMDY6MzM6MzIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcbmluZGV4IDI0NGM4MDI2NDc5YzIuLjAxNDBmMmU2NDRjYTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1xuQEAgLTMsNiArMyw3IEBAXG4gICovXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9zb3J0LmhcdTAwM2VcbiAjaW5jbHVkZSBcIm1haW4uaFwiXG4gI2luY2x1ZGUgXCJjb2V4LmhcIlxuICNpbmNsdWRlIFwiZncuaFwiXG5AQCAtMTgsNyArMTksNyBAQFxuICNpbmNsdWRlIFwiYmYuaFwiXG4gI2luY2x1ZGUgXCJlZnVzZS5oXCJcbiBcbi0jZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWFcbisjZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWE0XG4gXG4gc3RhdGljIHZvaWQgcnR3ODgyMmNfY29uZmlnX3RyeF9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHR4X3BhdGgsXG4gXHRcdFx0XHQgICAgIHU4IHJ4X3BhdGgsIGJvb2wgaXNfdHgyX3BhdGgpO1xuQEAgLTE1Myw4NCArMTU0LDI1IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19yZXN0b3JlX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0fVxuIH1cbiBcbi1zdGF0aWMgdm9pZCBydHc4ODIyY19yZl9taW5tYXhfY21wKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSxcbi1cdFx0XHRcdCAgIHUzMiAqbWluLCB1MzIgKm1heClcbitzdGF0aWMgaW50IHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpXG4ge1xuLVx0aWYgKHZhbHVlIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0aWYgKCptaW4gXHUwMDNlPSAweDIwMCkge1xuLVx0XHRcdGlmICgqbWluIFx1MDAzZSB2YWx1ZSlcbi1cdFx0XHRcdCptaW4gPSB2YWx1ZTtcbi1cdFx0fSBlbHNlIHtcbi1cdFx0XHQqbWluID0gdmFsdWU7XG4tXHRcdH1cbi1cdFx0aWYgKCptYXggXHUwMDNlPSAweDIwMCkge1xuLVx0XHRcdGlmICgqbWF4IFx1MDAzYyB2YWx1ZSlcbi1cdFx0XHRcdCptYXggPSB2YWx1ZTtcbi1cdFx0fVxuLVx0fSBlbHNlIHtcbi1cdFx0aWYgKCptaW4gXHUwMDNjIDB4MjAwKSB7XG4tXHRcdFx0aWYgKCptaW4gXHUwMDNlIHZhbHVlKVxuLVx0XHRcdFx0Km1pbiA9IHZhbHVlO1xuLVx0XHR9XG4rXHRzMzIgdmFsX2EgPSAqKGNvbnN0IHMzMiAqKWE7XG4rXHRzMzIgdmFsX2IgPSAqKGNvbnN0IHMzMiAqKWI7XG4gXG4tXHRcdGlmICgqbWF4ICBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdFx0Km1heCA9IHZhbHVlO1xuLVx0XHR9IGVsc2Uge1xuLVx0XHRcdGlmICgqbWF4IFx1MDAzYyB2YWx1ZSlcbi1cdFx0XHRcdCptYXggPSB2YWx1ZTtcbi1cdFx0fVxuLVx0fVxuK1x0cmV0dXJuICh2YWxfYSBcdTAwM2UgdmFsX2IpIC0gKHZhbF9hIFx1MDAzYyB2YWxfYik7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICp2MSwgdTMyICp2Milcbi17XG4tXHRpZiAoKnYxIFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2ICp2MiBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdGlmICgqdjEgXHUwMDNlICp2Milcbi1cdFx0XHRzd2FwKCp2MSwgKnYyKTtcbi1cdH0gZWxzZSBpZiAoKnYxIFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgKnYyIFx1MDAzYyAweDIwMCkge1xuLVx0XHRpZiAoKnYxIFx1MDAzZSAqdjIpXG4tXHRcdFx0c3dhcCgqdjEsICp2Mik7XG4tXHR9IGVsc2UgaWYgKCp2MSBcdTAwM2MgMHgyMDAgXHUwMDI2XHUwMDI2ICp2MiBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdHN3YXAoKnYxLCAqdjIpO1xuLVx0fVxuLX1cbiBcbi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfaXFfc29ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KVxuK3N0YXRpYyB1MzIgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKnZlYylcbiB7XG4tXHR1MzIgaSwgajtcbitcdHMzMiBzdW0gPSAwO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgREFDS19TTl84ODIyQyAtIDE7IGkrKykge1xuLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyAoREFDS19TTl84ODIyQyAtIDEgLSBpKSA7IGorKykge1xuLVx0XHRcdF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBcdTAwMjZpdltqXSwgXHUwMDI2aXZbaiArIDFdKTtcbi1cdFx0XHRfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgXHUwMDI2cXZbal0sIFx1MDAyNnF2W2ogKyAxXSk7XG4tXHRcdH1cbi1cdH1cbi19XG4tXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnZlYywgdTMyICp2YWwpXG4te1xuLVx0dTMyIHAsIG0sIHQsIGk7XG4tXG4tXHRtID0gMDtcbi1cdHAgPSAwO1xuLVx0Zm9yIChpID0gMTA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkMgLSAxMDsgaSsrKSB7XG4tXHRcdGlmICh2ZWNbaV0gXHUwMDNlIDB4MjAwKVxuLVx0XHRcdG0gPSAoMHg0MDAgLSB2ZWNbaV0pICsgbTtcbi1cdFx0ZWxzZVxuLVx0XHRcdHAgPSB2ZWNbaV0gKyBwO1xuLVx0fVxuK1x0Zm9yICh1MzIgaSA9IDEwOyBpIFx1MDAzYyBEQUNLX1NOXzg4MjJDIC0gMTA7IGkrKylcbitcdFx0c3VtICs9IHZlY1tpXTtcbiBcbi1cdGlmIChwIFx1MDAzZSBtKSB7XG4tXHRcdHQgPSBwIC0gbTtcbi1cdFx0dCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbi1cdH0gZWxzZSB7XG4tXHRcdHQgPSBtIC0gcDtcbi1cdFx0dCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbi1cdFx0aWYgKHQgIT0gMHgwKVxuLVx0XHRcdHQgPSAweDQwMCAtIHQ7XG4tXHR9XG4rXHRzMzIgYXZnID0gc3VtIC8gKERBQ0tfU05fODgyMkMgLSAyMCk7XG4gXG4tXHQqdmFsID0gdDtcbitcdHJldHVybiBhdmcgXHUwMDNlPSAwID8gKHUzMilhdmcgOiAodTMyKSgweDQwMCArIGF2Zyk7XG4gfVxuIFxuIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxuQEAgLTI3MSwyOSArMjEzLDI3IEBAIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfcmVhZF9hZGRyKHU4IHBhdGgpXG4gXHRyZXR1cm4gYmFzZV9hZGRyO1xuIH1cbiBcbi1zdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVlKVxuK3N0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgdmFsdWUpXG4ge1xuLVx0Ym9vbCByZXQgPSB0cnVlO1xuIFxuLVx0aWYgKCh2YWx1ZSBcdTAwM2U9IDB4MjAwIFx1MDAyNlx1MDAyNiAoMHg0MDAgLSB2YWx1ZSkgXHUwMDNlIDB4NjQpIHx8XG4tXHQgICAgKHZhbHVlIFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgdmFsdWUgXHUwMDNlIDB4NjQpKSB7XG4tXHRcdHJldCA9IGZhbHNlO1xuK1x0aWYgKHZhbHVlIFx1MDAzZSAxMDAgfHwgdmFsdWUgXHUwMDNjIC0xMDApIHtcbiBcdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCBcIltEQUNLXSBFcnJvciBvdmVyZmxvd1xcblwiKTtcbitcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuLVx0cmV0dXJuIHJldDtcbitcdHJldHVybiB0cnVlO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KVxuK3N0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqaXYsIHMzMiAqcXYpXG4ge1xuIFx0dTMyIHRlbXA7XG4gXHRpbnQgaSA9IDAsIGNudCA9IDA7XG4gXG4gXHR3aGlsZSAoaSBcdTAwM2MgREFDS19TTl84ODIyQyBcdTAwMjZcdTAwMjYgY250IFx1MDAzYyAxMDAwMCkge1xuIFx0XHRjbnQrKztcbi1cdFx0dGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpO1xuLVx0XHRpdltpXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRxdltpXSA9IHRlbXAgXHUwMDI2IDB4M2ZmO1xuK1x0XHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XG4rXHRcdGl2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4rXHRcdHF2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XG4gXG4gXHRcdGlmIChydHc4ODIyY19kYWNfaXFfY2hlY2socnR3ZGV2LCBpdltpXSkgXHUwMDI2XHUwMDI2XG4gXHRcdCAgICBydHc4ODIyY19kYWNfaXFfY2hlY2socnR3ZGV2LCBxdltpXSkpXG5AQCAtMzAyLDEzICsyNDIsMTMgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdilcbiB9XG4gXG4gc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi1cdFx0XHRcdCAgICAgICB1MzIgKml2LCB1MzIgKnF2LFxuK1x0XHRcdFx0ICAgICAgIHMzMiAqaXYsIHMzMiAqcXYsXG4gXHRcdFx0XHQgICAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXG4ge1xuLVx0dTMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDtcbitcdHMzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7XG4gXHR1MzIgaV9kZWx0YSwgcV9kZWx0YTtcbiBcdHUzMiB0ZW1wO1xuLVx0aW50IGksIGNudCA9IDA7XG4rXHR1MzIgaSwgY250ID0gMDtcbiBcbiBcdGRvIHtcbiBcdFx0aV9taW4gPSBpdlswXTtcbkBAIC0zMTYsMjMgKzI1NiwxOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0XHRxX21pbiA9IHF2WzBdO1xuIFx0XHRxX21heCA9IHF2WzBdO1xuIFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBEQUNLX1NOXzg4MjJDOyBpKyspIHtcbi1cdFx0XHRydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgaXZbaV0sIFx1MDAyNmlfbWluLCBcdTAwMjZpX21heCk7XG4tXHRcdFx0cnR3ODgyMmNfcmZfbWlubWF4X2NtcChydHdkZXYsIHF2W2ldLCBcdTAwMjZxX21pbiwgXHUwMDI2cV9tYXgpO1xuK1x0XHRcdGlmIChpdltpXSBcdTAwM2MgaV9taW4pXG4rXHRcdFx0XHRpX21pbiA9IGl2W2ldO1xuK1x0XHRcdGlmIChpdltpXSBcdTAwM2UgaV9tYXgpXG4rXHRcdFx0XHRpX21heCA9IGl2W2ldO1xuK1x0XHRcdGlmIChxdltpXSBcdTAwM2MgcV9taW4pXG4rXHRcdFx0XHRxX21pbiA9IHF2W2ldO1xuK1x0XHRcdGlmIChxdltpXSBcdTAwM2UgcV9tYXgpXG4rXHRcdFx0XHRxX21heCA9IHF2W2ldO1xuIFx0XHR9XG4gXG4tXHRcdGlmIChpX21heCBcdTAwM2MgMHgyMDAgXHUwMDI2XHUwMDI2IGlfbWluIFx1MDAzYyAweDIwMClcbi1cdFx0XHRpX2RlbHRhID0gaV9tYXggLSBpX21pbjtcbi1cdFx0ZWxzZSBpZiAoaV9tYXggXHUwMDNlPSAweDIwMCBcdTAwMjZcdTAwMjYgaV9taW4gXHUwMDNlPSAweDIwMClcbi1cdFx0XHRpX2RlbHRhID0gaV9tYXggLSBpX21pbjtcbi1cdFx0ZWxzZVxuLVx0XHRcdGlfZGVsdGEgPSBpX21heCArICgweDQwMCAtIGlfbWluKTtcbitcdFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XG4rXHRcdHFfZGVsdGEgPSBxX21heCAtIHFfbWluO1xuIFxuLVx0XHRpZiAocV9tYXggXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiBxX21pbiBcdTAwM2MgMHgyMDApXG4tXHRcdFx0cV9kZWx0YSA9IHFfbWF4IC0gcV9taW47XG4tXHRcdGVsc2UgaWYgKHFfbWF4IFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2IHFfbWluIFx1MDAzZT0gMHgyMDApXG4tXHRcdFx0cV9kZWx0YSA9IHFfbWF4IC0gcV9taW47XG4tXHRcdGVsc2Vcbi1cdFx0XHRxX2RlbHRhID0gcV9tYXggKyAoMHg0MDAgLSBxX21pbik7XG4gXG4gXHRcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcbiBcdFx0XHRcIltEQUNLXSBpOiBtaW49MHglMDh4LCBtYXg9MHglMDh4LCBkZWx0YT0weCUwOHhcXG5cIixcbkBAIC0zNDEsMjggKzI3NywyOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0XHRcdFwiW0RBQ0tdIHE6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxcblwiLFxuIFx0XHRcdHFfbWluLCBxX21heCwgcV9kZWx0YSk7XG4gXG4tXHRcdHJ0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgaXYsIHF2KTtcbitcdFx0c29ydChpdiwgREFDS19TTl84ODIyQywgc2l6ZW9mKHMzMiksIHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyLCBOVUxMKTtcbitcdFx0c29ydChxdiwgREFDS19TTl84ODIyQywgc2l6ZW9mKHMzMiksIHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyLCBOVUxMKTtcbiBcbiBcdFx0aWYgKGlfZGVsdGEgXHUwMDNlIDUgfHwgcV9kZWx0YSBcdTAwM2UgNSkge1xuLVx0XHRcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcbi1cdFx0XHRpdlswXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRcdHF2WzBdID0gdGVtcCBcdTAwMjYgMHgzZmY7XG4tXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpO1xuLVx0XHRcdGl2W0RBQ0tfU05fODgyMkMgLSAxXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IHRlbXAgXHUwMDI2IDB4M2ZmO1xuK1x0XHRcdHRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTtcbitcdFx0XHRpdlswXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApO1xuK1x0XHRcdHF2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XG4rXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpO1xuK1x0XHRcdGl2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApO1xuK1x0XHRcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9IHdoaWxlIChjbnQrKyBcdTAwM2MgMTAwKTtcbiBcbi1cdHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBpdiwgaV92YWx1ZSk7XG4tXHRydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgcXYsIHFfdmFsdWUpO1xuK1x0KmlfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgaXYpO1xuK1x0KnFfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgcXYpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbiBcdFx0XHRcdCAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXG4ge1xuLVx0dTMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTtcbitcdHMzMiBpdltEQUNLX1NOXzg4MjJDXSwgcXZbREFDS19TTl84ODIyQ107XG4gXHR1MzIgcmZfYSwgcmZfYjtcbiBcbiBcdHJmX2EgPSBydHdfcmVhZF9yZihydHdkZXYsIFJGX1BBVEhfQSwgMHgwLCBSRlJFR19NQVNLKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmhcbmluZGV4IGZjNjJiNjdhMTVmMjEuLjdiZWE5OTYxNDM1NGIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuQEAgLTE0MSw2ICsxNDEsOSBAQCBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlIG5hbWUgIyMgX3RibCA9IHtcdFx0XHRcXFxuICNkZWZpbmUgREFDS19SRl84ODIyQ1x0XHQxXG4gI2RlZmluZSBEQUNLX1NOXzg4MjJDXHRcdDEwMFxuIFxuKyNkZWZpbmUgUlRXODgyMkNfREFDX0lWX01BU0sgR0VOTUFTSygyMSwgMTIpXG4rI2RlZmluZSBSVFc4ODIyQ19EQUNfUVZfTUFTSyBHRU5NQVNLKDksIDApXG4rXG4gLyogcGh5IHN0YXR1cyBwYWdlMCAqL1xuICNkZWZpbmUgR0VUX1BIWV9TVEFUX1AwX1BXREJfQShwaHlfc3RhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuIFx0bGUzMl9nZXRfYml0cygqKChfX2xlMzIgKikocGh5X3N0YXQpICsgMHgwMCksIEdFTk1BU0soMTUsIDgpKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6MzcuNzY2MTA4MzMyWiIsIlNlcSI6NDcsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MTQyNjA0NzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVuaW5pdGlhbGl6ZWQgTWVtb3J5IFJpc2sgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBydHc4ODIyYy5jYCwgc3BlY2lmaWNhbGx5IHRoZSBjaGFuZ2VzIGluIGBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZWAsIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAsIGFuZCBgcnR3ODgyMmNfZGFjX2lxX29mZnNldGAuICBUaGUgcGF0Y2ggcHJpbWFyaWx5IHN3YXBzIG91dCBjdXN0b20gc29ydGluZyBhbmQgbWluL21heCBsb2dpYyBmb3IgdGhlIHN0YW5kYXJkIGBzb3J0KClgIGZ1bmN0aW9uIGZyb20gYGxpbnV4L3NvcnQuaGAsIHdoaWNoIGlzIGEgZ29vZCBtb3ZlIGZvciBtYWludGFpbmFiaWxpdHkgYW5kIHBvc3NpYmx5IHBlcmZvcm1hbmNlLiBUaGUgY2hhbmdlIGluIGFycmF5IHR5cGVzIGZyb20gYHUzMmAgdG8gYHMzMmAgYW5kIHRoZSB1c2Ugb2YgYEZJRUxEX0dFVF9TSUdORURgIGZvciByZWdpc3RlciByZWFkcyBhcmUgYWxzbyBzdGFuZGFyZCBwcm9jZWR1cmUgaW4gdGhlc2Ugc2l0dWF0aW9ucy5cblxuTXkgY29uY2VybiwgaG93ZXZlciwgaXMgd2hldGhlciB0aGlzIGludHJvZHVjZXMgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgcmlza3MsIHdoaWNoIGlzIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uIFRoZSBhcnJheXMgYGl2YCBhbmQgYHF2YCBhcmUgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayB3aXRoaW4gYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAsIGFzIGBzMzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdO2AsIHdoZXJlIGBEQUNLX1NOXzg4MjJDYCBpcyAxMDAuICBTbywgd2UncmUgdGFsa2luZyBhYm91dCAxMDAgYHMzMmAgZWxlbWVudHMgZm9yIGVhY2ggYXJyYXksIGFsbCBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrLlxuXG5Ob3csIGRvIHRoZXNlIGFycmF5cyBnZXQgZnVsbHkgaW5pdGlhbGl6ZWQgYmVmb3JlIHVzZT8gSSBsb29rIGF0IGhvdyB0aGUgYXJyYXlzIGFyZSBwb3B1bGF0ZWQsIHdoaWNoIGlzIHZpYSBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGVgLiBUaGUgc2FtcGxlIGZ1bmN0aW9uIHJlYWRzIGEgcmVnaXN0ZXIgYW5kIHBvcHVsYXRlcyB0aGUgYXJyYXlzIGluc2lkZSBhIGB3aGlsZWAgbG9vcCB0aGF0IGNhbiB0ZXJtaW5hdGUgZWFybHkgaWYgYSBjb3VudGVyIGBjbnRgIHJlYWNoZXMgMTAwMDAgYmVmb3JlIGFsbCBhcnJheSBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQuIFRoZSBjaGVjayBmb3IgdGVybWluYXRpb24gY29uZGl0aW9ucyBpczogYGkgXHUwMDNjIERBQ0tfU05fODgyMkMgXHUwMDI2XHUwMDI2IGNudCBcdTAwM2MgMTAwMDBgLCBzbyBpZiBgY250YCByZWFjaGVzIDEwMDAwLCB0aGUgYXJyYXkgYGl2YCBhbmQgYHF2YCBlbGVtZW50cyB3aWxsIGJlIHBhcnRpYWxseSB1bmluaXRpYWxpemVkLiAgSSBpbW1lZGlhdGVseSByZWNvZ25pemUgdGhpcyBhcyBhIHBvdGVudGlhbCB2dWxuZXJhYmlsaXR5LlxuXG5CdXQgaG9sZCBvbiwgbGV0IG1lIHF1aWNrbHkgZ28gYmFjayBhbmQgY2hlY2sgaWYgdGhpcyB3YXMgYSAqbmV3KiBwcm9ibGVtIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaC4gQW5kIGl0J3Mgbm90LiBUaGUgb2xkIGltcGxlbWVudGF0aW9uIHVzaW5nIGB1MzJgIGhhZCB0aGUgc2FtZSBjb25kaXRpb24uIFRoaXMgbWVhbnMgdGhhdCBldmVuIGJlZm9yZSBteSBjaGFuZ2VzLCB0aGUgcHJvZ3JhbSB3YXMgYWxzbyBzdWJqZWN0IHRvIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJlaW5nIHJlYWQuIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhlIHR5cGUgY29udmVyc2lvbiBmcm9tIGB1MzJgIHRvIGBzMzJgIChhbmQgdGhlIGNoYW5nZSBpbiBzb3J0aW5nIG1lY2hhbmlzbSkuXG5cblNvLCB3aGF0IGhhcHBlbnMgaWYgYGl2YCBhbmQgYHF2YCBhcmUgb25seSAqcGFydGlhbGx5KiBpbml0aWFsaXplZCwgYW5kIHdlIHJlYWQgdGhlIHZhbHVlcyBsYXRlcj8gVGhlIGZ1bmN0aW9uIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAgaXMgY2FsbGVkIG5leHQsIGFuZCBpbnNpZGUgaXQsIHdlIGhhdmUgYSBsb29wIHRoYXQgcmVhZHMgYGl2W2ldYCBhbmQgYHF2W2ldYCwgdGhlbiB3ZSBydW4gYHNvcnQoKWAgYW5kIGBydHc4ODIyY19kYWNfaXFfb2Zmc2V0YCwgYWxsIHBvdGVudGlhbGx5IHJlYWRpbmcgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuICBUaGlzIGlzIGEgZGVmaW5pdGUgaXNzdWUg4oCTIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnksIGV2ZW4gaWYgaXQncyBub3QgYSAqbmV3KiBwcm9ibGVtLCBpcyBzdGlsbCBhIGNyaXRpY2FsIG9uZS5cblxuVGhlIGZpbmFsIHF1ZXN0aW9uOiBkb2VzIHRoaXMgbGVhayB0byB1c2Vyc3BhY2U/IExvb2tpbmcgYXQgYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAsIGl0IHRha2VzIGB1MzIgKmlfdmFsdWVgIGFuZCBgdTMyICpxX3ZhbHVlYCBhcyBhcmd1bWVudHMsIGFuZCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGNhbGN1bGF0ZXMgdmFsdWVzIGZvciB0aGVzZSBwb2ludGVycy4gIFNvLCBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAgaXMgY2FsbGVkIHRvIHNlZSBpZiB0aGUgcmVzdWx0aW5nIHZhbHVlcyBhcmUgcGFzc2VkIHRvIG90aGVyIGZ1bmN0aW9ucy4gSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHNlYXJjaCBmb3IgY2FsbGVycy4gVGhpcyBpbmZvcm1hdGlvbiBpcyBuZWVkZWQgdG8gdW5kZXJzdGFuZCB0aGUgc2NvcGUgb2YgdGhlIHByb2JsZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwNzEsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzkyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6NTQuOTA4NzE2NDYzWiIsIlNlcSI6NDgsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTg2MDkzNDY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MjQ0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyOTk6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwMC1cXHRcXHRcXHRcXHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTMzMT1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2FkYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM2OC1cXHRcXHRydHdfd3JpdGUzMihydHdkZXYsIDB4MWMyNCwgMHgwMDAxMDAwMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM2OTpcXHRcXHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcXHUwMDI2aWMsIFxcdTAwMjZxYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM3MC1cXHRcXHRydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzg4LVxcdFxcdHJ0d193cml0ZTMyKHJ0d2RldiwgMHgxYzNjLCBwYXRoX3NlbCArIDB4ODEwMyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM4OTpcXHRcXHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcXHUwMDI2aWMsIFxcdTAwMjZxYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM5MC1cXHRcXHRydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDU0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00NzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ3MjpcXHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcXHUwMDI2aWNfaW4sIFxcdTAwMjZxY19pbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ3My1cXHRpYyA9IGljX2luO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTUwMz1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXAzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTUzLVxcdHJ0d193cml0ZTMyKHJ0d2RldiwgYmFzZV9hZGRyICsgMHg2MCwgMHhmMDAwMDAwMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjU1NDpcXHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcXHUwMDI2aWMsIFxcdTAwMjZxYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTU1NS1cXHRpZiAoaWMgXFx1MDAzZT0gMHgxMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6NTcuODk0ODE3ODgyWiIsIlNlcSI6NDksIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMDUyMzkwMzI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBydHc4ODIyYyBJUSBDYWxpYnJhdGlvbiBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgcHJpbWFyeSBjb25jZXJuIGlzIEtNU0FOIGFuZCB3aGV0aGVyIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBvciBleHBvc2VzIGFueSBuZXcgcmVhZHMgb2YgdW5pbml0aWFsaXplZCBtZW1vcnksIG9yIGFueSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLlxuXG5Jbml0aWFsbHksIEknbSBzZWVpbmcgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGFuZCBgcnR3ODgyMmNfZGFjX2lxX29mZnNldGAgYXJlIHJlYWRpbmcgZGF0YSBhbmQgcG90ZW50aWFsbHkgdXNpbmcgdGhlIHJlc3VsdCBpbiB3cml0ZXMgdG8gaGFyZHdhcmUgb3IgY29udHJvbCBmbG93LiBUaGlzIHJhaXNlcyBhIGZsYWcuICBLTVNBTiBpcyBkZXNpZ25lZCB0byBjYXRjaCB0aGlzLiAgSWYgYGNudGAgaW4gdGhlIGNvZGUgaGl0cyAxMDAwMCwgYW5kIGBpYCBcdTAwM2MgYERBQ0tfU05fODgyMkNgLCBpdCBsb29rcyBsaWtlIHRoZSBhcnJheXMgYGl2YCBhbmQgYHF2YCBtaWdodCBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZC4gIFRoZW4sIHRoZSBjb2RlIGNhbGxzIGBzb3J0KClgIG9uIHRoZW0uICBUaGF0IHdpbGwgcmVhZCB0aGUgdmFsdWVzIGluIHRob3NlIGFycmF5cy4gICoqVGhhdCBzaG91bGQgdHJpZ2dlciBLTVNBTioqLiBCdXQsIGlzIHRoaXMgKm5ldyo/XG5cbkxldCdzIGxvb2sgYXQgdGhlIHByZS1wYXRjaCBjb2RlLiBCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB3YXMgY2FsbGluZyBgcnR3ODgyMmNfZGFjX2lxX3NvcnRgLCB3aGljaCBhbHNvIGRpZCBzb3J0aW5nIHVzaW5nIGN1c3RvbSBsb2dpYy4gVGhlIGNvZGUgcmVhZHMgdGhlIGFycmF5IGVsZW1lbnRzIGR1cmluZyBzb3J0aW5nLiBUaGVyZWZvcmUsIHRoaXMgaXNzdWUgd2FzIHByZXNlbnQgYmVmb3JlIHRoZSBwYXRjaCBhcyB3ZWxsLiBLTVNBTiB3b3VsZCBoYXZlIGNhdWdodCB0aGlzIGNvbmRpdGlvbiByZWdhcmRsZXNzLCBzbyB0aGUgcGF0Y2ggZG9lc24ndCAqZXhwb3NlKiBvciAqaW50cm9kdWNlKiBhbnkgKm5ldyogaXNzdWUgaGVyZS5cblxuVGhlIHBhdGNoIGl0c2VsZiBpbnZvbHZlcyBhIGNoYW5nZSBmcm9tIHJlYWRpbmcgZGF0YSB1c2luZyBgcnR3X3JlYWQzMl9tYXNrYCB0byB1c2luZyBgcnR3X3JlYWQzMmAgYW5kIGBGSUVMRF9HRVRfU0lHTkVEYCBtYWNyb3MuICBUaGUgbWFjcm9zIHNpbXBseSBleHRyYWN0IGJpdGZpZWxkcy4gVGhpcyBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLCB0aGV5J3JlIG5vdCBkb2luZyBhbnl0aGluZyB1bnVzdWFsLCBqdXN0IG1hc2tpbmcgYW5kIHNpZ24tZXh0ZW5kaW5nIHRoZSByZWFkIHZhbHVlcy4gYEZJRUxEX0dFVF9TSUdORURgIGlzbid0IGEgbGlrZWx5IGN1bHByaXQuXG5cbk5vdywgbGV0J3MgdGhpbmsgYWJvdXQgYHJ0dzg4MjJjX2RhY19pcV9vZmZzZXRgLiBJdCBpdGVyYXRlcyB0aHJvdWdoIGFuIGFycmF5IGB2ZWNgLiBEb2VzIHRoZSBwYXRjaCBjaGFuZ2UgdGhpcz8gSW4gZmFjdCwgdGhlIHBhdGNoICpkb2VzIG5vdCogY2hhbmdlIHRoZSBsb2dpYyBpbiB0aGlzIGNhc2UuICBJdCBzZWVtcyB0aGUgY29kZSBpcyB1c2luZyB0aGUgZWxlbWVudHMsIHNvIEtNU0FOIHNob3VsZCBjYXRjaCBhbnkgaXNzdWVzIHdpdGggdW5pbml0aWFsaXplZCByZWFkcy5cblxuU28sIGFyZSB0aGVyZSBhbnkgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyAqaW50cm9kdWNlZCogYnkgdGhlIHBhdGNoPyBUaGUgY29tcGFyaXNvbiBmdW5jdGlvbiwgYHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyYCwgaXMgc3RhbmRhcmQsIGFuZCB0aGUgY2FsbHMgdG8gYHNvcnRgIGFyZSBvbiBhcnJheXMgYWxsb2NhdGVkIGluIHRoZSBjYWxsZXIgb24gdGhlIHN0YWNrLCBhbmQgaXQncyBhbGwgYmFzZWQgb24gdGhlIGRhdGEgd2l0aGluIHRob3NlIGFycmF5cy4gVGhpcyBkb2Vzbid0IHNlZW0gdG8gYmUgYSBwcm9ibGVtLiBUaGUgYXJyYXlzIGBpdmAgYW5kIGBxdmAgYXJlIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2suIFRoZSB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZSwgYWdhaW4sIGlzbid0IG5ldy4gIElmIGBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZWAgKmRvZXNuJ3QqIGZpbGwgdGhlIGFycmF5IGBpdmAgYW5kIGBxdmAgY29tcGxldGVseSwgdGhlbiBgc29ydCgpYCB3aWxsIHJlYWQgZnJvbSB1bmluaXRpYWxpemVkIHN0YWNrIG1lbW9yeS4gSXQgd2FzICphbHdheXMqIHRoZSBjYXNlLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGF0LiBEb2VzIHRoZSBwYXRjaCBjaGFuZ2UgaG93IHRoZSBzYW1wbGUgZmlsbHMgdGhlIGFycmF5PyBCZWZvcmUsIHRoZXJlIHdhcyBhIGNoZWNrOiAgYHJ0dzg4MjJjX2RhY19pcV9jaGVja2AsIGJ1dCB0aGUgbG9naWMgaXMgZXF1aXZhbGVudC4gVGhlIGNoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IChub3cgdXNpbmcgc2lnbmVkIGludGVnZXJzLCBzbyBubyBtb3JlIGlzc3VlcyB3aXRoIHR3bydzIGNvbXBsZW1lbnQgdW5zaWduZWQgMTAtYml0IGludGVnZXIpIGlzIGlkZW50aWNhbCwgdGhlcmVmb3JlLCBpdCByZW1haW5zIHRoZSBzYW1lLiBUaGUgY29kZSBqdXN0IGNoYW5nZWQgdGhlIHR5cGVzLlxuXG5Ob3csIGlmIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAgaXMgY2FsbGVkIHdpdGggdW5pbml0aWFsaXplZCBtZW1vcnksIHRoYXQncyBwb3NzaWJsZS4gIFRoZSBjb2RlIG1vZGlmaWVzIHRoZSBmaXJzdCBhbmQgbGFzdCBlbGVtZW50czogIGBpdlswXWAsIGBxdlswXWAsIGBpdltEQUNLX1NOXzg4MjJDIC0gMV1gLCBhbmQgYHF2W0RBQ0tfU05fODgyMkMgLSAxXWAuIFRoZW4sIHRoZSBsb29wIHJlYWRzIHRoZSBlbnRpcmUgYXJyYXkuICBJZiB0aGUgYXJyYXlzIGFyZSB1bmluaXRpYWxpemVkLCB0aGVuIHRoYXQgaXMgYW4gaXNzdWUuICBLTVNBTiB3aWxsIGNhdGNoIGl0LCBidXQgdGhpcyBpcyB0aGUgcHJlLWV4aXN0aW5nIGJlaGF2aW9yLlxuXG5UaGUgY29yZSBvZiB0aGUgcGF0Y2ggaXMgcmVmYWN0b3JpbmcuIEl0IHJlcGxhY2VzIGN1c3RvbSBzb3J0aW5nIGFuZCBtaW4vbWF4IGxvZ2ljIHdpdGggYHNvcnRgIGFuZCBzdGFuZGFyZCBjb21wYXJpc29ucy4gSXQgZG9lcyAqbm90KiBpbnRyb2R1Y2UgbmV3IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzZS4gSWYgdGhlIGhhcmR3YXJlIHRpbWVzIG91dCwgdGhhdCdzIGFscmVhZHkgaW4gdGhlIG9sZCBjb2RlLiAgS01TQU4gd2lsbCBjYXRjaCBpdC5cblxuTGV0J3MgZG8gYSBmaW5hbCBjaGVjay4gIGBpdmAgYW5kIGBxdmAgYXJlIGFsbG9jYXRlZCBpbiBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYC4gYERBQ0tfU05fODgyMkNgIGlzIHRoZSBjb3JyZWN0IHZhbHVlLiBUaGUgYEZJRUxEX0dFVF9TSUdORURgIG1hY3JvcyBleHRyYWN0IHRoZSBjb3JyZWN0IGJpdHMuICBUaGUgYHNvcnRgIGZ1bmN0aW9uIHVzZXMgYSBzdGFuZGFyZCBjb21wYXJpc29uIGZ1bmN0aW9uLlxuXG5CZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB1c2VkIGEgY3VzdG9tIHNvcnRpbmcgZnVuY3Rpb24uXG5cbiIsIklucHV0VG9rZW5zIjo5NzE0LCJPdXRwdXRUb2tlbnMiOjE3NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5NDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzY6MjkuOTQ3MjExNzc4WiIsIlNlcSI6NTAsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg0NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIHJ0dzg4IGRyaXZlciwgcmVwbGFjaW5nIGN1c3RvbSAxMC1iaXQgdHdvJ3MgY29tcGxlbWVudCBhcml0aG1ldGljIGFuZCBhIGN1c3RvbSBidWJibGUgc29ydCB3aXRoIHN0YW5kYXJkIHNpZ25lZCBpbnRlZ2VycyAoczMyKSBhbmQgdGhlIGtlcm5lbCdzIHNvcnQoKSBmdW5jdGlvbi4gV2hpbGUgdGhlIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgYGl2YCBhbmQgYHF2YCBjb3VsZCBwb3RlbnRpYWxseSBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBpZiB0aGUgaGFyZHdhcmUgcmVhZCBsb29wIHRpbWVzIG91dCwgdGhpcyBleGFjdCBzYW1lIGJlaGF2aW9yIGFuZCBzdWJzZXF1ZW50IHJlYWRpbmcgb2YgdGhlc2UgYXJyYXlzIGV4aXN0ZWQgcHJpb3IgdG8gdGhlIHBhdGNoLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgYWxsb2NhdGlvbnMsIG5vciBkb2VzIGl0IGV4cG9zZSBhbnkga2VybmVsIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlLiBBbnkgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWVzIChzdWNoIGFzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMpIHdvdWxkIGJlIGNhdWdodCBieSBzdGFuZGFyZCBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIElRIGNhbGlicmF0aW9uIGxvZ2ljIGluIHRoZSBydHc4OCBkcml2ZXIsIHJlcGxhY2luZyBjdXN0b20gMTAtYml0IHR3bydzIGNvbXBsZW1lbnQgYXJpdGhtZXRpYyBhbmQgYSBjdXN0b20gYnViYmxlIHNvcnQgd2l0aCBzdGFuZGFyZCBzaWduZWQgaW50ZWdlcnMgKHMzMikgYW5kIHRoZSBrZXJuZWwncyBzb3J0KCkgZnVuY3Rpb24uIFdoaWxlIHRoZSBzdGFjay1hbGxvY2F0ZWQgYXJyYXlzIGBpdmAgYW5kIGBxdmAgY291bGQgcG90ZW50aWFsbHkgYmUgcGFydGlhbGx5IHVuaW5pdGlhbGl6ZWQgaWYgdGhlIGhhcmR3YXJlIHJlYWQgbG9vcCB0aW1lcyBvdXQsIHRoaXMgZXhhY3Qgc2FtZSBiZWhhdmlvciBhbmQgc3Vic2VxdWVudCByZWFkaW5nIG9mIHRoZXNlIGFycmF5cyBleGlzdGVkIHByaW9yIHRvIHRoZSBwYXRjaC4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGFsbG9jYXRpb25zLCBub3IgZG9lcyBpdCBleHBvc2UgYW55IGtlcm5lbCBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZS4gQW55IHBvdGVudGlhbCBtZW1vcnkgc2FmZXR5IGlzc3VlcyAoc3VjaCBhcyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzKSB3b3VsZCBiZSBjYXVnaHQgYnkgc3RhbmRhcmQgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gc2Vzc2lvbiBpcyBub3QganVzdGlmaWVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-15 05:47:08 +0000 UTC FinishedAt: 2026-08-15 06:36:32 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "dac3e89a2c90c2feeb471e1f22a2512ad424b792", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW88", "RTW88_8822CU" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "dac3e89a2c90c2feeb471e1f22a2512ad424b792", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW88", "RTW88_8822CU" ], "series_id": "ba6e4ef6-48d7-46c2-bc48-540a8aadc97e" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw_usb_probe", "rtw_core_start", "rtw_power_on" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJDVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0d191c2JfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3X2NvcmVfc3RhcnQmIzM0OywKICAgICYjMzQ7cnR3X3Bvd2VyX29uJiMzNDsKICBdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIElRIGNhbGlicmF0aW9uIGxvZ2ljIGluIHRoZSBydHc4OCBkcml2ZXIsIHJlcGxhY2luZyBjdXN0b20gMTAtYml0IHR3byYjMzk7cyBjb21wbGVtZW50IGFyaXRobWV0aWMgYW5kIGEgY3VzdG9tIGJ1YmJsZSBzb3J0IHdpdGggc3RhbmRhcmQgc2lnbmVkIGludGVnZXJzIChzMzIpIGFuZCB0aGUga2VybmVsJiMzOTtzIHNvcnQoKSBmdW5jdGlvbi4gV2hpbGUgdGhlIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgYGl2YCBhbmQgYHF2YCBjb3VsZCBwb3RlbnRpYWxseSBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBpZiB0aGUgaGFyZHdhcmUgcmVhZCBsb29wIHRpbWVzIG91dCwgdGhpcyBleGFjdCBzYW1lIGJlaGF2aW9yIGFuZCBzdWJzZXF1ZW50IHJlYWRpbmcgb2YgdGhlc2UgYXJyYXlzIGV4aXN0ZWQgcHJpb3IgdG8gdGhlIHBhdGNoLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgYWxsb2NhdGlvbnMsIG5vciBkb2VzIGl0IGV4cG9zZSBhbnkga2VybmVsIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlLiBBbnkgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWVzIChzdWNoIGFzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMpIHdvdWxkIGJlIGNhdWdodCBieSBzdGFuZGFyZCBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIFJlYWx0ZWsgODgyMkMgd2lyZWxlc3MgZHJpdmVyLCByZXBsYWNpbmcgYSBjdXN0b20gc29ydGluZyBpbXBsZW1lbnRhdGlvbiB3aXRoIHRoZSBzdGFuZGFyZCBzb3J0KCkgZnVuY3Rpb24gYW5kIGNoYW5naW5nIHRoZSBkYXRhIHR5cGVzIGZyb20gdTMyIHRvIHMzMi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gYW5kIGNhbGlicmF0aW9uIHNlcXVlbmNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIHZhcmlhbnQgb2YgdGhlIGRyaXZlciAocnR3ODhfODgyMmN1KSB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDM0M2UxNmUzODE3ZjI1NjM5NGNiMzk0NzE2YmJlNTAxYzMzYmE0MmRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxNSAwNjozMzozMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcbmluZGV4IDI0NGM4MDI2NDc5YzIuLjAxNDBmMmU2NDRjYTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1xuQEAgLTMsNiAmIzQzOzMsNyBAQFxuICAqL1xuIFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvcnQuaFx1MDAzZVxuICNpbmNsdWRlIFwmIzM0O21haW4uaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2NvZXguaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2Z3LmhcJiMzNDtcbkBAIC0xOCw3ICYjNDM7MTksNyBAQFxuICNpbmNsdWRlIFwmIzM0O2JmLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtlZnVzZS5oXCYjMzQ7XG4gXG4tI2RlZmluZSBJUUtfRE9ORV84ODIyQyAweGFhXG4mIzQzOyNkZWZpbmUgSVFLX0RPTkVfODgyMkMgMHhhYTRcbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbiBcdFx0XHRcdCAgICAgdTggcnhfcGF0aCwgYm9vbCBpc190eDJfcGF0aCk7XG5AQCAtMTUzLDg0ICYjNDM7MTU0LDI1IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19yZXN0b3JlX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0fVxuIH1cbiBcbi1zdGF0aWMgdm9pZCBydHc4ODIyY19yZl9taW5tYXhfY21wKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSxcbi1cdFx0XHRcdCAgIHUzMiAqbWluLCB1MzIgKm1heClcbiYjNDM7c3RhdGljIGludCBydHc4ODIyY19kYWNfaXFfY21wX3MzMihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKVxuIHtcbi1cdGlmICh2YWx1ZSBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdGlmICgqbWluIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0XHRpZiAoKm1pbiBcdTAwM2UgdmFsdWUpXG4tXHRcdFx0XHQqbWluID0gdmFsdWU7XG4tXHRcdH0gZWxzZSB7XG4tXHRcdFx0Km1pbiA9IHZhbHVlO1xuLVx0XHR9XG4tXHRcdGlmICgqbWF4IFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0XHRpZiAoKm1heCBcdTAwM2MgdmFsdWUpXG4tXHRcdFx0XHQqbWF4ID0gdmFsdWU7XG4tXHRcdH1cbi1cdH0gZWxzZSB7XG4tXHRcdGlmICgqbWluIFx1MDAzYyAweDIwMCkge1xuLVx0XHRcdGlmICgqbWluIFx1MDAzZSB2YWx1ZSlcbi1cdFx0XHRcdCptaW4gPSB2YWx1ZTtcbi1cdFx0fVxuJiM0MztcdHMzMiB2YWxfYSA9ICooY29uc3QgczMyICopYTtcbiYjNDM7XHRzMzIgdmFsX2IgPSAqKGNvbnN0IHMzMiAqKWI7XG4gXG4tXHRcdGlmICgqbWF4ICBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdFx0Km1heCA9IHZhbHVlO1xuLVx0XHR9IGVsc2Uge1xuLVx0XHRcdGlmICgqbWF4IFx1MDAzYyB2YWx1ZSlcbi1cdFx0XHRcdCptYXggPSB2YWx1ZTtcbi1cdFx0fVxuLVx0fVxuJiM0MztcdHJldHVybiAodmFsX2EgXHUwMDNlIHZhbF9iKSAtICh2YWxfYSBcdTAwM2MgdmFsX2IpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqdjEsIHUzMiAqdjIpXG4te1xuLVx0aWYgKCp2MSBcdTAwM2U9IDB4MjAwIFx1MDAyNlx1MDAyNiAqdjIgXHUwMDNlPSAweDIwMCkge1xuLVx0XHRpZiAoKnYxIFx1MDAzZSAqdjIpXG4tXHRcdFx0c3dhcCgqdjEsICp2Mik7XG4tXHR9IGVsc2UgaWYgKCp2MSBcdTAwM2MgMHgyMDAgXHUwMDI2XHUwMDI2ICp2MiBcdTAwM2MgMHgyMDApIHtcbi1cdFx0aWYgKCp2MSBcdTAwM2UgKnYyKVxuLVx0XHRcdHN3YXAoKnYxLCAqdjIpO1xuLVx0fSBlbHNlIGlmICgqdjEgXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiAqdjIgXHUwMDNlPSAweDIwMCkge1xuLVx0XHRzd2FwKCp2MSwgKnYyKTtcbi1cdH1cbi19XG4gXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2lxX3NvcnQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdilcbiYjNDM7c3RhdGljIHUzMiBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqdmVjKVxuIHtcbi1cdHUzMiBpLCBqO1xuJiM0MztcdHMzMiBzdW0gPSAwO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgREFDS19TTl84ODIyQyAtIDE7IGkmIzQzOyYjNDM7KSB7XG4tXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIChEQUNLX1NOXzg4MjJDIC0gMSAtIGkpIDsgaiYjNDM7JiM0MzspIHtcbi1cdFx0XHRfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgXHUwMDI2aXZbal0sIFx1MDAyNml2W2ogJiM0MzsgMV0pO1xuLVx0XHRcdF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBcdTAwMjZxdltqXSwgXHUwMDI2cXZbaiAmIzQzOyAxXSk7XG4tXHRcdH1cbi1cdH1cbi19XG4tXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnZlYywgdTMyICp2YWwpXG4te1xuLVx0dTMyIHAsIG0sIHQsIGk7XG4tXG4tXHRtID0gMDtcbi1cdHAgPSAwO1xuLVx0Zm9yIChpID0gMTA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkMgLSAxMDsgaSYjNDM7JiM0MzspIHtcbi1cdFx0aWYgKHZlY1tpXSBcdTAwM2UgMHgyMDApXG4tXHRcdFx0bSA9ICgweDQwMCAtIHZlY1tpXSkgJiM0MzsgbTtcbi1cdFx0ZWxzZVxuLVx0XHRcdHAgPSB2ZWNbaV0gJiM0MzsgcDtcbi1cdH1cbiYjNDM7XHRmb3IgKHUzMiBpID0gMTA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkMgLSAxMDsgaSYjNDM7JiM0MzspXG4mIzQzO1x0XHRzdW0gJiM0Mzs9IHZlY1tpXTtcbiBcbi1cdGlmIChwIFx1MDAzZSBtKSB7XG4tXHRcdHQgPSBwIC0gbTtcbi1cdFx0dCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbi1cdH0gZWxzZSB7XG4tXHRcdHQgPSBtIC0gcDtcbi1cdFx0dCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbi1cdFx0aWYgKHQgIT0gMHgwKVxuLVx0XHRcdHQgPSAweDQwMCAtIHQ7XG4tXHR9XG4mIzQzO1x0czMyIGF2ZyA9IHN1bSAvIChEQUNLX1NOXzg4MjJDIC0gMjApO1xuIFxuLVx0KnZhbCA9IHQ7XG4mIzQzO1x0cmV0dXJuIGF2ZyBcdTAwM2U9IDAgPyAodTMyKWF2ZyA6ICh1MzIpKDB4NDAwICYjNDM7IGF2Zyk7XG4gfVxuIFxuIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxuQEAgLTI3MSwyOSAmIzQzOzIxMywyNyBAQCBzdGF0aWMgdTMyIHJ0dzg4MjJjX2dldF9wYXRoX3JlYWRfYWRkcih1OCBwYXRoKVxuIFx0cmV0dXJuIGJhc2VfYWRkcjtcbiB9XG4gXG4tc3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSlcbiYjNDM7c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiB2YWx1ZSlcbiB7XG4tXHRib29sIHJldCA9IHRydWU7XG4gXG4tXHRpZiAoKHZhbHVlIFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2ICgweDQwMCAtIHZhbHVlKSBcdTAwM2UgMHg2NCkgfHxcbi1cdCAgICAodmFsdWUgXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiB2YWx1ZSBcdTAwM2UgMHg2NCkpIHtcbi1cdFx0cmV0ID0gZmFsc2U7XG4mIzQzO1x0aWYgKHZhbHVlIFx1MDAzZSAxMDAgfHwgdmFsdWUgXHUwMDNjIC0xMDApIHtcbiBcdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCBcJiMzNDtbREFDS10gRXJyb3Igb3ZlcmZsb3dcXG5cJiMzNDspO1xuJiM0MztcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuLVx0cmV0dXJuIHJldDtcbiYjNDM7XHRyZXR1cm4gdHJ1ZTtcbiB9XG4gXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdilcbiYjNDM7c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyICppdiwgczMyICpxdilcbiB7XG4gXHR1MzIgdGVtcDtcbiBcdGludCBpID0gMCwgY250ID0gMDtcbiBcbiBcdHdoaWxlIChpIFx1MDAzYyBEQUNLX1NOXzg4MjJDIFx1MDAyNlx1MDAyNiBjbnQgXHUwMDNjIDEwMDAwKSB7XG4gXHRcdGNudCYjNDM7JiM0Mzs7XG4tXHRcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcbi1cdFx0aXZbaV0gPSAodGVtcCBcdTAwMjYgMHgzZmYwMDApIFx1MDAzZVx1MDAzZSAxMjtcbi1cdFx0cXZbaV0gPSB0ZW1wIFx1MDAyNiAweDNmZjtcbiYjNDM7XHRcdHRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTtcbiYjNDM7XHRcdGl2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4mIzQzO1x0XHRxdltpXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApO1xuIFxuIFx0XHRpZiAocnR3ODgyMmNfZGFjX2lxX2NoZWNrKHJ0d2RldiwgaXZbaV0pIFx1MDAyNlx1MDAyNlxuIFx0XHQgICAgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHJ0d2RldiwgcXZbaV0pKVxuQEAgLTMwMiwxMyAmIzQzOzI0MiwxMyBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KVxuIH1cbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLVx0XHRcdFx0ICAgICAgIHUzMiAqaXYsIHUzMiAqcXYsXG4mIzQzO1x0XHRcdFx0ICAgICAgIHMzMiAqaXYsIHMzMiAqcXYsXG4gXHRcdFx0XHQgICAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXG4ge1xuLVx0dTMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDtcbiYjNDM7XHRzMzIgaV9tYXggPSAwLCBxX21heCA9IDAsIGlfbWluID0gMCwgcV9taW4gPSAwO1xuIFx0dTMyIGlfZGVsdGEsIHFfZGVsdGE7XG4gXHR1MzIgdGVtcDtcbi1cdGludCBpLCBjbnQgPSAwO1xuJiM0MztcdHUzMiBpLCBjbnQgPSAwO1xuIFxuIFx0ZG8ge1xuIFx0XHRpX21pbiA9IGl2WzBdO1xuQEAgLTMxNiwyMyAmIzQzOzI1NiwxOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0XHRxX21pbiA9IHF2WzBdO1xuIFx0XHRxX21heCA9IHF2WzBdO1xuIFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBEQUNLX1NOXzg4MjJDOyBpJiM0MzsmIzQzOykge1xuLVx0XHRcdHJ0dzg4MjJjX3JmX21pbm1heF9jbXAocnR3ZGV2LCBpdltpXSwgXHUwMDI2aV9taW4sIFx1MDAyNmlfbWF4KTtcbi1cdFx0XHRydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgcXZbaV0sIFx1MDAyNnFfbWluLCBcdTAwMjZxX21heCk7XG4mIzQzO1x0XHRcdGlmIChpdltpXSBcdTAwM2MgaV9taW4pXG4mIzQzO1x0XHRcdFx0aV9taW4gPSBpdltpXTtcbiYjNDM7XHRcdFx0aWYgKGl2W2ldIFx1MDAzZSBpX21heClcbiYjNDM7XHRcdFx0XHRpX21heCA9IGl2W2ldO1xuJiM0MztcdFx0XHRpZiAocXZbaV0gXHUwMDNjIHFfbWluKVxuJiM0MztcdFx0XHRcdHFfbWluID0gcXZbaV07XG4mIzQzO1x0XHRcdGlmIChxdltpXSBcdTAwM2UgcV9tYXgpXG4mIzQzO1x0XHRcdFx0cV9tYXggPSBxdltpXTtcbiBcdFx0fVxuIFxuLVx0XHRpZiAoaV9tYXggXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiBpX21pbiBcdTAwM2MgMHgyMDApXG4tXHRcdFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XG4tXHRcdGVsc2UgaWYgKGlfbWF4IFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2IGlfbWluIFx1MDAzZT0gMHgyMDApXG4tXHRcdFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XG4tXHRcdGVsc2Vcbi1cdFx0XHRpX2RlbHRhID0gaV9tYXggJiM0MzsgKDB4NDAwIC0gaV9taW4pO1xuJiM0MztcdFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XG4mIzQzO1x0XHRxX2RlbHRhID0gcV9tYXggLSBxX21pbjtcbiBcbi1cdFx0aWYgKHFfbWF4IFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgcV9taW4gXHUwMDNjIDB4MjAwKVxuLVx0XHRcdHFfZGVsdGEgPSBxX21heCAtIHFfbWluO1xuLVx0XHRlbHNlIGlmIChxX21heCBcdTAwM2U9IDB4MjAwIFx1MDAyNlx1MDAyNiBxX21pbiBcdTAwM2U9IDB4MjAwKVxuLVx0XHRcdHFfZGVsdGEgPSBxX21heCAtIHFfbWluO1xuLVx0XHRlbHNlXG4tXHRcdFx0cV9kZWx0YSA9IHFfbWF4ICYjNDM7ICgweDQwMCAtIHFfbWluKTtcbiBcbiBcdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLFxuIFx0XHRcdFwmIzM0O1tEQUNLXSBpOiBtaW49MHglMDh4LCBtYXg9MHglMDh4LCBkZWx0YT0weCUwOHhcXG5cJiMzNDssXG5AQCAtMzQxLDI4ICYjNDM7Mjc3LDI5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHRcdFx0XCYjMzQ7W0RBQ0tdIHE6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxcblwmIzM0OyxcbiBcdFx0XHRxX21pbiwgcV9tYXgsIHFfZGVsdGEpO1xuIFxuLVx0XHRydHc4ODIyY19kYWNfaXFfc29ydChydHdkZXYsIGl2LCBxdik7XG4mIzQzO1x0XHRzb3J0KGl2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xuJiM0MztcdFx0c29ydChxdiwgREFDS19TTl84ODIyQywgc2l6ZW9mKHMzMiksIHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyLCBOVUxMKTtcbiBcbiBcdFx0aWYgKGlfZGVsdGEgXHUwMDNlIDUgfHwgcV9kZWx0YSBcdTAwM2UgNSkge1xuLVx0XHRcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcbi1cdFx0XHRpdlswXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRcdHF2WzBdID0gdGVtcCBcdTAwMjYgMHgzZmY7XG4tXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpO1xuLVx0XHRcdGl2W0RBQ0tfU05fODgyMkMgLSAxXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IHRlbXAgXHUwMDI2IDB4M2ZmO1xuJiM0MztcdFx0XHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XG4mIzQzO1x0XHRcdGl2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4mIzQzO1x0XHRcdHF2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XG4mIzQzO1x0XHRcdHRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTtcbiYjNDM7XHRcdFx0aXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4mIzQzO1x0XHRcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9IHdoaWxlIChjbnQmIzQzOyYjNDM7IFx1MDAzYyAxMDApO1xuIFxuLVx0cnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIGl2LCBpX3ZhbHVlKTtcbi1cdHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdiwgcV92YWx1ZSk7XG4mIzQzO1x0KmlfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgaXYpO1xuJiM0MztcdCpxX3ZhbHVlID0gcnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIHF2KTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHRcdFx0XHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxuIHtcbi1cdHUzMiBpdltEQUNLX1NOXzg4MjJDXSwgcXZbREFDS19TTl84ODIyQ107XG4mIzQzO1x0czMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTtcbiBcdHUzMiByZl9hLCByZl9iO1xuIFxuIFx0cmZfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweDAsIFJGUkVHX01BU0spO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuaW5kZXggZmM2MmI2N2ExNWYyMS4uN2JlYTk5NjE0MzU0YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oXG5AQCAtMTQxLDYgJiM0MzsxNDEsOSBAQCBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlIG5hbWUgIyMgX3RibCA9IHtcdFx0XHRcXFxuICNkZWZpbmUgREFDS19SRl84ODIyQ1x0XHQxXG4gI2RlZmluZSBEQUNLX1NOXzg4MjJDXHRcdDEwMFxuIFxuJiM0MzsjZGVmaW5lIFJUVzg4MjJDX0RBQ19JVl9NQVNLIEdFTk1BU0soMjEsIDEyKVxuJiM0MzsjZGVmaW5lIFJUVzg4MjJDX0RBQ19RVl9NQVNLIEdFTk1BU0soOSwgMClcbiYjNDM7XG4gLyogcGh5IHN0YXR1cyBwYWdlMCAqL1xuICNkZWZpbmUgR0VUX1BIWV9TVEFUX1AwX1BXREJfQShwaHlfc3RhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuIFx0bGUzMl9nZXRfYml0cygqKChfX2xlMzIgKikocGh5X3N0YXQpICYjNDM7IDB4MDApLCBHRU5NQVNLKDE1LCA4KSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODgmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMkNVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnR3X3VzYl9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHdfY29yZV9zdGFydCYjMzQ7LAogICAgJiMzNDtydHdfcG93ZXJfb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBpbml0aWFsaXphdGlvbiBhbmQgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgdmFyaWFudCBvZiB0aGUgZHJpdmVyIChydHc4OF84ODIyY3UpIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzQzZTE2ZTM4MTdmMjU2Mzk0Y2IzOTQ3MTZiYmU1MDFjMzNiYTQyZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDE1IDA2OjMzOjMyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jCmluZGV4IDI0NGM4MDI2NDc5YzIuLjAxNDBmMmU2NDRjYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMKQEAgLTMsNiAmIzQzOzMsNyBAQAogICovCiAKICNpbmNsdWRlICZsdDtsaW51eC9tb2R1bGUuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvc29ydC5oJmd0OwogI2luY2x1ZGUgJiMzNDttYWluLmgmIzM0OwogI2luY2x1ZGUgJiMzNDtjb2V4LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtmdy5oJiMzNDsKQEAgLTE4LDcgJiM0MzsxOSw3IEBACiAjaW5jbHVkZSAmIzM0O2JmLmgmIzM0OwogI2luY2x1ZGUgJiMzNDtlZnVzZS5oJiMzNDsKIAotI2RlZmluZSBJUUtfRE9ORV84ODIyQyAweGFhCiYjNDM7I2RlZmluZSBJUUtfRE9ORV84ODIyQyAweGFhNAogCiBzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCwKIAkJCQkgICAgIHU4IHJ4X3BhdGgsIGJvb2wgaXNfdHgyX3BhdGgpOwpAQCAtMTUzLDg0ICYjNDM7MTU0LDI1IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19yZXN0b3JlX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LAogCX0KIH0KIAotc3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfbWlubWF4X2NtcChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgdmFsdWUsCi0JCQkJICAgdTMyICptaW4sIHUzMiAqbWF4KQomIzQzO3N0YXRpYyBpbnQgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKLQlpZiAodmFsdWUgJmd0Oz0gMHgyMDApIHsKLQkJaWYgKCptaW4gJmd0Oz0gMHgyMDApIHsKLQkJCWlmICgqbWluICZndDsgdmFsdWUpCi0JCQkJKm1pbiA9IHZhbHVlOwotCQl9IGVsc2UgewotCQkJKm1pbiA9IHZhbHVlOwotCQl9Ci0JCWlmICgqbWF4ICZndDs9IDB4MjAwKSB7Ci0JCQlpZiAoKm1heCAmbHQ7IHZhbHVlKQotCQkJCSptYXggPSB2YWx1ZTsKLQkJfQotCX0gZWxzZSB7Ci0JCWlmICgqbWluICZsdDsgMHgyMDApIHsKLQkJCWlmICgqbWluICZndDsgdmFsdWUpCi0JCQkJKm1pbiA9IHZhbHVlOwotCQl9CiYjNDM7CXMzMiB2YWxfYSA9ICooY29uc3QgczMyICopYTsKJiM0MzsJczMyIHZhbF9iID0gKihjb25zdCBzMzIgKiliOwogCi0JCWlmICgqbWF4ICAmZ3Q7PSAweDIwMCkgewotCQkJKm1heCA9IHZhbHVlOwotCQl9IGVsc2UgewotCQkJaWYgKCptYXggJmx0OyB2YWx1ZSkKLQkJCQkqbWF4ID0gdmFsdWU7Ci0JCX0KLQl9CiYjNDM7CXJldHVybiAodmFsX2EgJmd0OyB2YWxfYikgLSAodmFsX2EgJmx0OyB2YWxfYik7CiB9CiAKLXN0YXRpYyB2b2lkIF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICp2MSwgdTMyICp2MikKLXsKLQlpZiAoKnYxICZndDs9IDB4MjAwICZhbXA7JmFtcDsgKnYyICZndDs9IDB4MjAwKSB7Ci0JCWlmICgqdjEgJmd0OyAqdjIpCi0JCQlzd2FwKCp2MSwgKnYyKTsKLQl9IGVsc2UgaWYgKCp2MSAmbHQ7IDB4MjAwICZhbXA7JmFtcDsgKnYyICZsdDsgMHgyMDApIHsKLQkJaWYgKCp2MSAmZ3Q7ICp2MikKLQkJCXN3YXAoKnYxLCAqdjIpOwotCX0gZWxzZSBpZiAoKnYxICZsdDsgMHgyMDAgJmFtcDsmYW1wOyAqdjIgJmd0Oz0gMHgyMDApIHsKLQkJc3dhcCgqdjEsICp2Mik7Ci0JfQotfQogCi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfaXFfc29ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KQomIzQzO3N0YXRpYyB1MzIgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKnZlYykKIHsKLQl1MzIgaSwgajsKJiM0MzsJczMyIHN1bSA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpICZsdDsgREFDS19TTl84ODIyQyAtIDE7IGkmIzQzOyYjNDM7KSB7Ci0JCWZvciAoaiA9IDA7IGogJmx0OyAoREFDS19TTl84ODIyQyAtIDEgLSBpKSA7IGomIzQzOyYjNDM7KSB7Ci0JCQlfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgJmFtcDtpdltqXSwgJmFtcDtpdltqICYjNDM7IDFdKTsKLQkJCV9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCAmYW1wO3F2W2pdLCAmYW1wO3F2W2ogJiM0MzsgMV0pOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqdmVjLCB1MzIgKnZhbCkKLXsKLQl1MzIgcCwgbSwgdCwgaTsKLQotCW0gPSAwOwotCXAgPSAwOwotCWZvciAoaSA9IDEwOyBpICZsdDsgREFDS19TTl84ODIyQyAtIDEwOyBpJiM0MzsmIzQzOykgewotCQlpZiAodmVjW2ldICZndDsgMHgyMDApCi0JCQltID0gKDB4NDAwIC0gdmVjW2ldKSAmIzQzOyBtOwotCQllbHNlCi0JCQlwID0gdmVjW2ldICYjNDM7IHA7Ci0JfQomIzQzOwlmb3IgKHUzMiBpID0gMTA7IGkgJmx0OyBEQUNLX1NOXzg4MjJDIC0gMTA7IGkmIzQzOyYjNDM7KQomIzQzOwkJc3VtICYjNDM7PSB2ZWNbaV07CiAKLQlpZiAocCAmZ3Q7IG0pIHsKLQkJdCA9IHAgLSBtOwotCQl0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApOwotCX0gZWxzZSB7Ci0JCXQgPSBtIC0gcDsKLQkJdCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTsKLQkJaWYgKHQgIT0gMHgwKQotCQkJdCA9IDB4NDAwIC0gdDsKLQl9CiYjNDM7CXMzMiBhdmcgPSBzdW0gLyAoREFDS19TTl84ODIyQyAtIDIwKTsKIAotCSp2YWwgPSB0OwomIzQzOwlyZXR1cm4gYXZnICZndDs9IDAgPyAodTMyKWF2ZyA6ICh1MzIpKDB4NDAwICYjNDM7IGF2Zyk7CiB9CiAKIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKQpAQCAtMjcxLDI5ICYjNDM7MjEzLDI3IEBAIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfcmVhZF9hZGRyKHU4IHBhdGgpCiAJcmV0dXJuIGJhc2VfYWRkcjsKIH0KIAotc3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSkKJiM0MztzdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyIHZhbHVlKQogewotCWJvb2wgcmV0ID0gdHJ1ZTsKIAotCWlmICgodmFsdWUgJmd0Oz0gMHgyMDAgJmFtcDsmYW1wOyAoMHg0MDAgLSB2YWx1ZSkgJmd0OyAweDY0KSB8fAotCSAgICAodmFsdWUgJmx0OyAweDIwMCAmYW1wOyZhbXA7IHZhbHVlICZndDsgMHg2NCkpIHsKLQkJcmV0ID0gZmFsc2U7CiYjNDM7CWlmICh2YWx1ZSAmZ3Q7IDEwMCB8fCB2YWx1ZSAmbHQ7IC0xMDApIHsKIAkJcnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCAmIzM0O1tEQUNLXSBFcnJvciBvdmVyZmxvd1xuJiMzNDspOwomIzQzOwkJcmV0dXJuIGZhbHNlOwogCX0KIAotCXJldHVybiByZXQ7CiYjNDM7CXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KQomIzQzO3N0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqaXYsIHMzMiAqcXYpCiB7CiAJdTMyIHRlbXA7CiAJaW50IGkgPSAwLCBjbnQgPSAwOwogCiAJd2hpbGUgKGkgJmx0OyBEQUNLX1NOXzg4MjJDICZhbXA7JmFtcDsgY250ICZsdDsgMTAwMDApIHsKIAkJY250JiM0MzsmIzQzOzsKLQkJdGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpOwotCQlpdltpXSA9ICh0ZW1wICZhbXA7IDB4M2ZmMDAwKSAmZ3Q7Jmd0OyAxMjsKLQkJcXZbaV0gPSB0ZW1wICZhbXA7IDB4M2ZmOwomIzQzOwkJdGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpOwomIzQzOwkJaXZbaV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19JVl9NQVNLLCB0ZW1wKTsKJiM0MzsJCXF2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7CiAKIAkJaWYgKHJ0dzg4MjJjX2RhY19pcV9jaGVjayhydHdkZXYsIGl2W2ldKSAmYW1wOyZhbXA7CiAJCSAgICBydHc4ODIyY19kYWNfaXFfY2hlY2socnR3ZGV2LCBxdltpXSkpCkBAIC0zMDIsMTMgJiM0MzsyNDIsMTMgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdikKIH0KIAogc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwKLQkJCQkgICAgICAgdTMyICppdiwgdTMyICpxdiwKJiM0MzsJCQkJICAgICAgIHMzMiAqaXYsIHMzMiAqcXYsCiAJCQkJICAgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKQogewotCXUzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7CiYjNDM7CXMzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7CiAJdTMyIGlfZGVsdGEsIHFfZGVsdGE7CiAJdTMyIHRlbXA7Ci0JaW50IGksIGNudCA9IDA7CiYjNDM7CXUzMiBpLCBjbnQgPSAwOwogCiAJZG8gewogCQlpX21pbiA9IGl2WzBdOwpAQCAtMzE2LDIzICYjNDM7MjU2LDE5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsCiAJCXFfbWluID0gcXZbMF07CiAJCXFfbWF4ID0gcXZbMF07CiAJCWZvciAoaSA9IDA7IGkgJmx0OyBEQUNLX1NOXzg4MjJDOyBpJiM0MzsmIzQzOykgewotCQkJcnR3ODgyMmNfcmZfbWlubWF4X2NtcChydHdkZXYsIGl2W2ldLCAmYW1wO2lfbWluLCAmYW1wO2lfbWF4KTsKLQkJCXJ0dzg4MjJjX3JmX21pbm1heF9jbXAocnR3ZGV2LCBxdltpXSwgJmFtcDtxX21pbiwgJmFtcDtxX21heCk7CiYjNDM7CQkJaWYgKGl2W2ldICZsdDsgaV9taW4pCiYjNDM7CQkJCWlfbWluID0gaXZbaV07CiYjNDM7CQkJaWYgKGl2W2ldICZndDsgaV9tYXgpCiYjNDM7CQkJCWlfbWF4ID0gaXZbaV07CiYjNDM7CQkJaWYgKHF2W2ldICZsdDsgcV9taW4pCiYjNDM7CQkJCXFfbWluID0gcXZbaV07CiYjNDM7CQkJaWYgKHF2W2ldICZndDsgcV9tYXgpCiYjNDM7CQkJCXFfbWF4ID0gcXZbaV07CiAJCX0KIAotCQlpZiAoaV9tYXggJmx0OyAweDIwMCAmYW1wOyZhbXA7IGlfbWluICZsdDsgMHgyMDApCi0JCQlpX2RlbHRhID0gaV9tYXggLSBpX21pbjsKLQkJZWxzZSBpZiAoaV9tYXggJmd0Oz0gMHgyMDAgJmFtcDsmYW1wOyBpX21pbiAmZ3Q7PSAweDIwMCkKLQkJCWlfZGVsdGEgPSBpX21heCAtIGlfbWluOwotCQllbHNlCi0JCQlpX2RlbHRhID0gaV9tYXggJiM0MzsgKDB4NDAwIC0gaV9taW4pOwomIzQzOwkJaV9kZWx0YSA9IGlfbWF4IC0gaV9taW47CiYjNDM7CQlxX2RlbHRhID0gcV9tYXggLSBxX21pbjsKIAotCQlpZiAocV9tYXggJmx0OyAweDIwMCAmYW1wOyZhbXA7IHFfbWluICZsdDsgMHgyMDApCi0JCQlxX2RlbHRhID0gcV9tYXggLSBxX21pbjsKLQkJZWxzZSBpZiAocV9tYXggJmd0Oz0gMHgyMDAgJmFtcDsmYW1wOyBxX21pbiAmZ3Q7PSAweDIwMCkKLQkJCXFfZGVsdGEgPSBxX21heCAtIHFfbWluOwotCQllbHNlCi0JCQlxX2RlbHRhID0gcV9tYXggJiM0MzsgKDB4NDAwIC0gcV9taW4pOwogCiAJCXJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSywKIAkJCSYjMzQ7W0RBQ0tdIGk6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxuJiMzNDssCkBAIC0zNDEsMjggJiM0MzsyNzcsMjkgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwKIAkJCSYjMzQ7W0RBQ0tdIHE6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxuJiMzNDssCiAJCQlxX21pbiwgcV9tYXgsIHFfZGVsdGEpOwogCi0JCXJ0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgaXYsIHF2KTsKJiM0MzsJCXNvcnQoaXYsIERBQ0tfU05fODgyMkMsIHNpemVvZihzMzIpLCBydHc4ODIyY19kYWNfaXFfY21wX3MzMiwgTlVMTCk7CiYjNDM7CQlzb3J0KHF2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpOwogCiAJCWlmIChpX2RlbHRhICZndDsgNSB8fCBxX2RlbHRhICZndDsgNSkgewotCQkJdGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpOwotCQkJaXZbMF0gPSAodGVtcCAmYW1wOyAweDNmZjAwMCkgJmd0OyZndDsgMTI7Ci0JCQlxdlswXSA9IHRlbXAgJmFtcDsgMHgzZmY7Ci0JCQl0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7Ci0JCQlpdltEQUNLX1NOXzg4MjJDIC0gMV0gPSAodGVtcCAmYW1wOyAweDNmZjAwMCkgJmd0OyZndDsgMTI7Ci0JCQlxdltEQUNLX1NOXzg4MjJDIC0gMV0gPSB0ZW1wICZhbXA7IDB4M2ZmOwomIzQzOwkJCXRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTsKJiM0MzsJCQlpdlswXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApOwomIzQzOwkJCXF2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7CiYjNDM7CQkJdGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpOwomIzQzOwkJCWl2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApOwomIzQzOwkJCXF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApOwogCQl9IGVsc2UgewogCQkJYnJlYWs7CiAJCX0KIAl9IHdoaWxlIChjbnQmIzQzOyYjNDM7ICZsdDsgMTAwKTsKIAotCXJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBpdiwgaV92YWx1ZSk7Ci0JcnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIHF2LCBxX3ZhbHVlKTsKJiM0MzsJKmlfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgaXYpOwomIzQzOwkqcV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdik7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LAogCQkJCSAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpCiB7Ci0JdTMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTsKJiM0MzsJczMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTsKIAl1MzIgcmZfYSwgcmZfYjsKIAogCXJmX2EgPSBydHdfcmVhZF9yZihydHdkZXYsIFJGX1BBVEhfQSwgMHgwLCBSRlJFR19NQVNLKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaAppbmRleCBmYzYyYjY3YTE1ZjIxLi43YmVhOTk2MTQzNTRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oCkBAIC0xNDEsNiAmIzQzOzE0MSw5IEBAIGNvbnN0IHN0cnVjdCBydHdfdGFibGUgbmFtZSAjIyBfdGJsID0gewkJCVwKICNkZWZpbmUgREFDS19SRl84ODIyQwkJMQogI2RlZmluZSBEQUNLX1NOXzg4MjJDCQkxMDAKIAomIzQzOyNkZWZpbmUgUlRXODgyMkNfREFDX0lWX01BU0sgR0VOTUFTSygyMSwgMTIpCiYjNDM7I2RlZmluZSBSVFc4ODIyQ19EQUNfUVZfTUFTSyBHRU5NQVNLKDksIDApCiYjNDM7CiAvKiBwaHkgc3RhdHVzIHBhZ2UwICovCiAjZGVmaW5lIEdFVF9QSFlfU1RBVF9QMF9QV0RCX0EocGh5X3N0YXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCWxlMzJfZ2V0X2JpdHMoKigoX19sZTMyICopKHBoeV9zdGF0KSAmIzQzOyAweDAwKSwgR0VOTUFTSygxNSwgOCkpCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNzQKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA2MjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBhZmZlY3RpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY2AuIEl0JiMzOTtzIHR3ZWFraW5nIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gcHJvY2VzcyB3aXRoaW4gdGhlIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zLiBTZWVtcyBsaWtlIHRoZXkmIzM5O3JlIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0IHdpdGggdGhlIHN0YW5kYXJkIGBzb3J0KClgIGZ1bmN0aW9uIGZyb20gYGxpbnV4L3NvcnQuaGAsIHdoaWNoIGlzIHVzdWFsbHkgYSBnb29kIHNpZ24gZm9yIG1haW50YWluYWJpbGl0eSBhbmQgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cy4gVGhleSYjMzk7dmUgYWxzbyBzd2l0Y2hlZCB0aGUgYGl2YCBhbmQgYHF2YCBhcnJheXMgdG8gYHMzMmAgYW5kIGFyZSBub3cgdXNpbmcgYEZJRUxEX0dFVF9TSUdORURgIGZvciByZWdpc3RlciB2YWx1ZSBleHRyYWN0aW9uLCBhbmQgcmlwcGVkIG91dCBhIGJ1bmNoIG9mIGN1c3RvbSBzb3J0IGZ1bmN0aW9ucy4gRmluYWxseSBgcnR3ODgyMmNfZGFjX2lxX29mZnNldGAgaGFzIGJlZW4gdXBkYXRlZCB0byBhY2NvbW1vZGF0ZSB0aGUgYHMzMmAgY2hhbmdlLgoKVGhlIGtleSBxdWVzdGlvbiBpcywgY2FuIHdlIGFjdHVhbGx5ICpmdXp6KiB0aGlzPyBMZXQmIzM5O3MgZmlndXJlIG91dCBpZiB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBpZiBmdXp6aW5nIGl0IGlzIHByYWN0aWNhbC4gVGhlIGRyaXZlciBpcyBgcnR3ODhgLCB3aGljaCBJIGtub3cgaXMgYSBSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGFkYXB0ZXIgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBydHc4ODIyY2AgdmFyaWFudCwgd2hpY2ggaXMgZm9yIHRoZSBSVEw4ODIyQy4gU2luY2UgaXQmIzM5O3MgYSBXaS1GaSBkcml2ZXIsIHRoYXQgc2NyZWFtcyBwaHlzaWNhbCBoYXJkd2FyZSB0byBtZS4gUmVhbHRlayBXaS1GaSBjYXJkcyBhcmUgKmRlZmluaXRlbHkqIHBoeXNpY2FsIGhhcmR3YXJlLgoKTm93LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSB2ZXJ5IHNwZWNpZmljOiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnMgLi4uIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIC4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSYjMzQ7LiBPa2F5LCBzbyBpcyBhIFdpLUZpIGRyaXZlciBsaWtlIGBydHc4OGAgZW11bGF0ZWQgaW4gUUVNVT8gVXN1YWxseSwgbm8uIFdpLUZpIGRyaXZlcnMgdHlwaWNhbGx5IG5lZWQgcGh5c2ljYWwgaGFyZHdhcmUgKFBDSWUgb3IgVVNCKS4gU28gd2UgbmVlZCB0byBjb25zaWRlciBob3cgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBjb25uZWN0ZWQuCgpUaGUgY3JpdGljYWwgcGF0aCBoZXJlIGlzIHRvIGRldGVybWluZSBpZiB3ZSBjYW4gZnV6eiB0aGlzLiBEb2VzIGBydHc4OGAgaGF2ZSBhIFVTQiwgU0RJTywgb3IgaXMgaXQgb25seSBQQ0llPyBJZiBpdCYjMzk7cyBVU0IsIHdlICptaWdodCogYmUgYWJsZSB0byBmdXp6IGl0IHVzaW5nIFVTQiBnYWRnZXQgb3IgZHVtbXlfaGNkIChzeXprYWxsZXIgc3VwcG9ydHMgVVNCIGZ1enppbmcpLiBTRElPIGlzIHByb2JhYmx5IGEgbm8tZ28gZm9yIGZ1enppbmcgZWFzaWx5LiBQQ0llIGlzIGxpa2VseSBhIG5vLWdvIHRvbywgdW5sZXNzIHRoZSBQQ0kgZnV6emluZyBzdXBwb3J0IGluIHN5emthbGxlciBpcyBzdHJvbmcgZW5vdWdoLiBUaGUgaW5zdHJ1Y3Rpb25zIHN0YXRlICYjMzQ7Q29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlJiMzNDsuCgpTbywgSSBuZWVkIHRvIGNoZWNrIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2AgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBoaW50IG9mIFVTQiBzdXBwb3J0LiBJZiBpdCYjMzk7cyBwdXJlIFBDSWUsIGl0JiMzOTtzIHByb2JhYmx5IG5vdCB3b3J0aCBmdXp6aW5nLCBiYXNlZCBvbiB0aGUgcHJvbXB0JiMzOTtzIGluc3RydWN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2JmLmMmIzM0OywKICAgICYjMzQ7YmYuaCYjMzQ7LAogICAgJiMzNDtjb2V4LmMmIzM0OywKICAgICYjMzQ7Y29leC5oJiMzNDssCiAgICAmIzM0O2RlYnVnLmMmIzM0OywKICAgICYjMzQ7ZGVidWcuaCYjMzQ7LAogICAgJiMzNDtlZnVzZS5jJiMzNDssCiAgICAmIzM0O2VmdXNlLmgmIzM0OywKICAgICYjMzQ7ZncuYyYjMzQ7LAogICAgJiMzNDtmdy5oJiMzNDssCiAgICAmIzM0O2hjaS5oJiMzNDssCiAgICAmIzM0O2xlZC5jJiMzNDssCiAgICAmIzM0O2xlZC5oJiMzNDssCiAgICAmIzM0O21hYy5jJiMzNDssCiAgICAmIzM0O21hYy5oJiMzNDssCiAgICAmIzM0O21hYzgwMjExLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21haW4uaCYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtwY2kuaCYjMzQ7LAogICAgJiMzNDtwaHkuYyYjMzQ7LAogICAgJiMzNDtwaHkuaCYjMzQ7LAogICAgJiMzNDtwcy5jJiMzNDssCiAgICAmIzM0O3BzLmgmIzM0OywKICAgICYjMzQ7cmVnLmgmIzM0OywKICAgICYjMzQ7cmVnZC5jJiMzNDssCiAgICAmIzM0O3JlZ2QuaCYjMzQ7LAogICAgJiMzNDtydHc4NzAzYi5jJiMzNDssCiAgICAmIzM0O3J0dzg3MDNiLmgmIzM0OywKICAgICYjMzQ7cnR3ODcwM2JfdGFibGVzLmMmIzM0OywKICAgICYjMzQ7cnR3ODcwM2JfdGFibGVzLmgmIzM0OywKICAgICYjMzQ7cnR3ODcyM2NzLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2QuYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzZC5oJiMzNDssCiAgICAmIzM0O3J0dzg3MjNkX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2RfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4NzIzZGUuYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzZHMuYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzZHUuYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzeC5jJiMzNDssCiAgICAmIzM0O3J0dzg3MjN4LmgmIzM0OywKICAgICYjMzQ7cnR3ODgxMmEuYyYjMzQ7LAogICAgJiMzNDtydHc4ODEyYS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MTJhX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgxMmFfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4ODEyYXUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODE0YS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MTRhLmgmIzM0OywKICAgICYjMzQ7cnR3ODgxNGFfdGFibGUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODE0YV90YWJsZS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MTRhZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MTRhdS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFhLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWEuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIxYV90YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFhX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMWF1LmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWMuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxYy5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjFjX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWNfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIxY2UuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxY3MuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxY3UuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYi5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJiLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMmJfdGFibGUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYl90YWJsZS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjJiZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJicy5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJidS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmMuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIyY190YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMmNlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmNzLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmN1LmMmIzM0OywKICAgICYjMzQ7cnR3ODh4eGEuYyYjMzQ7LAogICAgJiMzNDtydHc4OHh4YS5oJiMzNDssCiAgICAmIzM0O3J4LmMmIzM0OywKICAgICYjMzQ7cnguaCYjMzQ7LAogICAgJiMzNDtzYXIuYyYjMzQ7LAogICAgJiMzNDtzYXIuaCYjMzQ7LAogICAgJiMzNDtzZGlvLmMmIzM0OywKICAgICYjMzQ7c2Rpby5oJiMzNDssCiAgICAmIzM0O3NlYy5jJiMzNDssCiAgICAmIzM0O3NlYy5oJiMzNDssCiAgICAmIzM0O3R4LmMmIzM0OywKICAgICYjMzQ7dHguaCYjMzQ7LAogICAgJiMzNDt1c2IuYyYjMzQ7LAogICAgJiMzNDt1c2IuaCYjMzQ7LAogICAgJiMzNDt1dGlsLmMmIzM0OywKICAgICYjMzQ7dXRpbC5oJiMzNDssCiAgICAmIzM0O3dvdy5jJiMzNDssCiAgICAmIzM0O3dvdy5oJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MjkxCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUlRMODgyMkMgRHJpdmVyIFVwZGF0ZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIGRyaXZlciBmaWxlczogYHVzYi5jYCwgYHJ0dzg4MjJjdS5jYCwgYHJ0dzg4MjJjZS5jYCwgYW5kIGBydHc4ODIyY3MuY2AuIFJpZ2h0IGF3YXksIGl0JiMzOTtzIGNsZWFyIHRoZSBSVEw4ODIyQyBjaGlwIGhhcyBVU0IsIFBDSWUsIGFuZCBTRElPIGltcGxlbWVudGF0aW9ucy4gSW50ZXJlc3RpbmcuIFRoZSBzcGVjaWZpYyBmaWxlIHRoYXQmIzM5O3MgYmVlbiBtb2RpZmllZCwgYHJ0dzg4MjJjLmNgLCBpcyB0aGUgY2VudHJhbCBjb3JlIGxvZ2ljIHNoYXJlZCBieSBhbGwgdGhlc2UgaW50ZXJmYWNlIHZhcmlhbnRzLiBHaXZlbiB0aGF0IGl0JiMzOTtzIGFjY2Vzc2libGUgdGhyb3VnaCBVU0IsIG15IGluaXRpYWwgdGhvdWdodCBpczogdGhpcyBpcyByaXBlIGZvciBmdXp6aW5nIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uIGluIHN5emthbGxlci4gVGhhdCYjMzk7cyB0aGUgaWRlYWwgYXBwcm9hY2ggaGVyZSB0byBzdHJlc3MgdGVzdCB0aGUgY29yZSBjaGlwIGZ1bmN0aW9uYWxpdHkuIE5vdywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgIGlzIGNhbGxlZCBmcm9tIOKAkyB0aGF0IHNlZW1zIGxpa2UgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGRpZ2dpbmcgZGVlcGVyIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4MjJjX2RhY19jYWxfcmZfbW9kZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yNDQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDAtXHRcdFx0XHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMzE9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9hZGMoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY4LVx0XHRydHdfd3JpdGUzMihydHdkZXYsIDB4MWMyNCwgMHgwMDAxMDAwMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY5Olx0XHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcdTAwMjZpYywgXHUwMDI2cWMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM3MC1cdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zODgtXHRcdHJ0d193cml0ZTMyKHJ0d2RldiwgMHgxYzNjLCBwYXRoX3NlbCAmIzQzOyAweDgxMDMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM4OTpcdFx0cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHJ0d2RldiwgXHUwMDI2aWMsIFx1MDAyNnFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zOTAtXHRcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDU0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ3MjpcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFx1MDAyNmljX2luLCBcdTAwMjZxY19pbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDczLVx0aWMgPSBpY19pbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NTAzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTUzLVx0cnR3X3dyaXRlMzIocnR3ZGV2LCBiYXNlX2FkZHIgJiM0MzsgMHg2MCwgMHhmMDAwMDAwMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTU0Olx0cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHJ0d2RldiwgXHUwMDI2aWMsIFx1MDAyNnFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01NTUtXHRpZiAoaWMgXHUwMDNlPSAweDEwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk2OTQKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiA5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipUcmFjaW5nIHRoZSBEQUMgQ2FsaWJyYXRpb24gRmxvdyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBydHc4ODIyY2AgZHJpdmVyIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgRGlnaXRhbC10by1BbmFsb2cgQ29udmVydGVyIChEQUMpIGNhbGlicmF0aW9uIHByb2Nlc3MuIEkmIzM5O3ZlIG5vdGljZWQgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCBpcyBhIGtleSBmdW5jdGlvbiBpbiB0aGlzIGNhbGlicmF0aW9uIHJvdXRpbmUuIFRoZSBpbnRlcmVzdGluZyBwYXJ0IGlzIHRoYXQgYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAgZ2V0cyBjYWxsZWQgZnJvbSBtdWx0aXBsZSBwb2ludHMgd2l0aGluIHRoZSBjYWxpYnJhdGlvbiBwcm9jZXNzIGl0c2VsZjogYHJ0dzg4MjJjX2RhY19jYWxfYWRjYCwgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDJgLCBhbmQgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDNgLgoKUmlnaHQgbm93LCBJJiMzOTttIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSBhbmQgZmxvdy4gU28sIEkgbmVlZCB0byBrbm93IHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3N0ZXAyYCBpcyBnZXR0aW5nIGNhbGxlZCBmcm9tLiBUaGF0IHdpbGwgZ2l2ZSBtZSBjb250ZXh0IG9uIHRoZSBzdXJyb3VuZGluZyBzdGVwcyBpbnZvbHZlZC4gQnkgdW5kZXJzdGFuZGluZyB3aGVyZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tLCBJIGNhbiBidWlsZCBhIG1lbnRhbCBtYXAgb2YgdGhlIGVudGlyZSBEQUMgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoaXMgd2lsbCBhbGxvdyBtZSB0byBwcm9wZXJseSBpZGVudGlmeSBhbnkgcG90ZW50aWFsIGlzc3Vlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHc4ODIyY19kYWNfY2FsX3N0ZXAyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQwOT1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXAxKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1NS1cdFx0XHRcdCAgIHU4IHBhdGgsIHUzMiAqaWNfb3V0LCB1MzIgKnFjX291dClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9ODgwPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2RhY19jYWwoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTAxLVx0XHRydHc4ODIyY19kYWNfY2FsX3N0ZXAxKHJ0d2RldiwgUkZfUEFUSF9BKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo5MDI6XHRcdHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIocnR3ZGV2LCBSRl9QQVRIX0EsIFx1MDAyNmljLCBcdTAwMjZxYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTAzLVx0XHRpY19hID0gaWM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkxNy1cdFx0cnR3ODgyMmNfZGFjX2NhbF9zdGVwMShydHdkZXYsIFJGX1BBVEhfQik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6OTE4Olx0XHRydHc4ODIyY19kYWNfY2FsX3N0ZXAyKHJ0d2RldiwgUkZfUEFUSF9CLCBcdTAwMjZpYywgXHUwMDI2cWMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkxOS1cdFx0aWNfYiA9IGljO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNjU0CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBxdWVzdGlvbjoKCioqVHJhY2luZyB0aGUgT3JpZ2lucyBvZiBgcnR3ODgyMmNfcmZfZGFjX2NhbGAqKgoKT2theSwgc28gSSYjMzk7bSBwcmVzZW50ZWQgd2l0aCBgcnR3ODgyMmNfcmZfZGFjX2NhbGAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBjYWxsaW5nIGNvbnRleHQuIFdoZXJlIGlzIHRoaXMgZnVuY3Rpb24gYmVpbmcgaW52b2tlZCBmcm9tPyBUaGF0JiMzOTtzIHRoZSBjb3JlIHF1ZXN0aW9uIGhlcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250cm9sIGZsb3csIHRoZSBzdXJyb3VuZGluZyBsb2dpYywgYW5kIHRoZSBkZXBlbmRlbmNpZXMuIElzIGl0IGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIGR1cmluZyBhY3RpdmUgb3BlcmF0aW9uLCBvciBwZXJoYXBzIGluIHJlc3BvbnNlIHRvIGEgc3BlY2lmaWMgZXZlbnQ/IERldGVybWluaW5nIHRoZSBjYWxsIHN0YWNrIGlzIHBhcmFtb3VudCB0byB1bmRlcnN0YW5kaW5nIGl0cyBwdXJwb3NlIGFuZCBwb3RlbnRpYWwgaW1wYWN0LiBJJiMzOTtsbCBuZWVkIHRvIHVzZSBteSB0eXBpY2FsIGRlYnVnZ2luZyB0b29scyBvciBjb2RlIG5hdmlnYXRpb24gdGVjaG5pcXVlcyDigJMgZGVwZW5kaW5nIG9uIHRoZSBwcm9qZWN0LiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBmdW5jdGlvbiBjYWxsIGFuZCBzZWUgd2hlcmUgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4MjJjX3JmX2RhY19jYWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9ODM5PXN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19jYWxfcmVzdG9yZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6ODgwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2RhY19jYWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04ODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xNzc1PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc3Olx0cnR3ODgyMmNfcmZfZGFjX2NhbChydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3NzgtXHRydHc4ODIyY19yZl94Ml9jaGVjayhydHdkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTI2MwoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgcXVlc3Rpb246CgoqKlRyYWNpbmcgdGhlIENhbGwgT3JpZ2luIG9mIGBydHc4ODIyY19yZl9pbml0YCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBgcnR3ODgyMmNfcmZfaW5pdGAgaXMgYmVpbmcgY2FsbGVkIGZyb20uIFRoaXMgZnVuY3Rpb24gaXMgcHJldHR5IGNydWNpYWwgaW4gdGhlIFJlYWx0ZWsgV2lGaSBkcml2ZXIgc3RhY2ssIGVzcGVjaWFsbHkgZm9yIHRoZSA4ODIyQyBjaGlwLCBzbyBrbm93aW5nIGl0cyBlbnRyeSBwb2ludCBpcyBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYW5kIHBvdGVudGlhbCBkZWJ1Z2dpbmcuIEkmIzM5O2xsIG5lZWQgdG8gcmV0cmFjZSB0aGUgY29kZSBleGVjdXRpb24gcGF0aC4gSSYjMzk7bSBhc3N1bWluZyB0aGF0IGl0JiMzOTtzIHBhcnQgb2YgdGhlIGdlbmVyYWwgZHJpdmVyIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLgoKRmlyc3QsIEkmIzM5O2Qgd2FudCB0byB1c2UgYSB0b29sIGxpa2UgYGdyZXBgIChvciBteSBJREUmIzM5O3Mgc2VhcmNoIGZ1bmN0aW9uKSB0byBzZWFyY2ggdGhlIGRyaXZlciBzb3VyY2UgdHJlZSBmb3IgYWxsIGluc3RhbmNlcyB3aGVyZSBgcnR3ODgyMmNfcmZfaW5pdGAgaXMgY2FsbGVkLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgbGlzdCBvZiBwb3RlbnRpYWwgY2FsbCBzaXRlcy4gVGhlbiwgSSYjMzk7ZCBuZWVkIHRvIGV4YW1pbmUgdGhvc2Ugc2l0ZXMsIGxvb2tpbmcgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBvZiB0aGUgY2FsbCBhbmQgd2hpY2ggZnVuY3Rpb25zIGFyZSBjYWxsaW5nIGl0LiBJJiMzOTtkIGxvb2sgZm9yIGZ1bmN0aW9uIHByb3RvdHlwZXMgb3IgZGVmaW5pdGlvbnMgYXNzb2NpYXRlZCB3aXRoIGluaXRpYWxpemF0aW9uLCBwcm9iaW5nIG9yIGRldmljZSBkZXRlY3Rpb24uCgpJJiMzOTtkIGFsc28gY29uc2lkZXIgdGhlIGJyb2FkZXIgZHJpdmVyIHN0cnVjdHVyZS4gRG9lcyB0aGlzIGRyaXZlciBmb2xsb3cgYSBzdGFuZGFyZCBwcm9iZS9hdHRhY2gvZGV0YWNoIG1vZGVsPyBJZiBzbywgYHJ0dzg4MjJjX3JmX2luaXRgIGxpa2VseSBmYWxscyBzb21ld2hlcmUgd2l0aGluIHRoZSAmIzM0O2F0dGFjaCYjMzQ7IHBoYXNlLCBhZnRlciB0aGUgaGFyZHdhcmUgaXMgcmVjb2duaXplZC4gR2l2ZW4gdGhhdCwgSSYjMzk7ZCB0cmFjZSBiYWNrIGZyb20gYW55IGF0dGFjaCBvciBpbml0aWFsaXphdGlvbiByZWxhdGVkIGZ1bmN0aW9ucywgbG9va2luZyB0byBzZWUgd2hpY2ggZnVuY3Rpb25zIGV2ZW50dWFsbHkgZW5kIHVwIGNhbGxpbmcgYHJ0dzg4MjJjX3JmX2luaXRgLgoKQmFzaWNhbGx5LCBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IHdpdGggdGhlIG9idmlvdXMgYW5kIHdvcmsgbXkgd2F5IG91dHdhcmQsIGZvbGxvd2luZyB0aGUgZnVuY3Rpb24gY2FsbCBncmFwaC4gSSYjMzk7bGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBhcmd1bWVudHMgYmVpbmcgcGFzc2VkIHRvIGBydHc4ODIyY19yZl9pbml0YCBhcyB3ZWxsLCBhcyB0aG9zZSB3b3VsZCBwcm92aWRlIGhpbnRzIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUgc3lzdGVtIGF0IHRoZSBwb2ludCBvZiB0aGUgY2FsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODgyMmNfcmZfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xNzYyPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RvX2dhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTgwMD1zdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTg0NjpcdHJ0dzg4MjJjX3JmX2luaXQocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xODQ3LVx0cnR3ODgyMmNfcHdydHJhY2tfaW5pdChydHdkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjEwMgoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgcXVlc3Rpb246CgoqKlBpbnBvaW50aW5nIHRoZSBPcmlnaW4gb2YgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIHRoZSBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGZyb20uIFRoYXQmIzM5O3MgdGhlIGNvcmUgcXVlc3Rpb24sIHJpZ2h0PyBJZGVudGlmeWluZyB0aGUgY2FsbCBzaXRlcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyBjb250ZXh0LCB0aGUgZGF0YSBpdCYjMzk7cyBvcGVyYXRpbmcgb24sIGFuZCBhbnkgcG90ZW50aWFsIHNpZGUgZWZmZWN0cy4gS25vd2luZyB0aGUgY2FsbGVyIGFsc28gaGVscHMgaW4gZGVidWdnaW5nIGFuZCBtb2RpZmljYXRpb24sIGFzIEkgY2FuIHRyYWNlIHRoZSBjYWxsIHN0YWNrIHRvIHNlZSB0aGUgc2VxdWVuY2Ugb2YgZXZlbnRzIGxlYWRpbmcgdXAgdG8gaXRzIGV4ZWN1dGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBJJiMzOTtsbCBuZWVkIHRvIHVzZSBzb21lIHRvb2xpbmcsIG1vc3QgbGlrZWx5IGEgY29kZSBzZWFyY2ggb3Igc3RhdGljIGFuYWx5c2lzIHRvb2wuIEkmIzM5O2QgdHlwaWNhbGx5IHN0YXJ0IGJ5IGdyZXBwaW5nIHRoZSBjb2RlYmFzZSBmb3IgdGhlIGZ1bmN0aW9uIG5hbWUgZGlyZWN0bHkuIEZyb20gdGhlcmUsIEkmIzM5O2QgZXhhbWluZSB0aGUgY2FsbCBzaXRlcy4gSSB3aWxsIGJlIGxvb2tpbmcgZm9yIGNvbW1vbiBwYXR0ZXJucy4gSXMgaXQgY2FsbGVkIHdpdGhpbiBhIHNwZWNpZmljIGRyaXZlciBjb21wb25lbnQsIGR1cmluZyBpbml0aWFsaXphdGlvbiwgb3IgaW4gcmVzcG9uc2UgdG8gc29tZSBraW5kIG9mIGV2ZW50PyBUaGUgY29udGV4dCB3aWxsIGJlIGtleS4gT25jZSBJIGxvY2F0ZSB0aGUgY2FsbHMsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzdXJyb3VuZGluZyBjb2RlIGluIG9yZGVyIHRvIHRydWx5IHVuZGVyc3RhbmQgdGhlIHJhdGlvbmFsZSBmb3IgdGhlIGZ1bmN0aW9uIGNhbGwsIGFuZCBob3cgdGhpcyBmdW5jdGlvbiBjYWxsIGlzIHJlbGF0ZWQgdG8gb3RoZXIgcm91dGluZXMgaW4gdGhlIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4MjJjX3BoeV9zZXRfcGFyYW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTc4ND1zdGF0aWMgdm9pZCBydHc4ODIyY19wd3J0cmFja19pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3OTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTgwMDpzdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTgwMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00ODk4LVx0LnBvd2VyX29mZlx0XHQ9IHJ0d19wb3dlcl9vZmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDg5OTpcdC5waHlfc2V0X3BhcmFtXHRcdD0gcnR3ODgyMmNfcGh5X3NldF9wYXJhbSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00OTAwLVx0LnJlYWRfZWZ1c2VcdFx0PSBydHc4ODIyY19yZWFkX2VmdXNlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjgxNgoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhbHRlayBQSFkgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIFJlYWx0ZWsgUEhZIGNvZGUuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGZ1bmN0aW9uLCBgcGh5X3NldF9wYXJhbWAsIGlzIHBhcnQgb2YgdGhlIGBydHdfY2hpcF9vcHNgIHN0cnVjdHVyZSwgd2hpY2ggbWFrZXMgc2Vuc2UuIEdpdmVuIGl0cyBuYW1pbmcsIEkmIzM5O20gZ3Vlc3NpbmcgdGhpcyBmdW5jdGlvbiYjMzk7cyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBjcml0aWNhbCBQSFkgcGFyYW1ldGVycy4gTXkgbmV4dCBzdGVwIGlzIHRvIHRyYWNlIHRoZSBjYWxsIHRvIGBwaHlfc2V0X3BhcmFtYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlbiB0aGlzIGlzIGJlaW5nIGludm9rZWQsIGFuZCBtb3JlIHNwZWNpZmljYWxseSwgZHVyaW5nIHdoaWNoIHN0YWdlcyBvZiB0aGUgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4gS25vd2luZyB3aGVyZSBpdCYjMzk7cyBjYWxsZWQgZHVyaW5nIHRoYXQgcHJvY2VzcyBzaG91bGQgcXVpY2tseSBnaXZlIG1lIGFuIG92ZXJ2aWV3IGFuZCBzb21lIGluc2lnaHRzIGludG8gaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BoeV9zZXRfcGFyYW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0xMzc0PWludCBydHdfcG93ZXJfb24oc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xNDEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MTQxMzpcdGNoaXAtXHUwMDNlb3BzLVx1MDAzZXBoeV9zZXRfcGFyYW0ocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE0MTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9ODYyPXN0cnVjdCBydHdfY2hpcF9vcHMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTg2OS1cdGludCAoKnJlYWRfZWZ1c2UpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICptYXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6ODcwOlx0dm9pZCAoKnBoeV9zZXRfcGFyYW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtODcxLVx0dm9pZCAoKnNldF9jaGFubmVsKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBjaGFubmVsLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYz01NTM9c3RhdGljIHZvaWQgcnR3ODcwM2JfcHdydHJhY2tfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYy01NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM6NTc4OnN0YXRpYyB2b2lkIHJ0dzg3MDNiX3BoeV9zZXRfcGFyYW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYy01Nzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYz0xODM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg3MDNiX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmMtMTg0My1cdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODcwM2JfcmVhZF9lZnVzZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYzoxODQ0Olx0LnBoeV9zZXRfcGFyYW1cdFx0PSBydHc4NzAzYl9waHlfc2V0X3BhcmFtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jLTE4NDUtXHQuc2V0X2NoYW5uZWxcdFx0PSBydHc4NzAzYl9zZXRfY2hhbm5lbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM9Njc9c3RhdGljIHZvaWQgcnR3ODcyM2RfcHdydHJhY2tfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy04NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYzo4NTpzdGF0aWMgdm9pZCBydHc4NzIzZF9waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYz0xMzkyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg3MjNkX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtMTM5NC1cdC5wb3dlcl9vZmZcdFx0PSBydHdfcG93ZXJfb2ZmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZC5jOjEzOTU6XHQucGh5X3NldF9wYXJhbVx0XHQ9IHJ0dzg3MjNkX3BoeV9zZXRfcGFyYW0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtMTM5Ni1cdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODcyM3hfcmVhZF9lZnVzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmM9OTE0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MTJhX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmMtOTE2LVx0LnBvd2VyX29mZlx0XHQ9IHJ0dzg4MTJhX3Bvd2VyX29mZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYzo5MTc6XHQucGh5X3NldF9wYXJhbVx0XHQ9IE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmMtOTE4LVx0LnJlYWRfZWZ1c2VcdFx0PSBydHc4OHh4YV9yZWFkX2VmdXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYz0yNjU9c3RhdGljIHZvaWQgcnR3ODgxNGFfY29uZmlnX2Nja19yeF9hbnRlbm5hX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jOjI4MzpzdGF0aWMgdm9pZCBydHc4ODE0YV9waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjg0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjA1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODE0YV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNTItXHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyMDUzOlx0LnBoeV9zZXRfcGFyYW1cdFx0PSBydHc4ODE0YV9waHlfc2V0X3BhcmFtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNTQtXHQucmVhZF9lZnVzZVx0XHQ9IHJ0dzg4MTRhX3JlYWRfZWZ1c2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jPTg2MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIxYV9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTg2Mi1cdC5wb3dlcl9vZmZcdFx0PSBydHc4ODIxYV9wb3dlcl9vZmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM6ODYzOlx0LnBoeV9zZXRfcGFyYW1cdFx0PSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTg2NC1cdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODh4eGFfcmVhZF9lZnVzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM9MTUxPXN0YXRpYyB2b2lkIHJ0dzg4MjFjX3BoeV9iZl9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYzoxNTg6c3RhdGljIHZvaWQgcnR3ODgyMWNfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE1OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jPTE2NTg9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMWNfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYy0xNjYwLVx0LnBvd2VyX29mZlx0XHQ9IHJ0d19wb3dlcl9vZmYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM6MTY2MTpcdC5waHlfc2V0X3BhcmFtXHRcdD0gcnR3ODgyMWNfcGh5X3NldF9wYXJhbSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYy0xNjYyLVx0LnJlYWRfZWZ1c2VcdFx0PSBydHc4ODIxY19yZWFkX2VmdXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYz0xNDU9c3RhdGljIHZvaWQgcnR3ODgyMmJfcGh5X2JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jOjE1MjpzdGF0aWMgdm9pZCBydHc4ODIyYl9waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMTUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MjE1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyYl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTIxNTItXHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoyMTUzOlx0LnBoeV9zZXRfcGFyYW1cdFx0PSBydHc4ODIyYl9waHlfc2V0X3BhcmFtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTIxNTQtXHQucmVhZF9lZnVzZVx0XHQ9IHJ0dzg4MjJiX3JlYWRfZWZ1c2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTE3ODQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfcHdydHJhY2tfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE4MDA6c3RhdGljIHZvaWQgcnR3ODgyMmNfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4MDEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00ODk2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjJjX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDg5OC1cdC5wb3dlcl9vZmZcdFx0PSBydHdfcG93ZXJfb2ZmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ4OTk6XHQucGh5X3NldF9wYXJhbVx0XHQ9IHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDkwMC1cdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODgyMmNfcmVhZF9lZnVzZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU5ODIKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA2MTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBXb3J0aCBvZiBGdXp6aW5nIHRoaXMgUmVhbHRlayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byB0b3VjaCB0aGUgaW5pdGlhbGl6YXRpb24gb3IgY2FsaWJyYXRpb24gcHJvY2VzcyB3aXRoaW4gdGhlIFJlYWx0ZWsgODgyMkNVIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aC4gSXQgYXBwZWFycyBgcnR3X3Bvd2VyX29uYCBjYWxscyBgY2hpcC0mZ3Q7b3BzLSZndDtwaHlfc2V0X3BhcmFtYCwgd2hpY2ggaXMgdHJpZ2dlcmVkIGR1cmluZyBkZXZpY2UgYnJpbmctdXAsIGluaXRpYXRlZCBieSBgcnR3X2NvcmVfc3RhcnRgLCBhbmQgdWx0aW1hdGVseSwgYHJ0d19tYWM4MDIxMV9zdGFydGAuIFRoYXQgbWVhbnMgaXQmIzM5O3MgcnVubmluZyBkdXJpbmcgdGhlIG5vcm1hbCBpbml0aWFsaXphdGlvbiBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFNpbmNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB0aGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGZ1enppbmcgcG90ZW50aWFsLgoKVGhlIHByb21wdCBpcyBtYWtpbmcgbWUgdGhpbmsgYWJvdXQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBidXQgdGhpcyBzZWVtcyBhY2hpZXZhYmxlIHZpYSBVU0IgZ2FkZ2V0IGZ1enppbmcuIFRoZSBrZXkgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIGNvZGUgcGF0aCBpcyByZWFjaGFibGUgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXImIzM5O3MgVVNCIGZ1enplci4gQW5kIHRoZSBhbnN3ZXIgaXMgbGlrZWx5IHllcyEgSWYgc3l6a2FsbGVyIGlzIGFibGUgdG8gZ2VuZXJhdGUgVVNCIGRlc2NyaXB0b3JzIHRoYXQgbWF0Y2ggdGhlIFZJRC9QSUQgb2YgYSBSZWFsdGVrIDg4MjJDVSBkZXZpY2UsIHRoZSBgcnR3ODhfODgyMmN1YCBkcml2ZXIgd2lsbCBiaW5kIGFuZCBwcm9iZSwgY2F1c2luZyBgcnR3X2NvcmVfaW5pdGAgYW5kIGBydHdfY29yZV9zdGFydGAgdG8gZXhlY3V0ZS4gVGhlIFVTQiBmdXp6ZXIgY291bGQgZGVmaW5pdGVseSB0cmlnZ2VyIHRoZSBwcm9iZSBhbmQgdGhlIHJlZ2lzdGVyIHJlYWRzLCBlc3BlY2lhbGx5IGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBgcnR3X3JlYWQzMmAuIGBydHdfcmVhZDMyYCBpcyBjcml0aWNhbCBoZXJlOyB0aGUgZnV6emVyIGNvbnRyb2xzIHRoZSByZXR1cm4gdmFsdWVzIGJlY2F1c2UgaXQmIzM5O3MgZW11bGF0aW5nIHRoZSBkZXZpY2UsIHdoaWNoIG1ha2VzIHRoZSBwYXRjaCBpbnRlcmVzdGluZy4KClRoZSBwYXRjaCBhbHRlcnMgdGhlIHNvcnRpbmcgbG9naWMgYW5kIHRoZSBvZmZzZXQgY2FsY3VsYXRpb24gd2l0aGluIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAsIHNwZWNpZmljYWxseSB0aGUgYWxnb3JpdGhtIHVzZWQgZm9yIGNhbGN1bGF0aW5nIHRoZSBJUSBvZmZzZXQsIGNoYW5naW5nIGZyb20gYSBjdXN0b20gYnViYmxlIHNvcnQgdG8gYHNvcnQoKWAsIGFuZCBjaGFuZ2luZyB0eXBlcyBmcm9tIGB1MzJgIHRvIGBzMzJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UuIEl0JiMzOTtzIG5vdCBqdXN0IGEgcmVmYWN0b3Jpbmc7IGl0JiMzOTtzIGNoYW5naW5nICpob3cqIHRoZSBkcml2ZXIgY2FsY3VsYXRlcyB0aGUgSVEgb2Zmc2V0IGR1cmluZyBpbml0aWFsaXphdGlvbiBvciBjYWxpYnJhdGlvbi4gVGhlIGNvZGUgYWNjZXNzZXMgYW5kIG1vZGlmaWVzIHRoZSB2YWx1ZXMgcmVhZCB1c2luZyBgcnR3X3JlYWQzMmAuIFRoaXMgc2VlbXMgbGlrZSBhIGdyZWF0IGNhbmRpZGF0ZSBmb3IgZnV6emluZywgZ2l2ZW4gdGhhdCBhIGZ1enplciBlbXVsYXRpbmcgdGhlIFVTQiBkZXZpY2UgY2FuIGNvbnRyb2wgdGhlIGRhdGEgcHJvdmlkZWQgdG8gdGhlIGRyaXZlci4KCk5vdywgdG8gYmUgY29tcGxldGVseSB0aG9yb3VnaCwgbGV0JiMzOTtzIHZlcmlmeSBhbnkgcmVsZXZhbnQgS2NvbmZpZyBvcHRpb25zIHRvIGJlIHN1cmUuIEkmIzM5O2xsIG5lZWQgdG8gbG9jYXRlIHRoZSBLY29uZmlnIGVudHJpZXMgZm9yIHRoZSBgcnR3ODhgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciB0aGUgYHJ0dzg4MjJjYCB2YXJpYW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExPWlmIFJUVzg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTM6Y29uZmlnIFJUVzg4X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE3OmNvbmZpZyBSVFc4OF9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjA6Y29uZmlnIFJUVzg4X1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMS1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNjpjb25maWcgUlRXODhfODgyMkJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6Mjk6Y29uZmlnIFJUVzg4Xzg4MjJDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzAtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OF84NzIzWFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMzLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzozNTpjb25maWcgUlRXODhfODcwM0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNi1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM5OmNvbmZpZyBSVFc4OF84NzIzRFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQwLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDM6Y29uZmlnIFJUVzg4Xzg4MjFDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDQtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ2OmNvbmZpZyBSVFc4OF84OFhYQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQ3LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0OTpjb25maWcgUlRXODhfODgyMUFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01MC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjUzOmNvbmZpZyBSVFc4OF84ODEyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU0LVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NTc6Y29uZmlnIFJUVzg4Xzg4MTRBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTgtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYwOmNvbmZpZyBSVFc4OF84ODIyQkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy02MS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NzE6Y29uZmlnIFJUVzg4Xzg4MjJCU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTcyLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQlMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6ODI6Y29uZmlnIFJUVzg4Xzg4MjJCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy05Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5Mzpjb25maWcgUlRXODhfODgyMkNFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOTQtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMDQ6Y29uZmlnIFJUVzg4Xzg4MjJDU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwNS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMTU6Y29uZmlnIFJUVzg4Xzg4MjJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyNjpjb25maWcgUlRXODhfODcyM0RFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTI3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTM3OmNvbmZpZyBSVFc4OF84NzIzRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNEUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTQ4OmNvbmZpZyBSVFc4OF84NzIzQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTYyOmNvbmZpZyBSVFc4OF84NzIzRFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNjMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzM6Y29uZmlnIFJUVzg4Xzg4MjFDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE4NDpjb25maWcgUlRXODhfODgyMUNTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ1MgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NTpjb25maWcgUlRXODhfODgyMUNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk2LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjA2OmNvbmZpZyBSVFc4OF84ODIxQVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDctXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFBVS84ODExQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjE3OmNvbmZpZyBSVFc4OF84ODEyQVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjg6Y29uZmlnIFJUVzg4Xzg4MTRBRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyOS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIzOTpjb25maWcgUlRXODhfODgxNEFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODE0QVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjUwOmNvbmZpZyBSVFc4OF9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OCBkZWJ1ZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTg6Y29uZmlnIFJUVzg4X0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNTktXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNjY6Y29uZmlnIFJUVzg4X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjctXHRib29sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwMzA5CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqQW5hbHl6aW5nIFJUVzg4IENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqCgpBbHJpZ2h0LCBzbyB0aGUgY3VycmVudCBvcHRpb25zIHdlJiMzOTtyZSB3b3JraW5nIHdpdGggYXJlIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhhdCBzcGVjaWZpYyBgUlRXODhfODgyMkNVYCB2YXJpYXRpb24uIEdpdmVuIHRoZSB1c3VhbCBjb25maWd1cmF0aW9uIGNvbXBsZXhpdGllcyBhbmQgcG90ZW50aWFsIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlc2UgZHJpdmVycywgaXQmIzM5O3MgZXNzZW50aWFsIHRvIG1ldGljdWxvdXNseSB2ZXJpZnkgd2hhdCAqUlRXODhfODgyMkNVKiByZWxpZXMgdXBvbi4gVGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQuIFdlIGNhbiYjMzk7dCBhZmZvcmQgdG8gbWlzcyBhbnl0aGluZyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIGZvciB0aGF0IHNwZWNpZmljIG1vZHVsZS4gR2V0dGluZyBhIGNsZWFyIGRlcGVuZGVuY3kgcGljdHVyZSB3aWxsIGJlIHRoZSBmaXJzdCBhbmQgbW9zdCBjcml0aWNhbCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODhfODgyMkNVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTEwND1jb25maWcgUlRXODhfODgyMkNTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMTU6Y29uZmlnIFJUVzg4Xzg4MjJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA2OTMKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZCwgZ2VhcmVkIHRvd2FyZCBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBmcm9tIGEgZmlyc3QtcGVyc29uIHBlcnNwZWN0aXZlOgoKKipSVFc4OF84ODIyQ1U6IERlZXAgRGl2ZSAmYW1wOyBTdHJhdGVneSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgcHVsbCB1cCB0aGF0IGZ1bGwgYmxvY2sgb2YgY29kZSBmb3IgdGhlIGBSVFc4OF84ODIyQ1VgIGRyaXZlci4gSSBuZWVkIHRvIGdldCBhIHJlYWxseSBnb29kIGdyYXNwIG9mIHRoaXMuIEZpcnN0LCBJJiMzOTttIGdvaW5nIHRvIHNjYW4gdGhlIG1haW4gZW50cnkgcG9pbnRzLCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIHByb2JlIGZ1bmN0aW9ucy4gSSYjMzk7bSBsb29raW5nIGZvciB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUgLSBob3cgdGhleSYjMzk7cmUgaGFuZGxpbmcgaGFyZHdhcmUgYWJzdHJhY3Rpb24sIGludGVycnVwdCBoYW5kbGluZywgYW5kIHdoYXQga2luZCBvZiBwb3dlciBtYW5hZ2VtZW50IGhvb2tzIHRoZXnigJl2ZSBwdXQgaW4gcGxhY2UuIEFyZSB0aGV5IHVzaW5nIHRoZSBzdGFuZGFyZCByZWd1bGF0b3J5IGRvbWFpbiBpbnRlcmZhY2VzIGNvcnJlY3RseT8gQW55IGRldmlhdGlvbnM/IEFueSBjdXN0b20gbWVjaGFuaXNtcyBJIHNob3VsZCBiZSBhd2FyZSBvZj8KClRoZW4sIEkmIzM5O2xsIGhvbmUgaW4gb24gdGhlIGltcG9ydGFudCBkYXRhIHN0cnVjdHVyZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGV5JiMzOTtyZSByZXByZXNlbnRpbmcgdGhlIGhhcmR3YXJlIHN0YXRlIOKAkyB0aGUgcmVnaXN0ZXJzLCB0aGUgY29uZmlndXJhdGlvbiwgdGhlIG9wZXJhdGlvbmFsIHBhcmFtZXRlcnMuIEFyZSB0aGV5IGVtcGxveWluZyBhbnkgY2xldmVyIG1lbW9yeSBtYXBwaW5nIHRlY2huaXF1ZXMgb3IgZGlyZWN0IHJlZ2lzdGVyIGFjY2Vzcz8gQW55IHVudXN1YWwgdXNlIG9mIERNQSBvciBzb3BoaXN0aWNhdGVkIGJ1ZmZlcmluZyBzdHJhdGVnaWVzPyBJJiMzOTttIGhvcGluZyB0byBxdWlja2x5IGlkZW50aWZ5IGFueSBwb3RlbnRpYWwgYm90dGxlbmVja3Mgb3IgYXJlYXMgZm9yIG9wdGltaXphdGlvbi4KCk5leHQsIEkmIzM5O2xsIGRpdmUgaW50byB0aGUgaW50ZXJydXB0IGhhbmRsZXJzLiBUaGF0JiMzOTtzIHVzdWFsbHkgd2hlcmUgdGhlIHJlYWwtdGltZSBjb25zdHJhaW50cyBhcmUgZ29pbmcgdG8gc3VyZmFjZS4gSG93IGFyZSB0aGV5IHByaW9yaXRpemluZyBpbnRlcnJ1cHRzPyBBcmUgdGhleSB1c2luZyBib3R0b20taGFsdmVzIGVmZmVjdGl2ZWx5PyBIb3cgYXJlIHRoZXkgaGFuZGxpbmcgc2hhcmVkIGludGVycnVwdHMsIGlmIGF0IGFsbD8gSSBuZWVkIHRvIGFuYWx5emUgdGhlIGludGVycnVwdCBsYXRlbmN5IHRvIGtub3cgaWYgaXQgY2FuIHN1cHBvcnQgbXkgdXNlIGNhc2VzLiBBcmUgdGhlcmUgYW55IGNvbnRlbnRpb24gaXNzdWVzIEkgc2hvdWxkIGxvb2sgb3V0IGZvcj8KCkFmdGVyIHRoYXQsIEkmIzM5O2xsIHRyYWNlIHRocm91Z2ggdGhlIGtleSBkYXRhIHBhdGhzOiB0aGUgVFggcGF0aCwgdGhlIFJYIHBhdGgsIGFuZCB0aGUgbWFuYWdlbWVudCBmcmFtZSBwcm9jZXNzaW5nLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkmIzM5O3JlIG1hbmFnaW5nIHBhY2tldCBxdWV1ZXMsIGZsb3cgY29udHJvbCwgYW5kIGFueSBmcmFnbWVudGF0aW9uL3JlYXNzZW1ibHkuIEFyZSB0aGV5IGRvaW5nIGFueSBwZXItcGFja2V0IG9wdGltaXphdGlvbnMsIG9yIGlzIGl0IG1vcmUgb2YgYSAmIzM0O29uZS1zaXplLWZpdHMtYWxsJiMzNDsgYXBwcm9hY2g/IFdoYXQgYWJvdXQgb2ZmbG9hZGluZyAtIGFueSBoYXJkd2FyZSBvZmZsb2FkIGNhcGFiaWxpdGllcz8KCkZpbmFsbHksIEkmIzM5O2xsIGxvb2sgaW50byBwb3dlciBtYW5hZ2VtZW50LiBIb3cgYXJlIHRoZXkgcmVzcG9uZGluZyB0byBwb3dlciBzdGF0ZSBjaGFuZ2VzPyBBcmUgdGhleSB1c2luZyB0aGUgc3RhbmRhcmQgUE0gQVBJcyBjb3JyZWN0bHksIG9yIGFyZSB0aGVyZSBhbnkgY3VzdG9tIHBvd2VyLXNhdmluZyBtZWNoYW5pc21zPyBJJiMzOTtsbCBhc3Nlc3MgdGhlIGNsb2NrIGdhdGluZyBhbmQgcG93ZXIgZG9tYWluIG1hbmFnZW1lbnQuIEFyZSB0aGV5IGFnZ3Jlc3NpdmUgZW5vdWdoIGluIHJlZHVjaW5nIHBvd2VyIGNvbnN1bXB0aW9uIHdoZW4gaWRsZT8KClRoZSBlbmQgZ29hbCBpcyB0byBnZXQgYSByZWFsbHkgZ29vZCBoYW5kbGUgb24gaXRzIGFyY2hpdGVjdHVyZSwgaXRzIHBvdGVudGlhbCB3ZWFrbmVzc2VzLCBhbmQgaWRlbnRpZnkgYW55IGFyZWFzIHdoZXJlIEkgY2FuIG1ha2UgaW1wcm92ZW1lbnRzIG9yIG1vZGlmaWNhdGlvbnMuIEFsc28sIEkgd2lsbCBiZSBvbiB0aGUgbG9va291dCB0byBzZWUgaWYgdGhpcyBjb2RlIGlzIGEgZ29vZCBiYXNlIGZvciBteSBwcm9qZWN0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDExMDpcdFx0aGVscFxuIDExMTpcdFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgODgyMkNTIGNoaXBzZXRcbiAxMTI6XHRcbiAxMTM6XHRcdCAgODAyLjExYWMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcbiAxMTQ6XHRcbiAxMTU6XHRjb25maWcgUlRXODhfODgyMkNVXG4gMTE2Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4gMTE3Olx0XHRkZXBlbmRzIG9uIFVTQlxuIDExODpcdFx0c2VsZWN0IFJUVzg4X0NPUkVcbiAxMTk6XHRcdHNlbGVjdCBSVFc4OF9VU0JcbiAxMjA6XHRcdHNlbGVjdCBSVFc4OF84ODIyQ1xuIDEyMTpcdFx0aGVscFxuIDEyMjpcdFx0ICBTZWxlY3QgdGhpcyBvcHRpb24gd2lsbCBlbmFibGUgc3VwcG9ydCBmb3IgODgyMkNVIGNoaXBzZXRcbiAxMjM6XHRcbiAxMjQ6XHRcdCAgODAyLjExYWMgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxuIDEyNTpcdFxuIDEyNjpcdGNvbmZpZyBSVFc4OF84NzIzREVcbiAxMjc6XHRcdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0RFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbiAxMjg6XHRcdGRlcGVuZHMgb24gUENJXG4gMTI5Olx0XHRzZWxlY3QgUlRXODhfQ09SRVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTU4NAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDYxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYFJUVzg4Xzg4MjJDVWAgRHJpdmVyIERlcGVuZGVuY2llcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgUlRXODhfODgyMkNVYCBkcml2ZXIuIEl0JiMzOTtzIHRoZSBvbmUgSSBuZWVkIHRvIGZvY3VzIG9uLiBSaWdodCwgaXQgbG9va3MgbGlrZSBpdCBkZXBlbmRzIGRpcmVjdGx5IG9uIHRoZSBgVVNCYCBzdWJzeXN0ZW0uIE1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgYENVYCBpbiB0aGUgbmFtZSBwcm9iYWJseSBpbXBsaWVzIGEgVVNCIGludGVyZmFjZS4gTm93LCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBsb29rIGF0IHRoZSBiaWdnZXIgcGljdHVyZS4gVGhlIHBhcmVudCBjb25maWcsIGBSVFc4OGAsIHRoYXQgKnRoaXMqIHNwZWNpZmljIGRyaXZlciBpcyBwYXJ0IG9mLCBkZXBlbmRzIG9uIGJvdGggYE1BQzgwMjExYCBhbmQgYFdMQU5gLiBUaGF0JiMzOTtzIHN0YW5kYXJkIGZvciB3aXJlbGVzcyBkcml2ZXJzLCBvZiBjb3Vyc2UuIE5vdywgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIgSSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgYFJUVzg4YCBpdHNlbGYgaXMgY29tcGxldGVseSBzb3VuZC4gQmV0dGVyIHRvIGJlIHRob3JvdWdoLCBJJiMzOTtsbCBjaGVjayAqdGhvc2UqIGRlcGVuZGVuY2llcyBuZXh0LiBNYWtlIHN1cmUgZXZlcnl0aGluZyYjMzk7cyBpbiBvcmRlciwgYXZvaWQgc3VycHJpc2VzLCBhbmQgYWxsIHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0bWVudWNvbmZpZyBSVFc4OFxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgbWFjODAyMTEtYmFzZWQgd2lyZWxlc3MgZHJpdmVycyB0aGF0XG4gICA3Olx0XHQgIGVuYWJsZXMgUmVhbHRlayBJRUVFIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzZXRzLlxuICAgODpcdFxuICAgOTpcdFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCYjMzk7bGwgYmUgY2FsbGVkIHJ0dzg4LlxuICAxMDpcdFxuICAxMTpcdGlmIFJUVzg4XG4gIDEyOlx0XG4gIDEzOlx0Y29uZmlnIFJUVzg4X0NPUkVcbiAgMTQ6XHRcdHRyaXN0YXRlXG4gIDE1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgUlRXODhfUENJXG4gIDE4Olx0XHR0cmlzdGF0ZVxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBSVFc4OF9TRElPXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMTU0CgkJCQkJCQlvdXRwdXQ6IDcyCgkJCQkJCQl0aG91Z2h0czogNDkzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBDb25maWd1cmF0aW9uIGFuZCBTeW1ib2wgSW5jbHVzaW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXIuIFRoZSBjb25maWdzIEkgbmVlZCB0byBmb2N1cyBvbiBmb3IgZW5hYmxpbmcgYXJlIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgLiBFYXN5IGVub3VnaCwgYW5kIEkgbmVlZCB0byByZW1lbWJlciB0byAqbm90KiBpbmNsdWRlIHRoZSAmIzM0O0NPTkZJR18mIzM0OyBwcmVmaXgsIHNvIGp1c3QgdGhlIHJhdyBuYW1lcyBhcmUgd2hhdCYjMzk7cyBnb2luZyBpbiB0aGUgb3V0cHV0IGFycmF5LiBgTUFDODAyMTFgIGFuZCBgV0xBTmAgYXJlIHN0YW5kYXJkLCB0aG9zZSBhcmUgb3V0LgoKTm93LCBJJiMzOTt2ZSBnb3QgdG8gZGV0ZXJtaW5lIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgbGlzdGVkIGluIGBGb2N1c1N5bWJvbHNgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBhbmQgYHJ0dzg4MjJjX2RhY19pcV9vZmZzZXRgLiBXYWl0LCBob2xkIG9uLiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHN0YXRpYyBhbmQgdGhhdCYjMzk7cyBub3Qgd2hhdCBJIHdhbnQuIFRoZSBpbnN0cnVjdGlvbnMgYXJlIHNwZWNpZmljOiBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgYXJlIHByZWZlcnJlZC4gU28gSSBuZWVkIHRvIHRyYWNlIGJhY2sgZnJvbSB0aGF0IHN0YXRpYyBoZWxwZXIuCgpPa2F5LCBsZXQmIzM5O3Mgc2VlLiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIGNhbGxlZCBieSBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCwgd2hpY2ggaXMgKmFsc28qIHN0YXRpYy4gSXQgc2VlbXMgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCBpcyBjYWxsZWQgYnkgYHJ0dzg4MjJjX2RhY19jYWxfYWRjYCwgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDJgLCBhbmQgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDNgLiBUaGVzZSBhcmUgYWxsIGNhbGxlZCBieSBgcnR3ODgyMmNfcmZfZGFjX2NhbGAuIGBydHc4ODIyY19yZl9kYWNfY2FsYCBpcyBpbiB0dXJuIGNhbGxlZCBieSBgcnR3ODgyMmNfcmZfaW5pdGAuIFRoZW4sIGZpbmFsbHksIGBydHc4ODIyY19yZl9pbml0YCBpcyBjYWxsZWQgYnkgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gLgoKT2theSwgc28gYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gIGlzIGFsc28gc3RhdGljLCBidXQgaXQgKmlzKiBhc3NpZ25lZCB0byBgLnBoeV9zZXRfcGFyYW1gIGluIGBydHc4ODIyY19vcHNgLiBUaGlzIGlzIG1ha2luZyBtZSB0aGluayB0aGVyZSYjMzk7cyBhIG5vbi1zdGF0aWMgZnVuY3Rpb24gZGVlcGVyIHdpdGhpbiBgcnR3ODgyMmMuY2AgdGhhdCBoYW5kbGVzIHRoaXMuCgpUaW1lIHRvIGdvIGNoZWNrIGBydHc4ODIyYy5jYCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDteKFthLXpfMC05XSYjNDM7ICkmIzQzO3J0dzg4MjJjX1thLXpfMC05XSYjNDM7XFwoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2NDEgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNDpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNS1cdFx0XHRcdCAgICAgdTggcnhfcGF0aCwgYm9vbCBpc190eDJfcGF0aCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM5PXN0YXRpYyB2b2lkIHJ0dzg4MjJjc19lZnVzZV9wYXJzaW5nKHN0cnVjdCBydHdfZWZ1c2UgKmVmdXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTpzdGF0aWMgaW50IHJ0dzg4MjJjX3JlYWRfZWZ1c2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmxvZ19tYXApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo4OTpzdGF0aWMgdm9pZCBydHc4ODIyY19oZWFkZXJfZmlsZV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgcHJlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEwMjpzdGF0aWMgdm9pZCBydHc4ODIyY19iYl9yZXNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2JhY2t1cF9yZWcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMTAtXHRcdFx0XHQgICAgc3RydWN0IHJ0d19iYWNrdXBfaW5mbyAqYmFja3VwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTM4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19yZXN0b3JlX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEzOS1cdFx0XHRcdCAgICAgc3RydWN0IHJ0d19iYWNrdXBfaW5mbyAqYmFja3VwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTU3OnN0YXRpYyBpbnQgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTY2OnN0YXRpYyB1MzIgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKnZlYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNjcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTc4OnN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxOTc6c3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF9yZWFkX2FkZHIodTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xOTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjE2OnN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgdmFsdWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIyNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKml2LCBzMzIgKnF2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNDQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDUtXHRcdFx0XHQgICAgICAgczMyICppdiwgczMyICpxdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDAtXHRcdFx0XHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzE1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19iYl9zZXR0aW5nKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMzMTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2FkYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzMi1cdFx0XHRcdCB1OCBwYXRoLCB1MzIgKmFkY19pYywgdTMyICphZGNfcWMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0MDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQxMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1NS1cdFx0XHRcdCAgIHU4IHBhdGgsIHUzMiAqaWNfb3V0LCB1MzIgKnFjX291dClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUwMzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXAzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTA0LVx0XHRcdFx0ICAgdTMyIGFkY19pYywgdTMyIGFkY19xYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjU4MDpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXA0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTgxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTg5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjU5MDpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cF92ZWMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01OTEtXHRcdFx0XHRcdHU4IHBhdGgsIHU4IHZlYywgdTMyIHdfYWRkciwgdTMyIHJfYWRkcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjYwNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjA4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjYyNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cF9kY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02Mjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02NTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NjUxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfYmFja3VwKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjY4MTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmVfZGNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjgyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNzEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjcxMTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmVfcHJlcGFyZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTcxMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo3NjQ6c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2NhbF9yZXN0b3JlX3dhaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy03NjUtXHRcdFx0XHRcdCAgdTMyIHRhcmdldF9hZGRyLCB1MzIgdG9nZ2xlX2FkZHIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo3ODE6c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2NhbF9yZXN0b3JlX3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy03ODIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz04Mjg9c3RhdGljIGJvb2wgX19ydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtODM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjgzOTpzdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04NDAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6ODgwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2RhY19jYWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04ODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy05NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6OTQ3OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX3gyX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTQ4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjk2MTpzdGF0aWMgdm9pZCBydHc4ODIyY19zZXRfcG93ZXJfdHJpbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzOCBiYl9nYWluWzJdWzhdKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk2Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo5OTM6c3RhdGljIHZvaWQgcnR3ODgyMmNfcG93ZXJfdHJpbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTAzMDpzdGF0aWMgdm9pZCBydHc4ODIyY190aGVybWFsX3RyaW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMDMxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTA0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMDQ4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3BhX2JpYXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMDQ5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTA2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMDcwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3Jma19oYW5kc2hha2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgYm9vbCBpc19iZWZvcmVfaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMDcxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTExNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTE2OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3Jma19wb3dlcl9zYXZlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTExNy1cdFx0XHRcdCAgICBib29sIGlzX3Bvd2VyX3NhdmUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTEyODpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfYmFja3VwX2JiX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBjb25zdCB1MzIgcmVnW10sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTEyOS1cdFx0XHRcdFx0ICB1MzIgcmVnX2JhY2t1cFtdLCB1MzIgcmVnX251bSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTQxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19yZWxvYWRfYmJfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE0Mi1cdFx0XHRcdFx0ICBjb25zdCB1MzIgcmVnW10sIHUzMiByZWdfYmFja3VwW10sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTExNTQ9c3RhdGljIGJvb2wgY2hlY2tfcmZfc3RhdHVzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHN0YXR1cylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTY5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa190eF9wYXVzZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExNzAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjExODU6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2JiX2RwayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExODYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMjE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEyMTc6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2FmZV9kcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMjE4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTI1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMjUzOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19hZmVfZHBrX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMjU0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTI4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMjg2OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19iYl9kcGtfcmVzdG9yZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyODcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xMzM1PXN0YXRpYyB2b2lkIF9ydHc4ODIyY190eGdhcGtfd3JpdGVfZ2Fpbl9iYl90YWJsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMzg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEzODk6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3dyaXRlX2dhaW5fYmJfdGFibGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMzkwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTQwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNDA0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19yZWFkX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE0MDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE0ODE6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2NhbGN1bGF0ZV9vZmZzZXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDgyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTU1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNTU1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19yZl9yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTU1Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTU2NzpzdGF0aWMgdTMyIHJ0dzg4MjJjX3R4Z2Fwa19jYWxfZ2FpbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgZ2Fpbiwgczggb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1Njgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE1OTE6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3dyaXRlX3R4X2dhaW4oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTkyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTY2MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNjYxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19zYXZlX2FsbF90eF9nYWluX3RhYmxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTY2Mi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3MTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTcyMDpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzIxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzYyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RvX2dhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzYzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzg0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzg1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc5OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxODAwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xODAxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTk0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxOTQxOnN0YXRpYyBpbnQgcnR3ODgyMmNfbWFjX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xOTQyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MjA4ND1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19md2NkX3NlZ3MgcnR3ODgyMmNfZndjZF9zZWdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMDg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIwODk6c3RhdGljIGludCBydHc4ODIyY19kdW1wX2Z3X2NyYXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjA5MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIxMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjExNzpzdGF0aWMgdm9pZCBydHc4ODIyY19yc3RiXzN3aXJlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIxMTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIxMjg6c3RhdGljIHZvaWQgcnR3ODgyMmNfc2V0X2NoYW5uZWxfcmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggY2hhbm5lbCwgdTggYncpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjEyOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIxOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjE5NDpzdGF0aWMgdm9pZCBydHc4ODIyY190b2dnbGVfaWdpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE5NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIyMDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjIwNTpzdGF0aWMgdm9pZCBydHc4ODIyY19zZXRfY2hhbm5lbF9iYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMjA2LVx0XHRcdFx0ICAgIHU4IHByaW1hcnlfY2hfaWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIzNjM6c3RhdGljIHZvaWQgcnR3ODgyMmNfc2V0X2NoYW5uZWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggY2hhbm5lbCwgdTggYncsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM2NC1cdFx0XHRcdCB1OCBwcmltYXJ5X2NoYW5faWR4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIzNzI6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29uZmlnX2Nja19yeF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHJ4X3BhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM3My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTIzODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjM5MDpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfb2ZkbV9yeF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHJ4X3BhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM5MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0MDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQxMDpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfcnhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCByeF9wYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0MTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI0MTY6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29uZmlnX2Nja190eF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHR4X3BhdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQxNy1cdFx0XHRcdFx0Ym9vbCBpc190eDJfcGF0aClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNDMyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ19vZmRtX3R4X3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDMzLVx0XHRcdFx0XHQgZW51bSBydHdfYmJfcGF0aCB0eF9wYXRoX3NlbF8xc3MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQ1NjpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB0eF9wYXRoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NTctXHRcdFx0XHQgICAgZW51bSBydHdfYmJfcGF0aCB0eF9wYXRoX3NlbF8xc3MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQ2NjpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDY3LVx0XHRcdFx0ICAgICB1OCByeF9wYXRoLCBib29sIGlzX3R4Ml9wYXRoKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yNjMxPXJ0dzg4MjJjX3NldF93cml0ZV90eF9wb3dlcl9yZWYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKnR4X3B3cl9yZWZfY2NrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI2NTE6c3RhdGljIHZvaWQgcnR3ODgyMmNfc2V0X3R4X3Bvd2VyX2RpZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcmF0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjUyLVx0XHRcdFx0ICAgICAgIHM4ICpkaWZmX2lkeClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjY3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNjczOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3NldF90eF9wb3dlcl9pbmRleChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI2NzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI3MDY6c3RhdGljIGludCBydHc4ODIyY19zZXRfYW50ZW5uYShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI3MDctXHRcdFx0XHRpbnQgcmFkaW9faWR4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI3NDE6c3RhdGljIHZvaWQgcnR3ODgyMmNfY2ZnX2xkbzI1KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI3NDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI3NTA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZmFsc2VfYWxhcm1fc3RhdGlzdGljcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI3NTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yODE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI4MjA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZG9fbGNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjgyMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI4MzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjg0MDpzdGF0aWMgdm9pZCBydHc4ODIyY19kb19pcWsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yODQxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg1Ny0vKiBmb3IgY29leCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI4NTg6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI4NTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yODg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI4ODc6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfZ250X2ZpeChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI4ODgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yOTY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5NjY6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfZ250X2RlYnVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk2Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjk3NTpzdGF0aWMgdm9pZCBydHc4ODIyY19jb2V4X2NmZ19yZmVfdHlwZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5NzYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yOTk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTg6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfd2xfdHhfcG93ZXIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggd2xfcHdyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5OTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwMDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfd2xfcnhfZ2FpbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGxvd19nYWluKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDM4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwMzk6c3RhdGljIHZvaWQgcnR3ODgyMmNfYmZfZW5hYmxlX2JmZWVfc3Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDQwLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBydHdfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzA1OTpzdGF0aWMgdm9pZCBydHc4ODIyY19iZl9jb25maWdfYmZlZV9zdShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwNjAtXHRcdFx0XHQgICAgICAgc3RydWN0IHJ0d192aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDY5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2JmX2NvbmZpZ19iZmVlX211KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA3MC1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcnR3X3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwNzk6c3RhdGljIHZvaWQgcnR3ODgyMmNfYmZfY29uZmlnX2JmZWUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d192aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDgwLVx0XHRcdFx0ICAgIHN0cnVjdCBydHdfYmZlZSAqYmZlZSwgYm9vbCBlbmFibGUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTMwOTA9c3RydWN0IGRwa19jZmdfcGFpciB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwOTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzA5Njp2b2lkIHJ0dzg4MjJjX3BhcnNlX3RibF9kcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk3LVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlICp0YmwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxMDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzEwODpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfc2V0X2dudF93bChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGlzX2JlZm9yZV9rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxMDkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMTM0PXJ0dzg4MjJjX2Rwa19iYWNrdXBfcmVnaXN0ZXJzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqcmVnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNDY6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2JhY2t1cF9yZl9yZWdpc3RlcnMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTQ3LVx0XHRcdFx0XHQgICAgIHUzMiAqcmZfcmVnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNjA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3JlbG9hZF9yZl9yZWdpc3RlcnMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTYxLVx0XHRcdFx0XHQgICAgIHUzMiAqcmZfcmVnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNzQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE3NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxODctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzE4ODpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfcnhiYl9kY19jYWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTg5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMTk3OnN0YXRpYyB1OCBydHc4ODIyY19kcGtfZGNfY29ycl9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxOTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyMjI6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3R4X3BhdXNlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzIyMy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzIzODpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfbWFjX2JiX3NldHRpbmcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjM5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzI0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMjQ0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19hZmVfc2V0dGluZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGlzX2RvX2RwaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjQ1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzI1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMjUyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19wcmVfc2V0dGluZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyNTMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyNzE6c3RhdGljIHUzMiBydHc4ODIyY19kcGtfcmZfc2V0dGluZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyNzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMzMDk6c3RhdGljIHUxNiBydHc4ODIyY19kcGtfZ2V0X2NtZChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBhY3Rpb24sIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMxMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzMzNDpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX29uZV9zaG90KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsIHU4IGFjdGlvbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzM1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMzc1OnN0YXRpYyB1MTYgcnR3ODgyMmNfZHBrX2RnYWluX3JlYWQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzc2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMzg3OnN0YXRpYyB1OCBydHc4ODIyY19kcGtfdGhlcm1hbF9yZWFkKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM4OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzM5NzpzdGF0aWMgdTMyIHJ0dzg4MjJjX2Rwa19wYXNfcmVhZChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzOTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM0MjA6c3RhdGljIHUzMiBydHc4ODIyY19wc2RfbG9nMmJhc2UodTMyIHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDIxLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzQ0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNDQ2OnN0YXRpYyB1OCBydHc4ODIyY19kcGtfZ2Fpbmxvc3NfcmVzdWx0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzQ0Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzQ2MTpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX2FnY19nYWluX2NoayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0NjItXHRcdFx0XHQgICAgdTggbGltaXRlZF9wZ2EpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0NzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzQ3ODpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX2FnY19sb3NzX2NoayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0Nzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zNDk1PXN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1MDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzUwNTpzdGF0aWMgdTggcnR3ODgyMmNfZ2Fpbl9jaGVja19zdGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1MDYtXHRcdFx0XHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM1MzU6c3RhdGljIHU4IHJ0dzg4MjJjX2dhaW5fbGFyZ2Vfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTM2LVx0XHRcdFx0ICAgIHN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTUwOnN0YXRpYyB1OCBydHc4ODIyY19nYWluX2xlc3Nfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTUxLVx0XHRcdFx0ICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM1NjU6c3RhdGljIHU4IHJ0dzg4MjJjX2dsX3N0YXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU2Ni1cdFx0XHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhLCB1OCBpc19sYXJnZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTg0OnN0YXRpYyB1OCBydHc4ODIyY19nbF9sYXJnZV9zdGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1ODUtXHRcdFx0XHQgIHN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU4OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTkwOnN0YXRpYyB1OCBydHc4ODIyY19nbF9sZXNzX3N0YXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU5MS1cdFx0XHRcdCBzdHJ1Y3QgcnR3ODgyMmNfZHBrX2RhdGEgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzU5NjpzdGF0aWMgdTggcnR3ODgyMmNfbG9zc19jaGVja19zdGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1OTctXHRcdFx0XHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zNjA4PXN0YXRpYyB1OCAoKmRwa19zdGF0ZVtdKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM2MTQ6c3RhdGljIHU4IHJ0dzg4MjJjX2Rwa19wYXNfYWdjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzYxNS1cdFx0XHQgICAgICAgYm9vbCBnYWluX29ubHksIGJvb2wgbG9zc19vbmx5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM2MzU6c3RhdGljIGJvb2wgcnR3ODgyMmNfZHBrX2NvZWZfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjM2LVx0XHRcdFx0ICAgICAgIHUxNiBjb2VmX2ksIHUxNiBjb2VmX3EpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM2NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY0NTpzdGF0aWMgdTMyIHJ0dzg4MjJjX2Rwa19jb2VmX3RyYW5zZmVyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY0Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM2NjI9c3RhdGljIGNvbnN0IHUzMiBydHc4ODIyY19kcGtfZ2V0X2NvZWZfdGJsW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM2NjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY2OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfY29lZl90YmxfYXBwbHkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNjgxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19nZXRfY29lZihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4OTcxCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byB0aGUgcnR3ODgyMmNfb3BzIFN0cnVjdHVyZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGBydHc4ODIyY19vcHNgIHN0cnVjdCBpcyBiZWluZyB1c2VkIGluIHRoaXMgZHJpdmVyLiBSaWdodCwgaXQmIzM5O3MgdGhlIG9uZSBob2xkaW5nIHRoZSBmdW5jdGlvbiBwb2ludGVycyDigJMgdGhlIGhlYXJ0IG9mIHRoaXMgdGhpbmcuIFRoYXQmIzM5O3MgdXN1YWxseSBob3cgdGhleSBkbyBpdCBpbiB0aGVzZSBrZXJuZWwgbW9kdWxlcywgYSBjbGVhbiB3YXkgdG8gZGVmaW5lIGFuIGludGVyZmFjZSBmb3IgdGhlIGhhcmR3YXJlIG9wZXJhdGlvbnMuIFRpbWUgdG8gZGlzc2VjdCB0aGlzIHN0cnVjdCBhbmQgc2VlIHdoaWNoIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCB3aXRoaW4gYHJ0dzg4MjJjX29wc2AuIExldCYjMzk7cyBzZWUgd2hhdCBtZXRob2RzIGl0IGRlZmluZXMsIHdoYXQga2luZCBvZiBvcGVyYXRpb25zIHdlIGhhdmUgaGVyZS4gSSB3YW50IHRvIHNlZSBob3cgdGhlIGNvcmUgZnVuY3Rpb25zIGFyZSBtYXBwZWQgYW5kIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZS4gSSB3aWxsIHN0YXJ0IGJ5IHNlZWluZyB3aGF0IHRoZSBmdW5jdGlvbnMgYXJlLCBhbmQgdGhlbiBJIHdpbGwgY2hlY2sgaWYgdGhlaXIgaW1wbGVtZW50YXRpb24gaXMgY29uc2lzdGVudCB3aXRoIG90aGVyIHJlbGF0ZWQgZHJpdmVycyBJIGFtIGZhbWlsaWFyIHdpdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0dzg4MjJjX29wcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00ODgwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3ByaW9xX2FkZHJzIHByaW9xX2FkZHJzXzg4MjJjID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00ODk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ4OTY6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ4OTctXHQucG93ZXJfb25cdFx0PSBydHdfcG93ZXJfb24sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTUyNzM9Y29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gcnR3ODgyMmNfaHdfc3BlYyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo1Mjc0Olx0Lm9wcyA9IFx1MDAyNnJ0dzg4MjJjX29wcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01Mjc1LVx0LmlkID0gUlRXX0NISVBfVFlQRV84ODIyQyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk1ODEKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSB3ZSBnby4uLgoKKipEaXZpbmcgaW50byBgcnR3ODgyMmNfb3BzYCoqCgpBbHJpZ2h0LCB0aW1lIHRvIGNyYWNrIG9wZW4gdGhlIGBydHc4ODIyY19vcHNgIHN0cnVjdHVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUgd2l0aGluIHRoZSBicm9hZGVyIGZyYW1ld29yay4gSW1tZWRpYXRlbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucy4gVGhpcyBsaWtlbHkgcmVwcmVzZW50cyB0aGUgc3BlY2lmaWMgb3BlcmF0aW9ucyBpbnRlcmZhY2UgZm9yIHRoZSBSZWFsdGVrIFJUTDg4MjJDIHdpcmVsZXNzIGNoaXAuIE15IG1pbmQmIzM5O3MgcmFjaW5nIOKAkyB3aGF0IGFyZSB0aGUga2V5IGZ1bmN0aW9ucyBkZWZpbmVkIGhlcmU/IFRoaW5rIGRyaXZlciBpbml0aWFsaXphdGlvbiwgcG93ZXIgbWFuYWdlbWVudCBjYWxsYmFja3MsIHBlcmhhcHMgdHJhbnNtaXQgYW5kIHJlY2VpdmUgcGF0aCBjb25maWd1cmF0aW9uLCBhbmQgaW50ZXJydXB0IGhhbmRsaW5nLi4uYWxsIHRoZSBjb3JlIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBkcml2ZXIgYW5kIHRoZSBoYXJkd2FyZS4gSSBoYXZlIGEgaHVuY2ggaXQgd2lsbCBnaXZlIG1lIGFuIGluc2lnaHQgaW50byB0aGUgZGVzaWduIGRlY2lzaW9ucyBhcm91bmQgdGhpcyBzcGVjaWZpYyBjaGlwLCBtYXliZSBpdHMgbGltaXRhdGlvbnMgdG9vLiBMZXTigJlzIHNlZSBpZiB0aGV5JiMzOTt2ZSBpbXBsZW1lbnRlZCB0aGVpciBvd24gc2NoZWR1bGluZyBtZWNoYW5pc21zLCBvciBhcmUgcmVseWluZyBvbiB0aGUgZ2VuZXJpYyBzdGFjayBtb3JlIGhlYXZpbHkuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIHNvIHRvIHNwZWFrLiBOb3csIGxldCYjMzk7cyBnZXQgcmVhZGluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA0ODk2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzQ4OTY6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyY19vcHMgPSB7XG40ODk3Olx0XHQucG93ZXJfb25cdFx0PSBydHdfcG93ZXJfb24sXG40ODk4Olx0XHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbjQ4OTk6XHRcdC5waHlfc2V0X3BhcmFtXHRcdD0gcnR3ODgyMmNfcGh5X3NldF9wYXJhbSxcbjQ5MDA6XHRcdC5yZWFkX2VmdXNlXHRcdD0gcnR3ODgyMmNfcmVhZF9lZnVzZSxcbjQ5MDE6XHRcdC5xdWVyeV9waHlfc3RhdHVzXHQ9IHF1ZXJ5X3BoeV9zdGF0dXMsXG40OTAyOlx0XHQuc2V0X2NoYW5uZWxcdFx0PSBydHc4ODIyY19zZXRfY2hhbm5lbCxcbjQ5MDM6XHRcdC5tYWNfaW5pdFx0XHQ9IHJ0dzg4MjJjX21hY19pbml0LFxuNDkwNDpcdFx0Lm1hY19wb3N0aW5pdFx0XHQ9IE5VTEwsXG40OTA1Olx0XHQuZHVtcF9md19jcmFzaFx0XHQ9IHJ0dzg4MjJjX2R1bXBfZndfY3Jhc2gsXG40OTA2Olx0XHQucmVhZF9yZlx0XHQ9IHJ0d19waHlfcmVhZF9yZixcbjQ5MDc6XHRcdC53cml0ZV9yZlx0XHQ9IHJ0d19waHlfd3JpdGVfcmZfcmVnX21peCxcbjQ5MDg6XHRcdC5zZXRfdHhfcG93ZXJfaW5kZXhcdD0gcnR3ODgyMmNfc2V0X3R4X3Bvd2VyX2luZGV4LFxuNDkwOTpcdFx0LnNldF9hbnRlbm5hXHRcdD0gcnR3ODgyMmNfc2V0X2FudGVubmEsXG40OTEwOlx0XHQuY2ZnX2xkbzI1XHRcdD0gcnR3ODgyMmNfY2ZnX2xkbzI1LFxuNDkxMTpcdFx0LnNldF9hbXBkdV9mYWN0b3JcdD0gTlVMTCxcbjQ5MTI6XHRcdC5mYWxzZV9hbGFybV9zdGF0aXN0aWNzXHQ9IHJ0dzg4MjJjX2ZhbHNlX2FsYXJtX3N0YXRpc3RpY3MsXG40OTEzOlx0XHQuZHBrX3RyYWNrXHRcdD0gcnR3ODgyMmNfZHBrX3RyYWNrLFxuNDkxNDpcdFx0LnBoeV9jYWxpYnJhdGlvblx0PSBydHc4ODIyY19waHlfY2FsaWJyYXRpb24sXG40OTE1Olx0XHQuY2NrX3BkX3NldFx0XHQ9IHJ0dzg4MjJjX3BoeV9jY2tfcGRfc2V0LFxuNDkxNjpcdFx0LnB3cl90cmFja1x0XHQ9IHJ0dzg4MjJjX3B3cl90cmFjayxcbjQ5MTc6XHRcdC5jb25maWdfYmZlZVx0XHQ9IHJ0dzg4MjJjX2JmX2NvbmZpZ19iZmVlLFxuNDkxODpcdFx0LnNldF9naWRfdGFibGVcdFx0PSBydHdfYmZfc2V0X2dpZF90YWJsZSxcbjQ5MTk6XHRcdC5jZmdfY3NpX3JhdGVcdFx0PSBydHdfYmZfY2ZnX2NzaV9yYXRlLFxuNDkyMDpcdFx0LmFkYXB0aXZpdHlfaW5pdFx0PSBydHc4ODIyY19hZGFwdGl2aXR5X2luaXQsXG40OTIxOlx0XHQuYWRhcHRpdml0eVx0XHQ9IHJ0dzg4MjJjX2FkYXB0aXZpdHksXG40OTIyOlx0XHQuY2ZvX2luaXRcdFx0PSBydHc4ODIyY19jZm9faW5pdCxcbjQ5MjM6XHRcdC5jZm9fdHJhY2tcdFx0PSBydHc4ODIyY19jZm9fdHJhY2ssXG40OTI0Olx0XHQuY29uZmlnX3R4X3BhdGhcdFx0PSBydHc4ODIyY19jb25maWdfdHhfcGF0aCxcbjQ5MjU6XHRcdC5jb25maWdfdHhyeF9tb2RlXHQ9IHJ0dzg4MjJjX2NvbmZpZ190cnhfbW9kZSxcbjQ5MjY6XHRcdC5sZWRfc2V0XHRcdD0gcnR3ODgyMmNfbGVkX3NldCxcbjQ5Mjc6XHRcdC5maWxsX3R4ZGVzY19jaGVja3N1bVx0PSBydHc4ODIyY19maWxsX3R4ZGVzY19jaGVja3N1bSxcbjQ5Mjg6XHRcbjQ5Mjk6XHRcdC5jb2V4X3NldF9pbml0XHRcdD0gcnR3ODgyMmNfY29leF9jZmdfaW5pdCxcbjQ5MzA6XHRcdC5jb2V4X3NldF9hbnRfc3dpdGNoXHQ9IE5VTEwsXG40OTMxOlx0XHQuY29leF9zZXRfZ250X2ZpeFx0PSBydHc4ODIyY19jb2V4X2NmZ19nbnRfZml4LFxuNDkzMjpcdFx0LmNvZXhfc2V0X2dudF9kZWJ1Z1x0PSBydHc4ODIyY19jb2V4X2NmZ19nbnRfZGVidWcsXG40OTMzOlx0XHQuY29leF9zZXRfcmZlX3R5cGVcdD0gcnR3ODgyMmNfY29leF9jZmdfcmZlX3R5cGUsXG40OTM0Olx0XHQuY29leF9zZXRfd2xfdHhfcG93ZXJcdD0gcnR3ODgyMmNfY29leF9jZmdfd2xfdHhfcG93ZXIsXG40OTM1Olx0XHQuY29leF9zZXRfd2xfcnhfZ2Fpblx0PSBydHc4ODIyY19jb2V4X2NmZ193bF9yeF9nYWluLFxuNDkzNjpcdH07XG40OTM3Olx0XG40OTM4Olx0LyogU2hhcmVkLUFudGVubmEgQ29leCBUYWJsZSAqL1xuNDkzOTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29leF90YWJsZV9wYXJhIHRhYmxlX3NhbnRfODgyMmNbXSA9IHtcbjQ5NDA6XHRcdHsweGZmZmZmZmZmLCAweGZmZmZmZmZmfSwgLyogY2FzZS0wICovXG40OTQxOlx0XHR7MHg1NTU1NTU1NSwgMHg1NTU1NTU1NX0sXG40OTQyOlx0XHR7MHg2NjU1NTU1NSwgMHg2NjU1NTU1NX0sXG40OTQzOlx0XHR7MHhhYWFhYWFhYSwgMHhhYWFhYWFhYX0sXG40OTQ0Olx0XHR7MHg1YTVhNWE1YSwgMHg1YTVhNWE1YX0sXG40OTQ1Olx0XHR7MHhmYWZhZmFmYSwgMHhmYWZhZmFmYX0sIC8qIGNhc2UtNSAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTE1OQoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDEwMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBQb3dlci1PbiBTZXF1ZW5jZSoqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byB0cmFjZSB0aGUgcG93ZXItb24gc2VxdWVuY2UgZm9yIHRoaXMgc3lzdGVtLiBUaGUgc3RhcnRpbmcgcG9pbnQgc2VlbXMgdG8gYmUgYHJ0d19wb3dlcl9vbmAuIFRoYXQgbWFrZXMgc2Vuc2U7IGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHRoZSBtYWluIGVudHJ5IGZ1bmN0aW9uLiBUaGlzIHRoZW4gbGVhZHMgdG8gYSBjYWxsIHRvIGBwaHlfc2V0X3BhcmFtYCwgd2hpY2ggdWx0aW1hdGVseSByZXNvbHZlcyB0byBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAuIEhtbSwgYnV0IGBydHc4ODIyY19waHlfc2V0X3BhcmFtYCBpcyBkZWNsYXJlZCBhcyBgc3RhdGljYC4gVGhhdCYjMzk7cyBhIGJpdCBvZiBhIHJvYWRibG9jay4gSXQmIzM5O3Mgbm90IGRpcmVjdGx5IGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlIGl0cyBjb21waWxhdGlvbiB1bml0LCB3aGljaCBtaWdodCBjb21wbGljYXRlIHRoaW5ncy4KClRoZSBxdWVzdGlvbiB0aGVuIGlzLCBjYW4gSSBzdGlsbCBsZXZlcmFnZSBgcnR3X3Bvd2VyX29uYCBhcyBteSBzdGFydGluZyBwb2ludD8gTGV0JiMzOTtzIGFzc3VtZSBzbyBmb3Igbm93LiBJIHJlY2FsbCB0aGF0IGBydHdfcG93ZXJfb25gIHJlc2lkZXMgaW4gYG1haW4uY2AuIFRoYXQmIzM5O3MgdXNlZnVsIGluZm9ybWF0aW9uLiBTbywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGRpdmUgaW50byB0aGUgY29kZSBmb3IgYHJ0d19wb3dlcl9vbmAgaXRzZWxmLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGhhcHBlbmluZyB0aGVyZSB0byBzZWUgaG93IHRoZSBzdGF0aWMgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gIGlzIGJlaW5nIHVzZWQgb3IgYWNjZXNzZWQsIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBvd2VyLW9uIGluaXRpYWxpemF0aW9uIHByb2NlZHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3Bvd2VyX29uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MTM1ND1zdGF0aWMgZW51bSBydHdfbHBzX2RlZXBfbW9kZSBydHdfdXBkYXRlX2xwc19kZWVwX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xMzczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MTM3NDppbnQgcnR3X3Bvd2VyX29uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xMzc1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xNDQyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjE0NDM6RVhQT1JUX1NZTUJPTChydHdfcG93ZXJfb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMTQ0NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0yMjcxPWludCBydHdfd2FpdF9maXJtd2FyZV9jb21wbGV0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6MjI3MjppbnQgcnR3X3Bvd2VyX29uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI3My12b2lkIHJ0d19jb3JlX2Z3X3NjYW5fbm90aWZ5KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgc3RhcnQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYz0xODM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg3MDNiX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYzoxODM3Olx0LnBvd2VyX29uXHRcdD0gcnR3X3Bvd2VyX29uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jLTE4MzgtXHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM9MTM5Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzIzZF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM6MTM5MzpcdC5wb3dlcl9vblx0XHQ9IHJ0d19wb3dlcl9vbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy0xMzk0LVx0LnBvd2VyX29mZlx0XHQ9IHJ0d19wb3dlcl9vZmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jPTIwNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgxNGFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jOjIwNTE6XHQucG93ZXJfb25cdFx0PSBydHdfcG93ZXJfb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjA1Mi1cdC5wb3dlcl9vZmZcdFx0PSBydHdfcG93ZXJfb2ZmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYz0xNjU4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjFjX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYzoxNjU5Olx0LnBvd2VyX29uXHRcdD0gcnR3X3Bvd2VyX29uLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE2NjAtXHQucG93ZXJfb2ZmXHRcdD0gcnR3X3Bvd2VyX29mZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MjE1MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyYl9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM6MjE1MTpcdC5wb3dlcl9vblx0XHQ9IHJ0d19wb3dlcl9vbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYy0yMTUyLVx0LnBvd2VyX29mZlx0XHQ9IHJ0d19wb3dlcl9vZmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ4OTc6XHQucG93ZXJfb25cdFx0PSBydHdfcG93ZXJfb24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDg5OC1cdC5wb3dlcl9vZmZcdFx0PSBydHdfcG93ZXJfb2ZmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Mjc5MgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUG93ZXItT24gU2VxdWVuY2UqKgoKT2theSwgc28gYHJ0d19wb3dlcl9vbmAgaXMgZGVmaW5pdGVseSBhbiBleHBvcnRlZCBmdW5jdGlvbi4gTXkgZmlyc3QgdGhvdWdodCBpczogSXMgdGhpcyB0aGUgKm9ubHkqIGVudHJ5IHBvaW50PyBJIG5lZWQgdG8gYmUgc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueXRoaW5nIGNydWNpYWwuIExldCYjMzk7cyBkaWcgZGVlcGVyLiBBaCwgcmlnaHQsIEkgcmVtZW1iZXIgc2VlaW5nIGBydHdfY29yZV9zdGFydGAgaW4gYG1haW4uY2AuIEl0JiMzOTtzIGNhbGxpbmcgYHJ0d19wb3dlcl9vbmAsIHNvIHRoYXQgc29saWRpZmllcyB0aGUgY29ubmVjdGlvbi4gTm93LCB0aGUgbG9naWNhbCBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBpbnRvIHRoZSBgcnR3X2NvcmVfc3RhcnRgIGZ1bmN0aW9uIGl0c2VsZi4gVW5kZXJzdGFuZGluZyB0aGF0IGZsb3cgd2lsbCBwcm9iYWJseSBnaXZlIG1lIGEgbXVjaCBjbGVhcmVyIHBpY3R1cmUgb2YgdGhlIG92ZXJhbGwgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyBhbmQgaG93IHRoaXMgYHJ0d19wb3dlcl9vbmAgZnVuY3Rpb24gZml0cyBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X2NvcmVfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NTM9c3RhdGljIGludCBydHdfb3BzX3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy01OC1cdG11dGV4X2xvY2soXHUwMDI2cnR3ZGV2LVx1MDAzZW11dGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo1OTpcdHJldCA9IHJ0d19jb3JlX3N0YXJ0KHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNjAtXHRtdXRleF91bmxvY2soXHUwMDI2cnR3ZGV2LVx1MDAzZW11dGV4KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0xNDkwPXZvaWQgcnR3X2NvcmVfc2Nhbl9jb21wbGV0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE1MTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoxNTE1OmludCBydHdfY29yZV9zdGFydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMTUxNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjI1Mz12b2lkIHJ0d19jb3JlX3NjYW5fY29tcGxldGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIyNTQtXHRcdFx0ICAgIGJvb2wgaHdfc2Nhbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjU1OmludCBydHdfY29yZV9zdGFydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIyNTYtdm9pZCBydHdfcG93ZXJfb2ZmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcHMuYz0xMz1zdGF0aWMgaW50IHJ0d19pcHNfcHdyX3VwKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wcy5jLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wcy5jOjE3Olx0cmV0ID0gcnR3X2NvcmVfc3RhcnQocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcHMuYy0xOC1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzNjkwCgkJCQkJCQlvdXRwdXQ6IDY5CgkJCQkJCQl0aG91Z2h0czogMTcxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhbHRlayBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gdGhlIGBydHdfY29yZV9zdGFydGAgZnVuY3Rpb24sIHRoYXQmIzM5O3Mgd2hlcmUgdGhpbmdzIGtpY2sgb2ZmLiBJIHNlZSBmcm9tIHRoZSBjYWxsIGdyYXBoIHRoYXQgaXQgZ2V0cyBjYWxsZWQgZnJvbSBgcnR3X29wc19zdGFydGAgd2l0aGluIGBtYWM4MDIxMS5jYC4gQW5kIGBydHdfb3BzX3N0YXJ0YCBpcyB0aGUgYC5zdGFydGAgY2FsbGJhY2sgZm9yIG1hYzgwMjExLCByaWdodD8gU28sIGBydHdfY29yZV9zdGFydGAgc2VlbXMgbGlrZSBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZyDigJMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IHRvIGV4cGxvcmUuIEJ1dCB3YWl0LCBgcnR3X2NvcmVfc3RhcnRgIHJlc2lkZXMgaW4gYG1haW4uY2AsIGFuZCB0aGUgcGF0Y2ggc3BlY2lmaWNhbGx5IG1vZGlmaWVzIGNvZGUgaW4gYHJ0dzg4MjJjLmNgLiBGb2N1c2luZyBvbiBgcnR3X2NvcmVfc3RhcnRgIHdvdWxkIHByaW1hcmlseSBmdXp6IHRoZSBvdmVyYWxsIGRldmljZSBpbml0aWFsaXphdGlvbiwgbm90IHRoZSBzcGVjaWZpYyBjaGFuZ2VzLiBUaGF0IGRvZXNuJiMzOTt0IGZlZWwgcmlnaHQuCgpMZXQmIzM5O3MgcmV0aGluayB0aGlzLiBJcyB0aGVyZSBhbnl0aGluZyBlbHNlIGluIGBydHc4ODIyYy5jYCB0aGF0JiMzOTtzIGV4cG9ydGVkIG9yIG5vdCBzdGF0aWM/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgZnVuY3Rpb25zIHdpdGhpbiB0aGF0IHNwZWNpZmljIGZpbGUgYXJlIGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlLCBvciBwZXJoYXBzIG1vcmUgcmVsZXZhbnQgdG8gdGhlIHJlY2VudCBjaGFuZ2VzLiBUaW1lIHRvIGRpdmUgaW50byBgcnR3ODgyMmMuY2AgYW5kIHNlYXJjaCBmb3Igbm9uLXN0YXRpYyBmdW5jdGlvbnMuIFRoYXQmIzM5O3MgdGhlIHJlYWwgYXJlYSBJIG5lZWQgdG8gaG9uZSBpbiBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XlthLXpfMC05XSYjNDM7IHJ0dzg4MjJjX1thLXpfMC05XSYjNDM7XFwoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMDkwPXN0cnVjdCBkcGtfY2ZnX3BhaXIge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwOTY6dm9pZCBydHc4ODIyY19wYXJzZV90YmxfZHBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA5Ny1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHJ0d190YWJsZSAqdGJsKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NDM3OQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIGNvZGUgYW5hbHlzaXM6CgoqKkNvZGUgU3RydWN0dXJlIGFuZCBWaXNpYmlsaXR5IEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgYHJ0dzg4MjJjLmNgIGZpbGUuIFRoZSBtYWluIHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoZSBmdW5jdGlvbiBgcnR3ODgyMmNfcGFyc2VfdGJsX2Rwa2AuIEl0JiMzOTtzIHRoZSBvbmx5IG9uZSBvZiB0aGUgYnVuY2ggdGhhdCYjMzk7cyAqbm90KiBkZWNsYXJlZCBhcyBgc3RhdGljYCBpbiB0aGF0IGZpbGUsIHdoaWNoIGltbWVkaWF0ZWx5IHNpZ25hbHMgaXQmIzM5O3MgbGlrZWx5IGludGVuZGVkIGZvciBleHRlcm5hbCB1c2UuIEkgbmVlZCB0byBrZWVwIHRoYXQgaW4gbWluZCB3aGVuIHRyYWNpbmcgdGhlIGRhdGEgZmxvdy4KCldhaXQgYSBzZWNvbmQsIHRoZXJlJiMzOTtzIGBydHc4ODIyY19vcHNgLiBUaGF0ICppcyogZGVjbGFyZWQgYHN0YXRpY2AsIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGxpbWl0ZWQgdG8gdGhlIHNjb3BlIG9mIHRoaXMgcGFydGljdWxhciBmaWxlLiBCdXQsIGFuZCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIEkgc2VlIHRoYXQgaXQmIzM5O3MgYmVpbmcgYXNzaWduZWQgdG8gYHJ0dzg4MjJjX2h3X3NwZWMub3BzYC4gT2theSwgc28gYHJ0dzg4MjJjX29wc2AgaXRzZWxmIGlzIGludGVybmFsLCBidXQgaXRzIGNvbnRlbnRzLCBwcmVzdW1hYmx5IGEgY29sbGVjdGlvbiBvZiBmdW5jdGlvbiBwb2ludGVycywgYXJlIHBvdGVudGlhbGx5IGFjY2Vzc2libGUgaW5kaXJlY3RseSB0aHJvdWdoIHRoYXQgYHJ0dzg4MjJjX2h3X3NwZWNgIHN0cnVjdC4KCkFoLCBhbmQgSSBzZWUgYHJ0dzg4MjJjX2h3X3NwZWNgIGl0c2VsZiBpcyAqZXhwb3J0ZWQqLiBUaGF0IGNvbmZpcm1zIHRoZSBoeXBvdGhlc2lzOyBpdCYjMzk7cyB0aGUgZ2F0ZXdheS4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGhvdyBgcnR3ODgyMmNfaHdfc3BlY2AgaXMgdXNlZC4gVGhpcyBzdHJ1Y3QgcHJvYmFibHkgYWN0cyBhcyB0aGUgY2VudHJhbCBpbnRlcmZhY2UsIGV4cG9zaW5nIGludGVybmFsIG9wZXJhdGlvbnMgdGhyb3VnaCBwb2ludGVycyB0byBleHRlcm5hbCBjb21wb25lbnRzLiBUaGlzIHdob2xlIHNldHVwIHN1Z2dlc3RzIGEgbW9kdWxhciBkZXNpZ24gd2hlcmUgY29yZSBmdW5jdGlvbmFsaXR5IGlzIGVuY2Fwc3VsYXRlZCwgYnV0IGNlcnRhaW4gaG9va3MgYXJlIHByb3ZpZGVkIGZvciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBkcml2ZXImIzM5O3MgZW52aXJvbm1lbnQuIE5vdywgSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdGhvc2UgZnVuY3Rpb25zIGRvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHc4ODIyY19od19zcGVjJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTUyNDg9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfcmVnX2RvbWFpbiBjb2V4X2luZm9faHdfcmVnc184ODIyY1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01MjcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUyNzM6Y29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gcnR3ODgyMmNfaHdfc3BlYyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01Mjc0LVx0Lm9wcyA9IFx1MDAyNnJ0dzg4MjJjX29wcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTM3Ny19O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUzNzg6RVhQT1JUX1NZTUJPTChydHc4ODIyY19od19zcGVjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01Mzc5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaD0xMjc9dm9pZCBydHc4ODIyY19wYXJzZV90YmxfZHBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTEyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDoxMzA6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvIHJ0dzg4MjJjX2h3X3NwZWM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgtMTMxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM9MTA9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ0d184ODIyY2VfaWRfdGFibGVbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTEyLVx0XHRQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywgMHhDODIyKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM6MTM6XHRcdC5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjZydHc4ODIyY19od19zcGVjXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE0LVx0fSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE2LVx0XHRQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfUkVBTFRFSywgMHhDODJGKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM6MTc6XHRcdC5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjZydHc4ODIyY19od19zcGVjXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE4LVx0fSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjcy5jPTEyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb19kZXZpY2VfaWQgcnR3Xzg4MjJjc19pZF90YWJsZVtdID0gIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjcy5jLTE1LVx0XHRcdCAgICBTRElPX0RFVklDRV9JRF9SRUFMVEVLX1JUVzg4MjJDUyksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjcy5jOjE2Olx0XHQuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2cnR3ODgyMmNfaHdfc3BlYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNzLmMtMTctXHR9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM9MTE9c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODIyY3VfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTItXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgyYywgMHhmZiwgMHhmZiwgMHhmZiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jOjEzOlx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTE0LVx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MTIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYzoxNTpcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYy0xNi1cdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oUlRXX1VTQl9WRU5ET1JfSURfUkVBTFRFSywgMHhjODJlLCAweGZmLCAweGZmLCAweGZmKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTc6XHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjYocnR3ODgyMmNfaHdfc3BlYykgfSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTgtXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4ZDgyMCwgMHhmZiwgMHhmZiwgMHhmZiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jOjE5Olx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTIwLVx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGQ4MmIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYzoyMTpcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYy0yMi1cdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgxM2IxLCAweDAwNDMsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYzoyMzpcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LCAvKiBBbHBoYSAtIEFscGhhICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTI0LVx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4MzMyOSwgMHhmZiwgMHhmZiwgMHhmZiksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jOjI1Olx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEQtTGluayBBQzEzVSByZXYuIEExICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTI2LVx0e30sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2ODQxCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3MsIGdpdmVuIG15IGV4cGVydGlzZToKCioqRGl2aW5nIGludG8gdGhlIHJ0dzg4MjJjdSBEcml2ZXIqKgoKQWxyaWdodCwgdGhlIFVTQiBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYHJ0dzg4MjJjdWAuIE5vIHN1cnByaXNlcyB0aGVyZSwgaXQmIzM5O3MgcHJldHR5IGNsZWFyIGZyb20gdGhlIG5hbWUuIFRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBMZXQmIzM5O3Mgc3RhcnQgYnkgbG9va2luZyBhdCBgcnR3ODgyMmN1LmNgLCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGZpbGUuIFRoYXQmIzM5O3MgdGhlIGhlYXJ0IG9mIGhvdyB0aGlzIGRyaXZlciBmdW5jdGlvbnMuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIGFuZCBpdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gc3RhcnQgdG8gdHJ1bHkgdW5kZXJzdGFuZCBpdHMgYmVoYXZpb3IsIHBvdGVudGlhbCBpc3N1ZXMsIG9yIGFyZWFzIGZvciBvcHRpbWl6YXRpb24uIEkmIzM5O20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIHRoaW5ncyBsaWtlIGludGVycnVwdCBoYW5kbGluZywgcG93ZXIgbWFuYWdlbWVudCByb3V0aW5lcywgYW5kIGFueSBjdXN0b20gZXh0ZW5zaW9ucyBpbXBsZW1lbnRlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gICAyOlx0LyogQ29weXJpZ2h0KGMpIDIwMTgtMjAxOSAgUmVhbHRlayBDb3Jwb3JhdGlvblxuICAgMzpcdCAqL1xuICAgNDpcdFxuICAgNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gICA2Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvdXNiLmhcdTAwM2VcbiAgIDc6XHQjaW5jbHVkZSBcJiMzNDttYWluLmhcJiMzNDtcbiAgIDg6XHQjaW5jbHVkZSBcJiMzNDtydHc4ODIyYy5oXCYjMzQ7XG4gICA5Olx0I2luY2x1ZGUgXCYjMzQ7dXNiLmhcJiMzNDtcbiAgMTA6XHRcbiAgMTE6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4MjJjdV9pZF90YWJsZVtdID0ge1xuICAxMjpcdFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MmMsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAxMzpcdFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXG4gIDE0Olx0XHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgxMiwgMHhmZiwgMHhmZiwgMHhmZiksXG4gIDE1Olx0XHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjYocnR3ODgyMmNfaHdfc3BlYykgfSxcbiAgMTY6XHRcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oUlRXX1VTQl9WRU5ET1JfSURfUkVBTFRFSywgMHhjODJlLCAweGZmLCAweGZmLCAweGZmKSxcbiAgMTc6XHRcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxuICAxODpcdFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGQ4MjAsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAxOTpcdFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXG4gIDIwOlx0XHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4ZDgyYiwgMHhmZiwgMHhmZiwgMHhmZiksXG4gIDIxOlx0XHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjYocnR3ODgyMmNfaHdfc3BlYykgfSxcbiAgMjI6XHRcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgxM2IxLCAweDAwNDMsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAyMzpcdFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEFscGhhIC0gQWxwaGEgKi9cbiAgMjQ6XHRcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgyMDAxLCAweDMzMjksIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAyNTpcdFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEQtTGluayBBQzEzVSByZXYuIEExICovXG4gIDI2Olx0XHR7fSxcbiAgMjc6XHR9O1xuICAyODpcdE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODgyMmN1X2lkX3RhYmxlKTtcbiAgMjk6XHRcbiAgMzA6XHRzdGF0aWMgaW50IHJ0dzg4MjJjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbiAgMzE6XHRcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4gIDMyOlx0e1xuICAzMzpcdFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xuICAzNDpcdH1cbiAgMzU6XHRcbiAgMzY6XHRzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4MjJjdV9kcml2ZXIgPSB7XG4gIDM3Olx0XHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuICAzODpcdFx0LmlkX3RhYmxlID0gcnR3Xzg4MjJjdV9pZF90YWJsZSxcbiAgMzk6XHRcdC5wcm9iZSA9IHJ0dzg4MjJjdV9wcm9iZSxcbiAgNDA6XHRcdC5kaXNjb25uZWN0ID0gcnR3X3VzYl9kaXNjb25uZWN0LFxuICA0MTpcdH07XG4gIDQyOlx0bW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4MjJjdV9kcml2ZXIpO1xuICA0MzpcdFxuICA0NDpcdE1PRFVMRV9BVVRIT1IoXCYjMzQ7UmVhbHRlayBDb3Jwb3JhdGlvblwmIzM0Oyk7XG4gIDQ1Olx0TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgODgyMmN1IGRyaXZlclwmIzM0Oyk7XG4gIDQ2Olx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDgxNjEKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIFVTQiBEcml2ZXImIzM5O3MgRW50cnkgUG9pbnQqKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzIFVTQiBkcml2ZXIuIEEgc29saWQgc3RhcnRpbmcgcG9pbnQsIGEgZ29vZCBmb2N1cyBzeW1ib2wsIGlzIG9mdGVuIHRoZSBwcm9iZSBmdW5jdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiBgcnR3X3VzYl9wcm9iZWAgbG9va3MgcHJvbWlzaW5nLiBJdCYjMzk7cyBleHBvcnRlZCBieSBgdXNiLmNgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyB0aGUgbGlrZWx5IGVudHJ5IHBvaW50LiBHb29kLCB0aGF0IGNvbmZpcm1zIGl0JiMzOTtzIHRoZSByaWdodCBmdW5jdGlvbi4gQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byBleGFtaW5pbmcgYHJ0d191c2JfcHJvYmVgIGFuZCBzZWUgd2hhdCBpdCByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHdfdXNiX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZHUuYz0yMD1zdGF0aWMgaW50IHJ0dzg3MjNkdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkdS5jLTIyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2R1LmM6MjM6XHRyZXR1cm4gcnR3X3VzYl9wcm9iZShpbnRmLCBpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkdS5jLTI0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhdS5jPTg0PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODgxMmF1X2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhdS5jLTg2LVx0LmlkX3RhYmxlID0gcnR3Xzg4MTJhdV9pZF90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmF1LmM6ODc6XHQucHJvYmUgPSBydHdfdXNiX3Byb2JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYXUuYy04OC1cdC5kaXNjb25uZWN0ID0gcnR3X3VzYl9kaXNjb25uZWN0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGF1LmM9NDQ9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODE0YXVfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGF1LmMtNDYtXHQuaWRfdGFibGUgPSBydHdfODgxNGF1X2lkX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YXUuYzo0NzpcdC5wcm9iZSA9IHJ0d191c2JfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhdS5jLTQ4LVx0LmRpc2Nvbm5lY3QgPSBydHdfdXNiX2Rpc2Nvbm5lY3QsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYXUuYz02OD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4MjFhdV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYXUuYy03MC1cdC5pZF90YWJsZSA9IHJ0d184ODIxYXVfaWRfdGFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhdS5jOjcxOlx0LnByb2JlID0gcnR3X3VzYl9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWF1LmMtNzItXHQuZGlzY29ubmVjdCA9IHJ0d191c2JfZGlzY29ubmVjdCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjdS5jPTQ2PXN0YXRpYyBpbnQgcnR3Xzg4MjFjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjdS5jLTQ4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWN1LmM6NDk6XHRyZXR1cm4gcnR3X3VzYl9wcm9iZShpbnRmLCBpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjdS5jLTUwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJidS5jPTg4PXN0YXRpYyBpbnQgcnR3ODgyMmJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmMtOTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYnUuYzo5MTpcdHJldHVybiBydHdfdXNiX3Byb2JlKGludGYsIGlkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmMtOTItfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM9MzA9c3RhdGljIGludCBydHc4ODIyY3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYy0zMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jOjMzOlx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYy0zNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz0xMjI1PXN0YXRpYyB2b2lkIHJ0d191c2JfcGh5X2NmZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI2Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTI2MzppbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjY0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNTgtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYzoxMzU5OkVYUE9SVF9TWU1CT0wocnR3X3VzYl9wcm9iZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuaD05MD1zdGF0aWMgaW5saW5lIHN0cnVjdCBydHdfdXNiX3R4X2RhdGEgKnJ0d191c2JfZ2V0X3R4X2RhdGEoc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5oLTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuaDoxMDA6aW50IHJ0d191c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5oLTEwMS12b2lkIHJ0d191c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5OTA5CgkJCQkJCQlvdXRwdXQ6IDE2OQoJCQkJCQkJdGhvdWdodHM6IDE1NTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJlYWx0ZWsgODgyMkMgREFDIElRIENhbGlicmF0aW9uIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gaWRlbnRpZnkgc3VpdGFibGUgZm9jdXMgc3ltYm9scyBmb3IgZnV6emluZy4gSSBxdWlja2x5IHNldHRsZWQgb24gYHJ0d191c2JfcHJvYmVgLCBgcnR3X2NvcmVfc3RhcnRgLCBhbmQgYHJ0d19wb3dlcl9vbmAuIFRoZXkgYXJlIGFsbCBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMsIHdoaWNoIGFsaWducyBwZXJmZWN0bHkgd2l0aCB0aGUgcHJvbXB0JiMzOTtzIHByZWZlcmVuY2UuCgpJIGNvbmZpcm1lZCB0aGF0IGFsbCB0aHJlZSBmdW5jdGlvbnMgYXJlIHJlbGV2YW50LCBnaXZlbiB0aGUgcGF0Y2gmIzM5O3MgbW9kaWZpY2F0aW9uIG9mIGBydHc4ODIyYy5jYCwgd2hpY2ggaXMgc2hhcmVkIGFjcm9zcyBVU0IsIFBDSSwgYW5kIFNESU8uIFNpbmNlIHdlJiMzOTtyZSB0YXJnZXRpbmcgVVNCLCBgcnR3X3VzYl9wcm9iZWAgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBhbmQgYHJ0d19jb3JlX3N0YXJ0YCBhbmQgYHJ0d19wb3dlcl9vbmAgYXJlIGdvb2QgZm9yIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkuIEkgdGhlbiB0cmFjZWQgdGhlIGNhbGwgcGF0aHMgdG8gdmVyaWZ5IHRoYXQgdGhlIHRhcmdldCBmdW5jdGlvbiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHJlYWNoYWJsZSBmcm9tIGBydHdfdXNiX3Byb2JlYCDigJMgYW5kIGluZGVlZCwgaXQgaXMhIFRoZSBwYXRoIGdvZXMgdGhyb3VnaCBgcnR3X2NvcmVfaW5pdGAsIGBydHdfY29yZV9zdGFydGAgKHZpYSBgcnR3X29wc19zdGFydGApLCBgcnR3X3Bvd2VyX29uYCwgYW5kIGRvd24gdG8gdGhlIHNwZWNpZmljIGNhbGlicmF0aW9uIGZ1bmN0aW9uLiBUaGlzIGlzIGtleTogdGhlIGNhbGlicmF0aW9uIGlzIHBhcnQgb2YgdGhlIGJyaW5nLXVwIHNlcXVlbmNlLgoKTmV4dCwgSSBuYWlsZWQgZG93biB0aGUgbmVjZXNzYXJ5IGtlcm5lbCBjb25maWd1cmF0aW9ucy4gYFJUVzg4YCBhbmQgYFJUVzg4Xzg4MjJDVWAgc2VlbSBzdWZmaWNpZW50LiBgUlRXODhfODgyMkNVYCBkZXBlbmRzIG9uIGBVU0JgLCBzbyBpdCYjMzk7cyBhIGdvb2QgY2hvaWNlIGZvciBVU0IgcGF0aCB0ZXN0aW5nLiBJIGNoZWNrZWQgdGhlIEtjb25maWcgdG8gdmVyaWZ5IHRoYXQgYFJUVzg4Xzg4MjJDVWAgaXMsIGluIGZhY3QsIHRoZSBjb3JyZWN0IG5hbWUsIGFuZCB0aGF0IGBSVFc4OF84ODIyQ2AgaXMgYXV0b21hdGljYWxseSBzZWxlY3RlZC4gU3RhbmRhcmQgY29uZmlndXJhdGlvbnMgbGlrZSBgTUFDODAyMTFgIGFuZCBgV0xBTmAgYXJlIGltcGxpZWQsIGFuZCBgVVNCYCBpcyBhbHNvIHN0YW5kYXJkLiBUaGVyZWZvcmUsIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgIGFyZSBlbm91Z2guCgpJIHJlLWV4YW1pbmVkIHRoZSBwYXRjaCBpdHNlbGYsIHdoaWNoIHVzZXMgYHNvcnQoKWAgdG8gc29ydCBJUSB2YWx1ZXMgYW5kIGNoYW5nZXMgZGF0YSB0eXBlcyB0byBgczMyYC4gVGhpcyBpbmRpY2F0ZXMgYSBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiB3aXRoaW4gdGhlIGRyaXZlciYjMzk7cyBjYWxpYnJhdGlvbi4gVGhpcyBpcyBnb29kOiBhIGZ1bmN0aW9uYWwgY2hhbmdlLCByZWFjaGFibGUgdmlhIHRoZSBVU0IgcGF0aCwgbWFrZXMgaXQgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuCgpNeSByZWFzb25pbmc/IFRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gYHJ0dzg4MjJjLmNgLiBUaGlzIGlzIHJlYWNoYWJsZSB2aWEgdGhlIFVTQiB2YXJpYW50IG9mIHRoZSBkcml2ZXIgYW5kIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbi4KClNvLCBpbiBzdW1tYXJ5OgoKKiAgICoqRm9jdXMgU3ltYm9scyoqOiBgcnR3X3VzYl9wcm9iZWAsIGBydHdfY29yZV9zdGFydGAsIGBydHdfcG93ZXJfb25gCiogICAqKkVuYWJsZSBDb25maWd1cmF0aW9ucyoqOiBgUlRXODhgLCBgUlRXODhfODgyMkNVYAoKWWVzLCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHJlYWNoYWJsZS4gTGV0JiMzOTtzIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJDVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0d191c2JfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3X2NvcmVfc3RhcnQmIzM0OywKICAgICYjMzQ7cnR3X3Bvd2VyX29uJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIFJlYWx0ZWsgODgyMkMgd2lyZWxlc3MgZHJpdmVyLCByZXBsYWNpbmcgYSBjdXN0b20gc29ydGluZyBpbXBsZW1lbnRhdGlvbiB3aXRoIHRoZSBzdGFuZGFyZCBzb3J0KCkgZnVuY3Rpb24gYW5kIGNoYW5naW5nIHRoZSBkYXRhIHR5cGVzIGZyb20gdTMyIHRvIHMzMi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgaW5pdGlhbGl6YXRpb24gYW5kIGNhbGlicmF0aW9uIHNlcXVlbmNlLiBUaGUgY29kZSBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSB0aGUgVVNCIHZhcmlhbnQgb2YgdGhlIGRyaXZlciAocnR3ODhfODgyMmN1KSB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODgmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMkNVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnR3X3VzYl9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHdfY29yZV9zdGFydCYjMzQ7LAogICAgJiMzNDtydHdfcG93ZXJfb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyBpbml0aWFsaXphdGlvbiBhbmQgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgdmFyaWFudCBvZiB0aGUgZHJpdmVyIChydHc4OF84ODIyY3UpIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHJlZmFjdG9ycyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgcnR3ODggZHJpdmVyLCByZXBsYWNpbmcgY3VzdG9tIDEwLWJpdCB0d28mIzM5O3MgY29tcGxlbWVudCBhcml0aG1ldGljIGFuZCBhIGN1c3RvbSBidWJibGUgc29ydCB3aXRoIHN0YW5kYXJkIHNpZ25lZCBpbnRlZ2VycyAoczMyKSBhbmQgdGhlIGtlcm5lbCYjMzk7cyBzb3J0KCkgZnVuY3Rpb24uIFdoaWxlIHRoZSBzdGFjay1hbGxvY2F0ZWQgYXJyYXlzIGBpdmAgYW5kIGBxdmAgY291bGQgcG90ZW50aWFsbHkgYmUgcGFydGlhbGx5IHVuaW5pdGlhbGl6ZWQgaWYgdGhlIGhhcmR3YXJlIHJlYWQgbG9vcCB0aW1lcyBvdXQsIHRoaXMgZXhhY3Qgc2FtZSBiZWhhdmlvciBhbmQgc3Vic2VxdWVudCByZWFkaW5nIG9mIHRoZXNlIGFycmF5cyBleGlzdGVkIHByaW9yIHRvIHRoZSBwYXRjaC4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGFsbG9jYXRpb25zLCBub3IgZG9lcyBpdCBleHBvc2UgYW55IGtlcm5lbCBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZS4gQW55IHBvdGVudGlhbCBtZW1vcnkgc2FmZXR5IGlzc3VlcyAoc3VjaCBhcyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzKSB3b3VsZCBiZSBjYXVnaHQgYnkgc3RhbmRhcmQgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gc2Vzc2lvbiBpcyBub3QganVzdGlmaWVkLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeQplcnJvciBkZXRlY3RvcnMgKEtBU0FOIGFuZCBLTVNBTikuIFlvdXIgam9iIGlzIHRvIHJldmlldyB0aGUgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZApkZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpCmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLgoKQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46Ci0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZQogIGEgY29tcHJlaGVuc2l2ZSBzdWl0ZSBvZiBkZWJ1Z2dpbmcgdG9vbHMgYW5kIHNhbml0aXplcnMsIGluY2x1ZGluZyBLQVNBTgogIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVAKICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLgotIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpIGRldGVjdHMgcmVhZHMgb2YgVU5JTklUSUFMSVpFRCBtZW1vcnkgKHN0YWNrLCBoZWFwLAogIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy4KClJ1bGU6IFRIRVJFIElTIE5PIFNFTlNFIElOIFJVTk5JTkcgQSBLTVNBTiBTRVNTSU9OIElGIEEgQlVHIENBTiBCRSBDQVVHSFQgQlkgS0FTQU4sCkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuCkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFkKc2V0IE5lZWRzS01TQU49dHJ1ZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGludHJvZHVjZSBvciBleHBvc2UgVU5JTklUSUFMSVpFRCBNRU1PUlkgcmlza3MKdGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi4KCkxvb2sgaG9saXN0aWNhbGx5IGF0IHRoZSBwYXRjaCBzZXJpZXMgYW5kIHN1cnJvdW5kaW5nIGNvZGUuIEV2ZW4gaWYgbm8gZGlyZWN0CnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLAphIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXMKdGhhdCBjaGFuZ2UgaG93IHRoZSByZXN0IG9mIHRoZSBjb2RlIG9wZXJhdGVzIG9uIGV4aXN0aW5nIGJ1ZmZlcnMgKGUuZy4gYWxsb3dpbmcKdW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sCmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSwKY2FsbGVkIGZ1bmN0aW9ucywgYW5kIGNhbGxlcnMuCgpTZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6CjEuIEtlcm5lbCBzdHJ1Y3R1cmVzIHNlbnQgdG8gdXNlciBzcGFjZSAodmlhIGNvcHlfdG9fdXNlciwgcHV0X3VzZXIsIG5ldGxpbmsgc2tiCiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzCiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuCjIuIENvbmRpdGlvbmFsIGxvZ2ljIG9yIGJyYW5jaGluZyB0aGF0IGRlcGVuZHMgb24gcG90ZW50aWFsbHkgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMKICAgb3Igc3RydWN0IGZpZWxkcy4KMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkcwogICBjb3VsZCBiZSByZWFkIGxhdGVyIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLgo0LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2VzcwogICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuCgpTZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjoKLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlcgogIGRlcmVmZXJlbmNlcywgbG9ja2luZyBkZWFkbG9ja3MsIG9yIHVzZS1hZnRlci1mcmVlIGJ1Z3MgKHRoZXNlIGFyZSBhbHJlYWR5IGNhdWdodAogIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS4KLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZAogIG9yIGluaXRpYWxpemVkIChlLmcuIHVzaW5nID0gezB9LCBtZW1zZXQsIGt6YWxsb2MpIGJlZm9yZSBiZWluZyByZWFkIG9yIGNvcGllZC4KLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuCgpVc2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlIGlmIG5lY2Vzc2FyeSwgdGhlbiBwcm92aWRlCmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzNDNlMTZlMzgxN2YyNTYzOTRjYjM5NDcxNmJiZTUwMWMzM2JhNDJkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgMTUgMDY6MzM6MzIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMKaW5kZXggMjQ0YzgwMjY0NzljMi4uMDE0MGYyZTY0NGNhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYwpAQCAtMyw2ICYjNDM7Myw3IEBACiAgKi8KIAogI2luY2x1ZGUgJmx0O2xpbnV4L21vZHVsZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9zb3J0LmgmZ3Q7CiAjaW5jbHVkZSAmIzM0O21haW4uaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2NvZXguaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2Z3LmgmIzM0OwpAQCAtMTgsNyAmIzQzOzE5LDcgQEAKICNpbmNsdWRlICYjMzQ7YmYuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2VmdXNlLmgmIzM0OwogCi0jZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWEKJiM0MzsjZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWE0CiAKIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ190cnhfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB0eF9wYXRoLAogCQkJCSAgICAgdTggcnhfcGF0aCwgYm9vbCBpc190eDJfcGF0aCk7CkBAIC0xNTMsODQgJiM0MzsxNTQsMjUgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX3Jlc3RvcmVfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBydHc4ODIyY19yZl9taW5tYXhfY21wKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSwKLQkJCQkgICB1MzIgKm1pbiwgdTMyICptYXgpCiYjNDM7c3RhdGljIGludCBydHc4ODIyY19kYWNfaXFfY21wX3MzMihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogewotCWlmICh2YWx1ZSAmZ3Q7PSAweDIwMCkgewotCQlpZiAoKm1pbiAmZ3Q7PSAweDIwMCkgewotCQkJaWYgKCptaW4gJmd0OyB2YWx1ZSkKLQkJCQkqbWluID0gdmFsdWU7Ci0JCX0gZWxzZSB7Ci0JCQkqbWluID0gdmFsdWU7Ci0JCX0KLQkJaWYgKCptYXggJmd0Oz0gMHgyMDApIHsKLQkJCWlmICgqbWF4ICZsdDsgdmFsdWUpCi0JCQkJKm1heCA9IHZhbHVlOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKCptaW4gJmx0OyAweDIwMCkgewotCQkJaWYgKCptaW4gJmd0OyB2YWx1ZSkKLQkJCQkqbWluID0gdmFsdWU7Ci0JCX0KJiM0MzsJczMyIHZhbF9hID0gKihjb25zdCBzMzIgKilhOwomIzQzOwlzMzIgdmFsX2IgPSAqKGNvbnN0IHMzMiAqKWI7CiAKLQkJaWYgKCptYXggICZndDs9IDB4MjAwKSB7Ci0JCQkqbWF4ID0gdmFsdWU7Ci0JCX0gZWxzZSB7Ci0JCQlpZiAoKm1heCAmbHQ7IHZhbHVlKQotCQkJCSptYXggPSB2YWx1ZTsKLQkJfQotCX0KJiM0MzsJcmV0dXJuICh2YWxfYSAmZ3Q7IHZhbF9iKSAtICh2YWxfYSAmbHQ7IHZhbF9iKTsKIH0KIAotc3RhdGljIHZvaWQgX19ydHc4ODIyY19kYWNfaXFfc29ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnYxLCB1MzIgKnYyKQotewotCWlmICgqdjEgJmd0Oz0gMHgyMDAgJmFtcDsmYW1wOyAqdjIgJmd0Oz0gMHgyMDApIHsKLQkJaWYgKCp2MSAmZ3Q7ICp2MikKLQkJCXN3YXAoKnYxLCAqdjIpOwotCX0gZWxzZSBpZiAoKnYxICZsdDsgMHgyMDAgJmFtcDsmYW1wOyAqdjIgJmx0OyAweDIwMCkgewotCQlpZiAoKnYxICZndDsgKnYyKQotCQkJc3dhcCgqdjEsICp2Mik7Ci0JfSBlbHNlIGlmICgqdjEgJmx0OyAweDIwMCAmYW1wOyZhbXA7ICp2MiAmZ3Q7PSAweDIwMCkgewotCQlzd2FwKCp2MSwgKnYyKTsKLQl9Ci19CiAKLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpCiYjNDM7c3RhdGljIHUzMiBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqdmVjKQogewotCXUzMiBpLCBqOwomIzQzOwlzMzIgc3VtID0gMDsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyBEQUNLX1NOXzg4MjJDIC0gMTsgaSYjNDM7JiM0MzspIHsKLQkJZm9yIChqID0gMDsgaiAmbHQ7IChEQUNLX1NOXzg4MjJDIC0gMSAtIGkpIDsgaiYjNDM7JiM0MzspIHsKLQkJCV9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCAmYW1wO2l2W2pdLCAmYW1wO2l2W2ogJiM0MzsgMV0pOwotCQkJX19ydHc4ODIyY19kYWNfaXFfc29ydChydHdkZXYsICZhbXA7cXZbal0sICZhbXA7cXZbaiAmIzQzOyAxXSk7Ci0JCX0KLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICp2ZWMsIHUzMiAqdmFsKQotewotCXUzMiBwLCBtLCB0LCBpOwotCi0JbSA9IDA7Ci0JcCA9IDA7Ci0JZm9yIChpID0gMTA7IGkgJmx0OyBEQUNLX1NOXzg4MjJDIC0gMTA7IGkmIzQzOyYjNDM7KSB7Ci0JCWlmICh2ZWNbaV0gJmd0OyAweDIwMCkKLQkJCW0gPSAoMHg0MDAgLSB2ZWNbaV0pICYjNDM7IG07Ci0JCWVsc2UKLQkJCXAgPSB2ZWNbaV0gJiM0MzsgcDsKLQl9CiYjNDM7CWZvciAodTMyIGkgPSAxMDsgaSAmbHQ7IERBQ0tfU05fODgyMkMgLSAxMDsgaSYjNDM7JiM0MzspCiYjNDM7CQlzdW0gJiM0Mzs9IHZlY1tpXTsKIAotCWlmIChwICZndDsgbSkgewotCQl0ID0gcCAtIG07Ci0JCXQgPSB0IC8gKERBQ0tfU05fODgyMkMgLSAyMCk7Ci0JfSBlbHNlIHsKLQkJdCA9IG0gLSBwOwotCQl0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApOwotCQlpZiAodCAhPSAweDApCi0JCQl0ID0gMHg0MDAgLSB0OwotCX0KJiM0MzsJczMyIGF2ZyA9IHN1bSAvIChEQUNLX1NOXzg4MjJDIC0gMjApOwogCi0JKnZhbCA9IHQ7CiYjNDM7CXJldHVybiBhdmcgJmd0Oz0gMCA/ICh1MzIpYXZnIDogKHUzMikoMHg0MDAgJiM0MzsgYXZnKTsKIH0KIAogc3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF93cml0ZV9hZGRyKHU4IHBhdGgpCkBAIC0yNzEsMjkgJiM0MzsyMTMsMjcgQEAgc3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF9yZWFkX2FkZHIodTggcGF0aCkKIAlyZXR1cm4gYmFzZV9hZGRyOwogfQogCi1zdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVlKQomIzQzO3N0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgdmFsdWUpCiB7Ci0JYm9vbCByZXQgPSB0cnVlOwogCi0JaWYgKCh2YWx1ZSAmZ3Q7PSAweDIwMCAmYW1wOyZhbXA7ICgweDQwMCAtIHZhbHVlKSAmZ3Q7IDB4NjQpIHx8Ci0JICAgICh2YWx1ZSAmbHQ7IDB4MjAwICZhbXA7JmFtcDsgdmFsdWUgJmd0OyAweDY0KSkgewotCQlyZXQgPSBmYWxzZTsKJiM0MzsJaWYgKHZhbHVlICZndDsgMTAwIHx8IHZhbHVlICZsdDsgLTEwMCkgewogCQlydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssICYjMzQ7W0RBQ0tdIEVycm9yIG92ZXJmbG93XG4mIzM0Oyk7CiYjNDM7CQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JcmV0dXJuIHJldDsKJiM0MzsJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpCiYjNDM7c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyICppdiwgczMyICpxdikKIHsKIAl1MzIgdGVtcDsKIAlpbnQgaSA9IDAsIGNudCA9IDA7CiAKIAl3aGlsZSAoaSAmbHQ7IERBQ0tfU05fODgyMkMgJmFtcDsmYW1wOyBjbnQgJmx0OyAxMDAwMCkgewogCQljbnQmIzQzOyYjNDM7OwotCQl0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7Ci0JCWl2W2ldID0gKHRlbXAgJmFtcDsgMHgzZmYwMDApICZndDsmZ3Q7IDEyOwotCQlxdltpXSA9IHRlbXAgJmFtcDsgMHgzZmY7CiYjNDM7CQl0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7CiYjNDM7CQlpdltpXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApOwomIzQzOwkJcXZbaV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTsKIAogCQlpZiAocnR3ODgyMmNfZGFjX2lxX2NoZWNrKHJ0d2RldiwgaXZbaV0pICZhbXA7JmFtcDsKIAkJICAgIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhydHdkZXYsIHF2W2ldKSkKQEAgLTMwMiwxMyAmIzQzOzI0MiwxMyBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KQogfQogCiBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LAotCQkJCSAgICAgICB1MzIgKml2LCB1MzIgKnF2LAomIzQzOwkJCQkgICAgICAgczMyICppdiwgczMyICpxdiwKIAkJCQkgICAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpCiB7Ci0JdTMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDsKJiM0MzsJczMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDsKIAl1MzIgaV9kZWx0YSwgcV9kZWx0YTsKIAl1MzIgdGVtcDsKLQlpbnQgaSwgY250ID0gMDsKJiM0MzsJdTMyIGksIGNudCA9IDA7CiAKIAlkbyB7CiAJCWlfbWluID0gaXZbMF07CkBAIC0zMTYsMjMgJiM0MzsyNTYsMTkgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwKIAkJcV9taW4gPSBxdlswXTsKIAkJcV9tYXggPSBxdlswXTsKIAkJZm9yIChpID0gMDsgaSAmbHQ7IERBQ0tfU05fODgyMkM7IGkmIzQzOyYjNDM7KSB7Ci0JCQlydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgaXZbaV0sICZhbXA7aV9taW4sICZhbXA7aV9tYXgpOwotCQkJcnR3ODgyMmNfcmZfbWlubWF4X2NtcChydHdkZXYsIHF2W2ldLCAmYW1wO3FfbWluLCAmYW1wO3FfbWF4KTsKJiM0MzsJCQlpZiAoaXZbaV0gJmx0OyBpX21pbikKJiM0MzsJCQkJaV9taW4gPSBpdltpXTsKJiM0MzsJCQlpZiAoaXZbaV0gJmd0OyBpX21heCkKJiM0MzsJCQkJaV9tYXggPSBpdltpXTsKJiM0MzsJCQlpZiAocXZbaV0gJmx0OyBxX21pbikKJiM0MzsJCQkJcV9taW4gPSBxdltpXTsKJiM0MzsJCQlpZiAocXZbaV0gJmd0OyBxX21heCkKJiM0MzsJCQkJcV9tYXggPSBxdltpXTsKIAkJfQogCi0JCWlmIChpX21heCAmbHQ7IDB4MjAwICZhbXA7JmFtcDsgaV9taW4gJmx0OyAweDIwMCkKLQkJCWlfZGVsdGEgPSBpX21heCAtIGlfbWluOwotCQllbHNlIGlmIChpX21heCAmZ3Q7PSAweDIwMCAmYW1wOyZhbXA7IGlfbWluICZndDs9IDB4MjAwKQotCQkJaV9kZWx0YSA9IGlfbWF4IC0gaV9taW47Ci0JCWVsc2UKLQkJCWlfZGVsdGEgPSBpX21heCAmIzQzOyAoMHg0MDAgLSBpX21pbik7CiYjNDM7CQlpX2RlbHRhID0gaV9tYXggLSBpX21pbjsKJiM0MzsJCXFfZGVsdGEgPSBxX21heCAtIHFfbWluOwogCi0JCWlmIChxX21heCAmbHQ7IDB4MjAwICZhbXA7JmFtcDsgcV9taW4gJmx0OyAweDIwMCkKLQkJCXFfZGVsdGEgPSBxX21heCAtIHFfbWluOwotCQllbHNlIGlmIChxX21heCAmZ3Q7PSAweDIwMCAmYW1wOyZhbXA7IHFfbWluICZndDs9IDB4MjAwKQotCQkJcV9kZWx0YSA9IHFfbWF4IC0gcV9taW47Ci0JCWVsc2UKLQkJCXFfZGVsdGEgPSBxX21heCAmIzQzOyAoMHg0MDAgLSBxX21pbik7CiAKIAkJcnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLAogCQkJJiMzNDtbREFDS10gaTogbWluPTB4JTA4eCwgbWF4PTB4JTA4eCwgZGVsdGE9MHglMDh4XG4mIzM0OywKQEAgLTM0MSwyOCAmIzQzOzI3NywyOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LAogCQkJJiMzNDtbREFDS10gcTogbWluPTB4JTA4eCwgbWF4PTB4JTA4eCwgZGVsdGE9MHglMDh4XG4mIzM0OywKIAkJCXFfbWluLCBxX21heCwgcV9kZWx0YSk7CiAKLQkJcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBpdiwgcXYpOwomIzQzOwkJc29ydChpdiwgREFDS19TTl84ODIyQywgc2l6ZW9mKHMzMiksIHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyLCBOVUxMKTsKJiM0MzsJCXNvcnQocXYsIERBQ0tfU05fODgyMkMsIHNpemVvZihzMzIpLCBydHc4ODIyY19kYWNfaXFfY21wX3MzMiwgTlVMTCk7CiAKIAkJaWYgKGlfZGVsdGEgJmd0OyA1IHx8IHFfZGVsdGEgJmd0OyA1KSB7Ci0JCQl0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7Ci0JCQlpdlswXSA9ICh0ZW1wICZhbXA7IDB4M2ZmMDAwKSAmZ3Q7Jmd0OyAxMjsKLQkJCXF2WzBdID0gdGVtcCAmYW1wOyAweDNmZjsKLQkJCXRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTsKLQkJCWl2W0RBQ0tfU05fODgyMkMgLSAxXSA9ICh0ZW1wICZhbXA7IDB4M2ZmMDAwKSAmZ3Q7Jmd0OyAxMjsKLQkJCXF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IHRlbXAgJmFtcDsgMHgzZmY7CiYjNDM7CQkJdGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpOwomIzQzOwkJCWl2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7CiYjNDM7CQkJcXZbMF0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTsKJiM0MzsJCQl0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7CiYjNDM7CQkJaXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7CiYjNDM7CQkJcXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7CiAJCX0gZWxzZSB7CiAJCQlicmVhazsKIAkJfQogCX0gd2hpbGUgKGNudCYjNDM7JiM0MzsgJmx0OyAxMDApOwogCi0JcnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIGl2LCBpX3ZhbHVlKTsKLQlydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgcXYsIHFfdmFsdWUpOwomIzQzOwkqaV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBpdik7CiYjNDM7CSpxX3ZhbHVlID0gcnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIHF2KTsKIH0KIAogc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsCiAJCQkJICAgICB1MzIgKmlfdmFsdWUsIHUzMiAqcV92YWx1ZSkKIHsKLQl1MzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdOwomIzQzOwlzMzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdOwogCXUzMiByZl9hLCByZl9iOwogCiAJcmZfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweDAsIFJGUkVHX01BU0spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oCmluZGV4IGZjNjJiNjdhMTVmMjEuLjdiZWE5OTYxNDM1NGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgKQEAgLTE0MSw2ICYjNDM7MTQxLDkgQEAgY29uc3Qgc3RydWN0IHJ0d190YWJsZSBuYW1lICMjIF90YmwgPSB7CQkJXAogI2RlZmluZSBEQUNLX1JGXzg4MjJDCQkxCiAjZGVmaW5lIERBQ0tfU05fODgyMkMJCTEwMAogCiYjNDM7I2RlZmluZSBSVFc4ODIyQ19EQUNfSVZfTUFTSyBHRU5NQVNLKDIxLCAxMikKJiM0MzsjZGVmaW5lIFJUVzg4MjJDX0RBQ19RVl9NQVNLIEdFTk1BU0soOSwgMCkKJiM0MzsKIC8qIHBoeSBzdGF0dXMgcGFnZTAgKi8KICNkZWZpbmUgR0VUX1BIWV9TVEFUX1AwX1BXREJfQShwaHlfc3RhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJbGUzMl9nZXRfYml0cygqKChfX2xlMzIgKikocGh5X3N0YXQpICYjNDM7IDB4MDApLCBHRU5NQVNLKDE1LCA4KSkKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDcvMzwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE1IDA2OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYwNzEKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAxNzkyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVuaW5pdGlhbGl6ZWQgTWVtb3J5IFJpc2sgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYHJ0dzg4MjJjLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGNoYW5nZXMgaW4gYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlYCwgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCwgYW5kIGBydHc4ODIyY19kYWNfaXFfb2Zmc2V0YC4gIFRoZSBwYXRjaCBwcmltYXJpbHkgc3dhcHMgb3V0IGN1c3RvbSBzb3J0aW5nIGFuZCBtaW4vbWF4IGxvZ2ljIGZvciB0aGUgc3RhbmRhcmQgYHNvcnQoKWAgZnVuY3Rpb24gZnJvbSBgbGludXgvc29ydC5oYCwgd2hpY2ggaXMgYSBnb29kIG1vdmUgZm9yIG1haW50YWluYWJpbGl0eSBhbmQgcG9zc2libHkgcGVyZm9ybWFuY2UuIFRoZSBjaGFuZ2UgaW4gYXJyYXkgdHlwZXMgZnJvbSBgdTMyYCB0byBgczMyYCBhbmQgdGhlIHVzZSBvZiBgRklFTERfR0VUX1NJR05FRGAgZm9yIHJlZ2lzdGVyIHJlYWRzIGFyZSBhbHNvIHN0YW5kYXJkIHByb2NlZHVyZSBpbiB0aGVzZSBzaXR1YXRpb25zLgoKTXkgY29uY2VybiwgaG93ZXZlciwgaXMgd2hldGhlciB0aGlzIGludHJvZHVjZXMgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgcmlza3MsIHdoaWNoIGlzIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uIFRoZSBhcnJheXMgYGl2YCBhbmQgYHF2YCBhcmUgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayB3aXRoaW4gYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAsIGFzIGBzMzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdO2AsIHdoZXJlIGBEQUNLX1NOXzg4MjJDYCBpcyAxMDAuICBTbywgd2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgMTAwIGBzMzJgIGVsZW1lbnRzIGZvciBlYWNoIGFycmF5LCBhbGwgYWxsb2NhdGVkIG9uIHRoZSBzdGFjay4KCk5vdywgZG8gdGhlc2UgYXJyYXlzIGdldCBmdWxseSBpbml0aWFsaXplZCBiZWZvcmUgdXNlPyBJIGxvb2sgYXQgaG93IHRoZSBhcnJheXMgYXJlIHBvcHVsYXRlZCwgd2hpY2ggaXMgdmlhIGBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZWAuIFRoZSBzYW1wbGUgZnVuY3Rpb24gcmVhZHMgYSByZWdpc3RlciBhbmQgcG9wdWxhdGVzIHRoZSBhcnJheXMgaW5zaWRlIGEgYHdoaWxlYCBsb29wIHRoYXQgY2FuIHRlcm1pbmF0ZSBlYXJseSBpZiBhIGNvdW50ZXIgYGNudGAgcmVhY2hlcyAxMDAwMCBiZWZvcmUgYWxsIGFycmF5IGVsZW1lbnRzIGFyZSBpbml0aWFsaXplZC4gVGhlIGNoZWNrIGZvciB0ZXJtaW5hdGlvbiBjb25kaXRpb25zIGlzOiBgaSAmbHQ7IERBQ0tfU05fODgyMkMgJmFtcDsmYW1wOyBjbnQgJmx0OyAxMDAwMGAsIHNvIGlmIGBjbnRgIHJlYWNoZXMgMTAwMDAsIHRoZSBhcnJheSBgaXZgIGFuZCBgcXZgIGVsZW1lbnRzIHdpbGwgYmUgcGFydGlhbGx5IHVuaW5pdGlhbGl6ZWQuICBJIGltbWVkaWF0ZWx5IHJlY29nbml6ZSB0aGlzIGFzIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuCgpCdXQgaG9sZCBvbiwgbGV0IG1lIHF1aWNrbHkgZ28gYmFjayBhbmQgY2hlY2sgaWYgdGhpcyB3YXMgYSAqbmV3KiBwcm9ibGVtIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaC4gQW5kIGl0JiMzOTtzIG5vdC4gVGhlIG9sZCBpbXBsZW1lbnRhdGlvbiB1c2luZyBgdTMyYCBoYWQgdGhlIHNhbWUgY29uZGl0aW9uLiBUaGlzIG1lYW5zIHRoYXQgZXZlbiBiZWZvcmUgbXkgY2hhbmdlcywgdGhlIHByb2dyYW0gd2FzIGFsc28gc3ViamVjdCB0byB1bmluaXRpYWxpemVkIG1lbW9yeSBiZWluZyByZWFkLiBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoZSB0eXBlIGNvbnZlcnNpb24gZnJvbSBgdTMyYCB0byBgczMyYCAoYW5kIHRoZSBjaGFuZ2UgaW4gc29ydGluZyBtZWNoYW5pc20pLgoKU28sIHdoYXQgaGFwcGVucyBpZiBgaXZgIGFuZCBgcXZgIGFyZSBvbmx5ICpwYXJ0aWFsbHkqIGluaXRpYWxpemVkLCBhbmQgd2UgcmVhZCB0aGUgdmFsdWVzIGxhdGVyPyBUaGUgZnVuY3Rpb24gYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBpcyBjYWxsZWQgbmV4dCwgYW5kIGluc2lkZSBpdCwgd2UgaGF2ZSBhIGxvb3AgdGhhdCByZWFkcyBgaXZbaV1gIGFuZCBgcXZbaV1gLCB0aGVuIHdlIHJ1biBgc29ydCgpYCBhbmQgYHJ0dzg4MjJjX2RhY19pcV9vZmZzZXRgLCBhbGwgcG90ZW50aWFsbHkgcmVhZGluZyB0aGVzZSB1bmluaXRpYWxpemVkIHZhbHVlcy4gIFRoaXMgaXMgYSBkZWZpbml0ZSBpc3N1ZSDigJMgcmVhZGluZyB1bmluaXRpYWxpemVkIG1lbW9yeSwgZXZlbiBpZiBpdCYjMzk7cyBub3QgYSAqbmV3KiBwcm9ibGVtLCBpcyBzdGlsbCBhIGNyaXRpY2FsIG9uZS4KClRoZSBmaW5hbCBxdWVzdGlvbjogZG9lcyB0aGlzIGxlYWsgdG8gdXNlcnNwYWNlPyBMb29raW5nIGF0IGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgLCBpdCB0YWtlcyBgdTMyICppX3ZhbHVlYCBhbmQgYHUzMiAqcV92YWx1ZWAgYXMgYXJndW1lbnRzLCBhbmQgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBjYWxjdWxhdGVzIHZhbHVlcyBmb3IgdGhlc2UgcG9pbnRlcnMuICBTbywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgIGlzIGNhbGxlZCB0byBzZWUgaWYgdGhlIHJlc3VsdGluZyB2YWx1ZXMgYXJlIHBhc3NlZCB0byBvdGhlciBmdW5jdGlvbnMuIEkmIzM5O2xsIHVzZSBgZ3JlcHBlcmAgdG8gc2VhcmNoIGZvciBjYWxsZXJzLiBUaGlzIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0byB1bmRlcnN0YW5kIHRoZSBzY29wZSBvZiB0aGUgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yNDQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDAtXHRcdFx0XHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMzE9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9hZGMoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY4LVx0XHRydHdfd3JpdGUzMihydHdkZXYsIDB4MWMyNCwgMHgwMDAxMDAwMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY5Olx0XHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcdTAwMjZpYywgXHUwMDI2cWMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM3MC1cdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zODgtXHRcdHJ0d193cml0ZTMyKHJ0d2RldiwgMHgxYzNjLCBwYXRoX3NlbCAmIzQzOyAweDgxMDMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM4OTpcdFx0cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHJ0d2RldiwgXHUwMDI2aWMsIFx1MDAyNnFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zOTAtXHRcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDU0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ3MjpcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFx1MDAyNmljX2luLCBcdTAwMjZxY19pbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDczLVx0aWMgPSBpY19pbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NTAzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTUzLVx0cnR3X3dyaXRlMzIocnR3ZGV2LCBiYXNlX2FkZHIgJiM0MzsgMHg2MCwgMHhmMDAwMDAwMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTU0Olx0cnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHJ0d2RldiwgXHUwMDI2aWMsIFx1MDAyNnFjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01NTUtXHRpZiAoaWMgXHUwMDNlPSAweDEwKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ5LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNSAwNjozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzE0CgkJCQkJCQlvdXRwdXQ6IDE3NwoJCQkJCQkJdGhvdWdodHM6IDM5NDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgdGhlIHJ0dzg4MjJjIElRIENhbGlicmF0aW9uIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IHByaW1hcnkgY29uY2VybiBpcyBLTVNBTiBhbmQgd2hldGhlciB0aGlzIHBhdGNoIGludHJvZHVjZXMgb3IgZXhwb3NlcyBhbnkgbmV3IHJlYWRzIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBvciBhbnkgb3V0LW9mLWJvdW5kcyBhY2Nlc3Nlcy4KCkluaXRpYWxseSwgSSYjMzk7bSBzZWVpbmcgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGFuZCBgcnR3ODgyMmNfZGFjX2lxX29mZnNldGAgYXJlIHJlYWRpbmcgZGF0YSBhbmQgcG90ZW50aWFsbHkgdXNpbmcgdGhlIHJlc3VsdCBpbiB3cml0ZXMgdG8gaGFyZHdhcmUgb3IgY29udHJvbCBmbG93LiBUaGlzIHJhaXNlcyBhIGZsYWcuICBLTVNBTiBpcyBkZXNpZ25lZCB0byBjYXRjaCB0aGlzLiAgSWYgYGNudGAgaW4gdGhlIGNvZGUgaGl0cyAxMDAwMCwgYW5kIGBpYCAmbHQ7IGBEQUNLX1NOXzg4MjJDYCwgaXQgbG9va3MgbGlrZSB0aGUgYXJyYXlzIGBpdmAgYW5kIGBxdmAgbWlnaHQgYmUgcGFydGlhbGx5IHVuaW5pdGlhbGl6ZWQuICBUaGVuLCB0aGUgY29kZSBjYWxscyBgc29ydCgpYCBvbiB0aGVtLiAgVGhhdCB3aWxsIHJlYWQgdGhlIHZhbHVlcyBpbiB0aG9zZSBhcnJheXMuICAqKlRoYXQgc2hvdWxkIHRyaWdnZXIgS01TQU4qKi4gQnV0LCBpcyB0aGlzICpuZXcqPwoKTGV0JiMzOTtzIGxvb2sgYXQgdGhlIHByZS1wYXRjaCBjb2RlLiBCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB3YXMgY2FsbGluZyBgcnR3ODgyMmNfZGFjX2lxX3NvcnRgLCB3aGljaCBhbHNvIGRpZCBzb3J0aW5nIHVzaW5nIGN1c3RvbSBsb2dpYy4gVGhlIGNvZGUgcmVhZHMgdGhlIGFycmF5IGVsZW1lbnRzIGR1cmluZyBzb3J0aW5nLiBUaGVyZWZvcmUsIHRoaXMgaXNzdWUgd2FzIHByZXNlbnQgYmVmb3JlIHRoZSBwYXRjaCBhcyB3ZWxsLiBLTVNBTiB3b3VsZCBoYXZlIGNhdWdodCB0aGlzIGNvbmRpdGlvbiByZWdhcmRsZXNzLCBzbyB0aGUgcGF0Y2ggZG9lc24mIzM5O3QgKmV4cG9zZSogb3IgKmludHJvZHVjZSogYW55ICpuZXcqIGlzc3VlIGhlcmUuCgpUaGUgcGF0Y2ggaXRzZWxmIGludm9sdmVzIGEgY2hhbmdlIGZyb20gcmVhZGluZyBkYXRhIHVzaW5nIGBydHdfcmVhZDMyX21hc2tgIHRvIHVzaW5nIGBydHdfcmVhZDMyYCBhbmQgYEZJRUxEX0dFVF9TSUdORURgIG1hY3Jvcy4gIFRoZSBtYWNyb3Mgc2ltcGx5IGV4dHJhY3QgYml0ZmllbGRzLiBUaGlzIHNob3VsZG4mIzM5O3QgYmUgYSBwcm9ibGVtLCB0aGV5JiMzOTtyZSBub3QgZG9pbmcgYW55dGhpbmcgdW51c3VhbCwganVzdCBtYXNraW5nIGFuZCBzaWduLWV4dGVuZGluZyB0aGUgcmVhZCB2YWx1ZXMuIGBGSUVMRF9HRVRfU0lHTkVEYCBpc24mIzM5O3QgYSBsaWtlbHkgY3VscHJpdC4KCk5vdywgbGV0JiMzOTtzIHRoaW5rIGFib3V0IGBydHc4ODIyY19kYWNfaXFfb2Zmc2V0YC4gSXQgaXRlcmF0ZXMgdGhyb3VnaCBhbiBhcnJheSBgdmVjYC4gRG9lcyB0aGUgcGF0Y2ggY2hhbmdlIHRoaXM/IEluIGZhY3QsIHRoZSBwYXRjaCAqZG9lcyBub3QqIGNoYW5nZSB0aGUgbG9naWMgaW4gdGhpcyBjYXNlLiAgSXQgc2VlbXMgdGhlIGNvZGUgaXMgdXNpbmcgdGhlIGVsZW1lbnRzLCBzbyBLTVNBTiBzaG91bGQgY2F0Y2ggYW55IGlzc3VlcyB3aXRoIHVuaW5pdGlhbGl6ZWQgcmVhZHMuCgpTbywgYXJlIHRoZXJlIGFueSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzICppbnRyb2R1Y2VkKiBieSB0aGUgcGF0Y2g/IFRoZSBjb21wYXJpc29uIGZ1bmN0aW9uLCBgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzJgLCBpcyBzdGFuZGFyZCwgYW5kIHRoZSBjYWxscyB0byBgc29ydGAgYXJlIG9uIGFycmF5cyBhbGxvY2F0ZWQgaW4gdGhlIGNhbGxlciBvbiB0aGUgc3RhY2ssIGFuZCBpdCYjMzk7cyBhbGwgYmFzZWQgb24gdGhlIGRhdGEgd2l0aGluIHRob3NlIGFycmF5cy4gVGhpcyBkb2VzbiYjMzk7dCBzZWVtIHRvIGJlIGEgcHJvYmxlbS4gVGhlIGFycmF5cyBgaXZgIGFuZCBgcXZgIGFyZSBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrLiBUaGUgdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWUsIGFnYWluLCBpc24mIzM5O3QgbmV3LiAgSWYgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlYCAqZG9lc24mIzM5O3QqIGZpbGwgdGhlIGFycmF5IGBpdmAgYW5kIGBxdmAgY29tcGxldGVseSwgdGhlbiBgc29ydCgpYCB3aWxsIHJlYWQgZnJvbSB1bmluaXRpYWxpemVkIHN0YWNrIG1lbW9yeS4gSXQgd2FzICphbHdheXMqIHRoZSBjYXNlLgoKSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gRG9lcyB0aGUgcGF0Y2ggY2hhbmdlIGhvdyB0aGUgc2FtcGxlIGZpbGxzIHRoZSBhcnJheT8gQmVmb3JlLCB0aGVyZSB3YXMgYSBjaGVjazogIGBydHc4ODIyY19kYWNfaXFfY2hlY2tgLCBidXQgdGhlIGxvZ2ljIGlzIGVxdWl2YWxlbnQuIFRoZSBjaGVjayBmb3IgaW50ZWdlciBvdmVyZmxvdyAobm93IHVzaW5nIHNpZ25lZCBpbnRlZ2Vycywgc28gbm8gbW9yZSBpc3N1ZXMgd2l0aCB0d28mIzM5O3MgY29tcGxlbWVudCB1bnNpZ25lZCAxMC1iaXQgaW50ZWdlcikgaXMgaWRlbnRpY2FsLCB0aGVyZWZvcmUsIGl0IHJlbWFpbnMgdGhlIHNhbWUuIFRoZSBjb2RlIGp1c3QgY2hhbmdlZCB0aGUgdHlwZXMuCgpOb3csIGlmIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAgaXMgY2FsbGVkIHdpdGggdW5pbml0aWFsaXplZCBtZW1vcnksIHRoYXQmIzM5O3MgcG9zc2libGUuICBUaGUgY29kZSBtb2RpZmllcyB0aGUgZmlyc3QgYW5kIGxhc3QgZWxlbWVudHM6ICBgaXZbMF1gLCBgcXZbMF1gLCBgaXZbREFDS19TTl84ODIyQyAtIDFdYCwgYW5kIGBxdltEQUNLX1NOXzg4MjJDIC0gMV1gLiBUaGVuLCB0aGUgbG9vcCByZWFkcyB0aGUgZW50aXJlIGFycmF5LiAgSWYgdGhlIGFycmF5cyBhcmUgdW5pbml0aWFsaXplZCwgdGhlbiB0aGF0IGlzIGFuIGlzc3VlLiAgS01TQU4gd2lsbCBjYXRjaCBpdCwgYnV0IHRoaXMgaXMgdGhlIHByZS1leGlzdGluZyBiZWhhdmlvci4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBpcyByZWZhY3RvcmluZy4gSXQgcmVwbGFjZXMgY3VzdG9tIHNvcnRpbmcgYW5kIG1pbi9tYXggbG9naWMgd2l0aCBgc29ydGAgYW5kIHN0YW5kYXJkIGNvbXBhcmlzb25zLiBJdCBkb2VzICpub3QqIGludHJvZHVjZSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNlLiBJZiB0aGUgaGFyZHdhcmUgdGltZXMgb3V0LCB0aGF0JiMzOTtzIGFscmVhZHkgaW4gdGhlIG9sZCBjb2RlLiAgS01TQU4gd2lsbCBjYXRjaCBpdC4KCkxldCYjMzk7cyBkbyBhIGZpbmFsIGNoZWNrLiAgYGl2YCBhbmQgYHF2YCBhcmUgYWxsb2NhdGVkIGluIGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgLiBgREFDS19TTl84ODIyQ2AgaXMgdGhlIGNvcnJlY3QgdmFsdWUuIFRoZSBgRklFTERfR0VUX1NJR05FRGAgbWFjcm9zIGV4dHJhY3QgdGhlIGNvcnJlY3QgYml0cy4gIFRoZSBgc29ydGAgZnVuY3Rpb24gdXNlcyBhIHN0YW5kYXJkIGNvbXBhcmlzb24gZnVuY3Rpb24uCgpCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB1c2VkIGEgY3VzdG9tIHNvcnRpbmcgZnVuY3Rpb24uCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTUgMDY6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcmVmYWN0b3JzIElRIGNhbGlicmF0aW9uIGxvZ2ljIGluIHRoZSBydHc4OCBkcml2ZXIsIHJlcGxhY2luZyBjdXN0b20gMTAtYml0IHR3byYjMzk7cyBjb21wbGVtZW50IGFyaXRobWV0aWMgYW5kIGEgY3VzdG9tIGJ1YmJsZSBzb3J0IHdpdGggc3RhbmRhcmQgc2lnbmVkIGludGVnZXJzIChzMzIpIGFuZCB0aGUga2VybmVsJiMzOTtzIHNvcnQoKSBmdW5jdGlvbi4gV2hpbGUgdGhlIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgYGl2YCBhbmQgYHF2YCBjb3VsZCBwb3RlbnRpYWxseSBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBpZiB0aGUgaGFyZHdhcmUgcmVhZCBsb29wIHRpbWVzIG91dCwgdGhpcyBleGFjdCBzYW1lIGJlaGF2aW9yIGFuZCBzdWJzZXF1ZW50IHJlYWRpbmcgb2YgdGhlc2UgYXJyYXlzIGV4aXN0ZWQgcHJpb3IgdG8gdGhlIHBhdGNoLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgYWxsb2NhdGlvbnMsIG5vciBkb2VzIGl0IGV4cG9zZSBhbnkga2VybmVsIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlLiBBbnkgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWVzIChzdWNoIGFzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMpIHdvdWxkIGJlIGNhdWdodCBieSBzdGFuZGFyZCBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCByZWZhY3RvcnMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIHJ0dzg4IGRyaXZlciwgcmVwbGFjaW5nIGN1c3RvbSAxMC1iaXQgdHdvJiMzOTtzIGNvbXBsZW1lbnQgYXJpdGhtZXRpYyBhbmQgYSBjdXN0b20gYnViYmxlIHNvcnQgd2l0aCBzdGFuZGFyZCBzaWduZWQgaW50ZWdlcnMgKHMzMikgYW5kIHRoZSBrZXJuZWwmIzM5O3Mgc29ydCgpIGZ1bmN0aW9uLiBXaGlsZSB0aGUgc3RhY2stYWxsb2NhdGVkIGFycmF5cyBgaXZgIGFuZCBgcXZgIGNvdWxkIHBvdGVudGlhbGx5IGJlIHBhcnRpYWxseSB1bmluaXRpYWxpemVkIGlmIHRoZSBoYXJkd2FyZSByZWFkIGxvb3AgdGltZXMgb3V0LCB0aGlzIGV4YWN0IHNhbWUgYmVoYXZpb3IgYW5kIHN1YnNlcXVlbnQgcmVhZGluZyBvZiB0aGVzZSBhcnJheXMgZXhpc3RlZCBwcmlvciB0byB0aGUgcGF0Y2guIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyB1bmluaXRpYWxpemVkIG1lbW9yeSBhbGxvY2F0aW9ucywgbm9yIGRvZXMgaXQgZXhwb3NlIGFueSBrZXJuZWwgc3RydWN0dXJlcyB0byB1c2Vyc3BhY2UuIEFueSBwb3RlbnRpYWwgbWVtb3J5IHNhZmV0eSBpc3N1ZXMgKHN1Y2ggYXMgb3V0LW9mLWJvdW5kcyBhY2Nlc3Nlcykgd291bGQgYmUgY2F1Z2h0IGJ5IHN0YW5kYXJkIEtBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzM6MzMuOTQ4NTQ4NjE4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1OTk4NzAwMjg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdXNiX3Byb2JlXCIsXG4gICAgXCJydHdfY29yZV9zdGFydFwiLFxuICAgIFwicnR3X3Bvd2VyX29uXCJcbiAgXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIHJ0dzg4IGRyaXZlciwgcmVwbGFjaW5nIGN1c3RvbSAxMC1iaXQgdHdvJ3MgY29tcGxlbWVudCBhcml0aG1ldGljIGFuZCBhIGN1c3RvbSBidWJibGUgc29ydCB3aXRoIHN0YW5kYXJkIHNpZ25lZCBpbnRlZ2VycyAoczMyKSBhbmQgdGhlIGtlcm5lbCdzIHNvcnQoKSBmdW5jdGlvbi4gV2hpbGUgdGhlIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgYGl2YCBhbmQgYHF2YCBjb3VsZCBwb3RlbnRpYWxseSBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBpZiB0aGUgaGFyZHdhcmUgcmVhZCBsb29wIHRpbWVzIG91dCwgdGhpcyBleGFjdCBzYW1lIGJlaGF2aW9yIGFuZCBzdWJzZXF1ZW50IHJlYWRpbmcgb2YgdGhlc2UgYXJyYXlzIGV4aXN0ZWQgcHJpb3IgdG8gdGhlIHBhdGNoLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgYWxsb2NhdGlvbnMsIG5vciBkb2VzIGl0IGV4cG9zZSBhbnkga2VybmVsIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlLiBBbnkgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWVzIChzdWNoIGFzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMpIHdvdWxkIGJlIGNhdWdodCBieSBzdGFuZGFyZCBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGFuZCBjYWxpYnJhdGlvbiBzZXF1ZW5jZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiB2YXJpYW50IG9mIHRoZSBkcml2ZXIgKHJ0dzg4Xzg4MjJjdSkgdXNpbmcgVVNCIGdhZGdldCBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjMzOjMzLjk0ODU1NTg2OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQwNzQ4OTYzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDM0M2UxNmUzODE3ZjI1NjM5NGNiMzk0NzE2YmJlNTAxYzMzYmE0MmRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBBdWcgMTUgMDY6MzM6MzIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jXFxuaW5kZXggMjQ0YzgwMjY0NzljMi4uMDE0MGYyZTY0NGNhOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcXG5AQCAtMyw2ICszLDcgQEBcXG4gICovXFxuIFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb3J0LmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcXCJtYWluLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJjb2V4LmhcXFwiXFxuICNpbmNsdWRlIFxcXCJmdy5oXFxcIlxcbkBAIC0xOCw3ICsxOSw3IEBAXFxuICNpbmNsdWRlIFxcXCJiZi5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiZWZ1c2UuaFxcXCJcXG4gXFxuLSNkZWZpbmUgSVFLX0RPTkVfODgyMkMgMHhhYVxcbisjZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWE0XFxuIFxcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcXG4gXFx0XFx0XFx0XFx0ICAgICB1OCByeF9wYXRoLCBib29sIGlzX3R4Ml9wYXRoKTtcXG5AQCAtMTUzLDg0ICsxNTQsMjUgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX3Jlc3RvcmVfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuIFxcdH1cXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfbWlubWF4X2NtcChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgdmFsdWUsXFxuLVxcdFxcdFxcdFxcdCAgIHUzMiAqbWluLCB1MzIgKm1heClcXG4rc3RhdGljIGludCBydHc4ODIyY19kYWNfaXFfY21wX3MzMihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKVxcbiB7XFxuLVxcdGlmICh2YWx1ZSBcXHUwMDNlPSAweDIwMCkge1xcbi1cXHRcXHRpZiAoKm1pbiBcXHUwMDNlPSAweDIwMCkge1xcbi1cXHRcXHRcXHRpZiAoKm1pbiBcXHUwMDNlIHZhbHVlKVxcbi1cXHRcXHRcXHRcXHQqbWluID0gdmFsdWU7XFxuLVxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdCptaW4gPSB2YWx1ZTtcXG4tXFx0XFx0fVxcbi1cXHRcXHRpZiAoKm1heCBcXHUwMDNlPSAweDIwMCkge1xcbi1cXHRcXHRcXHRpZiAoKm1heCBcXHUwMDNjIHZhbHVlKVxcbi1cXHRcXHRcXHRcXHQqbWF4ID0gdmFsdWU7XFxuLVxcdFxcdH1cXG4tXFx0fSBlbHNlIHtcXG4tXFx0XFx0aWYgKCptaW4gXFx1MDAzYyAweDIwMCkge1xcbi1cXHRcXHRcXHRpZiAoKm1pbiBcXHUwMDNlIHZhbHVlKVxcbi1cXHRcXHRcXHRcXHQqbWluID0gdmFsdWU7XFxuLVxcdFxcdH1cXG4rXFx0czMyIHZhbF9hID0gKihjb25zdCBzMzIgKilhO1xcbitcXHRzMzIgdmFsX2IgPSAqKGNvbnN0IHMzMiAqKWI7XFxuIFxcbi1cXHRcXHRpZiAoKm1heCAgXFx1MDAzZT0gMHgyMDApIHtcXG4tXFx0XFx0XFx0Km1heCA9IHZhbHVlO1xcbi1cXHRcXHR9IGVsc2Uge1xcbi1cXHRcXHRcXHRpZiAoKm1heCBcXHUwMDNjIHZhbHVlKVxcbi1cXHRcXHRcXHRcXHQqbWF4ID0gdmFsdWU7XFxuLVxcdFxcdH1cXG4tXFx0fVxcbitcXHRyZXR1cm4gKHZhbF9hIFxcdTAwM2UgdmFsX2IpIC0gKHZhbF9hIFxcdTAwM2MgdmFsX2IpO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqdjEsIHUzMiAqdjIpXFxuLXtcXG4tXFx0aWYgKCp2MSBcXHUwMDNlPSAweDIwMCBcXHUwMDI2XFx1MDAyNiAqdjIgXFx1MDAzZT0gMHgyMDApIHtcXG4tXFx0XFx0aWYgKCp2MSBcXHUwMDNlICp2MilcXG4tXFx0XFx0XFx0c3dhcCgqdjEsICp2Mik7XFxuLVxcdH0gZWxzZSBpZiAoKnYxIFxcdTAwM2MgMHgyMDAgXFx1MDAyNlxcdTAwMjYgKnYyIFxcdTAwM2MgMHgyMDApIHtcXG4tXFx0XFx0aWYgKCp2MSBcXHUwMDNlICp2MilcXG4tXFx0XFx0XFx0c3dhcCgqdjEsICp2Mik7XFxuLVxcdH0gZWxzZSBpZiAoKnYxIFxcdTAwM2MgMHgyMDAgXFx1MDAyNlxcdTAwMjYgKnYyIFxcdTAwM2U9IDB4MjAwKSB7XFxuLVxcdFxcdHN3YXAoKnYxLCAqdjIpO1xcbi1cXHR9XFxuLX1cXG4gXFxuLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpXFxuK3N0YXRpYyB1MzIgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKnZlYylcXG4ge1xcbi1cXHR1MzIgaSwgajtcXG4rXFx0czMyIHN1bSA9IDA7XFxuIFxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgREFDS19TTl84ODIyQyAtIDE7IGkrKykge1xcbi1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgKERBQ0tfU05fODgyMkMgLSAxIC0gaSkgOyBqKyspIHtcXG4tXFx0XFx0XFx0X19ydHc4ODIyY19kYWNfaXFfc29ydChydHdkZXYsIFxcdTAwMjZpdltqXSwgXFx1MDAyNml2W2ogKyAxXSk7XFxuLVxcdFxcdFxcdF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBcXHUwMDI2cXZbal0sIFxcdTAwMjZxdltqICsgMV0pO1xcbi1cXHRcXHR9XFxuLVxcdH1cXG4tfVxcbi1cXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnZlYywgdTMyICp2YWwpXFxuLXtcXG4tXFx0dTMyIHAsIG0sIHQsIGk7XFxuLVxcbi1cXHRtID0gMDtcXG4tXFx0cCA9IDA7XFxuLVxcdGZvciAoaSA9IDEwOyBpIFxcdTAwM2MgREFDS19TTl84ODIyQyAtIDEwOyBpKyspIHtcXG4tXFx0XFx0aWYgKHZlY1tpXSBcXHUwMDNlIDB4MjAwKVxcbi1cXHRcXHRcXHRtID0gKDB4NDAwIC0gdmVjW2ldKSArIG07XFxuLVxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0cCA9IHZlY1tpXSArIHA7XFxuLVxcdH1cXG4rXFx0Zm9yICh1MzIgaSA9IDEwOyBpIFxcdTAwM2MgREFDS19TTl84ODIyQyAtIDEwOyBpKyspXFxuK1xcdFxcdHN1bSArPSB2ZWNbaV07XFxuIFxcbi1cXHRpZiAocCBcXHUwMDNlIG0pIHtcXG4tXFx0XFx0dCA9IHAgLSBtO1xcbi1cXHRcXHR0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApO1xcbi1cXHR9IGVsc2Uge1xcbi1cXHRcXHR0ID0gbSAtIHA7XFxuLVxcdFxcdHQgPSB0IC8gKERBQ0tfU05fODgyMkMgLSAyMCk7XFxuLVxcdFxcdGlmICh0ICE9IDB4MClcXG4tXFx0XFx0XFx0dCA9IDB4NDAwIC0gdDtcXG4tXFx0fVxcbitcXHRzMzIgYXZnID0gc3VtIC8gKERBQ0tfU05fODgyMkMgLSAyMCk7XFxuIFxcbi1cXHQqdmFsID0gdDtcXG4rXFx0cmV0dXJuIGF2ZyBcXHUwMDNlPSAwID8gKHUzMilhdmcgOiAodTMyKSgweDQwMCArIGF2Zyk7XFxuIH1cXG4gXFxuIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxcbkBAIC0yNzEsMjkgKzIxMywyNyBAQCBzdGF0aWMgdTMyIHJ0dzg4MjJjX2dldF9wYXRoX3JlYWRfYWRkcih1OCBwYXRoKVxcbiBcXHRyZXR1cm4gYmFzZV9hZGRyO1xcbiB9XFxuIFxcbi1zdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVlKVxcbitzdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyIHZhbHVlKVxcbiB7XFxuLVxcdGJvb2wgcmV0ID0gdHJ1ZTtcXG4gXFxuLVxcdGlmICgodmFsdWUgXFx1MDAzZT0gMHgyMDAgXFx1MDAyNlxcdTAwMjYgKDB4NDAwIC0gdmFsdWUpIFxcdTAwM2UgMHg2NCkgfHxcXG4tXFx0ICAgICh2YWx1ZSBcXHUwMDNjIDB4MjAwIFxcdTAwMjZcXHUwMDI2IHZhbHVlIFxcdTAwM2UgMHg2NCkpIHtcXG4tXFx0XFx0cmV0ID0gZmFsc2U7XFxuK1xcdGlmICh2YWx1ZSBcXHUwMDNlIDEwMCB8fCB2YWx1ZSBcXHUwMDNjIC0xMDApIHtcXG4gXFx0XFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCBcXFwiW0RBQ0tdIEVycm9yIG92ZXJmbG93XFxcXG5cXFwiKTtcXG4rXFx0XFx0cmV0dXJuIGZhbHNlO1xcbiBcXHR9XFxuIFxcbi1cXHRyZXR1cm4gcmV0O1xcbitcXHRyZXR1cm4gdHJ1ZTtcXG4gfVxcbiBcXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdilcXG4rc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyICppdiwgczMyICpxdilcXG4ge1xcbiBcXHR1MzIgdGVtcDtcXG4gXFx0aW50IGkgPSAwLCBjbnQgPSAwO1xcbiBcXG4gXFx0d2hpbGUgKGkgXFx1MDAzYyBEQUNLX1NOXzg4MjJDIFxcdTAwMjZcXHUwMDI2IGNudCBcXHUwMDNjIDEwMDAwKSB7XFxuIFxcdFxcdGNudCsrO1xcbi1cXHRcXHR0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7XFxuLVxcdFxcdGl2W2ldID0gKHRlbXAgXFx1MDAyNiAweDNmZjAwMCkgXFx1MDAzZVxcdTAwM2UgMTI7XFxuLVxcdFxcdHF2W2ldID0gdGVtcCBcXHUwMDI2IDB4M2ZmO1xcbitcXHRcXHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XFxuK1xcdFxcdGl2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XFxuK1xcdFxcdHF2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XFxuIFxcbiBcXHRcXHRpZiAocnR3ODgyMmNfZGFjX2lxX2NoZWNrKHJ0d2RldiwgaXZbaV0pIFxcdTAwMjZcXHUwMDI2XFxuIFxcdFxcdCAgICBydHc4ODIyY19kYWNfaXFfY2hlY2socnR3ZGV2LCBxdltpXSkpXFxuQEAgLTMwMiwxMyArMjQyLDEzIEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpXFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLVxcdFxcdFxcdFxcdCAgICAgICB1MzIgKml2LCB1MzIgKnF2LFxcbitcXHRcXHRcXHRcXHQgICAgICAgczMyICppdiwgczMyICpxdixcXG4gXFx0XFx0XFx0XFx0ICAgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxcbiB7XFxuLVxcdHUzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7XFxuK1xcdHMzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7XFxuIFxcdHUzMiBpX2RlbHRhLCBxX2RlbHRhO1xcbiBcXHR1MzIgdGVtcDtcXG4tXFx0aW50IGksIGNudCA9IDA7XFxuK1xcdHUzMiBpLCBjbnQgPSAwO1xcbiBcXG4gXFx0ZG8ge1xcbiBcXHRcXHRpX21pbiA9IGl2WzBdO1xcbkBAIC0zMTYsMjMgKzI1NiwxOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbiBcXHRcXHRxX21pbiA9IHF2WzBdO1xcbiBcXHRcXHRxX21heCA9IHF2WzBdO1xcbiBcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgREFDS19TTl84ODIyQzsgaSsrKSB7XFxuLVxcdFxcdFxcdHJ0dzg4MjJjX3JmX21pbm1heF9jbXAocnR3ZGV2LCBpdltpXSwgXFx1MDAyNmlfbWluLCBcXHUwMDI2aV9tYXgpO1xcbi1cXHRcXHRcXHRydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgcXZbaV0sIFxcdTAwMjZxX21pbiwgXFx1MDAyNnFfbWF4KTtcXG4rXFx0XFx0XFx0aWYgKGl2W2ldIFxcdTAwM2MgaV9taW4pXFxuK1xcdFxcdFxcdFxcdGlfbWluID0gaXZbaV07XFxuK1xcdFxcdFxcdGlmIChpdltpXSBcXHUwMDNlIGlfbWF4KVxcbitcXHRcXHRcXHRcXHRpX21heCA9IGl2W2ldO1xcbitcXHRcXHRcXHRpZiAocXZbaV0gXFx1MDAzYyBxX21pbilcXG4rXFx0XFx0XFx0XFx0cV9taW4gPSBxdltpXTtcXG4rXFx0XFx0XFx0aWYgKHF2W2ldIFxcdTAwM2UgcV9tYXgpXFxuK1xcdFxcdFxcdFxcdHFfbWF4ID0gcXZbaV07XFxuIFxcdFxcdH1cXG4gXFxuLVxcdFxcdGlmIChpX21heCBcXHUwMDNjIDB4MjAwIFxcdTAwMjZcXHUwMDI2IGlfbWluIFxcdTAwM2MgMHgyMDApXFxuLVxcdFxcdFxcdGlfZGVsdGEgPSBpX21heCAtIGlfbWluO1xcbi1cXHRcXHRlbHNlIGlmIChpX21heCBcXHUwMDNlPSAweDIwMCBcXHUwMDI2XFx1MDAyNiBpX21pbiBcXHUwMDNlPSAweDIwMClcXG4tXFx0XFx0XFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XFxuLVxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0aV9kZWx0YSA9IGlfbWF4ICsgKDB4NDAwIC0gaV9taW4pO1xcbitcXHRcXHRpX2RlbHRhID0gaV9tYXggLSBpX21pbjtcXG4rXFx0XFx0cV9kZWx0YSA9IHFfbWF4IC0gcV9taW47XFxuIFxcbi1cXHRcXHRpZiAocV9tYXggXFx1MDAzYyAweDIwMCBcXHUwMDI2XFx1MDAyNiBxX21pbiBcXHUwMDNjIDB4MjAwKVxcbi1cXHRcXHRcXHRxX2RlbHRhID0gcV9tYXggLSBxX21pbjtcXG4tXFx0XFx0ZWxzZSBpZiAocV9tYXggXFx1MDAzZT0gMHgyMDAgXFx1MDAyNlxcdTAwMjYgcV9taW4gXFx1MDAzZT0gMHgyMDApXFxuLVxcdFxcdFxcdHFfZGVsdGEgPSBxX21heCAtIHFfbWluO1xcbi1cXHRcXHRlbHNlXFxuLVxcdFxcdFxcdHFfZGVsdGEgPSBxX21heCArICgweDQwMCAtIHFfbWluKTtcXG4gXFxuIFxcdFxcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcXG4gXFx0XFx0XFx0XFxcIltEQUNLXSBpOiBtaW49MHglMDh4LCBtYXg9MHglMDh4LCBkZWx0YT0weCUwOHhcXFxcblxcXCIsXFxuQEAgLTM0MSwyOCArMjc3LDI5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuIFxcdFxcdFxcdFxcXCJbREFDS10gcTogbWluPTB4JTA4eCwgbWF4PTB4JTA4eCwgZGVsdGE9MHglMDh4XFxcXG5cXFwiLFxcbiBcXHRcXHRcXHRxX21pbiwgcV9tYXgsIHFfZGVsdGEpO1xcbiBcXG4tXFx0XFx0cnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBpdiwgcXYpO1xcbitcXHRcXHRzb3J0KGl2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xcbitcXHRcXHRzb3J0KHF2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xcbiBcXG4gXFx0XFx0aWYgKGlfZGVsdGEgXFx1MDAzZSA1IHx8IHFfZGVsdGEgXFx1MDAzZSA1KSB7XFxuLVxcdFxcdFxcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcXG4tXFx0XFx0XFx0aXZbMF0gPSAodGVtcCBcXHUwMDI2IDB4M2ZmMDAwKSBcXHUwMDNlXFx1MDAzZSAxMjtcXG4tXFx0XFx0XFx0cXZbMF0gPSB0ZW1wIFxcdTAwMjYgMHgzZmY7XFxuLVxcdFxcdFxcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcXG4tXFx0XFx0XFx0aXZbREFDS19TTl84ODIyQyAtIDFdID0gKHRlbXAgXFx1MDAyNiAweDNmZjAwMCkgXFx1MDAzZVxcdTAwM2UgMTI7XFxuLVxcdFxcdFxcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IHRlbXAgXFx1MDAyNiAweDNmZjtcXG4rXFx0XFx0XFx0dGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpO1xcbitcXHRcXHRcXHRpdlswXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApO1xcbitcXHRcXHRcXHRxdlswXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApO1xcbitcXHRcXHRcXHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XFxuK1xcdFxcdFxcdGl2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApO1xcbitcXHRcXHRcXHRxdltEQUNLX1NOXzg4MjJDIC0gMV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTtcXG4gXFx0XFx0fSBlbHNlIHtcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdH1cXG4gXFx0fSB3aGlsZSAoY250KysgXFx1MDAzYyAxMDApO1xcbiBcXG4tXFx0cnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIGl2LCBpX3ZhbHVlKTtcXG4tXFx0cnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIHF2LCBxX3ZhbHVlKTtcXG4rXFx0KmlfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgaXYpO1xcbitcXHQqcV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdik7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbiBcXHRcXHRcXHRcXHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxcbiB7XFxuLVxcdHUzMiBpdltEQUNLX1NOXzg4MjJDXSwgcXZbREFDS19TTl84ODIyQ107XFxuK1xcdHMzMiBpdltEQUNLX1NOXzg4MjJDXSwgcXZbREFDS19TTl84ODIyQ107XFxuIFxcdHUzMiByZl9hLCByZl9iO1xcbiBcXG4gXFx0cmZfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweDAsIFJGUkVHX01BU0spO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmhcXG5pbmRleCBmYzYyYjY3YTE1ZjIxLi43YmVhOTk2MTQzNTRiIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxcbkBAIC0xNDEsNiArMTQxLDkgQEAgY29uc3Qgc3RydWN0IHJ0d190YWJsZSBuYW1lICMjIF90YmwgPSB7XFx0XFx0XFx0XFxcXFxcbiAjZGVmaW5lIERBQ0tfUkZfODgyMkNcXHRcXHQxXFxuICNkZWZpbmUgREFDS19TTl84ODIyQ1xcdFxcdDEwMFxcbiBcXG4rI2RlZmluZSBSVFc4ODIyQ19EQUNfSVZfTUFTSyBHRU5NQVNLKDIxLCAxMilcXG4rI2RlZmluZSBSVFc4ODIyQ19EQUNfUVZfTUFTSyBHRU5NQVNLKDksIDApXFxuK1xcbiAvKiBwaHkgc3RhdHVzIHBhZ2UwICovXFxuICNkZWZpbmUgR0VUX1BIWV9TVEFUX1AwX1BXREJfQShwaHlfc3RhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuIFxcdGxlMzJfZ2V0X2JpdHMoKigoX19sZTMyICopKHBoeV9zdGF0KSArIDB4MDApLCBHRU5NQVNLKDE1LCA4KSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzM6MzUuMzU2ODk2MTQzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTIyNDA4NjA2MTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdXNiX3Byb2JlXCIsXG4gICAgXCJydHdfY29yZV9zdGFydFwiLFxuICAgIFwicnR3X3Bvd2VyX29uXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGFuZCBjYWxpYnJhdGlvbiBzZXF1ZW5jZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiB2YXJpYW50IG9mIHRoZSBkcml2ZXIgKHJ0dzg4Xzg4MjJjdSkgdXNpbmcgVVNCIGdhZGdldCBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM0M2UxNmUzODE3ZjI1NjM5NGNiMzk0NzE2YmJlNTAxYzMzYmE0MmRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxNSAwNjozMzozMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1xuaW5kZXggMjQ0YzgwMjY0NzljMi4uMDE0MGYyZTY0NGNhOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jXG5AQCAtMyw2ICszLDcgQEBcbiAgKi9cbiBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGUuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvcnQuaFx1MDAzZVxuICNpbmNsdWRlIFwibWFpbi5oXCJcbiAjaW5jbHVkZSBcImNvZXguaFwiXG4gI2luY2x1ZGUgXCJmdy5oXCJcbkBAIC0xOCw3ICsxOSw3IEBAXG4gI2luY2x1ZGUgXCJiZi5oXCJcbiAjaW5jbHVkZSBcImVmdXNlLmhcIlxuIFxuLSNkZWZpbmUgSVFLX0RPTkVfODgyMkMgMHhhYVxuKyNkZWZpbmUgSVFLX0RPTkVfODgyMkMgMHhhYTRcbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcbiBcdFx0XHRcdCAgICAgdTggcnhfcGF0aCwgYm9vbCBpc190eDJfcGF0aCk7XG5AQCAtMTUzLDg0ICsxNTQsMjUgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX3Jlc3RvcmVfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHR9XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX21pbm1heF9jbXAoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVlLFxuLVx0XHRcdFx0ICAgdTMyICptaW4sIHUzMiAqbWF4KVxuK3N0YXRpYyBpbnQgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYilcbiB7XG4tXHRpZiAodmFsdWUgXHUwMDNlPSAweDIwMCkge1xuLVx0XHRpZiAoKm1pbiBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdFx0aWYgKCptaW4gXHUwMDNlIHZhbHVlKVxuLVx0XHRcdFx0Km1pbiA9IHZhbHVlO1xuLVx0XHR9IGVsc2Uge1xuLVx0XHRcdCptaW4gPSB2YWx1ZTtcbi1cdFx0fVxuLVx0XHRpZiAoKm1heCBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdFx0aWYgKCptYXggXHUwMDNjIHZhbHVlKVxuLVx0XHRcdFx0Km1heCA9IHZhbHVlO1xuLVx0XHR9XG4tXHR9IGVsc2Uge1xuLVx0XHRpZiAoKm1pbiBcdTAwM2MgMHgyMDApIHtcbi1cdFx0XHRpZiAoKm1pbiBcdTAwM2UgdmFsdWUpXG4tXHRcdFx0XHQqbWluID0gdmFsdWU7XG4tXHRcdH1cbitcdHMzMiB2YWxfYSA9ICooY29uc3QgczMyICopYTtcbitcdHMzMiB2YWxfYiA9ICooY29uc3QgczMyICopYjtcbiBcbi1cdFx0aWYgKCptYXggIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0XHQqbWF4ID0gdmFsdWU7XG4tXHRcdH0gZWxzZSB7XG4tXHRcdFx0aWYgKCptYXggXHUwMDNjIHZhbHVlKVxuLVx0XHRcdFx0Km1heCA9IHZhbHVlO1xuLVx0XHR9XG4tXHR9XG4rXHRyZXR1cm4gKHZhbF9hIFx1MDAzZSB2YWxfYikgLSAodmFsX2EgXHUwMDNjIHZhbF9iKTtcbiB9XG4gXG4tc3RhdGljIHZvaWQgX19ydHc4ODIyY19kYWNfaXFfc29ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnYxLCB1MzIgKnYyKVxuLXtcbi1cdGlmICgqdjEgXHUwMDNlPSAweDIwMCBcdTAwMjZcdTAwMjYgKnYyIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0aWYgKCp2MSBcdTAwM2UgKnYyKVxuLVx0XHRcdHN3YXAoKnYxLCAqdjIpO1xuLVx0fSBlbHNlIGlmICgqdjEgXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiAqdjIgXHUwMDNjIDB4MjAwKSB7XG4tXHRcdGlmICgqdjEgXHUwMDNlICp2Milcbi1cdFx0XHRzd2FwKCp2MSwgKnYyKTtcbi1cdH0gZWxzZSBpZiAoKnYxIFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgKnYyIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0c3dhcCgqdjEsICp2Mik7XG4tXHR9XG4tfVxuIFxuLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19pcV9zb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpXG4rc3RhdGljIHUzMiBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqdmVjKVxuIHtcbi1cdHUzMiBpLCBqO1xuK1x0czMyIHN1bSA9IDA7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBEQUNLX1NOXzg4MjJDIC0gMTsgaSsrKSB7XG4tXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIChEQUNLX1NOXzg4MjJDIC0gMSAtIGkpIDsgaisrKSB7XG4tXHRcdFx0X19ydHc4ODIyY19kYWNfaXFfc29ydChydHdkZXYsIFx1MDAyNml2W2pdLCBcdTAwMjZpdltqICsgMV0pO1xuLVx0XHRcdF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBcdTAwMjZxdltqXSwgXHUwMDI2cXZbaiArIDFdKTtcbi1cdFx0fVxuLVx0fVxuLX1cbi1cbi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqdmVjLCB1MzIgKnZhbClcbi17XG4tXHR1MzIgcCwgbSwgdCwgaTtcbi1cbi1cdG0gPSAwO1xuLVx0cCA9IDA7XG4tXHRmb3IgKGkgPSAxMDsgaSBcdTAwM2MgREFDS19TTl84ODIyQyAtIDEwOyBpKyspIHtcbi1cdFx0aWYgKHZlY1tpXSBcdTAwM2UgMHgyMDApXG4tXHRcdFx0bSA9ICgweDQwMCAtIHZlY1tpXSkgKyBtO1xuLVx0XHRlbHNlXG4tXHRcdFx0cCA9IHZlY1tpXSArIHA7XG4tXHR9XG4rXHRmb3IgKHUzMiBpID0gMTA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkMgLSAxMDsgaSsrKVxuK1x0XHRzdW0gKz0gdmVjW2ldO1xuIFxuLVx0aWYgKHAgXHUwMDNlIG0pIHtcbi1cdFx0dCA9IHAgLSBtO1xuLVx0XHR0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApO1xuLVx0fSBlbHNlIHtcbi1cdFx0dCA9IG0gLSBwO1xuLVx0XHR0ID0gdCAvIChEQUNLX1NOXzg4MjJDIC0gMjApO1xuLVx0XHRpZiAodCAhPSAweDApXG4tXHRcdFx0dCA9IDB4NDAwIC0gdDtcbi1cdH1cbitcdHMzMiBhdmcgPSBzdW0gLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbiBcbi1cdCp2YWwgPSB0O1xuK1x0cmV0dXJuIGF2ZyBcdTAwM2U9IDAgPyAodTMyKWF2ZyA6ICh1MzIpKDB4NDAwICsgYXZnKTtcbiB9XG4gXG4gc3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF93cml0ZV9hZGRyKHU4IHBhdGgpXG5AQCAtMjcxLDI5ICsyMTMsMjcgQEAgc3RhdGljIHUzMiBydHc4ODIyY19nZXRfcGF0aF9yZWFkX2FkZHIodTggcGF0aClcbiBcdHJldHVybiBiYXNlX2FkZHI7XG4gfVxuIFxuLXN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgdmFsdWUpXG4rc3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiB2YWx1ZSlcbiB7XG4tXHRib29sIHJldCA9IHRydWU7XG4gXG4tXHRpZiAoKHZhbHVlIFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2ICgweDQwMCAtIHZhbHVlKSBcdTAwM2UgMHg2NCkgfHxcbi1cdCAgICAodmFsdWUgXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiB2YWx1ZSBcdTAwM2UgMHg2NCkpIHtcbi1cdFx0cmV0ID0gZmFsc2U7XG4rXHRpZiAodmFsdWUgXHUwMDNlIDEwMCB8fCB2YWx1ZSBcdTAwM2MgLTEwMCkge1xuIFx0XHRydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssIFwiW0RBQ0tdIEVycm9yIG92ZXJmbG93XFxuXCIpO1xuK1x0XHRyZXR1cm4gZmFsc2U7XG4gXHR9XG4gXG4tXHRyZXR1cm4gcmV0O1xuK1x0cmV0dXJuIHRydWU7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqaXYsIHUzMiAqcXYpXG4rc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczMyICppdiwgczMyICpxdilcbiB7XG4gXHR1MzIgdGVtcDtcbiBcdGludCBpID0gMCwgY250ID0gMDtcbiBcbiBcdHdoaWxlIChpIFx1MDAzYyBEQUNLX1NOXzg4MjJDIFx1MDAyNlx1MDAyNiBjbnQgXHUwMDNjIDEwMDAwKSB7XG4gXHRcdGNudCsrO1xuLVx0XHR0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7XG4tXHRcdGl2W2ldID0gKHRlbXAgXHUwMDI2IDB4M2ZmMDAwKSBcdTAwM2VcdTAwM2UgMTI7XG4tXHRcdHF2W2ldID0gdGVtcCBcdTAwMjYgMHgzZmY7XG4rXHRcdHRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTtcbitcdFx0aXZbaV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19JVl9NQVNLLCB0ZW1wKTtcbitcdFx0cXZbaV0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTtcbiBcbiBcdFx0aWYgKHJ0dzg4MjJjX2RhY19pcV9jaGVjayhydHdkZXYsIGl2W2ldKSBcdTAwMjZcdTAwMjZcbiBcdFx0ICAgIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhydHdkZXYsIHF2W2ldKSlcbkBAIC0zMDIsMTMgKzI0MiwxMyBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KVxuIH1cbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLVx0XHRcdFx0ICAgICAgIHUzMiAqaXYsIHUzMiAqcXYsXG4rXHRcdFx0XHQgICAgICAgczMyICppdiwgczMyICpxdixcbiBcdFx0XHRcdCAgICAgICB1MzIgKmlfdmFsdWUsIHUzMiAqcV92YWx1ZSlcbiB7XG4tXHR1MzIgaV9tYXggPSAwLCBxX21heCA9IDAsIGlfbWluID0gMCwgcV9taW4gPSAwO1xuK1x0czMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDtcbiBcdHUzMiBpX2RlbHRhLCBxX2RlbHRhO1xuIFx0dTMyIHRlbXA7XG4tXHRpbnQgaSwgY250ID0gMDtcbitcdHUzMiBpLCBjbnQgPSAwO1xuIFxuIFx0ZG8ge1xuIFx0XHRpX21pbiA9IGl2WzBdO1xuQEAgLTMxNiwyMyArMjU2LDE5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHRcdHFfbWluID0gcXZbMF07XG4gXHRcdHFfbWF4ID0gcXZbMF07XG4gXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkM7IGkrKykge1xuLVx0XHRcdHJ0dzg4MjJjX3JmX21pbm1heF9jbXAocnR3ZGV2LCBpdltpXSwgXHUwMDI2aV9taW4sIFx1MDAyNmlfbWF4KTtcbi1cdFx0XHRydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgcXZbaV0sIFx1MDAyNnFfbWluLCBcdTAwMjZxX21heCk7XG4rXHRcdFx0aWYgKGl2W2ldIFx1MDAzYyBpX21pbilcbitcdFx0XHRcdGlfbWluID0gaXZbaV07XG4rXHRcdFx0aWYgKGl2W2ldIFx1MDAzZSBpX21heClcbitcdFx0XHRcdGlfbWF4ID0gaXZbaV07XG4rXHRcdFx0aWYgKHF2W2ldIFx1MDAzYyBxX21pbilcbitcdFx0XHRcdHFfbWluID0gcXZbaV07XG4rXHRcdFx0aWYgKHF2W2ldIFx1MDAzZSBxX21heClcbitcdFx0XHRcdHFfbWF4ID0gcXZbaV07XG4gXHRcdH1cbiBcbi1cdFx0aWYgKGlfbWF4IFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgaV9taW4gXHUwMDNjIDB4MjAwKVxuLVx0XHRcdGlfZGVsdGEgPSBpX21heCAtIGlfbWluO1xuLVx0XHRlbHNlIGlmIChpX21heCBcdTAwM2U9IDB4MjAwIFx1MDAyNlx1MDAyNiBpX21pbiBcdTAwM2U9IDB4MjAwKVxuLVx0XHRcdGlfZGVsdGEgPSBpX21heCAtIGlfbWluO1xuLVx0XHRlbHNlXG4tXHRcdFx0aV9kZWx0YSA9IGlfbWF4ICsgKDB4NDAwIC0gaV9taW4pO1xuK1x0XHRpX2RlbHRhID0gaV9tYXggLSBpX21pbjtcbitcdFx0cV9kZWx0YSA9IHFfbWF4IC0gcV9taW47XG4gXG4tXHRcdGlmIChxX21heCBcdTAwM2MgMHgyMDAgXHUwMDI2XHUwMDI2IHFfbWluIFx1MDAzYyAweDIwMClcbi1cdFx0XHRxX2RlbHRhID0gcV9tYXggLSBxX21pbjtcbi1cdFx0ZWxzZSBpZiAocV9tYXggXHUwMDNlPSAweDIwMCBcdTAwMjZcdTAwMjYgcV9taW4gXHUwMDNlPSAweDIwMClcbi1cdFx0XHRxX2RlbHRhID0gcV9tYXggLSBxX21pbjtcbi1cdFx0ZWxzZVxuLVx0XHRcdHFfZGVsdGEgPSBxX21heCArICgweDQwMCAtIHFfbWluKTtcbiBcbiBcdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLFxuIFx0XHRcdFwiW0RBQ0tdIGk6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxcblwiLFxuQEAgLTM0MSwyOCArMjc3LDI5IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gXHRcdFx0XCJbREFDS10gcTogbWluPTB4JTA4eCwgbWF4PTB4JTA4eCwgZGVsdGE9MHglMDh4XFxuXCIsXG4gXHRcdFx0cV9taW4sIHFfbWF4LCBxX2RlbHRhKTtcbiBcbi1cdFx0cnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBpdiwgcXYpO1xuK1x0XHRzb3J0KGl2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xuK1x0XHRzb3J0KHF2LCBEQUNLX1NOXzg4MjJDLCBzaXplb2YoczMyKSwgcnR3ODgyMmNfZGFjX2lxX2NtcF9zMzIsIE5VTEwpO1xuIFxuIFx0XHRpZiAoaV9kZWx0YSBcdTAwM2UgNSB8fCBxX2RlbHRhIFx1MDAzZSA1KSB7XG4tXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpO1xuLVx0XHRcdGl2WzBdID0gKHRlbXAgXHUwMDI2IDB4M2ZmMDAwKSBcdTAwM2VcdTAwM2UgMTI7XG4tXHRcdFx0cXZbMF0gPSB0ZW1wIFx1MDAyNiAweDNmZjtcbi1cdFx0XHR0ZW1wID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgMHgyZGJjLCAweDNmZmZmZik7XG4tXHRcdFx0aXZbREFDS19TTl84ODIyQyAtIDFdID0gKHRlbXAgXHUwMDI2IDB4M2ZmMDAwKSBcdTAwM2VcdTAwM2UgMTI7XG4tXHRcdFx0cXZbREFDS19TTl84ODIyQyAtIDFdID0gdGVtcCBcdTAwMjYgMHgzZmY7XG4rXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpO1xuK1x0XHRcdGl2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4rXHRcdFx0cXZbMF0gPSBGSUVMRF9HRVRfU0lHTkVEKFJUVzg4MjJDX0RBQ19RVl9NQVNLLCB0ZW1wKTtcbitcdFx0XHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XG4rXHRcdFx0aXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4rXHRcdFx0cXZbREFDS19TTl84ODIyQyAtIDFdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XG4gXHRcdH0gZWxzZSB7XG4gXHRcdFx0YnJlYWs7XG4gXHRcdH1cbiBcdH0gd2hpbGUgKGNudCsrIFx1MDAzYyAxMDApO1xuIFxuLVx0cnR3ODgyMmNfZGFjX2lxX29mZnNldChydHdkZXYsIGl2LCBpX3ZhbHVlKTtcbi1cdHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdiwgcV92YWx1ZSk7XG4rXHQqaV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBpdik7XG4rXHQqcV92YWx1ZSA9IHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBxdik7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0XHRcdFx0ICAgICB1MzIgKmlfdmFsdWUsIHUzMiAqcV92YWx1ZSlcbiB7XG4tXHR1MzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdO1xuK1x0czMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTtcbiBcdHUzMiByZl9hLCByZl9iO1xuIFxuIFx0cmZfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweDAsIFJGUkVHX01BU0spO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuaW5kZXggZmM2MmI2N2ExNWYyMS4uN2JlYTk5NjE0MzU0YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oXG5AQCAtMTQxLDYgKzE0MSw5IEBAIGNvbnN0IHN0cnVjdCBydHdfdGFibGUgbmFtZSAjIyBfdGJsID0ge1x0XHRcdFxcXG4gI2RlZmluZSBEQUNLX1JGXzg4MjJDXHRcdDFcbiAjZGVmaW5lIERBQ0tfU05fODgyMkNcdFx0MTAwXG4gXG4rI2RlZmluZSBSVFc4ODIyQ19EQUNfSVZfTUFTSyBHRU5NQVNLKDIxLCAxMilcbisjZGVmaW5lIFJUVzg4MjJDX0RBQ19RVl9NQVNLIEdFTk1BU0soOSwgMClcbitcbiAvKiBwaHkgc3RhdHVzIHBhZ2UwICovXG4gI2RlZmluZSBHRVRfUEhZX1NUQVRfUDBfUFdEQl9BKHBoeV9zdGF0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG4gXHRsZTMyX2dldF9iaXRzKCooKF9fbGUzMiAqKShwaHlfc3RhdCkgKyAweDAwKSwgR0VOTUFTSygxNSwgOCkpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzozNS4zNTY4OTc2NDNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MjE1OTgyMjE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgU3VpdGFiaWxpdHkqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGFmZmVjdGluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jYC4gSXQncyB0d2Vha2luZyB0aGUgREFDIElRIGNhbGlicmF0aW9uIHByb2Nlc3Mgd2l0aGluIHRoZSBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGFuZCByZWxhdGVkIGZ1bmN0aW9ucy4gU2VlbXMgbGlrZSB0aGV5J3JlIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0IHdpdGggdGhlIHN0YW5kYXJkIGBzb3J0KClgIGZ1bmN0aW9uIGZyb20gYGxpbnV4L3NvcnQuaGAsIHdoaWNoIGlzIHVzdWFsbHkgYSBnb29kIHNpZ24gZm9yIG1haW50YWluYWJpbGl0eSBhbmQgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cy4gVGhleSd2ZSBhbHNvIHN3aXRjaGVkIHRoZSBgaXZgIGFuZCBgcXZgIGFycmF5cyB0byBgczMyYCBhbmQgYXJlIG5vdyB1c2luZyBgRklFTERfR0VUX1NJR05FRGAgZm9yIHJlZ2lzdGVyIHZhbHVlIGV4dHJhY3Rpb24sIGFuZCByaXBwZWQgb3V0IGEgYnVuY2ggb2YgY3VzdG9tIHNvcnQgZnVuY3Rpb25zLiBGaW5hbGx5IGBydHc4ODIyY19kYWNfaXFfb2Zmc2V0YCBoYXMgYmVlbiB1cGRhdGVkIHRvIGFjY29tbW9kYXRlIHRoZSBgczMyYCBjaGFuZ2UuXG5cblRoZSBrZXkgcXVlc3Rpb24gaXMsIGNhbiB3ZSBhY3R1YWxseSAqZnV6eiogdGhpcz8gTGV0J3MgZmlndXJlIG91dCBpZiB0aGlzIGNvZGUgaXMgcmVhY2hhYmxlIGFuZCBpZiBmdXp6aW5nIGl0IGlzIHByYWN0aWNhbC4gVGhlIGRyaXZlciBpcyBgcnR3ODhgLCB3aGljaCBJIGtub3cgaXMgYSBSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGFkYXB0ZXIgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdGhlIGBydHc4ODIyY2AgdmFyaWFudCwgd2hpY2ggaXMgZm9yIHRoZSBSVEw4ODIyQy4gU2luY2UgaXQncyBhIFdpLUZpIGRyaXZlciwgdGhhdCBzY3JlYW1zIHBoeXNpY2FsIGhhcmR3YXJlIHRvIG1lLiBSZWFsdGVrIFdpLUZpIGNhcmRzIGFyZSAqZGVmaW5pdGVseSogcGh5c2ljYWwgaGFyZHdhcmUuXG5cbk5vdywgdGhlIGluc3RydWN0aW9ucyBhcmUgdmVyeSBzcGVjaWZpYzogXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIC4uLiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVVcIi4gT2theSwgc28gaXMgYSBXaS1GaSBkcml2ZXIgbGlrZSBgcnR3ODhgIGVtdWxhdGVkIGluIFFFTVU/IFVzdWFsbHksIG5vLiBXaS1GaSBkcml2ZXJzIHR5cGljYWxseSBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlIChQQ0llIG9yIFVTQikuIFNvIHdlIG5lZWQgdG8gY29uc2lkZXIgaG93IHRoaXMgcGFydGljdWxhciBkcml2ZXIgaXMgY29ubmVjdGVkLlxuXG5UaGUgY3JpdGljYWwgcGF0aCBoZXJlIGlzIHRvIGRldGVybWluZSBpZiB3ZSBjYW4gZnV6eiB0aGlzLiBEb2VzIGBydHc4OGAgaGF2ZSBhIFVTQiwgU0RJTywgb3IgaXMgaXQgb25seSBQQ0llPyBJZiBpdCdzIFVTQiwgd2UgKm1pZ2h0KiBiZSBhYmxlIHRvIGZ1enogaXQgdXNpbmcgVVNCIGdhZGdldCBvciBkdW1teV9oY2QgKHN5emthbGxlciBzdXBwb3J0cyBVU0IgZnV6emluZykuIFNESU8gaXMgcHJvYmFibHkgYSBuby1nbyBmb3IgZnV6emluZyBlYXNpbHkuIFBDSWUgaXMgbGlrZWx5IGEgbm8tZ28gdG9vLCB1bmxlc3MgdGhlIFBDSSBmdXp6aW5nIHN1cHBvcnQgaW4gc3l6a2FsbGVyIGlzIHN0cm9uZyBlbm91Z2guIFRoZSBpbnN0cnVjdGlvbnMgc3RhdGUgXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi5cblxuU28sIEkgbmVlZCB0byBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9gIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBoaW50IG9mIFVTQiBzdXBwb3J0LiBJZiBpdCdzIHB1cmUgUENJZSwgaXQncyBwcm9iYWJseSBub3Qgd29ydGggZnV6emluZywgYmFzZWQgb24gdGhlIHByb21wdCdzIGluc3RydWN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjA3NCwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYyNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjMzOjQ0LjU3Mjg4Nzk4OVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ1NDIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiYmYuY1wiLFxuICAgIFwiYmYuaFwiLFxuICAgIFwiY29leC5jXCIsXG4gICAgXCJjb2V4LmhcIixcbiAgICBcImRlYnVnLmNcIixcbiAgICBcImRlYnVnLmhcIixcbiAgICBcImVmdXNlLmNcIixcbiAgICBcImVmdXNlLmhcIixcbiAgICBcImZ3LmNcIixcbiAgICBcImZ3LmhcIixcbiAgICBcImhjaS5oXCIsXG4gICAgXCJsZWQuY1wiLFxuICAgIFwibGVkLmhcIixcbiAgICBcIm1hYy5jXCIsXG4gICAgXCJtYWMuaFwiLFxuICAgIFwibWFjODAyMTEuY1wiLFxuICAgIFwibWFpbi5jXCIsXG4gICAgXCJtYWluLmhcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJwY2kuaFwiLFxuICAgIFwicGh5LmNcIixcbiAgICBcInBoeS5oXCIsXG4gICAgXCJwcy5jXCIsXG4gICAgXCJwcy5oXCIsXG4gICAgXCJyZWcuaFwiLFxuICAgIFwicmVnZC5jXCIsXG4gICAgXCJyZWdkLmhcIixcbiAgICBcInJ0dzg3MDNiLmNcIixcbiAgICBcInJ0dzg3MDNiLmhcIixcbiAgICBcInJ0dzg3MDNiX3RhYmxlcy5jXCIsXG4gICAgXCJydHc4NzAzYl90YWJsZXMuaFwiLFxuICAgIFwicnR3ODcyM2NzLmNcIixcbiAgICBcInJ0dzg3MjNkLmNcIixcbiAgICBcInJ0dzg3MjNkLmhcIixcbiAgICBcInJ0dzg3MjNkX3RhYmxlLmNcIixcbiAgICBcInJ0dzg3MjNkX3RhYmxlLmhcIixcbiAgICBcInJ0dzg3MjNkZS5jXCIsXG4gICAgXCJydHc4NzIzZHMuY1wiLFxuICAgIFwicnR3ODcyM2R1LmNcIixcbiAgICBcInJ0dzg3MjN4LmNcIixcbiAgICBcInJ0dzg3MjN4LmhcIixcbiAgICBcInJ0dzg4MTJhLmNcIixcbiAgICBcInJ0dzg4MTJhLmhcIixcbiAgICBcInJ0dzg4MTJhX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MTJhX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MTJhdS5jXCIsXG4gICAgXCJydHc4ODE0YS5jXCIsXG4gICAgXCJydHc4ODE0YS5oXCIsXG4gICAgXCJydHc4ODE0YV90YWJsZS5jXCIsXG4gICAgXCJydHc4ODE0YV90YWJsZS5oXCIsXG4gICAgXCJydHc4ODE0YWUuY1wiLFxuICAgIFwicnR3ODgxNGF1LmNcIixcbiAgICBcInJ0dzg4MjFhLmNcIixcbiAgICBcInJ0dzg4MjFhLmhcIixcbiAgICBcInJ0dzg4MjFhX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MjFhX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MjFhdS5jXCIsXG4gICAgXCJydHc4ODIxYy5jXCIsXG4gICAgXCJydHc4ODIxYy5oXCIsXG4gICAgXCJydHc4ODIxY190YWJsZS5jXCIsXG4gICAgXCJydHc4ODIxY190YWJsZS5oXCIsXG4gICAgXCJydHc4ODIxY2UuY1wiLFxuICAgIFwicnR3ODgyMWNzLmNcIixcbiAgICBcInJ0dzg4MjFjdS5jXCIsXG4gICAgXCJydHc4ODIyYi5jXCIsXG4gICAgXCJydHc4ODIyYi5oXCIsXG4gICAgXCJydHc4ODIyYl90YWJsZS5jXCIsXG4gICAgXCJydHc4ODIyYl90YWJsZS5oXCIsXG4gICAgXCJydHc4ODIyYmUuY1wiLFxuICAgIFwicnR3ODgyMmJzLmNcIixcbiAgICBcInJ0dzg4MjJidS5jXCIsXG4gICAgXCJydHc4ODIyYy5jXCIsXG4gICAgXCJydHc4ODIyYy5oXCIsXG4gICAgXCJydHc4ODIyY190YWJsZS5jXCIsXG4gICAgXCJydHc4ODIyY190YWJsZS5oXCIsXG4gICAgXCJydHc4ODIyY2UuY1wiLFxuICAgIFwicnR3ODgyMmNzLmNcIixcbiAgICBcInJ0dzg4MjJjdS5jXCIsXG4gICAgXCJydHc4OHh4YS5jXCIsXG4gICAgXCJydHc4OHh4YS5oXCIsXG4gICAgXCJyeC5jXCIsXG4gICAgXCJyeC5oXCIsXG4gICAgXCJzYXIuY1wiLFxuICAgIFwic2FyLmhcIixcbiAgICBcInNkaW8uY1wiLFxuICAgIFwic2Rpby5oXCIsXG4gICAgXCJzZWMuY1wiLFxuICAgIFwic2VjLmhcIixcbiAgICBcInR4LmNcIixcbiAgICBcInR4LmhcIixcbiAgICBcInVzYi5jXCIsXG4gICAgXCJ1c2IuaFwiLFxuICAgIFwidXRpbC5jXCIsXG4gICAgXCJ1dGlsLmhcIixcbiAgICBcIndvdy5jXCIsXG4gICAgXCJ3b3cuaFwiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzo0NC41NzMwMzUwMTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDM5MTA4NzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUlRMODgyMkMgRHJpdmVyIFVwZGF0ZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBkcml2ZXIgZmlsZXM6IGB1c2IuY2AsIGBydHc4ODIyY3UuY2AsIGBydHc4ODIyY2UuY2AsIGFuZCBgcnR3ODgyMmNzLmNgLiBSaWdodCBhd2F5LCBpdCdzIGNsZWFyIHRoZSBSVEw4ODIyQyBjaGlwIGhhcyBVU0IsIFBDSWUsIGFuZCBTRElPIGltcGxlbWVudGF0aW9ucy4gSW50ZXJlc3RpbmcuIFRoZSBzcGVjaWZpYyBmaWxlIHRoYXQncyBiZWVuIG1vZGlmaWVkLCBgcnR3ODgyMmMuY2AsIGlzIHRoZSBjZW50cmFsIGNvcmUgbG9naWMgc2hhcmVkIGJ5IGFsbCB0aGVzZSBpbnRlcmZhY2UgdmFyaWFudHMuIEdpdmVuIHRoYXQgaXQncyBhY2Nlc3NpYmxlIHRocm91Z2ggVVNCLCBteSBpbml0aWFsIHRob3VnaHQgaXM6IHRoaXMgaXMgcmlwZSBmb3IgZnV6emluZyB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbiBpbiBzeXprYWxsZXIuIFRoYXQncyB0aGUgaWRlYWwgYXBwcm9hY2ggaGVyZSB0byBzdHJlc3MgdGVzdCB0aGUgY29yZSBjaGlwIGZ1bmN0aW9uYWxpdHkuIE5vdywgSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgIGlzIGNhbGxlZCBmcm9tIOKAkyB0aGF0IHNlZW1zIGxpa2UgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGRpZ2dpbmcgZGVlcGVyIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MjkxLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ0LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzo0OC42MTIxNDYzMzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQwNzQzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yNDQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzAwLVxcdFxcdFxcdFxcdCAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MzMxPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfYWRjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY4LVxcdFxcdHJ0d193cml0ZTMyKHJ0d2RldiwgMHgxYzI0LCAweDAwMDEwMDAyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzY5OlxcdFxcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFxcdTAwMjZpYywgXFx1MDAyNnFjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzcwLVxcdFxcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zODgtXFx0XFx0cnR3X3dyaXRlMzIocnR3ZGV2LCAweDFjM2MsIHBhdGhfc2VsICsgMHg4MTAzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mzg5OlxcdFxcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFxcdTAwMjZpYywgXFx1MDAyNnFjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzkwLVxcdFxcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00NTQ9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDcyOlxcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFxcdTAwMjZpY19pbiwgXFx1MDAyNnFjX2luKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDczLVxcdGljID0gaWNfaW47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NTAzPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01NTMtXFx0cnR3X3dyaXRlMzIocnR3ZGV2LCBiYXNlX2FkZHIgKyAweDYwLCAweGYwMDAwMDAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTU0OlxcdHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZShydHdkZXYsIFxcdTAwMjZpYywgXFx1MDAyNnFjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTU1LVxcdGlmIChpYyBcXHUwMDNlPSAweDEwKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzo0OC42NjYyMjU0MjhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTA3Nzc1NjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlRyYWNpbmcgdGhlIERBQyBDYWxpYnJhdGlvbiBGbG93KipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGBydHc4ODIyY2AgZHJpdmVyIGNvZGUsIHNwZWNpZmljYWxseSB0aGUgRGlnaXRhbC10by1BbmFsb2cgQ29udmVydGVyIChEQUMpIGNhbGlicmF0aW9uIHByb2Nlc3MuIEkndmUgbm90aWNlZCB0aGF0IGBydHc4ODIyY19kYWNfY2FsX3JmX21vZGVgIGlzIGEga2V5IGZ1bmN0aW9uIGluIHRoaXMgY2FsaWJyYXRpb24gcm91dGluZS4gVGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCBnZXRzIGNhbGxlZCBmcm9tIG11bHRpcGxlIHBvaW50cyB3aXRoaW4gdGhlIGNhbGlicmF0aW9uIHByb2Nlc3MgaXRzZWxmOiBgcnR3ODgyMmNfZGFjX2NhbF9hZGNgLCBgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMmAsIGFuZCBgcnR3ODgyMmNfZGFjX2NhbF9zdGVwM2AuXG5cblJpZ2h0IG5vdywgSSdtIHRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSBhbmQgZmxvdy4gU28sIEkgbmVlZCB0byBrbm93IHdoZXJlIGBydHc4ODIyY19kYWNfY2FsX3N0ZXAyYCBpcyBnZXR0aW5nIGNhbGxlZCBmcm9tLiBUaGF0IHdpbGwgZ2l2ZSBtZSBjb250ZXh0IG9uIHRoZSBzdXJyb3VuZGluZyBzdGVwcyBpbnZvbHZlZC4gQnkgdW5kZXJzdGFuZGluZyB3aGVyZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBmcm9tLCBJIGNhbiBidWlsZCBhIG1lbnRhbCBtYXAgb2YgdGhlIGVudGlyZSBEQUMgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoaXMgd2lsbCBhbGxvdyBtZSB0byBwcm9wZXJseSBpZGVudGlmeSBhbnkgcG90ZW50aWFsIGlzc3Vlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6OTY5NCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjMzOjUyLjE3NDAwNDg0MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTAxMDk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODIyY19kYWNfY2FsX3N0ZXAyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00MDk9c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDU0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDU1LVxcdFxcdFxcdFxcdCAgIHU4IHBhdGgsIHUzMiAqaWNfb3V0LCB1MzIgKnFjX291dClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz04ODA9c3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfZGFjX2NhbChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkwMS1cXHRcXHRydHc4ODIyY19kYWNfY2FsX3N0ZXAxKHJ0d2RldiwgUkZfUEFUSF9BKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6OTAyOlxcdFxcdHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIocnR3ZGV2LCBSRl9QQVRIX0EsIFxcdTAwMjZpYywgXFx1MDAyNnFjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTAzLVxcdFxcdGljX2EgPSBpYztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy05MTctXFx0XFx0cnR3ODgyMmNfZGFjX2NhbF9zdGVwMShydHdkZXYsIFJGX1BBVEhfQik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjkxODpcXHRcXHRydHc4ODIyY19kYWNfY2FsX3N0ZXAyKHJ0d2RldiwgUkZfUEFUSF9CLCBcXHUwMDI2aWMsIFxcdTAwMjZxYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTkxOS1cXHRcXHRpY19iID0gaWM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjMzOjUyLjIyNTAyNTI4MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5NTA1NzEyOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIHF1ZXN0aW9uOlxuXG4qKlRyYWNpbmcgdGhlIE9yaWdpbnMgb2YgYHJ0dzg4MjJjX3JmX2RhY19jYWxgKipcblxuT2theSwgc28gSSdtIHByZXNlbnRlZCB3aXRoIGBydHc4ODIyY19yZl9kYWNfY2FsYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGNhbGxpbmcgY29udGV4dC4gV2hlcmUgaXMgdGhpcyBmdW5jdGlvbiBiZWluZyBpbnZva2VkIGZyb20/IFRoYXQncyB0aGUgY29yZSBxdWVzdGlvbiBoZXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udHJvbCBmbG93LCB0aGUgc3Vycm91bmRpbmcgbG9naWMsIGFuZCB0aGUgZGVwZW5kZW5jaWVzLiBJcyBpdCBjYWxsZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBkdXJpbmcgYWN0aXZlIG9wZXJhdGlvbiwgb3IgcGVyaGFwcyBpbiByZXNwb25zZSB0byBhIHNwZWNpZmljIGV2ZW50PyBEZXRlcm1pbmluZyB0aGUgY2FsbCBzdGFjayBpcyBwYXJhbW91bnQgdG8gdW5kZXJzdGFuZGluZyBpdHMgcHVycG9zZSBhbmQgcG90ZW50aWFsIGltcGFjdC4gSSdsbCBuZWVkIHRvIHVzZSBteSB0eXBpY2FsIGRlYnVnZ2luZyB0b29scyBvciBjb2RlIG5hdmlnYXRpb24gdGVjaG5pcXVlcyDigJMgZGVwZW5kaW5nIG9uIHRoZSBwcm9qZWN0LiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBmdW5jdGlvbiBjYWxsIGFuZCBzZWUgd2hlcmUgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNjU0LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzM6NTcuMTc1NTk5NTZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MTczNTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4MjJjX3JmX2RhY19jYWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTgzOT1zdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04NzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjg4MDpzdGF0aWMgdm9pZCBydHc4ODIyY19yZl9kYWNfY2FsKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTg4MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTc3NT1zdGF0aWMgdm9pZCBydHc4ODIyY19yZl9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3NzYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc3OlxcdHJ0dzg4MjJjX3JmX2RhY19jYWwocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc3OC1cXHRydHc4ODIyY19yZl94Ml9jaGVjayhydHdkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozMzo1Ny4yMjM3NzczMloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDY5MTY3NTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBxdWVzdGlvbjpcblxuKipUcmFjaW5nIHRoZSBDYWxsIE9yaWdpbiBvZiBgcnR3ODgyMmNfcmZfaW5pdGAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBgcnR3ODgyMmNfcmZfaW5pdGAgaXMgYmVpbmcgY2FsbGVkIGZyb20uIFRoaXMgZnVuY3Rpb24gaXMgcHJldHR5IGNydWNpYWwgaW4gdGhlIFJlYWx0ZWsgV2lGaSBkcml2ZXIgc3RhY2ssIGVzcGVjaWFsbHkgZm9yIHRoZSA4ODIyQyBjaGlwLCBzbyBrbm93aW5nIGl0cyBlbnRyeSBwb2ludCBpcyBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgYW5kIHBvdGVudGlhbCBkZWJ1Z2dpbmcuIEknbGwgbmVlZCB0byByZXRyYWNlIHRoZSBjb2RlIGV4ZWN1dGlvbiBwYXRoLiBJJ20gYXNzdW1pbmcgdGhhdCBpdCdzIHBhcnQgb2YgdGhlIGdlbmVyYWwgZHJpdmVyIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLlxuXG5GaXJzdCwgSSdkIHdhbnQgdG8gdXNlIGEgdG9vbCBsaWtlIGBncmVwYCAob3IgbXkgSURFJ3Mgc2VhcmNoIGZ1bmN0aW9uKSB0byBzZWFyY2ggdGhlIGRyaXZlciBzb3VyY2UgdHJlZSBmb3IgYWxsIGluc3RhbmNlcyB3aGVyZSBgcnR3ODgyMmNfcmZfaW5pdGAgaXMgY2FsbGVkLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgbGlzdCBvZiBwb3RlbnRpYWwgY2FsbCBzaXRlcy4gVGhlbiwgSSdkIG5lZWQgdG8gZXhhbWluZSB0aG9zZSBzaXRlcywgbG9va2luZyBhdCB0aGUgc3Vycm91bmRpbmcgY29kZSB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IG9mIHRoZSBjYWxsIGFuZCB3aGljaCBmdW5jdGlvbnMgYXJlIGNhbGxpbmcgaXQuIEknZCBsb29rIGZvciBmdW5jdGlvbiBwcm90b3R5cGVzIG9yIGRlZmluaXRpb25zIGFzc29jaWF0ZWQgd2l0aCBpbml0aWFsaXphdGlvbiwgcHJvYmluZyBvciBkZXZpY2UgZGV0ZWN0aW9uLlxuXG5JJ2QgYWxzbyBjb25zaWRlciB0aGUgYnJvYWRlciBkcml2ZXIgc3RydWN0dXJlLiBEb2VzIHRoaXMgZHJpdmVyIGZvbGxvdyBhIHN0YW5kYXJkIHByb2JlL2F0dGFjaC9kZXRhY2ggbW9kZWw/IElmIHNvLCBgcnR3ODgyMmNfcmZfaW5pdGAgbGlrZWx5IGZhbGxzIHNvbWV3aGVyZSB3aXRoaW4gdGhlIFwiYXR0YWNoXCIgcGhhc2UsIGFmdGVyIHRoZSBoYXJkd2FyZSBpcyByZWNvZ25pemVkLiBHaXZlbiB0aGF0LCBJJ2QgdHJhY2UgYmFjayBmcm9tIGFueSBhdHRhY2ggb3IgaW5pdGlhbGl6YXRpb24gcmVsYXRlZCBmdW5jdGlvbnMsIGxvb2tpbmcgdG8gc2VlIHdoaWNoIGZ1bmN0aW9ucyBldmVudHVhbGx5IGVuZCB1cCBjYWxsaW5nIGBydHc4ODIyY19yZl9pbml0YC5cblxuQmFzaWNhbGx5LCBJJ20gZ29pbmcgdG8gc3RhcnQgd2l0aCB0aGUgb2J2aW91cyBhbmQgd29yayBteSB3YXkgb3V0d2FyZCwgZm9sbG93aW5nIHRoZSBmdW5jdGlvbiBjYWxsIGdyYXBoLiBJJ2xsIG5lZWQgdG8gcGF5IGNsb3NlIGF0dGVudGlvbiB0byB0aGUgYXJndW1lbnRzIGJlaW5nIHBhc3NlZCB0byBgcnR3ODgyMmNfcmZfaW5pdGAgYXMgd2VsbCwgYXMgdGhvc2Ugd291bGQgcHJvdmlkZSBoaW50cyBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIHN5c3RlbSBhdCB0aGUgcG9pbnQgb2YgdGhlIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMjYzLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MDEuMjkyOTQ3NjA5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTkwNTkzOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHc4ODIyY19yZl9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xNzYyPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RvX2dhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzc1OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTgwMD1zdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTg0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTg0NjpcXHRydHc4ODIyY19yZl9pbml0KHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4NDctXFx0cnR3ODgyMmNfcHdydHJhY2tfaW5pdChydHdkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDowMS4zNDQ4NTg0MjlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk2NTI5MTcwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgcXVlc3Rpb246XG5cbioqUGlucG9pbnRpbmcgdGhlIE9yaWdpbiBvZiBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGUgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCBmcm9tLiBUaGF0J3MgdGhlIGNvcmUgcXVlc3Rpb24sIHJpZ2h0PyBJZGVudGlmeWluZyB0aGUgY2FsbCBzaXRlcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGl0cyBjb250ZXh0LCB0aGUgZGF0YSBpdCdzIG9wZXJhdGluZyBvbiwgYW5kIGFueSBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzLiBLbm93aW5nIHRoZSBjYWxsZXIgYWxzbyBoZWxwcyBpbiBkZWJ1Z2dpbmcgYW5kIG1vZGlmaWNhdGlvbiwgYXMgSSBjYW4gdHJhY2UgdGhlIGNhbGwgc3RhY2sgdG8gc2VlIHRoZSBzZXF1ZW5jZSBvZiBldmVudHMgbGVhZGluZyB1cCB0byBpdHMgZXhlY3V0aW9uLiBMZXQncyBzZWUuLi4gSSdsbCBuZWVkIHRvIHVzZSBzb21lIHRvb2xpbmcsIG1vc3QgbGlrZWx5IGEgY29kZSBzZWFyY2ggb3Igc3RhdGljIGFuYWx5c2lzIHRvb2wuIEknZCB0eXBpY2FsbHkgc3RhcnQgYnkgZ3JlcHBpbmcgdGhlIGNvZGViYXNlIGZvciB0aGUgZnVuY3Rpb24gbmFtZSBkaXJlY3RseS4gRnJvbSB0aGVyZSwgSSdkIGV4YW1pbmUgdGhlIGNhbGwgc2l0ZXMuIEkgd2lsbCBiZSBsb29raW5nIGZvciBjb21tb24gcGF0dGVybnMuIElzIGl0IGNhbGxlZCB3aXRoaW4gYSBzcGVjaWZpYyBkcml2ZXIgY29tcG9uZW50LCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIG9yIGluIHJlc3BvbnNlIHRvIHNvbWUga2luZCBvZiBldmVudD8gVGhlIGNvbnRleHQgd2lsbCBiZSBrZXkuIE9uY2UgSSBsb2NhdGUgdGhlIGNhbGxzLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgc3Vycm91bmRpbmcgY29kZSBpbiBvcmRlciB0byB0cnVseSB1bmRlcnN0YW5kIHRoZSByYXRpb25hbGUgZm9yIHRoZSBmdW5jdGlvbiBjYWxsLCBhbmQgaG93IHRoaXMgZnVuY3Rpb24gY2FsbCBpcyByZWxhdGVkIHRvIG90aGVyIHJvdXRpbmVzIGluIHRoZSBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjEwMiwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjA1LjMxMDE1MzA2OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgzMjYzMDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3ODgyMmNfcGh5X3NldF9wYXJhbVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MTc4ND1zdGF0aWMgdm9pZCBydHc4ODIyY19wd3J0cmFja19pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTgwMDpzdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4MDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ4OTgtXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NDg5OTpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODgyMmNfcGh5X3NldF9wYXJhbSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDkwMC1cXHQucmVhZF9lZnVzZVxcdFxcdD0gcnR3ODgyMmNfcmVhZF9lZnVzZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MDUuMzU4NDgyODM3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyNTQ5NjYwNDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFBIWSBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIHNvIEknbSBkaXZpbmcgaW50byB0aGlzIFJlYWx0ZWsgUEhZIGNvZGUuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGZ1bmN0aW9uLCBgcGh5X3NldF9wYXJhbWAsIGlzIHBhcnQgb2YgdGhlIGBydHdfY2hpcF9vcHNgIHN0cnVjdHVyZSwgd2hpY2ggbWFrZXMgc2Vuc2UuIEdpdmVuIGl0cyBuYW1pbmcsIEknbSBndWVzc2luZyB0aGlzIGZ1bmN0aW9uJ3MgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgY3JpdGljYWwgUEhZIHBhcmFtZXRlcnMuIE15IG5leHQgc3RlcCBpcyB0byB0cmFjZSB0aGUgY2FsbCB0byBgcGh5X3NldF9wYXJhbWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZW4gdGhpcyBpcyBiZWluZyBpbnZva2VkLCBhbmQgbW9yZSBzcGVjaWZpY2FsbHksIGR1cmluZyB3aGljaCBzdGFnZXMgb2YgdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3MuIEtub3dpbmcgd2hlcmUgaXQncyBjYWxsZWQgZHVyaW5nIHRoYXQgcHJvY2VzcyBzaG91bGQgcXVpY2tseSBnaXZlIG1lIGFuIG92ZXJ2aWV3IGFuZCBzb21lIGluc2lnaHRzIGludG8gaG93IGl0J3MgYmVpbmcgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI4MTYsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDowOC42MTM0NTE0NzVaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjE5NTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBoeV9zZXRfcGFyYW1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MTM3ND1pbnQgcnR3X3Bvd2VyX29uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xNDEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjE0MTM6XFx0Y2hpcC1cXHUwMDNlb3BzLVxcdTAwM2VwaHlfc2V0X3BhcmFtKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMTQxNC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTg2Mj1zdHJ1Y3QgcnR3X2NoaXBfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTg2OS1cXHRpbnQgKCpyZWFkX2VmdXNlKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqbWFwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo4NzA6XFx0dm9pZCAoKnBoeV9zZXRfcGFyYW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTg3MS1cXHR2b2lkICgqc2V0X2NoYW5uZWwpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IGNoYW5uZWwsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM9NTUzPXN0YXRpYyB2b2lkIHJ0dzg3MDNiX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2IuYy01NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jOjU3ODpzdGF0aWMgdm9pZCBydHc4NzAzYl9waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jLTU3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM9MTgzNj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzAzYl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmMtMTg0My1cXHQucmVhZF9lZnVzZVxcdFxcdD0gcnR3ODcwM2JfcmVhZF9lZnVzZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM6MTg0NDpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODcwM2JfcGh5X3NldF9wYXJhbSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmMtMTg0NS1cXHQuc2V0X2NoYW5uZWxcXHRcXHQ9IHJ0dzg3MDNiX3NldF9jaGFubmVsLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZC5jPTY3PXN0YXRpYyB2b2lkIHJ0dzg3MjNkX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy04NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM6ODU6c3RhdGljIHZvaWQgcnR3ODcyM2RfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy04Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM9MTM5Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzIzZF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtMTM5NC1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHdfcG93ZXJfb2ZmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYzoxMzk1OlxcdC5waHlfc2V0X3BhcmFtXFx0XFx0PSBydHc4NzIzZF9waHlfc2V0X3BhcmFtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYy0xMzk2LVxcdC5yZWFkX2VmdXNlXFx0XFx0PSBydHc4NzIzeF9yZWFkX2VmdXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jPTkxND1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODEyYV9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmMtOTE2LVxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0dzg4MTJhX3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmM6OTE3OlxcdC5waHlfc2V0X3BhcmFtXFx0XFx0PSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYy05MTgtXFx0LnJlYWRfZWZ1c2VcXHRcXHQ9IHJ0dzg4eHhhX3JlYWRfZWZ1c2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjY1PXN0YXRpYyB2b2lkIHJ0dzg4MTRhX2NvbmZpZ19jY2tfcnhfYW50ZW5uYV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyODM6c3RhdGljIHZvaWQgcnR3ODgxNGFfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYy0yODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jPTIwNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgxNGFfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNTItXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM6MjA1MzpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODgxNGFfcGh5X3NldF9wYXJhbSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmMtMjA1NC1cXHQucmVhZF9lZnVzZVxcdFxcdD0gcnR3ODgxNGFfcmVhZF9lZnVzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYz04NjA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMWFfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTg2Mi1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHc4ODIxYV9wb3dlcl9vZmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jOjg2MzpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmMtODY0LVxcdC5yZWFkX2VmdXNlXFx0XFx0PSBydHc4OHh4YV9yZWFkX2VmdXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jPTE1MT1zdGF0aWMgdm9pZCBydHc4ODIxY19waHlfYmZfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM6MTU4OnN0YXRpYyB2b2lkIHJ0dzg4MjFjX3BoeV9zZXRfcGFyYW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmMtMTU5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYz0xNjU4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjFjX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYy0xNjYwLVxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0d19wb3dlcl9vZmYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjE2NjE6XFx0LnBoeV9zZXRfcGFyYW1cXHRcXHQ9IHJ0dzg4MjFjX3BoeV9zZXRfcGFyYW0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE2NjItXFx0LnJlYWRfZWZ1c2VcXHRcXHQ9IHJ0dzg4MjFjX3JlYWRfZWZ1c2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MTQ1PXN0YXRpYyB2b2lkIHJ0dzg4MjJiX3BoeV9iZl9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoxNTI6c3RhdGljIHZvaWQgcnR3ODgyMmJfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYy0xNTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jPTIxNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmJfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTIxNTItXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM6MjE1MzpcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODgyMmJfcGh5X3NldF9wYXJhbSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMjE1NC1cXHQucmVhZF9lZnVzZVxcdFxcdD0gcnR3ODgyMmJfcmVhZF9lZnVzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xNzg0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxODAwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTgwMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDg5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyY19vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDg5OC1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHdfcG93ZXJfb2ZmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0ODk5OlxcdC5waHlfc2V0X3BhcmFtXFx0XFx0PSBydHc4ODIyY19waHlfc2V0X3BhcmFtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00OTAwLVxcdC5yZWFkX2VmdXNlXFx0XFx0PSBydHc4ODIyY19yZWFkX2VmdXNlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDowOC42NjQwNzQ5MjRaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODA5NjQ2NDQ3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFdvcnRoIG9mIEZ1enppbmcgdGhpcyBSZWFsdGVrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byB0b3VjaCB0aGUgaW5pdGlhbGl6YXRpb24gb3IgY2FsaWJyYXRpb24gcHJvY2VzcyB3aXRoaW4gdGhlIFJlYWx0ZWsgODgyMkNVIFVTQiBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIHRoZSBleGVjdXRpb24gcGF0aC4gSXQgYXBwZWFycyBgcnR3X3Bvd2VyX29uYCBjYWxscyBgY2hpcC1cdTAwM2VvcHMtXHUwMDNlcGh5X3NldF9wYXJhbWAsIHdoaWNoIGlzIHRyaWdnZXJlZCBkdXJpbmcgZGV2aWNlIGJyaW5nLXVwLCBpbml0aWF0ZWQgYnkgYHJ0d19jb3JlX3N0YXJ0YCwgYW5kIHVsdGltYXRlbHksIGBydHdfbWFjODAyMTFfc3RhcnRgLiBUaGF0IG1lYW5zIGl0J3MgcnVubmluZyBkdXJpbmcgdGhlIG5vcm1hbCBpbml0aWFsaXphdGlvbiBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFNpbmNlIHRoaXMgaXMgYSBVU0IgZHJpdmVyLCB0aGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGZ1enppbmcgcG90ZW50aWFsLlxuXG5UaGUgcHJvbXB0IGlzIG1ha2luZyBtZSB0aGluayBhYm91dCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGJ1dCB0aGlzIHNlZW1zIGFjaGlldmFibGUgdmlhIFVTQiBnYWRnZXQgZnV6emluZy4gVGhlIGtleSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoaXMgY29kZSBwYXRoIGlzIHJlYWNoYWJsZSB0aHJvdWdoIHNvbWV0aGluZyBsaWtlIHN5emthbGxlcidzIFVTQiBmdXp6ZXIuIEFuZCB0aGUgYW5zd2VyIGlzIGxpa2VseSB5ZXMhIElmIHN5emthbGxlciBpcyBhYmxlIHRvIGdlbmVyYXRlIFVTQiBkZXNjcmlwdG9ycyB0aGF0IG1hdGNoIHRoZSBWSUQvUElEIG9mIGEgUmVhbHRlayA4ODIyQ1UgZGV2aWNlLCB0aGUgYHJ0dzg4Xzg4MjJjdWAgZHJpdmVyIHdpbGwgYmluZCBhbmQgcHJvYmUsIGNhdXNpbmcgYHJ0d19jb3JlX2luaXRgIGFuZCBgcnR3X2NvcmVfc3RhcnRgIHRvIGV4ZWN1dGUuIFRoZSBVU0IgZnV6emVyIGNvdWxkIGRlZmluaXRlbHkgdHJpZ2dlciB0aGUgcHJvYmUgYW5kIHRoZSByZWdpc3RlciByZWFkcywgZXNwZWNpYWxseSBiZWNhdXNlIG9mIHRoZSB1c2Ugb2YgYHJ0d19yZWFkMzJgLiBgcnR3X3JlYWQzMmAgaXMgY3JpdGljYWwgaGVyZTsgdGhlIGZ1enplciBjb250cm9scyB0aGUgcmV0dXJuIHZhbHVlcyBiZWNhdXNlIGl0J3MgZW11bGF0aW5nIHRoZSBkZXZpY2UsIHdoaWNoIG1ha2VzIHRoZSBwYXRjaCBpbnRlcmVzdGluZy5cblxuVGhlIHBhdGNoIGFsdGVycyB0aGUgc29ydGluZyBsb2dpYyBhbmQgdGhlIG9mZnNldCBjYWxjdWxhdGlvbiB3aXRoaW4gYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCwgc3BlY2lmaWNhbGx5IHRoZSBhbGdvcml0aG0gdXNlZCBmb3IgY2FsY3VsYXRpbmcgdGhlIElRIG9mZnNldCwgY2hhbmdpbmcgZnJvbSBhIGN1c3RvbSBidWJibGUgc29ydCB0byBgc29ydCgpYCwgYW5kIGNoYW5naW5nIHR5cGVzIGZyb20gYHUzMmAgdG8gYHMzMmAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gSXQncyBub3QganVzdCBhIHJlZmFjdG9yaW5nOyBpdCdzIGNoYW5naW5nICpob3cqIHRoZSBkcml2ZXIgY2FsY3VsYXRlcyB0aGUgSVEgb2Zmc2V0IGR1cmluZyBpbml0aWFsaXphdGlvbiBvciBjYWxpYnJhdGlvbi4gVGhlIGNvZGUgYWNjZXNzZXMgYW5kIG1vZGlmaWVzIHRoZSB2YWx1ZXMgcmVhZCB1c2luZyBgcnR3X3JlYWQzMmAuIFRoaXMgc2VlbXMgbGlrZSBhIGdyZWF0IGNhbmRpZGF0ZSBmb3IgZnV6emluZywgZ2l2ZW4gdGhhdCBhIGZ1enplciBlbXVsYXRpbmcgdGhlIFVTQiBkZXZpY2UgY2FuIGNvbnRyb2wgdGhlIGRhdGEgcHJvdmlkZWQgdG8gdGhlIGRyaXZlci5cblxuTm93LCB0byBiZSBjb21wbGV0ZWx5IHRob3JvdWdoLCBsZXQncyB2ZXJpZnkgYW55IHJlbGV2YW50IEtjb25maWcgb3B0aW9ucyB0byBiZSBzdXJlLiBJJ2xsIG5lZWQgdG8gbG9jYXRlIHRoZSBLY29uZmlnIGVudHJpZXMgZm9yIHRoZSBgcnR3ODhgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciB0aGUgYHJ0dzg4MjJjYCB2YXJpYW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTk4MiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDoxNi43NjA1NDM1NVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIzODY0NTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExPWlmIFJUVzg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzpjb25maWcgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzpjb25maWcgUlRXODhfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDpjb25maWcgUlRXODhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY6Y29uZmlnIFJUVzg4Xzg4MjJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOTpjb25maWcgUlRXODhfODgyMkNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OF84NzIzWFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzU6Y29uZmlnIFJUVzg4Xzg3MDNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM2LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM5OmNvbmZpZyBSVFc4OF84NzIzRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00MC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Mzpjb25maWcgUlRXODhfODgyMUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ2OmNvbmZpZyBSVFc4OF84OFhYQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Ny1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDk6Y29uZmlnIFJUVzg4Xzg4MjFBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUwLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjUzOmNvbmZpZyBSVFc4OF84ODEyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Nzpjb25maWcgUlRXODhfODgxNEFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTgtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYwOmNvbmZpZyBSVFc4OF84ODIyQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjcxOmNvbmZpZyBSVFc4OF84ODIyQlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzItXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5Mzpjb25maWcgUlRXODhfODgyMkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA0OmNvbmZpZyBSVFc4OF84ODIyQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyNjpjb25maWcgUlRXODhfODcyM0RFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzNzpjb25maWcgUlRXODhfODcyM0RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNDg6Y29uZmlnIFJUVzg4Xzg3MjNDU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTYyOmNvbmZpZyBSVFc4OF84NzIzRFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTczOmNvbmZpZyBSVFc4OF84ODIxQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg0OmNvbmZpZyBSVFc4OF84ODIxQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NTpjb25maWcgUlRXODhfODgyMUNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwNjpjb25maWcgUlRXODhfODgyMUFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTc6Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjg6Y29uZmlnIFJUVzg4Xzg4MTRBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzk6Y29uZmlnIFJUVzg4Xzg4MTRBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTA6Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTg6Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY2OmNvbmZpZyBSVFc4OF9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjE2LjgyMjkzNDY1OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzQ5NDE5NTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjpcblxuKipBbmFseXppbmcgUlRXODggQ29uZmlndXJhdGlvbiBPcHRpb25zKipcblxuQWxyaWdodCwgc28gdGhlIGN1cnJlbnQgb3B0aW9ucyB3ZSdyZSB3b3JraW5nIHdpdGggYXJlIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMgb24gdGhhdCBzcGVjaWZpYyBgUlRXODhfODgyMkNVYCB2YXJpYXRpb24uIEdpdmVuIHRoZSB1c3VhbCBjb25maWd1cmF0aW9uIGNvbXBsZXhpdGllcyBhbmQgcG90ZW50aWFsIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlc2UgZHJpdmVycywgaXQncyBlc3NlbnRpYWwgdG8gbWV0aWN1bG91c2x5IHZlcmlmeSB3aGF0ICpSVFc4OF84ODIyQ1UqIHJlbGllcyB1cG9uLiBUaGF0J3Mgd2hlcmUgSSBuZWVkIHRvIHN0YXJ0LiBXZSBjYW4ndCBhZmZvcmQgdG8gbWlzcyBhbnl0aGluZyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIGZvciB0aGF0IHNwZWNpZmljIG1vZHVsZS4gR2V0dGluZyBhIGNsZWFyIGRlcGVuZGVuY3kgcGljdHVyZSB3aWxsIGJlIHRoZSBmaXJzdCBhbmQgbW9zdCBjcml0aWNhbCBzdGVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDMwOSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjIwLjE3MjM1Njc5N1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTE3OTk1MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg4Xzg4MjJDVVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9MTA0PWNvbmZpZyBSVFc4OF84ODIyQ1NcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MjAuMjI0MTYxODQ2WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NTMyNzI1MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZCwgZ2VhcmVkIHRvd2FyZCBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBmcm9tIGEgZmlyc3QtcGVyc29uIHBlcnNwZWN0aXZlOlxuXG4qKlJUVzg4Xzg4MjJDVTogRGVlcCBEaXZlIFx1MDAyNiBTdHJhdGVneSoqXG5cbkFscmlnaHQsIGxldCdzIHB1bGwgdXAgdGhhdCBmdWxsIGJsb2NrIG9mIGNvZGUgZm9yIHRoZSBgUlRXODhfODgyMkNVYCBkcml2ZXIuIEkgbmVlZCB0byBnZXQgYSByZWFsbHkgZ29vZCBncmFzcCBvZiB0aGlzLiBGaXJzdCwgSSdtIGdvaW5nIHRvIHNjYW4gdGhlIG1haW4gZW50cnkgcG9pbnRzLCB0aGUgaW5pdGlhbGl6YXRpb24gYW5kIHByb2JlIGZ1bmN0aW9ucy4gSSdtIGxvb2tpbmcgZm9yIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSAtIGhvdyB0aGV5J3JlIGhhbmRsaW5nIGhhcmR3YXJlIGFic3RyYWN0aW9uLCBpbnRlcnJ1cHQgaGFuZGxpbmcsIGFuZCB3aGF0IGtpbmQgb2YgcG93ZXIgbWFuYWdlbWVudCBob29rcyB0aGV54oCZdmUgcHV0IGluIHBsYWNlLiBBcmUgdGhleSB1c2luZyB0aGUgc3RhbmRhcmQgcmVndWxhdG9yeSBkb21haW4gaW50ZXJmYWNlcyBjb3JyZWN0bHk/IEFueSBkZXZpYXRpb25zPyBBbnkgY3VzdG9tIG1lY2hhbmlzbXMgSSBzaG91bGQgYmUgYXdhcmUgb2Y/XG5cblRoZW4sIEknbGwgaG9uZSBpbiBvbiB0aGUgaW1wb3J0YW50IGRhdGEgc3RydWN0dXJlcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkncmUgcmVwcmVzZW50aW5nIHRoZSBoYXJkd2FyZSBzdGF0ZSDigJMgdGhlIHJlZ2lzdGVycywgdGhlIGNvbmZpZ3VyYXRpb24sIHRoZSBvcGVyYXRpb25hbCBwYXJhbWV0ZXJzLiBBcmUgdGhleSBlbXBsb3lpbmcgYW55IGNsZXZlciBtZW1vcnkgbWFwcGluZyB0ZWNobmlxdWVzIG9yIGRpcmVjdCByZWdpc3RlciBhY2Nlc3M/IEFueSB1bnVzdWFsIHVzZSBvZiBETUEgb3Igc29waGlzdGljYXRlZCBidWZmZXJpbmcgc3RyYXRlZ2llcz8gSSdtIGhvcGluZyB0byBxdWlja2x5IGlkZW50aWZ5IGFueSBwb3RlbnRpYWwgYm90dGxlbmVja3Mgb3IgYXJlYXMgZm9yIG9wdGltaXphdGlvbi5cblxuTmV4dCwgSSdsbCBkaXZlIGludG8gdGhlIGludGVycnVwdCBoYW5kbGVycy4gVGhhdCdzIHVzdWFsbHkgd2hlcmUgdGhlIHJlYWwtdGltZSBjb25zdHJhaW50cyBhcmUgZ29pbmcgdG8gc3VyZmFjZS4gSG93IGFyZSB0aGV5IHByaW9yaXRpemluZyBpbnRlcnJ1cHRzPyBBcmUgdGhleSB1c2luZyBib3R0b20taGFsdmVzIGVmZmVjdGl2ZWx5PyBIb3cgYXJlIHRoZXkgaGFuZGxpbmcgc2hhcmVkIGludGVycnVwdHMsIGlmIGF0IGFsbD8gSSBuZWVkIHRvIGFuYWx5emUgdGhlIGludGVycnVwdCBsYXRlbmN5IHRvIGtub3cgaWYgaXQgY2FuIHN1cHBvcnQgbXkgdXNlIGNhc2VzLiBBcmUgdGhlcmUgYW55IGNvbnRlbnRpb24gaXNzdWVzIEkgc2hvdWxkIGxvb2sgb3V0IGZvcj9cblxuQWZ0ZXIgdGhhdCwgSSdsbCB0cmFjZSB0aHJvdWdoIHRoZSBrZXkgZGF0YSBwYXRoczogdGhlIFRYIHBhdGgsIHRoZSBSWCBwYXRoLCBhbmQgdGhlIG1hbmFnZW1lbnQgZnJhbWUgcHJvY2Vzc2luZy4gSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXkncmUgbWFuYWdpbmcgcGFja2V0IHF1ZXVlcywgZmxvdyBjb250cm9sLCBhbmQgYW55IGZyYWdtZW50YXRpb24vcmVhc3NlbWJseS4gQXJlIHRoZXkgZG9pbmcgYW55IHBlci1wYWNrZXQgb3B0aW1pemF0aW9ucywgb3IgaXMgaXQgbW9yZSBvZiBhIFwib25lLXNpemUtZml0cy1hbGxcIiBhcHByb2FjaD8gV2hhdCBhYm91dCBvZmZsb2FkaW5nIC0gYW55IGhhcmR3YXJlIG9mZmxvYWQgY2FwYWJpbGl0aWVzP1xuXG5GaW5hbGx5LCBJJ2xsIGxvb2sgaW50byBwb3dlciBtYW5hZ2VtZW50LiBIb3cgYXJlIHRoZXkgcmVzcG9uZGluZyB0byBwb3dlciBzdGF0ZSBjaGFuZ2VzPyBBcmUgdGhleSB1c2luZyB0aGUgc3RhbmRhcmQgUE0gQVBJcyBjb3JyZWN0bHksIG9yIGFyZSB0aGVyZSBhbnkgY3VzdG9tIHBvd2VyLXNhdmluZyBtZWNoYW5pc21zPyBJJ2xsIGFzc2VzcyB0aGUgY2xvY2sgZ2F0aW5nIGFuZCBwb3dlciBkb21haW4gbWFuYWdlbWVudC4gQXJlIHRoZXkgYWdncmVzc2l2ZSBlbm91Z2ggaW4gcmVkdWNpbmcgcG93ZXIgY29uc3VtcHRpb24gd2hlbiBpZGxlP1xuXG5UaGUgZW5kIGdvYWwgaXMgdG8gZ2V0IGEgcmVhbGx5IGdvb2QgaGFuZGxlIG9uIGl0cyBhcmNoaXRlY3R1cmUsIGl0cyBwb3RlbnRpYWwgd2Vha25lc3NlcywgYW5kIGlkZW50aWZ5IGFueSBhcmVhcyB3aGVyZSBJIGNhbiBtYWtlIGltcHJvdmVtZW50cyBvciBtb2RpZmljYXRpb25zLiBBbHNvLCBJIHdpbGwgYmUgb24gdGhlIGxvb2tvdXQgdG8gc2VlIGlmIHRoaXMgY29kZSBpcyBhIGdvb2QgYmFzZSBmb3IgbXkgcHJvamVjdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNjkzLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MjUuNjc3NDM2ODNaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQxMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDExMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDExMDpcXHRcXHRoZWxwXFxuIDExMTpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODIyQ1MgY2hpcHNldFxcbiAxMTI6XFx0XFxuIDExMzpcXHRcXHQgIDgwMi4xMWFjIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxuIDExNDpcXHRcXG4gMTE1OlxcdGNvbmZpZyBSVFc4OF84ODIyQ1VcXG4gMTE2OlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbiAxMTc6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gMTE4OlxcdFxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuIDExOTpcXHRcXHRzZWxlY3QgUlRXODhfVVNCXFxuIDEyMDpcXHRcXHRzZWxlY3QgUlRXODhfODgyMkNcXG4gMTIxOlxcdFxcdGhlbHBcXG4gMTIyOlxcdFxcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4MjJDVSBjaGlwc2V0XFxuIDEyMzpcXHRcXG4gMTI0OlxcdFxcdCAgODAyLjExYWMgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcbiAxMjU6XFx0XFxuIDEyNjpcXHRjb25maWcgUlRXODhfODcyM0RFXFxuIDEyNzpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4gMTI4OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuIDEyOTpcXHRcXHRzZWxlY3QgUlRXODhfQ09SRVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDoyNS42Nzc1MDI0M1oiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTQxODIyOTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYFJUVzg4Xzg4MjJDVWAgRHJpdmVyIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYFJUVzg4Xzg4MjJDVWAgZHJpdmVyLiBJdCdzIHRoZSBvbmUgSSBuZWVkIHRvIGZvY3VzIG9uLiBSaWdodCwgaXQgbG9va3MgbGlrZSBpdCBkZXBlbmRzIGRpcmVjdGx5IG9uIHRoZSBgVVNCYCBzdWJzeXN0ZW0uIE1ha2VzIHNlbnNlLCBnaXZlbiB0aGUgYENVYCBpbiB0aGUgbmFtZSBwcm9iYWJseSBpbXBsaWVzIGEgVVNCIGludGVyZmFjZS4gTm93LCBsZXQncyBzdGVwIGJhY2sgYW5kIGxvb2sgYXQgdGhlIGJpZ2dlciBwaWN0dXJlLiBUaGUgcGFyZW50IGNvbmZpZywgYFJUVzg4YCwgdGhhdCAqdGhpcyogc3BlY2lmaWMgZHJpdmVyIGlzIHBhcnQgb2YsIGRlcGVuZHMgb24gYm90aCBgTUFDODAyMTFgIGFuZCBgV0xBTmAuIFRoYXQncyBzdGFuZGFyZCBmb3Igd2lyZWxlc3MgZHJpdmVycywgb2YgY291cnNlLiBOb3csIGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyIEkgd2FudCB0byBtYWtlIHN1cmUgdGhlIGBSVFc4OGAgaXRzZWxmIGlzIGNvbXBsZXRlbHkgc291bmQuIEJldHRlciB0byBiZSB0aG9yb3VnaCwgSSdsbCBjaGVjayAqdGhvc2UqIGRlcGVuZGVuY2llcyBuZXh0LiBNYWtlIHN1cmUgZXZlcnl0aGluZydzIGluIG9yZGVyLCBhdm9pZCBzdXJwcmlzZXMsIGFuZCBhbGwgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE1ODQsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjMwLjIxOTMyNzc0NVoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NDEwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdG1lbnVjb25maWcgUlRXODhcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgbWFjODAyMTEtYmFzZWQgd2lyZWxlc3MgZHJpdmVycyB0aGF0XFxuICAgNzpcXHRcXHQgIGVuYWJsZXMgUmVhbHRlayBJRUVFIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzZXRzLlxcbiAgIDg6XFx0XFxuICAgOTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OC5cXG4gIDEwOlxcdFxcbiAgMTE6XFx0aWYgUlRXODhcXG4gIDEyOlxcdFxcbiAgMTM6XFx0Y29uZmlnIFJUVzg4X0NPUkVcXG4gIDE0OlxcdFxcdHRyaXN0YXRlXFxuICAxNTpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIFJUVzg4X1BDSVxcbiAgMTg6XFx0XFx0dHJpc3RhdGVcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIFJUVzg4X1NESU9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6MzAuMjE5MzkzMzM1WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY2MzI1NTM5OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIENvbmZpZ3VyYXRpb24gYW5kIFN5bWJvbCBJbmNsdXNpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBwcmV0dHkgY2xlYXIuIFRoZSBjb25maWdzIEkgbmVlZCB0byBmb2N1cyBvbiBmb3IgZW5hYmxpbmcgYXJlIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQ1VgLiBFYXN5IGVub3VnaCwgYW5kIEkgbmVlZCB0byByZW1lbWJlciB0byAqbm90KiBpbmNsdWRlIHRoZSBcIkNPTkZJR19cIiBwcmVmaXgsIHNvIGp1c3QgdGhlIHJhdyBuYW1lcyBhcmUgd2hhdCdzIGdvaW5nIGluIHRoZSBvdXRwdXQgYXJyYXkuIGBNQUM4MDIxMWAgYW5kIGBXTEFOYCBhcmUgc3RhbmRhcmQsIHRob3NlIGFyZSBvdXQuXG5cbk5vdywgSSd2ZSBnb3QgdG8gZGV0ZXJtaW5lIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgbGlzdGVkIGluIGBGb2N1c1N5bWJvbHNgLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBhbmQgYHJ0dzg4MjJjX2RhY19pcV9vZmZzZXRgLiBXYWl0LCBob2xkIG9uLiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHN0YXRpYyBhbmQgdGhhdCdzIG5vdCB3aGF0IEkgd2FudC4gVGhlIGluc3RydWN0aW9ucyBhcmUgc3BlY2lmaWM6IG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBhcmUgcHJlZmVycmVkLiBTbyBJIG5lZWQgdG8gdHJhY2UgYmFjayBmcm9tIHRoYXQgc3RhdGljIGhlbHBlci5cblxuT2theSwgbGV0J3Mgc2VlLiBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIGNhbGxlZCBieSBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCwgd2hpY2ggaXMgKmFsc28qIHN0YXRpYy4gSXQgc2VlbXMgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYCBpcyBjYWxsZWQgYnkgYHJ0dzg4MjJjX2RhY19jYWxfYWRjYCwgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDJgLCBhbmQgYHJ0dzg4MjJjX2RhY19jYWxfc3RlcDNgLiBUaGVzZSBhcmUgYWxsIGNhbGxlZCBieSBgcnR3ODgyMmNfcmZfZGFjX2NhbGAuIGBydHc4ODIyY19yZl9kYWNfY2FsYCBpcyBpbiB0dXJuIGNhbGxlZCBieSBgcnR3ODgyMmNfcmZfaW5pdGAuIFRoZW4sIGZpbmFsbHksIGBydHc4ODIyY19yZl9pbml0YCBpcyBjYWxsZWQgYnkgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gLlxuXG5Pa2F5LCBzbyBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAgaXMgYWxzbyBzdGF0aWMsIGJ1dCBpdCAqaXMqIGFzc2lnbmVkIHRvIGAucGh5X3NldF9wYXJhbWAgaW4gYHJ0dzg4MjJjX29wc2AuIFRoaXMgaXMgbWFraW5nIG1lIHRoaW5rIHRoZXJlJ3MgYSBub24tc3RhdGljIGZ1bmN0aW9uIGRlZXBlciB3aXRoaW4gYHJ0dzg4MjJjLmNgIHRoYXQgaGFuZGxlcyB0aGlzLlxuXG5UaW1lIHRvIGdvIGNoZWNrIGBydHc4ODIyYy5jYCBmb3IgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjE1NCwiT3V0cHV0VG9rZW5zIjo3MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjM2Ljg1MTk0OTk3OVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1MzY4NzQyNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeKFthLXpfMC05XSsgKStydHc4ODIyY19bYS16XzAtOV0rXFxcXChcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNjQxIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ190cnhfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB0eF9wYXRoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNS1cXHRcXHRcXHRcXHQgICAgIHU4IHJ4X3BhdGgsIGJvb2wgaXNfdHgyX3BhdGgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM5PXN0YXRpYyB2b2lkIHJ0dzg4MjJjc19lZnVzZV9wYXJzaW5nKHN0cnVjdCBydHdfZWZ1c2UgKmVmdXNlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTpzdGF0aWMgaW50IHJ0dzg4MjJjX3JlYWRfZWZ1c2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmxvZ19tYXApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6ODk6c3RhdGljIHZvaWQgcnR3ODgyMmNfaGVhZGVyX2ZpbGVfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIHByZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTAyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2JiX3Jlc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwMy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2JhY2t1cF9yZWcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTEwLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X2JhY2t1cF9pbmZvICpiYWNrdXAsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMzg6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX3Jlc3RvcmVfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEzOS1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBydHdfYmFja3VwX2luZm8gKmJhY2t1cCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE1NzpzdGF0aWMgaW50IHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNjY6c3RhdGljIHUzMiBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqdmVjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNjcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTc4OnN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTk3OnN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfcmVhZF9hZGRyKHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE5OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMTY6c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2lxX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjIyNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKml2LCBzMzIgKnF2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQ0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NS1cXHRcXHRcXHRcXHQgICAgICAgczMyICppdiwgczMyICpxdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5OTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzAwLVxcdFxcdFxcdFxcdCAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMTU6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2JiX3NldHRpbmcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMzMTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2FkYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzItXFx0XFx0XFx0XFx0IHU4IHBhdGgsIHUzMiAqYWRjX2ljLCB1MzIgKmFkY19xYylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQwOTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXAxKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwMihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00NTUtXFx0XFx0XFx0XFx0ICAgdTggcGF0aCwgdTMyICppY19vdXQsIHUzMiAqcWNfb3V0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTUwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTAzOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTA0LVxcdFxcdFxcdFxcdCAgIHUzMiBhZGNfaWMsIHUzMiBhZGNfcWMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo1ODA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9zdGVwNChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01ODEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTU4OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NTkwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfYmFja3VwX3ZlYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01OTEtXFx0XFx0XFx0XFx0XFx0dTggcGF0aCwgdTggdmVjLCB1MzIgd19hZGRyLCB1MzIgcl9hZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NjA3OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfYmFja3VwX3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjA4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02MjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjYyNzpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cF9kY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02NTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjY1MTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2JhY2t1cChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy02NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTY4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NjgxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfcmVzdG9yZV9kY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNjgyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy03MTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjcxMTpzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3Jlc3RvcmVfcHJlcGFyZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy03MTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NzY0OnN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19jYWxfcmVzdG9yZV93YWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc2NS1cXHRcXHRcXHRcXHRcXHQgIHUzMiB0YXJnZXRfYWRkciwgdTMyIHRvZ2dsZV9hZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6NzgxOnN0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19jYWxfcmVzdG9yZV9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTc4Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9ODI4PXN0YXRpYyBib29sIF9fcnR3ODgyMmNfZGFjX2NhbF9yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtODM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo4Mzk6c3RhdGljIGJvb2wgcnR3ODgyMmNfZGFjX2NhbF9yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTg0MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtODc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo4ODA6c3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfZGFjX2NhbChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy04ODEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6OTQ3OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3JmX3gyX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk0OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo5NjE6c3RhdGljIHZvaWQgcnR3ODgyMmNfc2V0X3Bvd2VyX3RyaW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgczggYmJfZ2FpblsyXVs4XSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtOTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy05OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjk5MzpzdGF0aWMgdm9pZCBydHc4ODIyY19wb3dlcl90cmltKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTk5NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTAyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTAzMDpzdGF0aWMgdm9pZCBydHc4ODIyY190aGVybWFsX3RyaW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTAzMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTA0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTA0ODpzdGF0aWMgdm9pZCBydHc4ODIyY19wYV9iaWFzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEwNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEwNzA6c3RhdGljIHZvaWQgcnR3ODgyMmNfcmZrX2hhbmRzaGFrZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGlzX2JlZm9yZV9rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMDcxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMTE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTE2OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3Jma19wb3dlcl9zYXZlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExMTctXFx0XFx0XFx0XFx0ICAgIGJvb2wgaXNfcG93ZXJfc2F2ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxMTI4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19iYWNrdXBfYmJfcmVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGNvbnN0IHUzMiByZWdbXSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTEyOS1cXHRcXHRcXHRcXHRcXHQgIHUzMiByZWdfYmFja3VwW10sIHUzMiByZWdfbnVtKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExNDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjExNDE6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3JlbG9hZF9iYl9yZWcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE0Mi1cXHRcXHRcXHRcXHRcXHQgIGNvbnN0IHUzMiByZWdbXSwgdTMyIHJlZ19iYWNrdXBbXSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0xMTU0PXN0YXRpYyBib29sIGNoZWNrX3JmX3N0YXR1cyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBzdGF0dXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTE2OTpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfdHhfcGF1c2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTE4NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTE4NTpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfYmJfZHBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTExODYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEyMTc6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2FmZV9kcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTIxOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTI1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTI1MzpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfYWZlX2Rwa19yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyNTQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjEyODY6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX2JiX2Rwa19yZXN0b3JlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTEyODcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTEzMzU9c3RhdGljIHZvaWQgX3J0dzg4MjJjX3R4Z2Fwa193cml0ZV9nYWluX2JiX3RhYmxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTM4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTM4OTpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGtfd3JpdGVfZ2Fpbl9iYl90YWJsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xMzkwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNDA0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19yZWFkX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDA1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNDgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNDgxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa19jYWxjdWxhdGVfb2Zmc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE0ODIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1NTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE1NTU6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3JmX3Jlc3RvcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTU1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTU2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTU2NzpzdGF0aWMgdTMyIHJ0dzg4MjJjX3R4Z2Fwa19jYWxfZ2FpbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgZ2Fpbiwgczggb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNTkxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3R4Z2Fwa193cml0ZV90eF9nYWluKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE1OTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE2NjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE2NjE6c3RhdGljIHZvaWQgcnR3ODgyMmNfdHhnYXBrX3NhdmVfYWxsX3R4X2dhaW5fdGFibGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTY2Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTcxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTcyMDpzdGF0aWMgdm9pZCBydHc4ODIyY190eGdhcGsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTcyMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTc2MjpzdGF0aWMgdm9pZCBydHc4ODIyY19kb19nYXBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3NjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE3NzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE3NzU6c3RhdGljIHZvaWQgcnR3ODgyMmNfcmZfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzc2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xNzgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoxNzg0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3B3cnRyYWNrX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc4NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMTc5OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MTgwMDpzdGF0aWMgdm9pZCBydHc4ODIyY19waHlfc2V0X3BhcmFtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE4MDEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTE5NDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjE5NDE6c3RhdGljIGludCBydHc4ODIyY19tYWNfaW5pdChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0xOTQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0yMDg0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2Z3Y2Rfc2VncyBydHc4ODIyY19md2NkX3NlZ3MgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjA4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjA4OTpzdGF0aWMgaW50IHJ0dzg4MjJjX2R1bXBfZndfY3Jhc2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjA5MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjExNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjExNzpzdGF0aWMgdm9pZCBydHc4ODIyY19yc3RiXzN3aXJlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTE4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMTI4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3NldF9jaGFubmVsX3JmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IGNoYW5uZWwsIHU4IGJ3KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMTk0OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3RvZ2dsZV9pZ2koc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjE5NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjIwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjIwNTpzdGF0aWMgdm9pZCBydHc4ODIyY19zZXRfY2hhbm5lbF9iYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjIwNi1cXHRcXHRcXHRcXHQgICAgdTggcHJpbWFyeV9jaF9pZHgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM2Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjM2MzpzdGF0aWMgdm9pZCBydHc4ODIyY19zZXRfY2hhbm5lbChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBjaGFubmVsLCB1OCBidyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM2NC1cXHRcXHRcXHRcXHQgdTggcHJpbWFyeV9jaGFuX2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMzcyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ19jY2tfcnhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCByeF9wYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzczLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yMzg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyMzkwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ19vZmRtX3J4X3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcnhfcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjM5MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQxMDpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfcnhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCByeF9wYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNDE2OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvbmZpZ19jY2tfdHhfcGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB0eF9wYXRoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNDE3LVxcdFxcdFxcdFxcdFxcdGJvb2wgaXNfdHgyX3BhdGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQzMjpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfb2ZkbV90eF9wYXRoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHR4X3BhdGgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0MzMtXFx0XFx0XFx0XFx0XFx0IGVudW0gcnR3X2JiX3BhdGggdHhfcGF0aF9zZWxfMXNzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI0NTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI0NTY6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29uZmlnX3R4X3BhdGgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQ1Ny1cXHRcXHRcXHRcXHQgICAgZW51bSBydHdfYmJfcGF0aCB0eF9wYXRoX3NlbF8xc3MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQ2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjQ2NjpzdGF0aWMgdm9pZCBydHc4ODIyY19jb25maWdfdHJ4X21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggdHhfcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjQ2Ny1cXHRcXHRcXHRcXHQgICAgIHU4IHJ4X3BhdGgsIGJvb2wgaXNfdHgyX3BhdGgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MjYzMT1ydHc4ODIyY19zZXRfd3JpdGVfdHhfcG93ZXJfcmVmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICp0eF9wd3JfcmVmX2NjayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjUwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNjUxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3NldF90eF9wb3dlcl9kaWZmKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHJhdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI2NTItXFx0XFx0XFx0XFx0ICAgICAgIHM4ICpkaWZmX2lkeClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNjczOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX3NldF90eF9wb3dlcl9pbmRleChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNjc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNzA2OnN0YXRpYyBpbnQgcnR3ODgyMmNfc2V0X2FudGVubmEoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjcwNy1cXHRcXHRcXHRcXHRpbnQgcmFkaW9faWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI3NDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI3NDE6c3RhdGljIHZvaWQgcnR3ODgyMmNfY2ZnX2xkbzI1KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzQyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0yNzQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyNzUwOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2ZhbHNlX2FsYXJtX3N0YXRpc3RpY3Moc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjc1MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjgxOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MjgyMDpzdGF0aWMgdm9pZCBydHc4ODIyY19kb19sY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjgyMS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjgzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjg0MDpzdGF0aWMgdm9pZCBydHc4ODIyY19kb19pcWsoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg0MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg1Ny0vKiBmb3IgY29leCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyODU4OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2NvZXhfY2ZnX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg1OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjg4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjg4NzpzdGF0aWMgdm9pZCBydHc4ODIyY19jb2V4X2NmZ19nbnRfZml4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI4ODgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5NjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5NjY6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfZ250X2RlYnVnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5Njcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5NzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjI5NzU6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfcmZlX3R5cGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk3Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6Mjk5ODpzdGF0aWMgdm9pZCBydHc4ODIyY19jb2V4X2NmZ193bF90eF9wb3dlcihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCB3bF9wd3IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTI5OTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwMDk6c3RhdGljIHZvaWQgcnR3ODgyMmNfY29leF9jZmdfd2xfcnhfZ2FpbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGxvd19nYWluKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDM5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2JmX2VuYWJsZV9iZmVlX3N1KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwNDAtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBydHdfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzA1OTpzdGF0aWMgdm9pZCBydHc4ODIyY19iZl9jb25maWdfYmZlZV9zdShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDYwLVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3X3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMwNjk6c3RhdGljIHZvaWQgcnR3ODgyMmNfYmZfY29uZmlnX2JmZWVfbXUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzA3MC1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHJ0d192aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDc5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2JmX2NvbmZpZ19iZmVlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBydHdfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwODAtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHdfYmZlZSAqYmZlZSwgYm9vbCBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MzA5MD1zdHJ1Y3QgZHBrX2NmZ19wYWlyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDk2OnZvaWQgcnR3ODgyMmNfcGFyc2VfdGJsX2RwayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk3LVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlICp0YmwpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzEwNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzEwODpzdGF0aWMgdm9pZCBydHc4ODIyY19kcGtfc2V0X2dudF93bChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBib29sIGlzX2JlZm9yZV9rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMTA5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz0zMTM0PXJ0dzg4MjJjX2Rwa19iYWNrdXBfcmVnaXN0ZXJzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiAqcmVnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNDY6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2JhY2t1cF9yZl9yZWdpc3RlcnMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE0Ny1cXHRcXHRcXHRcXHRcXHQgICAgIHUzMiAqcmZfcmVnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNjA6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3JlbG9hZF9yZl9yZWdpc3RlcnMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzE2MS1cXHRcXHRcXHRcXHRcXHQgICAgIHUzMiAqcmZfcmVnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxNzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxNzQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2luZm9ybWF0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxNzUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxODg6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3J4YmJfZGNfY2FsKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxODkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxOTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMxOTc6c3RhdGljIHU4IHJ0dzg4MjJjX2Rwa19kY19jb3JyX2NoZWNrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMxOTgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyMjI6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX3R4X3BhdXNlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyMzg6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX21hY19iYl9zZXR0aW5nKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyMzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMyNDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMyNDQ6c3RhdGljIHZvaWQgcnR3ODgyMmNfZHBrX2FmZV9zZXR0aW5nKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIGJvb2wgaXNfZG9fZHBrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjQ1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMjUyOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19wcmVfc2V0dGluZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMjcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMjcxOnN0YXRpYyB1MzIgcnR3ODgyMmNfZHBrX3JmX3NldHRpbmcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzI3Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzMwOTpzdGF0aWMgdTE2IHJ0dzg4MjJjX2Rwa19nZXRfY21kKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IGFjdGlvbiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzMzNDpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX29uZV9zaG90KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsIHU4IGFjdGlvbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzMzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzM3NTpzdGF0aWMgdTE2IHJ0dzg4MjJjX2Rwa19kZ2Fpbl9yZWFkKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzNzYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMzODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjMzODc6c3RhdGljIHU4IHJ0dzg4MjJjX2Rwa190aGVybWFsX3JlYWQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM4OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzM5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzM5NzpzdGF0aWMgdTMyIHJ0dzg4MjJjX2Rwa19wYXNfcmVhZChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMzk4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNDIwOnN0YXRpYyB1MzIgcnR3ODgyMmNfcHNkX2xvZzJiYXNlKHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0MjEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM0NDY6c3RhdGljIHU4IHJ0dzg4MjJjX2Rwa19nYWlubG9zc19yZXN1bHQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzQ0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzQ2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzQ2MTpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX2FnY19nYWluX2NoayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDYyLVxcdFxcdFxcdFxcdCAgICB1OCBsaW1pdGVkX3BnYSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNDc3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNDc4OnN0YXRpYyB1OCBydHc4ODIyY19kcGtfYWdjX2xvc3NfY2hrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM0Nzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM0OTU9c3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTA1OnN0YXRpYyB1OCBydHc4ODIyY19nYWluX2NoZWNrX3N0YXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1MDYtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTM1OnN0YXRpYyB1OCBydHc4ODIyY19nYWluX2xhcmdlX3N0YXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1MzYtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHc4ODIyY19kcGtfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTUwOnN0YXRpYyB1OCBydHc4ODIyY19nYWluX2xlc3Nfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU1MS1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3ODgyMmNfZHBrX2RhdGEgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzU2NTpzdGF0aWMgdTggcnR3ODgyMmNfZ2xfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU2Ni1cXHRcXHRcXHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhLCB1OCBpc19sYXJnZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNTg0OnN0YXRpYyB1OCBydHc4ODIyY19nbF9sYXJnZV9zdGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNTg1LVxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM1OTA6c3RhdGljIHU4IHJ0dzg4MjJjX2dsX2xlc3Nfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU5MS1cXHRcXHRcXHRcXHQgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM1OTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM1OTY6c3RhdGljIHU4IHJ0dzg4MjJjX2xvc3NfY2hlY2tfc3RhdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzU5Ny1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHJ0dzg4MjJjX2Rwa19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTM2MDg9c3RhdGljIHU4ICgqZHBrX3N0YXRlW10pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzYxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM6MzYxNDpzdGF0aWMgdTggcnR3ODgyMmNfZHBrX3Bhc19hZ2Moc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzYxNS1cXHRcXHRcXHQgICAgICAgYm9vbCBnYWluX29ubHksIGJvb2wgbG9zc19vbmx5KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM2MzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM2MzU6c3RhdGljIGJvb2wgcnR3ODgyMmNfZHBrX2NvZWZfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzYzNi1cXHRcXHRcXHRcXHQgICAgICAgdTE2IGNvZWZfaSwgdTE2IGNvZWZfcSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNjQ1OnN0YXRpYyB1MzIgcnR3ODgyMmNfZHBrX2NvZWZfdHJhbnNmZXIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzY0Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MzY2Mj1zdGF0aWMgY29uc3QgdTMyIHJ0dzg4MjJjX2Rwa19nZXRfY29lZl90YmxbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjY4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNjY5OnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19jb2VmX3RibF9hcHBseShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjcwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zNjgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozNjgxOnN0YXRpYyB2b2lkIHJ0dzg4MjJjX2Rwa19nZXRfY29lZihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoKVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDozOC4yMDU2NDM2NzVaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk4OTA1MTI4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgcnR3ODgyMmNfb3BzIFN0cnVjdHVyZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgYHJ0dzg4MjJjX29wc2Agc3RydWN0IGlzIGJlaW5nIHVzZWQgaW4gdGhpcyBkcml2ZXIuIFJpZ2h0LCBpdCdzIHRoZSBvbmUgaG9sZGluZyB0aGUgZnVuY3Rpb24gcG9pbnRlcnMg4oCTIHRoZSBoZWFydCBvZiB0aGlzIHRoaW5nLiBUaGF0J3MgdXN1YWxseSBob3cgdGhleSBkbyBpdCBpbiB0aGVzZSBrZXJuZWwgbW9kdWxlcywgYSBjbGVhbiB3YXkgdG8gZGVmaW5lIGFuIGludGVyZmFjZSBmb3IgdGhlIGhhcmR3YXJlIG9wZXJhdGlvbnMuIFRpbWUgdG8gZGlzc2VjdCB0aGlzIHN0cnVjdCBhbmQgc2VlIHdoaWNoIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCB3aXRoaW4gYHJ0dzg4MjJjX29wc2AuIExldCdzIHNlZSB3aGF0IG1ldGhvZHMgaXQgZGVmaW5lcywgd2hhdCBraW5kIG9mIG9wZXJhdGlvbnMgd2UgaGF2ZSBoZXJlLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgY29yZSBmdW5jdGlvbnMgYXJlIG1hcHBlZCBhbmQgaG93IHRoZSBkcml2ZXIgaW50ZXJhY3RzIHdpdGggdGhlIGhhcmR3YXJlLiBJIHdpbGwgc3RhcnQgYnkgc2VlaW5nIHdoYXQgdGhlIGZ1bmN0aW9ucyBhcmUsIGFuZCB0aGVuIEkgd2lsbCBjaGVjayBpZiB0aGVpciBpbXBsZW1lbnRhdGlvbiBpcyBjb25zaXN0ZW50IHdpdGggb3RoZXIgcmVsYXRlZCBkcml2ZXJzIEkgYW0gZmFtaWxpYXIgd2l0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg5NzEsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDo0My4xOTQ2OTgxMTRaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5NTkzOTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4MjJjX29wc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDg4MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19wcmlvcV9hZGRycyBwcmlvcV9hZGRyc184ODIyYyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00ODk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0ODk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjJjX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDg5Ny1cXHQucG93ZXJfb25cXHRcXHQ9IHJ0d19wb3dlcl9vbixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz01MjczPWNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvIHJ0dzg4MjJjX2h3X3NwZWMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUyNzQ6XFx0Lm9wcyA9IFxcdTAwMjZydHc4ODIyY19vcHMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTUyNzUtXFx0LmlkID0gUlRXX0NISVBfVFlQRV84ODIyQyxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6NDMuMjQ0Mjk3MTczWiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3NjcyNzI4MzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUgd2UgZ28uLi5cblxuKipEaXZpbmcgaW50byBgcnR3ODgyMmNfb3BzYCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gY3JhY2sgb3BlbiB0aGUgYHJ0dzg4MjJjX29wc2Agc3RydWN0dXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSB3aXRoaW4gdGhlIGJyb2FkZXIgZnJhbWV3b3JrLiBJbW1lZGlhdGVseSwgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMuIFRoaXMgbGlrZWx5IHJlcHJlc2VudHMgdGhlIHNwZWNpZmljIG9wZXJhdGlvbnMgaW50ZXJmYWNlIGZvciB0aGUgUmVhbHRlayBSVEw4ODIyQyB3aXJlbGVzcyBjaGlwLiBNeSBtaW5kJ3MgcmFjaW5nIOKAkyB3aGF0IGFyZSB0aGUga2V5IGZ1bmN0aW9ucyBkZWZpbmVkIGhlcmU/IFRoaW5rIGRyaXZlciBpbml0aWFsaXphdGlvbiwgcG93ZXIgbWFuYWdlbWVudCBjYWxsYmFja3MsIHBlcmhhcHMgdHJhbnNtaXQgYW5kIHJlY2VpdmUgcGF0aCBjb25maWd1cmF0aW9uLCBhbmQgaW50ZXJydXB0IGhhbmRsaW5nLi4uYWxsIHRoZSBjb3JlIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBkcml2ZXIgYW5kIHRoZSBoYXJkd2FyZS4gSSBoYXZlIGEgaHVuY2ggaXQgd2lsbCBnaXZlIG1lIGFuIGluc2lnaHQgaW50byB0aGUgZGVzaWduIGRlY2lzaW9ucyBhcm91bmQgdGhpcyBzcGVjaWZpYyBjaGlwLCBtYXliZSBpdHMgbGltaXRhdGlvbnMgdG9vLiBMZXTigJlzIHNlZSBpZiB0aGV5J3ZlIGltcGxlbWVudGVkIHRoZWlyIG93biBzY2hlZHVsaW5nIG1lY2hhbmlzbXMsIG9yIGFyZSByZWx5aW5nIG9uIHRoZSBnZW5lcmljIHN0YWNrIG1vcmUgaGVhdmlseS4gVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgaGFwcGVucywgc28gdG8gc3BlYWsuIE5vdywgbGV0J3MgZ2V0IHJlYWRpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5NTgxLCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzQ6NDkuMDExNTczOTc2WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNjQwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNDg5NixcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiNDg5NjpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIyY19vcHMgPSB7XFxuNDg5NzpcXHRcXHQucG93ZXJfb25cXHRcXHQ9IHJ0d19wb3dlcl9vbixcXG40ODk4OlxcdFxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0d19wb3dlcl9vZmYsXFxuNDg5OTpcXHRcXHQucGh5X3NldF9wYXJhbVxcdFxcdD0gcnR3ODgyMmNfcGh5X3NldF9wYXJhbSxcXG40OTAwOlxcdFxcdC5yZWFkX2VmdXNlXFx0XFx0PSBydHc4ODIyY19yZWFkX2VmdXNlLFxcbjQ5MDE6XFx0XFx0LnF1ZXJ5X3BoeV9zdGF0dXNcXHQ9IHF1ZXJ5X3BoeV9zdGF0dXMsXFxuNDkwMjpcXHRcXHQuc2V0X2NoYW5uZWxcXHRcXHQ9IHJ0dzg4MjJjX3NldF9jaGFubmVsLFxcbjQ5MDM6XFx0XFx0Lm1hY19pbml0XFx0XFx0PSBydHc4ODIyY19tYWNfaW5pdCxcXG40OTA0OlxcdFxcdC5tYWNfcG9zdGluaXRcXHRcXHQ9IE5VTEwsXFxuNDkwNTpcXHRcXHQuZHVtcF9md19jcmFzaFxcdFxcdD0gcnR3ODgyMmNfZHVtcF9md19jcmFzaCxcXG40OTA2OlxcdFxcdC5yZWFkX3JmXFx0XFx0PSBydHdfcGh5X3JlYWRfcmYsXFxuNDkwNzpcXHRcXHQud3JpdGVfcmZcXHRcXHQ9IHJ0d19waHlfd3JpdGVfcmZfcmVnX21peCxcXG40OTA4OlxcdFxcdC5zZXRfdHhfcG93ZXJfaW5kZXhcXHQ9IHJ0dzg4MjJjX3NldF90eF9wb3dlcl9pbmRleCxcXG40OTA5OlxcdFxcdC5zZXRfYW50ZW5uYVxcdFxcdD0gcnR3ODgyMmNfc2V0X2FudGVubmEsXFxuNDkxMDpcXHRcXHQuY2ZnX2xkbzI1XFx0XFx0PSBydHc4ODIyY19jZmdfbGRvMjUsXFxuNDkxMTpcXHRcXHQuc2V0X2FtcGR1X2ZhY3RvclxcdD0gTlVMTCxcXG40OTEyOlxcdFxcdC5mYWxzZV9hbGFybV9zdGF0aXN0aWNzXFx0PSBydHc4ODIyY19mYWxzZV9hbGFybV9zdGF0aXN0aWNzLFxcbjQ5MTM6XFx0XFx0LmRwa190cmFja1xcdFxcdD0gcnR3ODgyMmNfZHBrX3RyYWNrLFxcbjQ5MTQ6XFx0XFx0LnBoeV9jYWxpYnJhdGlvblxcdD0gcnR3ODgyMmNfcGh5X2NhbGlicmF0aW9uLFxcbjQ5MTU6XFx0XFx0LmNja19wZF9zZXRcXHRcXHQ9IHJ0dzg4MjJjX3BoeV9jY2tfcGRfc2V0LFxcbjQ5MTY6XFx0XFx0LnB3cl90cmFja1xcdFxcdD0gcnR3ODgyMmNfcHdyX3RyYWNrLFxcbjQ5MTc6XFx0XFx0LmNvbmZpZ19iZmVlXFx0XFx0PSBydHc4ODIyY19iZl9jb25maWdfYmZlZSxcXG40OTE4OlxcdFxcdC5zZXRfZ2lkX3RhYmxlXFx0XFx0PSBydHdfYmZfc2V0X2dpZF90YWJsZSxcXG40OTE5OlxcdFxcdC5jZmdfY3NpX3JhdGVcXHRcXHQ9IHJ0d19iZl9jZmdfY3NpX3JhdGUsXFxuNDkyMDpcXHRcXHQuYWRhcHRpdml0eV9pbml0XFx0PSBydHc4ODIyY19hZGFwdGl2aXR5X2luaXQsXFxuNDkyMTpcXHRcXHQuYWRhcHRpdml0eVxcdFxcdD0gcnR3ODgyMmNfYWRhcHRpdml0eSxcXG40OTIyOlxcdFxcdC5jZm9faW5pdFxcdFxcdD0gcnR3ODgyMmNfY2ZvX2luaXQsXFxuNDkyMzpcXHRcXHQuY2ZvX3RyYWNrXFx0XFx0PSBydHc4ODIyY19jZm9fdHJhY2ssXFxuNDkyNDpcXHRcXHQuY29uZmlnX3R4X3BhdGhcXHRcXHQ9IHJ0dzg4MjJjX2NvbmZpZ190eF9wYXRoLFxcbjQ5MjU6XFx0XFx0LmNvbmZpZ190eHJ4X21vZGVcXHQ9IHJ0dzg4MjJjX2NvbmZpZ190cnhfbW9kZSxcXG40OTI2OlxcdFxcdC5sZWRfc2V0XFx0XFx0PSBydHc4ODIyY19sZWRfc2V0LFxcbjQ5Mjc6XFx0XFx0LmZpbGxfdHhkZXNjX2NoZWNrc3VtXFx0PSBydHc4ODIyY19maWxsX3R4ZGVzY19jaGVja3N1bSxcXG40OTI4OlxcdFxcbjQ5Mjk6XFx0XFx0LmNvZXhfc2V0X2luaXRcXHRcXHQ9IHJ0dzg4MjJjX2NvZXhfY2ZnX2luaXQsXFxuNDkzMDpcXHRcXHQuY29leF9zZXRfYW50X3N3aXRjaFxcdD0gTlVMTCxcXG40OTMxOlxcdFxcdC5jb2V4X3NldF9nbnRfZml4XFx0PSBydHc4ODIyY19jb2V4X2NmZ19nbnRfZml4LFxcbjQ5MzI6XFx0XFx0LmNvZXhfc2V0X2dudF9kZWJ1Z1xcdD0gcnR3ODgyMmNfY29leF9jZmdfZ250X2RlYnVnLFxcbjQ5MzM6XFx0XFx0LmNvZXhfc2V0X3JmZV90eXBlXFx0PSBydHc4ODIyY19jb2V4X2NmZ19yZmVfdHlwZSxcXG40OTM0OlxcdFxcdC5jb2V4X3NldF93bF90eF9wb3dlclxcdD0gcnR3ODgyMmNfY29leF9jZmdfd2xfdHhfcG93ZXIsXFxuNDkzNTpcXHRcXHQuY29leF9zZXRfd2xfcnhfZ2FpblxcdD0gcnR3ODgyMmNfY29leF9jZmdfd2xfcnhfZ2FpbixcXG40OTM2OlxcdH07XFxuNDkzNzpcXHRcXG40OTM4OlxcdC8qIFNoYXJlZC1BbnRlbm5hIENvZXggVGFibGUgKi9cXG40OTM5OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29leF90YWJsZV9wYXJhIHRhYmxlX3NhbnRfODgyMmNbXSA9IHtcXG40OTQwOlxcdFxcdHsweGZmZmZmZmZmLCAweGZmZmZmZmZmfSwgLyogY2FzZS0wICovXFxuNDk0MTpcXHRcXHR7MHg1NTU1NTU1NSwgMHg1NTU1NTU1NX0sXFxuNDk0MjpcXHRcXHR7MHg2NjU1NTU1NSwgMHg2NjU1NTU1NX0sXFxuNDk0MzpcXHRcXHR7MHhhYWFhYWFhYSwgMHhhYWFhYWFhYX0sXFxuNDk0NDpcXHRcXHR7MHg1YTVhNWE1YSwgMHg1YTVhNWE1YX0sXFxuNDk0NTpcXHRcXHR7MHhmYWZhZmFmYSwgMHhmYWZhZmFmYX0sIC8qIGNhc2UtNSAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDo0OS4wMTIwODMwNzZaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI2NTE4MTY5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBQb3dlci1PbiBTZXF1ZW5jZSoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gdHJhY2UgdGhlIHBvd2VyLW9uIHNlcXVlbmNlIGZvciB0aGlzIHN5c3RlbS4gVGhlIHN0YXJ0aW5nIHBvaW50IHNlZW1zIHRvIGJlIGBydHdfcG93ZXJfb25gLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCdzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIHRoZSBtYWluIGVudHJ5IGZ1bmN0aW9uLiBUaGlzIHRoZW4gbGVhZHMgdG8gYSBjYWxsIHRvIGBwaHlfc2V0X3BhcmFtYCwgd2hpY2ggdWx0aW1hdGVseSByZXNvbHZlcyB0byBgcnR3ODgyMmNfcGh5X3NldF9wYXJhbWAuIEhtbSwgYnV0IGBydHc4ODIyY19waHlfc2V0X3BhcmFtYCBpcyBkZWNsYXJlZCBhcyBgc3RhdGljYC4gVGhhdCdzIGEgYml0IG9mIGEgcm9hZGJsb2NrLiBJdCdzIG5vdCBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZSBpdHMgY29tcGlsYXRpb24gdW5pdCwgd2hpY2ggbWlnaHQgY29tcGxpY2F0ZSB0aGluZ3MuXG5cblRoZSBxdWVzdGlvbiB0aGVuIGlzLCBjYW4gSSBzdGlsbCBsZXZlcmFnZSBgcnR3X3Bvd2VyX29uYCBhcyBteSBzdGFydGluZyBwb2ludD8gTGV0J3MgYXNzdW1lIHNvIGZvciBub3cuIEkgcmVjYWxsIHRoYXQgYHJ0d19wb3dlcl9vbmAgcmVzaWRlcyBpbiBgbWFpbi5jYC4gVGhhdCdzIHVzZWZ1bCBpbmZvcm1hdGlvbi4gU28sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIGludG8gdGhlIGNvZGUgZm9yIGBydHdfcG93ZXJfb25gIGl0c2VsZi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZyB0aGVyZSB0byBzZWUgaG93IHRoZSBzdGF0aWMgYHJ0dzg4MjJjX3BoeV9zZXRfcGFyYW1gIGlzIGJlaW5nIHVzZWQgb3IgYWNjZXNzZWQsIGFuZCBob3cgaXQgZml0cyBpbnRvIHRoZSBicm9hZGVyIHBvd2VyLW9uIGluaXRpYWxpemF0aW9uIHByb2NlZHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDExNTksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNDo1My4yNzcyNjgzMTVaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2OTQ5MzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d19wb3dlcl9vblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0xMzU0PXN0YXRpYyBlbnVtIHJ0d19scHNfZGVlcF9tb2RlIHJ0d191cGRhdGVfbHBzX2RlZXBfbW9kZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMTM3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoxMzc0OmludCBydHdfcG93ZXJfb24oc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xMzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE0NDItfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjE0NDM6RVhQT1JUX1NZTUJPTChydHdfcG93ZXJfb24pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE0NDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0yMjcxPWludCBydHdfd2FpdF9maXJtd2FyZV9jb21wbGV0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIyNzI6aW50IHJ0d19wb3dlcl9vbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjczLXZvaWQgcnR3X2NvcmVfZndfc2Nhbl9ub3RpZnkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgYm9vbCBzdGFydCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiLmM9MTgzNj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzAzYl9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jOjE4Mzc6XFx0LnBvd2VyX29uXFx0XFx0PSBydHdfcG93ZXJfb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYi5jLTE4MzgtXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2QuYz0xMzkyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg3MjNkX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmM6MTM5MzpcXHQucG93ZXJfb25cXHRcXHQ9IHJ0d19wb3dlcl9vbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkLmMtMTM5NC1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHdfcG93ZXJfb2ZmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jPTIwNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgxNGFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyMDUxOlxcdC5wb3dlcl9vblxcdFxcdD0gcnR3X3Bvd2VyX29uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYy0yMDUyLVxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0d19wb3dlcl9vZmYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM9MTY1OD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4ODIxY19vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjE2NTk6XFx0LnBvd2VyX29uXFx0XFx0PSBydHdfcG93ZXJfb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jLTE2NjAtXFx0LnBvd2VyX29mZlxcdFxcdD0gcnR3X3Bvd2VyX29mZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYz0yMTUwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfb3BzIHJ0dzg4MjJiX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM6MjE1MTpcXHQucG93ZXJfb25cXHRcXHQ9IHJ0d19wb3dlcl9vbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMjE1Mi1cXHQucG93ZXJfb2ZmXFx0XFx0PSBydHdfcG93ZXJfb2ZmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ4OTY9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9vcHMgcnR3ODgyMmNfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0ODk3OlxcdC5wb3dlcl9vblxcdFxcdD0gcnR3X3Bvd2VyX29uLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00ODk4LVxcdC5wb3dlcl9vZmZcXHRcXHQ9IHJ0d19wb3dlcl9vZmYsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjUzLjMzNDIyMzUxNFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzcxODM3NDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUG93ZXItT24gU2VxdWVuY2UqKlxuXG5Pa2F5LCBzbyBgcnR3X3Bvd2VyX29uYCBpcyBkZWZpbml0ZWx5IGFuIGV4cG9ydGVkIGZ1bmN0aW9uLiBNeSBmaXJzdCB0aG91Z2h0IGlzOiBJcyB0aGlzIHRoZSAqb25seSogZW50cnkgcG9pbnQ/IEkgbmVlZCB0byBiZSBzdXJlIEknbSBub3QgbWlzc2luZyBhbnl0aGluZyBjcnVjaWFsLiBMZXQncyBkaWcgZGVlcGVyLiBBaCwgcmlnaHQsIEkgcmVtZW1iZXIgc2VlaW5nIGBydHdfY29yZV9zdGFydGAgaW4gYG1haW4uY2AuIEl0J3MgY2FsbGluZyBgcnR3X3Bvd2VyX29uYCwgc28gdGhhdCBzb2xpZGlmaWVzIHRoZSBjb25uZWN0aW9uLiBOb3csIHRoZSBsb2dpY2FsIG5leHQgc3RlcCBpcyB0byBkcmlsbCBkb3duIGludG8gdGhlIGBydHdfY29yZV9zdGFydGAgZnVuY3Rpb24gaXRzZWxmLiBVbmRlcnN0YW5kaW5nIHRoYXQgZmxvdyB3aWxsIHByb2JhYmx5IGdpdmUgbWUgYSBtdWNoIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgb3ZlcmFsbCBpbml0aWFsaXphdGlvbiBwcm9jZXNzIGFuZCBob3cgdGhpcyBgcnR3X3Bvd2VyX29uYCBmdW5jdGlvbiBmaXRzIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjc5MiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjU3LjcwNjA2NDY3WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTE2Mjg3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfY29yZV9zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NTM9c3RhdGljIGludCBydHdfb3BzX3N0YXJ0KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTU4LVxcdG11dGV4X2xvY2soXFx1MDAyNnJ0d2Rldi1cXHUwMDNlbXV0ZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo1OTpcXHRyZXQgPSBydHdfY29yZV9zdGFydChydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy02MC1cXHRtdXRleF91bmxvY2soXFx1MDAyNnJ0d2Rldi1cXHUwMDNlbXV0ZXgpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MTQ5MD12b2lkIHJ0d19jb3JlX3NjYW5fY29tcGxldGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTE1MTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MTUxNTppbnQgcnR3X2NvcmVfc3RhcnQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0xNTE2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIyNTM9dm9pZCBydHdfY29yZV9zY2FuX2NvbXBsZXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI1NC1cXHRcXHRcXHQgICAgYm9vbCBod19zY2FuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjU1OmludCBydHdfY29yZV9zdGFydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjU2LXZvaWQgcnR3X3Bvd2VyX29mZihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcHMuYz0xMz1zdGF0aWMgaW50IHJ0d19pcHNfcHdyX3VwKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BzLmMtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wcy5jOjE3OlxcdHJldCA9IHJ0d19jb3JlX3N0YXJ0KHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wcy5jLTE4LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM0OjU3Ljc1NTIzMjQ2WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NjU2NTAwOTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIERyaXZlciBJbml0aWFsaXphdGlvbioqXG5cbk9rYXksIHNvIHRoZSBgcnR3X2NvcmVfc3RhcnRgIGZ1bmN0aW9uLCB0aGF0J3Mgd2hlcmUgdGhpbmdzIGtpY2sgb2ZmLiBJIHNlZSBmcm9tIHRoZSBjYWxsIGdyYXBoIHRoYXQgaXQgZ2V0cyBjYWxsZWQgZnJvbSBgcnR3X29wc19zdGFydGAgd2l0aGluIGBtYWM4MDIxMS5jYC4gQW5kIGBydHdfb3BzX3N0YXJ0YCBpcyB0aGUgYC5zdGFydGAgY2FsbGJhY2sgZm9yIG1hYzgwMjExLCByaWdodD8gU28sIGBydHdfY29yZV9zdGFydGAgc2VlbXMgbGlrZSBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZyDigJMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IHRvIGV4cGxvcmUuIEJ1dCB3YWl0LCBgcnR3X2NvcmVfc3RhcnRgIHJlc2lkZXMgaW4gYG1haW4uY2AsIGFuZCB0aGUgcGF0Y2ggc3BlY2lmaWNhbGx5IG1vZGlmaWVzIGNvZGUgaW4gYHJ0dzg4MjJjLmNgLiBGb2N1c2luZyBvbiBgcnR3X2NvcmVfc3RhcnRgIHdvdWxkIHByaW1hcmlseSBmdXp6IHRoZSBvdmVyYWxsIGRldmljZSBpbml0aWFsaXphdGlvbiwgbm90IHRoZSBzcGVjaWZpYyBjaGFuZ2VzLiBUaGF0IGRvZXNuJ3QgZmVlbCByaWdodC5cblxuTGV0J3MgcmV0aGluayB0aGlzLiBJcyB0aGVyZSBhbnl0aGluZyBlbHNlIGluIGBydHc4ODIyYy5jYCB0aGF0J3MgZXhwb3J0ZWQgb3Igbm90IHN0YXRpYz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBmdW5jdGlvbnMgd2l0aGluIHRoYXQgc3BlY2lmaWMgZmlsZSBhcmUgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGUsIG9yIHBlcmhhcHMgbW9yZSByZWxldmFudCB0byB0aGUgcmVjZW50IGNoYW5nZXMuIFRpbWUgdG8gZGl2ZSBpbnRvIGBydHc4ODIyYy5jYCBhbmQgc2VhcmNoIGZvciBub24tc3RhdGljIGZ1bmN0aW9ucy4gVGhhdCdzIHRoZSByZWFsIGFyZWEgSSBuZWVkIHRvIGhvbmUgaW4gb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzNjkwLCJPdXRwdXRUb2tlbnMiOjY5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjAyLjMyMDg4NTUxNVoiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA0MTI3MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiXlthLXpfMC05XSsgcnR3ODgyMmNfW2Etel8wLTldK1xcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MzA5MD1zdHJ1Y3QgZHBrX2NmZ19wYWlyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzozMDk2OnZvaWQgcnR3ODgyMmNfcGFyc2VfdGJsX2RwayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy0zMDk3LVxcdFxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlICp0YmwpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjAyLjM3MTMwNDI0NFoiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjQ2MjQ5MDA0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIGNvZGUgYW5hbHlzaXM6XG5cbioqQ29kZSBTdHJ1Y3R1cmUgYW5kIFZpc2liaWxpdHkgQW5hbHlzaXMqKlxuXG5Pa2F5LCBzbyBJJ20gZGlnZ2luZyBpbnRvIHRoaXMgYHJ0dzg4MjJjLmNgIGZpbGUuIFRoZSBtYWluIHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoZSBmdW5jdGlvbiBgcnR3ODgyMmNfcGFyc2VfdGJsX2Rwa2AuIEl0J3MgdGhlIG9ubHkgb25lIG9mIHRoZSBidW5jaCB0aGF0J3MgKm5vdCogZGVjbGFyZWQgYXMgYHN0YXRpY2AgaW4gdGhhdCBmaWxlLCB3aGljaCBpbW1lZGlhdGVseSBzaWduYWxzIGl0J3MgbGlrZWx5IGludGVuZGVkIGZvciBleHRlcm5hbCB1c2UuIEkgbmVlZCB0byBrZWVwIHRoYXQgaW4gbWluZCB3aGVuIHRyYWNpbmcgdGhlIGRhdGEgZmxvdy5cblxuV2FpdCBhIHNlY29uZCwgdGhlcmUncyBgcnR3ODgyMmNfb3BzYC4gVGhhdCAqaXMqIGRlY2xhcmVkIGBzdGF0aWNgLCB3aGljaCBtZWFucyBpdCdzIGxpbWl0ZWQgdG8gdGhlIHNjb3BlIG9mIHRoaXMgcGFydGljdWxhciBmaWxlLiBCdXQsIGFuZCB0aGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIEkgc2VlIHRoYXQgaXQncyBiZWluZyBhc3NpZ25lZCB0byBgcnR3ODgyMmNfaHdfc3BlYy5vcHNgLiBPa2F5LCBzbyBgcnR3ODgyMmNfb3BzYCBpdHNlbGYgaXMgaW50ZXJuYWwsIGJ1dCBpdHMgY29udGVudHMsIHByZXN1bWFibHkgYSBjb2xsZWN0aW9uIG9mIGZ1bmN0aW9uIHBvaW50ZXJzLCBhcmUgcG90ZW50aWFsbHkgYWNjZXNzaWJsZSBpbmRpcmVjdGx5IHRocm91Z2ggdGhhdCBgcnR3ODgyMmNfaHdfc3BlY2Agc3RydWN0LlxuXG5BaCwgYW5kIEkgc2VlIGBydHc4ODIyY19od19zcGVjYCBpdHNlbGYgaXMgKmV4cG9ydGVkKi4gVGhhdCBjb25maXJtcyB0aGUgaHlwb3RoZXNpczsgaXQncyB0aGUgZ2F0ZXdheS4gSSdsbCBuZWVkIHRvIGxvb2sgYXQgaG93IGBydHc4ODIyY19od19zcGVjYCBpcyB1c2VkLiBUaGlzIHN0cnVjdCBwcm9iYWJseSBhY3RzIGFzIHRoZSBjZW50cmFsIGludGVyZmFjZSwgZXhwb3NpbmcgaW50ZXJuYWwgb3BlcmF0aW9ucyB0aHJvdWdoIHBvaW50ZXJzIHRvIGV4dGVybmFsIGNvbXBvbmVudHMuIFRoaXMgd2hvbGUgc2V0dXAgc3VnZ2VzdHMgYSBtb2R1bGFyIGRlc2lnbiB3aGVyZSBjb3JlIGZ1bmN0aW9uYWxpdHkgaXMgZW5jYXBzdWxhdGVkLCBidXQgY2VydGFpbiBob29rcyBhcmUgcHJvdmlkZWQgZm9yIGludGVyYWN0aW9uIHdpdGggdGhlIGRyaXZlcidzIGVudmlyb25tZW50LiBOb3csIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdGhvc2UgZnVuY3Rpb25zIGRvLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDM3OSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjE0LjgzMzc5NjhaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyMDcxMzI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4MjJjX2h3X3NwZWNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTUyNDg9c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfcmVnX2RvbWFpbiBjb2V4X2luZm9faHdfcmVnc184ODIyY1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTUyNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUyNzM6Y29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gcnR3ODgyMmNfaHdfc3BlYyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTI3NC1cXHQub3BzID0gXFx1MDAyNnJ0dzg4MjJjX29wcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy01Mzc3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjUzNzg6RVhQT1JUX1NZTUJPTChydHc4ODIyY19od19zcGVjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTM3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaD0xMjc9dm9pZCBydHc4ODIyY19wYXJzZV90YmxfZHBrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgtMTI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDoxMzA6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvIHJ0dzg4MjJjX2h3X3NwZWM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTEzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM9MTA9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHJ0d184ODIyY2VfaWRfdGFibGVbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmMtMTItXFx0XFx0UENJX0RFVklDRShQQ0lfVkVORE9SX0lEX1JFQUxURUssIDB4QzgyMiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY2UuYzoxMzpcXHRcXHQuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNnJ0dzg4MjJjX2h3X3NwZWNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE0LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjZS5jLTE2LVxcdFxcdFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9SRUFMVEVLLCAweEM4MkYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNlLmM6MTc6XFx0XFx0LmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KVxcdTAwMjZydHc4ODIyY19od19zcGVjXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY2UuYy0xOC1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3MuYz0xMj1zdGF0aWMgY29uc3Qgc3RydWN0IHNkaW9fZGV2aWNlX2lkIHJ0d184ODIyY3NfaWRfdGFibGVbXSA9ICB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjcy5jLTE1LVxcdFxcdFxcdCAgICBTRElPX0RFVklDRV9JRF9SRUFMVEVLX1JUVzg4MjJDUyksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3MuYzoxNjpcXHRcXHQuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNnJ0dzg4MjJjX2h3X3NwZWMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3MuYy0xNy1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYz0xMT1zdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4MjJjdV9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTItXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MmMsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTM6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTQtXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MTIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTU6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTYtXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGM4MmUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTc6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMTgtXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGQ4MjAsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MTk6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMjAtXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhSVFdfVVNCX1ZFTkRPUl9JRF9SRUFMVEVLLCAweGQ4MmIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MjE6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMjItXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDEzYjEsIDB4MDA0MywgMHhmZiwgMHhmZiwgMHhmZiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYzoyMzpcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEFscGhhIC0gQWxwaGEgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjdS5jLTI0LVxcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgyMDAxLCAweDMzMjksIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MjU6XFx0ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpXFx1MDAyNihydHc4ODIyY19od19zcGVjKSB9LCAvKiBELUxpbmsgQUMxM1UgcmV2LiBBMSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMjYtXFx0e30sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjE0Ljg4NTg3MTk3WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0OTcwNDMxMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIG15IG93biBtZW50YWwgcHJvY2VzcywgZ2l2ZW4gbXkgZXhwZXJ0aXNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBydHc4ODIyY3UgRHJpdmVyKipcblxuQWxyaWdodCwgdGhlIFVTQiBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYHJ0dzg4MjJjdWAuIE5vIHN1cnByaXNlcyB0aGVyZSwgaXQncyBwcmV0dHkgY2xlYXIgZnJvbSB0aGUgbmFtZS4gVGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIExldCdzIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgYHJ0dzg4MjJjdS5jYCwgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBmaWxlLiBUaGF0J3MgdGhlIGhlYXJ0IG9mIGhvdyB0aGlzIGRyaXZlciBmdW5jdGlvbnMuIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIGhhcHBlbnMsIGFuZCBpdCdzIHdoZXJlIEkgbmVlZCB0byBzdGFydCB0byB0cnVseSB1bmRlcnN0YW5kIGl0cyBiZWhhdmlvciwgcG90ZW50aWFsIGlzc3Vlcywgb3IgYXJlYXMgZm9yIG9wdGltaXphdGlvbi4gSSdtIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB0aGluZ3MgbGlrZSBpbnRlcnJ1cHQgaGFuZGxpbmcsIHBvd2VyIG1hbmFnZW1lbnQgcm91dGluZXMsIGFuZCBhbnkgY3VzdG9tIGV4dGVuc2lvbnMgaW1wbGVtZW50ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2ODQxLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6MTguMzgyOTE4MzE2WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0ODQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcXG4gICAyOlxcdC8qIENvcHlyaWdodChjKSAyMDE4LTIwMTkgIFJlYWx0ZWsgQ29ycG9yYXRpb25cXG4gICAzOlxcdCAqL1xcbiAgIDQ6XFx0XFxuICAgNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAgNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdXNiLmhcXHUwMDNlXFxuICAgNzpcXHQjaW5jbHVkZSBcXFwibWFpbi5oXFxcIlxcbiAgIDg6XFx0I2luY2x1ZGUgXFxcInJ0dzg4MjJjLmhcXFwiXFxuICAgOTpcXHQjaW5jbHVkZSBcXFwidXNiLmhcXFwiXFxuICAxMDpcXHRcXG4gIDExOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODgyMmN1X2lkX3RhYmxlW10gPSB7XFxuICAxMjpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgyYywgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAxMzpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAxNDpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgxMiwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAxNTpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAxNjpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4YzgyZSwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAxNzpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAxODpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4ZDgyMCwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAxOTpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAyMDpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFJUV19VU0JfVkVORE9SX0lEX1JFQUxURUssIDB4ZDgyYiwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAyMTpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sXFxuICAyMjpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MTNiMSwgMHgwMDQzLCAweGZmLCAweGZmLCAweGZmKSxcXG4gIDIzOlxcdFxcdCAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KVxcdTAwMjYocnR3ODgyMmNfaHdfc3BlYykgfSwgLyogQWxwaGEgLSBBbHBoYSAqL1xcbiAgMjQ6XFx0XFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDIwMDEsIDB4MzMyOSwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAyNTpcXHRcXHQgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2KHJ0dzg4MjJjX2h3X3NwZWMpIH0sIC8qIEQtTGluayBBQzEzVSByZXYuIEExICovXFxuICAyNjpcXHRcXHR7fSxcXG4gIDI3OlxcdH07XFxuICAyODpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4MjJjdV9pZF90YWJsZSk7XFxuICAyOTpcXHRcXG4gIDMwOlxcdHN0YXRpYyBpbnQgcnR3ODgyMmN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbiAgMzE6XFx0XFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbiAgMzI6XFx0e1xcbiAgMzM6XFx0XFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xcbiAgMzQ6XFx0fVxcbiAgMzU6XFx0XFxuICAzNjpcXHRzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4MjJjdV9kcml2ZXIgPSB7XFxuICAzNzpcXHRcXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxcbiAgMzg6XFx0XFx0LmlkX3RhYmxlID0gcnR3Xzg4MjJjdV9pZF90YWJsZSxcXG4gIDM5OlxcdFxcdC5wcm9iZSA9IHJ0dzg4MjJjdV9wcm9iZSxcXG4gIDQwOlxcdFxcdC5kaXNjb25uZWN0ID0gcnR3X3VzYl9kaXNjb25uZWN0LFxcbiAgNDE6XFx0fTtcXG4gIDQyOlxcdG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODIyY3VfZHJpdmVyKTtcXG4gIDQzOlxcdFxcbiAgNDQ6XFx0TU9EVUxFX0FVVEhPUihcXFwiUmVhbHRlayBDb3Jwb3JhdGlvblxcXCIpO1xcbiAgNDU6XFx0TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIDg4MjJjdSBkcml2ZXJcXFwiKTtcXG4gIDQ2OlxcdE1PRFVMRV9MSUNFTlNFKFxcXCJEdWFsIEJTRC9HUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6MTguMzgyOTg0NjE2WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMzc2MTMyMzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBVU0IgRHJpdmVyJ3MgRW50cnkgUG9pbnQqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMgVVNCIGRyaXZlci4gQSBzb2xpZCBzdGFydGluZyBwb2ludCwgYSBnb29kIGZvY3VzIHN5bWJvbCwgaXMgb2Z0ZW4gdGhlIHByb2JlIGZ1bmN0aW9uLiBMZXQncyBzZWUuLi4gYHJ0d191c2JfcHJvYmVgIGxvb2tzIHByb21pc2luZy4gSXQncyBleHBvcnRlZCBieSBgdXNiLmNgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyB0aGUgbGlrZWx5IGVudHJ5IHBvaW50LiBHb29kLCB0aGF0IGNvbmZpcm1zIGl0J3MgdGhlIHJpZ2h0IGZ1bmN0aW9uLiBBbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gZXhhbWluaW5nIGBydHdfdXNiX3Byb2JlYCBhbmQgc2VlIHdoYXQgaXQgcmV2ZWFscy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgxNjEsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjIxLjQyMDYwMjIzNVoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjQzNjEwMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3VzYl9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkdS5jPTIwPXN0YXRpYyBpbnQgcnR3ODcyM2R1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZHUuYy0yMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZHUuYzoyMzpcXHRyZXR1cm4gcnR3X3VzYl9wcm9iZShpbnRmLCBpZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZHUuYy0yNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhdS5jPTg0PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODgxMmF1X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmF1LmMtODYtXFx0LmlkX3RhYmxlID0gcnR3Xzg4MTJhdV9pZF90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhdS5jOjg3OlxcdC5wcm9iZSA9IHJ0d191c2JfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYXUuYy04OC1cXHQuZGlzY29ubmVjdCA9IHJ0d191c2JfZGlzY29ubmVjdCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGF1LmM9NDQ9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODE0YXVfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YXUuYy00Ni1cXHQuaWRfdGFibGUgPSBydHdfODgxNGF1X2lkX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGF1LmM6NDc6XFx0LnByb2JlID0gcnR3X3VzYl9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhdS5jLTQ4LVxcdC5kaXNjb25uZWN0ID0gcnR3X3VzYl9kaXNjb25uZWN0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYXUuYz02OD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4MjFhdV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhdS5jLTcwLVxcdC5pZF90YWJsZSA9IHJ0d184ODIxYXVfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYXUuYzo3MTpcXHQucHJvYmUgPSBydHdfdXNiX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWF1LmMtNzItXFx0LmRpc2Nvbm5lY3QgPSBydHdfdXNiX2Rpc2Nvbm5lY3QsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjdS5jPTQ2PXN0YXRpYyBpbnQgcnR3Xzg4MjFjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWN1LmMtNDgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWN1LmM6NDk6XFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWN1LmMtNTAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYnUuYz04OD1zdGF0aWMgaW50IHJ0dzg4MjJidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmMtOTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmM6OTE6XFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJ1LmMtOTItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY3UuYz0zMD1zdGF0aWMgaW50IHJ0dzg4MjJjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMzIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmM6MzM6XFx0cmV0dXJuIHJ0d191c2JfcHJvYmUoaW50ZiwgaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmN1LmMtMzQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYz0xMjI1PXN0YXRpYyB2b2lkIHJ0d191c2JfcGh5X2NmZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC91c2IuYy0xMjYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTI2MzppbnQgcnR3X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTI2NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5jLTEzNTgtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmM6MTM1OTpFWFBPUlRfU1lNQk9MKHJ0d191c2JfcHJvYmUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmMtMTM2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmg9OTA9c3RhdGljIGlubGluZSBzdHJ1Y3QgcnR3X3VzYl90eF9kYXRhICpydHdfdXNiX2dldF90eF9kYXRhKHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3VzYi5oLTk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmg6MTAwOmludCBydHdfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdXNiLmgtMTAxLXZvaWQgcnR3X3VzYl9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6MjEuNDg0OTY2OTE1WiIsIlNlcSI6NDMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MjA0NDUxNDU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBSZWFsdGVrIDg4MjJDIERBQyBJUSBDYWxpYnJhdGlvbiBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBpZGVudGlmeSBzdWl0YWJsZSBmb2N1cyBzeW1ib2xzIGZvciBmdXp6aW5nLiBJIHF1aWNrbHkgc2V0dGxlZCBvbiBgcnR3X3VzYl9wcm9iZWAsIGBydHdfY29yZV9zdGFydGAsIGFuZCBgcnR3X3Bvd2VyX29uYC4gVGhleSBhcmUgYWxsIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50cywgd2hpY2ggYWxpZ25zIHBlcmZlY3RseSB3aXRoIHRoZSBwcm9tcHQncyBwcmVmZXJlbmNlLlxuXG5JIGNvbmZpcm1lZCB0aGF0IGFsbCB0aHJlZSBmdW5jdGlvbnMgYXJlIHJlbGV2YW50LCBnaXZlbiB0aGUgcGF0Y2gncyBtb2RpZmljYXRpb24gb2YgYHJ0dzg4MjJjLmNgLCB3aGljaCBpcyBzaGFyZWQgYWNyb3NzIFVTQiwgUENJLCBhbmQgU0RJTy4gU2luY2Ugd2UncmUgdGFyZ2V0aW5nIFVTQiwgYHJ0d191c2JfcHJvYmVgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgYW5kIGBydHdfY29yZV9zdGFydGAgYW5kIGBydHdfcG93ZXJfb25gIGFyZSBnb29kIGZvciB0aGUgY29yZSBmdW5jdGlvbmFsaXR5LiBJIHRoZW4gdHJhY2VkIHRoZSBjYWxsIHBhdGhzIHRvIHZlcmlmeSB0aGF0IHRoZSB0YXJnZXQgZnVuY3Rpb24gYHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoYCBpcyByZWFjaGFibGUgZnJvbSBgcnR3X3VzYl9wcm9iZWAg4oCTIGFuZCBpbmRlZWQsIGl0IGlzISBUaGUgcGF0aCBnb2VzIHRocm91Z2ggYHJ0d19jb3JlX2luaXRgLCBgcnR3X2NvcmVfc3RhcnRgICh2aWEgYHJ0d19vcHNfc3RhcnRgKSwgYHJ0d19wb3dlcl9vbmAsIGFuZCBkb3duIHRvIHRoZSBzcGVjaWZpYyBjYWxpYnJhdGlvbiBmdW5jdGlvbi4gVGhpcyBpcyBrZXk6IHRoZSBjYWxpYnJhdGlvbiBpcyBwYXJ0IG9mIHRoZSBicmluZy11cCBzZXF1ZW5jZS5cblxuTmV4dCwgSSBuYWlsZWQgZG93biB0aGUgbmVjZXNzYXJ5IGtlcm5lbCBjb25maWd1cmF0aW9ucy4gYFJUVzg4YCBhbmQgYFJUVzg4Xzg4MjJDVWAgc2VlbSBzdWZmaWNpZW50LiBgUlRXODhfODgyMkNVYCBkZXBlbmRzIG9uIGBVU0JgLCBzbyBpdCdzIGEgZ29vZCBjaG9pY2UgZm9yIFVTQiBwYXRoIHRlc3RpbmcuIEkgY2hlY2tlZCB0aGUgS2NvbmZpZyB0byB2ZXJpZnkgdGhhdCBgUlRXODhfODgyMkNVYCBpcywgaW4gZmFjdCwgdGhlIGNvcnJlY3QgbmFtZSwgYW5kIHRoYXQgYFJUVzg4Xzg4MjJDYCBpcyBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkLiBTdGFuZGFyZCBjb25maWd1cmF0aW9ucyBsaWtlIGBNQUM4MDIxMWAgYW5kIGBXTEFOYCBhcmUgaW1wbGllZCwgYW5kIGBVU0JgIGlzIGFsc28gc3RhbmRhcmQuIFRoZXJlZm9yZSwgYFJUVzg4YCBhbmQgYFJUVzg4Xzg4MjJDVWAgYXJlIGVub3VnaC5cblxuSSByZS1leGFtaW5lZCB0aGUgcGF0Y2ggaXRzZWxmLCB3aGljaCB1c2VzIGBzb3J0KClgIHRvIHNvcnQgSVEgdmFsdWVzIGFuZCBjaGFuZ2VzIGRhdGEgdHlwZXMgdG8gYHMzMmAuIFRoaXMgaW5kaWNhdGVzIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gd2l0aGluIHRoZSBkcml2ZXIncyBjYWxpYnJhdGlvbi4gVGhpcyBpcyBnb29kOiBhIGZ1bmN0aW9uYWwgY2hhbmdlLCByZWFjaGFibGUgdmlhIHRoZSBVU0IgcGF0aCwgbWFrZXMgaXQgYSBwcmltZSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuXG5cbk15IHJlYXNvbmluZz8gVGhlIHBhdGNoIGNoYW5nZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiBgcnR3ODgyMmMuY2AuIFRoaXMgaXMgcmVhY2hhYmxlIHZpYSB0aGUgVVNCIHZhcmlhbnQgb2YgdGhlIGRyaXZlciBhbmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uLlxuXG5TbywgaW4gc3VtbWFyeTpcblxuKiAgICoqRm9jdXMgU3ltYm9scyoqOiBgcnR3X3VzYl9wcm9iZWAsIGBydHdfY29yZV9zdGFydGAsIGBydHdfcG93ZXJfb25gXG4qICAgKipFbmFibGUgQ29uZmlndXJhdGlvbnMqKjogYFJUVzg4YCwgYFJUVzg4Xzg4MjJDVWBcblxuWWVzLCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGlzIHJlYWNoYWJsZS4gTGV0J3MgY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTkwOSwiT3V0cHV0VG9rZW5zIjoxNjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjM3LjY4OTQyMTkwM1oiLCJTZXEiOjQ0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2MDc3ODQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkNVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnR3X3VzYl9wcm9iZVwiLFxuICAgIFwicnR3X2NvcmVfc3RhcnRcIixcbiAgICBcInJ0d19wb3dlcl9vblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBEQUMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIFJlYWx0ZWsgODgyMkMgd2lyZWxlc3MgZHJpdmVyLCByZXBsYWNpbmcgYSBjdXN0b20gc29ydGluZyBpbXBsZW1lbnRhdGlvbiB3aXRoIHRoZSBzdGFuZGFyZCBzb3J0KCkgZnVuY3Rpb24gYW5kIGNoYW5naW5nIHRoZSBkYXRhIHR5cGVzIGZyb20gdTMyIHRvIHMzMi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBhbmQgY2FsaWJyYXRpb24gc2VxdWVuY2UuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIHRoZSBVU0IgdmFyaWFudCBvZiB0aGUgZHJpdmVyIChydHc4OF84ODIyY3UpIHVzaW5nIFVTQiBnYWRnZXQgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg4XCIsXG4gICAgXCJSVFc4OF84ODIyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHdfdXNiX3Byb2JlXCIsXG4gICAgXCJydHdfY29yZV9zdGFydFwiLFxuICAgIFwicnR3X3Bvd2VyX29uXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERBQyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgUmVhbHRlayA4ODIyQyB3aXJlbGVzcyBkcml2ZXIsIHJlcGxhY2luZyBhIGN1c3RvbSBzb3J0aW5nIGltcGxlbWVudGF0aW9uIHdpdGggdGhlIHN0YW5kYXJkIHNvcnQoKSBmdW5jdGlvbiBhbmQgY2hhbmdpbmcgdGhlIGRhdGEgdHlwZXMgZnJvbSB1MzIgdG8gczMyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIGluaXRpYWxpemF0aW9uIGFuZCBjYWxpYnJhdGlvbiBzZXF1ZW5jZS4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgdGhlIFVTQiB2YXJpYW50IG9mIHRoZSBkcml2ZXIgKHJ0dzg4Xzg4MjJjdSkgdXNpbmcgVVNCIGdhZGdldCBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE1VDA2OjM1OjM3Ljc2NTUwNjQ2MloiLCJTZXEiOjQ1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIxODE3Mjk3ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNVQwNjozNTozNy43NjYxMDc2MzJaIiwiU2VxIjo0NiwiTmVzdGluZyI6MiwiVHlwZSI6ImFnZW50IiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NTIxODExMjQyNzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHJlZmFjdG9ycyBJUSBjYWxpYnJhdGlvbiBsb2dpYyBpbiB0aGUgcnR3ODggZHJpdmVyLCByZXBsYWNpbmcgY3VzdG9tIDEwLWJpdCB0d28ncyBjb21wbGVtZW50IGFyaXRobWV0aWMgYW5kIGEgY3VzdG9tIGJ1YmJsZSBzb3J0IHdpdGggc3RhbmRhcmQgc2lnbmVkIGludGVnZXJzIChzMzIpIGFuZCB0aGUga2VybmVsJ3Mgc29ydCgpIGZ1bmN0aW9uLiBXaGlsZSB0aGUgc3RhY2stYWxsb2NhdGVkIGFycmF5cyBgaXZgIGFuZCBgcXZgIGNvdWxkIHBvdGVudGlhbGx5IGJlIHBhcnRpYWxseSB1bmluaXRpYWxpemVkIGlmIHRoZSBoYXJkd2FyZSByZWFkIGxvb3AgdGltZXMgb3V0LCB0aGlzIGV4YWN0IHNhbWUgYmVoYXZpb3IgYW5kIHN1YnNlcXVlbnQgcmVhZGluZyBvZiB0aGVzZSBhcnJheXMgZXhpc3RlZCBwcmlvciB0byB0aGUgcGF0Y2guIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyB1bmluaXRpYWxpemVkIG1lbW9yeSBhbGxvY2F0aW9ucywgbm9yIGRvZXMgaXQgZXhwb3NlIGFueSBrZXJuZWwgc3RydWN0dXJlcyB0byB1c2Vyc3BhY2UuIEFueSBwb3RlbnRpYWwgbWVtb3J5IHNhZmV0eSBpc3N1ZXMgKHN1Y2ggYXMgb3V0LW9mLWJvdW5kcyBhY2Nlc3Nlcykgd291bGQgYmUgY2F1Z2h0IGJ5IHN0YW5kYXJkIEtBU0FOLiBUaGVyZWZvcmUsIGEgZGVkaWNhdGVkIEtNU0FOIHNlc3Npb24gaXMgbm90IGp1c3RpZmllZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAzNDNlMTZlMzgxN2YyNTYzOTRjYjM5NDcxNmJiZTUwMWMzM2JhNDJkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMTUgMDY6MzM6MzIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcbmluZGV4IDI0NGM4MDI2NDc5YzIuLjAxNDBmMmU2NDRjYTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuY1xuQEAgLTMsNiArMyw3IEBAXG4gICovXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9zb3J0LmhcdTAwM2VcbiAjaW5jbHVkZSBcIm1haW4uaFwiXG4gI2luY2x1ZGUgXCJjb2V4LmhcIlxuICNpbmNsdWRlIFwiZncuaFwiXG5AQCAtMTgsNyArMTksNyBAQFxuICNpbmNsdWRlIFwiYmYuaFwiXG4gI2luY2x1ZGUgXCJlZnVzZS5oXCJcbiBcbi0jZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWFcbisjZGVmaW5lIElRS19ET05FXzg4MjJDIDB4YWE0XG4gXG4gc3RhdGljIHZvaWQgcnR3ODgyMmNfY29uZmlnX3RyeF9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHR4X3BhdGgsXG4gXHRcdFx0XHQgICAgIHU4IHJ4X3BhdGgsIGJvb2wgaXNfdHgyX3BhdGgpO1xuQEAgLTE1Myw4NCArMTU0LDI1IEBAIHN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19yZXN0b3JlX3JlZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0fVxuIH1cbiBcbi1zdGF0aWMgdm9pZCBydHc4ODIyY19yZl9taW5tYXhfY21wKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiB2YWx1ZSxcbi1cdFx0XHRcdCAgIHUzMiAqbWluLCB1MzIgKm1heClcbitzdGF0aWMgaW50IHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpXG4ge1xuLVx0aWYgKHZhbHVlIFx1MDAzZT0gMHgyMDApIHtcbi1cdFx0aWYgKCptaW4gXHUwMDNlPSAweDIwMCkge1xuLVx0XHRcdGlmICgqbWluIFx1MDAzZSB2YWx1ZSlcbi1cdFx0XHRcdCptaW4gPSB2YWx1ZTtcbi1cdFx0fSBlbHNlIHtcbi1cdFx0XHQqbWluID0gdmFsdWU7XG4tXHRcdH1cbi1cdFx0aWYgKCptYXggXHUwMDNlPSAweDIwMCkge1xuLVx0XHRcdGlmICgqbWF4IFx1MDAzYyB2YWx1ZSlcbi1cdFx0XHRcdCptYXggPSB2YWx1ZTtcbi1cdFx0fVxuLVx0fSBlbHNlIHtcbi1cdFx0aWYgKCptaW4gXHUwMDNjIDB4MjAwKSB7XG4tXHRcdFx0aWYgKCptaW4gXHUwMDNlIHZhbHVlKVxuLVx0XHRcdFx0Km1pbiA9IHZhbHVlO1xuLVx0XHR9XG4rXHRzMzIgdmFsX2EgPSAqKGNvbnN0IHMzMiAqKWE7XG4rXHRzMzIgdmFsX2IgPSAqKGNvbnN0IHMzMiAqKWI7XG4gXG4tXHRcdGlmICgqbWF4ICBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdFx0Km1heCA9IHZhbHVlO1xuLVx0XHR9IGVsc2Uge1xuLVx0XHRcdGlmICgqbWF4IFx1MDAzYyB2YWx1ZSlcbi1cdFx0XHRcdCptYXggPSB2YWx1ZTtcbi1cdFx0fVxuLVx0fVxuK1x0cmV0dXJuICh2YWxfYSBcdTAwM2UgdmFsX2IpIC0gKHZhbF9hIFx1MDAzYyB2YWxfYik7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICp2MSwgdTMyICp2Milcbi17XG4tXHRpZiAoKnYxIFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2ICp2MiBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdGlmICgqdjEgXHUwMDNlICp2Milcbi1cdFx0XHRzd2FwKCp2MSwgKnYyKTtcbi1cdH0gZWxzZSBpZiAoKnYxIFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgKnYyIFx1MDAzYyAweDIwMCkge1xuLVx0XHRpZiAoKnYxIFx1MDAzZSAqdjIpXG4tXHRcdFx0c3dhcCgqdjEsICp2Mik7XG4tXHR9IGVsc2UgaWYgKCp2MSBcdTAwM2MgMHgyMDAgXHUwMDI2XHUwMDI2ICp2MiBcdTAwM2U9IDB4MjAwKSB7XG4tXHRcdHN3YXAoKnYxLCAqdjIpO1xuLVx0fVxuLX1cbiBcbi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfaXFfc29ydChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KVxuK3N0YXRpYyB1MzIgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgKnZlYylcbiB7XG4tXHR1MzIgaSwgajtcbitcdHMzMiBzdW0gPSAwO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgREFDS19TTl84ODIyQyAtIDE7IGkrKykge1xuLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyAoREFDS19TTl84ODIyQyAtIDEgLSBpKSA7IGorKykge1xuLVx0XHRcdF9fcnR3ODgyMmNfZGFjX2lxX3NvcnQocnR3ZGV2LCBcdTAwMjZpdltqXSwgXHUwMDI2aXZbaiArIDFdKTtcbi1cdFx0XHRfX3J0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgXHUwMDI2cXZbal0sIFx1MDAyNnF2W2ogKyAxXSk7XG4tXHRcdH1cbi1cdH1cbi19XG4tXG4tc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2lxX29mZnNldChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKnZlYywgdTMyICp2YWwpXG4te1xuLVx0dTMyIHAsIG0sIHQsIGk7XG4tXG4tXHRtID0gMDtcbi1cdHAgPSAwO1xuLVx0Zm9yIChpID0gMTA7IGkgXHUwMDNjIERBQ0tfU05fODgyMkMgLSAxMDsgaSsrKSB7XG4tXHRcdGlmICh2ZWNbaV0gXHUwMDNlIDB4MjAwKVxuLVx0XHRcdG0gPSAoMHg0MDAgLSB2ZWNbaV0pICsgbTtcbi1cdFx0ZWxzZVxuLVx0XHRcdHAgPSB2ZWNbaV0gKyBwO1xuLVx0fVxuK1x0Zm9yICh1MzIgaSA9IDEwOyBpIFx1MDAzYyBEQUNLX1NOXzg4MjJDIC0gMTA7IGkrKylcbitcdFx0c3VtICs9IHZlY1tpXTtcbiBcbi1cdGlmIChwIFx1MDAzZSBtKSB7XG4tXHRcdHQgPSBwIC0gbTtcbi1cdFx0dCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbi1cdH0gZWxzZSB7XG4tXHRcdHQgPSBtIC0gcDtcbi1cdFx0dCA9IHQgLyAoREFDS19TTl84ODIyQyAtIDIwKTtcbi1cdFx0aWYgKHQgIT0gMHgwKVxuLVx0XHRcdHQgPSAweDQwMCAtIHQ7XG4tXHR9XG4rXHRzMzIgYXZnID0gc3VtIC8gKERBQ0tfU05fODgyMkMgLSAyMCk7XG4gXG4tXHQqdmFsID0gdDtcbitcdHJldHVybiBhdmcgXHUwMDNlPSAwID8gKHUzMilhdmcgOiAodTMyKSgweDQwMCArIGF2Zyk7XG4gfVxuIFxuIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfd3JpdGVfYWRkcih1OCBwYXRoKVxuQEAgLTI3MSwyOSArMjEzLDI3IEBAIHN0YXRpYyB1MzIgcnR3ODgyMmNfZ2V0X3BhdGhfcmVhZF9hZGRyKHU4IHBhdGgpXG4gXHRyZXR1cm4gYmFzZV9hZGRyO1xuIH1cbiBcbi1zdGF0aWMgYm9vbCBydHc4ODIyY19kYWNfaXFfY2hlY2soc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVlKVxuK3N0YXRpYyBib29sIHJ0dzg4MjJjX2RhY19pcV9jaGVjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzMzIgdmFsdWUpXG4ge1xuLVx0Ym9vbCByZXQgPSB0cnVlO1xuIFxuLVx0aWYgKCh2YWx1ZSBcdTAwM2U9IDB4MjAwIFx1MDAyNlx1MDAyNiAoMHg0MDAgLSB2YWx1ZSkgXHUwMDNlIDB4NjQpIHx8XG4tXHQgICAgKHZhbHVlIFx1MDAzYyAweDIwMCBcdTAwMjZcdTAwMjYgdmFsdWUgXHUwMDNlIDB4NjQpKSB7XG4tXHRcdHJldCA9IGZhbHNlO1xuK1x0aWYgKHZhbHVlIFx1MDAzZSAxMDAgfHwgdmFsdWUgXHUwMDNjIC0xMDApIHtcbiBcdFx0cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCBcIltEQUNLXSBFcnJvciBvdmVyZmxvd1xcblwiKTtcbitcdFx0cmV0dXJuIGZhbHNlO1xuIFx0fVxuIFxuLVx0cmV0dXJuIHJldDtcbitcdHJldHVybiB0cnVlO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgKml2LCB1MzIgKnF2KVxuK3N0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2FtcGxlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiAqaXYsIHMzMiAqcXYpXG4ge1xuIFx0dTMyIHRlbXA7XG4gXHRpbnQgaSA9IDAsIGNudCA9IDA7XG4gXG4gXHR3aGlsZSAoaSBcdTAwM2MgREFDS19TTl84ODIyQyBcdTAwMjZcdTAwMjYgY250IFx1MDAzYyAxMDAwMCkge1xuIFx0XHRjbnQrKztcbi1cdFx0dGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpO1xuLVx0XHRpdltpXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRxdltpXSA9IHRlbXAgXHUwMDI2IDB4M2ZmO1xuK1x0XHR0ZW1wID0gcnR3X3JlYWQzMihydHdkZXYsIDB4MmRiYyk7XG4rXHRcdGl2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfSVZfTUFTSywgdGVtcCk7XG4rXHRcdHF2W2ldID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XG4gXG4gXHRcdGlmIChydHc4ODIyY19kYWNfaXFfY2hlY2socnR3ZGV2LCBpdltpXSkgXHUwMDI2XHUwMDI2XG4gXHRcdCAgICBydHc4ODIyY19kYWNfaXFfY2hlY2socnR3ZGV2LCBxdltpXSkpXG5AQCAtMzAyLDEzICsyNDIsMTMgQEAgc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyICppdiwgdTMyICpxdilcbiB9XG4gXG4gc3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2goc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi1cdFx0XHRcdCAgICAgICB1MzIgKml2LCB1MzIgKnF2LFxuK1x0XHRcdFx0ICAgICAgIHMzMiAqaXYsIHMzMiAqcXYsXG4gXHRcdFx0XHQgICAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXG4ge1xuLVx0dTMyIGlfbWF4ID0gMCwgcV9tYXggPSAwLCBpX21pbiA9IDAsIHFfbWluID0gMDtcbitcdHMzMiBpX21heCA9IDAsIHFfbWF4ID0gMCwgaV9taW4gPSAwLCBxX21pbiA9IDA7XG4gXHR1MzIgaV9kZWx0YSwgcV9kZWx0YTtcbiBcdHUzMiB0ZW1wO1xuLVx0aW50IGksIGNudCA9IDA7XG4rXHR1MzIgaSwgY250ID0gMDtcbiBcbiBcdGRvIHtcbiBcdFx0aV9taW4gPSBpdlswXTtcbkBAIC0zMTYsMjMgKzI1NiwxOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0XHRxX21pbiA9IHF2WzBdO1xuIFx0XHRxX21heCA9IHF2WzBdO1xuIFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBEQUNLX1NOXzg4MjJDOyBpKyspIHtcbi1cdFx0XHRydHc4ODIyY19yZl9taW5tYXhfY21wKHJ0d2RldiwgaXZbaV0sIFx1MDAyNmlfbWluLCBcdTAwMjZpX21heCk7XG4tXHRcdFx0cnR3ODgyMmNfcmZfbWlubWF4X2NtcChydHdkZXYsIHF2W2ldLCBcdTAwMjZxX21pbiwgXHUwMDI2cV9tYXgpO1xuK1x0XHRcdGlmIChpdltpXSBcdTAwM2MgaV9taW4pXG4rXHRcdFx0XHRpX21pbiA9IGl2W2ldO1xuK1x0XHRcdGlmIChpdltpXSBcdTAwM2UgaV9tYXgpXG4rXHRcdFx0XHRpX21heCA9IGl2W2ldO1xuK1x0XHRcdGlmIChxdltpXSBcdTAwM2MgcV9taW4pXG4rXHRcdFx0XHRxX21pbiA9IHF2W2ldO1xuK1x0XHRcdGlmIChxdltpXSBcdTAwM2UgcV9tYXgpXG4rXHRcdFx0XHRxX21heCA9IHF2W2ldO1xuIFx0XHR9XG4gXG4tXHRcdGlmIChpX21heCBcdTAwM2MgMHgyMDAgXHUwMDI2XHUwMDI2IGlfbWluIFx1MDAzYyAweDIwMClcbi1cdFx0XHRpX2RlbHRhID0gaV9tYXggLSBpX21pbjtcbi1cdFx0ZWxzZSBpZiAoaV9tYXggXHUwMDNlPSAweDIwMCBcdTAwMjZcdTAwMjYgaV9taW4gXHUwMDNlPSAweDIwMClcbi1cdFx0XHRpX2RlbHRhID0gaV9tYXggLSBpX21pbjtcbi1cdFx0ZWxzZVxuLVx0XHRcdGlfZGVsdGEgPSBpX21heCArICgweDQwMCAtIGlfbWluKTtcbitcdFx0aV9kZWx0YSA9IGlfbWF4IC0gaV9taW47XG4rXHRcdHFfZGVsdGEgPSBxX21heCAtIHFfbWluO1xuIFxuLVx0XHRpZiAocV9tYXggXHUwMDNjIDB4MjAwIFx1MDAyNlx1MDAyNiBxX21pbiBcdTAwM2MgMHgyMDApXG4tXHRcdFx0cV9kZWx0YSA9IHFfbWF4IC0gcV9taW47XG4tXHRcdGVsc2UgaWYgKHFfbWF4IFx1MDAzZT0gMHgyMDAgXHUwMDI2XHUwMDI2IHFfbWluIFx1MDAzZT0gMHgyMDApXG4tXHRcdFx0cV9kZWx0YSA9IHFfbWF4IC0gcV9taW47XG4tXHRcdGVsc2Vcbi1cdFx0XHRxX2RlbHRhID0gcV9tYXggKyAoMHg0MDAgLSBxX21pbik7XG4gXG4gXHRcdHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSyxcbiBcdFx0XHRcIltEQUNLXSBpOiBtaW49MHglMDh4LCBtYXg9MHglMDh4LCBkZWx0YT0weCUwOHhcXG5cIixcbkBAIC0zNDEsMjggKzI3NywyOSBAQCBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0XHRcdFwiW0RBQ0tdIHE6IG1pbj0weCUwOHgsIG1heD0weCUwOHgsIGRlbHRhPTB4JTA4eFxcblwiLFxuIFx0XHRcdHFfbWluLCBxX21heCwgcV9kZWx0YSk7XG4gXG4tXHRcdHJ0dzg4MjJjX2RhY19pcV9zb3J0KHJ0d2RldiwgaXYsIHF2KTtcbitcdFx0c29ydChpdiwgREFDS19TTl84ODIyQywgc2l6ZW9mKHMzMiksIHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyLCBOVUxMKTtcbitcdFx0c29ydChxdiwgREFDS19TTl84ODIyQywgc2l6ZW9mKHMzMiksIHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyLCBOVUxMKTtcbiBcbiBcdFx0aWYgKGlfZGVsdGEgXHUwMDNlIDUgfHwgcV9kZWx0YSBcdTAwM2UgNSkge1xuLVx0XHRcdHRlbXAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCAweDJkYmMsIDB4M2ZmZmZmKTtcbi1cdFx0XHRpdlswXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRcdHF2WzBdID0gdGVtcCBcdTAwMjYgMHgzZmY7XG4tXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIDB4MmRiYywgMHgzZmZmZmYpO1xuLVx0XHRcdGl2W0RBQ0tfU05fODgyMkMgLSAxXSA9ICh0ZW1wIFx1MDAyNiAweDNmZjAwMCkgXHUwMDNlXHUwMDNlIDEyO1xuLVx0XHRcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IHRlbXAgXHUwMDI2IDB4M2ZmO1xuK1x0XHRcdHRlbXAgPSBydHdfcmVhZDMyKHJ0d2RldiwgMHgyZGJjKTtcbitcdFx0XHRpdlswXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApO1xuK1x0XHRcdHF2WzBdID0gRklFTERfR0VUX1NJR05FRChSVFc4ODIyQ19EQUNfUVZfTUFTSywgdGVtcCk7XG4rXHRcdFx0dGVtcCA9IHJ0d19yZWFkMzIocnR3ZGV2LCAweDJkYmMpO1xuK1x0XHRcdGl2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX0lWX01BU0ssIHRlbXApO1xuK1x0XHRcdHF2W0RBQ0tfU05fODgyMkMgLSAxXSA9IEZJRUxEX0dFVF9TSUdORUQoUlRXODgyMkNfREFDX1FWX01BU0ssIHRlbXApO1xuIFx0XHR9IGVsc2Uge1xuIFx0XHRcdGJyZWFrO1xuIFx0XHR9XG4gXHR9IHdoaWxlIChjbnQrKyBcdTAwM2MgMTAwKTtcbiBcbi1cdHJ0dzg4MjJjX2RhY19pcV9vZmZzZXQocnR3ZGV2LCBpdiwgaV92YWx1ZSk7XG4tXHRydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgcXYsIHFfdmFsdWUpO1xuK1x0KmlfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgaXYpO1xuK1x0KnFfdmFsdWUgPSBydHc4ODIyY19kYWNfaXFfb2Zmc2V0KHJ0d2RldiwgcXYpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3JmX21vZGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbiBcdFx0XHRcdCAgICAgdTMyICppX3ZhbHVlLCB1MzIgKnFfdmFsdWUpXG4ge1xuLVx0dTMyIGl2W0RBQ0tfU05fODgyMkNdLCBxdltEQUNLX1NOXzg4MjJDXTtcbitcdHMzMiBpdltEQUNLX1NOXzg4MjJDXSwgcXZbREFDS19TTl84ODIyQ107XG4gXHR1MzIgcmZfYSwgcmZfYjtcbiBcbiBcdHJmX2EgPSBydHdfcmVhZF9yZihydHdkZXYsIFJGX1BBVEhfQSwgMHgwLCBSRlJFR19NQVNLKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmhcbmluZGV4IGZjNjJiNjdhMTVmMjEuLjdiZWE5OTYxNDM1NGIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaFxuQEAgLTE0MSw2ICsxNDEsOSBAQCBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlIG5hbWUgIyMgX3RibCA9IHtcdFx0XHRcXFxuICNkZWZpbmUgREFDS19SRl84ODIyQ1x0XHQxXG4gI2RlZmluZSBEQUNLX1NOXzg4MjJDXHRcdDEwMFxuIFxuKyNkZWZpbmUgUlRXODgyMkNfREFDX0lWX01BU0sgR0VOTUFTSygyMSwgMTIpXG4rI2RlZmluZSBSVFc4ODIyQ19EQUNfUVZfTUFTSyBHRU5NQVNLKDksIDApXG4rXG4gLyogcGh5IHN0YXR1cyBwYWdlMCAqL1xuICNkZWZpbmUgR0VUX1BIWV9TVEFUX1AwX1BXREJfQShwaHlfc3RhdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuIFx0bGUzMl9nZXRfYml0cygqKChfX2xlMzIgKikocGh5X3N0YXQpICsgMHgwMCksIEdFTk1BU0soMTUsIDgpKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6MzcuNzY2MTA4MzMyWiIsIlNlcSI6NDcsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE3MTQyNjA0NzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVuaW5pdGlhbGl6ZWQgTWVtb3J5IFJpc2sgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBydHc4ODIyYy5jYCwgc3BlY2lmaWNhbGx5IHRoZSBjaGFuZ2VzIGluIGBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZWAsIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAsIGFuZCBgcnR3ODgyMmNfZGFjX2lxX29mZnNldGAuICBUaGUgcGF0Y2ggcHJpbWFyaWx5IHN3YXBzIG91dCBjdXN0b20gc29ydGluZyBhbmQgbWluL21heCBsb2dpYyBmb3IgdGhlIHN0YW5kYXJkIGBzb3J0KClgIGZ1bmN0aW9uIGZyb20gYGxpbnV4L3NvcnQuaGAsIHdoaWNoIGlzIGEgZ29vZCBtb3ZlIGZvciBtYWludGFpbmFiaWxpdHkgYW5kIHBvc3NpYmx5IHBlcmZvcm1hbmNlLiBUaGUgY2hhbmdlIGluIGFycmF5IHR5cGVzIGZyb20gYHUzMmAgdG8gYHMzMmAgYW5kIHRoZSB1c2Ugb2YgYEZJRUxEX0dFVF9TSUdORURgIGZvciByZWdpc3RlciByZWFkcyBhcmUgYWxzbyBzdGFuZGFyZCBwcm9jZWR1cmUgaW4gdGhlc2Ugc2l0dWF0aW9ucy5cblxuTXkgY29uY2VybiwgaG93ZXZlciwgaXMgd2hldGhlciB0aGlzIGludHJvZHVjZXMgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWQgcmlza3MsIHdoaWNoIGlzIHdoZXJlIEkgbmVlZCB0byBmb2N1cyBteSBhdHRlbnRpb24uIFRoZSBhcnJheXMgYGl2YCBhbmQgYHF2YCBhcmUgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayB3aXRoaW4gYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAsIGFzIGBzMzIgaXZbREFDS19TTl84ODIyQ10sIHF2W0RBQ0tfU05fODgyMkNdO2AsIHdoZXJlIGBEQUNLX1NOXzg4MjJDYCBpcyAxMDAuICBTbywgd2UncmUgdGFsa2luZyBhYm91dCAxMDAgYHMzMmAgZWxlbWVudHMgZm9yIGVhY2ggYXJyYXksIGFsbCBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrLlxuXG5Ob3csIGRvIHRoZXNlIGFycmF5cyBnZXQgZnVsbHkgaW5pdGlhbGl6ZWQgYmVmb3JlIHVzZT8gSSBsb29rIGF0IGhvdyB0aGUgYXJyYXlzIGFyZSBwb3B1bGF0ZWQsIHdoaWNoIGlzIHZpYSBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zYW1wbGVgLiBUaGUgc2FtcGxlIGZ1bmN0aW9uIHJlYWRzIGEgcmVnaXN0ZXIgYW5kIHBvcHVsYXRlcyB0aGUgYXJyYXlzIGluc2lkZSBhIGB3aGlsZWAgbG9vcCB0aGF0IGNhbiB0ZXJtaW5hdGUgZWFybHkgaWYgYSBjb3VudGVyIGBjbnRgIHJlYWNoZXMgMTAwMDAgYmVmb3JlIGFsbCBhcnJheSBlbGVtZW50cyBhcmUgaW5pdGlhbGl6ZWQuIFRoZSBjaGVjayBmb3IgdGVybWluYXRpb24gY29uZGl0aW9ucyBpczogYGkgXHUwMDNjIERBQ0tfU05fODgyMkMgXHUwMDI2XHUwMDI2IGNudCBcdTAwM2MgMTAwMDBgLCBzbyBpZiBgY250YCByZWFjaGVzIDEwMDAwLCB0aGUgYXJyYXkgYGl2YCBhbmQgYHF2YCBlbGVtZW50cyB3aWxsIGJlIHBhcnRpYWxseSB1bmluaXRpYWxpemVkLiAgSSBpbW1lZGlhdGVseSByZWNvZ25pemUgdGhpcyBhcyBhIHBvdGVudGlhbCB2dWxuZXJhYmlsaXR5LlxuXG5CdXQgaG9sZCBvbiwgbGV0IG1lIHF1aWNrbHkgZ28gYmFjayBhbmQgY2hlY2sgaWYgdGhpcyB3YXMgYSAqbmV3KiBwcm9ibGVtIGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaC4gQW5kIGl0J3Mgbm90LiBUaGUgb2xkIGltcGxlbWVudGF0aW9uIHVzaW5nIGB1MzJgIGhhZCB0aGUgc2FtZSBjb25kaXRpb24uIFRoaXMgbWVhbnMgdGhhdCBldmVuIGJlZm9yZSBteSBjaGFuZ2VzLCB0aGUgcHJvZ3JhbSB3YXMgYWxzbyBzdWJqZWN0IHRvIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJlaW5nIHJlYWQuIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhlIHR5cGUgY29udmVyc2lvbiBmcm9tIGB1MzJgIHRvIGBzMzJgIChhbmQgdGhlIGNoYW5nZSBpbiBzb3J0aW5nIG1lY2hhbmlzbSkuXG5cblNvLCB3aGF0IGhhcHBlbnMgaWYgYGl2YCBhbmQgYHF2YCBhcmUgb25seSAqcGFydGlhbGx5KiBpbml0aWFsaXplZCwgYW5kIHdlIHJlYWQgdGhlIHZhbHVlcyBsYXRlcj8gVGhlIGZ1bmN0aW9uIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAgaXMgY2FsbGVkIG5leHQsIGFuZCBpbnNpZGUgaXQsIHdlIGhhdmUgYSBsb29wIHRoYXQgcmVhZHMgYGl2W2ldYCBhbmQgYHF2W2ldYCwgdGhlbiB3ZSBydW4gYHNvcnQoKWAgYW5kIGBydHc4ODIyY19kYWNfaXFfb2Zmc2V0YCwgYWxsIHBvdGVudGlhbGx5IHJlYWRpbmcgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuICBUaGlzIGlzIGEgZGVmaW5pdGUgaXNzdWUg4oCTIHJlYWRpbmcgdW5pbml0aWFsaXplZCBtZW1vcnksIGV2ZW4gaWYgaXQncyBub3QgYSAqbmV3KiBwcm9ibGVtLCBpcyBzdGlsbCBhIGNyaXRpY2FsIG9uZS5cblxuVGhlIGZpbmFsIHF1ZXN0aW9uOiBkb2VzIHRoaXMgbGVhayB0byB1c2Vyc3BhY2U/IExvb2tpbmcgYXQgYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAsIGl0IHRha2VzIGB1MzIgKmlfdmFsdWVgIGFuZCBgdTMyICpxX3ZhbHVlYCBhcyBhcmd1bWVudHMsIGFuZCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGNhbGN1bGF0ZXMgdmFsdWVzIGZvciB0aGVzZSBwb2ludGVycy4gIFNvLCBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgYHJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZWAgaXMgY2FsbGVkIHRvIHNlZSBpZiB0aGUgcmVzdWx0aW5nIHZhbHVlcyBhcmUgcGFzc2VkIHRvIG90aGVyIGZ1bmN0aW9ucy4gSSdsbCB1c2UgYGdyZXBwZXJgIHRvIHNlYXJjaCBmb3IgY2FsbGVycy4gVGhpcyBpbmZvcm1hdGlvbiBpcyBuZWVkZWQgdG8gdW5kZXJzdGFuZCB0aGUgc2NvcGUgb2YgdGhlIHByb2JsZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwNzEsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzkyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6NTQuOTA4NzE2NDYzWiIsIlNlcSI6NDgsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTg2MDkzNDY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0dzg4MjJjX2RhY19jYWxfcmZfbW9kZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9MjQ0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfaXFfc2VhcmNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMjk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzoyOTk6c3RhdGljIHZvaWQgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTMwMC1cXHRcXHRcXHRcXHQgICAgIHUzMiAqaV92YWx1ZSwgdTMyICpxX3ZhbHVlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTMzMT1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX2FkYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM2OC1cXHRcXHRydHdfd3JpdGUzMihydHdkZXYsIDB4MWMyNCwgMHgwMDAxMDAwMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM2OTpcXHRcXHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcXHUwMDI2aWMsIFxcdTAwMjZxYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM3MC1cXHRcXHRydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtMzg4LVxcdFxcdHJ0d193cml0ZTMyKHJ0d2RldiwgMHgxYzNjLCBwYXRoX3NlbCArIDB4ODEwMyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjM4OTpcXHRcXHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcXHUwMDI2aWMsIFxcdTAwMjZxYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTM5MC1cXHRcXHRydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmM9NDU0PXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2RhY19jYWxfc3RlcDIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYy00NzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ3MjpcXHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcXHUwMDI2aWNfaW4sIFxcdTAwMjZxY19pbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ3My1cXHRpYyA9IGljX2luO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTUwMz1zdGF0aWMgdm9pZCBydHc4ODIyY19kYWNfY2FsX3N0ZXAzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNTUzLVxcdHJ0d193cml0ZTMyKHJ0d2RldiwgYmFzZV9hZGRyICsgMHg2MCwgMHhmMDAwMDAwMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjU1NDpcXHRydHc4ODIyY19kYWNfY2FsX3JmX21vZGUocnR3ZGV2LCBcXHUwMDI2aWMsIFxcdTAwMjZxYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTU1NS1cXHRpZiAoaWMgXFx1MDAzZT0gMHgxMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzU6NTcuODk0ODE3ODgyWiIsIlNlcSI6NDksIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyMDUyMzkwMzI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBydHc4ODIyYyBJUSBDYWxpYnJhdGlvbiBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgcHJpbWFyeSBjb25jZXJuIGlzIEtNU0FOIGFuZCB3aGV0aGVyIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBvciBleHBvc2VzIGFueSBuZXcgcmVhZHMgb2YgdW5pbml0aWFsaXplZCBtZW1vcnksIG9yIGFueSBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLlxuXG5Jbml0aWFsbHksIEknbSBzZWVpbmcgdGhhdCBgcnR3ODgyMmNfZGFjX2NhbF9pcV9zZWFyY2hgIGFuZCBgcnR3ODgyMmNfZGFjX2lxX29mZnNldGAgYXJlIHJlYWRpbmcgZGF0YSBhbmQgcG90ZW50aWFsbHkgdXNpbmcgdGhlIHJlc3VsdCBpbiB3cml0ZXMgdG8gaGFyZHdhcmUgb3IgY29udHJvbCBmbG93LiBUaGlzIHJhaXNlcyBhIGZsYWcuICBLTVNBTiBpcyBkZXNpZ25lZCB0byBjYXRjaCB0aGlzLiAgSWYgYGNudGAgaW4gdGhlIGNvZGUgaGl0cyAxMDAwMCwgYW5kIGBpYCBcdTAwM2MgYERBQ0tfU05fODgyMkNgLCBpdCBsb29rcyBsaWtlIHRoZSBhcnJheXMgYGl2YCBhbmQgYHF2YCBtaWdodCBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZC4gIFRoZW4sIHRoZSBjb2RlIGNhbGxzIGBzb3J0KClgIG9uIHRoZW0uICBUaGF0IHdpbGwgcmVhZCB0aGUgdmFsdWVzIGluIHRob3NlIGFycmF5cy4gICoqVGhhdCBzaG91bGQgdHJpZ2dlciBLTVNBTioqLiBCdXQsIGlzIHRoaXMgKm5ldyo/XG5cbkxldCdzIGxvb2sgYXQgdGhlIHByZS1wYXRjaCBjb2RlLiBCZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB3YXMgY2FsbGluZyBgcnR3ODgyMmNfZGFjX2lxX3NvcnRgLCB3aGljaCBhbHNvIGRpZCBzb3J0aW5nIHVzaW5nIGN1c3RvbSBsb2dpYy4gVGhlIGNvZGUgcmVhZHMgdGhlIGFycmF5IGVsZW1lbnRzIGR1cmluZyBzb3J0aW5nLiBUaGVyZWZvcmUsIHRoaXMgaXNzdWUgd2FzIHByZXNlbnQgYmVmb3JlIHRoZSBwYXRjaCBhcyB3ZWxsLiBLTVNBTiB3b3VsZCBoYXZlIGNhdWdodCB0aGlzIGNvbmRpdGlvbiByZWdhcmRsZXNzLCBzbyB0aGUgcGF0Y2ggZG9lc24ndCAqZXhwb3NlKiBvciAqaW50cm9kdWNlKiBhbnkgKm5ldyogaXNzdWUgaGVyZS5cblxuVGhlIHBhdGNoIGl0c2VsZiBpbnZvbHZlcyBhIGNoYW5nZSBmcm9tIHJlYWRpbmcgZGF0YSB1c2luZyBgcnR3X3JlYWQzMl9tYXNrYCB0byB1c2luZyBgcnR3X3JlYWQzMmAgYW5kIGBGSUVMRF9HRVRfU0lHTkVEYCBtYWNyb3MuICBUaGUgbWFjcm9zIHNpbXBseSBleHRyYWN0IGJpdGZpZWxkcy4gVGhpcyBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLCB0aGV5J3JlIG5vdCBkb2luZyBhbnl0aGluZyB1bnVzdWFsLCBqdXN0IG1hc2tpbmcgYW5kIHNpZ24tZXh0ZW5kaW5nIHRoZSByZWFkIHZhbHVlcy4gYEZJRUxEX0dFVF9TSUdORURgIGlzbid0IGEgbGlrZWx5IGN1bHByaXQuXG5cbk5vdywgbGV0J3MgdGhpbmsgYWJvdXQgYHJ0dzg4MjJjX2RhY19pcV9vZmZzZXRgLiBJdCBpdGVyYXRlcyB0aHJvdWdoIGFuIGFycmF5IGB2ZWNgLiBEb2VzIHRoZSBwYXRjaCBjaGFuZ2UgdGhpcz8gSW4gZmFjdCwgdGhlIHBhdGNoICpkb2VzIG5vdCogY2hhbmdlIHRoZSBsb2dpYyBpbiB0aGlzIGNhc2UuICBJdCBzZWVtcyB0aGUgY29kZSBpcyB1c2luZyB0aGUgZWxlbWVudHMsIHNvIEtNU0FOIHNob3VsZCBjYXRjaCBhbnkgaXNzdWVzIHdpdGggdW5pbml0aWFsaXplZCByZWFkcy5cblxuU28sIGFyZSB0aGVyZSBhbnkgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyAqaW50cm9kdWNlZCogYnkgdGhlIHBhdGNoPyBUaGUgY29tcGFyaXNvbiBmdW5jdGlvbiwgYHJ0dzg4MjJjX2RhY19pcV9jbXBfczMyYCwgaXMgc3RhbmRhcmQsIGFuZCB0aGUgY2FsbHMgdG8gYHNvcnRgIGFyZSBvbiBhcnJheXMgYWxsb2NhdGVkIGluIHRoZSBjYWxsZXIgb24gdGhlIHN0YWNrLCBhbmQgaXQncyBhbGwgYmFzZWQgb24gdGhlIGRhdGEgd2l0aGluIHRob3NlIGFycmF5cy4gVGhpcyBkb2Vzbid0IHNlZW0gdG8gYmUgYSBwcm9ibGVtLiBUaGUgYXJyYXlzIGBpdmAgYW5kIGBxdmAgYXJlIGFsbG9jYXRlZCBvbiB0aGUgc3RhY2suIFRoZSB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZSwgYWdhaW4sIGlzbid0IG5ldy4gIElmIGBydHc4ODIyY19kYWNfY2FsX2lxX3NhbXBsZWAgKmRvZXNuJ3QqIGZpbGwgdGhlIGFycmF5IGBpdmAgYW5kIGBxdmAgY29tcGxldGVseSwgdGhlbiBgc29ydCgpYCB3aWxsIHJlYWQgZnJvbSB1bmluaXRpYWxpemVkIHN0YWNrIG1lbW9yeS4gSXQgd2FzICphbHdheXMqIHRoZSBjYXNlLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGF0LiBEb2VzIHRoZSBwYXRjaCBjaGFuZ2UgaG93IHRoZSBzYW1wbGUgZmlsbHMgdGhlIGFycmF5PyBCZWZvcmUsIHRoZXJlIHdhcyBhIGNoZWNrOiAgYHJ0dzg4MjJjX2RhY19pcV9jaGVja2AsIGJ1dCB0aGUgbG9naWMgaXMgZXF1aXZhbGVudC4gVGhlIGNoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93IChub3cgdXNpbmcgc2lnbmVkIGludGVnZXJzLCBzbyBubyBtb3JlIGlzc3VlcyB3aXRoIHR3bydzIGNvbXBsZW1lbnQgdW5zaWduZWQgMTAtYml0IGludGVnZXIpIGlzIGlkZW50aWNhbCwgdGhlcmVmb3JlLCBpdCByZW1haW5zIHRoZSBzYW1lLiBUaGUgY29kZSBqdXN0IGNoYW5nZWQgdGhlIHR5cGVzLlxuXG5Ob3csIGlmIGBydHc4ODIyY19kYWNfY2FsX2lxX3NlYXJjaGAgaXMgY2FsbGVkIHdpdGggdW5pbml0aWFsaXplZCBtZW1vcnksIHRoYXQncyBwb3NzaWJsZS4gIFRoZSBjb2RlIG1vZGlmaWVzIHRoZSBmaXJzdCBhbmQgbGFzdCBlbGVtZW50czogIGBpdlswXWAsIGBxdlswXWAsIGBpdltEQUNLX1NOXzg4MjJDIC0gMV1gLCBhbmQgYHF2W0RBQ0tfU05fODgyMkMgLSAxXWAuIFRoZW4sIHRoZSBsb29wIHJlYWRzIHRoZSBlbnRpcmUgYXJyYXkuICBJZiB0aGUgYXJyYXlzIGFyZSB1bmluaXRpYWxpemVkLCB0aGVuIHRoYXQgaXMgYW4gaXNzdWUuICBLTVNBTiB3aWxsIGNhdGNoIGl0LCBidXQgdGhpcyBpcyB0aGUgcHJlLWV4aXN0aW5nIGJlaGF2aW9yLlxuXG5UaGUgY29yZSBvZiB0aGUgcGF0Y2ggaXMgcmVmYWN0b3JpbmcuIEl0IHJlcGxhY2VzIGN1c3RvbSBzb3J0aW5nIGFuZCBtaW4vbWF4IGxvZ2ljIHdpdGggYHNvcnRgIGFuZCBzdGFuZGFyZCBjb21wYXJpc29ucy4gSXQgZG9lcyAqbm90KiBpbnRyb2R1Y2UgbmV3IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzZS4gSWYgdGhlIGhhcmR3YXJlIHRpbWVzIG91dCwgdGhhdCdzIGFscmVhZHkgaW4gdGhlIG9sZCBjb2RlLiAgS01TQU4gd2lsbCBjYXRjaCBpdC5cblxuTGV0J3MgZG8gYSBmaW5hbCBjaGVjay4gIGBpdmAgYW5kIGBxdmAgYXJlIGFsbG9jYXRlZCBpbiBgcnR3ODgyMmNfZGFjX2NhbF9yZl9tb2RlYC4gYERBQ0tfU05fODgyMkNgIGlzIHRoZSBjb3JyZWN0IHZhbHVlLiBUaGUgYEZJRUxEX0dFVF9TSUdORURgIG1hY3JvcyBleHRyYWN0IHRoZSBjb3JyZWN0IGJpdHMuICBUaGUgYHNvcnRgIGZ1bmN0aW9uIHVzZXMgYSBzdGFuZGFyZCBjb21wYXJpc29uIGZ1bmN0aW9uLlxuXG5CZWZvcmUgdGhlIHBhdGNoLCB0aGUgY29kZSB1c2VkIGEgY3VzdG9tIHNvcnRpbmcgZnVuY3Rpb24uXG5cbiIsIklucHV0VG9rZW5zIjo5NzE0LCJPdXRwdXRUb2tlbnMiOjE3NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5NDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTVUMDY6MzY6MjkuOTQ3MjExNzc4WiIsIlNlcSI6NTAsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg0NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCByZWZhY3RvcnMgSVEgY2FsaWJyYXRpb24gbG9naWMgaW4gdGhlIHJ0dzg4IGRyaXZlciwgcmVwbGFjaW5nIGN1c3RvbSAxMC1iaXQgdHdvJ3MgY29tcGxlbWVudCBhcml0aG1ldGljIGFuZCBhIGN1c3RvbSBidWJibGUgc29ydCB3aXRoIHN0YW5kYXJkIHNpZ25lZCBpbnRlZ2VycyAoczMyKSBhbmQgdGhlIGtlcm5lbCdzIHNvcnQoKSBmdW5jdGlvbi4gV2hpbGUgdGhlIHN0YWNrLWFsbG9jYXRlZCBhcnJheXMgYGl2YCBhbmQgYHF2YCBjb3VsZCBwb3RlbnRpYWxseSBiZSBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBpZiB0aGUgaGFyZHdhcmUgcmVhZCBsb29wIHRpbWVzIG91dCwgdGhpcyBleGFjdCBzYW1lIGJlaGF2aW9yIGFuZCBzdWJzZXF1ZW50IHJlYWRpbmcgb2YgdGhlc2UgYXJyYXlzIGV4aXN0ZWQgcHJpb3IgdG8gdGhlIHBhdGNoLiBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgdW5pbml0aWFsaXplZCBtZW1vcnkgYWxsb2NhdGlvbnMsIG5vciBkb2VzIGl0IGV4cG9zZSBhbnkga2VybmVsIHN0cnVjdHVyZXMgdG8gdXNlcnNwYWNlLiBBbnkgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWVzIChzdWNoIGFzIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMpIHdvdWxkIGJlIGNhdWdodCBieSBzdGFuZGFyZCBLQVNBTi4gVGhlcmVmb3JlLCBhIGRlZGljYXRlZCBLTVNBTiBzZXNzaW9uIGlzIG5vdCBqdXN0aWZpZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcmVmYWN0b3JzIElRIGNhbGlicmF0aW9uIGxvZ2ljIGluIHRoZSBydHc4OCBkcml2ZXIsIHJlcGxhY2luZyBjdXN0b20gMTAtYml0IHR3bydzIGNvbXBsZW1lbnQgYXJpdGhtZXRpYyBhbmQgYSBjdXN0b20gYnViYmxlIHNvcnQgd2l0aCBzdGFuZGFyZCBzaWduZWQgaW50ZWdlcnMgKHMzMikgYW5kIHRoZSBrZXJuZWwncyBzb3J0KCkgZnVuY3Rpb24uIFdoaWxlIHRoZSBzdGFjay1hbGxvY2F0ZWQgYXJyYXlzIGBpdmAgYW5kIGBxdmAgY291bGQgcG90ZW50aWFsbHkgYmUgcGFydGlhbGx5IHVuaW5pdGlhbGl6ZWQgaWYgdGhlIGhhcmR3YXJlIHJlYWQgbG9vcCB0aW1lcyBvdXQsIHRoaXMgZXhhY3Qgc2FtZSBiZWhhdmlvciBhbmQgc3Vic2VxdWVudCByZWFkaW5nIG9mIHRoZXNlIGFycmF5cyBleGlzdGVkIHByaW9yIHRvIHRoZSBwYXRjaC4gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGFsbG9jYXRpb25zLCBub3IgZG9lcyBpdCBleHBvc2UgYW55IGtlcm5lbCBzdHJ1Y3R1cmVzIHRvIHVzZXJzcGFjZS4gQW55IHBvdGVudGlhbCBtZW1vcnkgc2FmZXR5IGlzc3VlcyAoc3VjaCBhcyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzKSB3b3VsZCBiZSBjYXVnaHQgYnkgc3RhbmRhcmQgS0FTQU4uIFRoZXJlZm9yZSwgYSBkZWRpY2F0ZWQgS01TQU4gc2Vzc2lvbiBpcyBub3QganVzdGlmaWVkLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[1] Phase: Succeeded StartedAt: 2026-08-15 06:36:41 +0000 UTC FinishedAt: 2026-08-15 06:36:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-15 06:36:41 +0000 UTC FinishedAt: 2026-08-15 06:36:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2] Phase: Succeeded StartedAt: 2026-08-15 06:36:41 +0000 UTC FinishedAt: 2026-08-15 07:18:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-15 06:36:41 +0000 UTC FinishedAt: 2026-08-15 07:18:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-15 06:36:41 +0000 UTC FinishedAt: 2026-08-15 06:36:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-15 06:36:41 +0000 UTC FinishedAt: 2026-08-15 06:36:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-convert-artifact-3396793355/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-15 06:36:52 +0000 UTC FinishedAt: 2026-08-15 06:53:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-15 06:36:52 +0000 UTC FinishedAt: 2026-08-15 06:53:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*76607ab0-71e1-4dcd-892e-361e1dfc9f9d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-convert-artifact-3396793355/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "d9107696-9327-4ac0-993c-b17ecbbbacdb", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1606086409/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-15 06:36:52 +0000 UTC FinishedAt: 2026-08-15 06:53:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*76607ab0-71e1-4dcd-892e-361e1dfc9f9d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-convert-artifact-3396793355/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "d9107696-9327-4ac0-993c-b17ecbbbacdb", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1606086409/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-15 06:53:45 +0000 UTC FinishedAt: 2026-08-15 06:53:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-15 06:53:45 +0000 UTC FinishedAt: 2026-08-15 06:53:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-15 06:53:45 +0000 UTC FinishedAt: 2026-08-15 06:53:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-15 06:53:45 +0000 UTC FinishedAt: 2026-08-15 06:53:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-convert-artifact-3789931874/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-15 06:53:55 +0000 UTC FinishedAt: 2026-08-15 06:56:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-15 06:53:55 +0000 UTC FinishedAt: 2026-08-15 06:56:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d9107696-9327-4ac0-993c-b17ecbbbacdb,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1606086409/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-15 06:56:45 +0000 UTC FinishedAt: 2026-08-15 06:56:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-15 06:56:45 +0000 UTC FinishedAt: 2026-08-15 06:56:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-15 06:56:45 +0000 UTC FinishedAt: 2026-08-15 07:13:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-15 06:56:45 +0000 UTC FinishedAt: 2026-08-15 07:13:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*76607ab0-71e1-4dcd-892e-361e1dfc9f9d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-convert-artifact-3789931874/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "728a6608-46c3-4d1c-abd9-1b78f3d227d8", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1105736118/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-15 06:56:45 +0000 UTC FinishedAt: 2026-08-15 07:13:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*76607ab0-71e1-4dcd-892e-361e1dfc9f9d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-convert-artifact-3789931874/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "728a6608-46c3-4d1c-abd9-1b78f3d227d8", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1105736118/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-15 07:13:40 +0000 UTC FinishedAt: 2026-08-15 07:13:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-15 07:13:40 +0000 UTC FinishedAt: 2026-08-15 07:13:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-15 07:13:40 +0000 UTC FinishedAt: 2026-08-15 07:16:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-15 07:13:40 +0000 UTC FinishedAt: 2026-08-15 07:16:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*728a6608-46c3-4d1c-abd9-1b78f3d227d8,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1105736118/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-15 07:16:20 +0000 UTC FinishedAt: 2026-08-15 07:18:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-15 07:16:20 +0000 UTC FinishedAt: 2026-08-15 07:18:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*d9107696-9327-4ac0-993c-b17ecbbbacdb,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*728a6608-46c3-4d1c-abd9-1b78f3d227d8,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1606086409/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1105736118/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-15 07:16:20 +0000 UTC FinishedAt: 2026-08-15 07:16:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-15 07:16:20 +0000 UTC FinishedAt: 2026-08-15 07:16:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-convert-artifact-1741501079/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-15 07:16:20 +0000 UTC FinishedAt: 2026-08-15 07:16:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-15 07:16:20 +0000 UTC FinishedAt: 2026-08-15 07:16:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-15 07:16:20 +0000 UTC FinishedAt: 2026-08-15 07:16:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-15 07:16:30 +0000 UTC FinishedAt: 2026-08-15 07:18:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsslzn[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw_usb_probe","rtw_core_start","rtw_power_on"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"dac3e89a2c90c2feeb471e1f22a2512ad424b792","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW88","RTW88_8822CU"],"series_id":"ba6e4ef6-48d7-46c2-bc48-540a8aadc97e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-15 07:16:30 +0000 UTC FinishedAt: 2026-08-15 07:17:53 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d9107696-9327-4ac0-993c-b17ecbbbacdb,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*728a6608-46c3-4d1c-abd9-1b78f3d227d8,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1606086409/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-build-action-1105736118/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowsslzn/series-workflowsslzn-convert-artifact-1741501079/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}