Name: series-workflowhgmx5 Phase: Succeeded StartedAt: 2026-08-06 18:44:10 +0000 UTC FinishedAt: 2026-08-06 22:35:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[0] Phase: Succeeded StartedAt: 2026-08-06 18:44:10 +0000 UTC FinishedAt: 2026-08-06 18:49:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 18:44:10 +0000 UTC FinishedAt: 2026-08-06 18:49:40 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DRM_VKMS", "DRM_FBDEV_EMULATION" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DRM_VKMS", "DRM_FBDEV_EMULATION" ], "series_id": "305a5439-c48d-4175-aca9-5f196e8d3ca9" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "drm_client_modeset_wait_for_vblank", "drm_crtc_wait_one_vblank_internal" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGZhbHNlIHBvc2l0aXZlIFdBUk4gKHdoaWNoIHRyaWdnZXJzIGEgY3Jhc2ggaW4gZnV6emluZyBlbnZpcm9ubWVudHMgd2l0aCBwYW5pY19vbl93YXJuKSBieSBleHRyYWN0aW5nIHRoZSBjb3JlIGxvZ2ljIG9mIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayBpbnRvIGFuIGludGVybmFsIGZ1bmN0aW9uIHdpdGhvdXQgdGhlIHdhcm5pbmcsIGFuZCB1c2luZyBpdCBpbiB0aGUgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayBwYXRoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4IHRoYXQgYWxsb3dzIGZ1enplcnMgdG8gZXhwbG9yZSB0aGlzIGNvZGUgcGF0aCB3aXRob3V0IGNyYXNoaW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjBhOTFmMjFmMWFiZWE2Mjg1MDY0ZTE3NTNlMGU3YTRmYzY3MWJmN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTg6NDY6MjggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG5pbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbkBAIC0xMzI4LDcgJiM0MzsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGlcbiBcdCAqL1xuIFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcbiBcdGlmICghcmV0KSB7XG4tXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbiYjNDM7XHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcdFx0ZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuQEAgLTExNSw2ICYjNDM7MTE1LDcgQEAgdm9pZCBkcm1fdmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gdm9pZCBkcm1fdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gdTY0IGRybV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG4gXG4gLyogZHJtX3ZibGFua193b3JrLmMgKi9cbiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXG5pbmRleCBmOTBmYjJkMTNlNDIzLi43NzU4ZTgyNjUxNmVmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuQEAgLTEyOTcsMTcgJiM0MzsxMjk3LDcgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB9XG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfcHV0KTtcbiBcbi0vKipcbi0gKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4tICogQGNydGM6IERSTSBjcnRjXG4tICpcbi0gKiBUaGlzIHdhaXRzIGZvciBvbmUgdmJsYW5rIHRvIHBhc3Mgb24gQGNydGMsIHVzaW5nIHRoZSBpcnEgZHJpdmVyIGludGVyZmFjZXMuXG4tICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLlxuLSAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMgaXMgb2ZmLlxuLSAqXG4tICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy5cbi0gKi9cbi1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4ge1xuIFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtXHUwMDNlZGV2O1xuIFx0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcbkBAIC0xMzI2LDEyICYjNDM7MTMxNiwzMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiBcdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbiBcdFx0XHRcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcbiBcbi1cdGRybV9XQVJOKGRldiwgcmV0ID09IDAsIFwmIzM0O3ZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCYjMzQ7LCBwaXBlKTtcbi1cbiBcdGRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7XG4gXG4gXHRyZXR1cm4gcmV0ID8gMCA6IC1FVElNRURPVVQ7XG4gfVxuJiM0MztcbiYjNDM7LyoqXG4mIzQzOyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcbiYjNDM7ICogQGNydGM6IERSTSBjcnRjXG4mIzQzOyAqXG4mIzQzOyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cbiYjNDM7ICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLlxuJiM0MzsgKiBkdWUgdG8gbGFjayBvZiBkcml2ZXIgc3VwcG9ydCBvciBiZWNhdXNlIHRoZSBjcnRjIGlzIG9mZi5cbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy5cbiYjNDM7ICovXG4mIzQzO2ludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuJiM0Mzt7XG4mIzQzO1x0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiYjNDM7XG4mIzQzO1x0ZHJtX1dBUk4oY3J0Yy1cdTAwM2VkZXYsIHJldCA9PSAtRVRJTUVET1VULCBcJiMzNDt2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcblwmIzM0OyxcbiYjNDM7XHRcdCBkcm1fY3J0Y19pbmRleChjcnRjKSk7XG4mIzQzO1xuJiM0MztcdHJldHVybiByZXQ7XG4mIzQzO31cbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7XG4gXG4gLyoqXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGZhbHNlIHBvc2l0aXZlIFdBUk4gKHdoaWNoIHRyaWdnZXJzIGEgY3Jhc2ggaW4gZnV6emluZyBlbnZpcm9ubWVudHMgd2l0aCBwYW5pY19vbl93YXJuKSBieSBleHRyYWN0aW5nIHRoZSBjb3JlIGxvZ2ljIG9mIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayBpbnRvIGFuIGludGVybmFsIGZ1bmN0aW9uIHdpdGhvdXQgdGhlIHdhcm5pbmcsIGFuZCB1c2luZyBpdCBpbiB0aGUgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayBwYXRoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4IHRoYXQgYWxsb3dzIGZ1enplcnMgdG8gZXhwbG9yZSB0aGlzIGNvZGUgcGF0aCB3aXRob3V0IGNyYXNoaW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNjBhOTFmMjFmMWFiZWE2Mjg1MDY0ZTE3NTNlMGU3YTRmYzY3MWJmNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMTg6NDY6MjggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKaW5kZXggMDA4MGE4ZTk1NTZhNS4uN2ZmMGYyNGEwZjUwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYwpAQCAtMTMyOCw3ICYjNDM7MTMyOCw3IEBAIGludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpCiAJICovCiAJcmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTsKIAlpZiAoIXJldCkgewotCQlkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoY3J0Yyk7CiYjNDM7CQlkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7CiAJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggZjg5M2IxZTNhNTk2ZS4uNmZkMzM2NzJkMjA2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaApAQCAtMTE1LDYgJiM0MzsxMTUsNyBAQCB2b2lkIGRybV92YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiBpbnQgZHJtX3ZibGFua19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwogdm9pZCBkcm1fdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiB1NjQgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCiAvKiBkcm1fdmJsYW5rX3dvcmsuYyAqLwogc3RhdGljIGlubGluZSB2b2lkIGRybV92YmxhbmtfZmx1c2hfd29ya2VyKHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuaykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCmluZGV4IGY5MGZiMmQxM2U0MjMuLjc3NThlODI2NTE2ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwpAQCAtMTI5NywxNyAmIzQzOzEyOTcsNyBAQCB2b2lkIGRybV9jcnRjX3ZibGFua19wdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogfQogRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfcHV0KTsKIAotLyoqCi0gKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rCi0gKiBAY3J0YzogRFJNIGNydGMKLSAqCi0gKiBUaGlzIHdhaXRzIGZvciBvbmUgdmJsYW5rIHRvIHBhc3Mgb24gQGNydGMsIHVzaW5nIHRoZSBpcnEgZHJpdmVyIGludGVyZmFjZXMuCi0gKiBJdCBpcyBhIGZhaWx1cmUgdG8gY2FsbCB0aGlzIHdoZW4gdGhlIHZibGFuayBpcnEgZm9yIEBjcnRjIGlzIGRpc2FibGVkLCBlLmcuCi0gKiBkdWUgdG8gbGFjayBvZiBkcml2ZXIgc3VwcG9ydCBvciBiZWNhdXNlIHRoZSBjcnRjIGlzIG9mZi4KLSAqCi0gKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLgotICovCi1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwogCWludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7CkBAIC0xMzI2LDEyICYjNDM7MTMxNiwzMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCiAJCQkJIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOwogCi0JZHJtX1dBUk4oZGV2LCByZXQgPT0gMCwgJiMzNDt2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxuJiMzNDssIHBpcGUpOwotCiAJZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTsKIAogCXJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDsKIH0KJiM0MzsKJiM0MzsvKioKJiM0MzsgKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rCiYjNDM7ICogQGNydGM6IERSTSBjcnRjCiYjNDM7ICoKJiM0MzsgKiBUaGlzIHdhaXRzIGZvciBvbmUgdmJsYW5rIHRvIHBhc3Mgb24gQGNydGMsIHVzaW5nIHRoZSBpcnEgZHJpdmVyIGludGVyZmFjZXMuCiYjNDM7ICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLgomIzQzOyAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMgaXMgb2ZmLgomIzQzOyAqCiYjNDM7ICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy4KJiM0MzsgKi8KJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKJiM0Mzt7CiYjNDM7CWludCByZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7CiYjNDM7CiYjNDM7CWRybV9XQVJOKGNydGMtJmd0O2RldiwgcmV0ID09IC1FVElNRURPVVQsICYjMzQ7dmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcbiYjMzQ7LAomIzQzOwkJIGRybV9jcnRjX2luZGV4KGNydGMpKTsKJiM0MzsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7CiAKIC8qKgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTA1CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTI5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFdvcnRoaW5lc3MqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0b3VjaGVzIGBkcm1fY2xpZW50X21vZGVzZXQuY2AsIGBkcm1faW50ZXJuYWwuaGAsIGFuZCBgZHJtX3ZibGFuay5jYC4gVGhlIGNvcmUgY2hhbmdlIHNlZW1zIHRvIGJlIGFyb3VuZCBob3cgd2UgaGFuZGxlIHZibGFuayB0aW1lb3V0cywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgZnVuY3Rpb24uIEluaXRpYWxseSwgdGhlIHBhdGNoIHJlbmFtZXMgdGhlIG9yaWdpbmFsIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIHRvIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGFuZCByZW1vdmVzIHRoZSB0aW1lb3V0IHdhcm5pbmcgKGBkcm1fV0FSTmApLiAgQSAqbmV3KiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpcyB0aGVuIGludHJvZHVjZWQsIGVzc2VudGlhbGx5IGNhbGxpbmcgdGhlIGludGVybmFsIHZlcnNpb24gYW5kICp0aGVuKiBkb2luZyB0aGUgYGRybV9XQVJOYC4gIEluIGBkcm1fY2xpZW50X21vZGVzZXQuY2AsIHRoZXkmIzM5O3ZlIHN3YXBwZWQgdGhlIGNhbGwgdG8gdXNlIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O2lzIHRoaXMgd29ydGggZnV6emluZz8mIzM0OyBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCB0ZWNobmljYWxseSByZW1vdmluZyBhIHdhcm5pbmcgaW4gb25lIHNwZWNpZmljIGNvZGVwYXRoLiBJcyB0aGF0IGEgKnJlYWwqIGZ1bmN0aW9uYWwgY2hhbmdlIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlPyBJdCBzdWJ0bHkgYWx0ZXJzIGNvbnRyb2wgZmxvdyBieSBza2lwcGluZyB0aGUgd2FybmluZyB1bmRlciBjZXJ0YWluIHRpbWVvdXQgY29uZGl0aW9ucy4gIEkmIzM5O20gZGVhbGluZyB3aXRoIHRoZSBEUk0gY29yZSwgc28gSSBuZWVkIHRvIGJlIG1vcmUgY2FyZWZ1bC4KCkxldCYjMzk7cyBkaWcgZGVlcGVyOiB0aGUgcHJpbWFyeSBlZmZlY3QgaXMgcHJldmVudGluZyB0aGUgYGRybV9XQVJOYCBmcm9tIGZpcmluZyBkdXJpbmcgdGhlIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCB0aW1lb3V0LiAgV2hpbGUgaW5pdGlhbGx5LCBpdCAqc2VlbXMqIGxpa2UgYSBwdXJlbHkgY29zbWV0aWMgY2hhbmdlIChyZW1vdmluZyBhIHdhcm5pbmcpLCBidXQgYGRybV9XQVJOYCBpc24mIzM5O3QganVzdCBkZWNvcmF0aW9uLiBgZHJtX1dBUk5gIGV4cGFuZHMgdG8gYFdBUk5gLCB3aGljaCBjYW4gdHJpZ2dlciBhIGtlcm5lbCBwYW5pYyBpZiBgcGFuaWNfb25fd2FybmAgaXMgc2V0LCBhbmQgdGhhdCYjMzk7cyAqdmVyeSogcmVsZXZhbnQgZm9yIGZ1enppbmchIFNvIHJlbW92aW5nIHRoYXQgYGRybV9XQVJOYCAqcHJldmVudHMqIGEgcG90ZW50aWFsIGNyYXNoIG9yIHBhbmljLCBlc3BlY2lhbGx5IGR1cmluZyBmdXp6aW5nIHdoZW4gd2UmIzM5O3JlIG9mdGVuIHRlc3Rpbmcgd2l0aCB0aGF0IGZsYWcgZW5hYmxlZC4gVGhpcyBtYWtlcyBpdCBhIGJ1ZyBmaXggZm9yIGEgJiMzNDtmYWxzZSBwb3NpdGl2ZSYjMzQ7IG9yIGFuIGV4cGVjdGVkIHRpbWVvdXQuICBUaGlzIGlzIGEgc2lnbmlmaWNhbnQgY2hhbmdlIGJlY2F1c2UgaXQgY2FuIHByZXZlbnQgYSBmdXp6aW5nIGNhbXBhaWduIGZyb20gYmVpbmcgc2hvcnQgY2lyY3VpdGVkLgoKQ29uc2lkZXJpbmcgdGhlIHByb21wdCYjMzk7cyBndWlkZWxpbmVzLCBpcyB0aGlzIGp1c3QgJiMzNDtkZWNvcmF0aXZlJiMzNDsgbG9nZ2luZz8gTm8uIGBXQVJOYCBjYW4gYmUgZmF0YWwuICBXaGlsZSB0aGUgKnByaW1hcnkqIGV4ZWN1dGlvbiBmbG93IGlzbiYjMzk7dCBjaGFuZ2VkLCBhdm9pZGluZyBhIGNyYXNoIGlzIGEgKmNyaXRpY2FsKiBmdW5jdGlvbmFsIGFsdGVyYXRpb24gaW4gdGhlIGNvbnRleHQgb2YgZnV6emluZy4gVGhlIHBhdGNoIGVmZmVjdGl2ZWx5IGV4dHJhY3RzIGFuZCByZXVzZXMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAsIGtlZXBpbmcgdGhlIG9yaWdpbmFsIGxvZ2ljIHRoZSBzYW1lIGluIHRlcm1zIG9mIHdhaXRpbmcgZm9yIGEgdmJsYW5rLCBidXQgc2ltcGx5IGF2b2lkaW5nIHRoZSBgZHJtX1dBUk5gIGluc2lkZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYnkgb25seSBwcmludGluZyB0aGUgd2FybmluZyBhdCBvbmUgcG9pbnQgb2YgdGhlIGZ1bmN0aW9uIG5vdy4KCk5vdywgbGV0JiMzOTtzIGxvb2sgYXQgdGhlIGNvZGU6CmBgYGMKLWludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQomIzQzO2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLSZndDtkZXY7CiAJaW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTsKQEAgLTEzMjYsMTIgJiM0MzsxMzE2LDMwIEBAIGludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQkJCSBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSwKIAkJCQkgbXNlY3NfdG9famlmZmllcygxMDAwKSk7CiAKLQlkcm1fV0FSTihkZXYsIHJldCA9PSAwLCAmIzM0O3ZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXG4mIzM0OywgcGlwZSk7Ci0KIAlkcm1fdmJsYW5rX3B1dChkZXYsIHBpcGUpOwogCiAJcmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUOwogfQomIzQzOwomIzQzO2ludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQomIzQzO3sKJiM0MzsJaW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTsKJiM0MzsKJiM0MzsJZHJtX1dBUk4oY3J0Yy0mZ3Q7ZGV2LCByZXQgPT0gLUVUSU1FRE9VVCwgJiMzNDt2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxuJiMzNDssCiYjNDM7CQkgZHJtX2NydGNfaW5kZXgoY3J0YykpOwomIzQzOwomIzQzOwlyZXR1cm4gcmV0OwomIzQzO30KIGBgYApUaGUgcGF0Y2ggbm93IHJlbW92ZXMgdGhlIGBkcm1fV0FSTmAgZnJvbSB0aGUgdGltZW91dCBwYXRoIGluIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGZvciBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIG1vdmluZyBpdCB0byBhIGNhbGwgb2YgdGhlIGludGVybmFsIGZ1bmN0aW9uIGFuZCB0aGVuIHRyaWdnZXJpbmcgdGhlIHdhcm5pbmcgdGhlcmUuIEluIGVzc2VuY2UsIGl0ICpkb2VzKiBjaGFuZ2UgdGhlIHBvdGVudGlhbCBiZWhhdmlvciB1bmRlciBlcnJvciBjb25kaXRpb25zLiBJdCBkb2VzbiYjMzk7dCBmaW5kCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMjk1PUVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTg6ICogZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuaygpIC0gV2FpdCBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIG9jY3VyXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5OS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMDgtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMwOTppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQwLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU3OTQKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcyBvbiB0aGlzOgoKKipJbnZlc3RpZ2F0aW5nIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBDYWxscyoqCgpSaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZnVuY3Rpb24sIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCwgaXMgdXNlZC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIGl0cyBjYWxsIGxvY2F0aW9ucy4gSSB3YW50IHRvIHNlZSB3aGljaCBvdGhlciBmdW5jdGlvbnMgYXJlIGludm9raW5nIGl0LiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGl0cyByb2xlIHdpdGhpbiB0aGUgZGlzcGxheSBkcml2ZXIgZnJhbWV3b3JrIGFuZCBob3cgaXQgY29udHJpYnV0ZXMgdG8gdGhlIG92ZXJhbGwgbW9kZXNldHRpbmcgcHJvY2Vzcy4gQnkgaWRlbnRpZnlpbmcgdGhlIGNhbGxlcnMsIEkgY2FuIGluZmVyIHRoZSBjb250ZXh0IGluIHdoaWNoIGl0JiMzOTtzIGJlaW5nIHVzZWQgYW5kLCB0aGVyZWZvcmUsIGl0cyBzaWduaWZpY2FuY2Ugd2l0aGluIHRoZSBicm9hZGVyIHN5c3RlbS4gSSYjMzk7bGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgdG9vbHMgZm9yIHRoaXMga2luZCBvZiBpbnZlc3RpZ2F0aW9uOyBJIGNhbiB1c2UgZ3JlcCwgY3Njb3BlLCBvciBldmVuIGEgbW9yZSBzb3BoaXN0aWNhdGVkIElERS1pbnRlZ3JhdGVkIHNlYXJjaCB0byBmaW5kIHRoZSBpbnN0YW5jZXMgd2hlcmUgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGlzIGNhbGxlZC4gVGhlIGdvYWwgaXMgdG8gYnVpbGQgYSBtZW50YWwgbW9kZWwgb2YgaXRzIGV4ZWN1dGlvbiBwYXRoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMjk1PUVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTg6ICogZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuaygpIC0gV2FpdCBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIG9jY3VyXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5OS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMDgtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMwOTppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQwLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MzE1PXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cdGlmIChjcnRjX2luZGV4IFx1MDAzZT0gMClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI3Olx0XHRkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFx1MDAyNmhlbHBlci1cdTAwM2VjbGllbnQsIGNydGNfaW5kZXgpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjgtXHRtdXRleF91bmxvY2soXHUwMDI2aGVscGVyLVx1MDAzZWxvY2spO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9OTg0PWludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAwOS1cdFx0ICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTA6XHRcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgMCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTEtXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY2NzIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxMjU0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgYSBEUk0gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgRFJNIHBhdGNoIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IGZ1bmN0aW9uIGhlcmUgaXMgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLCBjYWxsZWQgZnJvbSBgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eWAgYW5kIHRoZSBGQklPX1dBSVRGT1JWU1lOQyBpb2N0bCwgc28gaXQmIzM5O3MgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldi4gVGhlIHBhdGNoIGNoYW5nZXMgaG93IGEgdmJsYW5rIHdhaXQgaXMgaGFuZGxlZCBpbnRlcm5hbGx5LgoKVGhlIGNoYW5nZSBjZW50ZXJzIGFyb3VuZCByZW1vdmluZyBhIGBkcm1fV0FSTmAgY2FsbC4gSW5pdGlhbGx5LCBteSB0aG91Z2h0IHdhcywgJiMzNDtJcyBhIGBkcm1fV0FSTmAgYSBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2UsIGxpa2UgbG9nZ2luZz8mIzM0OyBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzICYjMzQ7V29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgaWYgaXQmIzM5O3MgKm9ubHkqIGRlY29yYXRpdmUgY2hhbmdlcywgbG9nZ2luZywgb3IgdHJhY2Vwb2ludHMuIGBkcm1fV0FSTmAgcHJpbnRzIGEgd2FybmluZyBhbmQgYSBzdGFjayB0cmFjZS4gSXQmIzM5O3MgZXNzZW50aWFsbHkgYSBgV0FSTmAuIEFuZCB5ZXMsIGJ5IGl0c2VsZiwgcmVtb3ZpbmcgdGhlIFdBUk4gZG9lc24mIzM5O3QgY2hhbmdlIGV4ZWN1dGlvbiAqZmxvdyogdGhhdCBtdWNoLiBJdCBkb2VzIGF2b2lkIGEgd2FybmluZy4gV2FybmluZ3MgYXJlIGNvbnNpZGVyZWQgYnVncyBieSBmdXp6ZXJzIGxpa2UgU3l6a2FsbGVyIHdoaWNoIGNhbiB0cmVhdCBXQVJOcyBhcyBjcmFzaGVzIGlmIGBwYW5pY19vbl93YXJuYCBpcyBzZXQuCgpJIHRob3VnaHQgYWJvdXQgaXQuIElmIGl0ICpvbmx5KiByZW1vdmVzIGEgd2FybmluZywgaXQmIzM5O3MgdGVjaG5pY2FsbHkgYSBidWcgZml4IGZyb20gdGhlIGZ1enplciYjMzk7cyBwZXJzcGVjdGl2ZSBzaW5jZSBpdCYjMzk7cyBmaXhpbmcgYSBwb3RlbnRpYWwgY3Jhc2ggdGhhdCYjMzk7cyB0cmlwcGluZyB0aGUgd2FybmluZywgc28gdGhlIHBhdGNoIGlzIGZ1bmN0aW9uYWwuCgpCdXQgdGhlbiBJIHdlbnQgYmFjayBhbmQgcmUtcmVhZCB0aGUgY29kZS4gVGhlIHBhdGNoIHJlcGxhY2VkIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIHdpdGggYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlbSBpcyB0aGF0IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGlzIG5vdCBjYWxsaW5nIGBkcm1fV0FSTmAuIFRoaXMgbWVhbnMgdGhhdCB0aGUgcGF0Y2ggKm9ubHkqIHJlbW92ZXMgdGhpcyB3YXJuaW5nLiBUaGUgcmV0dXJuIHZhbHVlcyBhcmUgdGhlIHNhbWU7IHRoZSBmdW5jdGlvbmFsIG91dGNvbWUgZG9lc24mIzM5O3QgY2hhbmdlLgoKSSB3cmVzdGxlZCB3aXRoIHRoZSBwcm9tcHQmIzM5O3Mgd29yZGluZy4gSXQgZG9lc24mIzM5O3QgKmV4cGxpY2l0bHkqIG1lbnRpb24gYFdBUk5gIG9yIGBCVUdgLCBidXQgdGhlIHByb21wdCBnaXZlcyBtZSB0aGUgZm9sbG93aW5nIGRpcmVjdGlvbjogJiMzNDtkZXRlcm1pbmUgaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7IFRoZSBwcm9tcHQgaXMgYXNraW5nIG1lIGFib3V0ICpmdW5jdGlvbmFsIGNoYW5nZXMqIHNwZWNpZmljYWxseS4gSXQgbWVudGlvbnMgKmxvZ2dpbmcqLCBhbmQgYGRybV9XQVJOYCBkb2VzIGxvZyBhIG1lc3NhZ2UsIGJ1dCBpdCYjMzk7cyBhbHNvIG1vcmUgdGhhbiB0aGF0OiBpdCYjMzk7cyBhbiBhc3NlcnRpb24gdGhhdCBhIGNvbmRpdGlvbiBtaWdodCBiZSB1bmV4cGVjdGVkLiBJdCBjYW4gdHJpZ2dlciBhIHBhbmljLiBJIGhhZCBhIHRob3VnaHQgdG8gZnV6eiB0aGUgbmV3IGNvZGUgZm9yIHJlZ3Jlc3Npb24sIHRvIHNlZSBpZiBhbnl0aGluZyBpcyBicm9rZW4sIGJlY2F1c2UgSSBkb24mIzM5O3Qgd2FudCB0byBhbGxvdyBzb21ldGhpbmcgdG8gc2lsZW50bHkgZmFpbC4KClNvLCBpZiBJIHN0cmljdGx5IGFkaGVyZSB0byAmIzM0O2xvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cyYjMzQ7LCBJICpjb3VsZCogYXJndWUgaXQmIzM5O3MgYSBkZWNvcmF0aXZlIGNoYW5nZSBhbmQgc2F5IFdvcnRoRnV6emluZz1mYWxzZS4gSG93ZXZlciwgSSBjb25zaWRlciB0aGF0IGEgYFdBUk5gIGlzIGFuIGFzc2VydGlvbiBvZiBhIGNvZGUgY29uZGl0aW9uIHRoYXQgKnNob3VsZCBub3QqIGJlIGhpdC4gUmVtb3ZpbmcgYSBXQVJOIHJlbW92ZXMgdGhlIGFzc2VydGlvbiwgYW5kIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGZ1enppbmcgKHNwZWNpZmljYWxseSBTeXprYWxsZXIpIGEgYFdBUk5gIHJlbW92YWwgaXMgYSBidWcgZml4IChwb3RlbnRpYWxseSBwcmV2ZW50aW5nIGEgY3Jhc2gpLiBJdCAqc2hvdWxkKiBiZSBmdXp6ZWQsIGFzIGEgYnVnIGZpeCAqYWx3YXlzKiB3YXJyYW50cyBmdXp6aW5nIHRvIGVuc3VyZSBjb3JyZWN0bmVzcywgYW5kIHRvIHRlc3QgZm9yIG5ldyBidWdzLgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgKHdhcm5pbmcpLCBJJiMzOTttIGdvaW5nIHRvIGxlYW4gdG93YXJkcyBjb25zaWRlcmluZyB0aGlzIGEgKmZ1bmN0aW9uYWwqIGNoYW5nZSB0aGF0IHdhcnJhbnRzIGZ1enppbmcuIFRoZSBwYXRjaCAqc2hvdWxkKiBiZSBmdXp6ZWQuIEFuZCB0aGlzIGRlcGVuZHMgb24gdGhlIGNvbmZpZyBvcHRpb25zOiBgQ09ORklHX0RSTWAgYW5kIGBDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTmAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NzM2CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyB0aGUgRFJNX0ZCREVWX0VNVUxBVElPTiBQYXRoKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBUaGUgbWVudGlvbiBvZiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBJdCBzdWdnZXN0cyB3ZSYjMzk7cmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBhIHNjZW5hcmlvIHdoZXJlIHdlJiMzOTtyZSBlbXVsYXRpbmcgYSBmcmFtZWJ1ZmZlciBkZXZpY2Ugd2l0aGluIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgZnJhbWV3b3JrLiBNeSBpbW1lZGlhdGUgdGhvdWdodHMgZ28gaW4gYSBmZXcgZGlyZWN0aW9ucywgcHJvYmFibHkgZGVwZW5kaW5nIG9uIGNvbnRleHQuCgpGaXJzdCwgSSYjMzk7bSB0cnlpbmcgdG8gcmVjYWxsIHdoZXJlIEkmIzM5O3ZlIGVuY291bnRlcmVkIHRoYXQgZmxhZy4gSXMgdGhpcyBrZXJuZWwtbGV2ZWwgZW11bGF0aW9uLCBwZXJoYXBzIGZvciBsZWdhY3kgYXBwbGljYXRpb25zIG9yIGhhcmR3YXJlIHN1cHBvcnQ/IE9yIGNvdWxkIGl0IGJlIHJlbGF0ZWQgdG8gdGVzdGluZyBhbmQgZGVidWdnaW5nIG9mIERSTSBkcml2ZXJzPyBJdCBtaWdodCBiZSB1c2VmdWwgaW4gc2l0dWF0aW9ucyB3aGVyZSBhIG5hdGl2ZSBmcmFtZWJ1ZmZlciBkZXZpY2UgaXNuJiMzOTt0IGF2YWlsYWJsZSwgb3Igd2hlcmUgd2Ugd2FudCBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQgdG8gcmVwcm9kdWNlIGEgc3BlY2lmaWMgaXNzdWUuCgpNeSBtaW5kIGlzIGFsc28gY2hlY2tpbmcgZm9yIGFueSBwb3RlbnRpYWwgcGVyZm9ybWFuY2Ugb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zIHdpdGggYW4gZW11bGF0aW9uIGxheWVyIGxpa2UgdGhpcy4gSSYjMzk7ZCBuZWVkIHRvIGNvbnNpZGVyIHRoZSBvdmVyaGVhZCwgYXMgd2VsbCBhcyB0aGUgcG90ZW50aWFsIGZvciB1bmV4cGVjdGVkIGJlaGF2aW9yLCBkZXBlbmRpbmcgb24gaG93IHRoaXMgZW11bGF0aW9uIGlzIGFyY2hpdGVjdGVkIGFuZCBpZiBpdCYjMzk7cyByZWx5aW5nIG9uIGFueSBzcGVjaWZpYyBoYXJkd2FyZSBmZWF0dXJlcy4gSXMgdGhpcyB1c2luZyBhIHNvZnR3YXJlIGZhbGxiYWNrLCBvciBsZXZlcmFnaW5nIG1vcmUgYWR2YW5jZWQgdGVjaG5pcXVlcyBsaWtlIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGVtdWxhdGlvbj8KCkZpbmFsbHksIGlmIHRoaXMgaXMgYSBrbm93biBmZWF0dXJlLCBJIG5lZWQgdG8gZ2V0IHNvbWUgbW9yZSBjb250ZXh0LiBXaGVyZSBhbSBJIHNlZWluZyB0aGlzIGlkZW50aWZpZXI/IElzIGl0IGluIGEgY29uZmlndXJhdGlvbiBmaWxlLCBrZXJuZWwgY29kZSwgb3IgYSB1c2VyLXNwYWNlIHV0aWxpdHk/IEtub3dpbmcgdGhlIGNvbnRleHQgd2lsbCBoZWxwIG1lIHF1aWNrbHkgemVybyBpbiBvbiB0aGUgcHVycG9zZSBhbmQgc2NvcGUgb2YgdGhpcyBlbXVsYXRpb24uIEJhc2ljYWxseSwgSSBuZWVkIGEgcm9hZG1hcCBmb3IgdHJhY2luZyBpdHMgdXNhZ2UgYW5kIHVuZGVyc3RhbmRpbmcgaXRzIHJvbGUgaW4gdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFwmIzM0O1N1cHBvcnRlZCBEUk0gY2xpZW50c1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDkyMTIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSBkZXBlbmRlbmNpZXMgb2YgYGRybV9jbGllbnRfbW9kZXNldC5jYDoKCioqRGVlcCBEaXZlOiBVbmRlcnN0YW5kaW5nIHRoZSBEZXBlbmRlbmNpZXMgb2YgYGRybV9jbGllbnRfbW9kZXNldC5jYCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGludG8gdGhlIG5pdHR5LWdyaXR0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgLiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IHRyYWNpbmcgdGhyb3VnaCBpdHMgaW5jbHVkZSBzdGF0ZW1lbnRzIGFuZCByZWZlcmVuY2VzIHdpdGhpbiB0aGUga2VybmVsIHRyZWUuIFRoaXMgZmlsZSBpcyBjcml0aWNhbCBmb3IgaGFuZGxpbmcgdGhlIGNsaWVudC1zaWRlIGFzcGVjdHMgb2YgbW9kZXNldHRpbmcgaW4gYSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgY29udGV4dC4gVGhlcmVmb3JlLCBteSBndWVzcyBpcyB0aGF0IGl0IHRvdWNoZXMgb24gc2V2ZXJhbCBmdW5kYW1lbnRhbCBEUk0gY29uY2VwdHMsIGxpa2VseSBpbmNsdWRpbmcgdGhpbmdzIGxpa2UgY29ubmVjdG9ycywgZW5jb2RlcnMsIHBsYW5lcywgQ1JUQ3MsIGFuZCBvZiBjb3Vyc2UsIHRoZSB1bmRlcmx5aW5nIEtNUyAoS2VybmVsIE1vZGUtU2V0dGluZykgaW5mcmFzdHJ1Y3R1cmUuCgpJJiMzOTtkIGV4cGVjdCB0byBzZWUgZGVwZW5kZW5jaWVzIG9uIHRoZSBjb3JlIERSTSBoZWFkZXJzLCBuYXR1cmFsbHksIHBlcmhhcHMgYGRybV9jb3JlLmhgLCBgZHJtX2ZiLmhgLCBhbmQgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gZG8gd2l0aCB0aGUgZnJhbWUgYnVmZmVyIGluZnJhc3RydWN0dXJlLiBJdCAqaGFzKiB0byBpbnRlcmFjdCB3aXRoIHRoZSBnZW5lcmljIEtNUyBpbnRlcmZhY2VzOyB0aGUgd2hvbGUgcG9pbnQgb2YgY2xpZW50LXNpZGUgbW9kZXNldHRpbmcgaXMgdG8gYWJzdHJhY3QgYXdheSBzb21lIG9mIHRoZSBjb21wbGV4aXRpZXMuIEkgYmV0IGl0IGFsc28gaW50ZXJhY3RzIHdpdGggdGhlIHNwZWNpZmljIGRyaXZlciBBUElzLCBwYXJ0aWN1bGFybHkgdGhvc2UgcmVsYXRlZCB0byB0aGUgZ3JhcGhpY3MgaGFyZHdhcmUgb24gdGhlIGNsaWVudCBzaWRlLCBpZiB0aGVyZSBpcyBhIGNsaWVudC1zcGVjaWZpYyBkcml2ZXIgb3IgaWYgaXRzIHJlbHlpbmcgb24gdGhlIGJhc2ljIGRyaXZlcnMuCgpJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjcm9zcy1yZWZlcmVuY2VzIHRvIHVuZGVyc3RhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBsb3dlciBsYXllcnMgYW5kIGhvdyBpdCBpcyBsaW5rZWQsIHN0YXRpY2FsbHkgb3IgZHluYW1pY2FsbHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBpdCBwbHVncyBpbnRvIHRoZSBvdmVyYWxsIG1vZGVzZXR0aW5nIHByb2Nlc3MuIElzIGl0IHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB1c2VyLXNwYWNlIHJlcXVlc3RzPyBEb2VzIGl0IGludGVyZmFjZSB3aXRoIHRoZSBkaXNwbGF5IHNlcnZlcj8gRG9lcyBpdCBkaXJlY3RseSBtYW5pcHVsYXRlIGhhcmR3YXJlIHJlZ2lzdGVycyAodW5saWtlbHksIGJ1dCBJIHNob3VsZCBsb29rKT8gSSYjMzk7bSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBob3cgaXQgaGFuZGxlcyB0aGUgc3luY2hyb25pemF0aW9uIGJldHdlZW4gY2xpZW50IGFuZCBzZXJ2ZXIsIHNpbmNlIHRoYXQmIzM5O3MgYSBjcml0aWNhbCBhcmVhIGZvciBwZXJmb3JtYW5jZSBhbmQgYXZvaWRpbmcgdGVhcmluZy4gVGhlIHdob2xlIHBvaW50IGlzIHNlYW1sZXNzIGRpc3BsYXkgdHJhbnNpdGlvbnMuCgpUaGlzIGFuYWx5c2lzIGlzIGdvaW5nIHRvIGxlYWQgbWUgdG8gYSBkZWVwZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgRFJNIGFyY2hpdGVjdHVyZSwgYW5kIGhvdyBpdCBzZXJ2ZXMgdGhlIG5lZWRzIG9mIHVzZXJzcGFjZSBhcHBsaWNhdGlvbnMsIGFzIHdlbGwgYXMgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RybV9jbGllbnRfbW9kZXNldCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU9NzY9ZHJtLSQoQ09ORklHX0RSTV9DTElFTlQpICYjNDM7PSBcXFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS03OC1cdGRybV9jbGllbnRfZXZlbnQubyBcXFxuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlOjc5Olx0ZHJtX2NsaWVudF9tb2Rlc2V0Lm8gXFxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS04MC1cdGRybV9jbGllbnRfc3lzcnEub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzgyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipOYXZpZ2F0aW5nIHRoZSBEZXBlbmRlbmN5IFdlYiBmb3IgRFJNIENsaWVudCBGdW5jdGlvbmFsaXR5KioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUuLi4gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgbW9kdWxlLCBhbmQgaXQmIzM5O3MgY2xlYXI6IHdlICphYnNvbHV0ZWx5KiBuZWVkIGBDT05GSUdfRFJNX0NMSUVOVGAgZGVmaW5lZC4gVGhlcmUmIzM5O3Mgbm8gd2F5IGFyb3VuZCBpdC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCByZXF1aXJlbWVudC4gSSYjMzk7bSBwcm9iYWJseSBkZWFsaW5nIHdpdGggZWl0aGVyIGEgbmV3IGRldmljZSBkcml2ZXIgb3IgYSBmZWF0dXJlIHRoYXQgaW50ZXJmYWNlcyB3aXRoIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgaW4gc29tZSB3YXksIGFuZCBgQ09ORklHX0RSTV9DTElFTlRgIGFjdHMgYXMgdGhlIGdhdGVrZWVwZXIgZm9yIGVuYWJsaW5nIHRoYXQgY2xpZW50LXNpZGUgZnVuY3Rpb25hbGl0eSB3aXRoaW4gdGhlIGtlcm5lbC4gSXQmIzM5O3MgYWxtb3N0IGNlcnRhaW5seSByZWxhdGVkIHRvIG1hbmFnaW5nIHRoZSBkaXNwbGF5IGhhcmR3YXJlLCBmcmFtZWJ1ZmZlcnMsIG9yIHBvc3NpYmx5IHNvbWUgZm9ybSBvZiBhY2NlbGVyYXRlZCBncmFwaGljcyBvdXRwdXQuIFdpdGhvdXQgaXQsIHRoZSBidWlsZCB3aWxsIGVpdGhlciBmYWlsIG1pc2VyYWJseSBvciB0aGUgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIHNpbGVudGx5IGNyaXBwbGVkLCBsZWFkaW5nIHRvIHNvbWUgdmVyeSBmcnVzdHJhdGluZyBkZWJ1Z2dpbmcgc2Vzc2lvbnMuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGRlcGVuZGVuY2llcyB0byB2ZXJpZnkgYW55IGFzc3VtcHRpb25zLCBidXQgdGhpcyBpcyB0aGUgZmlyc3QgdGhpbmcgdG8gbWFrZSBzdXJlIGlzIHNldCBwcm9wZXJseS4gSXTigJlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgZW5zdXJpbmcgYSBmdW5jdGlvbmFsIHN1YnN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9DTElFTlQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0xNTg9Y29uZmlnIERSTV9ERUJVR19NT0RFU0VUX0xPQ0tcbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xNzItXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZzoxNzM6Y29uZmlnIERSTV9DTElFTlRcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTE3NC1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxNTMKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTmF2aWdhdGluZyB0aGUgVW5zZWVuIExhbmRzY2FwZSBvZiBDb25maWd1cmF0aW9uKioKCkFoLCB0aGlzIG9uZSYjMzk7cyBpbnRyaWd1aW5nLiBNeSBpbml0aWFsIHRob3VnaHQgcHJvY2VzcyBqdW1wcyByaWdodCB0byB0aGUgY29yZTogdGhpcyBjb25maWd1cmF0aW9uLCB3aGF0ZXZlciBpdCBwZXJ0YWlucyB0bywgaXNuJiMzOTt0IGRpcmVjdGx5IGV4cG9zZWQuIEl0JiMzOTtzICpoaWRkZW4qLiBUaGF0JiMzOTtzIHRoZSBrZXkgc3RhcnRpbmcgcG9pbnQuIEl0JiMzOTtzIG5vdCBzb21ldGhpbmcgeW91JiMzOTtkIGZpbmQgYnkgc2ltcGx5IGJyb3dzaW5nIGEgZGlyZWN0b3J5IG9yIGxvb2tpbmcgYXQgYSBzdGFuZGFyZCBzZXR0aW5ncyBmaWxlLiBUaGlzIGltcGxpZXMgYSBsZXZlbCBvZiBpbmRpcmVjdGlvbiwgYSBkZWxpYmVyYXRlIGNvbmNlYWxtZW50LCBvciBhdCBsZWFzdCBhIGxlc3MtdGhhbi1vYnZpb3VzIGRlZmF1bHQgbG9jYXRpb24uCgpNeSBtaW5kIGltbWVkaWF0ZWx5IHN0YXJ0cyB0aWNraW5nIHRocm91Z2ggdGhlIHVzdWFsIHN1c3BlY3RzOiBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGNvbW1hbmQtbGluZSBhcmd1bWVudHMsIHBlcmhhcHMgYSBkYXRhYmFzZSBlbnRyeSBhY2Nlc3NlZCB0aHJvdWdoIGEgc3BlY2lmaWMgQVBJIGNhbGwuIENvdWxkIGl0IGJlIGEgZHluYW1pY2FsbHkgbG9hZGVkIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gcnVudGltZSBjb25kaXRpb25zLCBvciBhIGZlYXR1cmUgZmxhZyBiZWhpbmQgYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0dXA/IFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgaGlkZGVuIHN1Z2dlc3RzIGEgbmVlZCBmb3IgYSBzcGVjaWZpYyB0cmlnZ2VyLCBhIGNvbmRpdGlvbiBtZXQsIG9yIGEgbWVjaGFuaXNtIGVtcGxveWVkIHRvIGJyaW5nIGl0IGludG8gcGxheS4gVGhlIGNydWNpYWwgZGV0YWlsIGlzICpzb21ldGhpbmcqIHNlbGVjdHMgaXQuIFRoYXQmIzM5O3MgdGhlIHJlYWwgcHJvYmxlbSB0byBiZSBzb2x2ZWQuIFdlIG5lZWQgdG8gaWRlbnRpZnkgdGhhdCBzZWxlY3RvciwgdGhhdCB0cmlnZ2VyLCB0aGUgYW50ZWNlZGVudCB0aGF0IHB1bGxzIHRoaXMgcGFydGljdWxhciBjb25maWd1cmF0aW9uIG91dCBvZiB0aGUgc2hhZG93cy4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgcmVhbCBjb21wbGV4aXR5IGxpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBEUk1fQ0xJRU5UJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTA2IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0xNzM9Y29uZmlnIERSTV9DTElFTlRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xNzktXHQgIG9wdGlvbi4gRHJpdmVycyB0aGF0IHN1cHBvcnQgdGhlIGRlZmF1bHQgY2xpZW50cyBzaG91bGRcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjE4MDpcdCAgc2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OIGluc3RlYWQuXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xODEtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZz0zPWNvbmZpZyBEUk1fQU1ER1BVXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZy02LVx0c2VsZWN0IEZXX0xPQURFUlxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZzo3Olx0c2VsZWN0IERSTV9DTElFTlRcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L0tjb25maWc6ODpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZy05LVx0c2VsZWN0IERSTV9ESVNQTEFZX0RQX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZz01PWNvbmZpZyBEUk1fSERMQ0Rcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWctOC1cdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuZHJpdmVycy9ncHUvZHJtL2FybS9LY29uZmlnOjk6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZy0xMC1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZz0yOD1jb25maWcgRFJNX01BTElfRElTUExBWVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZy0zMS1cdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuZHJpdmVycy9ncHUvZHJtL2FybS9LY29uZmlnOjMyOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWctMzMtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkvS2NvbmZpZz0yPWNvbmZpZyBEUk1fS09NRURBXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L0tjb25maWctNS1cdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L0tjb25maWctNy1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvS2NvbmZpZz0yPWNvbmZpZyBEUk1fQVJNQURBXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgSEFWRV9DTEsgXHUwMDI2XHUwMDI2IEFSTSBcdTAwMjZcdTAwMjYgTU1VXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWc9Mj1jb25maWcgRFJNX0FTUEVFRF9HRlhcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWctNi1cdGRlcGVuZHMgb24gTU1VXG5kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWc6NzpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9LY29uZmlnLTgtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXN0L0tjb25maWc9Mj1jb25maWcgRFJNX0FTVFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hc3QvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnOjU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9hc3QvS2NvbmZpZy02LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL0tjb25maWc9Mj1jb25maWcgRFJNX0FUTUVMX0hMQ0RDXG4tLVxuZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL0tjb25maWctNC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBPRiBcdTAwMjZcdTAwMjYgQ09NTU9OX0NMSyBcdTAwMjZcdTAwMjYgKChNRkRfQVRNRUxfSExDREMgXHUwMDI2XHUwMDI2IEFSTSkgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL0tjb25maWctNi1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnPTEyPWNvbmZpZyBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTQtXHRkZXBlbmRzIG9uIERSTVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxNTpcdHNlbGVjdCBEUk1fQ0xJRU5UX0xJQiBpZiBEUk1fQ0xJRU5UX0xPR1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxNjpcdHNlbGVjdCBEUk1fQ0xJRU5UX0xJQiBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTE3LVx0aGVscFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9MjE9Y29uZmlnIERSTV9DTElFTlRfU0VUVVBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTI1LVx0ICBFbmFibGVzIHRoZSBEUk0gY2xpZW50IHNlbGVjdGlvbi4gRFJNIGRyaXZlcnMgdGhhdCBzdXBwb3J0IHRoZVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoyNjpcdCAgZGVmYXVsdCBjbGllbnRzIHNob3VsZCBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT04gaW5zdGVhZC5cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMjctXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0zMT1jb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzMtXHRkZXBlbmRzIG9uIERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjM0Olx0c2VsZWN0IERSTV9DTElFTlRcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zNi1cdHNlbGVjdCBGUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlmIEZSQU1FQlVGRkVSX0NPTlNPTEVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnPTc0PWNvbmZpZyBEUk1fQ0xJRU5UX0xPR1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNzYtXHRkZXBlbmRzIG9uIERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc3Olx0c2VsZWN0IERSTV9DTElFTlRcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6Nzg6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy03OS1cdHNlbGVjdCBEUk1fRFJBV1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZz0yPWNvbmZpZyBEUk1fRVhZTk9TXG4tLVxuZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9LY29uZmlnLTYtXHRkZXBlbmRzIG9uIE1NVVxuZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9ESVNQTEFZX0hFTFBFUiBpZiBEUk1fRVhZTk9TX0RQXG4tLVxuZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvS2NvbmZpZz0yPWNvbmZpZyBEUk1fRlNMX0RDVVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L0tjb25maWctNS1cdHNlbGVjdCBCQUNLTElHSFRfQ0xBU1NfREVWSUNFXG5kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9LY29uZmlnOjY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L0tjb25maWctNy1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL0tjb25maWc9Mj1jb25maWcgRFJNX0dNQTUwMFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgWDg2IFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZ3VkL0tjb25maWc9Mz1jb25maWcgRFJNX0dVRFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9ndWQvS2NvbmZpZy02LVx0c2VsZWN0IExaNF9DT01QUkVTU1xuZHJpdmVycy9ncHUvZHJtL2d1ZC9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9ndWQvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnPTI9Y29uZmlnIERSTV9ISVNJX0hJQk1DXG4tLVxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnPTI9Y29uZmlnIERSTV9ISVNJX0tJUklOXG4tLVxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgT0YgXHUwMDI2XHUwMDI2IChBUk02NCB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaHlwZXJ2L0tjb25maWc9Mj1jb25maWcgRFJNX0hZUEVSVlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9oeXBlcnYvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgSFlQRVJWX1ZNQlVTXG5kcml2ZXJzL2dwdS9kcm0vaHlwZXJ2L0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2h5cGVydi9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnPTI9Y29uZmlnIERSTV9JOTE1XG4tLVxuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy0xMi1cdHNlbGVjdCBUTVBGU1xuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZzoxMzpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy0xNC1cdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW14L2RjL0tjb25maWc9MT1jb25maWcgRFJNX0lNWDhfRENcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW14L2RjL0tjb25maWctMy1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBDT01NT05fQ0xLIFx1MDAyNlx1MDAyNiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvZ3B1L2RybS9pbXgvZGMvS2NvbmZpZzo0Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vaW14L2RjL0tjb25maWctNS1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW14L2Rjc3MvS2NvbmZpZz0xPWNvbmZpZyBEUk1fSU1YX0RDU1Ncbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW14L2Rjc3MvS2NvbmZpZy0zLVx0c2VsZWN0IElNWF9JUlFTVEVFUlxuZHJpdmVycy9ncHUvZHJtL2lteC9kY3NzL0tjb25maWc6NDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2lteC9kY3NzL0tjb25maWctNS1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvS2NvbmZpZz0yPWNvbmZpZyBEUk1fSU1YXG5kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0RSTSBTdXBwb3J0IGZvciBGcmVlc2NhbGUgaS5NWFwmIzM0O1xuZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9LY29uZmlnOjQ6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvS2NvbmZpZy01LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2lteC9sY2RjL0tjb25maWc9MT1jb25maWcgRFJNX0lNWF9MQ0RDXG4tLVxuZHJpdmVycy9ncHUvZHJtL2lteC9sY2RjL0tjb25maWctMy0gICAgICBkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgKEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvZ3B1L2RybS9pbXgvbGNkYy9LY29uZmlnOjQ6ICAgICAgc2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vaW14L2xjZGMvS2NvbmZpZy01LSAgICAgIHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW5nZW5pYy9LY29uZmlnPTE9Y29uZmlnIERSTV9JTkdFTklDXG4tLVxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9CUklER0VcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL0tjb25maWc6OTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZy0xMC1cdHNlbGVjdCBEUk1fUEFORUxfQlJJREdFXG4tLVxuZHJpdmVycy9ncHUvZHJtL2ttYi9LY29uZmlnPTE9Y29uZmlnIERSTV9LTUJfRElTUExBWVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBBUkNIX0tFRU1CQVkgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2dwdS9kcm0va21iL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2ttYi9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbG9naWN2Yy9LY29uZmlnPTE9Y29uZmlnIERSTV9MT0dJQ1ZDXG4tLVxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBPRiB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvZ3B1L2RybS9sb2dpY3ZjL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZy02LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL0tjb25maWc9Mz1jb25maWcgRFJNX0xPT05HU09OXG4tLVxuZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL0tjb25maWctNi1cdGRlcGVuZHMgb24gTE9PTkdBUkNIIHx8IE1JUFMgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vS2NvbmZpZzo3Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vS2NvbmZpZy04LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL21jZGUvS2NvbmZpZz0xPWNvbmZpZyBEUk1fTUNERVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWctOC1cdHNlbGVjdCBNRkRfU1lTQ09OXG5kcml2ZXJzL2dwdS9kcm0vbWNkZS9LY29uZmlnOjk6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWctMTAtXHRzZWxlY3QgRFJNX01JUElfRFNJXG4tLVxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWc9Mj1jb25maWcgRFJNX01FRElBVEVLXG4tLVxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWctOS1cdGRlcGVuZHMgb24gTVRLX01NU1lTXG5kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvS2NvbmZpZzoxMDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWctMTEtXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL21lc29uL0tjb25maWc9Mj1jb25maWcgRFJNX01FU09OXG4tLVxuZHJpdmVycy9ncHUvZHJtL21lc29uL0tjb25maWctNS1cdGRlcGVuZHMgb24gQVJDSF9NRVNPTiB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvZ3B1L2RybS9tZXNvbi9LY29uZmlnOjY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9tZXNvbi9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9LY29uZmlnPTI9Y29uZmlnIERSTV9NR0FHMjAwXG4tLVxuZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZzo1Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWc9NjE9Y29uZmlnIERSTV9NU01fS01TXG4tLVxuZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnLTY1LVx0c2VsZWN0IERSTV9CUklER0VfQ09OTkVDVE9SXG5kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWc6NjY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9tc20vS2NvbmZpZy02Ny1cdHNlbGVjdCBEUk1fRElTUExBWV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZz03PWNvbmZpZyBEUk1fTVhTRkJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZy0xMS1cdGRlcGVuZHMgb24gQVJDSF9NWFMgfHwgQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZzoxMjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWctMTMtXHRzZWxlY3QgRFJNX01YU1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnPTI1PWNvbmZpZyBEUk1fSU1YX0xDRElGXG4tLVxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWctMjktXHRkZXBlbmRzIG9uIEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWc6MzA6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnLTMxLVx0c2VsZWN0IERSTV9NWFNcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnPTI9Y29uZmlnIERSTV9OT1VWRUFVXG4tLVxuZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvS2NvbmZpZy03LVx0c2VsZWN0IEZXX0NBQ0hFIGlmIFBNX1NMRUVQXG5kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnOjg6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L0tjb25maWctOS1cdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnPTI9Y29uZmlnIERSTV9PTUFQXG4tLVxuZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vS2NvbmZpZy02LVx0ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUyB8fCAoQ09NUElMRV9URVNUIFx1MDAyNlx1MDAyNiBQQUdFX1NJWkVfTEVTU19USEFOXzY0S0IpXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL0tjb25maWctOC1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnPTI9Y29uZmlnIERSTV9QTDExMVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnLTctXHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnOjg6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnLTktXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcXhsL0tjb25maWc9Mj1jb25maWcgRFJNX1FYTFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9ncHUvZHJtL3F4bC9LY29uZmlnOjU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZy02LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9LY29uZmlnPTM9Y29uZmlnIERSTV9SQURFT05cbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL0tjb25maWctNy1cdHNlbGVjdCBGV19MT0FERVJcbmRyaXZlcnMvZ3B1L2RybS9yYWRlb24vS2NvbmZpZzo4Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL0tjb25maWctOS1cdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yY2FyLWR1L0tjb25maWc9Mj1jb25maWcgRFJNX1JDQVJfRFVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yY2FyLWR1L0tjb25maWctNi1cdGRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcmNhci1kdS9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcnotZHUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUlpHMkxfRFVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yei1kdS9LY29uZmlnLTYtXHRkZXBlbmRzIG9uIFZJREVPX1JFTkVTQVNfVlNQMVxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcnotZHUvS2NvbmZpZzo3Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yei1kdS9LY29uZmlnLTgtXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvc2htb2JpbGUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fU0hNT0JJTEVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9LY29uZmlnLTYtXHRzZWxlY3QgQkFDS0xJR0hUX0NMQVNTX0RFVklDRVxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvc2htb2JpbGUvS2NvbmZpZzo3Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9LY29uZmlnLTgtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUk9DS0NISVBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZy03LVx0ZGVwZW5kcyBvbiBPRlxuZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWc6ODpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWctOS1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZz0xPWNvbmZpZyBEUk1fU1Q3NTcxXG4tLVxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctMy1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBNTVVcbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnOjQ6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnLTUtXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZz00Mj1jb25maWcgRFJNX1NUNzU4NlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnLTQ0LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFNQSVxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWc6NDU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnLTQ2LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWc9NTU9Y29uZmlnIERSTV9TVDc3MzVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNTctXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZzo1ODpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNTktXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc29sb21vbi9LY29uZmlnPTE9Y29uZmlnIERSTV9TU0QxMzBYXG4tLVxuZHJpdmVycy9ncHUvZHJtL3NvbG9tb24vS2NvbmZpZy00LVx0c2VsZWN0IEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0VcbmRyaXZlcnMvZ3B1L2RybS9zb2xvbW9uL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3NvbG9tb24vS2NvbmZpZy02LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnPTI9Y29uZmlnIERSTV9TVElcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3RpL0tjb25maWctNS1cdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXG5kcml2ZXJzL2dwdS9kcm0vc3RpL0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3RtL0tjb25maWc9Mj1jb25maWcgRFJNX1NUTVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9zdG0vS2NvbmZpZy01LVx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXG5kcml2ZXJzL2dwdS9kcm0vc3RtL0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3VuNGkvS2NvbmZpZz0yPWNvbmZpZyBEUk1fU1VONElcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3VuNGkvS2NvbmZpZy01LVx0ZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9ncHUvZHJtL3N1bjRpL0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N1bjRpL0tjb25maWctNy1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz0xMD1jb25maWcgRFJNX0NPUkVCT09URFJNXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctMTQtXHRzZWxlY3QgQVBFUlRVUkVfSEVMUEVSU1xuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6MTU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTE2LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc9MjY9Y29uZmlnIERSTV9FRklEUk1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy0yOS1cdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZzozMDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctMzEtXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz00Mj1jb25maWcgRFJNX09GRFJNXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctNDUtXHRzZWxlY3QgQVBFUlRVUkVfSEVMUEVSU1xuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6NDY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTQ3LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc9NTc9Y29uZmlnIERSTV9TSU1QTEVEUk1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy02MC1cdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZzo2MTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctNjItXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz03Nj1jb25maWcgRFJNX1ZFU0FEUk1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy03OS1cdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZzo4MDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctODEtXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVEVHUkFcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvS2NvbmZpZy03LVx0ZGVwZW5kcyBvbiBPRlxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL0tjb25maWc6ODpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL0tjb25maWctOS1cdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZz0xPWNvbmZpZyBEUk1fVElEU1Ncbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBBUk0gfHwgQVJNNjQgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZzo1Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZy02LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy9LY29uZmlnPTI9Y29uZmlnIERSTV9USUxDRENcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL0tjb25maWctNC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBPRiBcdTAwMjZcdTAwMjYgQVJNXG5kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE2PWNvbmZpZyBEUk1fQVJDUEdVXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xOC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBPRlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxOTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0yMC1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTI3PWNvbmZpZyBEUk1fQk9DSFNcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTI5LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgTU1VXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjMwOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTMxLVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0zOT1jb25maWcgRFJNX0NJUlJVU19RRU1VXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy00MS1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6NDI6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNDMtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTU5PWNvbmZpZyBEUk1fR00xMlUzMjBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTYxLVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFVTQiBcdTAwMjZcdTAwMjYgTU1VXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjYyOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTYzLVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz02OT1jb25maWcgRFJNX1BBTkVMX01JUElfREJJXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy03MS1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6NzI6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNzMtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTg1PWNvbmZpZyBEUk1fUElYUEFQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTg4LSAgICAgICAgZGVwZW5kcyBvbiBNTVVcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6ODk6ICAgICAgICBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctOTAtICAgICAgICBzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTEwMT1jb25maWcgVElOWURSTV9IWDgzNTdEXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMDMtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjEwNDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMDUtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTExNT1jb25maWcgVElOWURSTV9JTEk5MTYzXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMTgtXHRzZWxlY3QgQkFDS0xJR0hUX0NMQVNTX0RFVklDRVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxMTk6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTIwLVx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTI5PWNvbmZpZyBUSU5ZRFJNX0lMSTkyMjVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTEzMS1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTMyOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTEzMy1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTQyPWNvbmZpZyBUSU5ZRFJNX0lMSTkzNDFcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE0NC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTQ1Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE0Ni1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTU2PWNvbmZpZyBUSU5ZRFJNX0lMSTk0ODZcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE1OC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTU5Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE2MC1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTcxPWNvbmZpZyBUSU5ZRFJNX01JMDI4M1FUXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xNzMtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjE3NDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xNzUtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE4Mz1jb25maWcgVElOWURSTV9SRVBBUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xODUtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjE4NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xODctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE5OD1jb25maWcgVElOWURSTV9TSEFSUF9NRU1PUllcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTIwMC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MjAxOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTIwMi1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL0tjb25maWc9Mj1jb25maWcgRFJNX1RWRTIwMFxuLS1cbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9CUklER0VcbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZzo5Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL0tjb25maWctMTAtXHRzZWxlY3QgRFJNX1BBTkVMX0JSSURHRVxuLS1cbmRyaXZlcnMvZ3B1L2RybS91ZGwvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVURMXG4tLVxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnLTctXHRkZXBlbmRzIG9uIE1NVVxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnOjg6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS91ZGwvS2NvbmZpZy05LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnPTI9Y29uZmlnIERSTV9WQk9YVklERU9cbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL0tjb25maWctNC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBYODYgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnOjU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vS2NvbmZpZy02LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3ZjNC9LY29uZmlnPTI9Y29uZmlnIERSTV9WQzRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmM0L0tjb25maWctMTEtXHRkZXBlbmRzIG9uIFBNXG5kcml2ZXJzL2dwdS9kcm0vdmM0L0tjb25maWc6MTI6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS92YzQvS2NvbmZpZy0xMy1cdHNlbGVjdCBEUk1fRElTUExBWV9IRE1JX0FVRElPX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnPTI9Y29uZmlnIERSTV9WRVJJU0lMSUNPTl9EQ1xuLS1cbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0JSSURHRV9DT05ORUNUT1JcbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnLTgtXHRzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnPTI9Y29uZmlnIERSTV9WSVJUSU9fR1BVXG4tLVxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnLTUtXHRzZWxlY3QgVklSVElPXG5kcml2ZXJzL2dwdS9kcm0vdmlydGlvL0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnPTM9Y29uZmlnIERSTV9WS01TXG4tLVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy01LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IE1NVVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzo2Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L0tjb25maWc9Mj1jb25maWcgRFJNX1ZNV0dGWFxuLS1cbmRyaXZlcnMvZ3B1L2RybS92bXdnZngvS2NvbmZpZy01LVx0ZGVwZW5kcyBvbiAoWDg2IFx1MDAyNlx1MDAyNiBIWVBFUlZJU09SX0dVRVNUKSB8fCBBUk02NFxuZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9LY29uZmlnOjY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS92bXdnZngvS2NvbmZpZy03LVx0c2VsZWN0IERSTV9UVE1cbi0tXG5kcml2ZXJzL2dwdS9kcm0veGUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fWEVcbi0tXG5kcml2ZXJzL2dwdS9kcm0veGUvS2NvbmZpZy0xNC1cdHNlbGVjdCBEUk1fQlVERFlcbmRyaXZlcnMvZ3B1L2RybS94ZS9LY29uZmlnOjE1Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0veGUvS2NvbmZpZy0xNi1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTgxCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkZ1enppbmcgVGFyZ2V0IEFzc2Vzc21lbnQ6IERSTV9WS01TKioKClJpZ2h0LCBgRFJNX1ZLTVNgIGxvb2tzIGxpa2UgYSBzb2xpZCBjYW5kaWRhdGUgZm9yIHNvbWUgZnV6emluZy4gSXQmIzM5O3MgZ290IHRoZSByaWdodCBwcm9maWxlLCBlbm91Z2ggY29tcGxleGl0eSB0byBleHBvc2UgaW50ZXJlc3RpbmcgYnVncywgYW5kIGl0JiMzOTtzIHdpdGhpbiB0aGUgcmlnaHQgc2NvcGUuIE5vdywgYmVmb3JlIEkgZGl2ZSBpbiBoZWFkZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBkZXBlbmRlbmNpZXMuIEdvdHRhIGZpZ3VyZSBvdXQgd2hhdCBvdGhlciBjb21wb25lbnRzIG9yIGtlcm5lbCBtb2R1bGVzIGBEUk1fVktNU2AgaW50ZXJhY3RzIHdpdGguIFRoYXQgZGVwZW5kZW5jeSBhbmFseXNpcyBpcyBjcnVjaWFsLiBObyBwb2ludCBpbiBzcGVuZGluZyBkYXlzIGZ1enppbmcgaXQgaW4gaXNvbGF0aW9uIGlmIGl0JiMzOTtzIGludHJpY2F0ZWx5IGxpbmtlZCB0byBzb21lIG90aGVyIHN1YnN5c3RlbSB0aGF0JiMzOTtzIHRoZSByZWFsIHdlYWsgcG9pbnQuIFVuZGVyc3RhbmRpbmcgdGhlIGF0dGFjayBzdXJmYWNlIGlzIHBhcmFtb3VudC4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGFyZSBkZWFsaW5nIHdpdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBEUk1fVktNUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yLVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzozOmNvbmZpZyBEUk1fVktNU1xuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy00LVx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBLTVMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTE4LVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzoxOTpjb25maWcgRFJNX1ZLTVNfS1VOSVRfVEVTVFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBWS01TXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkzNjQKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBwcmVzZW50ZWQgYXMgYSBzdHJlYW0gb2YgY29uc2Npb3VzbmVzczoKCioqQWRkaW5nIHRoZSBQaWVjZXMgZm9yIEZyYW1lYnVmZmVyIEVtdWxhdGlvbioqCgpBbHJpZ2h0LCBJJiMzOTttIGdvaW5nIHRvIGludGVncmF0ZSBgRFJNX1ZLTVNgIGludG8gdGhlIGBFbmFibGVDb25maWdzYC4gVGhhdCYjMzk7cyB0aGUgZmlyc3Qgc3RlcC4gIE5vdywgSSBhbHNvIHJlY2FsbCB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBpcyBjcml0aWNhbDsgdGhhdCYjMzk7cyB0aGUgdHJpZ2dlciB0aGF0IGFjdHVhbGx5IGdldHMgYGRybV9mYl9oZWxwZXJfaW9jdGxgIGludm9rZWQuICBIb2xkIG9uIGEgc2Vjb25kLi4uSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIHRoaW5raW5nIHRoaXMgdGhyb3VnaCBjb3JyZWN0bHkuIEkmIzM5O20gcHJldHR5IGNlcnRhaW4gdGhhdCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMsIGluIGZhY3QsIGNhbGxlZCBmcm9tIGBkcm1fZmJfaGVscGVyLmNgLiBPa2F5LCBub3cgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uLCB0aGF0IEkgbmVlZCB0byBhbnN3ZXIuIElzIGBkcm1fZmJfaGVscGVyLmNgIGNvbXBpbGVkIHdpdGggdGhlIG5lY2Vzc2FyeSBgRFJNX0ZCREVWX0VNVUxBVElPTmAgb3B0aW9uPyBJdCBoYXMgdG8gYmUsIG9yIHRoaW5ncyBhcmUgZ29pbmcgdG8gYmUgYnJva2VuLiBJIG5lZWQgdG8gZ28gYW5kIGNvbmZpcm0gdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJtX2ZiX2hlbHBlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU9MTU5PWRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9QQU5FTF9CUklER0UpICYjNDM7PSBicmlkZ2UvcGFuZWwub1xuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlOjE2MDpkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKSAmIzQzOz0gZHJtX2ZiX2hlbHBlci5vXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtMTYxLW9iai0kKENPTkZJR19EUk1fS01TX0hFTFBFUikgJiM0Mzs9IGRybV9rbXNfaGVscGVyLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk4MjIKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBkZWVwIGluIHRoZSB3ZWVkcyBvZiBrZXJuZWwgZGV2ZWxvcG1lbnQgYW5kIHNwZWNpZmljYWxseSB3b3JraW5nIHdpdGggRFJNOgoKKipFeGFtaW5pbmcgdGhlIERSTSBEcml2ZXIgSW50ZXJkZXBlbmRlbmNpZXMqKgoKWWVzLCB0aGF0JiMzOTtzIHJpZ2h0LiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgZXNzZW50aWFsIGZvciB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbi4gTm93LCBsZXQmIzM5O3MganVzdCBxdWlja2x5IHZlcmlmeSB0aGF0IGBEUk1fVktNU2AgLSB0aGUgdmlydHVhbCBLTVMgZHJpdmVyIC0gaW5kZWVkIGhhbmRsZXMgdGhpcyBkZXBlbmRlbmN5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIGBEUk1fVktNU2AgY29ycmVjdGx5IHNlbGVjdHMsIG9yIGRlcGVuZHMgb24sIGBEUk1fRkJERVZfRU1VTEFUSU9OYCB0byBmdW5jdGlvbiBwcm9wZXJseS4gR290dGEgY2hlY2sgdGhlIEtjb25maWcgZGVwZW5kZW5jaWVzIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IERSTV9GQkRFVl9FTVVMQVRJT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwNDgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTmF2aWdhdGluZyB0aGUgRFJNIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCk9rYXksIHNvIHRoZSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIGluY29ycmVjdCDigJMgaXQmIzM5O3MgY2xlYXIgdGhhdCB0aGUgY3VycmVudCBzZXR1cCBpc24mIzM5O3Qgc3VmZmljaWVudC4gTXkgaW5zdGluY3QgaXMgdG8gYWRkIGBEUk1fRkJERVZfRU1VTEFUSU9OYCB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgLCBidXQgd2FpdCwgaXNuJiMzOTt0IHRoYXQgYSBib29sZWFuIGNvbmZpZz8gUmlnaHQsIGl0IGlzLiBHb3R0YSBiZSBjYXJlZnVsIHdpdGggdGhvc2UuCgpMZXQmIzM5O3MgcXVpY2tseSBzY2FuIHRoZSByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHRvIHNlZSB3aGF0JiMzOTtzIGNvbm5lY3RlZC4gQWgsIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAgaXMgc2VsZWN0ZWQgYnkgYERSTV9WS01TYC4gVGhhdCBzZWVtcyByZWxldmFudC4gQW5kIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAgdGhlbiBzZWxlY3RzIGBEUk1fQ0xJRU5UX0xJQmAgKmlmKiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgYWxzbyBlbmFibGVkLgoKSG1tLCBgRFJNX0NMSUVOVF9MSUJg4oCmIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgaW50ZXJhY3Rpb25zIG9mIHRoZXNlIGNsaWVudCBkcml2ZXJzLiBCZXN0IGdvIGJhY2sgdG8gdGhlIHNvdXJjZTsgSSBzaG91bGQgcmV2aXNpdCB0aGUgYGRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWdgIGZpbGUgYW5kIHJldmlldyB0aGUgZGVwZW5kZW5jaWVzIGFuZCBpbXBsaWNhdGlvbnMgb2YgZWFjaCBvZiB0aGVzZSBvcHRpb25zIGluIG1vcmUgZGV0YWlsLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSByZWFsIGFuc3dlciBsaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFwmIzM0O1N1cHBvcnRlZCBEUk0gY2xpZW50c1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTQ4CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMTE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKktlcm5lbCBDb25maWd1cmF0aW9uIGFuZCB2YmxhbmsgU3luY2hyb25pemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBpcyB0aGUgY3J1Y2lhbCBjb25maWd1cmF0aW9uIG9wdGlvbiB3ZSBuZWVkIHRvIGJlIGxvb2tpbmcgYXQuIEkmIzM5O2xsIGdvIGFoZWFkIGFuZCBhZGQgYm90aCBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAgdG8gYEVuYWJsZUNvbmZpZ3NgLCB0aGF0IHNlZW1zIGxpa2UgdGhlIGNvcnJlY3QgYWN0aW9uIHRvIHRha2UuIE5vdywgbGV0JiMzOTtzIGZvY3VzIG9uIHRoZSBzeW1ib2xzIHJlbGF0ZWQgdG8gdmJsYW5rIHN5bmNocm9uaXphdGlvbjogYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gSSBzZWUgdGhhdCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBpcyBhIG5ldyBmdW5jdGlvbiwgaW50ZXJlc3RpbmcuIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3Mgbm90IHN0YXRpYyBpcyB3b3J0aCBub3RpbmcuIEp1c3QgdG8gYmUgc3VyZSwgSSBzaG91bGQgcmVhbGx5IGNoZWNrIGBkcm1fdmJsYW5rLmNgIHRvIHNlZSBob3cgdGhpcyBuZXcgZnVuY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBhbmQgaWYgdGhlcmUgYXJlIGFueSBzdWJ0bGUgaXNzdWVzIHRoYXQgSSBuZWVkIHRvIGJlIGF3YXJlIG9mLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM9MTI5OD1FWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMjk5LVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzAwOmludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzAxLXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jPTEzMzQ9aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMzUte1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzM2Olx0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExNjUKCQkJCQkJCW91dHB1dDogMTY3CgkJCQkJCQl0aG91Z2h0czogMzIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRGVjaXNpb24gZm9yIERSTSBJbnRlcm5hbCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBJJiMzOTttIHRoaW5raW5nLCB0aGlzIGlzbiYjMzk7dCBhIHN0YXRpYyBwaWVjZSBvZiBjb2RlLCB3aGljaCBtZWFucyBpdCBjYW4gYmUgdGFyZ2V0ZWQsIHJpZ2h0PyBXYWl0LCBob2xkIG9uLCBpcyB0aGlzIHNvbWV0aGluZyB0aGF0IGdldHMgZXhwb3J0ZWQ/IE5vcGUsIGl0JiMzOTtzIG5vdCBleHBvcnRlZC4gQWgsIGJ1dCBpdCYjMzk7cyBkZWZpbmVkIHdpdGhpbiBgZHJtX2ludGVybmFsLmhgLCBzbyBpdCYjMzk7cyBhY2Nlc3NpYmxlIHdpdGhpbiB0aGUgRFJNIHN1YnN5c3RlbSBpdHNlbGYuCgpOb3csIHRoZSBiaWcgcXVlc3Rpb246IElzIHRoaXMgd29ydGggZnV6emluZz8gWWVzLCB0aGlzIHNlZW1zIGxpa2UgYSBzb2xpZCBjYW5kaWRhdGUuIEl0IGFkZHJlc3NlcyBhIGZhbHNlIHBvc2l0aXZlIGBXQVJOYCwgd2hpY2ggaXMgYSBwcmV0dHkgc2VyaW91cyBpc3N1ZSBzaW5jZSBzeXprYWxsZXIgaXMgdHJlYXRpbmcgdGhhdCBhcyBhIGZ1bGwtYmxvd24gY3Jhc2guIFRoYXQmIzM5O3MgYSByZWQgZmxhZy4gRnV6emluZyB0aGlzIHdvdWxkIGNvbmZpcm0gdGhhdCB0aGUgJiMzOTtjcmFzaCYjMzk7IGlzIHNxdWFzaGVkIGFuZCB0aGF0IHdlIGNhbiBkZWx2ZSBkZWVwZXIgaW50byB0aGUgbW9kaWZpZWQgY29kZSBwYXRoLgoKSGFuZyBvbiBhIHNlYy4gSSYjMzk7bSBiZWluZyBwcm9tcHRlZCB0byBjaGVjayBmb3IgZGVjb3JhdGl2ZSBjaGFuZ2VzIG9ubHkuIFRoZSBwcm9tcHQgc2F5cywgc3BlY2lmaWNhbGx5OiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6IC0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuJiMzNDsgQnV0IEkmIzM5O3ZlIGFscmVhZHkgcmVhc29uZWQgdGhhdCB0aGlzIGlzIG1vcmUgdGhhbiBqdXN0IGxvZ2dpbmcuIGBXQVJOYCBpcyBhbiBhc3NlcnRpb24gdGhhdCYjMzk7cyB0cmlnZ2VyaW5nIGEgYnVnIG9yIGNyYXNoIGluIHRoZXNlIGZ1enppbmcgZW52aXJvbm1lbnRzLiBGaXhpbmcgYSBgV0FSTmAgbGlrZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4LiBUaGlzIGlzIG5vdCBwdXJlbHkgZGVjb3JhdGl2ZS4KCkFscmlnaHQsIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGNoYW5nZXMgcXVpY2tseS4gSXQmIzM5O3MganVzdCBleHRyYWN0aW5nIHRoYXQgaW50ZXJuYWwgZnVuY3Rpb24gYW5kIGNhbGxpbmcgaXQgZnJvbSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AuIE5vdGhpbmcgZWxzZS4gT2theSwgSSYjMzk7bSBjb25maWRlbnQuIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpOb3csIGxldCYjMzk7cyBsb29rIGF0IHRoZSBiZXN0IGZvY3VzIHN5bWJvbC4gSXMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgYSBnb29kIGZvY3VzPyBZZXMsIGl0IGlzIHRoZSBjb3JlIGZ1bmN0aW9uIHRoYXQgZ290IHRoZSBtb2RpZmljYXRpb24uIEFuZCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMgYWxzbyBnb29kIGJlY2F1c2UgaXQgaXMgdGhlIGNhbGxlciB0aGF0IHdhcyBtb2RpZmllZC4KCkxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEUk1fVktNUyYjMzQ7LAogICAgJiMzNDtEUk1fRkJERVZfRU1VTEFUSU9OJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBmYWxzZSBwb3NpdGl2ZSBXQVJOICh3aGljaCB0cmlnZ2VycyBhIGNyYXNoIGluIGZ1enppbmcgZW52aXJvbm1lbnRzIHdpdGggcGFuaWNfb25fd2FybikgYnkgZXh0cmFjdGluZyB0aGUgY29yZSBsb2dpYyBvZiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgaW50byBhbiBpbnRlcm5hbCBmdW5jdGlvbiB3aXRob3V0IHRoZSB3YXJuaW5nLCBhbmQgdXNpbmcgaXQgaW4gdGhlIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsgcGF0aC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgYnVnIGZpeCB0aGF0IGFsbG93cyBmdXp6ZXJzIHRvIGV4cGxvcmUgdGhpcyBjb2RlIHBhdGggd2l0aG91dCBjcmFzaGluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RFJNX1ZLTVMmIzM0OywKICAgICYjMzQ7RFJNX0ZCREVWX0VNVUxBVElPTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsmIzM0OywKICAgICYjMzQ7ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZmFsc2UgcG9zaXRpdmUgV0FSTiAod2hpY2ggdHJpZ2dlcnMgYSBjcmFzaCBpbiBmdXp6aW5nIGVudmlyb25tZW50cyB3aXRoIHBhbmljX29uX3dhcm4pIGJ5IGV4dHJhY3RpbmcgdGhlIGNvcmUgbG9naWMgb2YgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIGludG8gYW4gaW50ZXJuYWwgZnVuY3Rpb24gd2l0aG91dCB0aGUgd2FybmluZywgYW5kIHVzaW5nIGl0IGluIHRoZSBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rIHBhdGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGJ1ZyBmaXggdGhhdCBhbGxvd3MgZnV6emVycyB0byBleHBsb3JlIHRoaXMgY29kZSBwYXRoIHdpdGhvdXQgY3Jhc2hpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0NjoyOS41OTYwMzkyMDZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODAwMDQ2MDMyOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFJNX1ZLTVNcIixcbiAgICBcIkRSTV9GQkRFVl9FTVVMQVRJT05cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGZhbHNlIHBvc2l0aXZlIFdBUk4gKHdoaWNoIHRyaWdnZXJzIGEgY3Jhc2ggaW4gZnV6emluZyBlbnZpcm9ubWVudHMgd2l0aCBwYW5pY19vbl93YXJuKSBieSBleHRyYWN0aW5nIHRoZSBjb3JlIGxvZ2ljIG9mIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayBpbnRvIGFuIGludGVybmFsIGZ1bmN0aW9uIHdpdGhvdXQgdGhlIHdhcm5pbmcsIGFuZCB1c2luZyBpdCBpbiB0aGUgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayBwYXRoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4IHRoYXQgYWxsb3dzIGZ1enplcnMgdG8gZXhwbG9yZSB0aGlzIGNvZGUgcGF0aCB3aXRob3V0IGNyYXNoaW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0NjoyOS41OTYwNDQzNTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzMDgxNzAwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDYwYTkxZjIxZjFhYmVhNjI4NTA2NGUxNzUzZTBlN2E0ZmM2NzFiZjdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBBdWcgNiAxODo0NjoyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcXG5pbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xcbkBAIC0xMzI4LDcgKzEzMjgsNyBAQCBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaVxcbiBcXHQgKi9cXG4gXFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcXG4gXFx0aWYgKCFyZXQpIHtcXG4tXFx0XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xcbitcXHRcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7XFxuIFxcdFxcdGRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7XFxuIFxcdH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXFxuQEAgLTExNSw2ICsxMTUsNyBAQCB2b2lkIGRybV92YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xcbiB1NjQgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuK2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcXG4gXFxuIC8qIGRybV92Ymxhbmtfd29yay5jICovXFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fdmJsYW5rX2ZsdXNoX3dvcmtlcihzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmspXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXFxuaW5kZXggZjkwZmIyZDEzZTQyMy4uNzc1OGU4MjY1MTZlZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xcbkBAIC0xMjk3LDE3ICsxMjk3LDcgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcXG4gfVxcbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xcbiBcXG4tLyoqXFxuLSAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG4tICogQGNydGM6IERSTSBjcnRjXFxuLSAqXFxuLSAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cXG4tICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLlxcbi0gKiBkdWUgdG8gbGFjayBvZiBkcml2ZXIgc3VwcG9ydCBvciBiZWNhdXNlIHRoZSBjcnRjIGlzIG9mZi5cXG4tICpcXG4tICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy5cXG4tICovXFxuLWludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKVxcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcXG4ge1xcbiBcXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cXHUwMDNlZGV2O1xcbiBcXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xcbkBAIC0xMzI2LDEyICsxMzE2LDMwIEBAIGludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKVxcbiBcXHRcXHRcXHRcXHQgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksXFxuIFxcdFxcdFxcdFxcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcXG4gXFxuLVxcdGRybV9XQVJOKGRldiwgcmV0ID09IDAsIFxcXCJ2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcXFxuXFxcIiwgcGlwZSk7XFxuLVxcbiBcXHRkcm1fdmJsYW5rX3B1dChkZXYsIHBpcGUpO1xcbiBcXG4gXFx0cmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUO1xcbiB9XFxuK1xcbisvKipcXG4rICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFua1xcbisgKiBAY3J0YzogRFJNIGNydGNcXG4rICpcXG4rICogVGhpcyB3YWl0cyBmb3Igb25lIHZibGFuayB0byBwYXNzIG9uIEBjcnRjLCB1c2luZyB0aGUgaXJxIGRyaXZlciBpbnRlcmZhY2VzLlxcbisgKiBJdCBpcyBhIGZhaWx1cmUgdG8gY2FsbCB0aGlzIHdoZW4gdGhlIHZibGFuayBpcnEgZm9yIEBjcnRjIGlzIGRpc2FibGVkLCBlLmcuXFxuKyAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMgaXMgb2ZmLlxcbisgKlxcbisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxcbisgKi9cXG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXFxuK3tcXG4rXFx0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcXG4rXFxuK1xcdGRybV9XQVJOKGNydGMtXFx1MDAzZWRldiwgcmV0ID09IC1FVElNRURPVVQsIFxcXCJ2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcXFxuXFxcIixcXG4rXFx0XFx0IGRybV9jcnRjX2luZGV4KGNydGMpKTtcXG4rXFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y193YWl0X29uZV92YmxhbmspO1xcbiBcXG4gLyoqXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ2OjMwLjEyODAzODI5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTc5NDcyNTk1ODU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRSTV9WS01TXCIsXG4gICAgXCJEUk1fRkJERVZfRU1VTEFUSU9OXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiLFxuICAgIFwiZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmYWxzZSBwb3NpdGl2ZSBXQVJOICh3aGljaCB0cmlnZ2VycyBhIGNyYXNoIGluIGZ1enppbmcgZW52aXJvbm1lbnRzIHdpdGggcGFuaWNfb25fd2FybikgYnkgZXh0cmFjdGluZyB0aGUgY29yZSBsb2dpYyBvZiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgaW50byBhbiBpbnRlcm5hbCBmdW5jdGlvbiB3aXRob3V0IHRoZSB3YXJuaW5nLCBhbmQgdXNpbmcgaXQgaW4gdGhlIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsgcGF0aC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgYnVnIGZpeCB0aGF0IGFsbG93cyBmdXp6ZXJzIHRvIGV4cGxvcmUgdGhpcyBjb2RlIHBhdGggd2l0aG91dCBjcmFzaGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjBhOTFmMjFmMWFiZWE2Mjg1MDY0ZTE3NTNlMGU3YTRmYzY3MWJmN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTg6NDY6MjggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbmluZGV4IDAwODBhOGU5NTU2YTUuLjdmZjBmMjRhMGY1MDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuQEAgLTEzMjgsNyArMTMyOCw3IEBAIGludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpXG4gXHQgKi9cbiBcdHJldCA9IGRybV9jcnRjX3ZibGFua19nZXQoY3J0Yyk7XG4gXHRpZiAoIXJldCkge1xuLVx0XHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoY3J0Yyk7XG4rXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcdFx0ZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuQEAgLTExNSw2ICsxMTUsNyBAQCB2b2lkIGRybV92YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gaW50IGRybV92YmxhbmtfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbiB2b2lkIGRybV92YmxhbmtfcHV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbiB1NjQgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpO1xuIFxuIC8qIGRybV92Ymxhbmtfd29yay5jICovXG4gc3RhdGljIGlubGluZSB2b2lkIGRybV92YmxhbmtfZmx1c2hfd29ya2VyKHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuaylcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuaW5kZXggZjkwZmIyZDEzZTQyMy4uNzc1OGU4MjY1MTZlZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmNcbkBAIC0xMjk3LDE3ICsxMjk3LDcgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB9XG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfcHV0KTtcbiBcbi0vKipcbi0gKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4tICogQGNydGM6IERSTSBjcnRjXG4tICpcbi0gKiBUaGlzIHdhaXRzIGZvciBvbmUgdmJsYW5rIHRvIHBhc3Mgb24gQGNydGMsIHVzaW5nIHRoZSBpcnEgZHJpdmVyIGludGVyZmFjZXMuXG4tICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLlxuLSAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMgaXMgb2ZmLlxuLSAqXG4tICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy5cbi0gKi9cbi1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB7XG4gXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4gXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xuQEAgLTEzMjYsMTIgKzEzMTYsMzAgQEAgaW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4gXHRcdFx0XHQgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksXG4gXHRcdFx0XHQgbXNlY3NfdG9famlmZmllcygxMDAwKSk7XG4gXG4tXHRkcm1fV0FSTihkZXYsIHJldCA9PSAwLCBcInZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCIsIHBpcGUpO1xuLVxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbiBcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbiB9XG4rXG4rLyoqXG4rICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFua1xuKyAqIEBjcnRjOiBEUk0gY3J0Y1xuKyAqXG4rICogVGhpcyB3YWl0cyBmb3Igb25lIHZibGFuayB0byBwYXNzIG9uIEBjcnRjLCB1c2luZyB0aGUgaXJxIGRyaXZlciBpbnRlcmZhY2VzLlxuKyAqIEl0IGlzIGEgZmFpbHVyZSB0byBjYWxsIHRoaXMgd2hlbiB0aGUgdmJsYW5rIGlycSBmb3IgQGNydGMgaXMgZGlzYWJsZWQsIGUuZy5cbisgKiBkdWUgdG8gbGFjayBvZiBkcml2ZXIgc3VwcG9ydCBvciBiZWNhdXNlIHRoZSBjcnRjIGlzIG9mZi5cbisgKlxuKyAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3Igb24gZmFpbHVyZXMuXG4rICovXG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4re1xuK1x0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbitcbitcdGRybV9XQVJOKGNydGMtXHUwMDNlZGV2LCByZXQgPT0gLUVUSU1FRE9VVCwgXCJ2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcblwiLFxuK1x0XHQgZHJtX2NydGNfaW5kZXgoY3J0YykpO1xuK1xuK1x0cmV0dXJuIHJldDtcbit9XG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y193YWl0X29uZV92YmxhbmspO1xuIFxuIC8qKlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6MzAuMTI4MDQxMjhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTI2NTE4NTgwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFdvcnRoaW5lc3MqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgLCBgZHJtX2ludGVybmFsLmhgLCBhbmQgYGRybV92YmxhbmsuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSBhcm91bmQgaG93IHdlIGhhbmRsZSB2YmxhbmsgdGltZW91dHMsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGZ1bmN0aW9uLiBJbml0aWFsbHksIHRoZSBwYXRjaCByZW5hbWVzIHRoZSBvcmlnaW5hbCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCB0byBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBhbmQgcmVtb3ZlcyB0aGUgdGltZW91dCB3YXJuaW5nIChgZHJtX1dBUk5gKS4gIEEgKm5ldyogYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgaXMgdGhlbiBpbnRyb2R1Y2VkLCBlc3NlbnRpYWxseSBjYWxsaW5nIHRoZSBpbnRlcm5hbCB2ZXJzaW9uIGFuZCAqdGhlbiogZG9pbmcgdGhlIGBkcm1fV0FSTmAuICBJbiBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgLCB0aGV5J3ZlIHN3YXBwZWQgdGhlIGNhbGwgdG8gdXNlIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiaXMgdGhpcyB3b3J0aCBmdXp6aW5nP1wiIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgdGVjaG5pY2FsbHkgcmVtb3ZpbmcgYSB3YXJuaW5nIGluIG9uZSBzcGVjaWZpYyBjb2RlcGF0aC4gSXMgdGhhdCBhICpyZWFsKiBmdW5jdGlvbmFsIGNoYW5nZSBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZT8gSXQgc3VidGx5IGFsdGVycyBjb250cm9sIGZsb3cgYnkgc2tpcHBpbmcgdGhlIHdhcm5pbmcgdW5kZXIgY2VydGFpbiB0aW1lb3V0IGNvbmRpdGlvbnMuICBJJ20gZGVhbGluZyB3aXRoIHRoZSBEUk0gY29yZSwgc28gSSBuZWVkIHRvIGJlIG1vcmUgY2FyZWZ1bC5cblxuTGV0J3MgZGlnIGRlZXBlcjogdGhlIHByaW1hcnkgZWZmZWN0IGlzIHByZXZlbnRpbmcgdGhlIGBkcm1fV0FSTmAgZnJvbSBmaXJpbmcgZHVyaW5nIHRoZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgdGltZW91dC4gIFdoaWxlIGluaXRpYWxseSwgaXQgKnNlZW1zKiBsaWtlIGEgcHVyZWx5IGNvc21ldGljIGNoYW5nZSAocmVtb3ZpbmcgYSB3YXJuaW5nKSwgYnV0IGBkcm1fV0FSTmAgaXNuJ3QganVzdCBkZWNvcmF0aW9uLiBgZHJtX1dBUk5gIGV4cGFuZHMgdG8gYFdBUk5gLCB3aGljaCBjYW4gdHJpZ2dlciBhIGtlcm5lbCBwYW5pYyBpZiBgcGFuaWNfb25fd2FybmAgaXMgc2V0LCBhbmQgdGhhdCdzICp2ZXJ5KiByZWxldmFudCBmb3IgZnV6emluZyEgU28gcmVtb3ZpbmcgdGhhdCBgZHJtX1dBUk5gICpwcmV2ZW50cyogYSBwb3RlbnRpYWwgY3Jhc2ggb3IgcGFuaWMsIGVzcGVjaWFsbHkgZHVyaW5nIGZ1enppbmcgd2hlbiB3ZSdyZSBvZnRlbiB0ZXN0aW5nIHdpdGggdGhhdCBmbGFnIGVuYWJsZWQuIFRoaXMgbWFrZXMgaXQgYSBidWcgZml4IGZvciBhIFwiZmFsc2UgcG9zaXRpdmVcIiBvciBhbiBleHBlY3RlZCB0aW1lb3V0LiAgVGhpcyBpcyBhIHNpZ25pZmljYW50IGNoYW5nZSBiZWNhdXNlIGl0IGNhbiBwcmV2ZW50IGEgZnV6emluZyBjYW1wYWlnbiBmcm9tIGJlaW5nIHNob3J0IGNpcmN1aXRlZC5cblxuQ29uc2lkZXJpbmcgdGhlIHByb21wdCdzIGd1aWRlbGluZXMsIGlzIHRoaXMganVzdCBcImRlY29yYXRpdmVcIiBsb2dnaW5nPyBOby4gYFdBUk5gIGNhbiBiZSBmYXRhbC4gIFdoaWxlIHRoZSAqcHJpbWFyeSogZXhlY3V0aW9uIGZsb3cgaXNuJ3QgY2hhbmdlZCwgYXZvaWRpbmcgYSBjcmFzaCBpcyBhICpjcml0aWNhbCogZnVuY3Rpb25hbCBhbHRlcmF0aW9uIGluIHRoZSBjb250ZXh0IG9mIGZ1enppbmcuIFRoZSBwYXRjaCBlZmZlY3RpdmVseSBleHRyYWN0cyBhbmQgcmV1c2VzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLCBrZWVwaW5nIHRoZSBvcmlnaW5hbCBsb2dpYyB0aGUgc2FtZSBpbiB0ZXJtcyBvZiB3YWl0aW5nIGZvciBhIHZibGFuaywgYnV0IHNpbXBseSBhdm9pZGluZyB0aGUgYGRybV9XQVJOYCBpbnNpZGUgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGJ5IG9ubHkgcHJpbnRpbmcgdGhlIHdhcm5pbmcgYXQgb25lIHBvaW50IG9mIHRoZSBmdW5jdGlvbiBub3cuXG5cbk5vdywgbGV0J3MgbG9vayBhdCB0aGUgY29kZTpcbmBgYGNcbi1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB7XG4gXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4gXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xuQEAgLTEzMjYsMTIgKzEzMTYsMzAgQEAgaW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4gXHRcdFx0XHQgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksXG4gXHRcdFx0XHQgbXNlY3NfdG9famlmZmllcygxMDAwKSk7XG4gXG4tXHRkcm1fV0FSTihkZXYsIHJldCA9PSAwLCBcInZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCIsIHBpcGUpO1xuLVxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbiBcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbiB9XG4rXG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4re1xuK1x0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbitcbitcdGRybV9XQVJOKGNydGMtXHUwMDNlZGV2LCByZXQgPT0gLUVUSU1FRE9VVCwgXCJ2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcblwiLFxuK1x0XHQgZHJtX2NydGNfaW5kZXgoY3J0YykpO1xuK1xuK1x0cmV0dXJuIHJldDtcbit9XG4gYGBgXG5UaGUgcGF0Y2ggbm93IHJlbW92ZXMgdGhlIGBkcm1fV0FSTmAgZnJvbSB0aGUgdGltZW91dCBwYXRoIGluIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGZvciBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIG1vdmluZyBpdCB0byBhIGNhbGwgb2YgdGhlIGludGVybmFsIGZ1bmN0aW9uIGFuZCB0aGVuIHRyaWdnZXJpbmcgdGhlIHdhcm5pbmcgdGhlcmUuIEluIGVzc2VuY2UsIGl0ICpkb2VzKiBjaGFuZ2UgdGhlIHBvdGVudGlhbCBiZWhhdmlvciB1bmRlciBlcnJvciBjb25kaXRpb25zLiBJdCBkb2Vzbid0IGZpbmRcblxuIiwiSW5wdXRUb2tlbnMiOjMxMDUsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjkzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6NTUuMzkzMjMwMDg0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMDkwMzg4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9MTI5NT1FWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF9kcG1zKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjk4OiAqIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoKSAtIFdhaXQgZm9yIHRoZSBuZXh0IFZCTEFOSyB0byBvY2N1clxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk5LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzA4LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzA5OmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMzOC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTM0MC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6NTUuNTA0MTM3OTgxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgzMzI5NTk5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpczpcblxuKipJbnZlc3RpZ2F0aW5nIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBDYWxscyoqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBmdW5jdGlvbiwgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLCBpcyB1c2VkLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gdHJhY2UgaXRzIGNhbGwgbG9jYXRpb25zLiBJIHdhbnQgdG8gc2VlIHdoaWNoIG90aGVyIGZ1bmN0aW9ucyBhcmUgaW52b2tpbmcgaXQuIFRoaXMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaXRzIHJvbGUgd2l0aGluIHRoZSBkaXNwbGF5IGRyaXZlciBmcmFtZXdvcmsgYW5kIGhvdyBpdCBjb250cmlidXRlcyB0byB0aGUgb3ZlcmFsbCBtb2Rlc2V0dGluZyBwcm9jZXNzLiBCeSBpZGVudGlmeWluZyB0aGUgY2FsbGVycywgSSBjYW4gaW5mZXIgdGhlIGNvbnRleHQgaW4gd2hpY2ggaXQncyBiZWluZyB1c2VkIGFuZCwgdGhlcmVmb3JlLCBpdHMgc2lnbmlmaWNhbmNlIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uIEknbGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgdG9vbHMgZm9yIHRoaXMga2luZCBvZiBpbnZlc3RpZ2F0aW9uOyBJIGNhbiB1c2UgZ3JlcCwgY3Njb3BlLCBvciBldmVuIGEgbW9yZSBzb3BoaXN0aWNhdGVkIElERS1pbnRlZ3JhdGVkIHNlYXJjaCB0byBmaW5kIHRoZSBpbnN0YW5jZXMgd2hlcmUgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGlzIGNhbGxlZC4gVGhlIGdvYWwgaXMgdG8gYnVpbGQgYSBtZW50YWwgbW9kZWwgb2YgaXRzIGV4ZWN1dGlvbiBwYXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Nzk0LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6NTkuMzM3NDM3NjE3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTQ0Mzg4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jPTEyOTU9RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfZHBtcyk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5Ny0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI5ODogKiBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKCkgLSBXYWl0IGZvciB0aGUgbmV4dCBWQkxBTksgdG8gb2NjdXJcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5OS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMwOC0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMwOTppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMTAte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzgtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzM5OkVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzNDAtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTMxNT1zdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cXHRpZiAoY3J0Y19pbmRleCBcXHUwMDNlPSAwKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI3OlxcdFxcdGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXFx1MDAyNmhlbHBlci1cXHUwMDNlY2xpZW50LCBjcnRjX2luZGV4KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyOC1cXHRtdXRleF91bmxvY2soXFx1MDAyNmhlbHBlci1cXHUwMDNlbG9jayk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTk4ND1pbnQgZHJtX2ZiX2hlbHBlcl9pb2N0bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5zaWduZWQgaW50IGNtZCxcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAwOS1cXHRcXHQgKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTA6XFx0XFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2VjbGllbnQsIDApO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAxMS1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6NTkuNzc2ODg4MjM0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY2NTk1OTQ2MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBhIERSTSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgRFJNIHBhdGNoIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBpdCdzIHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgZnVuY3Rpb24gaGVyZSBpcyBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIGNhbGxlZCBmcm9tIGBkcm1fZmJfaGVscGVyX2ZiX2RpcnR5YCBhbmQgdGhlIEZCSU9fV0FJVEZPUlZTWU5DIGlvY3RsLCBzbyBpdCdzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmJkZXYuIFRoZSBwYXRjaCBjaGFuZ2VzIGhvdyBhIHZibGFuayB3YWl0IGlzIGhhbmRsZWQgaW50ZXJuYWxseS5cblxuVGhlIGNoYW5nZSBjZW50ZXJzIGFyb3VuZCByZW1vdmluZyBhIGBkcm1fV0FSTmAgY2FsbC4gSW5pdGlhbGx5LCBteSB0aG91Z2h0IHdhcywgXCJJcyBhIGBkcm1fV0FSTmAgYSBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2UsIGxpa2UgbG9nZ2luZz9cIiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIFwiV29ydGhGdXp6aW5nPWZhbHNlXCIgaWYgaXQncyAqb25seSogZGVjb3JhdGl2ZSBjaGFuZ2VzLCBsb2dnaW5nLCBvciB0cmFjZXBvaW50cy4gYGRybV9XQVJOYCBwcmludHMgYSB3YXJuaW5nIGFuZCBhIHN0YWNrIHRyYWNlLiBJdCdzIGVzc2VudGlhbGx5IGEgYFdBUk5gLiBBbmQgeWVzLCBieSBpdHNlbGYsIHJlbW92aW5nIHRoZSBXQVJOIGRvZXNuJ3QgY2hhbmdlIGV4ZWN1dGlvbiAqZmxvdyogdGhhdCBtdWNoLiBJdCBkb2VzIGF2b2lkIGEgd2FybmluZy4gV2FybmluZ3MgYXJlIGNvbnNpZGVyZWQgYnVncyBieSBmdXp6ZXJzIGxpa2UgU3l6a2FsbGVyIHdoaWNoIGNhbiB0cmVhdCBXQVJOcyBhcyBjcmFzaGVzIGlmIGBwYW5pY19vbl93YXJuYCBpcyBzZXQuXG5cbkkgdGhvdWdodCBhYm91dCBpdC4gSWYgaXQgKm9ubHkqIHJlbW92ZXMgYSB3YXJuaW5nLCBpdCdzIHRlY2huaWNhbGx5IGEgYnVnIGZpeCBmcm9tIHRoZSBmdXp6ZXIncyBwZXJzcGVjdGl2ZSBzaW5jZSBpdCdzIGZpeGluZyBhIHBvdGVudGlhbCBjcmFzaCB0aGF0J3MgdHJpcHBpbmcgdGhlIHdhcm5pbmcsIHNvIHRoZSBwYXRjaCBpcyBmdW5jdGlvbmFsLlxuXG5CdXQgdGhlbiBJIHdlbnQgYmFjayBhbmQgcmUtcmVhZCB0aGUgY29kZS4gVGhlIHBhdGNoIHJlcGxhY2VkIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIHdpdGggYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlbSBpcyB0aGF0IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGlzIG5vdCBjYWxsaW5nIGBkcm1fV0FSTmAuIFRoaXMgbWVhbnMgdGhhdCB0aGUgcGF0Y2ggKm9ubHkqIHJlbW92ZXMgdGhpcyB3YXJuaW5nLiBUaGUgcmV0dXJuIHZhbHVlcyBhcmUgdGhlIHNhbWU7IHRoZSBmdW5jdGlvbmFsIG91dGNvbWUgZG9lc24ndCBjaGFuZ2UuXG5cbkkgd3Jlc3RsZWQgd2l0aCB0aGUgcHJvbXB0J3Mgd29yZGluZy4gSXQgZG9lc24ndCAqZXhwbGljaXRseSogbWVudGlvbiBgV0FSTmAgb3IgYEJVR2AsIGJ1dCB0aGUgcHJvbXB0IGdpdmVzIG1lIHRoZSBmb2xsb3dpbmcgZGlyZWN0aW9uOiBcImRldGVybWluZSBpZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIgVGhlIHByb21wdCBpcyBhc2tpbmcgbWUgYWJvdXQgKmZ1bmN0aW9uYWwgY2hhbmdlcyogc3BlY2lmaWNhbGx5LiBJdCBtZW50aW9ucyAqbG9nZ2luZyosIGFuZCBgZHJtX1dBUk5gIGRvZXMgbG9nIGEgbWVzc2FnZSwgYnV0IGl0J3MgYWxzbyBtb3JlIHRoYW4gdGhhdDogaXQncyBhbiBhc3NlcnRpb24gdGhhdCBhIGNvbmRpdGlvbiBtaWdodCBiZSB1bmV4cGVjdGVkLiBJdCBjYW4gdHJpZ2dlciBhIHBhbmljLiBJIGhhZCBhIHRob3VnaHQgdG8gZnV6eiB0aGUgbmV3IGNvZGUgZm9yIHJlZ3Jlc3Npb24sIHRvIHNlZSBpZiBhbnl0aGluZyBpcyBicm9rZW4sIGJlY2F1c2UgSSBkb24ndCB3YW50IHRvIGFsbG93IHNvbWV0aGluZyB0byBzaWxlbnRseSBmYWlsLlxuXG5TbywgaWYgSSBzdHJpY3RseSBhZGhlcmUgdG8gXCJsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHNcIiwgSSAqY291bGQqIGFyZ3VlIGl0J3MgYSBkZWNvcmF0aXZlIGNoYW5nZSBhbmQgc2F5IFdvcnRoRnV6emluZz1mYWxzZS4gSG93ZXZlciwgSSBjb25zaWRlciB0aGF0IGEgYFdBUk5gIGlzIGFuIGFzc2VydGlvbiBvZiBhIGNvZGUgY29uZGl0aW9uIHRoYXQgKnNob3VsZCBub3QqIGJlIGhpdC4gUmVtb3ZpbmcgYSBXQVJOIHJlbW92ZXMgdGhlIGFzc2VydGlvbiwgYW5kIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGZ1enppbmcgKHNwZWNpZmljYWxseSBTeXprYWxsZXIpIGEgYFdBUk5gIHJlbW92YWwgaXMgYSBidWcgZml4IChwb3RlbnRpYWxseSBwcmV2ZW50aW5nIGEgY3Jhc2gpLiBJdCAqc2hvdWxkKiBiZSBmdXp6ZWQsIGFzIGEgYnVnIGZpeCAqYWx3YXlzKiB3YXJyYW50cyBmdXp6aW5nIHRvIGVuc3VyZSBjb3JyZWN0bmVzcywgYW5kIHRvIHRlc3QgZm9yIG5ldyBidWdzLlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSAod2FybmluZyksIEknbSBnb2luZyB0byBsZWFuIHRvd2FyZHMgY29uc2lkZXJpbmcgdGhpcyBhICpmdW5jdGlvbmFsKiBjaGFuZ2UgdGhhdCB3YXJyYW50cyBmdXp6aW5nLiBUaGUgcGF0Y2ggKnNob3VsZCogYmUgZnV6emVkLiBBbmQgdGhpcyBkZXBlbmRzIG9uIHRoZSBjb25maWcgb3B0aW9uczogYENPTkZJR19EUk1gIGFuZCBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NjcyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI1NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0NzoxNi40MzY0ODUyMzNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk3NDIyNzYxLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDc6MTYuNzMzOTE2Mzg0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY1MzY0NDQwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgRFJNX0ZCREVWX0VNVUxBVElPTiBQYXRoKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbi4gVGhlIG1lbnRpb24gb2YgYERSTV9GQkRFVl9FTVVMQVRJT05gIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4gSXQgc3VnZ2VzdHMgd2UncmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBhIHNjZW5hcmlvIHdoZXJlIHdlJ3JlIGVtdWxhdGluZyBhIGZyYW1lYnVmZmVyIGRldmljZSB3aXRoaW4gdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoRFJNKSBmcmFtZXdvcmsuIE15IGltbWVkaWF0ZSB0aG91Z2h0cyBnbyBpbiBhIGZldyBkaXJlY3Rpb25zLCBwcm9iYWJseSBkZXBlbmRpbmcgb24gY29udGV4dC5cblxuRmlyc3QsIEknbSB0cnlpbmcgdG8gcmVjYWxsIHdoZXJlIEkndmUgZW5jb3VudGVyZWQgdGhhdCBmbGFnLiBJcyB0aGlzIGtlcm5lbC1sZXZlbCBlbXVsYXRpb24sIHBlcmhhcHMgZm9yIGxlZ2FjeSBhcHBsaWNhdGlvbnMgb3IgaGFyZHdhcmUgc3VwcG9ydD8gT3IgY291bGQgaXQgYmUgcmVsYXRlZCB0byB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcgb2YgRFJNIGRyaXZlcnM/IEl0IG1pZ2h0IGJlIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgbmF0aXZlIGZyYW1lYnVmZmVyIGRldmljZSBpc24ndCBhdmFpbGFibGUsIG9yIHdoZXJlIHdlIHdhbnQgYSBjb250cm9sbGVkIGVudmlyb25tZW50IHRvIHJlcHJvZHVjZSBhIHNwZWNpZmljIGlzc3VlLlxuXG5NeSBtaW5kIGlzIGFsc28gY2hlY2tpbmcgZm9yIGFueSBwb3RlbnRpYWwgcGVyZm9ybWFuY2Ugb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zIHdpdGggYW4gZW11bGF0aW9uIGxheWVyIGxpa2UgdGhpcy4gSSdkIG5lZWQgdG8gY29uc2lkZXIgdGhlIG92ZXJoZWFkLCBhcyB3ZWxsIGFzIHRoZSBwb3RlbnRpYWwgZm9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IsIGRlcGVuZGluZyBvbiBob3cgdGhpcyBlbXVsYXRpb24gaXMgYXJjaGl0ZWN0ZWQgYW5kIGlmIGl0J3MgcmVseWluZyBvbiBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgZmVhdHVyZXMuIElzIHRoaXMgdXNpbmcgYSBzb2Z0d2FyZSBmYWxsYmFjaywgb3IgbGV2ZXJhZ2luZyBtb3JlIGFkdmFuY2VkIHRlY2huaXF1ZXMgbGlrZSBoYXJkd2FyZS1hY2NlbGVyYXRlZCBlbXVsYXRpb24/XG5cbkZpbmFsbHksIGlmIHRoaXMgaXMgYSBrbm93biBmZWF0dXJlLCBJIG5lZWQgdG8gZ2V0IHNvbWUgbW9yZSBjb250ZXh0LiBXaGVyZSBhbSBJIHNlZWluZyB0aGlzIGlkZW50aWZpZXI/IElzIGl0IGluIGEgY29uZmlndXJhdGlvbiBmaWxlLCBrZXJuZWwgY29kZSwgb3IgYSB1c2VyLXNwYWNlIHV0aWxpdHk/IEtub3dpbmcgdGhlIGNvbnRleHQgd2lsbCBoZWxwIG1lIHF1aWNrbHkgemVybyBpbiBvbiB0aGUgcHVycG9zZSBhbmQgc2NvcGUgb2YgdGhpcyBlbXVsYXRpb24uIEJhc2ljYWxseSwgSSBuZWVkIGEgcm9hZG1hcCBmb3IgdHJhY2luZyBpdHMgdXNhZ2UgYW5kIHVuZGVyc3RhbmRpbmcgaXRzIHJvbGUgaW4gdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODczNiwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ3OjIxLjM4NzU2MzM2NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIxMDMzMjIyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFxcXCJTdXBwb3J0ZWQgRFJNIGNsaWVudHNcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzE6Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkVuYWJsZSBsZWdhY3kgZmJkZXYgc3VwcG9ydCBmb3IgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ3OjIzLjU5NzkwMTE1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDE2NTAwMTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgZGVwZW5kZW5jaWVzIG9mIGBkcm1fY2xpZW50X21vZGVzZXQuY2A6XG5cbioqRGVlcCBEaXZlOiBVbmRlcnN0YW5kaW5nIHRoZSBEZXBlbmRlbmNpZXMgb2YgYGRybV9jbGllbnRfbW9kZXNldC5jYCoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBpbnRvIHRoZSBuaXR0eS1ncml0dHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgb2YgYGRybV9jbGllbnRfbW9kZXNldC5jYC4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHRyYWNpbmcgdGhyb3VnaCBpdHMgaW5jbHVkZSBzdGF0ZW1lbnRzIGFuZCByZWZlcmVuY2VzIHdpdGhpbiB0aGUga2VybmVsIHRyZWUuIFRoaXMgZmlsZSBpcyBjcml0aWNhbCBmb3IgaGFuZGxpbmcgdGhlIGNsaWVudC1zaWRlIGFzcGVjdHMgb2YgbW9kZXNldHRpbmcgaW4gYSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgY29udGV4dC4gVGhlcmVmb3JlLCBteSBndWVzcyBpcyB0aGF0IGl0IHRvdWNoZXMgb24gc2V2ZXJhbCBmdW5kYW1lbnRhbCBEUk0gY29uY2VwdHMsIGxpa2VseSBpbmNsdWRpbmcgdGhpbmdzIGxpa2UgY29ubmVjdG9ycywgZW5jb2RlcnMsIHBsYW5lcywgQ1JUQ3MsIGFuZCBvZiBjb3Vyc2UsIHRoZSB1bmRlcmx5aW5nIEtNUyAoS2VybmVsIE1vZGUtU2V0dGluZykgaW5mcmFzdHJ1Y3R1cmUuXG5cbkknZCBleHBlY3QgdG8gc2VlIGRlcGVuZGVuY2llcyBvbiB0aGUgY29yZSBEUk0gaGVhZGVycywgbmF0dXJhbGx5LCBwZXJoYXBzIGBkcm1fY29yZS5oYCwgYGRybV9mYi5oYCwgYW5kIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIGRvIHdpdGggdGhlIGZyYW1lIGJ1ZmZlciBpbmZyYXN0cnVjdHVyZS4gSXQgKmhhcyogdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZ2VuZXJpYyBLTVMgaW50ZXJmYWNlczsgdGhlIHdob2xlIHBvaW50IG9mIGNsaWVudC1zaWRlIG1vZGVzZXR0aW5nIGlzIHRvIGFic3RyYWN0IGF3YXkgc29tZSBvZiB0aGUgY29tcGxleGl0aWVzLiBJIGJldCBpdCBhbHNvIGludGVyYWN0cyB3aXRoIHRoZSBzcGVjaWZpYyBkcml2ZXIgQVBJcywgcGFydGljdWxhcmx5IHRob3NlIHJlbGF0ZWQgdG8gdGhlIGdyYXBoaWNzIGhhcmR3YXJlIG9uIHRoZSBjbGllbnQgc2lkZSwgaWYgdGhlcmUgaXMgYSBjbGllbnQtc3BlY2lmaWMgZHJpdmVyIG9yIGlmIGl0cyByZWx5aW5nIG9uIHRoZSBiYXNpYyBkcml2ZXJzLlxuXG5JJ2xsIGJlIGxvb2tpbmcgZm9yIGNyb3NzLXJlZmVyZW5jZXMgdG8gdW5kZXJzdGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGxvd2VyIGxheWVycyBhbmQgaG93IGl0IGlzIGxpbmtlZCwgc3RhdGljYWxseSBvciBkeW5hbWljYWxseS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGl0IHBsdWdzIGludG8gdGhlIG92ZXJhbGwgbW9kZXNldHRpbmcgcHJvY2Vzcy4gSXMgaXQgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIHVzZXItc3BhY2UgcmVxdWVzdHM/IERvZXMgaXQgaW50ZXJmYWNlIHdpdGggdGhlIGRpc3BsYXkgc2VydmVyPyBEb2VzIGl0IGRpcmVjdGx5IG1hbmlwdWxhdGUgaGFyZHdhcmUgcmVnaXN0ZXJzICh1bmxpa2VseSwgYnV0IEkgc2hvdWxkIGxvb2spPyBJJ20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gaG93IGl0IGhhbmRsZXMgdGhlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIGNsaWVudCBhbmQgc2VydmVyLCBzaW5jZSB0aGF0J3MgYSBjcml0aWNhbCBhcmVhIGZvciBwZXJmb3JtYW5jZSBhbmQgYXZvaWRpbmcgdGVhcmluZy4gVGhlIHdob2xlIHBvaW50IGlzIHNlYW1sZXNzIGRpc3BsYXkgdHJhbnNpdGlvbnMuXG5cblRoaXMgYW5hbHlzaXMgaXMgZ29pbmcgdG8gbGVhZCBtZSB0byBhIGRlZXBlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBEUk0gYXJjaGl0ZWN0dXJlLCBhbmQgaG93IGl0IHNlcnZlcyB0aGUgbmVlZHMgb2YgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucywgYXMgd2VsbCBhcyB0aGUgdW5kZXJseWluZyBoYXJkd2FyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6OTIxMiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjA5LjAxNDQwNDY1OFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk0NzQ3NzkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9jbGllbnRfbW9kZXNldFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlPTc2PWRybS0kKENPTkZJR19EUk1fQ0xJRU5UKSArPSBcXFxcXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtNzgtXFx0ZHJtX2NsaWVudF9ldmVudC5vIFxcXFxcXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6Nzk6XFx0ZHJtX2NsaWVudF9tb2Rlc2V0Lm8gXFxcXFxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS04MC1cXHRkcm1fY2xpZW50X3N5c3JxLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDg6MDkuMzA5MTU2NzM5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MjQxODc3NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqTmF2aWdhdGluZyB0aGUgRGVwZW5kZW5jeSBXZWIgZm9yIERSTSBDbGllbnQgRnVuY3Rpb25hbGl0eSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4uLiBJJ20gbG9va2luZyBhdCB0aGlzIG1vZHVsZSwgYW5kIGl0J3MgY2xlYXI6IHdlICphYnNvbHV0ZWx5KiBuZWVkIGBDT05GSUdfRFJNX0NMSUVOVGAgZGVmaW5lZC4gVGhlcmUncyBubyB3YXkgYXJvdW5kIGl0LiBJdCdzIGEgZnVuZGFtZW50YWwgcmVxdWlyZW1lbnQuIEknbSBwcm9iYWJseSBkZWFsaW5nIHdpdGggZWl0aGVyIGEgbmV3IGRldmljZSBkcml2ZXIgb3IgYSBmZWF0dXJlIHRoYXQgaW50ZXJmYWNlcyB3aXRoIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgaW4gc29tZSB3YXksIGFuZCBgQ09ORklHX0RSTV9DTElFTlRgIGFjdHMgYXMgdGhlIGdhdGVrZWVwZXIgZm9yIGVuYWJsaW5nIHRoYXQgY2xpZW50LXNpZGUgZnVuY3Rpb25hbGl0eSB3aXRoaW4gdGhlIGtlcm5lbC4gSXQncyBhbG1vc3QgY2VydGFpbmx5IHJlbGF0ZWQgdG8gbWFuYWdpbmcgdGhlIGRpc3BsYXkgaGFyZHdhcmUsIGZyYW1lYnVmZmVycywgb3IgcG9zc2libHkgc29tZSBmb3JtIG9mIGFjY2VsZXJhdGVkIGdyYXBoaWNzIG91dHB1dC4gV2l0aG91dCBpdCwgdGhlIGJ1aWxkIHdpbGwgZWl0aGVyIGZhaWwgbWlzZXJhYmx5IG9yIHRoZSBmdW5jdGlvbmFsaXR5IHdpbGwgYmUgc2lsZW50bHkgY3JpcHBsZWQsIGxlYWRpbmcgdG8gc29tZSB2ZXJ5IGZydXN0cmF0aW5nIGRlYnVnZ2luZyBzZXNzaW9ucy4gSSdsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMgdG8gdmVyaWZ5IGFueSBhc3N1bXB0aW9ucywgYnV0IHRoaXMgaXMgdGhlIGZpcnN0IHRoaW5nIHRvIG1ha2Ugc3VyZSBpcyBzZXQgcHJvcGVybHkuIEl04oCZcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGVuc3VyaW5nIGEgZnVuY3Rpb25hbCBzdWJzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3ODIsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODoxMy4yMzMzNTU1MjRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc1NDY3MzE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fQ0xJRU5UXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9LY29uZmlnPTE1OD1jb25maWcgRFJNX0RFQlVHX01PREVTRVRfTE9DS1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMTcyLVxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjE3Mzpjb25maWcgRFJNX0NMSUVOVFxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTE3NC1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjEzLjMwODgyNjg0MloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTU1MTM1NzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTmF2aWdhdGluZyB0aGUgVW5zZWVuIExhbmRzY2FwZSBvZiBDb25maWd1cmF0aW9uKipcblxuQWgsIHRoaXMgb25lJ3MgaW50cmlndWluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MganVtcHMgcmlnaHQgdG8gdGhlIGNvcmU6IHRoaXMgY29uZmlndXJhdGlvbiwgd2hhdGV2ZXIgaXQgcGVydGFpbnMgdG8sIGlzbid0IGRpcmVjdGx5IGV4cG9zZWQuIEl0J3MgKmhpZGRlbiouIFRoYXQncyB0aGUga2V5IHN0YXJ0aW5nIHBvaW50LiBJdCdzIG5vdCBzb21ldGhpbmcgeW91J2QgZmluZCBieSBzaW1wbHkgYnJvd3NpbmcgYSBkaXJlY3Rvcnkgb3IgbG9va2luZyBhdCBhIHN0YW5kYXJkIHNldHRpbmdzIGZpbGUuIFRoaXMgaW1wbGllcyBhIGxldmVsIG9mIGluZGlyZWN0aW9uLCBhIGRlbGliZXJhdGUgY29uY2VhbG1lbnQsIG9yIGF0IGxlYXN0IGEgbGVzcy10aGFuLW9idmlvdXMgZGVmYXVsdCBsb2NhdGlvbi5cblxuTXkgbWluZCBpbW1lZGlhdGVseSBzdGFydHMgdGlja2luZyB0aHJvdWdoIHRoZSB1c3VhbCBzdXNwZWN0czogZW52aXJvbm1lbnQgdmFyaWFibGVzLCBjb21tYW5kLWxpbmUgYXJndW1lbnRzLCBwZXJoYXBzIGEgZGF0YWJhc2UgZW50cnkgYWNjZXNzZWQgdGhyb3VnaCBhIHNwZWNpZmljIEFQSSBjYWxsLiBDb3VsZCBpdCBiZSBhIGR5bmFtaWNhbGx5IGxvYWRlZCBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHJ1bnRpbWUgY29uZGl0aW9ucywgb3IgYSBmZWF0dXJlIGZsYWcgYmVoaW5kIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldHVwPyBUaGUgZmFjdCB0aGF0IGl0J3MgaGlkZGVuIHN1Z2dlc3RzIGEgbmVlZCBmb3IgYSBzcGVjaWZpYyB0cmlnZ2VyLCBhIGNvbmRpdGlvbiBtZXQsIG9yIGEgbWVjaGFuaXNtIGVtcGxveWVkIHRvIGJyaW5nIGl0IGludG8gcGxheS4gVGhlIGNydWNpYWwgZGV0YWlsIGlzICpzb21ldGhpbmcqIHNlbGVjdHMgaXQuIFRoYXQncyB0aGUgcmVhbCBwcm9ibGVtIHRvIGJlIHNvbHZlZC4gV2UgbmVlZCB0byBpZGVudGlmeSB0aGF0IHNlbGVjdG9yLCB0aGF0IHRyaWdnZXIsIHRoZSBhbnRlY2VkZW50IHRoYXQgcHVsbHMgdGhpcyBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb24gb3V0IG9mIHRoZSBzaGFkb3dzLiBUaGF0J3Mgd2hlcmUgdGhlIHJlYWwgY29tcGxleGl0eSBsaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDE1MywiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjE5Ljg2Mzk2NjQwN1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjY2MDY5ODEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBEUk1fQ0xJRU5UXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MDYgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnPTE3Mz1jb25maWcgRFJNX0NMSUVOVFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMTc5LVxcdCAgb3B0aW9uLiBEcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGUgZGVmYXVsdCBjbGllbnRzIHNob3VsZFxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjE4MDpcXHQgIHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTiBpbnN0ZWFkLlxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTE4MS1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L0tjb25maWc9Mz1jb25maWcgRFJNX0FNREdQVVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZy02LVxcdHNlbGVjdCBGV19MT0FERVJcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9LY29uZmlnOjc6XFx0c2VsZWN0IERSTV9DTElFTlRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZy05LVxcdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZz01PWNvbmZpZyBEUk1fSERMQ0RcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZy04LVxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZzo5OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZy0xMC1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZz0yOD1jb25maWcgRFJNX01BTElfRElTUExBWVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybS9LY29uZmlnLTMxLVxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZzozMjpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWctMzMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkvS2NvbmZpZz0yPWNvbmZpZyBEUk1fS09NRURBXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkvS2NvbmZpZy01LVxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L0tjb25maWctNy1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvS2NvbmZpZz0yPWNvbmZpZyBEUk1fQVJNQURBXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBIQVZFX0NMSyBcXHUwMDI2XFx1MDAyNiBBUk0gXFx1MDAyNlxcdTAwMjYgTU1VXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWc9Mj1jb25maWcgRFJNX0FTUEVFRF9HRlhcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hc3BlZWQvS2NvbmZpZy02LVxcdGRlcGVuZHMgb24gTU1VXFxuZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9LY29uZmlnOjc6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9LY29uZmlnLTgtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXN0L0tjb25maWc9Mj1jb25maWcgRFJNX0FTVFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvS2NvbmZpZz0yPWNvbmZpZyBEUk1fQVRNRUxfSExDRENcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgT0YgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMSyBcXHUwMDI2XFx1MDAyNiAoKE1GRF9BVE1FTF9ITENEQyBcXHUwMDI2XFx1MDAyNiBBUk0pIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0xMj1jb25maWcgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTQtXFx0ZGVwZW5kcyBvbiBEUk1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjE1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX0xJQiBpZiBEUk1fQ0xJRU5UX0xPR1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MTY6XFx0c2VsZWN0IERSTV9DTElFTlRfTElCIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTE3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9MjE9Y29uZmlnIERSTV9DTElFTlRfU0VUVVBcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMjUtXFx0ICBFbmFibGVzIHRoZSBEUk0gY2xpZW50IHNlbGVjdGlvbi4gRFJNIGRyaXZlcnMgdGhhdCBzdXBwb3J0IHRoZVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MjY6XFx0ICBkZWZhdWx0IGNsaWVudHMgc2hvdWxkIHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTiBpbnN0ZWFkLlxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMjctXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnPTMxPWNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMzLVxcdGRlcGVuZHMgb24gRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjM0OlxcdHNlbGVjdCBEUk1fQ0xJRU5UXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzozNTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzYtXFx0c2VsZWN0IEZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaWYgRlJBTUVCVUZGRVJfQ09OU09MRVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz03ND1jb25maWcgRFJNX0NMSUVOVF9MT0dcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNzYtXFx0ZGVwZW5kcyBvbiBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6Nzc6XFx0c2VsZWN0IERSTV9DTElFTlRcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc4OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFVFVQXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy03OS1cXHRzZWxlY3QgRFJNX0RSQVdcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZz0yPWNvbmZpZyBEUk1fRVhZTk9TXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL0tjb25maWctNi1cXHRkZXBlbmRzIG9uIE1NVVxcbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZzo3OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fRElTUExBWV9IRUxQRVIgaWYgRFJNX0VYWU5PU19EUFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvS2NvbmZpZz0yPWNvbmZpZyBEUk1fRlNMX0RDVVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvS2NvbmZpZy01LVxcdHNlbGVjdCBCQUNLTElHSFRfQ0xBU1NfREVWSUNFXFxuZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvS2NvbmZpZzo2OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L0tjb25maWctNy1cXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL0tjb25maWc9Mj1jb25maWcgRFJNX0dNQTUwMFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IFg4NiBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZ3VkL0tjb25maWc9Mz1jb25maWcgRFJNX0dVRFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2d1ZC9LY29uZmlnLTYtXFx0c2VsZWN0IExaNF9DT01QUkVTU1xcbmRyaXZlcnMvZ3B1L2RybS9ndWQvS2NvbmZpZzo3OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9ndWQvS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnPTI9Y29uZmlnIERSTV9ISVNJX0hJQk1DXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWc6NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWctNi1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL0tjb25maWc9Mj1jb25maWcgRFJNX0hJU0lfS0lSSU5cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4vS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IE9GIFxcdTAwMjZcXHUwMDI2IChBUk02NCB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaHlwZXJ2L0tjb25maWc9Mj1jb25maWcgRFJNX0hZUEVSVlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2h5cGVydi9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IEhZUEVSVl9WTUJVU1xcbmRyaXZlcnMvZ3B1L2RybS9oeXBlcnYvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9oeXBlcnYvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fSTkxNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy0xMi1cXHRzZWxlY3QgVE1QRlNcXG5kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnOjEzOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWctMTQtXFx0c2VsZWN0IERSTV9ESVNQTEFZX0RQX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2lteC9kYy9LY29uZmlnPTE9Y29uZmlnIERSTV9JTVg4X0RDXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaW14L2RjL0tjb25maWctMy1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBDT01NT05fQ0xLIFxcdTAwMjZcXHUwMDI2IE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX01YQyB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9ncHUvZHJtL2lteC9kYy9LY29uZmlnOjQ6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2lteC9kYy9LY29uZmlnLTUtXFx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2lteC9kY3NzL0tjb25maWc9MT1jb25maWcgRFJNX0lNWF9EQ1NTXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaW14L2Rjc3MvS2NvbmZpZy0zLVxcdHNlbGVjdCBJTVhfSVJRU1RFRVJcXG5kcml2ZXJzL2dwdS9kcm0vaW14L2Rjc3MvS2NvbmZpZzo0OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9pbXgvZGNzcy9LY29uZmlnLTUtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzL0tjb25maWc9Mj1jb25maWcgRFJNX0lNWFxcbmRyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJEUk0gU3VwcG9ydCBmb3IgRnJlZXNjYWxlIGkuTVhcXFwiXFxuZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9LY29uZmlnOjQ6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9LY29uZmlnLTUtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaW14L2xjZGMvS2NvbmZpZz0xPWNvbmZpZyBEUk1fSU1YX0xDRENcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9pbXgvbGNkYy9LY29uZmlnLTMtICAgICAgZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgKEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL2dwdS9kcm0vaW14L2xjZGMvS2NvbmZpZzo0OiAgICAgIHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9pbXgvbGNkYy9LY29uZmlnLTUtICAgICAgc2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZz0xPWNvbmZpZyBEUk1fSU5HRU5JQ1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fQlJJREdFXFxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZzo5OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL0tjb25maWctMTAtXFx0c2VsZWN0IERSTV9QQU5FTF9CUklER0VcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZz0xPWNvbmZpZyBEUk1fS01CX0RJU1BMQVlcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gQVJDSF9LRUVNQkFZIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZz0xPWNvbmZpZyBEUk1fTE9HSUNWQ1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gT0YgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9sb2dpY3ZjL0tjb25maWctNi1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9LY29uZmlnPTM9Y29uZmlnIERSTV9MT09OR1NPTlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL0tjb25maWctNi1cXHRkZXBlbmRzIG9uIExPT05HQVJDSCB8fCBNSVBTIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9LY29uZmlnOjc6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL0tjb25maWctOC1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWc9MT1jb25maWcgRFJNX01DREVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWctOC1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWc6OTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vbWNkZS9LY29uZmlnLTEwLVxcdHNlbGVjdCBEUk1fTUlQSV9EU0lcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9LY29uZmlnPTI9Y29uZmlnIERSTV9NRURJQVRFS1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWctOS1cXHRkZXBlbmRzIG9uIE1US19NTVNZU1xcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9LY29uZmlnOjEwOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9LY29uZmlnLTExLVxcdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tZXNvbi9LY29uZmlnPTI9Y29uZmlnIERSTV9NRVNPTlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21lc29uL0tjb25maWctNS1cXHRkZXBlbmRzIG9uIEFSQ0hfTUVTT04gfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9ncHUvZHJtL21lc29uL0tjb25maWc6NjpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vbWVzb24vS2NvbmZpZy03LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZz0yPWNvbmZpZyBEUk1fTUdBRzIwMFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL0tjb25maWc6NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWc9NjE9Y29uZmlnIERSTV9NU01fS01TXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWctNjUtXFx0c2VsZWN0IERSTV9CUklER0VfQ09OTkVDVE9SXFxuZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnOjY2OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9tc20vS2NvbmZpZy02Ny1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZz03PWNvbmZpZyBEUk1fTVhTRkJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnLTExLVxcdGRlcGVuZHMgb24gQVJDSF9NWFMgfHwgQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWc6MTI6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWctMTMtXFx0c2VsZWN0IERSTV9NWFNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnPTI1PWNvbmZpZyBEUk1fSU1YX0xDRElGXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZy0yOS1cXHRkZXBlbmRzIG9uIEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnOjMwOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnLTMxLVxcdHNlbGVjdCBEUk1fTVhTXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnPTI9Y29uZmlnIERSTV9OT1VWRUFVXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnLTctXFx0c2VsZWN0IEZXX0NBQ0hFIGlmIFBNX1NMRUVQXFxuZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvS2NvbmZpZzo4OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfRFBfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnPTI9Y29uZmlnIERSTV9PTUFQXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnLTYtXFx0ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUyB8fCAoQ09NUElMRV9URVNUIFxcdTAwMjZcXHUwMDI2IFBBR0VfU0laRV9MRVNTX1RIQU5fNjRLQilcXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnOjc6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3BsMTExL0tjb25maWc9Mj1jb25maWcgRFJNX1BMMTExXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vcGwxMTEvS2NvbmZpZy03LVxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3BsMTExL0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUVhMXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vcXhsL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9LY29uZmlnPTM9Y29uZmlnIERSTV9SQURFT05cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yYWRlb24vS2NvbmZpZy03LVxcdHNlbGVjdCBGV19MT0FERVJcXG5kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL0tjb25maWc6ODpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfRFBfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yY2FyLWR1L0tjb25maWc9Mj1jb25maWcgRFJNX1JDQVJfRFVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvS2NvbmZpZy02LVxcdGRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvS2NvbmZpZzo3OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcnotZHUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUlpHMkxfRFVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3J6LWR1L0tjb25maWctNi1cXHRkZXBlbmRzIG9uIFZJREVPX1JFTkVTQVNfVlNQMVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3J6LWR1L0tjb25maWc6NzpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yei1kdS9LY29uZmlnLTgtXFx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvc2htb2JpbGUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fU0hNT0JJTEVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3NobW9iaWxlL0tjb25maWctNi1cXHRzZWxlY3QgQkFDS0xJR0hUX0NMQVNTX0RFVklDRVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3NobW9iaWxlL0tjb25maWc6NzpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9LY29uZmlnLTgtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUk9DS0NISVBcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnLTctXFx0ZGVwZW5kcyBvbiBPRlxcbmRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZz0xPWNvbmZpZyBEUk1fU1Q3NTcxXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZy0zLVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IE1NVVxcbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnOjQ6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNS1cXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnPTQyPWNvbmZpZyBEUk1fU1Q3NTg2XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZy00NC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBTUElcXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZzo0NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZy00Ni1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnPTU1PWNvbmZpZyBEUk1fU1Q3NzM1Ulxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNTctXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgU1BJXFxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWc6NTg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNTktXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc29sb21vbi9LY29uZmlnPTE9Y29uZmlnIERSTV9TU0QxMzBYXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc29sb21vbi9LY29uZmlnLTQtXFx0c2VsZWN0IEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0VcXG5kcml2ZXJzL2dwdS9kcm0vc29sb21vbi9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3NvbG9tb24vS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fR0VNX1NITUVNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnPTI9Y29uZmlnIERSTV9TVElcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zdGkvS2NvbmZpZy01LVxcdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXFxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnLTctXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3RtL0tjb25maWc9Mj1jb25maWcgRFJNX1NUTVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnLTUtXFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXFxuZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnLTctXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3VuNGkvS2NvbmZpZz0yPWNvbmZpZyBEUk1fU1VONElcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zdW40aS9LY29uZmlnLTUtXFx0ZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9zdW40aS9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N1bjRpL0tjb25maWctNy1cXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz0xMD1jb25maWcgRFJNX0NPUkVCT09URFJNXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy0xNC1cXHRzZWxlY3QgQVBFUlRVUkVfSEVMUEVSU1xcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnOjE1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTE2LVxcdHNlbGVjdCBEUk1fR0VNX1NITUVNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc9MjY9Y29uZmlnIERSTV9FRklEUk1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTI5LVxcdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6MzA6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctMzEtXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz00Mj1jb25maWcgRFJNX09GRFJNXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy00NS1cXHRzZWxlY3QgQVBFUlRVUkVfSEVMUEVSU1xcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnOjQ2OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTQ3LVxcdHNlbGVjdCBEUk1fR0VNX1NITUVNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc9NTc9Y29uZmlnIERSTV9TSU1QTEVEUk1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTYwLVxcdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6NjE6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctNjItXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz03Nj1jb25maWcgRFJNX1ZFU0FEUk1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTc5LVxcdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6ODA6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctODEtXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVEVHUkFcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9LY29uZmlnLTctXFx0ZGVwZW5kcyBvbiBPRlxcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfRFBfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZz0xPWNvbmZpZyBEUk1fVElEU1NcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aWRzcy9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBBUk0gfHwgQVJNNjQgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9ncHUvZHJtL3RpZHNzL0tjb25maWc6NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy9LY29uZmlnPTI9Y29uZmlnIERSTV9USUxDRENcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IE9GIFxcdTAwMjZcXHUwMDI2IEFSTVxcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0xNj1jb25maWcgRFJNX0FSQ1BHVVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xOC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBPRlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTk6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0yMC1cXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTI3PWNvbmZpZyBEUk1fQk9DSFNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMjktXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IE1NVVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MzA6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0zMS1cXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9Mzk9Y29uZmlnIERSTV9DSVJSVVNfUUVNVVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy00MS1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjQyOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNDMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTU5PWNvbmZpZyBEUk1fR00xMlUzMjBcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNjEtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgVVNCIFxcdTAwMjZcXHUwMDI2IE1NVVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6NjI6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy02My1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9Njk9Y29uZmlnIERSTV9QQU5FTF9NSVBJX0RCSVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy03MS1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBTUElcXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjcyOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNzMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTg1PWNvbmZpZyBEUk1fUElYUEFQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctODgtICAgICAgICBkZXBlbmRzIG9uIE1NVVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6ODk6ICAgICAgICBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTkwLSAgICAgICAgc2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTEwMT1jb25maWcgVElOWURSTV9IWDgzNTdEXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTEwMy1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBTUElcXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjEwNDpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTEwNS1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTE1PWNvbmZpZyBUSU5ZRFJNX0lMSTkxNjNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTE4LVxcdHNlbGVjdCBCQUNLTElHSFRfQ0xBU1NfREVWSUNFXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxMTk6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMjAtXFx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0xMjk9Y29uZmlnIFRJTllEUk1fSUxJOTIyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMzEtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgU1BJXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxMzI6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMzMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE0Mj1jb25maWcgVElOWURSTV9JTEk5MzQxXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE0NC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBTUElcXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjE0NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE0Ni1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTU2PWNvbmZpZyBUSU5ZRFJNX0lMSTk0ODZcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTU4LVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IFNQSVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTU5OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTYwLVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0xNzE9Y29uZmlnIFRJTllEUk1fTUkwMjgzUVRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTczLVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IFNQSVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTc0OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTc1LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0xODM9Y29uZmlnIFRJTllEUk1fUkVQQVBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xODUtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgU1BJXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxODY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xODctXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE5OD1jb25maWcgVElOWURSTV9TSEFSUF9NRU1PUllcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMjAwLVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IFNQSVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MjAxOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMjAyLVxcdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVFZFMjAwXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL0tjb25maWctOC1cXHRzZWxlY3QgRFJNX0JSSURHRVxcbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZzo5OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZy0xMC1cXHRzZWxlY3QgRFJNX1BBTkVMX0JSSURHRVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnPTI9Y29uZmlnIERSTV9VRExcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS91ZGwvS2NvbmZpZy03LVxcdGRlcGVuZHMgb24gTU1VXFxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnLTktXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL0tjb25maWc9Mj1jb25maWcgRFJNX1ZCT1hWSURFT1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgWDg2IFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3ZjNC9LY29uZmlnPTI9Y29uZmlnIERSTV9WQzRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS92YzQvS2NvbmZpZy0xMS1cXHRkZXBlbmRzIG9uIFBNXFxuZHJpdmVycy9ncHUvZHJtL3ZjNC9LY29uZmlnOjEyOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS92YzQvS2NvbmZpZy0xMy1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfSERNSV9BVURJT19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnPTI9Y29uZmlnIERSTV9WRVJJU0lMSUNPTl9EQ1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL0tjb25maWctNi1cXHRzZWxlY3QgRFJNX0JSSURHRV9DT05ORUNUT1JcXG5kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vS2NvbmZpZzo3OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnLTgtXFx0c2VsZWN0IERSTV9ESVNQTEFZX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnPTI9Y29uZmlnIERSTV9WSVJUSU9fR1BVXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdmlydGlvL0tjb25maWctNS1cXHRzZWxlY3QgVklSVElPXFxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnLTctXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnPTM9Y29uZmlnIERSTV9WS01TXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTUtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgTU1VXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzo2OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWctNy1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS92bXdnZngvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVk1XR0ZYXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L0tjb25maWctNS1cXHRkZXBlbmRzIG9uIChYODYgXFx1MDAyNlxcdTAwMjYgSFlQRVJWSVNPUl9HVUVTVCkgfHwgQVJNNjRcXG5kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L0tjb25maWc6NjpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L0tjb25maWctNy1cXHRzZWxlY3QgRFJNX1RUTVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3hlL0tjb25maWc9Mj1jb25maWcgRFJNX1hFXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0veGUvS2NvbmZpZy0xNC1cXHRzZWxlY3QgRFJNX0JVRERZXFxuZHJpdmVycy9ncHUvZHJtL3hlL0tjb25maWc6MTU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3hlL0tjb25maWctMTYtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjIwLjUzMDA0NDk3OFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzMwNzM3ODEzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqRnV6emluZyBUYXJnZXQgQXNzZXNzbWVudDogRFJNX1ZLTVMqKlxuXG5SaWdodCwgYERSTV9WS01TYCBsb29rcyBsaWtlIGEgc29saWQgY2FuZGlkYXRlIGZvciBzb21lIGZ1enppbmcuIEl0J3MgZ290IHRoZSByaWdodCBwcm9maWxlLCBlbm91Z2ggY29tcGxleGl0eSB0byBleHBvc2UgaW50ZXJlc3RpbmcgYnVncywgYW5kIGl0J3Mgd2l0aGluIHRoZSByaWdodCBzY29wZS4gTm93LCBiZWZvcmUgSSBkaXZlIGluIGhlYWRmaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcy4gR290dGEgZmlndXJlIG91dCB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3Iga2VybmVsIG1vZHVsZXMgYERSTV9WS01TYCBpbnRlcmFjdHMgd2l0aC4gVGhhdCBkZXBlbmRlbmN5IGFuYWx5c2lzIGlzIGNydWNpYWwuIE5vIHBvaW50IGluIHNwZW5kaW5nIGRheXMgZnV6emluZyBpdCBpbiBpc29sYXRpb24gaWYgaXQncyBpbnRyaWNhdGVseSBsaW5rZWQgdG8gc29tZSBvdGhlciBzdWJzeXN0ZW0gdGhhdCdzIHRoZSByZWFsIHdlYWsgcG9pbnQuIFVuZGVyc3RhbmRpbmcgdGhlIGF0dGFjayBzdXJmYWNlIGlzIHBhcmFtb3VudC4gTGV0J3Mgc2VlIHdoYXQgd2UgYXJlIGRlYWxpbmcgd2l0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg5ODEsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODozMy44Mzc0MjY4NDVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwMjYwMjI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fVktNU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWctMi1cXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnOjM6Y29uZmlnIERSTV9WS01TXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy00LVxcdHRyaXN0YXRlIFxcXCJWaXJ0dWFsIEtNUyAoRVhQRVJJTUVOVEFMKVxcXCJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWctMTgtXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzoxOTpjb25maWcgRFJNX1ZLTVNfS1VOSVRfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWctMjAtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBWS01TXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjMzLjkwNzY5NTk1M1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjgwNTY3MjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgc3RyZWFtIG9mIGNvbnNjaW91c25lc3M6XG5cbioqQWRkaW5nIHRoZSBQaWVjZXMgZm9yIEZyYW1lYnVmZmVyIEVtdWxhdGlvbioqXG5cbkFscmlnaHQsIEknbSBnb2luZyB0byBpbnRlZ3JhdGUgYERSTV9WS01TYCBpbnRvIHRoZSBgRW5hYmxlQ29uZmlnc2AuIFRoYXQncyB0aGUgZmlyc3Qgc3RlcC4gIE5vdywgSSBhbHNvIHJlY2FsbCB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBpcyBjcml0aWNhbDsgdGhhdCdzIHRoZSB0cmlnZ2VyIHRoYXQgYWN0dWFsbHkgZ2V0cyBgZHJtX2ZiX2hlbHBlcl9pb2N0bGAgaW52b2tlZC4gIEhvbGQgb24gYSBzZWNvbmQuLi5JIG5lZWQgdG8gbWFrZSBzdXJlIEknbSB0aGlua2luZyB0aGlzIHRocm91Z2ggY29ycmVjdGx5LiBJJ20gcHJldHR5IGNlcnRhaW4gdGhhdCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMsIGluIGZhY3QsIGNhbGxlZCBmcm9tIGBkcm1fZmJfaGVscGVyLmNgLiBPa2F5LCBub3cgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uLCB0aGF0IEkgbmVlZCB0byBhbnN3ZXIuIElzIGBkcm1fZmJfaGVscGVyLmNgIGNvbXBpbGVkIHdpdGggdGhlIG5lY2Vzc2FyeSBgRFJNX0ZCREVWX0VNVUxBVElPTmAgb3B0aW9uPyBJdCBoYXMgdG8gYmUsIG9yIHRoaW5ncyBhcmUgZ29pbmcgdG8gYmUgYnJva2VuLiBJIG5lZWQgdG8gZ28gYW5kIGNvbmZpcm0gdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkzNjQsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODozOC41ODgyNjc5NjVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzNzQzOTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9mYl9oZWxwZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZT0xNTk9ZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgKz0gYnJpZGdlL3BhbmVsLm9cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6MTYwOmRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9IGRybV9mYl9oZWxwZXIub1xcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS0xNjEtb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSArPSBkcm1fa21zX2hlbHBlci5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjM4LjY1MjAxODc2M1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NjQyNDMzODI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBkZWVwIGluIHRoZSB3ZWVkcyBvZiBrZXJuZWwgZGV2ZWxvcG1lbnQgYW5kIHNwZWNpZmljYWxseSB3b3JraW5nIHdpdGggRFJNOlxuXG4qKkV4YW1pbmluZyB0aGUgRFJNIERyaXZlciBJbnRlcmRlcGVuZGVuY2llcyoqXG5cblllcywgdGhhdCdzIHJpZ2h0LiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgZXNzZW50aWFsIGZvciB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbi4gTm93LCBsZXQncyBqdXN0IHF1aWNrbHkgdmVyaWZ5IHRoYXQgYERSTV9WS01TYCAtIHRoZSB2aXJ0dWFsIEtNUyBkcml2ZXIgLSBpbmRlZWQgaGFuZGxlcyB0aGlzIGRlcGVuZGVuY3kuIEkgbmVlZCB0byBtYWtlIHN1cmUgYERSTV9WS01TYCBjb3JyZWN0bHkgc2VsZWN0cywgb3IgZGVwZW5kcyBvbiwgYERSTV9GQkRFVl9FTVVMQVRJT05gIHRvIGZ1bmN0aW9uIHByb3Blcmx5LiBHb3R0YSBjaGVjayB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk4MjIsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODo0NS4yOTQ0NTQ4NjdaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkxMzc4NjU3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgRFJNX0ZCREVWX0VNVUxBVElPTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODo0NS4zODU4NDI5MDRaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTc3NzU3Nzk3MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTmF2aWdhdGluZyB0aGUgRFJNIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKipcblxuT2theSwgc28gdGhlIGluaXRpYWwgYXNzdW1wdGlvbiB3YXMgaW5jb3JyZWN0IOKAkyBpdCdzIGNsZWFyIHRoYXQgdGhlIGN1cnJlbnQgc2V0dXAgaXNuJ3Qgc3VmZmljaWVudC4gTXkgaW5zdGluY3QgaXMgdG8gYWRkIGBEUk1fRkJERVZfRU1VTEFUSU9OYCB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgLCBidXQgd2FpdCwgaXNuJ3QgdGhhdCBhIGJvb2xlYW4gY29uZmlnPyBSaWdodCwgaXQgaXMuIEdvdHRhIGJlIGNhcmVmdWwgd2l0aCB0aG9zZS5cblxuTGV0J3MgcXVpY2tseSBzY2FuIHRoZSByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHRvIHNlZSB3aGF0J3MgY29ubmVjdGVkLiBBaCwgYERSTV9DTElFTlRfU0VMRUNUSU9OYCBpcyBzZWxlY3RlZCBieSBgRFJNX1ZLTVNgLiBUaGF0IHNlZW1zIHJlbGV2YW50LiBBbmQgYERSTV9DTElFTlRfU0VMRUNUSU9OYCB0aGVuIHNlbGVjdHMgYERSTV9DTElFTlRfTElCYCAqaWYqIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBpcyBhbHNvIGVuYWJsZWQuXG5cbkhtbSwgYERSTV9DTElFTlRfTElCYOKApiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGludGVyYWN0aW9ucyBvZiB0aGVzZSBjbGllbnQgZHJpdmVycy4gQmVzdCBnbyBiYWNrIHRvIHRoZSBzb3VyY2U7IEkgc2hvdWxkIHJldmlzaXQgdGhlIGBkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnYCBmaWxlIGFuZCByZXZpZXcgdGhlIGRlcGVuZGVuY2llcyBhbmQgaW1wbGljYXRpb25zIG9mIGVhY2ggb2YgdGhlc2Ugb3B0aW9ucyBpbiBtb3JlIGRldGFpbC4gVGhhdCdzIHdoZXJlIHRoZSByZWFsIGFuc3dlciBsaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA0OCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0OTowMy4xNjE2MjY0NjhaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1OTAzMDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFxcXCJTdXBwb3J0ZWQgRFJNIGNsaWVudHNcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzE6Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkVuYWJsZSBsZWdhY3kgZmJkZXYgc3VwcG9ydCBmb3IgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ5OjAzLjIxNzUzNDQyNloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDA1MTQ1MjI3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipLZXJuZWwgQ29uZmlndXJhdGlvbiBhbmQgdmJsYW5rIFN5bmNocm9uaXphdGlvbioqXG5cbk9rYXksIHNvIEkndmUgY29uZmlybWVkIHRoYXQgYERSTV9GQkRFVl9FTVVMQVRJT05gIGlzIHRoZSBjcnVjaWFsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlIG5lZWQgdG8gYmUgbG9va2luZyBhdC4gSSdsbCBnbyBhaGVhZCBhbmQgYWRkIGJvdGggYERSTV9WS01TYCBhbmQgYERSTV9GQkRFVl9FTVVMQVRJT05gIHRvIGBFbmFibGVDb25maWdzYCwgdGhhdCBzZWVtcyBsaWtlIHRoZSBjb3JyZWN0IGFjdGlvbiB0byB0YWtlLiBOb3csIGxldCdzIGZvY3VzIG9uIHRoZSBzeW1ib2xzIHJlbGF0ZWQgdG8gdmJsYW5rIHN5bmNocm9uaXphdGlvbjogYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gSSBzZWUgdGhhdCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBpcyBhIG5ldyBmdW5jdGlvbiwgaW50ZXJlc3RpbmcuIFRoZSBmYWN0IHRoYXQgaXQncyBub3Qgc3RhdGljIGlzIHdvcnRoIG5vdGluZy4gSnVzdCB0byBiZSBzdXJlLCBJIHNob3VsZCByZWFsbHkgY2hlY2sgYGRybV92YmxhbmsuY2AgdG8gc2VlIGhvdyB0aGlzIG5ldyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGFuZCBpZiB0aGVyZSBhcmUgYW55IHN1YnRsZSBpc3N1ZXMgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNTQ4LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ5OjE3LjI2ODk5MDM4MloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzAzNDkzMzExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM9MTI5OD1FWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTI5OS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jOjEzMDA6aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzAxLXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM9MTMzND1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMzUte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM6MTMzNjpcXHRpbnQgcmV0ID0gZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDk6MTcuNTcyNDkyNDAzWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExOTAyMTQxOTE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRGVjaXNpb24gZm9yIERSTSBJbnRlcm5hbCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaW1tZWRpYXRlbHkgSSdtIHRoaW5raW5nLCB0aGlzIGlzbid0IGEgc3RhdGljIHBpZWNlIG9mIGNvZGUsIHdoaWNoIG1lYW5zIGl0IGNhbiBiZSB0YXJnZXRlZCwgcmlnaHQ/IFdhaXQsIGhvbGQgb24sIGlzIHRoaXMgc29tZXRoaW5nIHRoYXQgZ2V0cyBleHBvcnRlZD8gTm9wZSwgaXQncyBub3QgZXhwb3J0ZWQuIEFoLCBidXQgaXQncyBkZWZpbmVkIHdpdGhpbiBgZHJtX2ludGVybmFsLmhgLCBzbyBpdCdzIGFjY2Vzc2libGUgd2l0aGluIHRoZSBEUk0gc3Vic3lzdGVtIGl0c2VsZi5cblxuTm93LCB0aGUgYmlnIHF1ZXN0aW9uOiBJcyB0aGlzIHdvcnRoIGZ1enppbmc/IFllcywgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgY2FuZGlkYXRlLiBJdCBhZGRyZXNzZXMgYSBmYWxzZSBwb3NpdGl2ZSBgV0FSTmAsIHdoaWNoIGlzIGEgcHJldHR5IHNlcmlvdXMgaXNzdWUgc2luY2Ugc3l6a2FsbGVyIGlzIHRyZWF0aW5nIHRoYXQgYXMgYSBmdWxsLWJsb3duIGNyYXNoLiBUaGF0J3MgYSByZWQgZmxhZy4gRnV6emluZyB0aGlzIHdvdWxkIGNvbmZpcm0gdGhhdCB0aGUgJ2NyYXNoJyBpcyBzcXVhc2hlZCBhbmQgdGhhdCB3ZSBjYW4gZGVsdmUgZGVlcGVyIGludG8gdGhlIG1vZGlmaWVkIGNvZGUgcGF0aC5cblxuSGFuZyBvbiBhIHNlYy4gSSdtIGJlaW5nIHByb21wdGVkIHRvIGNoZWNrIGZvciBkZWNvcmF0aXZlIGNoYW5nZXMgb25seS4gVGhlIHByb21wdCBzYXlzLCBzcGVjaWZpY2FsbHk6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cIiBCdXQgSSd2ZSBhbHJlYWR5IHJlYXNvbmVkIHRoYXQgdGhpcyBpcyBtb3JlIHRoYW4ganVzdCBsb2dnaW5nLiBgV0FSTmAgaXMgYW4gYXNzZXJ0aW9uIHRoYXQncyB0cmlnZ2VyaW5nIGEgYnVnIG9yIGNyYXNoIGluIHRoZXNlIGZ1enppbmcgZW52aXJvbm1lbnRzLiBGaXhpbmcgYSBgV0FSTmAgbGlrZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4LiBUaGlzIGlzIG5vdCBwdXJlbHkgZGVjb3JhdGl2ZS5cblxuQWxyaWdodCwgbGV0J3MgZG91YmxlLWNoZWNrIHRoZSBjaGFuZ2VzIHF1aWNrbHkuIEl0J3MganVzdCBleHRyYWN0aW5nIHRoYXQgaW50ZXJuYWwgZnVuY3Rpb24gYW5kIGNhbGxpbmcgaXQgZnJvbSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AuIE5vdGhpbmcgZWxzZS4gT2theSwgSSdtIGNvbmZpZGVudC4gSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5Ob3csIGxldCdzIGxvb2sgYXQgdGhlIGJlc3QgZm9jdXMgc3ltYm9sLiBJcyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBhIGdvb2QgZm9jdXM/IFllcywgaXQgaXMgdGhlIGNvcmUgZnVuY3Rpb24gdGhhdCBnb3QgdGhlIG1vZGlmaWNhdGlvbi4gQW5kIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBhbHNvIGdvb2QgYmVjYXVzZSBpdCBpcyB0aGUgY2FsbGVyIHRoYXQgd2FzIG1vZGlmaWVkLlxuXG5MZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTY1LCJPdXRwdXRUb2tlbnMiOjE2NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0OToyOS40NzQ2Mzc1MTJaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjU5OTI0MTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRSTV9WS01TXCIsXG4gICAgXCJEUk1fRkJERVZfRU1VTEFUSU9OXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiLFxuICAgIFwiZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmYWxzZSBwb3NpdGl2ZSBXQVJOICh3aGljaCB0cmlnZ2VycyBhIGNyYXNoIGluIGZ1enppbmcgZW52aXJvbm1lbnRzIHdpdGggcGFuaWNfb25fd2FybikgYnkgZXh0cmFjdGluZyB0aGUgY29yZSBsb2dpYyBvZiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgaW50byBhbiBpbnRlcm5hbCBmdW5jdGlvbiB3aXRob3V0IHRoZSB3YXJuaW5nLCBhbmQgdXNpbmcgaXQgaW4gdGhlIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsgcGF0aC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgYnVnIGZpeCB0aGF0IGFsbG93cyBmdXp6ZXJzIHRvIGV4cGxvcmUgdGhpcyBjb2RlIHBhdGggd2l0aG91dCBjcmFzaGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEUk1fVktNU1wiLFxuICAgIFwiRFJNX0ZCREVWX0VNVUxBVElPTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtcIixcbiAgICBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgZmFsc2UgcG9zaXRpdmUgV0FSTiAod2hpY2ggdHJpZ2dlcnMgYSBjcmFzaCBpbiBmdXp6aW5nIGVudmlyb25tZW50cyB3aXRoIHBhbmljX29uX3dhcm4pIGJ5IGV4dHJhY3RpbmcgdGhlIGNvcmUgbG9naWMgb2YgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIGludG8gYW4gaW50ZXJuYWwgZnVuY3Rpb24gd2l0aG91dCB0aGUgd2FybmluZywgYW5kIHVzaW5nIGl0IGluIHRoZSBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rIHBhdGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGJ1ZyBmaXggdGhhdCBhbGxvd3MgZnV6emVycyB0byBleHBsb3JlIHRoaXMgY29kZSBwYXRoIHdpdGhvdXQgY3Jhc2hpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowhgmx5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 18:44:10 +0000 UTC FinishedAt: 2026-08-06 18:49:30 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DRM_VKMS", "DRM_FBDEV_EMULATION" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DRM_VKMS", "DRM_FBDEV_EMULATION" ], "series_id": "305a5439-c48d-4175-aca9-5f196e8d3ca9" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "drm_client_modeset_wait_for_vblank", "drm_crtc_wait_one_vblank_internal" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGZhbHNlIHBvc2l0aXZlIFdBUk4gKHdoaWNoIHRyaWdnZXJzIGEgY3Jhc2ggaW4gZnV6emluZyBlbnZpcm9ubWVudHMgd2l0aCBwYW5pY19vbl93YXJuKSBieSBleHRyYWN0aW5nIHRoZSBjb3JlIGxvZ2ljIG9mIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayBpbnRvIGFuIGludGVybmFsIGZ1bmN0aW9uIHdpdGhvdXQgdGhlIHdhcm5pbmcsIGFuZCB1c2luZyBpdCBpbiB0aGUgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayBwYXRoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4IHRoYXQgYWxsb3dzIGZ1enplcnMgdG8gZXhwbG9yZSB0aGlzIGNvZGUgcGF0aCB3aXRob3V0IGNyYXNoaW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNjBhOTFmMjFmMWFiZWE2Mjg1MDY0ZTE3NTNlMGU3YTRmYzY3MWJmN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTg6NDY6MjggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG5pbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbkBAIC0xMzI4LDcgJiM0MzsxMzI4LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIHVuc2lnbmVkIGlcbiBcdCAqL1xuIFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcbiBcdGlmICghcmV0KSB7XG4tXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhjcnRjKTtcbiYjNDM7XHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcdFx0ZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuQEAgLTExNSw2ICYjNDM7MTE1LDcgQEAgdm9pZCBkcm1fdmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gdm9pZCBkcm1fdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gdTY0IGRybV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xuJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7XG4gXG4gLyogZHJtX3ZibGFua193b3JrLmMgKi9cbiBzdGF0aWMgaW5saW5lIHZvaWQgZHJtX3ZibGFua19mbHVzaF93b3JrZXIoc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXG5pbmRleCBmOTBmYjJkMTNlNDIzLi43NzU4ZTgyNjUxNmVmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuQEAgLTEyOTcsMTcgJiM0MzsxMjk3LDcgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB9XG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfcHV0KTtcbiBcbi0vKipcbi0gKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4tICogQGNydGM6IERSTSBjcnRjXG4tICpcbi0gKiBUaGlzIHdhaXRzIGZvciBvbmUgdmJsYW5rIHRvIHBhc3Mgb24gQGNydGMsIHVzaW5nIHRoZSBpcnEgZHJpdmVyIGludGVyZmFjZXMuXG4tICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLlxuLSAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMgaXMgb2ZmLlxuLSAqXG4tICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy5cbi0gKi9cbi1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4ge1xuIFx0c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtXHUwMDNlZGV2O1xuIFx0aW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTtcbkBAIC0xMzI2LDEyICYjNDM7MTMxNiwzMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiBcdFx0XHRcdCBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSxcbiBcdFx0XHRcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcbiBcbi1cdGRybV9XQVJOKGRldiwgcmV0ID09IDAsIFwmIzM0O3ZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCYjMzQ7LCBwaXBlKTtcbi1cbiBcdGRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7XG4gXG4gXHRyZXR1cm4gcmV0ID8gMCA6IC1FVElNRURPVVQ7XG4gfVxuJiM0MztcbiYjNDM7LyoqXG4mIzQzOyAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcbiYjNDM7ICogQGNydGM6IERSTSBjcnRjXG4mIzQzOyAqXG4mIzQzOyAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cbiYjNDM7ICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLlxuJiM0MzsgKiBkdWUgdG8gbGFjayBvZiBkcml2ZXIgc3VwcG9ydCBvciBiZWNhdXNlIHRoZSBjcnRjIGlzIG9mZi5cbiYjNDM7ICpcbiYjNDM7ICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy5cbiYjNDM7ICovXG4mIzQzO2ludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuJiM0Mzt7XG4mIzQzO1x0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiYjNDM7XG4mIzQzO1x0ZHJtX1dBUk4oY3J0Yy1cdTAwM2VkZXYsIHJldCA9PSAtRVRJTUVET1VULCBcJiMzNDt2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcblwmIzM0OyxcbiYjNDM7XHRcdCBkcm1fY3J0Y19pbmRleChjcnRjKSk7XG4mIzQzO1xuJiM0MztcdHJldHVybiByZXQ7XG4mIzQzO31cbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7XG4gXG4gLyoqXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDY8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RSTV9WS01TJiMzNDssCiAgICAmIzM0O0RSTV9GQkRFVl9FTVVMQVRJT04mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgICAmIzM0O2RybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGZhbHNlIHBvc2l0aXZlIFdBUk4gKHdoaWNoIHRyaWdnZXJzIGEgY3Jhc2ggaW4gZnV6emluZyBlbnZpcm9ubWVudHMgd2l0aCBwYW5pY19vbl93YXJuKSBieSBleHRyYWN0aW5nIHRoZSBjb3JlIGxvZ2ljIG9mIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayBpbnRvIGFuIGludGVybmFsIGZ1bmN0aW9uIHdpdGhvdXQgdGhlIHdhcm5pbmcsIGFuZCB1c2luZyBpdCBpbiB0aGUgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayBwYXRoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4IHRoYXQgYWxsb3dzIGZ1enplcnMgdG8gZXhwbG9yZSB0aGlzIGNvZGUgcGF0aCB3aXRob3V0IGNyYXNoaW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNjBhOTFmMjFmMWFiZWE2Mjg1MDY0ZTE3NTNlMGU3YTRmYzY3MWJmNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMTg6NDY6MjggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMKaW5kZXggMDA4MGE4ZTk1NTZhNS4uN2ZmMGYyNGEwZjUwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYwpAQCAtMTMyOCw3ICYjNDM7MTMyOCw3IEBAIGludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpCiAJICovCiAJcmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTsKIAlpZiAoIXJldCkgewotCQlkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoY3J0Yyk7CiYjNDM7CQlkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7CiAJCWRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKaW5kZXggZjg5M2IxZTNhNTk2ZS4uNmZkMzM2NzJkMjA2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaApAQCAtMTE1LDYgJiM0MzsxMTUsNyBAQCB2b2lkIGRybV92YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiBpbnQgZHJtX3ZibGFua19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwogdm9pZCBkcm1fdmJsYW5rX3B1dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiB1NjQgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7CiYjNDM7aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCiAvKiBkcm1fdmJsYW5rX3dvcmsuYyAqLwogc3RhdGljIGlubGluZSB2b2lkIGRybV92YmxhbmtfZmx1c2hfd29ya2VyKHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuaykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCmluZGV4IGY5MGZiMmQxM2U0MjMuLjc3NThlODI2NTE2ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYwpAQCAtMTI5NywxNyAmIzQzOzEyOTcsNyBAQCB2b2lkIGRybV9jcnRjX3ZibGFua19wdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQogfQogRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfcHV0KTsKIAotLyoqCi0gKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rCi0gKiBAY3J0YzogRFJNIGNydGMKLSAqCi0gKiBUaGlzIHdhaXRzIGZvciBvbmUgdmJsYW5rIHRvIHBhc3Mgb24gQGNydGMsIHVzaW5nIHRoZSBpcnEgZHJpdmVyIGludGVyZmFjZXMuCi0gKiBJdCBpcyBhIGZhaWx1cmUgdG8gY2FsbCB0aGlzIHdoZW4gdGhlIHZibGFuayBpcnEgZm9yIEBjcnRjIGlzIGRpc2FibGVkLCBlLmcuCi0gKiBkdWUgdG8gbGFjayBvZiBkcml2ZXIgc3VwcG9ydCBvciBiZWNhdXNlIHRoZSBjcnRjIGlzIG9mZi4KLSAqCi0gKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLgotICovCi1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0mZ3Q7ZGV2OwogCWludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoY3J0Yyk7CkBAIC0xMzI2LDEyICYjNDM7MTMxNiwzMCBAQCBpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJCQkgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksCiAJCQkJIG1zZWNzX3RvX2ppZmZpZXMoMTAwMCkpOwogCi0JZHJtX1dBUk4oZGV2LCByZXQgPT0gMCwgJiMzNDt2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxuJiMzNDssIHBpcGUpOwotCiAJZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTsKIAogCXJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDsKIH0KJiM0MzsKJiM0MzsvKioKJiM0MzsgKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rCiYjNDM7ICogQGNydGM6IERSTSBjcnRjCiYjNDM7ICoKJiM0MzsgKiBUaGlzIHdhaXRzIGZvciBvbmUgdmJsYW5rIHRvIHBhc3Mgb24gQGNydGMsIHVzaW5nIHRoZSBpcnEgZHJpdmVyIGludGVyZmFjZXMuCiYjNDM7ICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLgomIzQzOyAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMgaXMgb2ZmLgomIzQzOyAqCiYjNDM7ICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy4KJiM0MzsgKi8KJiM0MztpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKJiM0Mzt7CiYjNDM7CWludCByZXQgPSBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7CiYjNDM7CiYjNDM7CWRybV9XQVJOKGNydGMtJmd0O2RldiwgcmV0ID09IC1FVElNRURPVVQsICYjMzQ7dmJsYW5rIHdhaXQgdGltZWQgb3V0IG9uIGNydGMgJWlcbiYjMzQ7LAomIzQzOwkJIGRybV9jcnRjX2luZGV4KGNydGMpKTsKJiM0MzsKJiM0MzsJcmV0dXJuIHJldDsKJiM0Mzt9CiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayk7CiAKIC8qKgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTA1CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTI5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFdvcnRoaW5lc3MqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0b3VjaGVzIGBkcm1fY2xpZW50X21vZGVzZXQuY2AsIGBkcm1faW50ZXJuYWwuaGAsIGFuZCBgZHJtX3ZibGFuay5jYC4gVGhlIGNvcmUgY2hhbmdlIHNlZW1zIHRvIGJlIGFyb3VuZCBob3cgd2UgaGFuZGxlIHZibGFuayB0aW1lb3V0cywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgZnVuY3Rpb24uIEluaXRpYWxseSwgdGhlIHBhdGNoIHJlbmFtZXMgdGhlIG9yaWdpbmFsIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIHRvIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGFuZCByZW1vdmVzIHRoZSB0aW1lb3V0IHdhcm5pbmcgKGBkcm1fV0FSTmApLiAgQSAqbmV3KiBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCBpcyB0aGVuIGludHJvZHVjZWQsIGVzc2VudGlhbGx5IGNhbGxpbmcgdGhlIGludGVybmFsIHZlcnNpb24gYW5kICp0aGVuKiBkb2luZyB0aGUgYGRybV9XQVJOYC4gIEluIGBkcm1fY2xpZW50X21vZGVzZXQuY2AsIHRoZXkmIzM5O3ZlIHN3YXBwZWQgdGhlIGNhbGwgdG8gdXNlIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O2lzIHRoaXMgd29ydGggZnV6emluZz8mIzM0OyBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCB0ZWNobmljYWxseSByZW1vdmluZyBhIHdhcm5pbmcgaW4gb25lIHNwZWNpZmljIGNvZGVwYXRoLiBJcyB0aGF0IGEgKnJlYWwqIGZ1bmN0aW9uYWwgY2hhbmdlIGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlPyBJdCBzdWJ0bHkgYWx0ZXJzIGNvbnRyb2wgZmxvdyBieSBza2lwcGluZyB0aGUgd2FybmluZyB1bmRlciBjZXJ0YWluIHRpbWVvdXQgY29uZGl0aW9ucy4gIEkmIzM5O20gZGVhbGluZyB3aXRoIHRoZSBEUk0gY29yZSwgc28gSSBuZWVkIHRvIGJlIG1vcmUgY2FyZWZ1bC4KCkxldCYjMzk7cyBkaWcgZGVlcGVyOiB0aGUgcHJpbWFyeSBlZmZlY3QgaXMgcHJldmVudGluZyB0aGUgYGRybV9XQVJOYCBmcm9tIGZpcmluZyBkdXJpbmcgdGhlIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCB0aW1lb3V0LiAgV2hpbGUgaW5pdGlhbGx5LCBpdCAqc2VlbXMqIGxpa2UgYSBwdXJlbHkgY29zbWV0aWMgY2hhbmdlIChyZW1vdmluZyBhIHdhcm5pbmcpLCBidXQgYGRybV9XQVJOYCBpc24mIzM5O3QganVzdCBkZWNvcmF0aW9uLiBgZHJtX1dBUk5gIGV4cGFuZHMgdG8gYFdBUk5gLCB3aGljaCBjYW4gdHJpZ2dlciBhIGtlcm5lbCBwYW5pYyBpZiBgcGFuaWNfb25fd2FybmAgaXMgc2V0LCBhbmQgdGhhdCYjMzk7cyAqdmVyeSogcmVsZXZhbnQgZm9yIGZ1enppbmchIFNvIHJlbW92aW5nIHRoYXQgYGRybV9XQVJOYCAqcHJldmVudHMqIGEgcG90ZW50aWFsIGNyYXNoIG9yIHBhbmljLCBlc3BlY2lhbGx5IGR1cmluZyBmdXp6aW5nIHdoZW4gd2UmIzM5O3JlIG9mdGVuIHRlc3Rpbmcgd2l0aCB0aGF0IGZsYWcgZW5hYmxlZC4gVGhpcyBtYWtlcyBpdCBhIGJ1ZyBmaXggZm9yIGEgJiMzNDtmYWxzZSBwb3NpdGl2ZSYjMzQ7IG9yIGFuIGV4cGVjdGVkIHRpbWVvdXQuICBUaGlzIGlzIGEgc2lnbmlmaWNhbnQgY2hhbmdlIGJlY2F1c2UgaXQgY2FuIHByZXZlbnQgYSBmdXp6aW5nIGNhbXBhaWduIGZyb20gYmVpbmcgc2hvcnQgY2lyY3VpdGVkLgoKQ29uc2lkZXJpbmcgdGhlIHByb21wdCYjMzk7cyBndWlkZWxpbmVzLCBpcyB0aGlzIGp1c3QgJiMzNDtkZWNvcmF0aXZlJiMzNDsgbG9nZ2luZz8gTm8uIGBXQVJOYCBjYW4gYmUgZmF0YWwuICBXaGlsZSB0aGUgKnByaW1hcnkqIGV4ZWN1dGlvbiBmbG93IGlzbiYjMzk7dCBjaGFuZ2VkLCBhdm9pZGluZyBhIGNyYXNoIGlzIGEgKmNyaXRpY2FsKiBmdW5jdGlvbmFsIGFsdGVyYXRpb24gaW4gdGhlIGNvbnRleHQgb2YgZnV6emluZy4gVGhlIHBhdGNoIGVmZmVjdGl2ZWx5IGV4dHJhY3RzIGFuZCByZXVzZXMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAsIGtlZXBpbmcgdGhlIG9yaWdpbmFsIGxvZ2ljIHRoZSBzYW1lIGluIHRlcm1zIG9mIHdhaXRpbmcgZm9yIGEgdmJsYW5rLCBidXQgc2ltcGx5IGF2b2lkaW5nIHRoZSBgZHJtX1dBUk5gIGluc2lkZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgYnkgb25seSBwcmludGluZyB0aGUgd2FybmluZyBhdCBvbmUgcG9pbnQgb2YgdGhlIGZ1bmN0aW9uIG5vdy4KCk5vdywgbGV0JiMzOTtzIGxvb2sgYXQgdGhlIGNvZGU6CmBgYGMKLWludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQomIzQzO2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLSZndDtkZXY7CiAJaW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTsKQEAgLTEzMjYsMTIgJiM0MzsxMzE2LDMwIEBAIGludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQkJCSBsYXN0ICE9IGRybV92YmxhbmtfY291bnQoZGV2LCBwaXBlKSwKIAkJCQkgbXNlY3NfdG9famlmZmllcygxMDAwKSk7CiAKLQlkcm1fV0FSTihkZXYsIHJldCA9PSAwLCAmIzM0O3ZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXG4mIzM0OywgcGlwZSk7Ci0KIAlkcm1fdmJsYW5rX3B1dChkZXYsIHBpcGUpOwogCiAJcmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUOwogfQomIzQzOwomIzQzO2ludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQomIzQzO3sKJiM0MzsJaW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTsKJiM0MzsKJiM0MzsJZHJtX1dBUk4oY3J0Yy0mZ3Q7ZGV2LCByZXQgPT0gLUVUSU1FRE9VVCwgJiMzNDt2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxuJiMzNDssCiYjNDM7CQkgZHJtX2NydGNfaW5kZXgoY3J0YykpOwomIzQzOwomIzQzOwlyZXR1cm4gcmV0OwomIzQzO30KIGBgYApUaGUgcGF0Y2ggbm93IHJlbW92ZXMgdGhlIGBkcm1fV0FSTmAgZnJvbSB0aGUgdGltZW91dCBwYXRoIGluIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGZvciBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIG1vdmluZyBpdCB0byBhIGNhbGwgb2YgdGhlIGludGVybmFsIGZ1bmN0aW9uIGFuZCB0aGVuIHRyaWdnZXJpbmcgdGhlIHdhcm5pbmcgdGhlcmUuIEluIGVzc2VuY2UsIGl0ICpkb2VzKiBjaGFuZ2UgdGhlIHBvdGVudGlhbCBiZWhhdmlvciB1bmRlciBlcnJvciBjb25kaXRpb25zLiBJdCBkb2VzbiYjMzk7dCBmaW5kCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMjk1PUVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTg6ICogZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuaygpIC0gV2FpdCBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIG9jY3VyXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5OS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMDgtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMwOTppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQwLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU3OTQKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAyMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcyBvbiB0aGlzOgoKKipJbnZlc3RpZ2F0aW5nIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBDYWxscyoqCgpSaWdodCwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZnVuY3Rpb24sIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCwgaXMgdXNlZC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHRyYWNlIGl0cyBjYWxsIGxvY2F0aW9ucy4gSSB3YW50IHRvIHNlZSB3aGljaCBvdGhlciBmdW5jdGlvbnMgYXJlIGludm9raW5nIGl0LiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGl0cyByb2xlIHdpdGhpbiB0aGUgZGlzcGxheSBkcml2ZXIgZnJhbWV3b3JrIGFuZCBob3cgaXQgY29udHJpYnV0ZXMgdG8gdGhlIG92ZXJhbGwgbW9kZXNldHRpbmcgcHJvY2Vzcy4gQnkgaWRlbnRpZnlpbmcgdGhlIGNhbGxlcnMsIEkgY2FuIGluZmVyIHRoZSBjb250ZXh0IGluIHdoaWNoIGl0JiMzOTtzIGJlaW5nIHVzZWQgYW5kLCB0aGVyZWZvcmUsIGl0cyBzaWduaWZpY2FuY2Ugd2l0aGluIHRoZSBicm9hZGVyIHN5c3RlbS4gSSYjMzk7bGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgdG9vbHMgZm9yIHRoaXMga2luZCBvZiBpbnZlc3RpZ2F0aW9uOyBJIGNhbiB1c2UgZ3JlcCwgY3Njb3BlLCBvciBldmVuIGEgbW9yZSBzb3BoaXN0aWNhdGVkIElERS1pbnRlZ3JhdGVkIHNlYXJjaCB0byBmaW5kIHRoZSBpbnN0YW5jZXMgd2hlcmUgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGlzIGNhbGxlZC4gVGhlIGdvYWwgaXMgdG8gYnVpbGQgYSBtZW50YWwgbW9kZWwgb2YgaXRzIGV4ZWN1dGlvbiBwYXRoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYz0xMjk1PUVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMpO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEyOTg6ICogZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuaygpIC0gV2FpdCBmb3IgdGhlIG5leHQgVkJMQU5LIHRvIG9jY3VyXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5OS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMDgtICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMwOTppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XG4tLVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzgtfVxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzQwLVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9MzE1PXN0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcilcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cdGlmIChjcnRjX2luZGV4IFx1MDAzZT0gMClcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI3Olx0XHRkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKFx1MDAyNmhlbHBlci1cdTAwM2VjbGllbnQsIGNydGNfaW5kZXgpO1xuZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYy0zMjgtXHRtdXRleF91bmxvY2soXHUwMDI2aGVscGVyLVx1MDAzZWxvY2spO1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM9OTg0PWludCBkcm1fZmJfaGVscGVyX2lvY3RsKHN0cnVjdCBmYl9pbmZvICppbmZvLCB1bnNpZ25lZCBpbnQgY21kLFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAwOS1cdFx0ICovXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTA6XHRcdHJldCA9IGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXHUwMDI2ZmJfaGVscGVyLVx1MDAzZWNsaWVudCwgMCk7XG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTEwMTEtXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY2NzIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxMjU0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgYSBEUk0gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgRFJNIHBhdGNoIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IGZ1bmN0aW9uIGhlcmUgaXMgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLCBjYWxsZWQgZnJvbSBgZHJtX2ZiX2hlbHBlcl9mYl9kaXJ0eWAgYW5kIHRoZSBGQklPX1dBSVRGT1JWU1lOQyBpb2N0bCwgc28gaXQmIzM5O3MgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBmYmRldi4gVGhlIHBhdGNoIGNoYW5nZXMgaG93IGEgdmJsYW5rIHdhaXQgaXMgaGFuZGxlZCBpbnRlcm5hbGx5LgoKVGhlIGNoYW5nZSBjZW50ZXJzIGFyb3VuZCByZW1vdmluZyBhIGBkcm1fV0FSTmAgY2FsbC4gSW5pdGlhbGx5LCBteSB0aG91Z2h0IHdhcywgJiMzNDtJcyBhIGBkcm1fV0FSTmAgYSBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2UsIGxpa2UgbG9nZ2luZz8mIzM0OyBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzICYjMzQ7V29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgaWYgaXQmIzM5O3MgKm9ubHkqIGRlY29yYXRpdmUgY2hhbmdlcywgbG9nZ2luZywgb3IgdHJhY2Vwb2ludHMuIGBkcm1fV0FSTmAgcHJpbnRzIGEgd2FybmluZyBhbmQgYSBzdGFjayB0cmFjZS4gSXQmIzM5O3MgZXNzZW50aWFsbHkgYSBgV0FSTmAuIEFuZCB5ZXMsIGJ5IGl0c2VsZiwgcmVtb3ZpbmcgdGhlIFdBUk4gZG9lc24mIzM5O3QgY2hhbmdlIGV4ZWN1dGlvbiAqZmxvdyogdGhhdCBtdWNoLiBJdCBkb2VzIGF2b2lkIGEgd2FybmluZy4gV2FybmluZ3MgYXJlIGNvbnNpZGVyZWQgYnVncyBieSBmdXp6ZXJzIGxpa2UgU3l6a2FsbGVyIHdoaWNoIGNhbiB0cmVhdCBXQVJOcyBhcyBjcmFzaGVzIGlmIGBwYW5pY19vbl93YXJuYCBpcyBzZXQuCgpJIHRob3VnaHQgYWJvdXQgaXQuIElmIGl0ICpvbmx5KiByZW1vdmVzIGEgd2FybmluZywgaXQmIzM5O3MgdGVjaG5pY2FsbHkgYSBidWcgZml4IGZyb20gdGhlIGZ1enplciYjMzk7cyBwZXJzcGVjdGl2ZSBzaW5jZSBpdCYjMzk7cyBmaXhpbmcgYSBwb3RlbnRpYWwgY3Jhc2ggdGhhdCYjMzk7cyB0cmlwcGluZyB0aGUgd2FybmluZywgc28gdGhlIHBhdGNoIGlzIGZ1bmN0aW9uYWwuCgpCdXQgdGhlbiBJIHdlbnQgYmFjayBhbmQgcmUtcmVhZCB0aGUgY29kZS4gVGhlIHBhdGNoIHJlcGxhY2VkIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIHdpdGggYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlbSBpcyB0aGF0IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGlzIG5vdCBjYWxsaW5nIGBkcm1fV0FSTmAuIFRoaXMgbWVhbnMgdGhhdCB0aGUgcGF0Y2ggKm9ubHkqIHJlbW92ZXMgdGhpcyB3YXJuaW5nLiBUaGUgcmV0dXJuIHZhbHVlcyBhcmUgdGhlIHNhbWU7IHRoZSBmdW5jdGlvbmFsIG91dGNvbWUgZG9lc24mIzM5O3QgY2hhbmdlLgoKSSB3cmVzdGxlZCB3aXRoIHRoZSBwcm9tcHQmIzM5O3Mgd29yZGluZy4gSXQgZG9lc24mIzM5O3QgKmV4cGxpY2l0bHkqIG1lbnRpb24gYFdBUk5gIG9yIGBCVUdgLCBidXQgdGhlIHByb21wdCBnaXZlcyBtZSB0aGUgZm9sbG93aW5nIGRpcmVjdGlvbjogJiMzNDtkZXRlcm1pbmUgaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7IFRoZSBwcm9tcHQgaXMgYXNraW5nIG1lIGFib3V0ICpmdW5jdGlvbmFsIGNoYW5nZXMqIHNwZWNpZmljYWxseS4gSXQgbWVudGlvbnMgKmxvZ2dpbmcqLCBhbmQgYGRybV9XQVJOYCBkb2VzIGxvZyBhIG1lc3NhZ2UsIGJ1dCBpdCYjMzk7cyBhbHNvIG1vcmUgdGhhbiB0aGF0OiBpdCYjMzk7cyBhbiBhc3NlcnRpb24gdGhhdCBhIGNvbmRpdGlvbiBtaWdodCBiZSB1bmV4cGVjdGVkLiBJdCBjYW4gdHJpZ2dlciBhIHBhbmljLiBJIGhhZCBhIHRob3VnaHQgdG8gZnV6eiB0aGUgbmV3IGNvZGUgZm9yIHJlZ3Jlc3Npb24sIHRvIHNlZSBpZiBhbnl0aGluZyBpcyBicm9rZW4sIGJlY2F1c2UgSSBkb24mIzM5O3Qgd2FudCB0byBhbGxvdyBzb21ldGhpbmcgdG8gc2lsZW50bHkgZmFpbC4KClNvLCBpZiBJIHN0cmljdGx5IGFkaGVyZSB0byAmIzM0O2xvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cyYjMzQ7LCBJICpjb3VsZCogYXJndWUgaXQmIzM5O3MgYSBkZWNvcmF0aXZlIGNoYW5nZSBhbmQgc2F5IFdvcnRoRnV6emluZz1mYWxzZS4gSG93ZXZlciwgSSBjb25zaWRlciB0aGF0IGEgYFdBUk5gIGlzIGFuIGFzc2VydGlvbiBvZiBhIGNvZGUgY29uZGl0aW9uIHRoYXQgKnNob3VsZCBub3QqIGJlIGhpdC4gUmVtb3ZpbmcgYSBXQVJOIHJlbW92ZXMgdGhlIGFzc2VydGlvbiwgYW5kIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGZ1enppbmcgKHNwZWNpZmljYWxseSBTeXprYWxsZXIpIGEgYFdBUk5gIHJlbW92YWwgaXMgYSBidWcgZml4IChwb3RlbnRpYWxseSBwcmV2ZW50aW5nIGEgY3Jhc2gpLiBJdCAqc2hvdWxkKiBiZSBmdXp6ZWQsIGFzIGEgYnVnIGZpeCAqYWx3YXlzKiB3YXJyYW50cyBmdXp6aW5nIHRvIGVuc3VyZSBjb3JyZWN0bmVzcywgYW5kIHRvIHRlc3QgZm9yIG5ldyBidWdzLgoKVGhlcmVmb3JlLCBiZWNhdXNlIHRoaXMgZml4ZXMgYSBwb3RlbnRpYWwgaXNzdWUgKHdhcm5pbmcpLCBJJiMzOTttIGdvaW5nIHRvIGxlYW4gdG93YXJkcyBjb25zaWRlcmluZyB0aGlzIGEgKmZ1bmN0aW9uYWwqIGNoYW5nZSB0aGF0IHdhcnJhbnRzIGZ1enppbmcuIFRoZSBwYXRjaCAqc2hvdWxkKiBiZSBmdXp6ZWQuIEFuZCB0aGlzIGRlcGVuZHMgb24gdGhlIGNvbmZpZyBvcHRpb25zOiBgQ09ORklHX0RSTWAgYW5kIGBDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTmAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NzM2CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyB0aGUgRFJNX0ZCREVWX0VNVUxBVElPTiBQYXRoKioKCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGluLiBUaGUgbWVudGlvbiBvZiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0LiBJdCBzdWdnZXN0cyB3ZSYjMzk7cmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBhIHNjZW5hcmlvIHdoZXJlIHdlJiMzOTtyZSBlbXVsYXRpbmcgYSBmcmFtZWJ1ZmZlciBkZXZpY2Ugd2l0aGluIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgZnJhbWV3b3JrLiBNeSBpbW1lZGlhdGUgdGhvdWdodHMgZ28gaW4gYSBmZXcgZGlyZWN0aW9ucywgcHJvYmFibHkgZGVwZW5kaW5nIG9uIGNvbnRleHQuCgpGaXJzdCwgSSYjMzk7bSB0cnlpbmcgdG8gcmVjYWxsIHdoZXJlIEkmIzM5O3ZlIGVuY291bnRlcmVkIHRoYXQgZmxhZy4gSXMgdGhpcyBrZXJuZWwtbGV2ZWwgZW11bGF0aW9uLCBwZXJoYXBzIGZvciBsZWdhY3kgYXBwbGljYXRpb25zIG9yIGhhcmR3YXJlIHN1cHBvcnQ/IE9yIGNvdWxkIGl0IGJlIHJlbGF0ZWQgdG8gdGVzdGluZyBhbmQgZGVidWdnaW5nIG9mIERSTSBkcml2ZXJzPyBJdCBtaWdodCBiZSB1c2VmdWwgaW4gc2l0dWF0aW9ucyB3aGVyZSBhIG5hdGl2ZSBmcmFtZWJ1ZmZlciBkZXZpY2UgaXNuJiMzOTt0IGF2YWlsYWJsZSwgb3Igd2hlcmUgd2Ugd2FudCBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQgdG8gcmVwcm9kdWNlIGEgc3BlY2lmaWMgaXNzdWUuCgpNeSBtaW5kIGlzIGFsc28gY2hlY2tpbmcgZm9yIGFueSBwb3RlbnRpYWwgcGVyZm9ybWFuY2Ugb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zIHdpdGggYW4gZW11bGF0aW9uIGxheWVyIGxpa2UgdGhpcy4gSSYjMzk7ZCBuZWVkIHRvIGNvbnNpZGVyIHRoZSBvdmVyaGVhZCwgYXMgd2VsbCBhcyB0aGUgcG90ZW50aWFsIGZvciB1bmV4cGVjdGVkIGJlaGF2aW9yLCBkZXBlbmRpbmcgb24gaG93IHRoaXMgZW11bGF0aW9uIGlzIGFyY2hpdGVjdGVkIGFuZCBpZiBpdCYjMzk7cyByZWx5aW5nIG9uIGFueSBzcGVjaWZpYyBoYXJkd2FyZSBmZWF0dXJlcy4gSXMgdGhpcyB1c2luZyBhIHNvZnR3YXJlIGZhbGxiYWNrLCBvciBsZXZlcmFnaW5nIG1vcmUgYWR2YW5jZWQgdGVjaG5pcXVlcyBsaWtlIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGVtdWxhdGlvbj8KCkZpbmFsbHksIGlmIHRoaXMgaXMgYSBrbm93biBmZWF0dXJlLCBJIG5lZWQgdG8gZ2V0IHNvbWUgbW9yZSBjb250ZXh0LiBXaGVyZSBhbSBJIHNlZWluZyB0aGlzIGlkZW50aWZpZXI/IElzIGl0IGluIGEgY29uZmlndXJhdGlvbiBmaWxlLCBrZXJuZWwgY29kZSwgb3IgYSB1c2VyLXNwYWNlIHV0aWxpdHk/IEtub3dpbmcgdGhlIGNvbnRleHQgd2lsbCBoZWxwIG1lIHF1aWNrbHkgemVybyBpbiBvbiB0aGUgcHVycG9zZSBhbmQgc2NvcGUgb2YgdGhpcyBlbXVsYXRpb24uIEJhc2ljYWxseSwgSSBuZWVkIGEgcm9hZG1hcCBmb3IgdHJhY2luZyBpdHMgdXNhZ2UgYW5kIHVuZGVyc3RhbmRpbmcgaXRzIHJvbGUgaW4gdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFwmIzM0O1N1cHBvcnRlZCBEUk0gY2xpZW50c1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDkyMTIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSBkZXBlbmRlbmNpZXMgb2YgYGRybV9jbGllbnRfbW9kZXNldC5jYDoKCioqRGVlcCBEaXZlOiBVbmRlcnN0YW5kaW5nIHRoZSBEZXBlbmRlbmNpZXMgb2YgYGRybV9jbGllbnRfbW9kZXNldC5jYCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGludG8gdGhlIG5pdHR5LWdyaXR0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgLiBJJiMzOTttIGdvaW5nIHRvIHN0YXJ0IGJ5IHRyYWNpbmcgdGhyb3VnaCBpdHMgaW5jbHVkZSBzdGF0ZW1lbnRzIGFuZCByZWZlcmVuY2VzIHdpdGhpbiB0aGUga2VybmVsIHRyZWUuIFRoaXMgZmlsZSBpcyBjcml0aWNhbCBmb3IgaGFuZGxpbmcgdGhlIGNsaWVudC1zaWRlIGFzcGVjdHMgb2YgbW9kZXNldHRpbmcgaW4gYSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgY29udGV4dC4gVGhlcmVmb3JlLCBteSBndWVzcyBpcyB0aGF0IGl0IHRvdWNoZXMgb24gc2V2ZXJhbCBmdW5kYW1lbnRhbCBEUk0gY29uY2VwdHMsIGxpa2VseSBpbmNsdWRpbmcgdGhpbmdzIGxpa2UgY29ubmVjdG9ycywgZW5jb2RlcnMsIHBsYW5lcywgQ1JUQ3MsIGFuZCBvZiBjb3Vyc2UsIHRoZSB1bmRlcmx5aW5nIEtNUyAoS2VybmVsIE1vZGUtU2V0dGluZykgaW5mcmFzdHJ1Y3R1cmUuCgpJJiMzOTtkIGV4cGVjdCB0byBzZWUgZGVwZW5kZW5jaWVzIG9uIHRoZSBjb3JlIERSTSBoZWFkZXJzLCBuYXR1cmFsbHksIHBlcmhhcHMgYGRybV9jb3JlLmhgLCBgZHJtX2ZiLmhgLCBhbmQgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gZG8gd2l0aCB0aGUgZnJhbWUgYnVmZmVyIGluZnJhc3RydWN0dXJlLiBJdCAqaGFzKiB0byBpbnRlcmFjdCB3aXRoIHRoZSBnZW5lcmljIEtNUyBpbnRlcmZhY2VzOyB0aGUgd2hvbGUgcG9pbnQgb2YgY2xpZW50LXNpZGUgbW9kZXNldHRpbmcgaXMgdG8gYWJzdHJhY3QgYXdheSBzb21lIG9mIHRoZSBjb21wbGV4aXRpZXMuIEkgYmV0IGl0IGFsc28gaW50ZXJhY3RzIHdpdGggdGhlIHNwZWNpZmljIGRyaXZlciBBUElzLCBwYXJ0aWN1bGFybHkgdGhvc2UgcmVsYXRlZCB0byB0aGUgZ3JhcGhpY3MgaGFyZHdhcmUgb24gdGhlIGNsaWVudCBzaWRlLCBpZiB0aGVyZSBpcyBhIGNsaWVudC1zcGVjaWZpYyBkcml2ZXIgb3IgaWYgaXRzIHJlbHlpbmcgb24gdGhlIGJhc2ljIGRyaXZlcnMuCgpJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjcm9zcy1yZWZlcmVuY2VzIHRvIHVuZGVyc3RhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBsb3dlciBsYXllcnMgYW5kIGhvdyBpdCBpcyBsaW5rZWQsIHN0YXRpY2FsbHkgb3IgZHluYW1pY2FsbHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBpdCBwbHVncyBpbnRvIHRoZSBvdmVyYWxsIG1vZGVzZXR0aW5nIHByb2Nlc3MuIElzIGl0IHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyB1c2VyLXNwYWNlIHJlcXVlc3RzPyBEb2VzIGl0IGludGVyZmFjZSB3aXRoIHRoZSBkaXNwbGF5IHNlcnZlcj8gRG9lcyBpdCBkaXJlY3RseSBtYW5pcHVsYXRlIGhhcmR3YXJlIHJlZ2lzdGVycyAodW5saWtlbHksIGJ1dCBJIHNob3VsZCBsb29rKT8gSSYjMzk7bSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBob3cgaXQgaGFuZGxlcyB0aGUgc3luY2hyb25pemF0aW9uIGJldHdlZW4gY2xpZW50IGFuZCBzZXJ2ZXIsIHNpbmNlIHRoYXQmIzM5O3MgYSBjcml0aWNhbCBhcmVhIGZvciBwZXJmb3JtYW5jZSBhbmQgYXZvaWRpbmcgdGVhcmluZy4gVGhlIHdob2xlIHBvaW50IGlzIHNlYW1sZXNzIGRpc3BsYXkgdHJhbnNpdGlvbnMuCgpUaGlzIGFuYWx5c2lzIGlzIGdvaW5nIHRvIGxlYWQgbWUgdG8gYSBkZWVwZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgRFJNIGFyY2hpdGVjdHVyZSwgYW5kIGhvdyBpdCBzZXJ2ZXMgdGhlIG5lZWRzIG9mIHVzZXJzcGFjZSBhcHBsaWNhdGlvbnMsIGFzIHdlbGwgYXMgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RybV9jbGllbnRfbW9kZXNldCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU9NzY9ZHJtLSQoQ09ORklHX0RSTV9DTElFTlQpICYjNDM7PSBcXFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS03OC1cdGRybV9jbGllbnRfZXZlbnQubyBcXFxuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlOjc5Olx0ZHJtX2NsaWVudF9tb2Rlc2V0Lm8gXFxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS04MC1cdGRybV9jbGllbnRfc3lzcnEub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzgyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipOYXZpZ2F0aW5nIHRoZSBEZXBlbmRlbmN5IFdlYiBmb3IgRFJNIENsaWVudCBGdW5jdGlvbmFsaXR5KioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUuLi4gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgbW9kdWxlLCBhbmQgaXQmIzM5O3MgY2xlYXI6IHdlICphYnNvbHV0ZWx5KiBuZWVkIGBDT05GSUdfRFJNX0NMSUVOVGAgZGVmaW5lZC4gVGhlcmUmIzM5O3Mgbm8gd2F5IGFyb3VuZCBpdC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCByZXF1aXJlbWVudC4gSSYjMzk7bSBwcm9iYWJseSBkZWFsaW5nIHdpdGggZWl0aGVyIGEgbmV3IGRldmljZSBkcml2ZXIgb3IgYSBmZWF0dXJlIHRoYXQgaW50ZXJmYWNlcyB3aXRoIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgaW4gc29tZSB3YXksIGFuZCBgQ09ORklHX0RSTV9DTElFTlRgIGFjdHMgYXMgdGhlIGdhdGVrZWVwZXIgZm9yIGVuYWJsaW5nIHRoYXQgY2xpZW50LXNpZGUgZnVuY3Rpb25hbGl0eSB3aXRoaW4gdGhlIGtlcm5lbC4gSXQmIzM5O3MgYWxtb3N0IGNlcnRhaW5seSByZWxhdGVkIHRvIG1hbmFnaW5nIHRoZSBkaXNwbGF5IGhhcmR3YXJlLCBmcmFtZWJ1ZmZlcnMsIG9yIHBvc3NpYmx5IHNvbWUgZm9ybSBvZiBhY2NlbGVyYXRlZCBncmFwaGljcyBvdXRwdXQuIFdpdGhvdXQgaXQsIHRoZSBidWlsZCB3aWxsIGVpdGhlciBmYWlsIG1pc2VyYWJseSBvciB0aGUgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIHNpbGVudGx5IGNyaXBwbGVkLCBsZWFkaW5nIHRvIHNvbWUgdmVyeSBmcnVzdHJhdGluZyBkZWJ1Z2dpbmcgc2Vzc2lvbnMuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGRlcGVuZGVuY2llcyB0byB2ZXJpZnkgYW55IGFzc3VtcHRpb25zLCBidXQgdGhpcyBpcyB0aGUgZmlyc3QgdGhpbmcgdG8gbWFrZSBzdXJlIGlzIHNldCBwcm9wZXJseS4gSXTigJlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgZW5zdXJpbmcgYSBmdW5jdGlvbmFsIHN1YnN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERSTV9DTElFTlQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0xNTg9Y29uZmlnIERSTV9ERUJVR19NT0RFU0VUX0xPQ0tcbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xNzItXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZzoxNzM6Y29uZmlnIERSTV9DTElFTlRcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTE3NC1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxNTMKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTmF2aWdhdGluZyB0aGUgVW5zZWVuIExhbmRzY2FwZSBvZiBDb25maWd1cmF0aW9uKioKCkFoLCB0aGlzIG9uZSYjMzk7cyBpbnRyaWd1aW5nLiBNeSBpbml0aWFsIHRob3VnaHQgcHJvY2VzcyBqdW1wcyByaWdodCB0byB0aGUgY29yZTogdGhpcyBjb25maWd1cmF0aW9uLCB3aGF0ZXZlciBpdCBwZXJ0YWlucyB0bywgaXNuJiMzOTt0IGRpcmVjdGx5IGV4cG9zZWQuIEl0JiMzOTtzICpoaWRkZW4qLiBUaGF0JiMzOTtzIHRoZSBrZXkgc3RhcnRpbmcgcG9pbnQuIEl0JiMzOTtzIG5vdCBzb21ldGhpbmcgeW91JiMzOTtkIGZpbmQgYnkgc2ltcGx5IGJyb3dzaW5nIGEgZGlyZWN0b3J5IG9yIGxvb2tpbmcgYXQgYSBzdGFuZGFyZCBzZXR0aW5ncyBmaWxlLiBUaGlzIGltcGxpZXMgYSBsZXZlbCBvZiBpbmRpcmVjdGlvbiwgYSBkZWxpYmVyYXRlIGNvbmNlYWxtZW50LCBvciBhdCBsZWFzdCBhIGxlc3MtdGhhbi1vYnZpb3VzIGRlZmF1bHQgbG9jYXRpb24uCgpNeSBtaW5kIGltbWVkaWF0ZWx5IHN0YXJ0cyB0aWNraW5nIHRocm91Z2ggdGhlIHVzdWFsIHN1c3BlY3RzOiBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGNvbW1hbmQtbGluZSBhcmd1bWVudHMsIHBlcmhhcHMgYSBkYXRhYmFzZSBlbnRyeSBhY2Nlc3NlZCB0aHJvdWdoIGEgc3BlY2lmaWMgQVBJIGNhbGwuIENvdWxkIGl0IGJlIGEgZHluYW1pY2FsbHkgbG9hZGVkIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gcnVudGltZSBjb25kaXRpb25zLCBvciBhIGZlYXR1cmUgZmxhZyBiZWhpbmQgYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0dXA/IFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgaGlkZGVuIHN1Z2dlc3RzIGEgbmVlZCBmb3IgYSBzcGVjaWZpYyB0cmlnZ2VyLCBhIGNvbmRpdGlvbiBtZXQsIG9yIGEgbWVjaGFuaXNtIGVtcGxveWVkIHRvIGJyaW5nIGl0IGludG8gcGxheS4gVGhlIGNydWNpYWwgZGV0YWlsIGlzICpzb21ldGhpbmcqIHNlbGVjdHMgaXQuIFRoYXQmIzM5O3MgdGhlIHJlYWwgcHJvYmxlbSB0byBiZSBzb2x2ZWQuIFdlIG5lZWQgdG8gaWRlbnRpZnkgdGhhdCBzZWxlY3RvciwgdGhhdCB0cmlnZ2VyLCB0aGUgYW50ZWNlZGVudCB0aGF0IHB1bGxzIHRoaXMgcGFydGljdWxhciBjb25maWd1cmF0aW9uIG91dCBvZiB0aGUgc2hhZG93cy4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgcmVhbCBjb21wbGV4aXR5IGxpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBEUk1fQ0xJRU5UJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTA2IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZz0xNzM9Y29uZmlnIERSTV9DTElFTlRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xNzktXHQgIG9wdGlvbi4gRHJpdmVycyB0aGF0IHN1cHBvcnQgdGhlIGRlZmF1bHQgY2xpZW50cyBzaG91bGRcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjE4MDpcdCAgc2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OIGluc3RlYWQuXG5kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZy0xODEtXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZz0zPWNvbmZpZyBEUk1fQU1ER1BVXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZy02LVx0c2VsZWN0IEZXX0xPQURFUlxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZzo3Olx0c2VsZWN0IERSTV9DTElFTlRcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L0tjb25maWc6ODpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZy05LVx0c2VsZWN0IERSTV9ESVNQTEFZX0RQX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZz01PWNvbmZpZyBEUk1fSERMQ0Rcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWctOC1cdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuZHJpdmVycy9ncHUvZHJtL2FybS9LY29uZmlnOjk6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZy0xMC1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZz0yOD1jb25maWcgRFJNX01BTElfRElTUExBWVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZy0zMS1cdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuZHJpdmVycy9ncHUvZHJtL2FybS9LY29uZmlnOjMyOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWctMzMtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkvS2NvbmZpZz0yPWNvbmZpZyBEUk1fS09NRURBXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L0tjb25maWctNS1cdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L0tjb25maWctNy1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvS2NvbmZpZz0yPWNvbmZpZyBEUk1fQVJNQURBXG4tLVxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgSEFWRV9DTEsgXHUwMDI2XHUwMDI2IEFSTSBcdTAwMjZcdTAwMjYgTU1VXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWc9Mj1jb25maWcgRFJNX0FTUEVFRF9HRlhcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWctNi1cdGRlcGVuZHMgb24gTU1VXG5kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWc6NzpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9LY29uZmlnLTgtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vYXN0L0tjb25maWc9Mj1jb25maWcgRFJNX0FTVFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9hc3QvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnOjU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9hc3QvS2NvbmZpZy02LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL0tjb25maWc9Mj1jb25maWcgRFJNX0FUTUVMX0hMQ0RDXG4tLVxuZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL0tjb25maWctNC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBPRiBcdTAwMjZcdTAwMjYgQ09NTU9OX0NMSyBcdTAwMjZcdTAwMjYgKChNRkRfQVRNRUxfSExDREMgXHUwMDI2XHUwMDI2IEFSTSkgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL0tjb25maWctNi1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnPTEyPWNvbmZpZyBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTQtXHRkZXBlbmRzIG9uIERSTVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxNTpcdHNlbGVjdCBEUk1fQ0xJRU5UX0xJQiBpZiBEUk1fQ0xJRU5UX0xPR1xuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoxNjpcdHNlbGVjdCBEUk1fQ0xJRU5UX0xJQiBpZiBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTE3LVx0aGVscFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9MjE9Y29uZmlnIERSTV9DTElFTlRfU0VUVVBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTI1LVx0ICBFbmFibGVzIHRoZSBEUk0gY2xpZW50IHNlbGVjdGlvbi4gRFJNIGRyaXZlcnMgdGhhdCBzdXBwb3J0IHRoZVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzoyNjpcdCAgZGVmYXVsdCBjbGllbnRzIHNob3VsZCBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT04gaW5zdGVhZC5cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMjctXG4tLVxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0zMT1jb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzMtXHRkZXBlbmRzIG9uIERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjM0Olx0c2VsZWN0IERSTV9DTElFTlRcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy0zNi1cdHNlbGVjdCBGUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlmIEZSQU1FQlVGRkVSX0NPTlNPTEVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnPTc0PWNvbmZpZyBEUk1fQ0xJRU5UX0xPR1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNzYtXHRkZXBlbmRzIG9uIERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc3Olx0c2VsZWN0IERSTV9DTElFTlRcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6Nzg6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy03OS1cdHNlbGVjdCBEUk1fRFJBV1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZz0yPWNvbmZpZyBEUk1fRVhZTk9TXG4tLVxuZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9LY29uZmlnLTYtXHRkZXBlbmRzIG9uIE1NVVxuZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9ESVNQTEFZX0hFTFBFUiBpZiBEUk1fRVhZTk9TX0RQXG4tLVxuZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvS2NvbmZpZz0yPWNvbmZpZyBEUk1fRlNMX0RDVVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L0tjb25maWctNS1cdHNlbGVjdCBCQUNLTElHSFRfQ0xBU1NfREVWSUNFXG5kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9LY29uZmlnOjY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L0tjb25maWctNy1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL0tjb25maWc9Mj1jb25maWcgRFJNX0dNQTUwMFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgWDg2IFx1MDAyNlx1MDAyNiBIQVNfSU9QT1JUXG5kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZ3VkL0tjb25maWc9Mz1jb25maWcgRFJNX0dVRFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9ndWQvS2NvbmZpZy02LVx0c2VsZWN0IExaNF9DT01QUkVTU1xuZHJpdmVycy9ncHUvZHJtL2d1ZC9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9ndWQvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnPTI9Y29uZmlnIERSTV9ISVNJX0hJQk1DXG4tLVxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnPTI9Y29uZmlnIERSTV9ISVNJX0tJUklOXG4tLVxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgT0YgXHUwMDI2XHUwMDI2IChBUk02NCB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaHlwZXJ2L0tjb25maWc9Mj1jb25maWcgRFJNX0hZUEVSVlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9oeXBlcnYvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgSFlQRVJWX1ZNQlVTXG5kcml2ZXJzL2dwdS9kcm0vaHlwZXJ2L0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2h5cGVydi9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnPTI9Y29uZmlnIERSTV9JOTE1XG4tLVxuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy0xMi1cdHNlbGVjdCBUTVBGU1xuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZzoxMzpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy0xNC1cdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW14L2RjL0tjb25maWc9MT1jb25maWcgRFJNX0lNWDhfRENcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW14L2RjL0tjb25maWctMy1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBDT01NT05fQ0xLIFx1MDAyNlx1MDAyNiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvZ3B1L2RybS9pbXgvZGMvS2NvbmZpZzo0Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vaW14L2RjL0tjb25maWctNS1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW14L2Rjc3MvS2NvbmZpZz0xPWNvbmZpZyBEUk1fSU1YX0RDU1Ncbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW14L2Rjc3MvS2NvbmZpZy0zLVx0c2VsZWN0IElNWF9JUlFTVEVFUlxuZHJpdmVycy9ncHUvZHJtL2lteC9kY3NzL0tjb25maWc6NDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2lteC9kY3NzL0tjb25maWctNS1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvS2NvbmZpZz0yPWNvbmZpZyBEUk1fSU1YXG5kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0RSTSBTdXBwb3J0IGZvciBGcmVlc2NhbGUgaS5NWFwmIzM0O1xuZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9LY29uZmlnOjQ6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvS2NvbmZpZy01LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2lteC9sY2RjL0tjb25maWc9MT1jb25maWcgRFJNX0lNWF9MQ0RDXG4tLVxuZHJpdmVycy9ncHUvZHJtL2lteC9sY2RjL0tjb25maWctMy0gICAgICBkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgKEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvZ3B1L2RybS9pbXgvbGNkYy9LY29uZmlnOjQ6ICAgICAgc2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vaW14L2xjZGMvS2NvbmZpZy01LSAgICAgIHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vaW5nZW5pYy9LY29uZmlnPTE9Y29uZmlnIERSTV9JTkdFTklDXG4tLVxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9CUklER0VcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL0tjb25maWc6OTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZy0xMC1cdHNlbGVjdCBEUk1fUEFORUxfQlJJREdFXG4tLVxuZHJpdmVycy9ncHUvZHJtL2ttYi9LY29uZmlnPTE9Y29uZmlnIERSTV9LTUJfRElTUExBWVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBBUkNIX0tFRU1CQVkgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2dwdS9kcm0va21iL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2ttYi9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbG9naWN2Yy9LY29uZmlnPTE9Y29uZmlnIERSTV9MT0dJQ1ZDXG4tLVxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBPRiB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvZ3B1L2RybS9sb2dpY3ZjL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZy02LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL0tjb25maWc9Mz1jb25maWcgRFJNX0xPT05HU09OXG4tLVxuZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL0tjb25maWctNi1cdGRlcGVuZHMgb24gTE9PTkdBUkNIIHx8IE1JUFMgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vS2NvbmZpZzo3Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vbG9vbmdzb24vS2NvbmZpZy04LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL21jZGUvS2NvbmZpZz0xPWNvbmZpZyBEUk1fTUNERVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWctOC1cdHNlbGVjdCBNRkRfU1lTQ09OXG5kcml2ZXJzL2dwdS9kcm0vbWNkZS9LY29uZmlnOjk6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWctMTAtXHRzZWxlY3QgRFJNX01JUElfRFNJXG4tLVxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWc9Mj1jb25maWcgRFJNX01FRElBVEVLXG4tLVxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWctOS1cdGRlcGVuZHMgb24gTVRLX01NU1lTXG5kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvS2NvbmZpZzoxMDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWctMTEtXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL21lc29uL0tjb25maWc9Mj1jb25maWcgRFJNX01FU09OXG4tLVxuZHJpdmVycy9ncHUvZHJtL21lc29uL0tjb25maWctNS1cdGRlcGVuZHMgb24gQVJDSF9NRVNPTiB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvZ3B1L2RybS9tZXNvbi9LY29uZmlnOjY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9tZXNvbi9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9LY29uZmlnPTI9Y29uZmlnIERSTV9NR0FHMjAwXG4tLVxuZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZzo1Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWc9NjE9Y29uZmlnIERSTV9NU01fS01TXG4tLVxuZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnLTY1LVx0c2VsZWN0IERSTV9CUklER0VfQ09OTkVDVE9SXG5kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWc6NjY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9tc20vS2NvbmZpZy02Ny1cdHNlbGVjdCBEUk1fRElTUExBWV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZz03PWNvbmZpZyBEUk1fTVhTRkJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZy0xMS1cdGRlcGVuZHMgb24gQVJDSF9NWFMgfHwgQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZzoxMjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWctMTMtXHRzZWxlY3QgRFJNX01YU1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnPTI1PWNvbmZpZyBEUk1fSU1YX0xDRElGXG4tLVxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWctMjktXHRkZXBlbmRzIG9uIEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWc6MzA6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnLTMxLVx0c2VsZWN0IERSTV9NWFNcbi0tXG5kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnPTI9Y29uZmlnIERSTV9OT1VWRUFVXG4tLVxuZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvS2NvbmZpZy03LVx0c2VsZWN0IEZXX0NBQ0hFIGlmIFBNX1NMRUVQXG5kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnOjg6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L0tjb25maWctOS1cdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnPTI9Y29uZmlnIERSTV9PTUFQXG4tLVxuZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vS2NvbmZpZy02LVx0ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUyB8fCAoQ09NUElMRV9URVNUIFx1MDAyNlx1MDAyNiBQQUdFX1NJWkVfTEVTU19USEFOXzY0S0IpXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL0tjb25maWctOC1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnPTI9Y29uZmlnIERSTV9QTDExMVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnLTctXHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnOjg6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnLTktXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcXhsL0tjb25maWc9Mj1jb25maWcgRFJNX1FYTFxuLS1cbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPUE9SVFxuZHJpdmVycy9ncHUvZHJtL3F4bC9LY29uZmlnOjU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZy02LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9LY29uZmlnPTM9Y29uZmlnIERSTV9SQURFT05cbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL0tjb25maWctNy1cdHNlbGVjdCBGV19MT0FERVJcbmRyaXZlcnMvZ3B1L2RybS9yYWRlb24vS2NvbmZpZzo4Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL0tjb25maWctOS1cdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yY2FyLWR1L0tjb25maWc9Mj1jb25maWcgRFJNX1JDQVJfRFVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yY2FyLWR1L0tjb25maWctNi1cdGRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcmNhci1kdS9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcnotZHUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUlpHMkxfRFVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yei1kdS9LY29uZmlnLTYtXHRkZXBlbmRzIG9uIFZJREVPX1JFTkVTQVNfVlNQMVxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcnotZHUvS2NvbmZpZzo3Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yei1kdS9LY29uZmlnLTgtXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvc2htb2JpbGUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fU0hNT0JJTEVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9LY29uZmlnLTYtXHRzZWxlY3QgQkFDS0xJR0hUX0NMQVNTX0RFVklDRVxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvc2htb2JpbGUvS2NvbmZpZzo3Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9LY29uZmlnLTgtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUk9DS0NISVBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZy03LVx0ZGVwZW5kcyBvbiBPRlxuZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWc6ODpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWctOS1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZz0xPWNvbmZpZyBEUk1fU1Q3NTcxXG4tLVxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctMy1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBNTVVcbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnOjQ6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnLTUtXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZz00Mj1jb25maWcgRFJNX1NUNzU4NlxuLS1cbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnLTQ0LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFNQSVxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWc6NDU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnLTQ2LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWc9NTU9Y29uZmlnIERSTV9TVDc3MzVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNTctXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZzo1ODpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNTktXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc29sb21vbi9LY29uZmlnPTE9Y29uZmlnIERSTV9TU0QxMzBYXG4tLVxuZHJpdmVycy9ncHUvZHJtL3NvbG9tb24vS2NvbmZpZy00LVx0c2VsZWN0IEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0VcbmRyaXZlcnMvZ3B1L2RybS9zb2xvbW9uL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3NvbG9tb24vS2NvbmZpZy02LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnPTI9Y29uZmlnIERSTV9TVElcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3RpL0tjb25maWctNS1cdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXG5kcml2ZXJzL2dwdS9kcm0vc3RpL0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3RtL0tjb25maWc9Mj1jb25maWcgRFJNX1NUTVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9zdG0vS2NvbmZpZy01LVx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXG5kcml2ZXJzL2dwdS9kcm0vc3RtL0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3VuNGkvS2NvbmZpZz0yPWNvbmZpZyBEUk1fU1VONElcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3VuNGkvS2NvbmZpZy01LVx0ZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVFxuZHJpdmVycy9ncHUvZHJtL3N1bjRpL0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N1bjRpL0tjb25maWctNy1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz0xMD1jb25maWcgRFJNX0NPUkVCT09URFJNXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctMTQtXHRzZWxlY3QgQVBFUlRVUkVfSEVMUEVSU1xuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6MTU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTE2LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc9MjY9Y29uZmlnIERSTV9FRklEUk1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy0yOS1cdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZzozMDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctMzEtXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz00Mj1jb25maWcgRFJNX09GRFJNXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctNDUtXHRzZWxlY3QgQVBFUlRVUkVfSEVMUEVSU1xuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6NDY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTQ3LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc9NTc9Y29uZmlnIERSTV9TSU1QTEVEUk1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy02MC1cdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZzo2MTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctNjItXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz03Nj1jb25maWcgRFJNX1ZFU0FEUk1cbi0tXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy03OS1cdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZzo4MDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctODEtXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVEVHUkFcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvS2NvbmZpZy03LVx0ZGVwZW5kcyBvbiBPRlxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL0tjb25maWc6ODpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL0tjb25maWctOS1cdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZz0xPWNvbmZpZyBEUk1fVElEU1Ncbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBBUk0gfHwgQVJNNjQgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZzo1Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZy02LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy9LY29uZmlnPTI9Y29uZmlnIERSTV9USUxDRENcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL0tjb25maWctNC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBPRiBcdTAwMjZcdTAwMjYgQVJNXG5kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL0tjb25maWc6NTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE2PWNvbmZpZyBEUk1fQVJDUEdVXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xOC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBPRlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxOTpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0yMC1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTI3PWNvbmZpZyBEUk1fQk9DSFNcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTI5LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgTU1VXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjMwOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTMxLVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0zOT1jb25maWcgRFJNX0NJUlJVU19RRU1VXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy00MS1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6NDI6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNDMtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTU5PWNvbmZpZyBEUk1fR00xMlUzMjBcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTYxLVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IFVTQiBcdTAwMjZcdTAwMjYgTU1VXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjYyOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTYzLVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz02OT1jb25maWcgRFJNX1BBTkVMX01JUElfREJJXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy03MS1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6NzI6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNzMtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTg1PWNvbmZpZyBEUk1fUElYUEFQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTg4LSAgICAgICAgZGVwZW5kcyBvbiBNTVVcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6ODk6ICAgICAgICBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctOTAtICAgICAgICBzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTEwMT1jb25maWcgVElOWURSTV9IWDgzNTdEXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMDMtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjEwNDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMDUtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTExNT1jb25maWcgVElOWURSTV9JTEk5MTYzXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMTgtXHRzZWxlY3QgQkFDS0xJR0hUX0NMQVNTX0RFVklDRVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxMTk6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTIwLVx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTI5PWNvbmZpZyBUSU5ZRFJNX0lMSTkyMjVcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTEzMS1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTMyOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTEzMy1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTQyPWNvbmZpZyBUSU5ZRFJNX0lMSTkzNDFcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE0NC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTQ1Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE0Ni1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTU2PWNvbmZpZyBUSU5ZRFJNX0lMSTk0ODZcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE1OC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTU5Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE2MC1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTcxPWNvbmZpZyBUSU5ZRFJNX01JMDI4M1FUXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xNzMtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjE3NDpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xNzUtXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE4Mz1jb25maWcgVElOWURSTV9SRVBBUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xODUtXHRkZXBlbmRzIG9uIERSTSBcdTAwMjZcdTAwMjYgU1BJXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjE4NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xODctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE5OD1jb25maWcgVElOWURSTV9TSEFSUF9NRU1PUllcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTIwMC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBTUElcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MjAxOlx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTIwMi1cdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL0tjb25maWc9Mj1jb25maWcgRFJNX1RWRTIwMFxuLS1cbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZy04LVx0c2VsZWN0IERSTV9CUklER0VcbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZzo5Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL0tjb25maWctMTAtXHRzZWxlY3QgRFJNX1BBTkVMX0JSSURHRVxuLS1cbmRyaXZlcnMvZ3B1L2RybS91ZGwvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVURMXG4tLVxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnLTctXHRkZXBlbmRzIG9uIE1NVVxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnOjg6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS91ZGwvS2NvbmZpZy05LVx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnPTI9Y29uZmlnIERSTV9WQk9YVklERU9cbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL0tjb25maWctNC1cdGRlcGVuZHMgb24gRFJNIFx1MDAyNlx1MDAyNiBYODYgXHUwMDI2XHUwMDI2IFBDSVxuZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnOjU6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vS2NvbmZpZy02LVx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3ZjNC9LY29uZmlnPTI9Y29uZmlnIERSTV9WQzRcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmM0L0tjb25maWctMTEtXHRkZXBlbmRzIG9uIFBNXG5kcml2ZXJzL2dwdS9kcm0vdmM0L0tjb25maWc6MTI6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS92YzQvS2NvbmZpZy0xMy1cdHNlbGVjdCBEUk1fRElTUExBWV9IRE1JX0FVRElPX0hFTFBFUlxuLS1cbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnPTI9Y29uZmlnIERSTV9WRVJJU0lMSUNPTl9EQ1xuLS1cbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnLTYtXHRzZWxlY3QgRFJNX0JSSURHRV9DT05ORUNUT1JcbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnOjc6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnLTgtXHRzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSXG4tLVxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnPTI9Y29uZmlnIERSTV9WSVJUSU9fR1BVXG4tLVxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnLTUtXHRzZWxlY3QgVklSVElPXG5kcml2ZXJzL2dwdS9kcm0vdmlydGlvL0tjb25maWc6NjpcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnPTM9Y29uZmlnIERSTV9WS01TXG4tLVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy01LVx0ZGVwZW5kcyBvbiBEUk0gXHUwMDI2XHUwMDI2IE1NVVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzo2Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTctXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L0tjb25maWc9Mj1jb25maWcgRFJNX1ZNV0dGWFxuLS1cbmRyaXZlcnMvZ3B1L2RybS92bXdnZngvS2NvbmZpZy01LVx0ZGVwZW5kcyBvbiAoWDg2IFx1MDAyNlx1MDAyNiBIWVBFUlZJU09SX0dVRVNUKSB8fCBBUk02NFxuZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC9LY29uZmlnOjY6XHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cbmRyaXZlcnMvZ3B1L2RybS92bXdnZngvS2NvbmZpZy03LVx0c2VsZWN0IERSTV9UVE1cbi0tXG5kcml2ZXJzL2dwdS9kcm0veGUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fWEVcbi0tXG5kcml2ZXJzL2dwdS9kcm0veGUvS2NvbmZpZy0xNC1cdHNlbGVjdCBEUk1fQlVERFlcbmRyaXZlcnMvZ3B1L2RybS94ZS9LY29uZmlnOjE1Olx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXG5kcml2ZXJzL2dwdS9kcm0veGUvS2NvbmZpZy0xNi1cdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTgxCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkZ1enppbmcgVGFyZ2V0IEFzc2Vzc21lbnQ6IERSTV9WS01TKioKClJpZ2h0LCBgRFJNX1ZLTVNgIGxvb2tzIGxpa2UgYSBzb2xpZCBjYW5kaWRhdGUgZm9yIHNvbWUgZnV6emluZy4gSXQmIzM5O3MgZ290IHRoZSByaWdodCBwcm9maWxlLCBlbm91Z2ggY29tcGxleGl0eSB0byBleHBvc2UgaW50ZXJlc3RpbmcgYnVncywgYW5kIGl0JiMzOTtzIHdpdGhpbiB0aGUgcmlnaHQgc2NvcGUuIE5vdywgYmVmb3JlIEkgZGl2ZSBpbiBoZWFkZmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBkZXBlbmRlbmNpZXMuIEdvdHRhIGZpZ3VyZSBvdXQgd2hhdCBvdGhlciBjb21wb25lbnRzIG9yIGtlcm5lbCBtb2R1bGVzIGBEUk1fVktNU2AgaW50ZXJhY3RzIHdpdGguIFRoYXQgZGVwZW5kZW5jeSBhbmFseXNpcyBpcyBjcnVjaWFsLiBObyBwb2ludCBpbiBzcGVuZGluZyBkYXlzIGZ1enppbmcgaXQgaW4gaXNvbGF0aW9uIGlmIGl0JiMzOTtzIGludHJpY2F0ZWx5IGxpbmtlZCB0byBzb21lIG90aGVyIHN1YnN5c3RlbSB0aGF0JiMzOTtzIHRoZSByZWFsIHdlYWsgcG9pbnQuIFVuZGVyc3RhbmRpbmcgdGhlIGF0dGFjayBzdXJmYWNlIGlzIHBhcmFtb3VudC4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGFyZSBkZWFsaW5nIHdpdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBEUk1fVktNUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yLVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzozOmNvbmZpZyBEUk1fVktNU1xuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy00LVx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBLTVMgKEVYUEVSSU1FTlRBTClcJiMzNDtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTE4LVxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzoxOTpjb25maWcgRFJNX1ZLTVNfS1VOSVRfVEVTVFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy0yMC1cdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBWS01TXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkzNjQKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBwcmVzZW50ZWQgYXMgYSBzdHJlYW0gb2YgY29uc2Npb3VzbmVzczoKCioqQWRkaW5nIHRoZSBQaWVjZXMgZm9yIEZyYW1lYnVmZmVyIEVtdWxhdGlvbioqCgpBbHJpZ2h0LCBJJiMzOTttIGdvaW5nIHRvIGludGVncmF0ZSBgRFJNX1ZLTVNgIGludG8gdGhlIGBFbmFibGVDb25maWdzYC4gVGhhdCYjMzk7cyB0aGUgZmlyc3Qgc3RlcC4gIE5vdywgSSBhbHNvIHJlY2FsbCB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBpcyBjcml0aWNhbDsgdGhhdCYjMzk7cyB0aGUgdHJpZ2dlciB0aGF0IGFjdHVhbGx5IGdldHMgYGRybV9mYl9oZWxwZXJfaW9jdGxgIGludm9rZWQuICBIb2xkIG9uIGEgc2Vjb25kLi4uSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJiMzOTttIHRoaW5raW5nIHRoaXMgdGhyb3VnaCBjb3JyZWN0bHkuIEkmIzM5O20gcHJldHR5IGNlcnRhaW4gdGhhdCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMsIGluIGZhY3QsIGNhbGxlZCBmcm9tIGBkcm1fZmJfaGVscGVyLmNgLiBPa2F5LCBub3cgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uLCB0aGF0IEkgbmVlZCB0byBhbnN3ZXIuIElzIGBkcm1fZmJfaGVscGVyLmNgIGNvbXBpbGVkIHdpdGggdGhlIG5lY2Vzc2FyeSBgRFJNX0ZCREVWX0VNVUxBVElPTmAgb3B0aW9uPyBJdCBoYXMgdG8gYmUsIG9yIHRoaW5ncyBhcmUgZ29pbmcgdG8gYmUgYnJva2VuLiBJIG5lZWQgdG8gZ28gYW5kIGNvbmZpcm0gdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHJtX2ZiX2hlbHBlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU9MTU5PWRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9QQU5FTF9CUklER0UpICYjNDM7PSBicmlkZ2UvcGFuZWwub1xuZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlOjE2MDpkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKSAmIzQzOz0gZHJtX2ZiX2hlbHBlci5vXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtMTYxLW9iai0kKENPTkZJR19EUk1fS01TX0hFTFBFUikgJiM0Mzs9IGRybV9rbXNfaGVscGVyLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk4MjIKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBkZWVwIGluIHRoZSB3ZWVkcyBvZiBrZXJuZWwgZGV2ZWxvcG1lbnQgYW5kIHNwZWNpZmljYWxseSB3b3JraW5nIHdpdGggRFJNOgoKKipFeGFtaW5pbmcgdGhlIERSTSBEcml2ZXIgSW50ZXJkZXBlbmRlbmNpZXMqKgoKWWVzLCB0aGF0JiMzOTtzIHJpZ2h0LiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgZXNzZW50aWFsIGZvciB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbi4gTm93LCBsZXQmIzM5O3MganVzdCBxdWlja2x5IHZlcmlmeSB0aGF0IGBEUk1fVktNU2AgLSB0aGUgdmlydHVhbCBLTVMgZHJpdmVyIC0gaW5kZWVkIGhhbmRsZXMgdGhpcyBkZXBlbmRlbmN5LiBJIG5lZWQgdG8gbWFrZSBzdXJlIGBEUk1fVktNU2AgY29ycmVjdGx5IHNlbGVjdHMsIG9yIGRlcGVuZHMgb24sIGBEUk1fRkJERVZfRU1VTEFUSU9OYCB0byBmdW5jdGlvbiBwcm9wZXJseS4gR290dGEgY2hlY2sgdGhlIEtjb25maWcgZGVwZW5kZW5jaWVzIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IERSTV9GQkRFVl9FTVVMQVRJT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwNDgKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTmF2aWdhdGluZyB0aGUgRFJNIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKioKCk9rYXksIHNvIHRoZSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIGluY29ycmVjdCDigJMgaXQmIzM5O3MgY2xlYXIgdGhhdCB0aGUgY3VycmVudCBzZXR1cCBpc24mIzM5O3Qgc3VmZmljaWVudC4gTXkgaW5zdGluY3QgaXMgdG8gYWRkIGBEUk1fRkJERVZfRU1VTEFUSU9OYCB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgLCBidXQgd2FpdCwgaXNuJiMzOTt0IHRoYXQgYSBib29sZWFuIGNvbmZpZz8gUmlnaHQsIGl0IGlzLiBHb3R0YSBiZSBjYXJlZnVsIHdpdGggdGhvc2UuCgpMZXQmIzM5O3MgcXVpY2tseSBzY2FuIHRoZSByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHRvIHNlZSB3aGF0JiMzOTtzIGNvbm5lY3RlZC4gQWgsIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAgaXMgc2VsZWN0ZWQgYnkgYERSTV9WS01TYC4gVGhhdCBzZWVtcyByZWxldmFudC4gQW5kIGBEUk1fQ0xJRU5UX1NFTEVDVElPTmAgdGhlbiBzZWxlY3RzIGBEUk1fQ0xJRU5UX0xJQmAgKmlmKiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgYWxzbyBlbmFibGVkLgoKSG1tLCBgRFJNX0NMSUVOVF9MSUJg4oCmIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgaW50ZXJhY3Rpb25zIG9mIHRoZXNlIGNsaWVudCBkcml2ZXJzLiBCZXN0IGdvIGJhY2sgdG8gdGhlIHNvdXJjZTsgSSBzaG91bGQgcmV2aXNpdCB0aGUgYGRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWdgIGZpbGUgYW5kIHJldmlldyB0aGUgZGVwZW5kZW5jaWVzIGFuZCBpbXBsaWNhdGlvbnMgb2YgZWFjaCBvZiB0aGVzZSBvcHRpb25zIGluIG1vcmUgZGV0YWlsLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSByZWFsIGFuc3dlciBsaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFwmIzM0O1N1cHBvcnRlZCBEUk0gY2xpZW50c1wmIzM0O1xuLS1cbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzAtXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjMxOmNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVx0Ym9vbCBcJiMzNDtFbmFibGUgbGVnYWN5IGZiZGV2IHN1cHBvcnQgZm9yIHlvdXIgbW9kZXNldHRpbmcgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTQ4CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMTE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKktlcm5lbCBDb25maWd1cmF0aW9uIGFuZCB2YmxhbmsgU3luY2hyb25pemF0aW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBpcyB0aGUgY3J1Y2lhbCBjb25maWd1cmF0aW9uIG9wdGlvbiB3ZSBuZWVkIHRvIGJlIGxvb2tpbmcgYXQuIEkmIzM5O2xsIGdvIGFoZWFkIGFuZCBhZGQgYm90aCBgRFJNX1ZLTVNgIGFuZCBgRFJNX0ZCREVWX0VNVUxBVElPTmAgdG8gYEVuYWJsZUNvbmZpZ3NgLCB0aGF0IHNlZW1zIGxpa2UgdGhlIGNvcnJlY3QgYWN0aW9uIHRvIHRha2UuIE5vdywgbGV0JiMzOTtzIGZvY3VzIG9uIHRoZSBzeW1ib2xzIHJlbGF0ZWQgdG8gdmJsYW5rIHN5bmNocm9uaXphdGlvbjogYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gSSBzZWUgdGhhdCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBpcyBhIG5ldyBmdW5jdGlvbiwgaW50ZXJlc3RpbmcuIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3Mgbm90IHN0YXRpYyBpcyB3b3J0aCBub3RpbmcuIEp1c3QgdG8gYmUgc3VyZSwgSSBzaG91bGQgcmVhbGx5IGNoZWNrIGBkcm1fdmJsYW5rLmNgIHRvIHNlZSBob3cgdGhpcyBuZXcgZnVuY3Rpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBhbmQgaWYgdGhlcmUgYXJlIGFueSBzdWJ0bGUgaXNzdWVzIHRoYXQgSSBuZWVkIHRvIGJlIGF3YXJlIG9mLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM9MTI5OD1FWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMjk5LVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzAwOmludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKVxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzAxLXtcbi0tXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jPTEzMzQ9aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMzUte1xuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYzoxMzM2Olx0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMTg6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExNjUKCQkJCQkJCW91dHB1dDogMTY3CgkJCQkJCQl0aG91Z2h0czogMzIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRGVjaXNpb24gZm9yIERSTSBJbnRlcm5hbCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBJJiMzOTttIHRoaW5raW5nLCB0aGlzIGlzbiYjMzk7dCBhIHN0YXRpYyBwaWVjZSBvZiBjb2RlLCB3aGljaCBtZWFucyBpdCBjYW4gYmUgdGFyZ2V0ZWQsIHJpZ2h0PyBXYWl0LCBob2xkIG9uLCBpcyB0aGlzIHNvbWV0aGluZyB0aGF0IGdldHMgZXhwb3J0ZWQ/IE5vcGUsIGl0JiMzOTtzIG5vdCBleHBvcnRlZC4gQWgsIGJ1dCBpdCYjMzk7cyBkZWZpbmVkIHdpdGhpbiBgZHJtX2ludGVybmFsLmhgLCBzbyBpdCYjMzk7cyBhY2Nlc3NpYmxlIHdpdGhpbiB0aGUgRFJNIHN1YnN5c3RlbSBpdHNlbGYuCgpOb3csIHRoZSBiaWcgcXVlc3Rpb246IElzIHRoaXMgd29ydGggZnV6emluZz8gWWVzLCB0aGlzIHNlZW1zIGxpa2UgYSBzb2xpZCBjYW5kaWRhdGUuIEl0IGFkZHJlc3NlcyBhIGZhbHNlIHBvc2l0aXZlIGBXQVJOYCwgd2hpY2ggaXMgYSBwcmV0dHkgc2VyaW91cyBpc3N1ZSBzaW5jZSBzeXprYWxsZXIgaXMgdHJlYXRpbmcgdGhhdCBhcyBhIGZ1bGwtYmxvd24gY3Jhc2guIFRoYXQmIzM5O3MgYSByZWQgZmxhZy4gRnV6emluZyB0aGlzIHdvdWxkIGNvbmZpcm0gdGhhdCB0aGUgJiMzOTtjcmFzaCYjMzk7IGlzIHNxdWFzaGVkIGFuZCB0aGF0IHdlIGNhbiBkZWx2ZSBkZWVwZXIgaW50byB0aGUgbW9kaWZpZWQgY29kZSBwYXRoLgoKSGFuZyBvbiBhIHNlYy4gSSYjMzk7bSBiZWluZyBwcm9tcHRlZCB0byBjaGVjayBmb3IgZGVjb3JhdGl2ZSBjaGFuZ2VzIG9ubHkuIFRoZSBwcm9tcHQgc2F5cywgc3BlY2lmaWNhbGx5OiAmIzM0O1JldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6IC0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuJiMzNDsgQnV0IEkmIzM5O3ZlIGFscmVhZHkgcmVhc29uZWQgdGhhdCB0aGlzIGlzIG1vcmUgdGhhbiBqdXN0IGxvZ2dpbmcuIGBXQVJOYCBpcyBhbiBhc3NlcnRpb24gdGhhdCYjMzk7cyB0cmlnZ2VyaW5nIGEgYnVnIG9yIGNyYXNoIGluIHRoZXNlIGZ1enppbmcgZW52aXJvbm1lbnRzLiBGaXhpbmcgYSBgV0FSTmAgbGlrZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4LiBUaGlzIGlzIG5vdCBwdXJlbHkgZGVjb3JhdGl2ZS4KCkFscmlnaHQsIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGNoYW5nZXMgcXVpY2tseS4gSXQmIzM5O3MganVzdCBleHRyYWN0aW5nIHRoYXQgaW50ZXJuYWwgZnVuY3Rpb24gYW5kIGNhbGxpbmcgaXQgZnJvbSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AuIE5vdGhpbmcgZWxzZS4gT2theSwgSSYjMzk7bSBjb25maWRlbnQuIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpOb3csIGxldCYjMzk7cyBsb29rIGF0IHRoZSBiZXN0IGZvY3VzIHN5bWJvbC4gSXMgYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgYSBnb29kIGZvY3VzPyBZZXMsIGl0IGlzIHRoZSBjb3JlIGZ1bmN0aW9uIHRoYXQgZ290IHRoZSBtb2RpZmljYXRpb24uIEFuZCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMgYWxzbyBnb29kIGJlY2F1c2UgaXQgaXMgdGhlIGNhbGxlciB0aGF0IHdhcyBtb2RpZmllZC4KCkxldCYjMzk7cyBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE4OjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEUk1fVktNUyYjMzQ7LAogICAgJiMzNDtEUk1fRkJERVZfRU1VTEFUSU9OJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayYjMzQ7LAogICAgJiMzNDtkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBmYWxzZSBwb3NpdGl2ZSBXQVJOICh3aGljaCB0cmlnZ2VycyBhIGNyYXNoIGluIGZ1enppbmcgZW52aXJvbm1lbnRzIHdpdGggcGFuaWNfb25fd2FybikgYnkgZXh0cmFjdGluZyB0aGUgY29yZSBsb2dpYyBvZiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgaW50byBhbiBpbnRlcm5hbCBmdW5jdGlvbiB3aXRob3V0IHRoZSB3YXJuaW5nLCBhbmQgdXNpbmcgaXQgaW4gdGhlIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsgcGF0aC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgYnVnIGZpeCB0aGF0IGFsbG93cyBmdXp6ZXJzIHRvIGV4cGxvcmUgdGhpcyBjb2RlIHBhdGggd2l0aG91dCBjcmFzaGluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RFJNX1ZLTVMmIzM0OywKICAgICYjMzQ7RFJNX0ZCREVWX0VNVUxBVElPTiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsmIzM0OywKICAgICYjMzQ7ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgZmFsc2UgcG9zaXRpdmUgV0FSTiAod2hpY2ggdHJpZ2dlcnMgYSBjcmFzaCBpbiBmdXp6aW5nIGVudmlyb25tZW50cyB3aXRoIHBhbmljX29uX3dhcm4pIGJ5IGV4dHJhY3RpbmcgdGhlIGNvcmUgbG9naWMgb2YgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIGludG8gYW4gaW50ZXJuYWwgZnVuY3Rpb24gd2l0aG91dCB0aGUgd2FybmluZywgYW5kIHVzaW5nIGl0IGluIHRoZSBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rIHBhdGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGJ1ZyBmaXggdGhhdCBhbGxvd3MgZnV6emVycyB0byBleHBsb3JlIHRoaXMgY29kZSBwYXRoIHdpdGhvdXQgY3Jhc2hpbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0NjoyOS41OTYwMzkyMDZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODAwMDQ2MDMyOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRFJNX1ZLTVNcIixcbiAgICBcIkRSTV9GQkRFVl9FTVVMQVRJT05cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gICAgXCJkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGZhbHNlIHBvc2l0aXZlIFdBUk4gKHdoaWNoIHRyaWdnZXJzIGEgY3Jhc2ggaW4gZnV6emluZyBlbnZpcm9ubWVudHMgd2l0aCBwYW5pY19vbl93YXJuKSBieSBleHRyYWN0aW5nIHRoZSBjb3JlIGxvZ2ljIG9mIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayBpbnRvIGFuIGludGVybmFsIGZ1bmN0aW9uIHdpdGhvdXQgdGhlIHdhcm5pbmcsIGFuZCB1c2luZyBpdCBpbiB0aGUgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayBwYXRoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4IHRoYXQgYWxsb3dzIGZ1enplcnMgdG8gZXhwbG9yZSB0aGlzIGNvZGUgcGF0aCB3aXRob3V0IGNyYXNoaW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0NjoyOS41OTYwNDQzNTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzMDgxNzAwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDYwYTkxZjIxZjFhYmVhNjI4NTA2NGUxNzUzZTBlN2E0ZmM2NzFiZjdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBBdWcgNiAxODo0NjoyOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcXG5pbmRleCAwMDgwYThlOTU1NmE1Li43ZmYwZjI0YTBmNTAyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xcbkBAIC0xMzI4LDcgKzEzMjgsNyBAQCBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaVxcbiBcXHQgKi9cXG4gXFx0cmV0ID0gZHJtX2NydGNfdmJsYW5rX2dldChjcnRjKTtcXG4gXFx0aWYgKCFyZXQpIHtcXG4tXFx0XFx0ZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKGNydGMpO1xcbitcXHRcXHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoY3J0Yyk7XFxuIFxcdFxcdGRybV9jcnRjX3ZibGFua19wdXQoY3J0Yyk7XFxuIFxcdH1cXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oXFxuQEAgLTExNSw2ICsxMTUsNyBAQCB2b2lkIGRybV92YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuIHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpO1xcbiB1NjQgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XFxuK2ludCBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWwoc3RydWN0IGRybV9jcnRjICpjcnRjKTtcXG4gXFxuIC8qIGRybV92Ymxhbmtfd29yay5jICovXFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fdmJsYW5rX2ZsdXNoX3dvcmtlcihzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmspXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXFxuaW5kZXggZjkwZmIyZDEzZTQyMy4uNzc1OGU4MjY1MTZlZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXFxuKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xcbkBAIC0xMjk3LDE3ICsxMjk3LDcgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcXG4gfVxcbiBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xcbiBcXG4tLyoqXFxuLSAqIGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayAtIHdhaXQgZm9yIG9uZSB2YmxhbmtcXG4tICogQGNydGM6IERSTSBjcnRjXFxuLSAqXFxuLSAqIFRoaXMgd2FpdHMgZm9yIG9uZSB2YmxhbmsgdG8gcGFzcyBvbiBAY3J0YywgdXNpbmcgdGhlIGlycSBkcml2ZXIgaW50ZXJmYWNlcy5cXG4tICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLlxcbi0gKiBkdWUgdG8gbGFjayBvZiBkcml2ZXIgc3VwcG9ydCBvciBiZWNhdXNlIHRoZSBjcnRjIGlzIG9mZi5cXG4tICpcXG4tICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy5cXG4tICovXFxuLWludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKVxcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcXG4ge1xcbiBcXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cXHUwMDNlZGV2O1xcbiBcXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xcbkBAIC0xMzI2LDEyICsxMzE2LDMwIEBAIGludCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKVxcbiBcXHRcXHRcXHRcXHQgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksXFxuIFxcdFxcdFxcdFxcdCBtc2Vjc190b19qaWZmaWVzKDEwMDApKTtcXG4gXFxuLVxcdGRybV9XQVJOKGRldiwgcmV0ID09IDAsIFxcXCJ2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcXFxuXFxcIiwgcGlwZSk7XFxuLVxcbiBcXHRkcm1fdmJsYW5rX3B1dChkZXYsIHBpcGUpO1xcbiBcXG4gXFx0cmV0dXJuIHJldCA/IDAgOiAtRVRJTUVET1VUO1xcbiB9XFxuK1xcbisvKipcXG4rICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFua1xcbisgKiBAY3J0YzogRFJNIGNydGNcXG4rICpcXG4rICogVGhpcyB3YWl0cyBmb3Igb25lIHZibGFuayB0byBwYXNzIG9uIEBjcnRjLCB1c2luZyB0aGUgaXJxIGRyaXZlciBpbnRlcmZhY2VzLlxcbisgKiBJdCBpcyBhIGZhaWx1cmUgdG8gY2FsbCB0aGlzIHdoZW4gdGhlIHZibGFuayBpcnEgZm9yIEBjcnRjIGlzIGRpc2FibGVkLCBlLmcuXFxuKyAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMgaXMgb2ZmLlxcbisgKlxcbisgKiBSZXR1cm5zOiAwIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIG9uIGZhaWx1cmVzLlxcbisgKi9cXG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXFxuK3tcXG4rXFx0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcXG4rXFxuK1xcdGRybV9XQVJOKGNydGMtXFx1MDAzZWRldiwgcmV0ID09IC1FVElNRURPVVQsIFxcXCJ2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcXFxuXFxcIixcXG4rXFx0XFx0IGRybV9jcnRjX2luZGV4KGNydGMpKTtcXG4rXFxuK1xcdHJldHVybiByZXQ7XFxuK31cXG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y193YWl0X29uZV92YmxhbmspO1xcbiBcXG4gLyoqXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ2OjMwLjEyODAzODI5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTc5NDcyNTk1ODU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRSTV9WS01TXCIsXG4gICAgXCJEUk1fRkJERVZfRU1VTEFUSU9OXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiLFxuICAgIFwiZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmYWxzZSBwb3NpdGl2ZSBXQVJOICh3aGljaCB0cmlnZ2VycyBhIGNyYXNoIGluIGZ1enppbmcgZW52aXJvbm1lbnRzIHdpdGggcGFuaWNfb25fd2FybikgYnkgZXh0cmFjdGluZyB0aGUgY29yZSBsb2dpYyBvZiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgaW50byBhbiBpbnRlcm5hbCBmdW5jdGlvbiB3aXRob3V0IHRoZSB3YXJuaW5nLCBhbmQgdXNpbmcgaXQgaW4gdGhlIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsgcGF0aC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgYnVnIGZpeCB0aGF0IGFsbG93cyBmdXp6ZXJzIHRvIGV4cGxvcmUgdGhpcyBjb2RlIHBhdGggd2l0aG91dCBjcmFzaGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNjBhOTFmMjFmMWFiZWE2Mjg1MDY0ZTE3NTNlMGU3YTRmYzY3MWJmN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTg6NDY6MjggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbmluZGV4IDAwODBhOGU5NTU2YTUuLjdmZjBmMjRhMGY1MDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1xuQEAgLTEzMjgsNyArMTMyOCw3IEBAIGludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpXG4gXHQgKi9cbiBcdHJldCA9IGRybV9jcnRjX3ZibGFua19nZXQoY3J0Yyk7XG4gXHRpZiAoIXJldCkge1xuLVx0XHRkcm1fY3J0Y193YWl0X29uZV92YmxhbmsoY3J0Yyk7XG4rXHRcdGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbiBcdFx0ZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbmluZGV4IGY4OTNiMWUzYTU5NmUuLjZmZDMzNjcyZDIwNmEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmhcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaFxuQEAgLTExNSw2ICsxMTUsNyBAQCB2b2lkIGRybV92YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4gaW50IGRybV92YmxhbmtfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbiB2b2lkIGRybV92YmxhbmtfcHV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTtcbiB1NjQgZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7XG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpO1xuIFxuIC8qIGRybV92Ymxhbmtfd29yay5jICovXG4gc3RhdGljIGlubGluZSB2b2lkIGRybV92YmxhbmtfZmx1c2hfd29ya2VyKHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuaylcbmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuY1xuaW5kZXggZjkwZmIyZDEzZTQyMy4uNzc1OGU4MjY1MTZlZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmNcbisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmNcbkBAIC0xMjk3LDE3ICsxMjk3LDcgQEAgdm9pZCBkcm1fY3J0Y192YmxhbmtfcHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB9XG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y192YmxhbmtfcHV0KTtcbiBcbi0vKipcbi0gKiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgLSB3YWl0IGZvciBvbmUgdmJsYW5rXG4tICogQGNydGM6IERSTSBjcnRjXG4tICpcbi0gKiBUaGlzIHdhaXRzIGZvciBvbmUgdmJsYW5rIHRvIHBhc3Mgb24gQGNydGMsIHVzaW5nIHRoZSBpcnEgZHJpdmVyIGludGVyZmFjZXMuXG4tICogSXQgaXMgYSBmYWlsdXJlIHRvIGNhbGwgdGhpcyB3aGVuIHRoZSB2YmxhbmsgaXJxIGZvciBAY3J0YyBpcyBkaXNhYmxlZCwgZS5nLlxuLSAqIGR1ZSB0byBsYWNrIG9mIGRyaXZlciBzdXBwb3J0IG9yIGJlY2F1c2UgdGhlIGNydGMgaXMgb2ZmLlxuLSAqXG4tICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBvbiBmYWlsdXJlcy5cbi0gKi9cbi1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB7XG4gXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4gXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xuQEAgLTEzMjYsMTIgKzEzMTYsMzAgQEAgaW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4gXHRcdFx0XHQgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksXG4gXHRcdFx0XHQgbXNlY3NfdG9famlmZmllcygxMDAwKSk7XG4gXG4tXHRkcm1fV0FSTihkZXYsIHJldCA9PSAwLCBcInZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCIsIHBpcGUpO1xuLVxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbiBcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbiB9XG4rXG4rLyoqXG4rICogZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIC0gd2FpdCBmb3Igb25lIHZibGFua1xuKyAqIEBjcnRjOiBEUk0gY3J0Y1xuKyAqXG4rICogVGhpcyB3YWl0cyBmb3Igb25lIHZibGFuayB0byBwYXNzIG9uIEBjcnRjLCB1c2luZyB0aGUgaXJxIGRyaXZlciBpbnRlcmZhY2VzLlxuKyAqIEl0IGlzIGEgZmFpbHVyZSB0byBjYWxsIHRoaXMgd2hlbiB0aGUgdmJsYW5rIGlycSBmb3IgQGNydGMgaXMgZGlzYWJsZWQsIGUuZy5cbisgKiBkdWUgdG8gbGFjayBvZiBkcml2ZXIgc3VwcG9ydCBvciBiZWNhdXNlIHRoZSBjcnRjIGlzIG9mZi5cbisgKlxuKyAqIFJldHVybnM6IDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3Igb24gZmFpbHVyZXMuXG4rICovXG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4re1xuK1x0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbitcbitcdGRybV9XQVJOKGNydGMtXHUwMDNlZGV2LCByZXQgPT0gLUVUSU1FRE9VVCwgXCJ2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcblwiLFxuK1x0XHQgZHJtX2NydGNfaW5kZXgoY3J0YykpO1xuK1xuK1x0cmV0dXJuIHJldDtcbit9XG4gRVhQT1JUX1NZTUJPTChkcm1fY3J0Y193YWl0X29uZV92YmxhbmspO1xuIFxuIC8qKlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6MzAuMTI4MDQxMjhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNTI2NTE4NTgwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoIGZvciBGdXp6aW5nIFdvcnRoaW5lc3MqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgLCBgZHJtX2ludGVybmFsLmhgLCBhbmQgYGRybV92YmxhbmsuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSBhcm91bmQgaG93IHdlIGhhbmRsZSB2YmxhbmsgdGltZW91dHMsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGZ1bmN0aW9uLiBJbml0aWFsbHksIHRoZSBwYXRjaCByZW5hbWVzIHRoZSBvcmlnaW5hbCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rYCB0byBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBhbmQgcmVtb3ZlcyB0aGUgdGltZW91dCB3YXJuaW5nIChgZHJtX1dBUk5gKS4gIEEgKm5ldyogYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua2AgaXMgdGhlbiBpbnRyb2R1Y2VkLCBlc3NlbnRpYWxseSBjYWxsaW5nIHRoZSBpbnRlcm5hbCB2ZXJzaW9uIGFuZCAqdGhlbiogZG9pbmcgdGhlIGBkcm1fV0FSTmAuICBJbiBgZHJtX2NsaWVudF9tb2Rlc2V0LmNgLCB0aGV5J3ZlIHN3YXBwZWQgdGhlIGNhbGwgdG8gdXNlIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGluc3RlYWQgb2YgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiaXMgdGhpcyB3b3J0aCBmdXp6aW5nP1wiIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgdGVjaG5pY2FsbHkgcmVtb3ZpbmcgYSB3YXJuaW5nIGluIG9uZSBzcGVjaWZpYyBjb2RlcGF0aC4gSXMgdGhhdCBhICpyZWFsKiBmdW5jdGlvbmFsIGNoYW5nZSBmcm9tIGEgZnV6emluZyBwZXJzcGVjdGl2ZT8gSXQgc3VidGx5IGFsdGVycyBjb250cm9sIGZsb3cgYnkgc2tpcHBpbmcgdGhlIHdhcm5pbmcgdW5kZXIgY2VydGFpbiB0aW1lb3V0IGNvbmRpdGlvbnMuICBJJ20gZGVhbGluZyB3aXRoIHRoZSBEUk0gY29yZSwgc28gSSBuZWVkIHRvIGJlIG1vcmUgY2FyZWZ1bC5cblxuTGV0J3MgZGlnIGRlZXBlcjogdGhlIHByaW1hcnkgZWZmZWN0IGlzIHByZXZlbnRpbmcgdGhlIGBkcm1fV0FSTmAgZnJvbSBmaXJpbmcgZHVyaW5nIHRoZSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgdGltZW91dC4gIFdoaWxlIGluaXRpYWxseSwgaXQgKnNlZW1zKiBsaWtlIGEgcHVyZWx5IGNvc21ldGljIGNoYW5nZSAocmVtb3ZpbmcgYSB3YXJuaW5nKSwgYnV0IGBkcm1fV0FSTmAgaXNuJ3QganVzdCBkZWNvcmF0aW9uLiBgZHJtX1dBUk5gIGV4cGFuZHMgdG8gYFdBUk5gLCB3aGljaCBjYW4gdHJpZ2dlciBhIGtlcm5lbCBwYW5pYyBpZiBgcGFuaWNfb25fd2FybmAgaXMgc2V0LCBhbmQgdGhhdCdzICp2ZXJ5KiByZWxldmFudCBmb3IgZnV6emluZyEgU28gcmVtb3ZpbmcgdGhhdCBgZHJtX1dBUk5gICpwcmV2ZW50cyogYSBwb3RlbnRpYWwgY3Jhc2ggb3IgcGFuaWMsIGVzcGVjaWFsbHkgZHVyaW5nIGZ1enppbmcgd2hlbiB3ZSdyZSBvZnRlbiB0ZXN0aW5nIHdpdGggdGhhdCBmbGFnIGVuYWJsZWQuIFRoaXMgbWFrZXMgaXQgYSBidWcgZml4IGZvciBhIFwiZmFsc2UgcG9zaXRpdmVcIiBvciBhbiBleHBlY3RlZCB0aW1lb3V0LiAgVGhpcyBpcyBhIHNpZ25pZmljYW50IGNoYW5nZSBiZWNhdXNlIGl0IGNhbiBwcmV2ZW50IGEgZnV6emluZyBjYW1wYWlnbiBmcm9tIGJlaW5nIHNob3J0IGNpcmN1aXRlZC5cblxuQ29uc2lkZXJpbmcgdGhlIHByb21wdCdzIGd1aWRlbGluZXMsIGlzIHRoaXMganVzdCBcImRlY29yYXRpdmVcIiBsb2dnaW5nPyBOby4gYFdBUk5gIGNhbiBiZSBmYXRhbC4gIFdoaWxlIHRoZSAqcHJpbWFyeSogZXhlY3V0aW9uIGZsb3cgaXNuJ3QgY2hhbmdlZCwgYXZvaWRpbmcgYSBjcmFzaCBpcyBhICpjcml0aWNhbCogZnVuY3Rpb25hbCBhbHRlcmF0aW9uIGluIHRoZSBjb250ZXh0IG9mIGZ1enppbmcuIFRoZSBwYXRjaCBlZmZlY3RpdmVseSBleHRyYWN0cyBhbmQgcmV1c2VzIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgLCBrZWVwaW5nIHRoZSBvcmlnaW5hbCBsb2dpYyB0aGUgc2FtZSBpbiB0ZXJtcyBvZiB3YWl0aW5nIGZvciBhIHZibGFuaywgYnV0IHNpbXBseSBhdm9pZGluZyB0aGUgYGRybV9XQVJOYCBpbnNpZGUgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGJ5IG9ubHkgcHJpbnRpbmcgdGhlIHdhcm5pbmcgYXQgb25lIHBvaW50IG9mIHRoZSBmdW5jdGlvbiBub3cuXG5cbk5vdywgbGV0J3MgbG9vayBhdCB0aGUgY29kZTpcbmBgYGNcbi1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbitpbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcbiB7XG4gXHRzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy1cdTAwM2VkZXY7XG4gXHRpbnQgcGlwZSA9IGRybV9jcnRjX2luZGV4KGNydGMpO1xuQEAgLTEzMjYsMTIgKzEzMTYsMzAgQEAgaW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4gXHRcdFx0XHQgbGFzdCAhPSBkcm1fdmJsYW5rX2NvdW50KGRldiwgcGlwZSksXG4gXHRcdFx0XHQgbXNlY3NfdG9famlmZmllcygxMDAwKSk7XG4gXG4tXHRkcm1fV0FSTihkZXYsIHJldCA9PSAwLCBcInZibGFuayB3YWl0IHRpbWVkIG91dCBvbiBjcnRjICVpXFxuXCIsIHBpcGUpO1xuLVxuIFx0ZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTtcbiBcbiBcdHJldHVybiByZXQgPyAwIDogLUVUSU1FRE9VVDtcbiB9XG4rXG4raW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXG4re1xuK1x0aW50IHJldCA9IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChjcnRjKTtcbitcbitcdGRybV9XQVJOKGNydGMtXHUwMDNlZGV2LCByZXQgPT0gLUVUSU1FRE9VVCwgXCJ2Ymxhbmsgd2FpdCB0aW1lZCBvdXQgb24gY3J0YyAlaVxcblwiLFxuK1x0XHQgZHJtX2NydGNfaW5kZXgoY3J0YykpO1xuK1xuK1x0cmV0dXJuIHJldDtcbit9XG4gYGBgXG5UaGUgcGF0Y2ggbm93IHJlbW92ZXMgdGhlIGBkcm1fV0FSTmAgZnJvbSB0aGUgdGltZW91dCBwYXRoIGluIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIGZvciBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIG1vdmluZyBpdCB0byBhIGNhbGwgb2YgdGhlIGludGVybmFsIGZ1bmN0aW9uIGFuZCB0aGVuIHRyaWdnZXJpbmcgdGhlIHdhcm5pbmcgdGhlcmUuIEluIGVzc2VuY2UsIGl0ICpkb2VzKiBjaGFuZ2UgdGhlIHBvdGVudGlhbCBiZWhhdmlvciB1bmRlciBlcnJvciBjb25kaXRpb25zLiBJdCBkb2Vzbid0IGZpbmRcblxuIiwiSW5wdXRUb2tlbnMiOjMxMDUsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjkzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6NTUuMzkzMjMwMDg0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMDkwMzg4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM9MTI5NT1FWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF9kcG1zKTtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk3LS8qKlxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMjk4OiAqIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoKSAtIFdhaXQgZm9yIHRoZSBuZXh0IFZCTEFOSyB0byBvY2N1clxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMjk5LSAqIEBjbGllbnQ6IERSTSBjbGllbnRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYy0xMzA4LSAqL1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzA5OmludCBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCB1bnNpZ25lZCBpbnQgY3J0Y19pbmRleClcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMxMC17XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMzOC19XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jOjEzMzk6RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTM0MC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6NTUuNTA0MTM3OTgxWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgzMzI5NTk5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpczpcblxuKipJbnZlc3RpZ2F0aW5nIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBDYWxscyoqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBmdW5jdGlvbiwgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLCBpcyB1c2VkLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gdHJhY2UgaXRzIGNhbGwgbG9jYXRpb25zLiBJIHdhbnQgdG8gc2VlIHdoaWNoIG90aGVyIGZ1bmN0aW9ucyBhcmUgaW52b2tpbmcgaXQuIFRoaXMgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaXRzIHJvbGUgd2l0aGluIHRoZSBkaXNwbGF5IGRyaXZlciBmcmFtZXdvcmsgYW5kIGhvdyBpdCBjb250cmlidXRlcyB0byB0aGUgb3ZlcmFsbCBtb2Rlc2V0dGluZyBwcm9jZXNzLiBCeSBpZGVudGlmeWluZyB0aGUgY2FsbGVycywgSSBjYW4gaW5mZXIgdGhlIGNvbnRleHQgaW4gd2hpY2ggaXQncyBiZWluZyB1c2VkIGFuZCwgdGhlcmVmb3JlLCBpdHMgc2lnbmlmaWNhbmNlIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uIEknbGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgdG9vbHMgZm9yIHRoaXMga2luZCBvZiBpbnZlc3RpZ2F0aW9uOyBJIGNhbiB1c2UgZ3JlcCwgY3Njb3BlLCBvciBldmVuIGEgbW9yZSBzb3BoaXN0aWNhdGVkIElERS1pbnRlZ3JhdGVkIHNlYXJjaCB0byBmaW5kIHRoZSBpbnN0YW5jZXMgd2hlcmUgYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGlzIGNhbGxlZC4gVGhlIGdvYWwgaXMgdG8gYnVpbGQgYSBtZW50YWwgbW9kZWwgb2YgaXRzIGV4ZWN1dGlvbiBwYXRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Nzk0LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6NTkuMzM3NDM3NjE3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTQ0Mzg4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jPTEyOTU9RVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X21vZGVzZXRfZHBtcyk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5Ny0vKipcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTI5ODogKiBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rKCkgLSBXYWl0IGZvciB0aGUgbmV4dCBWQkxBTksgdG8gb2NjdXJcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTI5OS0gKiBAY2xpZW50OiBEUk0gY2xpZW50XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmMtMTMwOC0gKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudF9tb2Rlc2V0LmM6MTMwOTppbnQgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgdW5zaWduZWQgaW50IGNydGNfaW5kZXgpXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMTAte1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzMzgtfVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYzoxMzM5OkVYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayk7XFxuZHJpdmVycy9ncHUvZHJtL2RybV9jbGllbnRfbW9kZXNldC5jLTEzNDAtXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTMxNT1zdGF0aWMgdm9pZCBkcm1fZmJfaGVscGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIpXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyNi1cXHRpZiAoY3J0Y19pbmRleCBcXHUwMDNlPSAwKVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmM6MzI3OlxcdFxcdGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsoXFx1MDAyNmhlbHBlci1cXHUwMDNlY2xpZW50LCBjcnRjX2luZGV4KTtcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jLTMyOC1cXHRtdXRleF91bmxvY2soXFx1MDAyNmhlbHBlci1cXHUwMDNlbG9jayk7XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jPTk4ND1pbnQgZHJtX2ZiX2hlbHBlcl9pb2N0bChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdW5zaWduZWQgaW50IGNtZCxcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAwOS1cXHRcXHQgKi9cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jOjEwMTA6XFx0XFx0cmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFuayhcXHUwMDI2ZmJfaGVscGVyLVxcdTAwM2VjbGllbnQsIDApO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMtMTAxMS1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDY6NTkuNzc2ODg4MjM0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY2NTk1OTQ2MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBhIERSTSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgRFJNIHBhdGNoIGFuZCB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBpdCdzIHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgZnVuY3Rpb24gaGVyZSBpcyBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AsIGNhbGxlZCBmcm9tIGBkcm1fZmJfaGVscGVyX2ZiX2RpcnR5YCBhbmQgdGhlIEZCSU9fV0FJVEZPUlZTWU5DIGlvY3RsLCBzbyBpdCdzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgZmJkZXYuIFRoZSBwYXRjaCBjaGFuZ2VzIGhvdyBhIHZibGFuayB3YWl0IGlzIGhhbmRsZWQgaW50ZXJuYWxseS5cblxuVGhlIGNoYW5nZSBjZW50ZXJzIGFyb3VuZCByZW1vdmluZyBhIGBkcm1fV0FSTmAgY2FsbC4gSW5pdGlhbGx5LCBteSB0aG91Z2h0IHdhcywgXCJJcyBhIGBkcm1fV0FSTmAgYSBwdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2UsIGxpa2UgbG9nZ2luZz9cIiBUaGUgcHJvbXB0IHNwZWNpZmljYWxseSBzYXlzIFwiV29ydGhGdXp6aW5nPWZhbHNlXCIgaWYgaXQncyAqb25seSogZGVjb3JhdGl2ZSBjaGFuZ2VzLCBsb2dnaW5nLCBvciB0cmFjZXBvaW50cy4gYGRybV9XQVJOYCBwcmludHMgYSB3YXJuaW5nIGFuZCBhIHN0YWNrIHRyYWNlLiBJdCdzIGVzc2VudGlhbGx5IGEgYFdBUk5gLiBBbmQgeWVzLCBieSBpdHNlbGYsIHJlbW92aW5nIHRoZSBXQVJOIGRvZXNuJ3QgY2hhbmdlIGV4ZWN1dGlvbiAqZmxvdyogdGhhdCBtdWNoLiBJdCBkb2VzIGF2b2lkIGEgd2FybmluZy4gV2FybmluZ3MgYXJlIGNvbnNpZGVyZWQgYnVncyBieSBmdXp6ZXJzIGxpa2UgU3l6a2FsbGVyIHdoaWNoIGNhbiB0cmVhdCBXQVJOcyBhcyBjcmFzaGVzIGlmIGBwYW5pY19vbl93YXJuYCBpcyBzZXQuXG5cbkkgdGhvdWdodCBhYm91dCBpdC4gSWYgaXQgKm9ubHkqIHJlbW92ZXMgYSB3YXJuaW5nLCBpdCdzIHRlY2huaWNhbGx5IGEgYnVnIGZpeCBmcm9tIHRoZSBmdXp6ZXIncyBwZXJzcGVjdGl2ZSBzaW5jZSBpdCdzIGZpeGluZyBhIHBvdGVudGlhbCBjcmFzaCB0aGF0J3MgdHJpcHBpbmcgdGhlIHdhcm5pbmcsIHNvIHRoZSBwYXRjaCBpcyBmdW5jdGlvbmFsLlxuXG5CdXQgdGhlbiBJIHdlbnQgYmFjayBhbmQgcmUtcmVhZCB0aGUgY29kZS4gVGhlIHBhdGNoIHJlcGxhY2VkIGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtgIHdpdGggYGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbGAgaW4gYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlbSBpcyB0aGF0IGBkcm1fY3J0Y193YWl0X29uZV92YmxhbmtfaW50ZXJuYWxgIGlzIG5vdCBjYWxsaW5nIGBkcm1fV0FSTmAuIFRoaXMgbWVhbnMgdGhhdCB0aGUgcGF0Y2ggKm9ubHkqIHJlbW92ZXMgdGhpcyB3YXJuaW5nLiBUaGUgcmV0dXJuIHZhbHVlcyBhcmUgdGhlIHNhbWU7IHRoZSBmdW5jdGlvbmFsIG91dGNvbWUgZG9lc24ndCBjaGFuZ2UuXG5cbkkgd3Jlc3RsZWQgd2l0aCB0aGUgcHJvbXB0J3Mgd29yZGluZy4gSXQgZG9lc24ndCAqZXhwbGljaXRseSogbWVudGlvbiBgV0FSTmAgb3IgYEJVR2AsIGJ1dCB0aGUgcHJvbXB0IGdpdmVzIG1lIHRoZSBmb2xsb3dpbmcgZGlyZWN0aW9uOiBcImRldGVybWluZSBpZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIgVGhlIHByb21wdCBpcyBhc2tpbmcgbWUgYWJvdXQgKmZ1bmN0aW9uYWwgY2hhbmdlcyogc3BlY2lmaWNhbGx5LiBJdCBtZW50aW9ucyAqbG9nZ2luZyosIGFuZCBgZHJtX1dBUk5gIGRvZXMgbG9nIGEgbWVzc2FnZSwgYnV0IGl0J3MgYWxzbyBtb3JlIHRoYW4gdGhhdDogaXQncyBhbiBhc3NlcnRpb24gdGhhdCBhIGNvbmRpdGlvbiBtaWdodCBiZSB1bmV4cGVjdGVkLiBJdCBjYW4gdHJpZ2dlciBhIHBhbmljLiBJIGhhZCBhIHRob3VnaHQgdG8gZnV6eiB0aGUgbmV3IGNvZGUgZm9yIHJlZ3Jlc3Npb24sIHRvIHNlZSBpZiBhbnl0aGluZyBpcyBicm9rZW4sIGJlY2F1c2UgSSBkb24ndCB3YW50IHRvIGFsbG93IHNvbWV0aGluZyB0byBzaWxlbnRseSBmYWlsLlxuXG5TbywgaWYgSSBzdHJpY3RseSBhZGhlcmUgdG8gXCJsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHNcIiwgSSAqY291bGQqIGFyZ3VlIGl0J3MgYSBkZWNvcmF0aXZlIGNoYW5nZSBhbmQgc2F5IFdvcnRoRnV6emluZz1mYWxzZS4gSG93ZXZlciwgSSBjb25zaWRlciB0aGF0IGEgYFdBUk5gIGlzIGFuIGFzc2VydGlvbiBvZiBhIGNvZGUgY29uZGl0aW9uIHRoYXQgKnNob3VsZCBub3QqIGJlIGhpdC4gUmVtb3ZpbmcgYSBXQVJOIHJlbW92ZXMgdGhlIGFzc2VydGlvbiwgYW5kIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGZ1enppbmcgKHNwZWNpZmljYWxseSBTeXprYWxsZXIpIGEgYFdBUk5gIHJlbW92YWwgaXMgYSBidWcgZml4IChwb3RlbnRpYWxseSBwcmV2ZW50aW5nIGEgY3Jhc2gpLiBJdCAqc2hvdWxkKiBiZSBmdXp6ZWQsIGFzIGEgYnVnIGZpeCAqYWx3YXlzKiB3YXJyYW50cyBmdXp6aW5nIHRvIGVuc3VyZSBjb3JyZWN0bmVzcywgYW5kIHRvIHRlc3QgZm9yIG5ldyBidWdzLlxuXG5UaGVyZWZvcmUsIGJlY2F1c2UgdGhpcyBmaXhlcyBhIHBvdGVudGlhbCBpc3N1ZSAod2FybmluZyksIEknbSBnb2luZyB0byBsZWFuIHRvd2FyZHMgY29uc2lkZXJpbmcgdGhpcyBhICpmdW5jdGlvbmFsKiBjaGFuZ2UgdGhhdCB3YXJyYW50cyBmdXp6aW5nLiBUaGUgcGF0Y2ggKnNob3VsZCogYmUgZnV6emVkLiBBbmQgdGhpcyBkZXBlbmRzIG9uIHRoZSBjb25maWcgb3B0aW9uczogYENPTkZJR19EUk1gIGFuZCBgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT05gLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NjcyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI1NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0NzoxNi40MzY0ODUyMzNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk3NDIyNzYxLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDc6MTYuNzMzOTE2Mzg0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY1MzY0NDQwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgRFJNX0ZCREVWX0VNVUxBVElPTiBQYXRoKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbi4gVGhlIG1lbnRpb24gb2YgYERSTV9GQkRFVl9FTVVMQVRJT05gIGltbWVkaWF0ZWx5IHBpcXVlcyBteSBpbnRlcmVzdC4gSXQgc3VnZ2VzdHMgd2UncmUgbGlrZWx5IGRlYWxpbmcgd2l0aCBhIHNjZW5hcmlvIHdoZXJlIHdlJ3JlIGVtdWxhdGluZyBhIGZyYW1lYnVmZmVyIGRldmljZSB3aXRoaW4gdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlciAoRFJNKSBmcmFtZXdvcmsuIE15IGltbWVkaWF0ZSB0aG91Z2h0cyBnbyBpbiBhIGZldyBkaXJlY3Rpb25zLCBwcm9iYWJseSBkZXBlbmRpbmcgb24gY29udGV4dC5cblxuRmlyc3QsIEknbSB0cnlpbmcgdG8gcmVjYWxsIHdoZXJlIEkndmUgZW5jb3VudGVyZWQgdGhhdCBmbGFnLiBJcyB0aGlzIGtlcm5lbC1sZXZlbCBlbXVsYXRpb24sIHBlcmhhcHMgZm9yIGxlZ2FjeSBhcHBsaWNhdGlvbnMgb3IgaGFyZHdhcmUgc3VwcG9ydD8gT3IgY291bGQgaXQgYmUgcmVsYXRlZCB0byB0ZXN0aW5nIGFuZCBkZWJ1Z2dpbmcgb2YgRFJNIGRyaXZlcnM/IEl0IG1pZ2h0IGJlIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIGEgbmF0aXZlIGZyYW1lYnVmZmVyIGRldmljZSBpc24ndCBhdmFpbGFibGUsIG9yIHdoZXJlIHdlIHdhbnQgYSBjb250cm9sbGVkIGVudmlyb25tZW50IHRvIHJlcHJvZHVjZSBhIHNwZWNpZmljIGlzc3VlLlxuXG5NeSBtaW5kIGlzIGFsc28gY2hlY2tpbmcgZm9yIGFueSBwb3RlbnRpYWwgcGVyZm9ybWFuY2Ugb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zIHdpdGggYW4gZW11bGF0aW9uIGxheWVyIGxpa2UgdGhpcy4gSSdkIG5lZWQgdG8gY29uc2lkZXIgdGhlIG92ZXJoZWFkLCBhcyB3ZWxsIGFzIHRoZSBwb3RlbnRpYWwgZm9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IsIGRlcGVuZGluZyBvbiBob3cgdGhpcyBlbXVsYXRpb24gaXMgYXJjaGl0ZWN0ZWQgYW5kIGlmIGl0J3MgcmVseWluZyBvbiBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgZmVhdHVyZXMuIElzIHRoaXMgdXNpbmcgYSBzb2Z0d2FyZSBmYWxsYmFjaywgb3IgbGV2ZXJhZ2luZyBtb3JlIGFkdmFuY2VkIHRlY2huaXF1ZXMgbGlrZSBoYXJkd2FyZS1hY2NlbGVyYXRlZCBlbXVsYXRpb24/XG5cbkZpbmFsbHksIGlmIHRoaXMgaXMgYSBrbm93biBmZWF0dXJlLCBJIG5lZWQgdG8gZ2V0IHNvbWUgbW9yZSBjb250ZXh0LiBXaGVyZSBhbSBJIHNlZWluZyB0aGlzIGlkZW50aWZpZXI/IElzIGl0IGluIGEgY29uZmlndXJhdGlvbiBmaWxlLCBrZXJuZWwgY29kZSwgb3IgYSB1c2VyLXNwYWNlIHV0aWxpdHk/IEtub3dpbmcgdGhlIGNvbnRleHQgd2lsbCBoZWxwIG1lIHF1aWNrbHkgemVybyBpbiBvbiB0aGUgcHVycG9zZSBhbmQgc2NvcGUgb2YgdGhpcyBlbXVsYXRpb24uIEJhc2ljYWxseSwgSSBuZWVkIGEgcm9hZG1hcCBmb3IgdHJhY2luZyBpdHMgdXNhZ2UgYW5kIHVuZGVyc3RhbmRpbmcgaXRzIHJvbGUgaW4gdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODczNiwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ3OjIxLjM4NzU2MzM2NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIxMDMzMjIyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRFJNX0ZCREVWX0VNVUxBVElPTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFxcXCJTdXBwb3J0ZWQgRFJNIGNsaWVudHNcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzE6Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkVuYWJsZSBsZWdhY3kgZmJkZXYgc3VwcG9ydCBmb3IgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ3OjIzLjU5NzkwMTE1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDE2NTAwMTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgZGVwZW5kZW5jaWVzIG9mIGBkcm1fY2xpZW50X21vZGVzZXQuY2A6XG5cbioqRGVlcCBEaXZlOiBVbmRlcnN0YW5kaW5nIHRoZSBEZXBlbmRlbmNpZXMgb2YgYGRybV9jbGllbnRfbW9kZXNldC5jYCoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBpbnRvIHRoZSBuaXR0eS1ncml0dHkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgb2YgYGRybV9jbGllbnRfbW9kZXNldC5jYC4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHRyYWNpbmcgdGhyb3VnaCBpdHMgaW5jbHVkZSBzdGF0ZW1lbnRzIGFuZCByZWZlcmVuY2VzIHdpdGhpbiB0aGUga2VybmVsIHRyZWUuIFRoaXMgZmlsZSBpcyBjcml0aWNhbCBmb3IgaGFuZGxpbmcgdGhlIGNsaWVudC1zaWRlIGFzcGVjdHMgb2YgbW9kZXNldHRpbmcgaW4gYSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgY29udGV4dC4gVGhlcmVmb3JlLCBteSBndWVzcyBpcyB0aGF0IGl0IHRvdWNoZXMgb24gc2V2ZXJhbCBmdW5kYW1lbnRhbCBEUk0gY29uY2VwdHMsIGxpa2VseSBpbmNsdWRpbmcgdGhpbmdzIGxpa2UgY29ubmVjdG9ycywgZW5jb2RlcnMsIHBsYW5lcywgQ1JUQ3MsIGFuZCBvZiBjb3Vyc2UsIHRoZSB1bmRlcmx5aW5nIEtNUyAoS2VybmVsIE1vZGUtU2V0dGluZykgaW5mcmFzdHJ1Y3R1cmUuXG5cbkknZCBleHBlY3QgdG8gc2VlIGRlcGVuZGVuY2llcyBvbiB0aGUgY29yZSBEUk0gaGVhZGVycywgbmF0dXJhbGx5LCBwZXJoYXBzIGBkcm1fY29yZS5oYCwgYGRybV9mYi5oYCwgYW5kIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIGRvIHdpdGggdGhlIGZyYW1lIGJ1ZmZlciBpbmZyYXN0cnVjdHVyZS4gSXQgKmhhcyogdG8gaW50ZXJhY3Qgd2l0aCB0aGUgZ2VuZXJpYyBLTVMgaW50ZXJmYWNlczsgdGhlIHdob2xlIHBvaW50IG9mIGNsaWVudC1zaWRlIG1vZGVzZXR0aW5nIGlzIHRvIGFic3RyYWN0IGF3YXkgc29tZSBvZiB0aGUgY29tcGxleGl0aWVzLiBJIGJldCBpdCBhbHNvIGludGVyYWN0cyB3aXRoIHRoZSBzcGVjaWZpYyBkcml2ZXIgQVBJcywgcGFydGljdWxhcmx5IHRob3NlIHJlbGF0ZWQgdG8gdGhlIGdyYXBoaWNzIGhhcmR3YXJlIG9uIHRoZSBjbGllbnQgc2lkZSwgaWYgdGhlcmUgaXMgYSBjbGllbnQtc3BlY2lmaWMgZHJpdmVyIG9yIGlmIGl0cyByZWx5aW5nIG9uIHRoZSBiYXNpYyBkcml2ZXJzLlxuXG5JJ2xsIGJlIGxvb2tpbmcgZm9yIGNyb3NzLXJlZmVyZW5jZXMgdG8gdW5kZXJzdGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGxvd2VyIGxheWVycyBhbmQgaG93IGl0IGlzIGxpbmtlZCwgc3RhdGljYWxseSBvciBkeW5hbWljYWxseS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGl0IHBsdWdzIGludG8gdGhlIG92ZXJhbGwgbW9kZXNldHRpbmcgcHJvY2Vzcy4gSXMgaXQgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIHVzZXItc3BhY2UgcmVxdWVzdHM/IERvZXMgaXQgaW50ZXJmYWNlIHdpdGggdGhlIGRpc3BsYXkgc2VydmVyPyBEb2VzIGl0IGRpcmVjdGx5IG1hbmlwdWxhdGUgaGFyZHdhcmUgcmVnaXN0ZXJzICh1bmxpa2VseSwgYnV0IEkgc2hvdWxkIGxvb2spPyBJJ20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gaG93IGl0IGhhbmRsZXMgdGhlIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIGNsaWVudCBhbmQgc2VydmVyLCBzaW5jZSB0aGF0J3MgYSBjcml0aWNhbCBhcmVhIGZvciBwZXJmb3JtYW5jZSBhbmQgYXZvaWRpbmcgdGVhcmluZy4gVGhlIHdob2xlIHBvaW50IGlzIHNlYW1sZXNzIGRpc3BsYXkgdHJhbnNpdGlvbnMuXG5cblRoaXMgYW5hbHlzaXMgaXMgZ29pbmcgdG8gbGVhZCBtZSB0byBhIGRlZXBlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBEUk0gYXJjaGl0ZWN0dXJlLCBhbmQgaG93IGl0IHNlcnZlcyB0aGUgbmVlZHMgb2YgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucywgYXMgd2VsbCBhcyB0aGUgdW5kZXJseWluZyBoYXJkd2FyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6OTIxMiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjA5LjAxNDQwNDY1OFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk0NzQ3NzkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9jbGllbnRfbW9kZXNldFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlPTc2PWRybS0kKENPTkZJR19EUk1fQ0xJRU5UKSArPSBcXFxcXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUtNzgtXFx0ZHJtX2NsaWVudF9ldmVudC5vIFxcXFxcXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6Nzk6XFx0ZHJtX2NsaWVudF9tb2Rlc2V0Lm8gXFxcXFxcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS04MC1cXHRkcm1fY2xpZW50X3N5c3JxLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDg6MDkuMzA5MTU2NzM5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MjQxODc3NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqTmF2aWdhdGluZyB0aGUgRGVwZW5kZW5jeSBXZWIgZm9yIERSTSBDbGllbnQgRnVuY3Rpb25hbGl0eSoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4uLiBJJ20gbG9va2luZyBhdCB0aGlzIG1vZHVsZSwgYW5kIGl0J3MgY2xlYXI6IHdlICphYnNvbHV0ZWx5KiBuZWVkIGBDT05GSUdfRFJNX0NMSUVOVGAgZGVmaW5lZC4gVGhlcmUncyBubyB3YXkgYXJvdW5kIGl0LiBJdCdzIGEgZnVuZGFtZW50YWwgcmVxdWlyZW1lbnQuIEknbSBwcm9iYWJseSBkZWFsaW5nIHdpdGggZWl0aGVyIGEgbmV3IGRldmljZSBkcml2ZXIgb3IgYSBmZWF0dXJlIHRoYXQgaW50ZXJmYWNlcyB3aXRoIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIgKERSTSkgaW4gc29tZSB3YXksIGFuZCBgQ09ORklHX0RSTV9DTElFTlRgIGFjdHMgYXMgdGhlIGdhdGVrZWVwZXIgZm9yIGVuYWJsaW5nIHRoYXQgY2xpZW50LXNpZGUgZnVuY3Rpb25hbGl0eSB3aXRoaW4gdGhlIGtlcm5lbC4gSXQncyBhbG1vc3QgY2VydGFpbmx5IHJlbGF0ZWQgdG8gbWFuYWdpbmcgdGhlIGRpc3BsYXkgaGFyZHdhcmUsIGZyYW1lYnVmZmVycywgb3IgcG9zc2libHkgc29tZSBmb3JtIG9mIGFjY2VsZXJhdGVkIGdyYXBoaWNzIG91dHB1dC4gV2l0aG91dCBpdCwgdGhlIGJ1aWxkIHdpbGwgZWl0aGVyIGZhaWwgbWlzZXJhYmx5IG9yIHRoZSBmdW5jdGlvbmFsaXR5IHdpbGwgYmUgc2lsZW50bHkgY3JpcHBsZWQsIGxlYWRpbmcgdG8gc29tZSB2ZXJ5IGZydXN0cmF0aW5nIGRlYnVnZ2luZyBzZXNzaW9ucy4gSSdsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMgdG8gdmVyaWZ5IGFueSBhc3N1bXB0aW9ucywgYnV0IHRoaXMgaXMgdGhlIGZpcnN0IHRoaW5nIHRvIG1ha2Ugc3VyZSBpcyBzZXQgcHJvcGVybHkuIEl04oCZcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGVuc3VyaW5nIGEgZnVuY3Rpb25hbCBzdWJzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3ODIsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODoxMy4yMzMzNTU1MjRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc1NDY3MzE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fQ0xJRU5UXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9LY29uZmlnPTE1OD1jb25maWcgRFJNX0RFQlVHX01PREVTRVRfTE9DS1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMTcyLVxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjE3Mzpjb25maWcgRFJNX0NMSUVOVFxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTE3NC1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjEzLjMwODgyNjg0MloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTU1MTM1NzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTmF2aWdhdGluZyB0aGUgVW5zZWVuIExhbmRzY2FwZSBvZiBDb25maWd1cmF0aW9uKipcblxuQWgsIHRoaXMgb25lJ3MgaW50cmlndWluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MganVtcHMgcmlnaHQgdG8gdGhlIGNvcmU6IHRoaXMgY29uZmlndXJhdGlvbiwgd2hhdGV2ZXIgaXQgcGVydGFpbnMgdG8sIGlzbid0IGRpcmVjdGx5IGV4cG9zZWQuIEl0J3MgKmhpZGRlbiouIFRoYXQncyB0aGUga2V5IHN0YXJ0aW5nIHBvaW50LiBJdCdzIG5vdCBzb21ldGhpbmcgeW91J2QgZmluZCBieSBzaW1wbHkgYnJvd3NpbmcgYSBkaXJlY3Rvcnkgb3IgbG9va2luZyBhdCBhIHN0YW5kYXJkIHNldHRpbmdzIGZpbGUuIFRoaXMgaW1wbGllcyBhIGxldmVsIG9mIGluZGlyZWN0aW9uLCBhIGRlbGliZXJhdGUgY29uY2VhbG1lbnQsIG9yIGF0IGxlYXN0IGEgbGVzcy10aGFuLW9idmlvdXMgZGVmYXVsdCBsb2NhdGlvbi5cblxuTXkgbWluZCBpbW1lZGlhdGVseSBzdGFydHMgdGlja2luZyB0aHJvdWdoIHRoZSB1c3VhbCBzdXNwZWN0czogZW52aXJvbm1lbnQgdmFyaWFibGVzLCBjb21tYW5kLWxpbmUgYXJndW1lbnRzLCBwZXJoYXBzIGEgZGF0YWJhc2UgZW50cnkgYWNjZXNzZWQgdGhyb3VnaCBhIHNwZWNpZmljIEFQSSBjYWxsLiBDb3VsZCBpdCBiZSBhIGR5bmFtaWNhbGx5IGxvYWRlZCBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHJ1bnRpbWUgY29uZGl0aW9ucywgb3IgYSBmZWF0dXJlIGZsYWcgYmVoaW5kIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldHVwPyBUaGUgZmFjdCB0aGF0IGl0J3MgaGlkZGVuIHN1Z2dlc3RzIGEgbmVlZCBmb3IgYSBzcGVjaWZpYyB0cmlnZ2VyLCBhIGNvbmRpdGlvbiBtZXQsIG9yIGEgbWVjaGFuaXNtIGVtcGxveWVkIHRvIGJyaW5nIGl0IGludG8gcGxheS4gVGhlIGNydWNpYWwgZGV0YWlsIGlzICpzb21ldGhpbmcqIHNlbGVjdHMgaXQuIFRoYXQncyB0aGUgcmVhbCBwcm9ibGVtIHRvIGJlIHNvbHZlZC4gV2UgbmVlZCB0byBpZGVudGlmeSB0aGF0IHNlbGVjdG9yLCB0aGF0IHRyaWdnZXIsIHRoZSBhbnRlY2VkZW50IHRoYXQgcHVsbHMgdGhpcyBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb24gb3V0IG9mIHRoZSBzaGFkb3dzLiBUaGF0J3Mgd2hlcmUgdGhlIHJlYWwgY29tcGxleGl0eSBsaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDE1MywiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjE5Ljg2Mzk2NjQwN1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjY2MDY5ODEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBEUk1fQ0xJRU5UXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MDYgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnPTE3Mz1jb25maWcgRFJNX0NMSUVOVFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL0tjb25maWctMTc5LVxcdCAgb3B0aW9uLiBEcml2ZXJzIHRoYXQgc3VwcG9ydCB0aGUgZGVmYXVsdCBjbGllbnRzIHNob3VsZFxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnOjE4MDpcXHQgIHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTiBpbnN0ZWFkLlxcbmRyaXZlcnMvZ3B1L2RybS9LY29uZmlnLTE4MS1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L0tjb25maWc9Mz1jb25maWcgRFJNX0FNREdQVVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZy02LVxcdHNlbGVjdCBGV19MT0FERVJcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9LY29uZmlnOjc6XFx0c2VsZWN0IERSTV9DTElFTlRcXG5kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZy05LVxcdHNlbGVjdCBEUk1fRElTUExBWV9EUF9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZz01PWNvbmZpZyBEUk1fSERMQ0RcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZy04LVxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZzo5OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZy0xMC1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZz0yOD1jb25maWcgRFJNX01BTElfRElTUExBWVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FybS9LY29uZmlnLTMxLVxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvZ3B1L2RybS9hcm0vS2NvbmZpZzozMjpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vYXJtL0tjb25maWctMzMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkvS2NvbmZpZz0yPWNvbmZpZyBEUk1fS09NRURBXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkvS2NvbmZpZy01LVxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L0tjb25maWctNy1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hcm1hZGEvS2NvbmZpZz0yPWNvbmZpZyBEUk1fQVJNQURBXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBIQVZFX0NMSyBcXHUwMDI2XFx1MDAyNiBBUk0gXFx1MDAyNlxcdTAwMjYgTU1VXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FybWFkYS9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXNwZWVkL0tjb25maWc9Mj1jb25maWcgRFJNX0FTUEVFRF9HRlhcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hc3BlZWQvS2NvbmZpZy02LVxcdGRlcGVuZHMgb24gTU1VXFxuZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9LY29uZmlnOjc6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FzcGVlZC9LY29uZmlnLTgtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXN0L0tjb25maWc9Mj1jb25maWcgRFJNX0FTVFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgUENJXFxuZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2FzdC9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvS2NvbmZpZz0yPWNvbmZpZyBEUk1fQVRNRUxfSExDRENcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgT0YgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMSyBcXHUwMDI2XFx1MDAyNiAoKE1GRF9BVE1FTF9ITENEQyBcXHUwMDI2XFx1MDAyNiBBUk0pIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0xMj1jb25maWcgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMTQtXFx0ZGVwZW5kcyBvbiBEUk1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjE1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX0xJQiBpZiBEUk1fQ0xJRU5UX0xPR1xcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MTY6XFx0c2VsZWN0IERSTV9DTElFTlRfTElCIGlmIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTE3LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc9MjE9Y29uZmlnIERSTV9DTElFTlRfU0VUVVBcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMjUtXFx0ICBFbmFibGVzIHRoZSBEUk0gY2xpZW50IHNlbGVjdGlvbi4gRFJNIGRyaXZlcnMgdGhhdCBzdXBwb3J0IHRoZVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MjY6XFx0ICBkZWZhdWx0IGNsaWVudHMgc2hvdWxkIHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTiBpbnN0ZWFkLlxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMjctXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnPTMxPWNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMzLVxcdGRlcGVuZHMgb24gRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjM0OlxcdHNlbGVjdCBEUk1fQ0xJRU5UXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZzozNTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRVRVUFxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctMzYtXFx0c2VsZWN0IEZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaWYgRlJBTUVCVUZGRVJfQ09OU09MRVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz03ND1jb25maWcgRFJNX0NMSUVOVF9MT0dcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWctNzYtXFx0ZGVwZW5kcyBvbiBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6Nzc6XFx0c2VsZWN0IERSTV9DTElFTlRcXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnOjc4OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFVFVQXFxuZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZy03OS1cXHRzZWxlY3QgRFJNX0RSQVdcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZz0yPWNvbmZpZyBEUk1fRVhZTk9TXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL0tjb25maWctNi1cXHRkZXBlbmRzIG9uIE1NVVxcbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZzo3OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9leHlub3MvS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fRElTUExBWV9IRUxQRVIgaWYgRFJNX0VYWU5PU19EUFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvS2NvbmZpZz0yPWNvbmZpZyBEUk1fRlNMX0RDVVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvS2NvbmZpZy01LVxcdHNlbGVjdCBCQUNLTElHSFRfQ0xBU1NfREVWSUNFXFxuZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvS2NvbmZpZzo2OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L0tjb25maWctNy1cXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL0tjb25maWc9Mj1jb25maWcgRFJNX0dNQTUwMFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IFg4NiBcXHUwMDI2XFx1MDAyNiBIQVNfSU9QT1JUXFxuZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vZ3VkL0tjb25maWc9Mz1jb25maWcgRFJNX0dVRFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2d1ZC9LY29uZmlnLTYtXFx0c2VsZWN0IExaNF9DT01QUkVTU1xcbmRyaXZlcnMvZ3B1L2RybS9ndWQvS2NvbmZpZzo3OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9ndWQvS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnPTI9Y29uZmlnIERSTV9ISVNJX0hJQk1DXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWc6NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWctNi1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL0tjb25maWc9Mj1jb25maWcgRFJNX0hJU0lfS0lSSU5cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4vS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IE9GIFxcdTAwMjZcXHUwMDI2IChBUk02NCB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaHlwZXJ2L0tjb25maWc9Mj1jb25maWcgRFJNX0hZUEVSVlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2h5cGVydi9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IEhZUEVSVl9WTUJVU1xcbmRyaXZlcnMvZ3B1L2RybS9oeXBlcnYvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9oeXBlcnYvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fSTkxNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZy0xMi1cXHRzZWxlY3QgVE1QRlNcXG5kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnOjEzOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWctMTQtXFx0c2VsZWN0IERSTV9ESVNQTEFZX0RQX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2lteC9kYy9LY29uZmlnPTE9Y29uZmlnIERSTV9JTVg4X0RDXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaW14L2RjL0tjb25maWctMy1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBDT01NT05fQ0xLIFxcdTAwMjZcXHUwMDI2IE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX01YQyB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9ncHUvZHJtL2lteC9kYy9LY29uZmlnOjQ6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2lteC9kYy9LY29uZmlnLTUtXFx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2lteC9kY3NzL0tjb25maWc9MT1jb25maWcgRFJNX0lNWF9EQ1NTXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaW14L2Rjc3MvS2NvbmZpZy0zLVxcdHNlbGVjdCBJTVhfSVJRU1RFRVJcXG5kcml2ZXJzL2dwdS9kcm0vaW14L2Rjc3MvS2NvbmZpZzo0OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9pbXgvZGNzcy9LY29uZmlnLTUtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYzL0tjb25maWc9Mj1jb25maWcgRFJNX0lNWFxcbmRyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJEUk0gU3VwcG9ydCBmb3IgRnJlZXNjYWxlIGkuTVhcXFwiXFxuZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9LY29uZmlnOjQ6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My9LY29uZmlnLTUtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vaW14L2xjZGMvS2NvbmZpZz0xPWNvbmZpZyBEUk1fSU1YX0xDRENcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9pbXgvbGNkYy9LY29uZmlnLTMtICAgICAgZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgKEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL2dwdS9kcm0vaW14L2xjZGMvS2NvbmZpZzo0OiAgICAgIHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9pbXgvbGNkYy9LY29uZmlnLTUtICAgICAgc2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZz0xPWNvbmZpZyBEUk1fSU5HRU5JQ1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fQlJJREdFXFxuZHJpdmVycy9ncHUvZHJtL2luZ2VuaWMvS2NvbmZpZzo5OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9pbmdlbmljL0tjb25maWctMTAtXFx0c2VsZWN0IERSTV9QQU5FTF9CUklER0VcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZz0xPWNvbmZpZyBEUk1fS01CX0RJU1BMQVlcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gQVJDSF9LRUVNQkFZIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9rbWIvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZz0xPWNvbmZpZyBEUk1fTE9HSUNWQ1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gT0YgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9ncHUvZHJtL2xvZ2ljdmMvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9sb2dpY3ZjL0tjb25maWctNi1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9LY29uZmlnPTM9Y29uZmlnIERSTV9MT09OR1NPTlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL0tjb25maWctNi1cXHRkZXBlbmRzIG9uIExPT05HQVJDSCB8fCBNSVBTIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9sb29uZ3Nvbi9LY29uZmlnOjc6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL2xvb25nc29uL0tjb25maWctOC1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWc9MT1jb25maWcgRFJNX01DREVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWctOC1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbmRyaXZlcnMvZ3B1L2RybS9tY2RlL0tjb25maWc6OTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vbWNkZS9LY29uZmlnLTEwLVxcdHNlbGVjdCBEUk1fTUlQSV9EU0lcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9LY29uZmlnPTI9Y29uZmlnIERSTV9NRURJQVRFS1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL0tjb25maWctOS1cXHRkZXBlbmRzIG9uIE1US19NTVNZU1xcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9LY29uZmlnOjEwOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9LY29uZmlnLTExLVxcdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9tZXNvbi9LY29uZmlnPTI9Y29uZmlnIERSTV9NRVNPTlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21lc29uL0tjb25maWctNS1cXHRkZXBlbmRzIG9uIEFSQ0hfTUVTT04gfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9ncHUvZHJtL21lc29uL0tjb25maWc6NjpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vbWVzb24vS2NvbmZpZy03LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZz0yPWNvbmZpZyBEUk1fTUdBRzIwMFxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL0tjb25maWc6NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9LY29uZmlnLTYtXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWc9NjE9Y29uZmlnIERSTV9NU01fS01TXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbXNtL0tjb25maWctNjUtXFx0c2VsZWN0IERSTV9CUklER0VfQ09OTkVDVE9SXFxuZHJpdmVycy9ncHUvZHJtL21zbS9LY29uZmlnOjY2OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9tc20vS2NvbmZpZy02Ny1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZz03PWNvbmZpZyBEUk1fTVhTRkJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnLTExLVxcdGRlcGVuZHMgb24gQVJDSF9NWFMgfHwgQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWc6MTI6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL214c2ZiL0tjb25maWctMTMtXFx0c2VsZWN0IERSTV9NWFNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnPTI1PWNvbmZpZyBEUk1fSU1YX0xDRElGXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbXhzZmIvS2NvbmZpZy0yOS1cXHRkZXBlbmRzIG9uIEFSQ0hfTVhDIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnOjMwOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9teHNmYi9LY29uZmlnLTMxLVxcdHNlbGVjdCBEUk1fTVhTXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnPTI9Y29uZmlnIERSTV9OT1VWRUFVXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9LY29uZmlnLTctXFx0c2VsZWN0IEZXX0NBQ0hFIGlmIFBNX1NMRUVQXFxuZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvS2NvbmZpZzo4OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfRFBfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnPTI9Y29uZmlnIERSTV9PTUFQXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnLTYtXFx0ZGVwZW5kcyBvbiBBUkNIX09NQVAyUExVUyB8fCAoQ09NUElMRV9URVNUIFxcdTAwMjZcXHUwMDI2IFBBR0VfU0laRV9MRVNTX1RIQU5fNjRLQilcXG5kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9LY29uZmlnOjc6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3BsMTExL0tjb25maWc9Mj1jb25maWcgRFJNX1BMMTExXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vcGwxMTEvS2NvbmZpZy03LVxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvZ3B1L2RybS9wbDExMS9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3BsMTExL0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUVhMXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vcXhsL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBQQ0kgXFx1MDAyNlxcdTAwMjYgSEFTX0lPUE9SVFxcbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9xeGwvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9LY29uZmlnPTM9Y29uZmlnIERSTV9SQURFT05cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yYWRlb24vS2NvbmZpZy03LVxcdHNlbGVjdCBGV19MT0FERVJcXG5kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL0tjb25maWc6ODpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfRFBfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yY2FyLWR1L0tjb25maWc9Mj1jb25maWcgRFJNX1JDQVJfRFVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvS2NvbmZpZy02LVxcdGRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvS2NvbmZpZzo3OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3JjYXItZHUvS2NvbmZpZy04LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvcnotZHUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUlpHMkxfRFVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3J6LWR1L0tjb25maWctNi1cXHRkZXBlbmRzIG9uIFZJREVPX1JFTkVTQVNfVlNQMVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3J6LWR1L0tjb25maWc6NzpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9yei1kdS9LY29uZmlnLTgtXFx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3JlbmVzYXMvc2htb2JpbGUvS2NvbmZpZz0yPWNvbmZpZyBEUk1fU0hNT0JJTEVcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3NobW9iaWxlL0tjb25maWctNi1cXHRzZWxlY3QgQkFDS0xJR0hUX0NMQVNTX0RFVklDRVxcbmRyaXZlcnMvZ3B1L2RybS9yZW5lc2FzL3NobW9iaWxlL0tjb25maWc6NzpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vcmVuZXNhcy9zaG1vYmlsZS9LY29uZmlnLTgtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvS2NvbmZpZz0yPWNvbmZpZyBEUk1fUk9DS0NISVBcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnLTctXFx0ZGVwZW5kcyBvbiBPRlxcbmRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZz0xPWNvbmZpZyBEUk1fU1Q3NTcxXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZy0zLVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IE1NVVxcbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnOjQ6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNS1cXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnPTQyPWNvbmZpZyBEUk1fU1Q3NTg2XFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZy00NC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBTUElcXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZzo0NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vc2l0cm9uaXgvS2NvbmZpZy00Ni1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zaXRyb25peC9LY29uZmlnPTU1PWNvbmZpZyBEUk1fU1Q3NzM1Ulxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNTctXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgU1BJXFxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWc6NTg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3NpdHJvbml4L0tjb25maWctNTktXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc29sb21vbi9LY29uZmlnPTE9Y29uZmlnIERSTV9TU0QxMzBYXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc29sb21vbi9LY29uZmlnLTQtXFx0c2VsZWN0IEJBQ0tMSUdIVF9DTEFTU19ERVZJQ0VcXG5kcml2ZXJzL2dwdS9kcm0vc29sb21vbi9LY29uZmlnOjU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3NvbG9tb24vS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fR0VNX1NITUVNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnPTI9Y29uZmlnIERSTV9TVElcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zdGkvS2NvbmZpZy01LVxcdHNlbGVjdCBSRVNFVF9DT05UUk9MTEVSXFxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N0aS9LY29uZmlnLTctXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3RtL0tjb25maWc9Mj1jb25maWcgRFJNX1NUTVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnLTUtXFx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXFxuZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N0bS9LY29uZmlnLTctXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3VuNGkvS2NvbmZpZz0yPWNvbmZpZyBEUk1fU1VONElcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zdW40aS9LY29uZmlnLTUtXFx0ZGVwZW5kcyBvbiBBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS9zdW40aS9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N1bjRpL0tjb25maWctNy1cXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz0xMD1jb25maWcgRFJNX0NPUkVCT09URFJNXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy0xNC1cXHRzZWxlY3QgQVBFUlRVUkVfSEVMUEVSU1xcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnOjE1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTE2LVxcdHNlbGVjdCBEUk1fR0VNX1NITUVNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc9MjY9Y29uZmlnIERSTV9FRklEUk1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTI5LVxcdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6MzA6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctMzEtXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz00Mj1jb25maWcgRFJNX09GRFJNXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZy00NS1cXHRzZWxlY3QgQVBFUlRVUkVfSEVMUEVSU1xcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnOjQ2OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTQ3LVxcdHNlbGVjdCBEUk1fR0VNX1NITUVNX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc9NTc9Y29uZmlnIERSTV9TSU1QTEVEUk1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTYwLVxcdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6NjE6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctNjItXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vc3lzZmIvS2NvbmZpZz03Nj1jb25maWcgRFJNX1ZFU0FEUk1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9zeXNmYi9LY29uZmlnLTc5LVxcdHNlbGVjdCBBUEVSVFVSRV9IRUxQRVJTXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWc6ODA6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3N5c2ZiL0tjb25maWctODEtXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGVncmEvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVEVHUkFcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9LY29uZmlnLTctXFx0ZGVwZW5kcyBvbiBPRlxcbmRyaXZlcnMvZ3B1L2RybS90ZWdyYS9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RlZ3JhL0tjb25maWctOS1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfRFBfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZz0xPWNvbmZpZyBEUk1fVElEU1NcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aWRzcy9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBBUk0gfHwgQVJNNjQgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9ncHUvZHJtL3RpZHNzL0tjb25maWc6NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdGlkc3MvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbGNkYy9LY29uZmlnPTI9Y29uZmlnIERSTV9USUxDRENcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IE9GIFxcdTAwMjZcXHUwMDI2IEFSTVxcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aWxjZGMvS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0xNj1jb25maWcgRFJNX0FSQ1BHVVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xOC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBPRlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTk6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0yMC1cXHRzZWxlY3QgRFJNX0dFTV9ETUFfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTI3PWNvbmZpZyBEUk1fQk9DSFNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMjktXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IE1NVVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MzA6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0zMS1cXHRzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9Mzk9Y29uZmlnIERSTV9DSVJSVVNfUUVNVVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy00MS1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjQyOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNDMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTU5PWNvbmZpZyBEUk1fR00xMlUzMjBcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNjEtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgVVNCIFxcdTAwMjZcXHUwMDI2IE1NVVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6NjI6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy02My1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9Njk9Y29uZmlnIERSTV9QQU5FTF9NSVBJX0RCSVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy03MS1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBTUElcXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjcyOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctNzMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTg1PWNvbmZpZyBEUk1fUElYUEFQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctODgtICAgICAgICBkZXBlbmRzIG9uIE1NVVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6ODk6ICAgICAgICBzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTkwLSAgICAgICAgc2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTEwMT1jb25maWcgVElOWURSTV9IWDgzNTdEXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTEwMy1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBTUElcXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjEwNDpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTEwNS1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTE1PWNvbmZpZyBUSU5ZRFJNX0lMSTkxNjNcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTE4LVxcdHNlbGVjdCBCQUNLTElHSFRfQ0xBU1NfREVWSUNFXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxMTk6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMjAtXFx0c2VsZWN0IERSTV9HRU1fRE1BX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0xMjk9Y29uZmlnIFRJTllEUk1fSUxJOTIyNVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMzEtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgU1BJXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxMzI6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xMzMtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE0Mj1jb25maWcgVElOWURSTV9JTEk5MzQxXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE0NC1cXHRkZXBlbmRzIG9uIERSTSBcXHUwMDI2XFx1MDAyNiBTUElcXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnOjE0NTpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnLTE0Ni1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc9MTU2PWNvbmZpZyBUSU5ZRFJNX0lMSTk0ODZcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTU4LVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IFNQSVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTU5OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTYwLVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0xNzE9Y29uZmlnIFRJTllEUk1fTUkwMjgzUVRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTczLVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IFNQSVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MTc0OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMTc1LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZz0xODM9Y29uZmlnIFRJTllEUk1fUkVQQVBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xODUtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgU1BJXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZzoxODY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3RpbnkvS2NvbmZpZy0xODctXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdGlueS9LY29uZmlnPTE5OD1jb25maWcgVElOWURSTV9TSEFSUF9NRU1PUllcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMjAwLVxcdGRlcGVuZHMgb24gRFJNIFxcdTAwMjZcXHUwMDI2IFNQSVxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWc6MjAxOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90aW55L0tjb25maWctMjAyLVxcdHNlbGVjdCBEUk1fR0VNX0RNQV9IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVFZFMjAwXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdHZlMjAwL0tjb25maWctOC1cXHRzZWxlY3QgRFJNX0JSSURHRVxcbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZzo5OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS90dmUyMDAvS2NvbmZpZy0xMC1cXHRzZWxlY3QgRFJNX1BBTkVMX0JSSURHRVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnPTI9Y29uZmlnIERSTV9VRExcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS91ZGwvS2NvbmZpZy03LVxcdGRlcGVuZHMgb24gTU1VXFxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnOjg6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3VkbC9LY29uZmlnLTktXFx0c2VsZWN0IERSTV9HRU1fU0hNRU1fSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdmJveHZpZGVvL0tjb25maWc9Mj1jb25maWcgRFJNX1ZCT1hWSURFT1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3Zib3h2aWRlby9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgWDg2IFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vS2NvbmZpZzo1OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS92Ym94dmlkZW8vS2NvbmZpZy02LVxcdHNlbGVjdCBEUk1fS01TX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3ZjNC9LY29uZmlnPTI9Y29uZmlnIERSTV9WQzRcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS92YzQvS2NvbmZpZy0xMS1cXHRkZXBlbmRzIG9uIFBNXFxuZHJpdmVycy9ncHUvZHJtL3ZjNC9LY29uZmlnOjEyOlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS92YzQvS2NvbmZpZy0xMy1cXHRzZWxlY3QgRFJNX0RJU1BMQVlfSERNSV9BVURJT19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnPTI9Y29uZmlnIERSTV9WRVJJU0lMSUNPTl9EQ1xcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3ZlcmlzaWxpY29uL0tjb25maWctNi1cXHRzZWxlY3QgRFJNX0JSSURHRV9DT05ORUNUT1JcXG5kcml2ZXJzL2dwdS9kcm0vdmVyaXNpbGljb24vS2NvbmZpZzo3OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS92ZXJpc2lsaWNvbi9LY29uZmlnLTgtXFx0c2VsZWN0IERSTV9ESVNQTEFZX0hFTFBFUlxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnPTI9Y29uZmlnIERSTV9WSVJUSU9fR1BVXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdmlydGlvL0tjb25maWctNS1cXHRzZWxlY3QgVklSVElPXFxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnOjY6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3ZpcnRpby9LY29uZmlnLTctXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnPTM9Y29uZmlnIERSTV9WS01TXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnLTUtXFx0ZGVwZW5kcyBvbiBEUk0gXFx1MDAyNlxcdTAwMjYgTU1VXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzo2OlxcdHNlbGVjdCBEUk1fQ0xJRU5UX1NFTEVDVElPTlxcbmRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWctNy1cXHRzZWxlY3QgRFJNX0tNU19IRUxQRVJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS92bXdnZngvS2NvbmZpZz0yPWNvbmZpZyBEUk1fVk1XR0ZYXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L0tjb25maWctNS1cXHRkZXBlbmRzIG9uIChYODYgXFx1MDAyNlxcdTAwMjYgSFlQRVJWSVNPUl9HVUVTVCkgfHwgQVJNNjRcXG5kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L0tjb25maWc6NjpcXHRzZWxlY3QgRFJNX0NMSUVOVF9TRUxFQ1RJT05cXG5kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L0tjb25maWctNy1cXHRzZWxlY3QgRFJNX1RUTVxcbi0tXFxuZHJpdmVycy9ncHUvZHJtL3hlL0tjb25maWc9Mj1jb25maWcgRFJNX1hFXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0veGUvS2NvbmZpZy0xNC1cXHRzZWxlY3QgRFJNX0JVRERZXFxuZHJpdmVycy9ncHUvZHJtL3hlL0tjb25maWc6MTU6XFx0c2VsZWN0IERSTV9DTElFTlRfU0VMRUNUSU9OXFxuZHJpdmVycy9ncHUvZHJtL3hlL0tjb25maWctMTYtXFx0c2VsZWN0IERSTV9LTVNfSEVMUEVSXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjIwLjUzMDA0NDk3OFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzMwNzM3ODEzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqRnV6emluZyBUYXJnZXQgQXNzZXNzbWVudDogRFJNX1ZLTVMqKlxuXG5SaWdodCwgYERSTV9WS01TYCBsb29rcyBsaWtlIGEgc29saWQgY2FuZGlkYXRlIGZvciBzb21lIGZ1enppbmcuIEl0J3MgZ290IHRoZSByaWdodCBwcm9maWxlLCBlbm91Z2ggY29tcGxleGl0eSB0byBleHBvc2UgaW50ZXJlc3RpbmcgYnVncywgYW5kIGl0J3Mgd2l0aGluIHRoZSByaWdodCBzY29wZS4gTm93LCBiZWZvcmUgSSBkaXZlIGluIGhlYWRmaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIGRlcGVuZGVuY2llcy4gR290dGEgZmlndXJlIG91dCB3aGF0IG90aGVyIGNvbXBvbmVudHMgb3Iga2VybmVsIG1vZHVsZXMgYERSTV9WS01TYCBpbnRlcmFjdHMgd2l0aC4gVGhhdCBkZXBlbmRlbmN5IGFuYWx5c2lzIGlzIGNydWNpYWwuIE5vIHBvaW50IGluIHNwZW5kaW5nIGRheXMgZnV6emluZyBpdCBpbiBpc29sYXRpb24gaWYgaXQncyBpbnRyaWNhdGVseSBsaW5rZWQgdG8gc29tZSBvdGhlciBzdWJzeXN0ZW0gdGhhdCdzIHRoZSByZWFsIHdlYWsgcG9pbnQuIFVuZGVyc3RhbmRpbmcgdGhlIGF0dGFjayBzdXJmYWNlIGlzIHBhcmFtb3VudC4gTGV0J3Mgc2VlIHdoYXQgd2UgYXJlIGRlYWxpbmcgd2l0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg5ODEsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODozMy44Mzc0MjY4NDVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwMjYwMjI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fVktNU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWctMi1cXG5kcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnOjM6Y29uZmlnIERSTV9WS01TXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZy00LVxcdHRyaXN0YXRlIFxcXCJWaXJ0dWFsIEtNUyAoRVhQRVJJTUVOVEFMKVxcXCJcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWctMTgtXFxuZHJpdmVycy9ncHUvZHJtL3ZrbXMvS2NvbmZpZzoxOTpjb25maWcgRFJNX1ZLTVNfS1VOSVRfVEVTVFxcbmRyaXZlcnMvZ3B1L2RybS92a21zL0tjb25maWctMjAtXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBWS01TXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjMzLjkwNzY5NTk1M1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjgwNTY3MjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgc3VtbWFyeSwgcHJlc2VudGVkIGFzIGEgc3RyZWFtIG9mIGNvbnNjaW91c25lc3M6XG5cbioqQWRkaW5nIHRoZSBQaWVjZXMgZm9yIEZyYW1lYnVmZmVyIEVtdWxhdGlvbioqXG5cbkFscmlnaHQsIEknbSBnb2luZyB0byBpbnRlZ3JhdGUgYERSTV9WS01TYCBpbnRvIHRoZSBgRW5hYmxlQ29uZmlnc2AuIFRoYXQncyB0aGUgZmlyc3Qgc3RlcC4gIE5vdywgSSBhbHNvIHJlY2FsbCB0aGF0IGBEUk1fRkJERVZfRU1VTEFUSU9OYCBpcyBjcml0aWNhbDsgdGhhdCdzIHRoZSB0cmlnZ2VyIHRoYXQgYWN0dWFsbHkgZ2V0cyBgZHJtX2ZiX2hlbHBlcl9pb2N0bGAgaW52b2tlZC4gIEhvbGQgb24gYSBzZWNvbmQuLi5JIG5lZWQgdG8gbWFrZSBzdXJlIEknbSB0aGlua2luZyB0aGlzIHRocm91Z2ggY29ycmVjdGx5LiBJJ20gcHJldHR5IGNlcnRhaW4gdGhhdCBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AgaXMsIGluIGZhY3QsIGNhbGxlZCBmcm9tIGBkcm1fZmJfaGVscGVyLmNgLiBPa2F5LCBub3cgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uLCB0aGF0IEkgbmVlZCB0byBhbnN3ZXIuIElzIGBkcm1fZmJfaGVscGVyLmNgIGNvbXBpbGVkIHdpdGggdGhlIG5lY2Vzc2FyeSBgRFJNX0ZCREVWX0VNVUxBVElPTmAgb3B0aW9uPyBJdCBoYXMgdG8gYmUsIG9yIHRoaW5ncyBhcmUgZ29pbmcgdG8gYmUgYnJva2VuLiBJIG5lZWQgdG8gZ28gYW5kIGNvbmZpcm0gdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkzNjQsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODozOC41ODgyNjc5NjVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzNzQzOTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9mYl9oZWxwZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZT0xNTk9ZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX1BBTkVMX0JSSURHRSkgKz0gYnJpZGdlL3BhbmVsLm9cXG5kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGU6MTYwOmRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9IGRybV9mYl9oZWxwZXIub1xcbmRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZS0xNjEtb2JqLSQoQ09ORklHX0RSTV9LTVNfSEVMUEVSKSArPSBkcm1fa21zX2hlbHBlci5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ4OjM4LjY1MjAxODc2M1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NjQyNDMzODI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBkZWVwIGluIHRoZSB3ZWVkcyBvZiBrZXJuZWwgZGV2ZWxvcG1lbnQgYW5kIHNwZWNpZmljYWxseSB3b3JraW5nIHdpdGggRFJNOlxuXG4qKkV4YW1pbmluZyB0aGUgRFJNIERyaXZlciBJbnRlcmRlcGVuZGVuY2llcyoqXG5cblllcywgdGhhdCdzIHJpZ2h0LiBgRFJNX0ZCREVWX0VNVUxBVElPTmAgaXMgZXNzZW50aWFsIGZvciB0aGlzIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbi4gTm93LCBsZXQncyBqdXN0IHF1aWNrbHkgdmVyaWZ5IHRoYXQgYERSTV9WS01TYCAtIHRoZSB2aXJ0dWFsIEtNUyBkcml2ZXIgLSBpbmRlZWQgaGFuZGxlcyB0aGlzIGRlcGVuZGVuY3kuIEkgbmVlZCB0byBtYWtlIHN1cmUgYERSTV9WS01TYCBjb3JyZWN0bHkgc2VsZWN0cywgb3IgZGVwZW5kcyBvbiwgYERSTV9GQkRFVl9FTVVMQVRJT05gIHRvIGZ1bmN0aW9uIHByb3Blcmx5LiBHb3R0YSBjaGVjayB0aGUgS2NvbmZpZyBkZXBlbmRlbmNpZXMgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk4MjIsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODo0NS4yOTQ0NTQ4NjdaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkxMzc4NjU3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgRFJNX0ZCREVWX0VNVUxBVElPTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vdmttcy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0ODo0NS4zODU4NDI5MDRaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTc3NzU3Nzk3MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTmF2aWdhdGluZyB0aGUgRFJNIENvbmZpZ3VyYXRpb24gTGFuZHNjYXBlKipcblxuT2theSwgc28gdGhlIGluaXRpYWwgYXNzdW1wdGlvbiB3YXMgaW5jb3JyZWN0IOKAkyBpdCdzIGNsZWFyIHRoYXQgdGhlIGN1cnJlbnQgc2V0dXAgaXNuJ3Qgc3VmZmljaWVudC4gTXkgaW5zdGluY3QgaXMgdG8gYWRkIGBEUk1fRkJERVZfRU1VTEFUSU9OYCB0byB0aGUgYEVuYWJsZUNvbmZpZ3NgLCBidXQgd2FpdCwgaXNuJ3QgdGhhdCBhIGJvb2xlYW4gY29uZmlnPyBSaWdodCwgaXQgaXMuIEdvdHRhIGJlIGNhcmVmdWwgd2l0aCB0aG9zZS5cblxuTGV0J3MgcXVpY2tseSBzY2FuIHRoZSByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHRvIHNlZSB3aGF0J3MgY29ubmVjdGVkLiBBaCwgYERSTV9DTElFTlRfU0VMRUNUSU9OYCBpcyBzZWxlY3RlZCBieSBgRFJNX1ZLTVNgLiBUaGF0IHNlZW1zIHJlbGV2YW50LiBBbmQgYERSTV9DTElFTlRfU0VMRUNUSU9OYCB0aGVuIHNlbGVjdHMgYERSTV9DTElFTlRfTElCYCAqaWYqIGBEUk1fRkJERVZfRU1VTEFUSU9OYCBpcyBhbHNvIGVuYWJsZWQuXG5cbkhtbSwgYERSTV9DTElFTlRfTElCYOKApiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGludGVyYWN0aW9ucyBvZiB0aGVzZSBjbGllbnQgZHJpdmVycy4gQmVzdCBnbyBiYWNrIHRvIHRoZSBzb3VyY2U7IEkgc2hvdWxkIHJldmlzaXQgdGhlIGBkcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnYCBmaWxlIGFuZCByZXZpZXcgdGhlIGRlcGVuZGVuY2llcyBhbmQgaW1wbGljYXRpb25zIG9mIGVhY2ggb2YgdGhlc2Ugb3B0aW9ucyBpbiBtb3JlIGRldGFpbC4gVGhhdCdzIHdoZXJlIHRoZSByZWFsIGFuc3dlciBsaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA0OCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0OTowMy4xNjE2MjY0NjhaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1OTAzMDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEUk1fRkJERVZfRU1VTEFUSU9OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9ncHUvZHJtL2NsaWVudHMvS2NvbmZpZz0yOD1tZW51IFxcXCJTdXBwb3J0ZWQgRFJNIGNsaWVudHNcXFwiXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMwLVxcbmRyaXZlcnMvZ3B1L2RybS9jbGllbnRzL0tjb25maWc6MzE6Y29uZmlnIERSTV9GQkRFVl9FTVVMQVRJT05cXG5kcml2ZXJzL2dwdS9kcm0vY2xpZW50cy9LY29uZmlnLTMyLVxcdGJvb2wgXFxcIkVuYWJsZSBsZWdhY3kgZmJkZXYgc3VwcG9ydCBmb3IgeW91ciBtb2Rlc2V0dGluZyBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ5OjAzLjIxNzUzNDQyNloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDA1MTQ1MjI3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipLZXJuZWwgQ29uZmlndXJhdGlvbiBhbmQgdmJsYW5rIFN5bmNocm9uaXphdGlvbioqXG5cbk9rYXksIHNvIEkndmUgY29uZmlybWVkIHRoYXQgYERSTV9GQkRFVl9FTVVMQVRJT05gIGlzIHRoZSBjcnVjaWFsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHdlIG5lZWQgdG8gYmUgbG9va2luZyBhdC4gSSdsbCBnbyBhaGVhZCBhbmQgYWRkIGJvdGggYERSTV9WS01TYCBhbmQgYERSTV9GQkRFVl9FTVVMQVRJT05gIHRvIGBFbmFibGVDb25maWdzYCwgdGhhdCBzZWVtcyBsaWtlIHRoZSBjb3JyZWN0IGFjdGlvbiB0byB0YWtlLiBOb3csIGxldCdzIGZvY3VzIG9uIHRoZSBzeW1ib2xzIHJlbGF0ZWQgdG8gdmJsYW5rIHN5bmNocm9uaXphdGlvbjogYGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtgIGFuZCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYC4gSSBzZWUgdGhhdCBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBpcyBhIG5ldyBmdW5jdGlvbiwgaW50ZXJlc3RpbmcuIFRoZSBmYWN0IHRoYXQgaXQncyBub3Qgc3RhdGljIGlzIHdvcnRoIG5vdGluZy4gSnVzdCB0byBiZSBzdXJlLCBJIHNob3VsZCByZWFsbHkgY2hlY2sgYGRybV92YmxhbmsuY2AgdG8gc2VlIGhvdyB0aGlzIG5ldyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGFuZCBpZiB0aGVyZSBhcmUgYW55IHN1YnRsZSBpc3N1ZXMgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2YuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNTQ4LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE4OjQ5OjE3LjI2ODk5MDM4MloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzAzNDkzMzExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM9MTI5OD1FWFBPUlRfU1lNQk9MKGRybV9jcnRjX3ZibGFua19wdXQpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTI5OS1cXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jOjEzMDA6aW50IGRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpXFxuZHJpdmVycy9ncHUvZHJtL2RybV92YmxhbmsuYy0xMzAxLXtcXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM9MTMzND1pbnQgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YylcXG5kcml2ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jLTEzMzUte1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmM6MTMzNjpcXHRpbnQgcmV0ID0gZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsKGNydGMpO1xcbmRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMtMTMzNy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTg6NDk6MTcuNTcyNDkyNDAzWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExOTAyMTQxOTE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgRGVjaXNpb24gZm9yIERSTSBJbnRlcm5hbCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaW1tZWRpYXRlbHkgSSdtIHRoaW5raW5nLCB0aGlzIGlzbid0IGEgc3RhdGljIHBpZWNlIG9mIGNvZGUsIHdoaWNoIG1lYW5zIGl0IGNhbiBiZSB0YXJnZXRlZCwgcmlnaHQ/IFdhaXQsIGhvbGQgb24sIGlzIHRoaXMgc29tZXRoaW5nIHRoYXQgZ2V0cyBleHBvcnRlZD8gTm9wZSwgaXQncyBub3QgZXhwb3J0ZWQuIEFoLCBidXQgaXQncyBkZWZpbmVkIHdpdGhpbiBgZHJtX2ludGVybmFsLmhgLCBzbyBpdCdzIGFjY2Vzc2libGUgd2l0aGluIHRoZSBEUk0gc3Vic3lzdGVtIGl0c2VsZi5cblxuTm93LCB0aGUgYmlnIHF1ZXN0aW9uOiBJcyB0aGlzIHdvcnRoIGZ1enppbmc/IFllcywgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgY2FuZGlkYXRlLiBJdCBhZGRyZXNzZXMgYSBmYWxzZSBwb3NpdGl2ZSBgV0FSTmAsIHdoaWNoIGlzIGEgcHJldHR5IHNlcmlvdXMgaXNzdWUgc2luY2Ugc3l6a2FsbGVyIGlzIHRyZWF0aW5nIHRoYXQgYXMgYSBmdWxsLWJsb3duIGNyYXNoLiBUaGF0J3MgYSByZWQgZmxhZy4gRnV6emluZyB0aGlzIHdvdWxkIGNvbmZpcm0gdGhhdCB0aGUgJ2NyYXNoJyBpcyBzcXVhc2hlZCBhbmQgdGhhdCB3ZSBjYW4gZGVsdmUgZGVlcGVyIGludG8gdGhlIG1vZGlmaWVkIGNvZGUgcGF0aC5cblxuSGFuZyBvbiBhIHNlYy4gSSdtIGJlaW5nIHByb21wdGVkIHRvIGNoZWNrIGZvciBkZWNvcmF0aXZlIGNoYW5nZXMgb25seS4gVGhlIHByb21wdCBzYXlzLCBzcGVjaWZpY2FsbHk6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cIiBCdXQgSSd2ZSBhbHJlYWR5IHJlYXNvbmVkIHRoYXQgdGhpcyBpcyBtb3JlIHRoYW4ganVzdCBsb2dnaW5nLiBgV0FSTmAgaXMgYW4gYXNzZXJ0aW9uIHRoYXQncyB0cmlnZ2VyaW5nIGEgYnVnIG9yIGNyYXNoIGluIHRoZXNlIGZ1enppbmcgZW52aXJvbm1lbnRzLiBGaXhpbmcgYSBgV0FSTmAgbGlrZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBidWcgZml4LiBUaGlzIGlzIG5vdCBwdXJlbHkgZGVjb3JhdGl2ZS5cblxuQWxyaWdodCwgbGV0J3MgZG91YmxlLWNoZWNrIHRoZSBjaGFuZ2VzIHF1aWNrbHkuIEl0J3MganVzdCBleHRyYWN0aW5nIHRoYXQgaW50ZXJuYWwgZnVuY3Rpb24gYW5kIGNhbGxpbmcgaXQgZnJvbSBgZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua2AuIE5vdGhpbmcgZWxzZS4gT2theSwgSSdtIGNvbmZpZGVudC4gSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5Ob3csIGxldCdzIGxvb2sgYXQgdGhlIGJlc3QgZm9jdXMgc3ltYm9sLiBJcyBgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsYCBhIGdvb2QgZm9jdXM/IFllcywgaXQgaXMgdGhlIGNvcmUgZnVuY3Rpb24gdGhhdCBnb3QgdGhlIG1vZGlmaWNhdGlvbi4gQW5kIGBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rYCBpcyBhbHNvIGdvb2QgYmVjYXVzZSBpdCBpcyB0aGUgY2FsbGVyIHRoYXQgd2FzIG1vZGlmaWVkLlxuXG5MZXQncyBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTY1LCJPdXRwdXRUb2tlbnMiOjE2NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxODo0OToyOS40NzQ2Mzc1MTJaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjU5OTI0MTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRSTV9WS01TXCIsXG4gICAgXCJEUk1fRkJERVZfRU1VTEFUSU9OXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZHJtX2NsaWVudF9tb2Rlc2V0X3dhaXRfZm9yX3ZibGFua1wiLFxuICAgIFwiZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rX2ludGVybmFsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBmYWxzZSBwb3NpdGl2ZSBXQVJOICh3aGljaCB0cmlnZ2VycyBhIGNyYXNoIGluIGZ1enppbmcgZW52aXJvbm1lbnRzIHdpdGggcGFuaWNfb25fd2FybikgYnkgZXh0cmFjdGluZyB0aGUgY29yZSBsb2dpYyBvZiBkcm1fY3J0Y193YWl0X29uZV92YmxhbmsgaW50byBhbiBpbnRlcm5hbCBmdW5jdGlvbiB3aXRob3V0IHRoZSB3YXJuaW5nLCBhbmQgdXNpbmcgaXQgaW4gdGhlIGRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmsgcGF0aC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgYnVnIGZpeCB0aGF0IGFsbG93cyBmdXp6ZXJzIHRvIGV4cGxvcmUgdGhpcyBjb2RlIHBhdGggd2l0aG91dCBjcmFzaGluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEUk1fVktNU1wiLFxuICAgIFwiRFJNX0ZCREVWX0VNVUxBVElPTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRybV9jbGllbnRfbW9kZXNldF93YWl0X2Zvcl92YmxhbmtcIixcbiAgICBcImRybV9jcnRjX3dhaXRfb25lX3ZibGFua19pbnRlcm5hbFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgZmFsc2UgcG9zaXRpdmUgV0FSTiAod2hpY2ggdHJpZ2dlcnMgYSBjcmFzaCBpbiBmdXp6aW5nIGVudmlyb25tZW50cyB3aXRoIHBhbmljX29uX3dhcm4pIGJ5IGV4dHJhY3RpbmcgdGhlIGNvcmUgbG9naWMgb2YgZHJtX2NydGNfd2FpdF9vbmVfdmJsYW5rIGludG8gYW4gaW50ZXJuYWwgZnVuY3Rpb24gd2l0aG91dCB0aGUgd2FybmluZywgYW5kIHVzaW5nIGl0IGluIHRoZSBkcm1fY2xpZW50X21vZGVzZXRfd2FpdF9mb3JfdmJsYW5rIHBhdGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGJ1ZyBmaXggdGhhdCBhbGxvd3MgZnV6emVycyB0byBleHBsb3JlIHRoaXMgY29kZSBwYXRoIHdpdGhvdXQgY3Jhc2hpbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowhgmx5[1] Phase: Succeeded StartedAt: 2026-08-06 18:49:40 +0000 UTC FinishedAt: 2026-08-06 18:49:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-06 18:49:40 +0000 UTC FinishedAt: 2026-08-06 18:49:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2] Phase: Succeeded StartedAt: 2026-08-06 18:49:40 +0000 UTC FinishedAt: 2026-08-06 22:35:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-06 18:49:40 +0000 UTC FinishedAt: 2026-08-06 22:35:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-06 18:49:40 +0000 UTC FinishedAt: 2026-08-06 18:49:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-06 18:49:40 +0000 UTC FinishedAt: 2026-08-06 18:49:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},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-workflowhgmx5/series-workflowhgmx5-convert-artifact-2237205385/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-06 18:49:50 +0000 UTC FinishedAt: 2026-08-06 19:07:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-06 18:49:50 +0000 UTC FinishedAt: 2026-08-06 19:07:34 +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:*46826c55-e3f5-4cae-b3bc-cc2e5aa6b47c,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-workflowhgmx5/series-workflowhgmx5-convert-artifact-2237205385/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": "02f6e40c-ec41-4595-9b27-ddca96181566", "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-workflowhgmx5/series-workflowhgmx5-build-action-2314323047/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-06 18:49:50 +0000 UTC FinishedAt: 2026-08-06 19:07:24 +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:*46826c55-e3f5-4cae-b3bc-cc2e5aa6b47c,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-workflowhgmx5/series-workflowhgmx5-convert-artifact-2237205385/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": "02f6e40c-ec41-4595-9b27-ddca96181566", "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-workflowhgmx5/series-workflowhgmx5-build-action-2314323047/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-06 19:07:34 +0000 UTC FinishedAt: 2026-08-06 19:07:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-06 19:07:34 +0000 UTC FinishedAt: 2026-08-06 19:07:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-06 19:07:34 +0000 UTC FinishedAt: 2026-08-06 19:07:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-06 19:07:34 +0000 UTC FinishedAt: 2026-08-06 19:07:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},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-workflowhgmx5/series-workflowhgmx5-convert-artifact-726277788/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-06 19:07:44 +0000 UTC FinishedAt: 2026-08-06 19:09:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-06 19:07:44 +0000 UTC FinishedAt: 2026-08-06 19:09:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*02f6e40c-ec41-4595-9b27-ddca96181566,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-workflowhgmx5/series-workflowhgmx5-build-action-2314323047/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-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-06 19:09:55 +0000 UTC FinishedAt: 2026-08-06 19:09:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-06 19:09:55 +0000 UTC FinishedAt: 2026-08-06 19:09:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-06 19:09:55 +0000 UTC FinishedAt: 2026-08-06 19:26:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-06 19:09:55 +0000 UTC FinishedAt: 2026-08-06 19:26:45 +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:*46826c55-e3f5-4cae-b3bc-cc2e5aa6b47c,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-workflowhgmx5/series-workflowhgmx5-convert-artifact-726277788/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": "092b36f6-827b-4e60-8af6-b14f300264ff", "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-workflowhgmx5/series-workflowhgmx5-build-action-2604646904/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-06 19:09:55 +0000 UTC FinishedAt: 2026-08-06 19:26:35 +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:*46826c55-e3f5-4cae-b3bc-cc2e5aa6b47c,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-workflowhgmx5/series-workflowhgmx5-convert-artifact-726277788/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": "092b36f6-827b-4e60-8af6-b14f300264ff", "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-workflowhgmx5/series-workflowhgmx5-build-action-2604646904/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-06 19:26:45 +0000 UTC FinishedAt: 2026-08-06 19:26:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-06 19:26:45 +0000 UTC FinishedAt: 2026-08-06 19:26:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-06 19:26:45 +0000 UTC FinishedAt: 2026-08-06 19:28:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-06 19:26:45 +0000 UTC FinishedAt: 2026-08-06 19:28:36 +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:*092b36f6-827b-4e60-8af6-b14f300264ff,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-workflowhgmx5/series-workflowhgmx5-build-action-2604646904/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-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-06 19:28:46 +0000 UTC FinishedAt: 2026-08-06 22:35:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-06 19:28:46 +0000 UTC FinishedAt: 2026-08-06 22:35:30 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"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:*02f6e40c-ec41-4595-9b27-ddca96181566,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*092b36f6-827b-4e60-8af6-b14f300264ff,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-workflowhgmx5/series-workflowhgmx5-build-action-2314323047/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-workflowhgmx5/series-workflowhgmx5-build-action-2604646904/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-06 19:28:46 +0000 UTC FinishedAt: 2026-08-06 19:28:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-06 19:28:46 +0000 UTC FinishedAt: 2026-08-06 19:28:51 +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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"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-workflowhgmx5/series-workflowhgmx5-convert-artifact-2747338341/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-06 19:28:46 +0000 UTC FinishedAt: 2026-08-06 19:28:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-06 19:28:46 +0000 UTC FinishedAt: 2026-08-06 19:28:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-06 19:28:46 +0000 UTC FinishedAt: 2026-08-06 19:28:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-06 19:28:56 +0000 UTC FinishedAt: 2026-08-06 22:35:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhgmx5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["drm_client_modeset_wait_for_vblank","drm_crtc_wait_one_vblank_internal"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["DRM_VKMS","DRM_FBDEV_EMULATION"],"series_id":"305a5439-c48d-4175-aca9-5f196e8d3ca9","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-06 19:28:56 +0000 UTC FinishedAt: 2026-08-06 22:35:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*02f6e40c-ec41-4595-9b27-ddca96181566,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*092b36f6-827b-4e60-8af6-b14f300264ff,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-workflowhgmx5/series-workflowhgmx5-build-action-2314323047/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-workflowhgmx5/series-workflowhgmx5-build-action-2604646904/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-workflowhgmx5/series-workflowhgmx5-convert-artifact-2747338341/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,}