Name: series-workflowxxz7j Phase: Succeeded StartedAt: 2026-08-06 07:52:08 +0000 UTC FinishedAt: 2026-08-06 11:45:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[0] Phase: Succeeded StartedAt: 2026-08-06 07:52:08 +0000 UTC FinishedAt: 2026-08-06 07:55:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 07:52:08 +0000 UTC FinishedAt: 2026-08-06 07:55:49 +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": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "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": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "14c6b1ed-0b11-4cff-8012-587dafa9c60d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_tdls_peer_del_work", "ieee80211_tdls_oper" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfdGRsc19vcGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZjRjNmU0YTUxNWE3ZjYxMGQyYTg1YmE4MGM1YTI1NGI5NTIzZjI2OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMDc6NTQ6MzQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3RkbHMuYyBiL25ldC9tYWM4MDIxMS90ZGxzLmNcbmluZGV4IGZmZDU3NWE4ZDE4OGYuLmVlZjFkZGUxYzcwYTggMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvdGRscy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvdGRscy5jXG5AQCAtMzMsOCAmIzQzOzMzLDEyIEBAIHZvaWQgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd2spXG4gXHRsb2NrZGVwX2Fzc2VydF93aXBoeShsb2NhbC1cdTAwM2Vody53aXBoeSk7XG4gXG4gXHRpZiAoIWlzX3plcm9fZXRoZXJfYWRkcihzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpKSB7XG4mIzQzO1x0XHRzdHJ1Y3Qgc3RhX2luZm8gKnN0YTtcbiYjNDM7XG4gXHRcdHRkbHNfZGJnKHNkYXRhLCBcJiMzNDtURExTIGRlbCBwZWVyICVwTVxcblwmIzM0Oywgc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcbi1cdFx0c3RhX2luZm9fZGVzdHJveV9hZGRyKHNkYXRhLCBzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xuJiM0MztcdFx0c3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xuJiM0MztcdFx0aWYgKHN0YSBcdTAwMjZcdTAwMjYgc3RhLVx1MDAzZXN0YS50ZGxzKVxuJiM0MztcdFx0XHRzdGFfaW5mb19kZXN0cm95X2FkZHIoc2RhdGEsIHNkYXRhLVx1MDAzZXUubWdkLnRkbHNfcGVlcik7XG4gXHRcdGV0aF96ZXJvX2FkZHIoc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcbiBcdH1cbiB9XG5AQCAtMTQ2Miw2ICYjNDM7MTQ2NiwxMCBAQCBpbnQgaWVlZTgwMjExX3RkbHNfb3BlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdCAgICAgIWV0aGVyX2FkZHJfZXF1YWwoc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyLCBwZWVyKSk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LOlxuJiM0MztcdFx0c3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBwZWVyKTtcbiYjNDM7XHRcdGlmICghc3RhIHx8ICFzdGEtXHUwMDNlc3RhLnRkbHMpXG4mIzQzO1x0XHRcdHJldHVybiAtRU5PTElOSztcbiYjNDM7XG4gXHRcdC8qXG4gXHRcdCAqIFRoZSB0ZWFyZG93biBtZXNzYWdlIGluIGllZWU4MDIxMV90ZGxzX21nbXRfdGVhcmRvd24oKSB3YXNcbiBcdFx0ICogY3JlYXRlZCB3aGlsZSB0aGUgcXVldWVzIHdlcmUgc3RvcHBlZCwgc28gaXQgbWlnaHQgc3RpbGwgYmVcbkBAIC0xNDc2LDcgJiM0MzsxNDg0LDcgQEAgaW50IGllZWU4MDIxMV90ZGxzX29wZXIoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0LyogZmx1c2ggYSBwb3RlbnRpYWxseSBxdWV1ZWQgdGVhcmRvd24gcGFja2V0ICovXG4gXHRcdGllZWU4MDIxMV9mbHVzaF9xdWV1ZXMobG9jYWwsIHNkYXRhLCBmYWxzZSk7XG4gXG4tXHRcdHJldCA9IHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgcGVlcik7XG4mIzQzO1x0XHRyZXQgPSBfX3N0YV9pbmZvX2Rlc3Ryb3koc3RhKTtcbiBcbiBcdFx0aWVlODAyMTFfdGRsc19yZWNhbGNfaHRfcHJvdGVjdGlvbihzZGF0YSwgTlVMTCk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfdGRsc19vcGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZjRjNmU0YTUxNWE3ZjYxMGQyYTg1YmE4MGM1YTI1NGI5NTIzZjI2OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMDc6NTQ6MzQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvdGRscy5jIGIvbmV0L21hYzgwMjExL3RkbHMuYwppbmRleCBmZmQ1NzVhOGQxODhmLi5lZWYxZGRlMWM3MGE4IDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvdGRscy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS90ZGxzLmMKQEAgLTMzLDggJiM0MzszMywxMiBAQCB2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKQogCWxvY2tkZXBfYXNzZXJ0X3dpcGh5KGxvY2FsLSZndDtody53aXBoeSk7CiAKIAlpZiAoIWlzX3plcm9fZXRoZXJfYWRkcihzZGF0YS0mZ3Q7dS5tZ2QudGRsc19wZWVyKSkgewomIzQzOwkJc3RydWN0IHN0YV9pbmZvICpzdGE7CiYjNDM7CiAJCXRkbHNfZGJnKHNkYXRhLCAmIzM0O1RETFMgZGVsIHBlZXIgJXBNXG4mIzM0Oywgc2RhdGEtJmd0O3UubWdkLnRkbHNfcGVlcik7Ci0JCXN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgc2RhdGEtJmd0O3UubWdkLnRkbHNfcGVlcik7CiYjNDM7CQlzdGEgPSBzdGFfaW5mb19nZXQoc2RhdGEsIHNkYXRhLSZndDt1Lm1nZC50ZGxzX3BlZXIpOwomIzQzOwkJaWYgKHN0YSAmYW1wOyZhbXA7IHN0YS0mZ3Q7c3RhLnRkbHMpCiYjNDM7CQkJc3RhX2luZm9fZGVzdHJveV9hZGRyKHNkYXRhLCBzZGF0YS0mZ3Q7dS5tZ2QudGRsc19wZWVyKTsKIAkJZXRoX3plcm9fYWRkcihzZGF0YS0mZ3Q7dS5tZ2QudGRsc19wZWVyKTsKIAl9CiB9CkBAIC0xNDYyLDYgJiM0MzsxNDY2LDEwIEBAIGludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICAgICFldGhlcl9hZGRyX2VxdWFsKHNkYXRhLSZndDt1Lm1nZC50ZGxzX3BlZXIsIHBlZXIpKTsKIAkJYnJlYWs7CiAJY2FzZSBOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LOgomIzQzOwkJc3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBwZWVyKTsKJiM0MzsJCWlmICghc3RhIHx8ICFzdGEtJmd0O3N0YS50ZGxzKQomIzQzOwkJCXJldHVybiAtRU5PTElOSzsKJiM0MzsKIAkJLyoKIAkJICogVGhlIHRlYXJkb3duIG1lc3NhZ2UgaW4gaWVlZTgwMjExX3RkbHNfbWdtdF90ZWFyZG93bigpIHdhcwogCQkgKiBjcmVhdGVkIHdoaWxlIHRoZSBxdWV1ZXMgd2VyZSBzdG9wcGVkLCBzbyBpdCBtaWdodCBzdGlsbCBiZQpAQCAtMTQ3Niw3ICYjNDM7MTQ4NCw3IEBAIGludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCS8qIGZsdXNoIGEgcG90ZW50aWFsbHkgcXVldWVkIHRlYXJkb3duIHBhY2tldCAqLwogCQlpZWVlODAyMTFfZmx1c2hfcXVldWVzKGxvY2FsLCBzZGF0YSwgZmFsc2UpOwogCi0JCXJldCA9IHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgcGVlcik7CiYjNDM7CQlyZXQgPSBfX3N0YV9pbmZvX2Rlc3Ryb3koc3RhKTsKIAogCQlpZWU4MDIxMV90ZGxzX3JlY2FsY19odF9wcm90ZWN0aW9uKHNkYXRhLCBOVUxMKTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTM4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFRETFMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvbWFjODAyMTEvdGRscy5jYC4gVGhlIGdpc3Qgb2YgaXQgaXMgYWRkaW5nIGEgY2hlY2sgaW4gYSBjb3VwbGUgb2YgZnVuY3Rpb25zLCBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYCwgdG8gbWFrZSBzdXJlIHRoYXQgd2UmIzM5O3JlIG9ubHkgZGVhbGluZyB3aXRoIHN0YXRpb25zIHRoYXQgYXJlIGFjdHVhbGx5IGNvbmZpZ3VyZWQgYXMgVERMUyBzdGF0aW9ucy4gVGhlIGNoZWNrIGludm9sdmVzIHZlcmlmeWluZyB0aGUgYHN0YS0mZ3Q7c3RhLnRkbHNgIGZsYWcuIE1ha2VzIHNlbnNlOyB5b3UgZG9uJiMzOTt0IHdhbnQgdGhlc2UgVERMUy1zcGVjaWZpYyBmdW5jdGlvbnMgb3BlcmF0aW5nIG9uIHJlZ3VsYXIgc3RhdGlvbnMuIEl0JiMzOTtzIGFib3V0IGVuc3VyaW5nIHdlJiMzOTtyZSBvbmx5IGRlbGV0aW5nIGFuZCBvcGVyYXRpbmcgb24gdGhlIGNvcnJlY3QgdHlwZSBvZiBzdGF0aW9ucy4KClRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIEkgd2FudCB0byBzZWUgd2hhdCBlbHNlIG1pZ2h0IGJlIGFmZmVjdGVkIGFuZCBob3cgVERMUyBpcyBjb25maWd1cmVkIGluIHRoaXMgbW9kdWxlLCBzbyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuIEkmIzM5O2xsIHVzZSBgZ3JlcHBlcmAgYW5kIHNlYXJjaCBpbiB0aGUgYG5ldC9tYWM4MDIxMS9NYWtlZmlsZWAgdG8gbG9jYXRlIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aGluIGB0ZGxzLmNgLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgd2lkZXIgaW1wYWN0IGFuZCBob3cgVERMUyBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuIEl0JiMzOTtzIGFsbCBhYm91dCB2ZXJpZnlpbmcgdGhhdCB0aGUgcGF0Y2ggaXMgYSBzYWZlIGFkZGl0aW9uIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGRsc1xcLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL01ha2VmaWxlPTU9bWFjODAyMTEteSA6PSBcXFxuLS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zNC1cdHRyYWNlLm8gbWxtZS5vIFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6MzU6XHR0ZGxzLm8gXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zNi1cdG9jYi5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzEzMgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgRGVwZW5kZW5jeSBDaGFpbioqCgpSaWdodCwgc28gYHRkbHMub2AuIEkga25vdyB0aGF0JiMzOTtzIHBhcnQgb2YgdGhlIGBtYWM4MDIxMS15YCBtb2R1bGUsIHNvIGl0JiMzOTtzIGEgcGllY2Ugb2YgdGhlIGxhcmdlciBgbWFjODAyMTFgIGRyaXZlciBmcmFtZXdvcmsuIE15IGltbWVkaWF0ZSBmb2N1cyBpcywgd2hhdCBjb25maWcgb3B0aW9uIGFjdHVhbGx5IGJyaW5ncyB0aGlzIHdob2xlIHRoaW5nIHRvIGxpZmU/IEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHRoZSB1cHN0cmVhbSBjb25maWd1cmF0aW9uIGVudHJ5IHRoYXQgdG9nZ2xlcyBgbWFjODAyMTFgLiBUaGF0JiMzOTtzIHRoZSBrZXk6IGZpZ3VyaW5nIG91dCAqd2hpY2gqIEtjb25maWcgb3B0aW9uIG5lZWRzIHRvIGJlIGVuYWJsZWQgdG8gaW5jbHVkZSBgbWFjODAyMTFgIGFuZCwgY29uc2VxdWVudGx5LCBgdGRscy5vYC4gVGhpcyB3aWxsIGhlbHAgZGV0ZXJtaW5lIHdoYXQgcHJlcmVxdWlzaXRlcyBhcmUgbmVlZGVkIGFuZCBob3cgYHRkbHMub2AgZ2V0cyBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgc3RlcCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHRoZSBvdmVyYWxsIGJ1aWxkIHByb2Nlc3MuIExldCBtZSBxdWlja2x5IGp1bXAgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgdHJhY2UgaXQgYmFjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttYWM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTUFDODAyMTEpICYjNDM7PSBtYWM4MDIxMS5vXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMy1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0OiMgbWFjODAyMTEgb2JqZWN0c1xubmV0L21hYzgwMjExL01ha2VmaWxlOjU6bWFjODAyMTEteSA6PSBcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTYtXHRtYWluLm8gc3RhdHVzLm8gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzktXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDA6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfTEVEUykgJiM0Mzs9IGxlZC5vXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDE6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgJiM0Mzs9IFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDItXHRkZWJ1Z2ZzLm8gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDYtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDc6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfTUVTSCkgJiM0Mzs9IFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDgtXHRtZXNoLm8gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNTQtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NTU6bWFjODAyMTEtJChDT05GSUdfUE0pICYjNDM7PSBwbS5vXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNTYtXG4tLVxubmV0L21hYzgwMjExL01ha2VmaWxlPTYyPXJjODAyMTFfbWluc3RyZWwtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgJiM0Mzs9IFxcXG4tLVxubmV0L21hYzgwMjExL01ha2VmaWxlLTY0LVxubmV0L21hYzgwMjExL01ha2VmaWxlOjY1Om1hYzgwMjExLSQoQ09ORklHX01BQzgwMjExX1JDX01JTlNUUkVMKSAmIzQzOz0gJChyYzgwMjExX21pbnN0cmVsLXkpXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNjYtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU9Njc9b2JqLXkgJiM0Mzs9IHRlc3RzL1xubmV0L21hYzgwMjExL01ha2VmaWxlLTY4LVxubmV0L21hYzgwMjExL01ha2VmaWxlOjY5Om1hYzgwMjExLXkgJiM0Mzs9IHdicmYub1xubmV0L21hYzgwMjExL01ha2VmaWxlLTcwLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMTIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB1bmRlcnN0YW5kaW5nLCBkZWxpdmVyZWQgaW4gZmlyc3QgcGVyc29uOgoKKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgc28gdGhlIGZpcnN0IHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoZSBhYnNvbHV0ZSBuZWNlc3NpdHkgb2YgYENPTkZJR19NQUM4MDIxMWAuIFRoYXQmIzM5O3MgdGhlIGJhc2VsaW5lLCB0aGUgZm91bmRhdGlvbi4gSSBuZWVkIHRoYXQgZW5hYmxlZCwgbm8gcXVlc3Rpb24uIE5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGNoZWNrIGZvciAqb3RoZXIqIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBNeSBtaW5kIGltbWVkaWF0ZWx5IGdvZXMgdG8gdGhlIHBvdGVudGlhbCBmb3IgZGVwZW5kZW5jaWVzIHdpdGhpbiB0aGUgYG5ldC9tYWM4MDIxMS9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBncmFudWxhciBkZXRhaWxzIGFuZCBjb25kaXRpb25hbCBidWlsZCBzZXR0aW5ncyBhcmUgbGlrZWx5IGRlZmluZWQuIEkgbmVlZCB0byBkaXZlIGludG8gdGhhdCBLY29uZmlnIGZpbGUgYW5kIHNlZSB3aGF0IG90aGVyIGtub2JzIGFuZCBzd2l0Y2hlcyBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIsIGdpdmVuIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZS4gSSBhbnRpY2lwYXRlIHRoZXJlIHdpbGwgYmUgb3RoZXIgZGVwZW5kZW50IHNldHRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxubmV0L21hYzgwMjExL0tjb25maWctMjAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cdGJvb2xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNDAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cdHN0cmluZ1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVx0Ym9vbCBcJiMzNDtUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBPQ0IgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjgyLVx0Ym9vbCBcJiMzNDtWZXJib3NlIFRETFMgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXHRpbnQgXCYjMzQ7U3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVwmIzM0OyBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjQyNAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDEyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1BQzgwMjExIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29uZmlndXJhdGlvbiwgYW5kIGl0IHNlZW1zIGxpa2UgYE1BQzgwMjExYCBpcyB0aGUgY29yZSBvZiB0aGlzLiBIb2xkIG9uLCBpc24mIzM5O3QgYE1BQzgwMjExYCBidWlsdCBvbiBgQ0ZHODAyMTFgPyBJIGd1ZXNzIGl0IGRvZXNuJiMzOTt0IG1hdHRlciwgYE1BQzgwMjExYCBpdHNlbGYgaXMgc3VmZmljaWVudCBmb3IgdGhlIHByaW1hcnkgY29uZmlnLiBOb3csIEkgd2FudCB0byBjb25maXJtIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgaW1wb3J0YW50IGNvbmZpZ3MgSSBtaWdodCBiZSBvdmVybG9va2luZy4gVGltZSB0byBkaWcgZGVlcGVyLgoKQWxyaWdodCwgbG9va3MgbGlrZSB0aGUgY29kZSB0aGF0IGhhcyBiZWVuIG1vZGlmaWVkIGlzIHNwZWNpZmljYWxseSB3aXRoaW4gYG5ldC9tYWM4MDIxMS90ZGxzLmNgLiBJbnRlcmVzdGluZy4gVGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSByZWxldmFudCBoZXJlIHNlZW0gdG8gYmUgYGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtgIGFuZCBgaWVlZTgwMjExX3RkbHNfb3BlcmAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBhcmUgYmVpbmcgdXNlZCwgdGhlaXIgY2FsbCBncmFwaHMsIGFuZCBpZiB0aGVyZSBhcmUgYW55IGluZGlyZWN0IGRlcGVuZGVuY2llcyBJIHNob3VsZCBiZSBhd2FyZSBvZi4gSSBuZWVkIHRvIGJlIHN1cmUgdGhlc2UgYXJlIHJlYWNoYWJsZSBhbmQgYXNzZXNzIHRoZWlyIGltcGFjdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9MjkxOD1pbnQgaWVlZTgwMjExX3RkbHNfb3BlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjkxOS1cdFx0XHRjb25zdCB1OCAqcGVlciwgZW51bSBubDgwMjExX3RkbHNfb3BlcmF0aW9uIG9wZXIpO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjkyMDp2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKTtcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5MjEtaW50IGllZWU4MDIxMV90ZGxzX2NoYW5uZWxfc3dpdGNoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYz05NDQ2PXZvaWQgaWVlZTgwMjExX3N0YV9zZXR1cF9zZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTk0NTUtXHR3aXBoeV9kZWxheWVkX3dvcmtfaW5pdChcdTAwMjZpZm1nZC1cdTAwM2V0ZGxzX3BlZXJfZGVsX3dvcmssXG5uZXQvbWFjODAyMTEvbWxtZS5jOjk0NTY6XHRcdFx0XHRpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtOTQ1Ny1cdHdpcGh5X2hydGltZXJfd29ya19pbml0KFx1MDAyNmlmbWdkLVx1MDAzZW1sX3JlY29uZl93b3JrLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjMtXG5uZXQvbWFjODAyMTEvdGRscy5jOjI0OnZvaWQgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd2spXG5uZXQvbWFjODAyMTEvdGRscy5jLTI1LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzMyOQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGFzIGlmIHRoZXkgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipURExTIE9wZXJhdGlvbnMgJmFtcDsgUmVmYWN0b3JpbmcgQ29uc2lkZXJhdGlvbnMqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBgaWVlZTgwMjExX3RkbHNfb3BlcmAgZnVuY3Rpb24sIGFuZCBpdCYjMzk7cyBjbGVhciBpdCYjMzk7cyB1bmRlcmdvbmUgc29tZSBjaGFuZ2VzLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kICpob3cqIGl0JiMzOTtzIGJlZW4gbW9kaWZpZWQsIGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRob3NlIG1vZGlmaWNhdGlvbnMuIEkgY2FuIGluZmVyIGZyb20gdGhlIHBocmFzaW5nIHRoYXQgdGhpcyBmdW5jdGlvbiwgbGlrZWx5IHJlbGF0ZWQgdG8gVHVubmVsZWQgRGlyZWN0IExpbmsgU2V0dXAgd2l0aGluIHRoZSA4MDIuMTEgZnJhbWV3b3JrLCBpcyBhIGZvY2FsIHBvaW50IG9mIHJlY2VudCB1cGRhdGVzLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGF0IGtpbmQgb2YgYWx0ZXJhdGlvbnMgd2VyZSBtYWRlIGFuZCB3aGF0IGVmZmVjdCB0aGVzZSBoYXZlLiBJIG5lZWQgdG8ga25vdzogV2FzIGl0IGEgYnVnIGZpeD8gQW4gb3B0aW1pemF0aW9uPyBBIGZlYXR1cmUgYWRkaXRpb24/IE9yIHBlcmhhcHMsIGEgcmVmYWN0b3JpbmcgZWZmb3J0IHRvIGltcHJvdmUgY29kZSByZWFkYWJpbGl0eSBvciBtYWludGFpbmFiaWxpdHk/IFRoZSBzcGVjaWZpYyBkZXRhaWxzIG9mIHRoZSBjaGFuZ2VzIHdpbGwgZGljdGF0ZSBteSBuZXh0IHN0ZXBzLCB3aGV0aGVyIHRoYXTigJlzIGZvY3VzZWQgYW5hbHlzaXMgb2YgZnVuY3Rpb25hbCBjb3JyZWN0bmVzcyBvciBmdXJ0aGVyIHJlc2VhcmNoIGludG8gZGVzaWduIHRyYWRlLW9mZnMuIFRoZSBjb250ZXh0IGFyb3VuZCB0aGUgbW9kaWZpY2F0aW9uIGlzIGdvaW5nIHRvIGRyaXZlIHdoZXRoZXIgbXkgYW5hbHlzaXMgaW52b2x2ZXMgdGVzdGluZyBhbmQgdmFsaWRhdGlvbiwgY29kZSByZXZpZXdzLCBvciBkZXNpZ24gZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfdGRsc19vcGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvY2ZnLmM9NTk5MT1jb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzIG1hYzgwMjExX2NvbmZpZ19vcHMgPSB7XG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTYwNjItXHQuc2V0X3Jla2V5X2RhdGEgPSBpZWVlODAyMTFfc2V0X3Jla2V5X2RhdGEsXG5uZXQvbWFjODAyMTEvY2ZnLmM6NjA2MzpcdC50ZGxzX29wZXIgPSBpZWVlODAyMTFfdGRsc19vcGVyLFxubmV0L21hYzgwMjExL2NmZy5jLTYwNjQtXHQudGRsc19tZ210ID0gaWVlZTgwMjExX3RkbHNfbWdtdCxcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yOTEzPWludCBpZWVlODAyMTFfdGRsc19tZ210KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjkxNy1cdFx0XHRjb25zdCB1OCAqZXh0cmFfaWVzLCBzaXplX3QgZXh0cmFfaWVzX2xlbik7XG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoyOTE4OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTE5LVx0XHRcdGNvbnN0IHU4ICpwZWVyLCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3Blcik7XG4tLVxubmV0L21hYzgwMjExL3RkbHMuYz0xMzg2PWllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3RkbHMuYy0xNDE2LVxubmV0L21hYzgwMjExL3RkbHMuYzoxNDE3OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvbWFjODAyMTEvdGRscy5jLTE0MTgtXHRcdFx0Y29uc3QgdTggKnBlZXIsIGVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiBvcGVyKVxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMC1cbm5ldC9tYWM4MDIxMS90ZGxzLmM6MTUxMTp2b2lkIGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBjb25zdCB1OCAqcGVlcixcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMi1cdFx0XHRcdCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3Blcixcbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jLTE1MjQtfVxubmV0L21hYzgwMjExL3RkbHMuYzoxNTI1OkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KTtcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUyNi1cbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNDc9dm9pZCBpZWVlODAyMTFfdGVhcmRvd25fdGRsc19wZWVycyhzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jLTIwNjEtXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwNjI6XHRcdGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChcdTAwMjZzZGF0YS1cdTAwM2V2aWYsIHN0YS1cdTAwM2VzdGEuYWRkcixcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2My1cdFx0XHRcdFx0ICAgIE5MODAyMTFfVERMU19URUFSRE9XTiwgcmVhc29uLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmM9MjA2OT12b2lkIGllZWU4MDIxMV90ZGxzX2hhbmRsZV9kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4NS1cbm5ldC9tYWM4MDIxMS90ZGxzLmM6MjA4NjpcdGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChcdTAwMjZzZGF0YS1cdTAwM2V2aWYsIHBlZXIsXG5uZXQvbWFjODAyMTEvdGRscy5jLTIwODctXHRcdFx0XHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4Njk2CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjkyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBJRUVFIDgwMi4xMSBURExTIE9wZXJhdGlvbmFsIENvZGUgUGF0aCoqCgpPa2F5LCBzbyBgaWVlZTgwMjExX3RkbHNfb3BlcmAgaXMgZGVlcCBpbnNpZGUgYG1hYzgwMjExX2NvbmZpZ19vcHNgLiBUaGlzIG1lYW5zIGl0JiMzOTtzIHVsdGltYXRlbHkgaW52b2tlZCBieSBgY2ZnODAyMTFgIHRocm91Z2ggdGhlIGBubDgwMjExYCBuZXRsaW5rIGludGVyZmFjZSwgd2hpY2ggSSBrbm93IGluc2lkZSBhbmQgb3V0LiBTcGVjaWZpY2FsbHksIHRoZSBgTkw4MDIxMV9DTURfVERMU19PUEVSYCBuZXRsaW5rIGNvbW1hbmQgY2FsbHMgYGNmZzgwMjExX3RkbHNfb3BlcmAsIHdoaWNoIGluIHR1cm4gaGFuZHMgaXQgb2ZmIHRvIGByZGV2LSZndDtvcHMtJmd0O3RkbHNfb3BlcmAuIFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZTsgdXNlciBzcGFjZSBjYW4gcmVhY2ggdGhpcyBmdW5jdGlvbmFsaXR5IHRocm91Z2ggbmV0bGluay4gQW5kIHRoYXQgZGVsYXllZCB3b3JrIGZ1bmN0aW9uLCBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AsIGlzIGFsc28gYWNjZXNzaWJsZSB0aGF0IHdheS4KClRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggaXMgYWJvdXQgZml4aW5nIGEgYnVnLCBzcGVjaWZpY2FsbHkgYSBzaXR1YXRpb24gd2hlcmUgZWl0aGVyIGBzdGFfaW5mb19kZXN0cm95X2FkZHJgIG9yIGBfX3N0YV9pbmZvX2Rlc3Ryb3lgIGdldHMgY2FsbGVkIG9uIGEgc3RhdGlvbiB0aGF0ICptaWdodCogbm90IGJlIGEgVERMUyBzdGF0aW9uLCBvciBldmVuIGEgc3RhdGlvbiB0aGF0IGRvZXNuJiMzOTt0IGV4aXN0LCB3aGljaCBsZWFkcyB0byBwcm9ibGVtcy4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGZpeCwgbm90IGEgcGVyZm9ybWFuY2UgdHdlYWssIGFuZCBpdCYjMzk7cyBwcmV2ZW50aW5nIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uLgoKSSB3b25kZXIgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBrZXJuZWwgY29uZmlncyBuZWVkZWQgdG8gZW5hYmxlIFRETFMgZnVuY3Rpb25hbGl0eS4gTGV0IG1lIHF1aWNrbHkgY2hlY2sgYG5ldC9tYWM4MDIxMS90ZGxzLmNgIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24uIEhtbSwgaXQgc2VlbXMgdGhhdCBgdGRscy5vYCBpcyBhbHdheXMgY29tcGlsZWQgaWYgYE1BQzgwMjExYCBpcyBlbmFibGVkLiBMZXQmIzM5O3MgbWFrZSBzdXJlIEkgZGlkbiYjMzk7dCBtaXNzIHNvbWV0aGluZyBpbiB0aGUgYG5ldC9tYWM4MDIxMS9NYWtlZmlsZWAuIEp1c3QgYSBxdWljayByZXZpZXcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3RkbHNcXC5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9NYWtlZmlsZT01PW1hYzgwMjExLXkgOj0gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzQtXHR0cmFjZS5vIG1sbWUubyBcXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjM1Olx0dGRscy5vIFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzYtXHRvY2IubyBcXFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NTA1CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFdpcmVsZXNzIE1vZHVsZSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IHRoZSBgdGRscy5vYCBvYmplY3QgZmlsZSBpcyBpbnRyaW5zaWNhbGx5IGxpbmtlZCBpbnRvIGBtYWM4MDIxMS5vYCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuIFRoYXQgc2ltcGxpZmllcyB0aGluZ3M7IGVzc2VudGlhbGx5LCBgTUFDODAyMTFgIGl0c2VsZiBpcyB0aGUgb25seSBjb25maWd1cmF0aW9uIG9wdGlvbiBJIG5lZWQgdG8gY29uc2lkZXIgYXQgdGhpcyBsZXZlbC4gTm8gbmVlZCB0byB3b3JyeSBhYm91dCBgdGRsc2AgYXMgYSBzZXBhcmF0ZSBtb2R1bGUsIGl0JiMzOTtzIGJha2VkIGluLgoKQnV0Li4uIGEgcXVpY2sgcmVjYWxsIGNoZWNrIGZsYWdzIHRoYXQgYE1BQzgwMjExYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBDRkc4MDIxMWAsIGRvZXNuJiMzOTt0IGl0PyBHb3R0YSByZW1lbWJlciB0aGVzZSBpbnRlcmRlcGVuZGVuY2llcy4gQWxyaWdodCwgYmVzdCB0byBqdXN0IHZlcmlmeSB0aGF0IGFzc3VtcHRpb24gYW5kIHRvIGNvbmZpcm0gaG93IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHNldCB1cC4gTGV0IG1lIHF1aWNrbHkgZXhhbWluZSB0aGUgYG5ldC9tYWM4MDIxMS9LY29uZmlnYCBmaWxlIGFuZCBjb25maXJtIHRoZSBkZXBlbmRlbmN5IGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0Olx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctNS1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNj1jb21tZW50IFwmIzM0O0NGRzgwMjExIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIE1BQzgwMjExXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzpcdGRlcGVuZHMgb24gQ0ZHODAyMTE9blxubmV0L21hYzgwMjExL0tjb25maWctMTgtXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMi1cdHByb21wdCBcJiMzNDtEZWZhdWx0IHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMzOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTM0LVx0ZGVmYXVsdCBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDE9Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6NDM6XHRkZXBlbmRzIG9uIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00NC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz01Nz1jb21tZW50IFwmIzM0O1NvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6NTg6XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9IQVNfUkM9blxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZz02MD1jb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xubmV0L21hYzgwMjExL0tjb25maWc6NjI6XHRkZXBlbmRzIG9uIEtVTklUXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MzpcdGRlcGVuZHMgb24gTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY0LVx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz03MD1jb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6NzI6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03My1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz03OT1jb25maWcgTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL0tjb25maWctODAtXHRib29sIFwmIzM0O0VuYWJsZSBMRUQgdHJpZ2dlcnNcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjgxOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWc6ODI6XHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04My1cdHNlbGVjdCBMRURTX1RSSUdHRVJTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9ODg9Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjkwOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcdTAwMjZcdTAwMjYgQ0ZHODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctOTEtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9OTc9Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6OTk6XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBUUkFDSU5HXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDAtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTEwPW1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTExLVx0Ym9vbCBcJiMzNDtTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTI6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTMtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTE2PWNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVx0Ym9vbCBcJiMzNDtEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTg6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExOS1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMzI9Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzQ6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzNS1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNDM9Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDU6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0Ni1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNTQ9Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTU1LVx0Ym9vbCBcJiMzNDtWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTY6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1Ny1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNjM9Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjU6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Ni1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNzU9Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NzpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTc4LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE4Nj1jb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTg3LVx0Ym9vbCBcJiMzNDtWZXJib3NlIElCU1MgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODg6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4OS1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOTc9Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTk6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwMC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMDk9Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjExOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTI6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMy1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMjI9Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjI0Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjU6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyNi1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMzU9Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBIV01QIHJvdXRpbmcgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzc6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzODpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjM5LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI0OD1jb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTA6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1MTpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjUyLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI1OT1jb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjYxOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNjI6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2My1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNzA9Y29uZmlnIE1BQzgwMjExX01FU0hfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBvd2Vyc2F2ZSBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MjpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjczOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzQtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjgxPWNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MzpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMjg0LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI5Mz1jb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cdGJvb2wgXCYjMzQ7RXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTU6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5NjpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctMjk3LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjg3NgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIE11c2luZ3MqKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGBNQUM4MDIxMWAgc2l0dWF0aW9uLCBhbmQgaXQmIzM5O3MgaW1tZWRpYXRlbHkgYXBwYXJlbnQgdGhhdCBpdCYjMzk7cyB0aWdodGx5IGNvdXBsZWQgd2l0aCBgQ0ZHODAyMTFgLiBUaGF0IGRlcGVuZGVuY3kgaXMgY3JpdGljYWwsIHNvIEkmIzM5O2xsIGJlIHN1cmUgdG8gaW5jbHVkZSBib3RoIGluIGBFbmFibGVDb25maWdzYC4gQnV0IGhhbmcgb24uLi4gYE1BQzgwMjExYCBpcyB0cmlzdGF0ZSwgbWVhbmluZyBpdCBoYXMgdGhlIGZsZXhpYmlsaXR5IHRvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBDb25zaWRlcmluZyB0ZXN0aW5nIGFuZCBkZXBsb3ltZW50LCB0aGF0IG1vZHVsYXJpdHkgY291bGQgYmUgYmVuZWZpY2lhbC4KCk5vdywgdG8gcHJvcGVybHkgZXhlcmNpc2UgYE1BQzgwMjExYCwgSSBzaG91bGQgZW5hYmxlIGl0LCBhbG9uZyB3aXRoIGBDRkc4MDIxMWAsIGZvciBhIHNvbGlkIGJhc2UuIEhtbSwgYW5kIHRvICphY3R1YWxseSogcHV0IGl0IHRocm91Z2ggaXRzIHBhY2VzLCBJJiMzOTtsbCBuZWVkIGEgZHJpdmVyLiBJIHJlbWVtYmVyIHRoYXQgU3l6a2FsbGVyLCBpbiBpdHMgZnV6emluZyB3b3JrLCBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYCB0byBlbXVsYXRlIHRoZSBoYXJkd2FyZSBlbnZpcm9ubWVudC4gQSBjcml0aWNhbCBwaWVjZSBmb3IgZW5zdXJpbmcgYWxsIHBhdGhzIGFyZSBleHBsb3JlZC4gSSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlciBvciBub3QgYG1hYzgwMjExX2h3c2ltYCBpcyB0cnVseSBlc3NlbnRpYWwgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExX0hXU0lNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzM2NQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkxldmVyYWdpbmcgTUFDODAyMTFfSFdTSU0gZm9yIFJvYnVzdCBtYWM4MDIxMSBGdXp6aW5nKioKClJpZ2h0LCBgTUFDODAyMTFfSFdTSU1gIOKAkyBpdCYjMzk7cyBwcmFjdGljYWxseSAqZXNzZW50aWFsKiBmb3IgZnV6emluZyB0aGUgYG1hYzgwMjExYCBjb2RlLCBhbmQgSSYjMzk7bSByZWFsbHkga2VlbiB0byB1c2UgaXQuIEkga25vdyBpdCYjMzk7cyBhIHBvd2VyZnVsIHRvb2wgZm9yIGdlbmVyYXRpbmcgdGVzdCBzY2VuYXJpb3MuIEJlZm9yZSBkaXZpbmcgaW4sIGhvd2V2ZXIsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIGFsbCBteSBkdWNrcyBpbiBhIHJvdy4gQmVzdCB0byBmaXJzdCBleGFtaW5lIHRoZSBkZXBlbmRlbmNpZXMsIG1ha2Ugc3VyZSBldmVyeXRoaW5nJiMzOTtzIHNldCB1cCBjb3JyZWN0bHksIGFuZCB0aGF0IHRoZSBlbnZpcm9ubWVudCBpcyBmdWxseSBjb21wbGlhbnQuIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBvbiBhIGJyb2tlbiBidWlsZC4gSXTigJlzIGFsd2F5cyB0aGUgZmlyc3QgdGhpbmcgSSBkby4gSXQmIzM5O3MgdG9vIGVhc3kgdG8gbG9zZSB0aW1lIGxhdGVyIHRyeWluZyB0byBmaWd1cmUgb3V0IHdoeSB0aGUgdGVzdHMgYXJlbiYjMzk7dCBydW5uaW5nIGFzIGV4cGVjdGVkLCB3aGVuIGl0JiMzOTtzIGp1c3QgYSBkZXBlbmRlbmN5IGlzc3VlLiBMZXTigJlzIGdldCB0aGF0IHNvcnRlZCBvdXQgdXBmcm9udC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc9MT1jb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzozOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTQtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnPTE0PWNvbmZpZyBWSVJUX1dJRklcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0xNS1cdHRyaXN0YXRlIFwmIzM0O1dpZmkgd3JhcHBlciBmb3IgZXRoZXJuZXQgZHJpdmVyc1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE2Olx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTE3LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzg0MwoJCQkJCQkJb3V0cHV0OiA2MgoJCQkJCQkJdGhvdWdodHM6IDIwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIEZvY3VzKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYE1BQzgwMjExX0hXU0lNYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBNQUM4MDIxMWAuIFRoYXQgbWVhbnMgd2hlbiBJIHNldCB1cCBteSBjb25maWd1cmF0aW9uLCBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBuZWVkIHRvIGJlIGV4cGxpY2l0bHkgaW5jbHVkZWQgaW4gbXkgYEVuYWJsZUNvbmZpZ3NgLiBUaGF0IGNvdmVycyB0aGUgYmFzaWMgc2V0dXAuCgpOb3csIGxldCYjMzk7cyBpZGVudGlmeSB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgYXJlIGJlaW5nIHRvdWNoZWQgYnkgdGhpcyBwYXRjaCwgYmVjYXVzZSB0aG9zZSBhcmUgZ29pbmcgdG8gYmUgbXkgYEZvY3VzU3ltYm9sc2AuIEkgc2VlIGBpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrYCBhbmQgYGllZWU4MDIxMV90ZGxzX29wZXJgIGFyZSB0aGUgbW9kaWZpZWQgZnVuY3Rpb25zLgoKQXJlIHRoZXkgdGhlIHJpZ2h0IGNhbmRpZGF0ZXM/IGBpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrYCBsb29rcyBsaWtlIGEgd29ya3F1ZXVlIGNhbGxiYWNrLCBhbmQgYGllZWU4MDIxMV90ZGxzX29wZXJgIGlzIGEgbmV0bGluayBjYWxsYmFjayBhY2Nlc3NlZCB0aHJvdWdoIGBjZmc4MDIxMWAuIEJvdGggYXJlIG5vbi1zdGF0aWMgYW5kIGFyZW4mIzM5O3QgaW5saW5lZCwgd2hpY2ggbWFrZXMgdGhlbSBsaWtlbHkgZW50cnkgcG9pbnRzLiBJIHNob3VsZCBjb25maXJtIHRoYXQgdGhleSBhcmUgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya3xpZWVlODAyMTFfdGRsc19vcGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL3RkbHMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvdGRscy5jLTIzLVxubmV0L21hYzgwMjExL3RkbHMuYzoyNDp2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKVxubmV0L21hYzgwMjExL3RkbHMuYy0yNS17XG4tLVxubmV0L21hYzgwMjExL3RkbHMuYz0xMzg2PWllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3RkbHMuYy0xNDE2LVxubmV0L21hYzgwMjExL3RkbHMuYzoxNDE3OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvbWFjODAyMTEvdGRscy5jLTE0MTgtXHRcdFx0Y29uc3QgdTggKnBlZXIsIGVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiBvcGVyKVxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMC1cbm5ldC9tYWM4MDIxMS90ZGxzLmM6MTUxMTp2b2lkIGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBjb25zdCB1OCAqcGVlcixcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMi1cdFx0XHRcdCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3Blcixcbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jLTE1MjQtfVxubmV0L21hYzgwMjExL3RkbHMuYzoxNTI1OkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KTtcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUyNi1cbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNDc9dm9pZCBpZWVlODAyMTFfdGVhcmRvd25fdGRsc19wZWVycyhzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jLTIwNjEtXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwNjI6XHRcdGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChcdTAwMjZzZGF0YS1cdTAwM2V2aWYsIHN0YS1cdTAwM2VzdGEuYWRkcixcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2My1cdFx0XHRcdFx0ICAgIE5MODAyMTFfVERMU19URUFSRE9XTiwgcmVhc29uLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmM9MjA2OT12b2lkIGllZWU4MDIxMV90ZGxzX2hhbmRsZV9kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4NS1cbm5ldC9tYWM4MDIxMS90ZGxzLmM6MjA4NjpcdGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChcdTAwMjZzZGF0YS1cdTAwM2V2aWYsIHBlZXIsXG5uZXQvbWFjODAyMTEvdGRscy5jLTIwODctXHRcdFx0XHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTE0MwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKlRETFMgQ29uZmlndXJhdGlvbiBEZWVwIERpdmUqKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBkeW5hbWljIHNpdHVhdGlvbiwgdGhhdCYjMzk7cyBjbGVhci4gVGhlIGluZm9ybWF0aW9uIEkmIzM5O20gcHJvY2Vzc2luZyBoYXMgc2hvd24gbWUgdGhhdCBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYCBhcmUgZGVmaW5pdGVseSBzdHJvbmcgY29udGVuZGVycyBmb3IgaW5jbHVzaW9uIGluIHRoZSBgRm9jdXNTeW1ib2xzYCBsaXN0LiBUaG9zZSB0d28gZnVuY3Rpb25zIGFyZSBwcmltZSBsb2NhdGlvbnMgZm9yIG9ic2VydmluZyB0aGUgY3JpdGljYWwgcGF0aCBvZiBURExTIG9wZXJhdGlvbiB3aXRoaW4gdGhpcyBzeXN0ZW0uCgpOb3csIGJlZm9yZSBJIGNvbW1pdCwgSSBuZWVkIHRvIHRob3JvdWdobHkgdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlcmUmIzM5O3MgYSBkZWRpY2F0ZWQgY29uZmlndXJhdGlvbiBvcHRpb24sIHNvbWV0aGluZyBsaWtlIGBDT05GSUdfTUFDODAyMTFfVERMU2AsIHRoYXQgY291bGQgcG90ZW50aWFsbHkgaW5mbHVlbmNlIHRoZSBiZWhhdmlvciBvciBhdmFpbGFiaWxpdHkgb2YgVERMUyBmdW5jdGlvbmFsaXR5LiBJIG5lZWQgdG8ga25vdyBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHByZXByb2Nlc3NvciBkaXJlY3RpdmVzIG9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGFzcGVjdHMgdGhhdCBhcmUgcmVsZXZhbnQgaGVyZS4gTmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBjYXB0dXJpbmcgdGhlIGNvbXBsZXRlIHBpY3R1cmUgYmVmb3JlIG1vdmluZyBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUFDODAyMTFfVERMUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWc9MjcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC03MC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjcxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmg6NzI6I2RlZmluZSBNQUM4MDIxMV9URExTX0RFQlVHIDFcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTczLSNlbHNlXG5uZXQvbWFjODAyMTEvZGVidWcuaDo3NDojZGVmaW5lIE1BQzgwMjExX1RETFNfREVCVUcgMFxubmV0L21hYzgwMjExL2RlYnVnLmgtNzUtI2VuZGlmXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmg9MTI1PWRvIHtcdFx0XHRcdFx0XHRcdFx0XHRcXFxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIzMC0jZGVmaW5lIHRkbHNfZGJnKHNkYXRhLCBmbXQsIC4uLilcdFx0XHRcdFx0XFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjIzMTpcdF9zZGF0YV9kYmcoTUFDODAyMTFfVERMU19ERUJVRyxcdFx0XHRcdFx0XFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIzMi1cdFx0ICAgc2RhdGEsIGZtdCwgIyNfX1ZBX0FSR1NfXylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU4NzAKCQkJCQkJCW91dHB1dDogMTg4CgkJCQkJCQl0aG91Z2h0czogODc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlRETFMgQnVnIEZpeCBpbiBgbWFjODAyMTFgKioKCk9rYXksIHNvIHRoZXJlJiMzOTtzIG5vIHNlcGFyYXRlIGBURExTYCBtb2R1bGUsIGl0JiMzOTtzIGFsbCBidWlsdCBpbnRvIGBtYWM4MDIxMWAsIGFzIGV4cGVjdGVkLiBMZXQmIzM5O3MgZGlnIGludG8gdGhpcyBwYXRjaC4gUmlnaHQsIEkgc2VlIHRoZSBjb3JlIG9mIHRoZSBmaXggaXMgaW4gYGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtgIGFuZCBgaWVlZTgwMjExX3RkbHNfb3BlcmAuIFRoZSBvcmlnaW5hbCBjb2RlLCBpbiBib3RoIHBsYWNlcywgbmFpdmVseSBjYWxsZWQgYHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcmAgb3IgYF9fc3RhX2luZm9fZGVzdHJveWAgd2l0aG91dCBmaXJzdCB2ZXJpZnlpbmcgdGhlIHN0YXRpb24gKGBzdGFgKSBhY3R1YWxseSBleGlzdGVkIGFuZCB3YXMgYSBURExTIHN0YXRpb24gKGBzdGEtJmd0O3N0YS50ZGxzYCkuIFRoaXMgY2xlYXJseSBsZWF2ZXMgYSBwb3RlbnRpYWwgZm9yIGEgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlLCBvciBvdGhlciBtZW1vcnkgY29ycnVwdGlvbiwgaWYgdGhlIHJlZmVyZW5jZWQgc3RhdGlvbiBpc24mIzM5O3Qgc2V0IHVwIGFzIHJlcXVpcmVkLiBUaGF0JiMzOTtzIGEgY2xhc3NpYyByYWNlIGNvbmRpdGlvbiBpc3N1ZS4gVGhlIHBhdGNoIGNvcnJlY3RseSBhZGRzIHRoZSBjaGVja3MgdXNpbmcgYHN0YV9pbmZvX2dldGAsIGFuZCBvbmx5IGNhbGxzIHRoZSBkZXN0cm95IGZ1bmN0aW9ucyB3aGVuIHRoZSBjaGVja3MgcGFzcy4KCkZ1bmN0aW9uYWxseSwgdGhpcyBwYXRjaCBsb29rcyBzb3VuZC4gSXQmIzM5O3MgYSBzdHJhaWdodC1mb3J3YXJkIGJ1ZyBmaXguIEl0IHNlZW1zIGxpa2UgdGhlIGJ1ZyBjYW4gaGFwcGVuIHdoZW4gYSBwZWVyIGlzIGJlaW5nIHJlbW92ZWQuIFRoZSBjb2RlIGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSB0aGUgY2ZnODAyMTEgbmV0bGluayBpbnRlcmZhY2UuIFRoZSBwYXRjaCBhZGRyZXNzZXMgdGhpcyBieSBhZGRpbmcgY2hlY2tzIHRvIGVuc3VyZSB0aGF0IHRoZSBgc3RhYCBleGlzdHMsIGFuZCBhbHNvIHRoYXQgaXQgaXMgYWN0dWFsbHkgYSBURExTIHN0YXRpb24sIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzdGF0aW9uIGRlc3RydWN0aW9uLgoKVGhpcyBjaGFuZ2UgaXMgY3JpdGljYWwgZm9yIHN0YWJpbGl0eSBpbiBURExTIG9wZXJhdGlvbiB3aXRoaW4gYG1hYzgwMjExYC4gU2luY2UgdGhpcyBpcyBhIGJ1ZyBmaXgsIGFuZCBpdCYjMzk7cyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY2FsbHMgdGhyb3VnaCB0aGUgYGNmZzgwMjExYCBpbnRlcmZhY2UsIEkgdGhpbmsgZnV6emluZyB0aGlzIGFyZWEgaXMgZXNzZW50aWFsLiBHaXZlbiB0aGUgYE1BQzgwMjExX0hXU0lNYCBjb25maWcsIHRlc3Rpbmcgd2l0aCBoYXJkd2FyZSBzaW11bGF0aW9uIGlzIGdvaW5nIHRvIGJlIHRoZSBtb3N0IGVmZmljaWVudCBhbmQgcm9idXN0IG1ldGhvZCB0byBkZXRlY3QgYW55IHBvdGVudGlhbCBpc3N1ZXMgd2l0aCB0aGlzIHBhdGNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV90ZGxzX29wZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gbWFjODAyMTEgVERMUyAoVHVubmVsZWQgRGlyZWN0IExpbmsgU2V0dXApIG9wZXJhdGlvbnMgYnkgdmVyaWZ5aW5nIHRoYXQgYSBzdGF0aW9uIGV4aXN0cyBhbmQgaXMgYWN0dWFsbHkgYSBURExTIHN0YXRpb24gYmVmb3JlIGRlc3Ryb3lpbmcgaXQuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIGNyYXNoZXMgb3IgbWVtb3J5IGNvcnJ1cHRpb24gd2hlbiBoYW5kbGluZyBURExTIHBlZXIgZGVsZXRpb24gb3IgbGluayBkaXNhYmxlIG9wZXJhdGlvbnMuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoY2ZnODAyMTEpIGFuZCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBtYWM4MDIxMV9od3NpbSBkcml2ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfdGRsc19vcGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6MzUuODk3ODc0NTQ2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE3ODQ4ODg3NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtcIixcbiAgICBcImllZWU4MDIxMV90ZGxzX29wZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBtYWM4MDIxMSBURExTIChUdW5uZWxlZCBEaXJlY3QgTGluayBTZXR1cCkgb3BlcmF0aW9ucyBieSB2ZXJpZnlpbmcgdGhhdCBhIHN0YXRpb24gZXhpc3RzIGFuZCBpcyBhY3R1YWxseSBhIFRETFMgc3RhdGlvbiBiZWZvcmUgZGVzdHJveWluZyBpdC4gVGhpcyBwcmV2ZW50cyBwb3RlbnRpYWwgY3Jhc2hlcyBvciBtZW1vcnkgY29ycnVwdGlvbiB3aGVuIGhhbmRsaW5nIFRETFMgcGVlciBkZWxldGlvbiBvciBsaW5rIGRpc2FibGUgb3BlcmF0aW9ucy4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZXRsaW5rIChjZmc4MDIxMSkgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIG1hYzgwMjExX2h3c2ltIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6MzUuODk3ODc5OTM1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTkxNjM2Mzg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZjRjNmU0YTUxNWE3ZjYxMGQyYTg1YmE4MGM1YTI1NGI5NTIzZjI2OVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyA2IDA3OjU0OjM0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS90ZGxzLmMgYi9uZXQvbWFjODAyMTEvdGRscy5jXFxuaW5kZXggZmZkNTc1YThkMTg4Zi4uZWVmMWRkZTFjNzBhOCAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvdGRscy5jXFxuKysrIGIvbmV0L21hYzgwMjExL3RkbHMuY1xcbkBAIC0zMyw4ICszMywxMiBAQCB2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKVxcbiBcXHRsb2NrZGVwX2Fzc2VydF93aXBoeShsb2NhbC1cXHUwMDNlaHcud2lwaHkpO1xcbiBcXG4gXFx0aWYgKCFpc196ZXJvX2V0aGVyX2FkZHIoc2RhdGEtXFx1MDAzZXUubWdkLnRkbHNfcGVlcikpIHtcXG4rXFx0XFx0c3RydWN0IHN0YV9pbmZvICpzdGE7XFxuK1xcbiBcXHRcXHR0ZGxzX2RiZyhzZGF0YSwgXFxcIlRETFMgZGVsIHBlZXIgJXBNXFxcXG5cXFwiLCBzZGF0YS1cXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcXG4tXFx0XFx0c3RhX2luZm9fZGVzdHJveV9hZGRyKHNkYXRhLCBzZGF0YS1cXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcXG4rXFx0XFx0c3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBzZGF0YS1cXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcXG4rXFx0XFx0aWYgKHN0YSBcXHUwMDI2XFx1MDAyNiBzdGEtXFx1MDAzZXN0YS50ZGxzKVxcbitcXHRcXHRcXHRzdGFfaW5mb19kZXN0cm95X2FkZHIoc2RhdGEsIHNkYXRhLVxcdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xcbiBcXHRcXHRldGhfemVyb19hZGRyKHNkYXRhLVxcdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xcbiBcXHR9XFxuIH1cXG5AQCAtMTQ2Miw2ICsxNDY2LDEwIEBAIGludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuIFxcdFxcdFxcdCAgICAgIWV0aGVyX2FkZHJfZXF1YWwoc2RhdGEtXFx1MDAzZXUubWdkLnRkbHNfcGVlciwgcGVlcikpO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LOlxcbitcXHRcXHRzdGEgPSBzdGFfaW5mb19nZXQoc2RhdGEsIHBlZXIpO1xcbitcXHRcXHRpZiAoIXN0YSB8fCAhc3RhLVxcdTAwM2VzdGEudGRscylcXG4rXFx0XFx0XFx0cmV0dXJuIC1FTk9MSU5LO1xcbitcXG4gXFx0XFx0LypcXG4gXFx0XFx0ICogVGhlIHRlYXJkb3duIG1lc3NhZ2UgaW4gaWVlZTgwMjExX3RkbHNfbWdtdF90ZWFyZG93bigpIHdhc1xcbiBcXHRcXHQgKiBjcmVhdGVkIHdoaWxlIHRoZSBxdWV1ZXMgd2VyZSBzdG9wcGVkLCBzbyBpdCBtaWdodCBzdGlsbCBiZVxcbkBAIC0xNDc2LDcgKzE0ODQsNyBAQCBpbnQgaWVlZTgwMjExX3RkbHNfb3BlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHQvKiBmbHVzaCBhIHBvdGVudGlhbGx5IHF1ZXVlZCB0ZWFyZG93biBwYWNrZXQgKi9cXG4gXFx0XFx0aWVlZTgwMjExX2ZsdXNoX3F1ZXVlcyhsb2NhbCwgc2RhdGEsIGZhbHNlKTtcXG4gXFxuLVxcdFxcdHJldCA9IHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgcGVlcik7XFxuK1xcdFxcdHJldCA9IF9fc3RhX2luZm9fZGVzdHJveShzdGEpO1xcbiBcXG4gXFx0XFx0aWVlODAyMTFfdGRsc19yZWNhbGNfaHRfcHJvdGVjdGlvbihzZGF0YSwgTlVMTCk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDozNy4wOTAyNjM2ODRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2MDU5MjQ5MTE4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya1wiLFxuICAgIFwiaWVlZTgwMjExX3RkbHNfb3BlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmNGM2ZTRhNTE1YTdmNjEwZDJhODViYTgwYzVhMjU0Yjk1MjNmMjY5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAwNzo1NDozNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS90ZGxzLmMgYi9uZXQvbWFjODAyMTEvdGRscy5jXG5pbmRleCBmZmQ1NzVhOGQxODhmLi5lZWYxZGRlMWM3MGE4IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL3RkbHMuY1xuKysrIGIvbmV0L21hYzgwMjExL3RkbHMuY1xuQEAgLTMzLDggKzMzLDEyIEBAIHZvaWQgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd2spXG4gXHRsb2NrZGVwX2Fzc2VydF93aXBoeShsb2NhbC1cdTAwM2Vody53aXBoeSk7XG4gXG4gXHRpZiAoIWlzX3plcm9fZXRoZXJfYWRkcihzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpKSB7XG4rXHRcdHN0cnVjdCBzdGFfaW5mbyAqc3RhO1xuK1xuIFx0XHR0ZGxzX2RiZyhzZGF0YSwgXCJURExTIGRlbCBwZWVyICVwTVxcblwiLCBzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xuLVx0XHRzdGFfaW5mb19kZXN0cm95X2FkZHIoc2RhdGEsIHNkYXRhLVx1MDAzZXUubWdkLnRkbHNfcGVlcik7XG4rXHRcdHN0YSA9IHN0YV9pbmZvX2dldChzZGF0YSwgc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcbitcdFx0aWYgKHN0YSBcdTAwMjZcdTAwMjYgc3RhLVx1MDAzZXN0YS50ZGxzKVxuK1x0XHRcdHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcbiBcdFx0ZXRoX3plcm9fYWRkcihzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xuIFx0fVxuIH1cbkBAIC0xNDYyLDYgKzE0NjYsMTAgQEAgaW50IGllZWU4MDIxMV90ZGxzX29wZXIoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHQgICAgICFldGhlcl9hZGRyX2VxdWFsKHNkYXRhLVx1MDAzZXUubWdkLnRkbHNfcGVlciwgcGVlcikpO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgTkw4MDIxMV9URExTX0RJU0FCTEVfTElOSzpcbitcdFx0c3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBwZWVyKTtcbitcdFx0aWYgKCFzdGEgfHwgIXN0YS1cdTAwM2VzdGEudGRscylcbitcdFx0XHRyZXR1cm4gLUVOT0xJTks7XG4rXG4gXHRcdC8qXG4gXHRcdCAqIFRoZSB0ZWFyZG93biBtZXNzYWdlIGluIGllZWU4MDIxMV90ZGxzX21nbXRfdGVhcmRvd24oKSB3YXNcbiBcdFx0ICogY3JlYXRlZCB3aGlsZSB0aGUgcXVldWVzIHdlcmUgc3RvcHBlZCwgc28gaXQgbWlnaHQgc3RpbGwgYmVcbkBAIC0xNDc2LDcgKzE0ODQsNyBAQCBpbnQgaWVlZTgwMjExX3RkbHNfb3BlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHQvKiBmbHVzaCBhIHBvdGVudGlhbGx5IHF1ZXVlZCB0ZWFyZG93biBwYWNrZXQgKi9cbiBcdFx0aWVlZTgwMjExX2ZsdXNoX3F1ZXVlcyhsb2NhbCwgc2RhdGEsIGZhbHNlKTtcbiBcbi1cdFx0cmV0ID0gc3RhX2luZm9fZGVzdHJveV9hZGRyKHNkYXRhLCBwZWVyKTtcbitcdFx0cmV0ID0gX19zdGFfaW5mb19kZXN0cm95KHN0YSk7XG4gXG4gXHRcdGllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc2RhdGEsIE5VTEwpO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6MzcuMDkwMjY1MTg0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk2NDg0MjE1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBURExTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9tYWM4MDIxMS90ZGxzLmNgLiBUaGUgZ2lzdCBvZiBpdCBpcyBhZGRpbmcgYSBjaGVjayBpbiBhIGNvdXBsZSBvZiBmdW5jdGlvbnMsIGBpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrYCBhbmQgYGllZWU4MDIxMV90ZGxzX29wZXJgLCB0byBtYWtlIHN1cmUgdGhhdCB3ZSdyZSBvbmx5IGRlYWxpbmcgd2l0aCBzdGF0aW9ucyB0aGF0IGFyZSBhY3R1YWxseSBjb25maWd1cmVkIGFzIFRETFMgc3RhdGlvbnMuIFRoZSBjaGVjayBpbnZvbHZlcyB2ZXJpZnlpbmcgdGhlIGBzdGEtXHUwMDNlc3RhLnRkbHNgIGZsYWcuIE1ha2VzIHNlbnNlOyB5b3UgZG9uJ3Qgd2FudCB0aGVzZSBURExTLXNwZWNpZmljIGZ1bmN0aW9ucyBvcGVyYXRpbmcgb24gcmVndWxhciBzdGF0aW9ucy4gSXQncyBhYm91dCBlbnN1cmluZyB3ZSdyZSBvbmx5IGRlbGV0aW5nIGFuZCBvcGVyYXRpbmcgb24gdGhlIGNvcnJlY3QgdHlwZSBvZiBzdGF0aW9ucy5cblxuVG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dCwgSSB3YW50IHRvIHNlZSB3aGF0IGVsc2UgbWlnaHQgYmUgYWZmZWN0ZWQgYW5kIGhvdyBURExTIGlzIGNvbmZpZ3VyZWQgaW4gdGhpcyBtb2R1bGUsIHNvIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBJJ2xsIHVzZSBgZ3JlcHBlcmAgYW5kIHNlYXJjaCBpbiB0aGUgYG5ldC9tYWM4MDIxMS9NYWtlZmlsZWAgdG8gbG9jYXRlIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aGluIGB0ZGxzLmNgLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgd2lkZXIgaW1wYWN0IGFuZCBob3cgVERMUyBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuIEl0J3MgYWxsIGFib3V0IHZlcmlmeWluZyB0aGF0IHRoZSBwYXRjaCBpcyBhIHNhZmUgYWRkaXRpb24gYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSByZWdyZXNzaW9ucyBvciB1bmV4cGVjdGVkIGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTM4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6NDIuMDU1MTA5NzczWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MDIyMDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInRkbHNcXFxcLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9NYWtlZmlsZT01PW1hYzgwMjExLXkgOj0gXFxcXFxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTM0LVxcdHRyYWNlLm8gbWxtZS5vIFxcXFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6MzU6XFx0dGRscy5vIFxcXFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzYtXFx0b2NiLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDo0Mi4wOTkxMzU2ODFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjYyMjgyNzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIERlcGVuZGVuY3kgQ2hhaW4qKlxuXG5SaWdodCwgc28gYHRkbHMub2AuIEkga25vdyB0aGF0J3MgcGFydCBvZiB0aGUgYG1hYzgwMjExLXlgIG1vZHVsZSwgc28gaXQncyBhIHBpZWNlIG9mIHRoZSBsYXJnZXIgYG1hYzgwMjExYCBkcml2ZXIgZnJhbWV3b3JrLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMsIHdoYXQgY29uZmlnIG9wdGlvbiBhY3R1YWxseSBicmluZ3MgdGhpcyB3aG9sZSB0aGluZyB0byBsaWZlPyBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgdXBzdHJlYW0gY29uZmlndXJhdGlvbiBlbnRyeSB0aGF0IHRvZ2dsZXMgYG1hYzgwMjExYC4gVGhhdCdzIHRoZSBrZXk6IGZpZ3VyaW5nIG91dCAqd2hpY2gqIEtjb25maWcgb3B0aW9uIG5lZWRzIHRvIGJlIGVuYWJsZWQgdG8gaW5jbHVkZSBgbWFjODAyMTFgIGFuZCwgY29uc2VxdWVudGx5LCBgdGRscy5vYC4gVGhpcyB3aWxsIGhlbHAgZGV0ZXJtaW5lIHdoYXQgcHJlcmVxdWlzaXRlcyBhcmUgbmVlZGVkIGFuZCBob3cgYHRkbHMub2AgZ2V0cyBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuIEl0J3MgYSBmdW5kYW1lbnRhbCBzdGVwIGluIHVuZGVyc3RhbmRpbmcgdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlIG92ZXJhbGwgYnVpbGQgcHJvY2Vzcy4gTGV0IG1lIHF1aWNrbHkganVtcCBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCB0cmFjZSBpdCBiYWNrLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTMyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6NDUuMzYxNDIxMjA3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNjkzNTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hYzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01BQzgwMjExKSArPSBtYWM4MDIxMS5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTMtXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjQ6IyBtYWM4MDIxMSBvYmplY3RzXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjU6bWFjODAyMTEteSA6PSBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTYtXFx0bWFpbi5vIHN0YXR1cy5vIFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zOS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDA6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfTEVEUykgKz0gbGVkLm9cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDE6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgKz0gXFxcXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00Mi1cXHRkZWJ1Z2ZzLm8gXFxcXFxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ2LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0NzptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9NRVNIKSArPSBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ4LVxcdG1lc2gubyBcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNTQtXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjU1Om1hYzgwMjExLSQoQ09ORklHX1BNKSArPSBwbS5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTU2LVxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlPTYyPXJjODAyMTFfbWluc3RyZWwtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgKz0gXFxcXFxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTY0LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo2NTptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9SQ19NSU5TVFJFTCkgKz0gJChyYzgwMjExX21pbnN0cmVsLXkpXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTY2LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZT02Nz1vYmoteSArPSB0ZXN0cy9cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNjgtXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjY5Om1hYzgwMjExLXkgKz0gd2JyZi5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTcwLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDo0NS40MDUxMjA0OTRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjAxODQwNzkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgZGVsaXZlcmVkIGluIGZpcnN0IHBlcnNvbjpcblxuKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyBvdXQgaXMgdGhlIGFic29sdXRlIG5lY2Vzc2l0eSBvZiBgQ09ORklHX01BQzgwMjExYC4gVGhhdCdzIHRoZSBiYXNlbGluZSwgdGhlIGZvdW5kYXRpb24uIEkgbmVlZCB0aGF0IGVuYWJsZWQsIG5vIHF1ZXN0aW9uLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayBmb3IgKm90aGVyKiByZWxldmFudCBjb25maWd1cmF0aW9ucy4gTXkgbWluZCBpbW1lZGlhdGVseSBnb2VzIHRvIHRoZSBwb3RlbnRpYWwgZm9yIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHdoZXJlIHRoZSBncmFudWxhciBkZXRhaWxzIGFuZCBjb25kaXRpb25hbCBidWlsZCBzZXR0aW5ncyBhcmUgbGlrZWx5IGRlZmluZWQuIEkgbmVlZCB0byBkaXZlIGludG8gdGhhdCBLY29uZmlnIGZpbGUgYW5kIHNlZSB3aGF0IG90aGVyIGtub2JzIGFuZCBzd2l0Y2hlcyBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIsIGdpdmVuIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZS4gSSBhbnRpY2lwYXRlIHRoZXJlIHdpbGwgYmUgb3RoZXIgZGVwZW5kZW50IHNldHRpbmdzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDEyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6NDkuMDA2OTYyODY3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNDc1ODU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXFxubmV0L21hYzgwMjExL0tjb25maWctMjAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVxcdGJvb2xcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDItXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVxcdHN0cmluZ1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNTktXFxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1RcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL0tjb25maWctODAtXFx0Ym9vbCBcXFwiRW5hYmxlIExFRCB0cmlnZ2Vyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVxcdGJvb2wgXFxcIlRyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTExLVxcdGJvb2wgXFxcIlNlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cXHRib29sIFxcXCJEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBIVCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cXHRib29sIFxcXCJWZXJib3NlIElCU1MgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXFx0aW50IFxcXCJTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXFxcIiBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU0OjQ5LjA0OTQ0MjA2NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNzU0MzU4OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNQUM4MDIxMSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb25maWd1cmF0aW9uLCBhbmQgaXQgc2VlbXMgbGlrZSBgTUFDODAyMTFgIGlzIHRoZSBjb3JlIG9mIHRoaXMuIEhvbGQgb24sIGlzbid0IGBNQUM4MDIxMWAgYnVpbHQgb24gYENGRzgwMjExYD8gSSBndWVzcyBpdCBkb2Vzbid0IG1hdHRlciwgYE1BQzgwMjExYCBpdHNlbGYgaXMgc3VmZmljaWVudCBmb3IgdGhlIHByaW1hcnkgY29uZmlnLiBOb3csIEkgd2FudCB0byBjb25maXJtIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgaW1wb3J0YW50IGNvbmZpZ3MgSSBtaWdodCBiZSBvdmVybG9va2luZy4gVGltZSB0byBkaWcgZGVlcGVyLlxuXG5BbHJpZ2h0LCBsb29rcyBsaWtlIHRoZSBjb2RlIHRoYXQgaGFzIGJlZW4gbW9kaWZpZWQgaXMgc3BlY2lmaWNhbGx5IHdpdGhpbiBgbmV0L21hYzgwMjExL3RkbHMuY2AuIEludGVyZXN0aW5nLiBUaGUgZnVuY3Rpb25zIHRoYXQgYXJlIHJlbGV2YW50IGhlcmUgc2VlbSB0byBiZSBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGFyZSBiZWluZyB1c2VkLCB0aGVpciBjYWxsIGdyYXBocywgYW5kIGlmIHRoZXJlIGFyZSBhbnkgaW5kaXJlY3QgZGVwZW5kZW5jaWVzIEkgc2hvdWxkIGJlIGF3YXJlIG9mLiBJIG5lZWQgdG8gYmUgc3VyZSB0aGVzZSBhcmUgcmVhY2hhYmxlIGFuZCBhc3Nlc3MgdGhlaXIgaW1wYWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NDI0LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU0OjUzLjMyNDg3OTgyMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM1ODAyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTI5MTg9aW50IGllZWU4MDIxMV90ZGxzX29wZXIoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTE5LVxcdFxcdFxcdGNvbnN0IHU4ICpwZWVyLCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3Blcik7XFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjkyMDp2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKTtcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTIxLWludCBpZWVlODAyMTFfdGRsc19jaGFubmVsX3N3aXRjaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz05NDQ2PXZvaWQgaWVlZTgwMjExX3N0YV9zZXR1cF9zZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtOTQ1NS1cXHR3aXBoeV9kZWxheWVkX3dvcmtfaW5pdChcXHUwMDI2aWZtZ2QtXFx1MDAzZXRkbHNfcGVlcl9kZWxfd29yayxcXG5uZXQvbWFjODAyMTEvbWxtZS5jOjk0NTY6XFx0XFx0XFx0XFx0aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayk7XFxubmV0L21hYzgwMjExL21sbWUuYy05NDU3LVxcdHdpcGh5X2hydGltZXJfd29ya19pbml0KFxcdTAwMjZpZm1nZC1cXHUwMDNlbWxfcmVjb25mX3dvcmssXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jLTIzLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmM6MjQ6dm9pZCBpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3aylcXG5uZXQvbWFjODAyMTEvdGRscy5jLTI1LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6NTMuMzY4NDYyMzU4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODQ3NDcyNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipURExTIE9wZXJhdGlvbnMgXHUwMDI2IFJlZmFjdG9yaW5nIENvbnNpZGVyYXRpb25zKipcblxuQWxyaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGBpZWVlODAyMTFfdGRsc19vcGVyYCBmdW5jdGlvbiwgYW5kIGl0J3MgY2xlYXIgaXQncyB1bmRlcmdvbmUgc29tZSBjaGFuZ2VzLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kICpob3cqIGl0J3MgYmVlbiBtb2RpZmllZCwgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhvc2UgbW9kaWZpY2F0aW9ucy4gSSBjYW4gaW5mZXIgZnJvbSB0aGUgcGhyYXNpbmcgdGhhdCB0aGlzIGZ1bmN0aW9uLCBsaWtlbHkgcmVsYXRlZCB0byBUdW5uZWxlZCBEaXJlY3QgTGluayBTZXR1cCB3aXRoaW4gdGhlIDgwMi4xMSBmcmFtZXdvcmssIGlzIGEgZm9jYWwgcG9pbnQgb2YgcmVjZW50IHVwZGF0ZXMuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoYXQga2luZCBvZiBhbHRlcmF0aW9ucyB3ZXJlIG1hZGUgYW5kIHdoYXQgZWZmZWN0IHRoZXNlIGhhdmUuIEkgbmVlZCB0byBrbm93OiBXYXMgaXQgYSBidWcgZml4PyBBbiBvcHRpbWl6YXRpb24/IEEgZmVhdHVyZSBhZGRpdGlvbj8gT3IgcGVyaGFwcywgYSByZWZhY3RvcmluZyBlZmZvcnQgdG8gaW1wcm92ZSBjb2RlIHJlYWRhYmlsaXR5IG9yIG1haW50YWluYWJpbGl0eT8gVGhlIHNwZWNpZmljIGRldGFpbHMgb2YgdGhlIGNoYW5nZXMgd2lsbCBkaWN0YXRlIG15IG5leHQgc3RlcHMsIHdoZXRoZXIgdGhhdOKAmXMgZm9jdXNlZCBhbmFseXNpcyBvZiBmdW5jdGlvbmFsIGNvcnJlY3RuZXNzIG9yIGZ1cnRoZXIgcmVzZWFyY2ggaW50byBkZXNpZ24gdHJhZGUtb2Zmcy4gVGhlIGNvbnRleHQgYXJvdW5kIHRoZSBtb2RpZmljYXRpb24gaXMgZ29pbmcgdG8gZHJpdmUgd2hldGhlciBteSBhbmFseXNpcyBpbnZvbHZlcyB0ZXN0aW5nIGFuZCB2YWxpZGF0aW9uLCBjb2RlIHJldmlld3MsIG9yIGRlc2lnbiBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczMjksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDo1Ni43NTMyMTI2NTZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNzY3Mjk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV90ZGxzX29wZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmM9NTk5MT1jb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzIG1hYzgwMjExX2NvbmZpZ19vcHMgPSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNjA2Mi1cXHQuc2V0X3Jla2V5X2RhdGEgPSBpZWVlODAyMTFfc2V0X3Jla2V5X2RhdGEsXFxubmV0L21hYzgwMjExL2NmZy5jOjYwNjM6XFx0LnRkbHNfb3BlciA9IGllZWU4MDIxMV90ZGxzX29wZXIsXFxubmV0L21hYzgwMjExL2NmZy5jLTYwNjQtXFx0LnRkbHNfbWdtdCA9IGllZWU4MDIxMV90ZGxzX21nbXQsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yOTEzPWludCBpZWVlODAyMTFfdGRsc19tZ210KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTE3LVxcdFxcdFxcdGNvbnN0IHU4ICpleHRyYV9pZXMsIHNpemVfdCBleHRyYV9pZXNfbGVuKTtcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoyOTE4OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjkxOS1cXHRcXHRcXHRjb25zdCB1OCAqcGVlciwgZW51bSBubDgwMjExX3RkbHNfb3BlcmF0aW9uIG9wZXIpO1xcbi0tXFxubmV0L21hYzgwMjExL3RkbHMuYz0xMzg2PWllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jLTE0MTYtXFxubmV0L21hYzgwMjExL3RkbHMuYzoxNDE3OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L21hYzgwMjExL3RkbHMuYy0xNDE4LVxcdFxcdFxcdGNvbnN0IHU4ICpwZWVyLCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3BlcilcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMC1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjE1MTE6dm9pZCBpZWVlODAyMTFfdGRsc19vcGVyX3JlcXVlc3Qoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgY29uc3QgdTggKnBlZXIsXFxubmV0L21hYzgwMjExL3RkbHMuYy0xNTEyLVxcdFxcdFxcdFxcdCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3BlcixcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUyNC19XFxubmV0L21hYzgwMjExL3RkbHMuYzoxNTI1OkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KTtcXG5uZXQvbWFjODAyMTEvdGRscy5jLTE1MjYtXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNDc9dm9pZCBpZWVlODAyMTFfdGVhcmRvd25fdGRsc19wZWVycyhzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2MS1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwNjI6XFx0XFx0aWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmLCBzdGEtXFx1MDAzZXN0YS5hZGRyLFxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2My1cXHRcXHRcXHRcXHRcXHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLCByZWFzb24sXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNjk9dm9pZCBpZWVlODAyMTFfdGRsc19oYW5kbGVfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4NS1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwODY6XFx0aWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmLCBwZWVyLFxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4Ny1cXHRcXHRcXHRcXHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDo1Ni43OTU5ODY4MDNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQ4MjEwNzE1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgSUVFRSA4MDIuMTEgVERMUyBPcGVyYXRpb25hbCBDb2RlIFBhdGgqKlxuXG5Pa2F5LCBzbyBgaWVlZTgwMjExX3RkbHNfb3BlcmAgaXMgZGVlcCBpbnNpZGUgYG1hYzgwMjExX2NvbmZpZ19vcHNgLiBUaGlzIG1lYW5zIGl0J3MgdWx0aW1hdGVseSBpbnZva2VkIGJ5IGBjZmc4MDIxMWAgdGhyb3VnaCB0aGUgYG5sODAyMTFgIG5ldGxpbmsgaW50ZXJmYWNlLCB3aGljaCBJIGtub3cgaW5zaWRlIGFuZCBvdXQuIFNwZWNpZmljYWxseSwgdGhlIGBOTDgwMjExX0NNRF9URExTX09QRVJgIG5ldGxpbmsgY29tbWFuZCBjYWxscyBgY2ZnODAyMTFfdGRsc19vcGVyYCwgd2hpY2ggaW4gdHVybiBoYW5kcyBpdCBvZmYgdG8gYHJkZXYtXHUwMDNlb3BzLVx1MDAzZXRkbHNfb3BlcmAuIFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZTsgdXNlciBzcGFjZSBjYW4gcmVhY2ggdGhpcyBmdW5jdGlvbmFsaXR5IHRocm91Z2ggbmV0bGluay4gQW5kIHRoYXQgZGVsYXllZCB3b3JrIGZ1bmN0aW9uLCBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AsIGlzIGFsc28gYWNjZXNzaWJsZSB0aGF0IHdheS5cblxuVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBpcyBhYm91dCBmaXhpbmcgYSBidWcsIHNwZWNpZmljYWxseSBhIHNpdHVhdGlvbiB3aGVyZSBlaXRoZXIgYHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcmAgb3IgYF9fc3RhX2luZm9fZGVzdHJveWAgZ2V0cyBjYWxsZWQgb24gYSBzdGF0aW9uIHRoYXQgKm1pZ2h0KiBub3QgYmUgYSBURExTIHN0YXRpb24sIG9yIGV2ZW4gYSBzdGF0aW9uIHRoYXQgZG9lc24ndCBleGlzdCwgd2hpY2ggbGVhZHMgdG8gcHJvYmxlbXMuIEl0J3MgYSBmdW5jdGlvbmFsIGZpeCwgbm90IGEgcGVyZm9ybWFuY2UgdHdlYWssIGFuZCBpdCdzIHByZXZlbnRpbmcgcG90ZW50aWFsIGNyYXNoZXMgb3IgbWVtb3J5IGNvcnJ1cHRpb24uXG5cbkkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMga2VybmVsIGNvbmZpZ3MgbmVlZGVkIHRvIGVuYWJsZSBURExTIGZ1bmN0aW9uYWxpdHkuIExldCBtZSBxdWlja2x5IGNoZWNrIGBuZXQvbWFjODAyMTEvdGRscy5jYCB0byBzZWUgaWYgdGhlcmUncyBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24uIEhtbSwgaXQgc2VlbXMgdGhhdCBgdGRscy5vYCBpcyBhbHdheXMgY29tcGlsZWQgaWYgYE1BQzgwMjExYCBpcyBlbmFibGVkLiBMZXQncyBtYWtlIHN1cmUgSSBkaWRuJ3QgbWlzcyBzb21ldGhpbmcgaW4gdGhlIGBuZXQvbWFjODAyMTEvTWFrZWZpbGVgLiBKdXN0IGEgcXVpY2sgcmV2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjo4Njk2LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjkyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjAzLjI3ODA5NjMyOVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI3OTc0NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGRsc1xcXFwub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL01ha2VmaWxlPTU9bWFjODAyMTEteSA6PSBcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzQtXFx0dHJhY2UubyBtbG1lLm8gXFxcXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTozNTpcXHR0ZGxzLm8gXFxcXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zNi1cXHRvY2IubyBcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjAzLjMyMDg5NzYzNloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDAzNDA0OTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBXaXJlbGVzcyBNb2R1bGUgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkndmUgY29uZmlybWVkIHRoYXQgdGhlIGB0ZGxzLm9gIG9iamVjdCBmaWxlIGlzIGludHJpbnNpY2FsbHkgbGlua2VkIGludG8gYG1hYzgwMjExLm9gIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy4gVGhhdCBzaW1wbGlmaWVzIHRoaW5nczsgZXNzZW50aWFsbHksIGBNQUM4MDIxMWAgaXRzZWxmIGlzIHRoZSBvbmx5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIEkgbmVlZCB0byBjb25zaWRlciBhdCB0aGlzIGxldmVsLiBObyBuZWVkIHRvIHdvcnJ5IGFib3V0IGB0ZGxzYCBhcyBhIHNlcGFyYXRlIG1vZHVsZSwgaXQncyBiYWtlZCBpbi5cblxuQnV0Li4uIGEgcXVpY2sgcmVjYWxsIGNoZWNrIGZsYWdzIHRoYXQgYE1BQzgwMjExYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBDRkc4MDIxMWAsIGRvZXNuJ3QgaXQ/IEdvdHRhIHJlbWVtYmVyIHRoZXNlIGludGVyZGVwZW5kZW5jaWVzLiBBbHJpZ2h0LCBiZXN0IHRvIGp1c3QgdmVyaWZ5IHRoYXQgYXNzdW1wdGlvbiBhbmQgdG8gY29uZmlybSBob3cgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgc2V0IHVwLiBMZXQgbWUgcXVpY2tseSBleGFtaW5lIHRoZSBgbmV0L21hYzgwMjExL0tjb25maWdgIGZpbGUgYW5kIGNvbmZpcm0gdGhlIGRlcGVuZGVuY3kgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6OTUwNSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjA4LjcyNDMwNjQ3NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMyMDIzMDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUtXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTY9Y29tbWVudCBcXFwiQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMT1uXFxubmV0L21hYzgwMjExL0tjb25maWctMTgtXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMi1cXHRwcm9tcHQgXFxcIkRlZmF1bHQgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTM0LVxcdGRlZmF1bHQgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDE9Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDQtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjU4OlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfSEFTX1JDPW5cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz02MD1jb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MjpcXHRkZXBlbmRzIG9uIEtVTklUXFxubmV0L21hYzgwMjExL0tjb25maWc6NjM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY0LVxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz03MD1jb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctNzMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9Nzk9Y29uZmlnIE1BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cXHRib29sIFxcXCJFbmFibGUgTEVEIHRyaWdnZXJzXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjgxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4MjpcXHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctODMtXFx0c2VsZWN0IExFRFNfVFJJR0dFUlNcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTg4PWNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjkwOlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgQ0ZHODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTkxLVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTk3PWNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6OTk6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcXHUwMDI2XFx1MDAyNiBUUkFDSU5HXFxubmV0L21hYzgwMjExL0tjb25maWctMTAwLVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTExMD1tZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXFx0Ym9vbCBcXFwiU2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTI6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMy1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMTY9Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXFxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkRvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMzI9Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzNDpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzUtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTQzPWNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDU6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ2LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE1ND1jb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTU1LVxcdGJvb2wgXFxcIlZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU2OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1Ny1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNjM9Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2NTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjYtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTc1PWNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzgtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTg2PWNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTg3LVxcdGJvb2wgXFxcIlZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTg4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4OS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOTc9Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5OTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDAtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjA5PWNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjExOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxMjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjIyPWNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjI0OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyNTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjYtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjM1PWNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzc6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNDg9Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTA6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjUxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1Mi1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNTk9Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjYxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI2MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctMjc0LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI4MT1jb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODQtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjkzPWNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cXHRib29sIFxcXCJFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6Mjk1OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5NjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTctXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NTowOC43Njc1MTMwNjJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2MzkzNjA2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBDb25maWd1cmF0aW9uIE11c2luZ3MqKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBgTUFDODAyMTFgIHNpdHVhdGlvbiwgYW5kIGl0J3MgaW1tZWRpYXRlbHkgYXBwYXJlbnQgdGhhdCBpdCdzIHRpZ2h0bHkgY291cGxlZCB3aXRoIGBDRkc4MDIxMWAuIFRoYXQgZGVwZW5kZW5jeSBpcyBjcml0aWNhbCwgc28gSSdsbCBiZSBzdXJlIHRvIGluY2x1ZGUgYm90aCBpbiBgRW5hYmxlQ29uZmlnc2AuIEJ1dCBoYW5nIG9uLi4uIGBNQUM4MDIxMWAgaXMgdHJpc3RhdGUsIG1lYW5pbmcgaXQgaGFzIHRoZSBmbGV4aWJpbGl0eSB0byBiZSBidWlsdCBhcyBhIG1vZHVsZS4gQ29uc2lkZXJpbmcgdGVzdGluZyBhbmQgZGVwbG95bWVudCwgdGhhdCBtb2R1bGFyaXR5IGNvdWxkIGJlIGJlbmVmaWNpYWwuXG5cbk5vdywgdG8gcHJvcGVybHkgZXhlcmNpc2UgYE1BQzgwMjExYCwgSSBzaG91bGQgZW5hYmxlIGl0LCBhbG9uZyB3aXRoIGBDRkc4MDIxMWAsIGZvciBhIHNvbGlkIGJhc2UuIEhtbSwgYW5kIHRvICphY3R1YWxseSogcHV0IGl0IHRocm91Z2ggaXRzIHBhY2VzLCBJJ2xsIG5lZWQgYSBkcml2ZXIuIEkgcmVtZW1iZXIgdGhhdCBTeXprYWxsZXIsIGluIGl0cyBmdXp6aW5nIHdvcmssIGxldmVyYWdlcyBgbWFjODAyMTFfaHdzaW1gIHRvIGVtdWxhdGUgdGhlIGhhcmR3YXJlIGVudmlyb25tZW50LiBBIGNyaXRpY2FsIHBpZWNlIGZvciBlbnN1cmluZyBhbGwgcGF0aHMgYXJlIGV4cGxvcmVkLiBJIHNob3VsZCBpbnZlc3RpZ2F0ZSB3aGV0aGVyIG9yIG5vdCBgbWFjODAyMTFfaHdzaW1gIGlzIHRydWx5IGVzc2VudGlhbCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjg3NiwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NToxMy40MzE0NTE5NjNaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjczMDk2OTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMV9IV1NJTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE6Y29uZmlnIE1BQzgwMjExX0hXU0lNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NToxMy41MDQ1NTkxMDhaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwMTE3MzY3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqTGV2ZXJhZ2luZyBNQUM4MDIxMV9IV1NJTSBmb3IgUm9idXN0IG1hYzgwMjExIEZ1enppbmcqKlxuXG5SaWdodCwgYE1BQzgwMjExX0hXU0lNYCDigJMgaXQncyBwcmFjdGljYWxseSAqZXNzZW50aWFsKiBmb3IgZnV6emluZyB0aGUgYG1hYzgwMjExYCBjb2RlLCBhbmQgSSdtIHJlYWxseSBrZWVuIHRvIHVzZSBpdC4gSSBrbm93IGl0J3MgYSBwb3dlcmZ1bCB0b29sIGZvciBnZW5lcmF0aW5nIHRlc3Qgc2NlbmFyaW9zLiBCZWZvcmUgZGl2aW5nIGluLCBob3dldmVyLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBhbGwgbXkgZHVja3MgaW4gYSByb3cuIEJlc3QgdG8gZmlyc3QgZXhhbWluZSB0aGUgZGVwZW5kZW5jaWVzLCBtYWtlIHN1cmUgZXZlcnl0aGluZydzIHNldCB1cCBjb3JyZWN0bHksIGFuZCB0aGF0IHRoZSBlbnZpcm9ubWVudCBpcyBmdWxseSBjb21wbGlhbnQuIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBvbiBhIGJyb2tlbiBidWlsZC4gSXTigJlzIGFsd2F5cyB0aGUgZmlyc3QgdGhpbmcgSSBkby4gSXQncyB0b28gZWFzeSB0byBsb3NlIHRpbWUgbGF0ZXIgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2h5IHRoZSB0ZXN0cyBhcmVuJ3QgcnVubmluZyBhcyBleHBlY3RlZCwgd2hlbiBpdCdzIGp1c3QgYSBkZXBlbmRlbmN5IGlzc3VlLiBMZXTigJlzIGdldCB0aGF0IHNvcnRlZCBvdXQgdXBmcm9udC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTMzNjUsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NToxNi45MDU3MzQ3NjVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNjY1ODM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZz0xPWNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTQtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnPTE0PWNvbmZpZyBWSVJUX1dJRklcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMTUtXFx0dHJpc3RhdGUgXFxcIldpZmkgd3JhcHBlciBmb3IgZXRoZXJuZXQgZHJpdmVyc1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTY6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0xNy1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjE2Ljk0ODQwNjYxMloiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Mjc4NzEzNDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IENvbmZpZ3VyYXRpb24gRm9jdXMqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBNQUM4MDIxMV9IV1NJTWAgaGFzIGEgZGVwZW5kZW5jeSBvbiBgTUFDODAyMTFgLiBUaGF0IG1lYW5zIHdoZW4gSSBzZXQgdXAgbXkgY29uZmlndXJhdGlvbiwgYENGRzgwMjExYCwgYE1BQzgwMjExYCwgYW5kIGBNQUM4MDIxMV9IV1NJTWAgbmVlZCB0byBiZSBleHBsaWNpdGx5IGluY2x1ZGVkIGluIG15IGBFbmFibGVDb25maWdzYC4gVGhhdCBjb3ZlcnMgdGhlIGJhc2ljIHNldHVwLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBhcmUgYmVpbmcgdG91Y2hlZCBieSB0aGlzIHBhdGNoLCBiZWNhdXNlIHRob3NlIGFyZSBnb2luZyB0byBiZSBteSBgRm9jdXNTeW1ib2xzYC4gSSBzZWUgYGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtgIGFuZCBgaWVlZTgwMjExX3RkbHNfb3BlcmAgYXJlIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMuXG5cbkFyZSB0aGV5IHRoZSByaWdodCBjYW5kaWRhdGVzPyBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgbG9va3MgbGlrZSBhIHdvcmtxdWV1ZSBjYWxsYmFjaywgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYCBpcyBhIG5ldGxpbmsgY2FsbGJhY2sgYWNjZXNzZWQgdGhyb3VnaCBgY2ZnODAyMTFgLiBCb3RoIGFyZSBub24tc3RhdGljIGFuZCBhcmVuJ3QgaW5saW5lZCwgd2hpY2ggbWFrZXMgdGhlbSBsaWtlbHkgZW50cnkgcG9pbnRzLiBJIHNob3VsZCBjb25maXJtIHRoYXQgdGhleSBhcmUgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM4NDMsIk91dHB1dFRva2VucyI6NjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTU6MjIuMjI3MTIyMThaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMjAxODY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmt8aWVlZTgwMjExX3RkbHNfb3BlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvdGRscy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS90ZGxzLmMtMjMtXFxubmV0L21hYzgwMjExL3RkbHMuYzoyNDp2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjUte1xcbi0tXFxubmV0L21hYzgwMjExL3RkbHMuYz0xMzg2PWllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jLTE0MTYtXFxubmV0L21hYzgwMjExL3RkbHMuYzoxNDE3OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L21hYzgwMjExL3RkbHMuYy0xNDE4LVxcdFxcdFxcdGNvbnN0IHU4ICpwZWVyLCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3BlcilcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMC1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjE1MTE6dm9pZCBpZWVlODAyMTFfdGRsc19vcGVyX3JlcXVlc3Qoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgY29uc3QgdTggKnBlZXIsXFxubmV0L21hYzgwMjExL3RkbHMuYy0xNTEyLVxcdFxcdFxcdFxcdCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3BlcixcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUyNC19XFxubmV0L21hYzgwMjExL3RkbHMuYzoxNTI1OkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KTtcXG5uZXQvbWFjODAyMTEvdGRscy5jLTE1MjYtXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNDc9dm9pZCBpZWVlODAyMTFfdGVhcmRvd25fdGRsc19wZWVycyhzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2MS1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwNjI6XFx0XFx0aWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmLCBzdGEtXFx1MDAzZXN0YS5hZGRyLFxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2My1cXHRcXHRcXHRcXHRcXHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLCByZWFzb24sXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNjk9dm9pZCBpZWVlODAyMTFfdGRsc19oYW5kbGVfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4NS1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwODY6XFx0aWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmLCBwZWVyLFxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4Ny1cXHRcXHRcXHRcXHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NToyMi4yNzAzMjg2ODdaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgxMTA3OTE2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqVERMUyBDb25maWd1cmF0aW9uIERlZXAgRGl2ZSoqXG5cblJpZ2h0LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBkeW5hbWljIHNpdHVhdGlvbiwgdGhhdCdzIGNsZWFyLiBUaGUgaW5mb3JtYXRpb24gSSdtIHByb2Nlc3NpbmcgaGFzIHNob3duIG1lIHRoYXQgYGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtgIGFuZCBgaWVlZTgwMjExX3RkbHNfb3BlcmAgYXJlIGRlZmluaXRlbHkgc3Ryb25nIGNvbnRlbmRlcnMgZm9yIGluY2x1c2lvbiBpbiB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdC4gVGhvc2UgdHdvIGZ1bmN0aW9ucyBhcmUgcHJpbWUgbG9jYXRpb25zIGZvciBvYnNlcnZpbmcgdGhlIGNyaXRpY2FsIHBhdGggb2YgVERMUyBvcGVyYXRpb24gd2l0aGluIHRoaXMgc3lzdGVtLlxuXG5Ob3csIGJlZm9yZSBJIGNvbW1pdCwgSSBuZWVkIHRvIHRob3JvdWdobHkgdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlcmUncyBhIGRlZGljYXRlZCBjb25maWd1cmF0aW9uIG9wdGlvbiwgc29tZXRoaW5nIGxpa2UgYENPTkZJR19NQUM4MDIxMV9URExTYCwgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBpbmZsdWVuY2UgdGhlIGJlaGF2aW9yIG9yIGF2YWlsYWJpbGl0eSBvZiBURExTIGZ1bmN0aW9uYWxpdHkuIEkgbmVlZCB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgb3IgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYXNwZWN0cyB0aGF0IGFyZSByZWxldmFudCBoZXJlLiBOZWVkIHRvIG1ha2Ugc3VyZSBJJ20gY2FwdHVyaW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlIGJlZm9yZSBtb3Zpbmcgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1MTQzLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTU6MjYuMDgxNDEwNDM2WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzE0NDAyNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNQUM4MDIxMV9URExTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWc9MjcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjgyLVxcdGJvb2wgXFxcIlZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWcuaC03MC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo3MTojaWZkZWYgQ09ORklHX01BQzgwMjExX1RETFNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaDo3MjojZGVmaW5lIE1BQzgwMjExX1RETFNfREVCVUcgMVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTczLSNlbHNlXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NzQ6I2RlZmluZSBNQUM4MDIxMV9URExTX0RFQlVHIDBcXG5uZXQvbWFjODAyMTEvZGVidWcuaC03NS0jZW5kaWZcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oPTEyNT1kbyB7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMjMwLSNkZWZpbmUgdGRsc19kYmcoc2RhdGEsIGZtdCwgLi4uKVxcdFxcdFxcdFxcdFxcdFxcXFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaDoyMzE6XFx0X3NkYXRhX2RiZyhNQUM4MDIxMV9URExTX0RFQlVHLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMzItXFx0XFx0ICAgc2RhdGEsIGZtdCwgIyNfX1ZBX0FSR1NfXylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTU6MjYuMTI0NTU3NDQzWiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNDgxMTYxOTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlRETFMgQnVnIEZpeCBpbiBgbWFjODAyMTFgKipcblxuT2theSwgc28gdGhlcmUncyBubyBzZXBhcmF0ZSBgVERMU2AgbW9kdWxlLCBpdCdzIGFsbCBidWlsdCBpbnRvIGBtYWM4MDIxMWAsIGFzIGV4cGVjdGVkLiBMZXQncyBkaWcgaW50byB0aGlzIHBhdGNoLiBSaWdodCwgSSBzZWUgdGhlIGNvcmUgb2YgdGhlIGZpeCBpcyBpbiBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYC4gVGhlIG9yaWdpbmFsIGNvZGUsIGluIGJvdGggcGxhY2VzLCBuYWl2ZWx5IGNhbGxlZCBgc3RhX2luZm9fZGVzdHJveV9hZGRyYCBvciBgX19zdGFfaW5mb19kZXN0cm95YCB3aXRob3V0IGZpcnN0IHZlcmlmeWluZyB0aGUgc3RhdGlvbiAoYHN0YWApIGFjdHVhbGx5IGV4aXN0ZWQgYW5kIHdhcyBhIFRETFMgc3RhdGlvbiAoYHN0YS1cdTAwM2VzdGEudGRsc2ApLiBUaGlzIGNsZWFybHkgbGVhdmVzIGEgcG90ZW50aWFsIGZvciBhIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSwgb3Igb3RoZXIgbWVtb3J5IGNvcnJ1cHRpb24sIGlmIHRoZSByZWZlcmVuY2VkIHN0YXRpb24gaXNuJ3Qgc2V0IHVwIGFzIHJlcXVpcmVkLiBUaGF0J3MgYSBjbGFzc2ljIHJhY2UgY29uZGl0aW9uIGlzc3VlLiBUaGUgcGF0Y2ggY29ycmVjdGx5IGFkZHMgdGhlIGNoZWNrcyB1c2luZyBgc3RhX2luZm9fZ2V0YCwgYW5kIG9ubHkgY2FsbHMgdGhlIGRlc3Ryb3kgZnVuY3Rpb25zIHdoZW4gdGhlIGNoZWNrcyBwYXNzLlxuXG5GdW5jdGlvbmFsbHksIHRoaXMgcGF0Y2ggbG9va3Mgc291bmQuIEl0J3MgYSBzdHJhaWdodC1mb3J3YXJkIGJ1ZyBmaXguIEl0IHNlZW1zIGxpa2UgdGhlIGJ1ZyBjYW4gaGFwcGVuIHdoZW4gYSBwZWVyIGlzIGJlaW5nIHJlbW92ZWQuIFRoZSBjb2RlIGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSB0aGUgY2ZnODAyMTEgbmV0bGluayBpbnRlcmZhY2UuIFRoZSBwYXRjaCBhZGRyZXNzZXMgdGhpcyBieSBhZGRpbmcgY2hlY2tzIHRvIGVuc3VyZSB0aGF0IHRoZSBgc3RhYCBleGlzdHMsIGFuZCBhbHNvIHRoYXQgaXQgaXMgYWN0dWFsbHkgYSBURExTIHN0YXRpb24sIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzdGF0aW9uIGRlc3RydWN0aW9uLlxuXG5UaGlzIGNoYW5nZSBpcyBjcml0aWNhbCBmb3Igc3RhYmlsaXR5IGluIFRETFMgb3BlcmF0aW9uIHdpdGhpbiBgbWFjODAyMTFgLiBTaW5jZSB0aGlzIGlzIGEgYnVnIGZpeCwgYW5kIGl0J3MgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIGNhbGxzIHRocm91Z2ggdGhlIGBjZmc4MDIxMWAgaW50ZXJmYWNlLCBJIHRoaW5rIGZ1enppbmcgdGhpcyBhcmVhIGlzIGVzc2VudGlhbC4gR2l2ZW4gdGhlIGBNQUM4MDIxMV9IV1NJTWAgY29uZmlnLCB0ZXN0aW5nIHdpdGggaGFyZHdhcmUgc2ltdWxhdGlvbiBpcyBnb2luZyB0byBiZSB0aGUgbW9zdCBlZmZpY2llbnQgYW5kIHJvYnVzdCBtZXRob2QgdG8gZGV0ZWN0IGFueSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdGhpcyBwYXRjaC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU4NzAsIk91dHB1dFRva2VucyI6MTg4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODc3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjM3LjYwNTcyMTU0NloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3MDMwNTY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya1wiLFxuICAgIFwiaWVlZTgwMjExX3RkbHNfb3BlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrXCIsXG4gICAgXCJpZWVlODAyMTFfdGRsc19vcGVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gbWFjODAyMTEgVERMUyAoVHVubmVsZWQgRGlyZWN0IExpbmsgU2V0dXApIG9wZXJhdGlvbnMgYnkgdmVyaWZ5aW5nIHRoYXQgYSBzdGF0aW9uIGV4aXN0cyBhbmQgaXMgYWN0dWFsbHkgYSBURExTIHN0YXRpb24gYmVmb3JlIGRlc3Ryb3lpbmcgaXQuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIGNyYXNoZXMgb3IgbWVtb3J5IGNvcnJ1cHRpb24gd2hlbiBoYW5kbGluZyBURExTIHBlZXIgZGVsZXRpb24gb3IgbGluayBkaXNhYmxlIG9wZXJhdGlvbnMuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoY2ZnODAyMTEpIGFuZCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBtYWM4MDIxMV9od3NpbSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowxxz7j[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 07:52:08 +0000 UTC FinishedAt: 2026-08-06 07:55:39 +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": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "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": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "14c6b1ed-0b11-4cff-8012-587dafa9c60d" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ieee80211_tdls_peer_del_work", "ieee80211_tdls_oper" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfdGRsc19vcGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZjRjNmU0YTUxNWE3ZjYxMGQyYTg1YmE4MGM1YTI1NGI5NTIzZjI2OVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMDc6NTQ6MzQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3RkbHMuYyBiL25ldC9tYWM4MDIxMS90ZGxzLmNcbmluZGV4IGZmZDU3NWE4ZDE4OGYuLmVlZjFkZGUxYzcwYTggMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTEvdGRscy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTEvdGRscy5jXG5AQCAtMzMsOCAmIzQzOzMzLDEyIEBAIHZvaWQgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd2spXG4gXHRsb2NrZGVwX2Fzc2VydF93aXBoeShsb2NhbC1cdTAwM2Vody53aXBoeSk7XG4gXG4gXHRpZiAoIWlzX3plcm9fZXRoZXJfYWRkcihzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpKSB7XG4mIzQzO1x0XHRzdHJ1Y3Qgc3RhX2luZm8gKnN0YTtcbiYjNDM7XG4gXHRcdHRkbHNfZGJnKHNkYXRhLCBcJiMzNDtURExTIGRlbCBwZWVyICVwTVxcblwmIzM0Oywgc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcbi1cdFx0c3RhX2luZm9fZGVzdHJveV9hZGRyKHNkYXRhLCBzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xuJiM0MztcdFx0c3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xuJiM0MztcdFx0aWYgKHN0YSBcdTAwMjZcdTAwMjYgc3RhLVx1MDAzZXN0YS50ZGxzKVxuJiM0MztcdFx0XHRzdGFfaW5mb19kZXN0cm95X2FkZHIoc2RhdGEsIHNkYXRhLVx1MDAzZXUubWdkLnRkbHNfcGVlcik7XG4gXHRcdGV0aF96ZXJvX2FkZHIoc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcbiBcdH1cbiB9XG5AQCAtMTQ2Miw2ICYjNDM7MTQ2NiwxMCBAQCBpbnQgaWVlZTgwMjExX3RkbHNfb3BlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdCAgICAgIWV0aGVyX2FkZHJfZXF1YWwoc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyLCBwZWVyKSk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LOlxuJiM0MztcdFx0c3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBwZWVyKTtcbiYjNDM7XHRcdGlmICghc3RhIHx8ICFzdGEtXHUwMDNlc3RhLnRkbHMpXG4mIzQzO1x0XHRcdHJldHVybiAtRU5PTElOSztcbiYjNDM7XG4gXHRcdC8qXG4gXHRcdCAqIFRoZSB0ZWFyZG93biBtZXNzYWdlIGluIGllZWU4MDIxMV90ZGxzX21nbXRfdGVhcmRvd24oKSB3YXNcbiBcdFx0ICogY3JlYXRlZCB3aGlsZSB0aGUgcXVldWVzIHdlcmUgc3RvcHBlZCwgc28gaXQgbWlnaHQgc3RpbGwgYmVcbkBAIC0xNDc2LDcgJiM0MzsxNDg0LDcgQEAgaW50IGllZWU4MDIxMV90ZGxzX29wZXIoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0LyogZmx1c2ggYSBwb3RlbnRpYWxseSBxdWV1ZWQgdGVhcmRvd24gcGFja2V0ICovXG4gXHRcdGllZWU4MDIxMV9mbHVzaF9xdWV1ZXMobG9jYWwsIHNkYXRhLCBmYWxzZSk7XG4gXG4tXHRcdHJldCA9IHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgcGVlcik7XG4mIzQzO1x0XHRyZXQgPSBfX3N0YV9pbmZvX2Rlc3Ryb3koc3RhKTtcbiBcbiBcdFx0aWVlODAyMTFfdGRsc19yZWNhbGNfaHRfcHJvdGVjdGlvbihzZGF0YSwgTlVMTCk7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfdGRsc19vcGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZjRjNmU0YTUxNWE3ZjYxMGQyYTg1YmE4MGM1YTI1NGI5NTIzZjI2OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgQXVnIDYgMDc6NTQ6MzQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvdGRscy5jIGIvbmV0L21hYzgwMjExL3RkbHMuYwppbmRleCBmZmQ1NzVhOGQxODhmLi5lZWYxZGRlMWM3MGE4IDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvdGRscy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxMS90ZGxzLmMKQEAgLTMzLDggJiM0MzszMywxMiBAQCB2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKQogCWxvY2tkZXBfYXNzZXJ0X3dpcGh5KGxvY2FsLSZndDtody53aXBoeSk7CiAKIAlpZiAoIWlzX3plcm9fZXRoZXJfYWRkcihzZGF0YS0mZ3Q7dS5tZ2QudGRsc19wZWVyKSkgewomIzQzOwkJc3RydWN0IHN0YV9pbmZvICpzdGE7CiYjNDM7CiAJCXRkbHNfZGJnKHNkYXRhLCAmIzM0O1RETFMgZGVsIHBlZXIgJXBNXG4mIzM0Oywgc2RhdGEtJmd0O3UubWdkLnRkbHNfcGVlcik7Ci0JCXN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgc2RhdGEtJmd0O3UubWdkLnRkbHNfcGVlcik7CiYjNDM7CQlzdGEgPSBzdGFfaW5mb19nZXQoc2RhdGEsIHNkYXRhLSZndDt1Lm1nZC50ZGxzX3BlZXIpOwomIzQzOwkJaWYgKHN0YSAmYW1wOyZhbXA7IHN0YS0mZ3Q7c3RhLnRkbHMpCiYjNDM7CQkJc3RhX2luZm9fZGVzdHJveV9hZGRyKHNkYXRhLCBzZGF0YS0mZ3Q7dS5tZ2QudGRsc19wZWVyKTsKIAkJZXRoX3plcm9fYWRkcihzZGF0YS0mZ3Q7dS5tZ2QudGRsc19wZWVyKTsKIAl9CiB9CkBAIC0xNDYyLDYgJiM0MzsxNDY2LDEwIEBAIGludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICAgICFldGhlcl9hZGRyX2VxdWFsKHNkYXRhLSZndDt1Lm1nZC50ZGxzX3BlZXIsIHBlZXIpKTsKIAkJYnJlYWs7CiAJY2FzZSBOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LOgomIzQzOwkJc3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBwZWVyKTsKJiM0MzsJCWlmICghc3RhIHx8ICFzdGEtJmd0O3N0YS50ZGxzKQomIzQzOwkJCXJldHVybiAtRU5PTElOSzsKJiM0MzsKIAkJLyoKIAkJICogVGhlIHRlYXJkb3duIG1lc3NhZ2UgaW4gaWVlZTgwMjExX3RkbHNfbWdtdF90ZWFyZG93bigpIHdhcwogCQkgKiBjcmVhdGVkIHdoaWxlIHRoZSBxdWV1ZXMgd2VyZSBzdG9wcGVkLCBzbyBpdCBtaWdodCBzdGlsbCBiZQpAQCAtMTQ3Niw3ICYjNDM7MTQ4NCw3IEBAIGludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCS8qIGZsdXNoIGEgcG90ZW50aWFsbHkgcXVldWVkIHRlYXJkb3duIHBhY2tldCAqLwogCQlpZWVlODAyMTFfZmx1c2hfcXVldWVzKGxvY2FsLCBzZGF0YSwgZmFsc2UpOwogCi0JCXJldCA9IHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgcGVlcik7CiYjNDM7CQlyZXQgPSBfX3N0YV9pbmZvX2Rlc3Ryb3koc3RhKTsKIAogCQlpZWU4MDIxMV90ZGxzX3JlY2FsY19odF9wcm90ZWN0aW9uKHNkYXRhLCBOVUxMKTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTM4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFRETFMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvbWFjODAyMTEvdGRscy5jYC4gVGhlIGdpc3Qgb2YgaXQgaXMgYWRkaW5nIGEgY2hlY2sgaW4gYSBjb3VwbGUgb2YgZnVuY3Rpb25zLCBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYCwgdG8gbWFrZSBzdXJlIHRoYXQgd2UmIzM5O3JlIG9ubHkgZGVhbGluZyB3aXRoIHN0YXRpb25zIHRoYXQgYXJlIGFjdHVhbGx5IGNvbmZpZ3VyZWQgYXMgVERMUyBzdGF0aW9ucy4gVGhlIGNoZWNrIGludm9sdmVzIHZlcmlmeWluZyB0aGUgYHN0YS0mZ3Q7c3RhLnRkbHNgIGZsYWcuIE1ha2VzIHNlbnNlOyB5b3UgZG9uJiMzOTt0IHdhbnQgdGhlc2UgVERMUy1zcGVjaWZpYyBmdW5jdGlvbnMgb3BlcmF0aW5nIG9uIHJlZ3VsYXIgc3RhdGlvbnMuIEl0JiMzOTtzIGFib3V0IGVuc3VyaW5nIHdlJiMzOTtyZSBvbmx5IGRlbGV0aW5nIGFuZCBvcGVyYXRpbmcgb24gdGhlIGNvcnJlY3QgdHlwZSBvZiBzdGF0aW9ucy4KClRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIEkgd2FudCB0byBzZWUgd2hhdCBlbHNlIG1pZ2h0IGJlIGFmZmVjdGVkIGFuZCBob3cgVERMUyBpcyBjb25maWd1cmVkIGluIHRoaXMgbW9kdWxlLCBzbyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMuIEkmIzM5O2xsIHVzZSBgZ3JlcHBlcmAgYW5kIHNlYXJjaCBpbiB0aGUgYG5ldC9tYWM4MDIxMS9NYWtlZmlsZWAgdG8gbG9jYXRlIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aGluIGB0ZGxzLmNgLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgd2lkZXIgaW1wYWN0IGFuZCBob3cgVERMUyBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuIEl0JiMzOTtzIGFsbCBhYm91dCB2ZXJpZnlpbmcgdGhhdCB0aGUgcGF0Y2ggaXMgYSBzYWZlIGFkZGl0aW9uIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGRsc1xcLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL01ha2VmaWxlPTU9bWFjODAyMTEteSA6PSBcXFxuLS1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zNC1cdHRyYWNlLm8gbWxtZS5vIFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6MzU6XHR0ZGxzLm8gXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zNi1cdG9jYi5vIFxcXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzEzMgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgRGVwZW5kZW5jeSBDaGFpbioqCgpSaWdodCwgc28gYHRkbHMub2AuIEkga25vdyB0aGF0JiMzOTtzIHBhcnQgb2YgdGhlIGBtYWM4MDIxMS15YCBtb2R1bGUsIHNvIGl0JiMzOTtzIGEgcGllY2Ugb2YgdGhlIGxhcmdlciBgbWFjODAyMTFgIGRyaXZlciBmcmFtZXdvcmsuIE15IGltbWVkaWF0ZSBmb2N1cyBpcywgd2hhdCBjb25maWcgb3B0aW9uIGFjdHVhbGx5IGJyaW5ncyB0aGlzIHdob2xlIHRoaW5nIHRvIGxpZmU/IEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHRoZSB1cHN0cmVhbSBjb25maWd1cmF0aW9uIGVudHJ5IHRoYXQgdG9nZ2xlcyBgbWFjODAyMTFgLiBUaGF0JiMzOTtzIHRoZSBrZXk6IGZpZ3VyaW5nIG91dCAqd2hpY2gqIEtjb25maWcgb3B0aW9uIG5lZWRzIHRvIGJlIGVuYWJsZWQgdG8gaW5jbHVkZSBgbWFjODAyMTFgIGFuZCwgY29uc2VxdWVudGx5LCBgdGRscy5vYC4gVGhpcyB3aWxsIGhlbHAgZGV0ZXJtaW5lIHdoYXQgcHJlcmVxdWlzaXRlcyBhcmUgbmVlZGVkIGFuZCBob3cgYHRkbHMub2AgZ2V0cyBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuIEl0JiMzOTtzIGEgZnVuZGFtZW50YWwgc3RlcCBpbiB1bmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHRoZSBvdmVyYWxsIGJ1aWxkIHByb2Nlc3MuIExldCBtZSBxdWlja2x5IGp1bXAgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgdHJhY2UgaXQgYmFjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttYWM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTUFDODAyMTEpICYjNDM7PSBtYWM4MDIxMS5vXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMy1cbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0OiMgbWFjODAyMTEgb2JqZWN0c1xubmV0L21hYzgwMjExL01ha2VmaWxlOjU6bWFjODAyMTEteSA6PSBcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTYtXHRtYWluLm8gc3RhdHVzLm8gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzktXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDA6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfTEVEUykgJiM0Mzs9IGxlZC5vXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDE6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgJiM0Mzs9IFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDItXHRkZWJ1Z2ZzLm8gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDYtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDc6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfTUVTSCkgJiM0Mzs9IFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNDgtXHRtZXNoLm8gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNTQtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NTU6bWFjODAyMTEtJChDT05GSUdfUE0pICYjNDM7PSBwbS5vXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNTYtXG4tLVxubmV0L21hYzgwMjExL01ha2VmaWxlPTYyPXJjODAyMTFfbWluc3RyZWwtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgJiM0Mzs9IFxcXG4tLVxubmV0L21hYzgwMjExL01ha2VmaWxlLTY0LVxubmV0L21hYzgwMjExL01ha2VmaWxlOjY1Om1hYzgwMjExLSQoQ09ORklHX01BQzgwMjExX1JDX01JTlNUUkVMKSAmIzQzOz0gJChyYzgwMjExX21pbnN0cmVsLXkpXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNjYtXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU9Njc9b2JqLXkgJiM0Mzs9IHRlc3RzL1xubmV0L21hYzgwMjExL01ha2VmaWxlLTY4LVxubmV0L21hYzgwMjExL01ha2VmaWxlOjY5Om1hYzgwMjExLXkgJiM0Mzs9IHdicmYub1xubmV0L21hYzgwMjExL01ha2VmaWxlLTcwLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwMTIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB1bmRlcnN0YW5kaW5nLCBkZWxpdmVyZWQgaW4gZmlyc3QgcGVyc29uOgoKKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgc28gdGhlIGZpcnN0IHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoZSBhYnNvbHV0ZSBuZWNlc3NpdHkgb2YgYENPTkZJR19NQUM4MDIxMWAuIFRoYXQmIzM5O3MgdGhlIGJhc2VsaW5lLCB0aGUgZm91bmRhdGlvbi4gSSBuZWVkIHRoYXQgZW5hYmxlZCwgbm8gcXVlc3Rpb24uIE5vdywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGNoZWNrIGZvciAqb3RoZXIqIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBNeSBtaW5kIGltbWVkaWF0ZWx5IGdvZXMgdG8gdGhlIHBvdGVudGlhbCBmb3IgZGVwZW5kZW5jaWVzIHdpdGhpbiB0aGUgYG5ldC9tYWM4MDIxMS9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBncmFudWxhciBkZXRhaWxzIGFuZCBjb25kaXRpb25hbCBidWlsZCBzZXR0aW5ncyBhcmUgbGlrZWx5IGRlZmluZWQuIEkgbmVlZCB0byBkaXZlIGludG8gdGhhdCBLY29uZmlnIGZpbGUgYW5kIHNlZSB3aGF0IG90aGVyIGtub2JzIGFuZCBzd2l0Y2hlcyBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIsIGdpdmVuIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZS4gSSBhbnRpY2lwYXRlIHRoZXJlIHdpbGwgYmUgb3RoZXIgZGVwZW5kZW50IHNldHRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTk9aWYgTUFDODAyMTEgIT0gblxubmV0L21hYzgwMjExL0tjb25maWctMjAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTpjb25maWcgTUFDODAyMTFfSEFTX1JDXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMi1cdGJvb2xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzLVxubmV0L21hYzgwMjExL0tjb25maWc6MjQ6Y29uZmlnIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7TWluc3RyZWxcJiMzNDsgaWYgRVhQRVJUXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNDAtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MTpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxubmV0L21hYzgwMjExL0tjb25maWctNDItXHRib29sIFwmIzM0O01pbnN0cmVsXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDg9ZW5kY2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjUwOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01MS1cdHN0cmluZ1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTU3PWNvbW1lbnQgXCYjMzQ7U29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MDpjb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY5LVxubmV0L21hYzgwMjExL0tjb25maWc6NzA6Y29uZmlnIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVx0Ym9vbCBcJiMzNDtFbmFibGUgbWFjODAyMTEgbWVzaCBuZXR3b3JraW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cdGJvb2wgXCYjMzQ7RW5hYmxlIExFRCB0cmlnZ2Vyc1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxubmV0L21hYzgwMjExL0tjb25maWc6ODg6Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05Ni1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjk3OmNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVx0Ym9vbCBcJiMzNDtUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDktXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXHRib29sIFwmIzM0O1NlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTY6Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTctXHRib29sIFwmIzM0O0RvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzI6Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTQyLVxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFwmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE1NDpjb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNTUtXHRib29sIFwmIzM0O1ZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjItXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjM6Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTc0LVxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBPQ0IgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxubmV0L21hYzgwMjExL0tjb25maWc6MTg2OmNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xODctXHRib29sIFwmIzM0O1ZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTYtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTc6Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjA4LVxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjI6Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzNTpjb25maWcgTUFDODAyMTFfTUhXTVBfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIEhXTVAgcm91dGluZyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjQ5LVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1OTpjb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2OS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MDpjb25maWcgTUFDODAyMTFfTUVTSF9QU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjcxLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcG93ZXJzYXZlIGRlYnVnZ2luZ1wmIzM0O1xuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4MC1cbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjgyLVx0Ym9vbCBcJiMzNDtWZXJib3NlIFRETFMgZGVidWdnaW5nXCYjMzQ7XG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxubmV0L21hYzgwMjExL0tjb25maWc6MjkzOmNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xubmV0L21hYzgwMjExL0tjb25maWctMjk0LVx0Ym9vbCBcJiMzNDtFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDctXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMDg6Y29uZmlnIE1BQzgwMjExX1NUQV9IQVNIX01BWF9TSVpFXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXHRpbnQgXCYjMzQ7U3RhdGlvbiBoYXNoIHRhYmxlIG1heGltdW0gc2l6ZVwmIzM0OyBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjQyNAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDEyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1BQzgwMjExIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29uZmlndXJhdGlvbiwgYW5kIGl0IHNlZW1zIGxpa2UgYE1BQzgwMjExYCBpcyB0aGUgY29yZSBvZiB0aGlzLiBIb2xkIG9uLCBpc24mIzM5O3QgYE1BQzgwMjExYCBidWlsdCBvbiBgQ0ZHODAyMTFgPyBJIGd1ZXNzIGl0IGRvZXNuJiMzOTt0IG1hdHRlciwgYE1BQzgwMjExYCBpdHNlbGYgaXMgc3VmZmljaWVudCBmb3IgdGhlIHByaW1hcnkgY29uZmlnLiBOb3csIEkgd2FudCB0byBjb25maXJtIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgaW1wb3J0YW50IGNvbmZpZ3MgSSBtaWdodCBiZSBvdmVybG9va2luZy4gVGltZSB0byBkaWcgZGVlcGVyLgoKQWxyaWdodCwgbG9va3MgbGlrZSB0aGUgY29kZSB0aGF0IGhhcyBiZWVuIG1vZGlmaWVkIGlzIHNwZWNpZmljYWxseSB3aXRoaW4gYG5ldC9tYWM4MDIxMS90ZGxzLmNgLiBJbnRlcmVzdGluZy4gVGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSByZWxldmFudCBoZXJlIHNlZW0gdG8gYmUgYGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtgIGFuZCBgaWVlZTgwMjExX3RkbHNfb3BlcmAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBhcmUgYmVpbmcgdXNlZCwgdGhlaXIgY2FsbCBncmFwaHMsIGFuZCBpZiB0aGVyZSBhcmUgYW55IGluZGlyZWN0IGRlcGVuZGVuY2llcyBJIHNob3VsZCBiZSBhd2FyZSBvZi4gSSBuZWVkIHRvIGJlIHN1cmUgdGhlc2UgYXJlIHJlYWNoYWJsZSBhbmQgYXNzZXNzIHRoZWlyIGltcGFjdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg9MjkxOD1pbnQgaWVlZTgwMjExX3RkbHNfb3BlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjkxOS1cdFx0XHRjb25zdCB1OCAqcGVlciwgZW51bSBubDgwMjExX3RkbHNfb3BlcmF0aW9uIG9wZXIpO1xubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjkyMDp2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKTtcbm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oLTI5MjEtaW50IGllZWU4MDIxMV90ZGxzX2NoYW5uZWxfc3dpdGNoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L21hYzgwMjExL21sbWUuYz05NDQ2PXZvaWQgaWVlZTgwMjExX3N0YV9zZXR1cF9zZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcbi0tXG5uZXQvbWFjODAyMTEvbWxtZS5jLTk0NTUtXHR3aXBoeV9kZWxheWVkX3dvcmtfaW5pdChcdTAwMjZpZm1nZC1cdTAwM2V0ZGxzX3BlZXJfZGVsX3dvcmssXG5uZXQvbWFjODAyMTEvbWxtZS5jOjk0NTY6XHRcdFx0XHRpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrKTtcbm5ldC9tYWM4MDIxMS9tbG1lLmMtOTQ1Ny1cdHdpcGh5X2hydGltZXJfd29ya19pbml0KFx1MDAyNmlmbWdkLVx1MDAzZW1sX3JlY29uZl93b3JrLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjMtXG5uZXQvbWFjODAyMTEvdGRscy5jOjI0OnZvaWQgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd2spXG5uZXQvbWFjODAyMTEvdGRscy5jLTI1LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzMyOQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGFzIGlmIHRoZXkgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipURExTIE9wZXJhdGlvbnMgJmFtcDsgUmVmYWN0b3JpbmcgQ29uc2lkZXJhdGlvbnMqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBgaWVlZTgwMjExX3RkbHNfb3BlcmAgZnVuY3Rpb24sIGFuZCBpdCYjMzk7cyBjbGVhciBpdCYjMzk7cyB1bmRlcmdvbmUgc29tZSBjaGFuZ2VzLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kICpob3cqIGl0JiMzOTtzIGJlZW4gbW9kaWZpZWQsIGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRob3NlIG1vZGlmaWNhdGlvbnMuIEkgY2FuIGluZmVyIGZyb20gdGhlIHBocmFzaW5nIHRoYXQgdGhpcyBmdW5jdGlvbiwgbGlrZWx5IHJlbGF0ZWQgdG8gVHVubmVsZWQgRGlyZWN0IExpbmsgU2V0dXAgd2l0aGluIHRoZSA4MDIuMTEgZnJhbWV3b3JrLCBpcyBhIGZvY2FsIHBvaW50IG9mIHJlY2VudCB1cGRhdGVzLiBNeSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGF0IGtpbmQgb2YgYWx0ZXJhdGlvbnMgd2VyZSBtYWRlIGFuZCB3aGF0IGVmZmVjdCB0aGVzZSBoYXZlLiBJIG5lZWQgdG8ga25vdzogV2FzIGl0IGEgYnVnIGZpeD8gQW4gb3B0aW1pemF0aW9uPyBBIGZlYXR1cmUgYWRkaXRpb24/IE9yIHBlcmhhcHMsIGEgcmVmYWN0b3JpbmcgZWZmb3J0IHRvIGltcHJvdmUgY29kZSByZWFkYWJpbGl0eSBvciBtYWludGFpbmFiaWxpdHk/IFRoZSBzcGVjaWZpYyBkZXRhaWxzIG9mIHRoZSBjaGFuZ2VzIHdpbGwgZGljdGF0ZSBteSBuZXh0IHN0ZXBzLCB3aGV0aGVyIHRoYXTigJlzIGZvY3VzZWQgYW5hbHlzaXMgb2YgZnVuY3Rpb25hbCBjb3JyZWN0bmVzcyBvciBmdXJ0aGVyIHJlc2VhcmNoIGludG8gZGVzaWduIHRyYWRlLW9mZnMuIFRoZSBjb250ZXh0IGFyb3VuZCB0aGUgbW9kaWZpY2F0aW9uIGlzIGdvaW5nIHRvIGRyaXZlIHdoZXRoZXIgbXkgYW5hbHlzaXMgaW52b2x2ZXMgdGVzdGluZyBhbmQgdmFsaWRhdGlvbiwgY29kZSByZXZpZXdzLCBvciBkZXNpZ24gZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpZWVlODAyMTFfdGRsc19vcGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvY2ZnLmM9NTk5MT1jb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzIG1hYzgwMjExX2NvbmZpZ19vcHMgPSB7XG4tLVxubmV0L21hYzgwMjExL2NmZy5jLTYwNjItXHQuc2V0X3Jla2V5X2RhdGEgPSBpZWVlODAyMTFfc2V0X3Jla2V5X2RhdGEsXG5uZXQvbWFjODAyMTEvY2ZnLmM6NjA2MzpcdC50ZGxzX29wZXIgPSBpZWVlODAyMTFfdGRsc19vcGVyLFxubmV0L21hYzgwMjExL2NmZy5jLTYwNjQtXHQudGRsc19tZ210ID0gaWVlZTgwMjExX3RkbHNfbWdtdCxcbi0tXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yOTEzPWludCBpZWVlODAyMTFfdGRsc19tZ210KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjkxNy1cdFx0XHRjb25zdCB1OCAqZXh0cmFfaWVzLCBzaXplX3QgZXh0cmFfaWVzX2xlbik7XG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoyOTE4OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTE5LVx0XHRcdGNvbnN0IHU4ICpwZWVyLCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3Blcik7XG4tLVxubmV0L21hYzgwMjExL3RkbHMuYz0xMzg2PWllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3RkbHMuYy0xNDE2LVxubmV0L21hYzgwMjExL3RkbHMuYzoxNDE3OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvbWFjODAyMTEvdGRscy5jLTE0MTgtXHRcdFx0Y29uc3QgdTggKnBlZXIsIGVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiBvcGVyKVxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMC1cbm5ldC9tYWM4MDIxMS90ZGxzLmM6MTUxMTp2b2lkIGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBjb25zdCB1OCAqcGVlcixcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMi1cdFx0XHRcdCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3Blcixcbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jLTE1MjQtfVxubmV0L21hYzgwMjExL3RkbHMuYzoxNTI1OkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KTtcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUyNi1cbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNDc9dm9pZCBpZWVlODAyMTFfdGVhcmRvd25fdGRsc19wZWVycyhzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jLTIwNjEtXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwNjI6XHRcdGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChcdTAwMjZzZGF0YS1cdTAwM2V2aWYsIHN0YS1cdTAwM2VzdGEuYWRkcixcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2My1cdFx0XHRcdFx0ICAgIE5MODAyMTFfVERMU19URUFSRE9XTiwgcmVhc29uLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmM9MjA2OT12b2lkIGllZWU4MDIxMV90ZGxzX2hhbmRsZV9kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4NS1cbm5ldC9tYWM4MDIxMS90ZGxzLmM6MjA4NjpcdGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChcdTAwMjZzZGF0YS1cdTAwM2V2aWYsIHBlZXIsXG5uZXQvbWFjODAyMTEvdGRscy5jLTIwODctXHRcdFx0XHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4Njk2CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjkyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBJRUVFIDgwMi4xMSBURExTIE9wZXJhdGlvbmFsIENvZGUgUGF0aCoqCgpPa2F5LCBzbyBgaWVlZTgwMjExX3RkbHNfb3BlcmAgaXMgZGVlcCBpbnNpZGUgYG1hYzgwMjExX2NvbmZpZ19vcHNgLiBUaGlzIG1lYW5zIGl0JiMzOTtzIHVsdGltYXRlbHkgaW52b2tlZCBieSBgY2ZnODAyMTFgIHRocm91Z2ggdGhlIGBubDgwMjExYCBuZXRsaW5rIGludGVyZmFjZSwgd2hpY2ggSSBrbm93IGluc2lkZSBhbmQgb3V0LiBTcGVjaWZpY2FsbHksIHRoZSBgTkw4MDIxMV9DTURfVERMU19PUEVSYCBuZXRsaW5rIGNvbW1hbmQgY2FsbHMgYGNmZzgwMjExX3RkbHNfb3BlcmAsIHdoaWNoIGluIHR1cm4gaGFuZHMgaXQgb2ZmIHRvIGByZGV2LSZndDtvcHMtJmd0O3RkbHNfb3BlcmAuIFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZTsgdXNlciBzcGFjZSBjYW4gcmVhY2ggdGhpcyBmdW5jdGlvbmFsaXR5IHRocm91Z2ggbmV0bGluay4gQW5kIHRoYXQgZGVsYXllZCB3b3JrIGZ1bmN0aW9uLCBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AsIGlzIGFsc28gYWNjZXNzaWJsZSB0aGF0IHdheS4KClRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggaXMgYWJvdXQgZml4aW5nIGEgYnVnLCBzcGVjaWZpY2FsbHkgYSBzaXR1YXRpb24gd2hlcmUgZWl0aGVyIGBzdGFfaW5mb19kZXN0cm95X2FkZHJgIG9yIGBfX3N0YV9pbmZvX2Rlc3Ryb3lgIGdldHMgY2FsbGVkIG9uIGEgc3RhdGlvbiB0aGF0ICptaWdodCogbm90IGJlIGEgVERMUyBzdGF0aW9uLCBvciBldmVuIGEgc3RhdGlvbiB0aGF0IGRvZXNuJiMzOTt0IGV4aXN0LCB3aGljaCBsZWFkcyB0byBwcm9ibGVtcy4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGZpeCwgbm90IGEgcGVyZm9ybWFuY2UgdHdlYWssIGFuZCBpdCYjMzk7cyBwcmV2ZW50aW5nIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uLgoKSSB3b25kZXIgaWYgdGhlcmUgYXJlIGFueSBzcGVjaWZpYyBrZXJuZWwgY29uZmlncyBuZWVkZWQgdG8gZW5hYmxlIFRETFMgZnVuY3Rpb25hbGl0eS4gTGV0IG1lIHF1aWNrbHkgY2hlY2sgYG5ldC9tYWM4MDIxMS90ZGxzLmNgIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24uIEhtbSwgaXQgc2VlbXMgdGhhdCBgdGRscy5vYCBpcyBhbHdheXMgY29tcGlsZWQgaWYgYE1BQzgwMjExYCBpcyBlbmFibGVkLiBMZXQmIzM5O3MgbWFrZSBzdXJlIEkgZGlkbiYjMzk7dCBtaXNzIHNvbWV0aGluZyBpbiB0aGUgYG5ldC9tYWM4MDIxMS9NYWtlZmlsZWAuIEp1c3QgYSBxdWljayByZXZpZXcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3RkbHNcXC5vJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS9NYWtlZmlsZT01PW1hYzgwMjExLXkgOj0gXFxcbi0tXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzQtXHR0cmFjZS5vIG1sbWUubyBcXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjM1Olx0dGRscy5vIFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzYtXHRvY2IubyBcXFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NTA1CgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFdpcmVsZXNzIE1vZHVsZSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IHRoZSBgdGRscy5vYCBvYmplY3QgZmlsZSBpcyBpbnRyaW5zaWNhbGx5IGxpbmtlZCBpbnRvIGBtYWM4MDIxMS5vYCBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3MuIFRoYXQgc2ltcGxpZmllcyB0aGluZ3M7IGVzc2VudGlhbGx5LCBgTUFDODAyMTFgIGl0c2VsZiBpcyB0aGUgb25seSBjb25maWd1cmF0aW9uIG9wdGlvbiBJIG5lZWQgdG8gY29uc2lkZXIgYXQgdGhpcyBsZXZlbC4gTm8gbmVlZCB0byB3b3JyeSBhYm91dCBgdGRsc2AgYXMgYSBzZXBhcmF0ZSBtb2R1bGUsIGl0JiMzOTtzIGJha2VkIGluLgoKQnV0Li4uIGEgcXVpY2sgcmVjYWxsIGNoZWNrIGZsYWdzIHRoYXQgYE1BQzgwMjExYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBDRkc4MDIxMWAsIGRvZXNuJiMzOTt0IGl0PyBHb3R0YSByZW1lbWJlciB0aGVzZSBpbnRlcmRlcGVuZGVuY2llcy4gQWxyaWdodCwgYmVzdCB0byBqdXN0IHZlcmlmeSB0aGF0IGFzc3VtcHRpb24gYW5kIHRvIGNvbmZpcm0gaG93IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHNldCB1cC4gTGV0IG1lIHF1aWNrbHkgZXhhbWluZSB0aGUgYG5ldC9tYWM4MDIxMS9LY29uZmlnYCBmaWxlIGFuZCBjb25maXJtIHRoZSBkZXBlbmRlbmN5IGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA3OjU1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0Olx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWctNS1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNj1jb21tZW50IFwmIzM0O0NGRzgwMjExIG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIE1BQzgwMjExXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNzpcdGRlcGVuZHMgb24gQ0ZHODAyMTE9blxubmV0L21hYzgwMjExL0tjb25maWctMTgtXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MzE9Y2hvaWNlXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMi1cdHByb21wdCBcJiMzNDtEZWZhdWx0IHJhdGUgY29udHJvbCBhbGdvcml0aG1cJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMzOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9IQVNfUkNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTM0LVx0ZGVmYXVsdCBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9NDE9Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQyLVx0Ym9vbCBcJiMzNDtNaW5zdHJlbFwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6NDM6XHRkZXBlbmRzIG9uIE1BQzgwMjExX1JDX01JTlNUUkVMXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00NC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz01Nz1jb21tZW50IFwmIzM0O1NvbWUgd2lyZWxlc3MgZHJpdmVycyByZXF1aXJlIGEgcmF0ZSBjb250cm9sIGFsZ29yaXRobVwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6NTg6XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBNQUM4MDIxMV9IQVNfUkM9blxubmV0L21hYzgwMjExL0tjb25maWctNTktXG5uZXQvbWFjODAyMTEvS2NvbmZpZz02MD1jb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxubmV0L21hYzgwMjExL0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xubmV0L21hYzgwMjExL0tjb25maWc6NjI6XHRkZXBlbmRzIG9uIEtVTklUXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MzpcdGRlcGVuZHMgb24gTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY0LVx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz03MD1jb25maWcgTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctNzEtXHRib29sIFwmIzM0O0VuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6NzI6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy03My1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz03OT1jb25maWcgTUFDODAyMTFfTEVEU1xubmV0L21hYzgwMjExL0tjb25maWctODAtXHRib29sIFwmIzM0O0VuYWJsZSBMRUQgdHJpZ2dlcnNcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjgxOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxubmV0L21hYzgwMjExL0tjb25maWc6ODI6XHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04My1cdHNlbGVjdCBMRURTX1RSSUdHRVJTXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9ODg9Y29uZmlnIE1BQzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVx0Ym9vbCBcJiMzNDtFeHBvcnQgbWFjODAyMTEgaW50ZXJuYWxzIGluIERlYnVnRlNcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjkwOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcdTAwMjZcdTAwMjYgQ0ZHODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctOTEtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9OTc9Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xubmV0L21hYzgwMjExL0tjb25maWctOTgtXHRib29sIFwmIzM0O1RyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6OTk6XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiBUUkFDSU5HXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMDAtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTEwPW1lbnVjb25maWcgTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTExLVx0Ym9vbCBcJiMzNDtTZWxlY3QgbWFjODAyMTEgZGVidWdnaW5nIGZlYXR1cmVzXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTI6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTMtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTE2PWNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVx0Ym9vbCBcJiMzNDtEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTg6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExOS1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMzI9Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMzQ6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzNS1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNDM9Y29uZmlnIE1BQzgwMjExX01MTUVfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0NC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtYW5hZ2VkIE1MTUUgb3V0cHV0XCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDU6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE0Ni1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNTQ9Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTU1LVx0Ym9vbCBcJiMzNDtWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTY6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1Ny1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNjM9Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXHRib29sIFwmIzM0O1ZlcmJvc2UgSFQgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNjU6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE2Ni1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNzU9Y29uZmlnIE1BQzgwMjExX09DQl9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTc2LVx0Ym9vbCBcJiMzNDtWZXJib3NlIE9DQiBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NzpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMTc4LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE4Nj1jb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMTg3LVx0Ym9vbCBcJiMzNDtWZXJib3NlIElCU1MgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxODg6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4OS1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOTc9Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXHRib29sIFwmIzM0O1ZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxOTk6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIwMC1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMDk9Y29uZmlnIE1BQzgwMjExX01QTF9ERUJVR1xubmV0L21hYzgwMjExL0tjb25maWctMjEwLVx0Ym9vbCBcJiMzNDtWZXJib3NlIG1lc2ggcGVlciBsaW5rIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjExOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMTI6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIxMy1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMjI9Y29uZmlnIE1BQzgwMjExX01QQVRIX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjMtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBwYXRoIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjI0Olx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMjU6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyNi1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yMzU9Y29uZmlnIE1BQzgwMjExX01IV01QX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzYtXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBIV01QIHJvdXRpbmcgZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzc6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIzODpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjM5LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI0OD1jb25maWcgTUFDODAyMTFfTUVTSF9TWU5DX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNDktXHRib29sIFwmIzM0O1ZlcmJvc2UgbWVzaCBzeW5jaHJvbml6YXRpb24gZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTA6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI1MTpcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxubmV0L21hYzgwMjExL0tjb25maWctMjUyLVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI1OT1jb25maWcgTUFDODAyMTFfTUVTSF9DU0FfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2MC1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIGNoYW5uZWwgc3dpdGNoIGRlYnVnZ2luZ1wmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MjYxOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNjI6XHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI2My1cdGhlbHBcbi0tXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNzA9Y29uZmlnIE1BQzgwMjExX01FU0hfUFNfREVCVUdcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI3MS1cdGJvb2wgXCYjMzQ7VmVyYm9zZSBtZXNoIHBvd2Vyc2F2ZSBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MjpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWc6MjczOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNzQtXHRoZWxwXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MjgxPWNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MzpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxubmV0L21hYzgwMjExL0tjb25maWctMjg0LVx0aGVscFxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI5Mz1jb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cdGJvb2wgXCYjMzQ7RXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyOTU6XHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5NjpcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdGU1xubmV0L21hYzgwMjExL0tjb25maWctMjk3LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjg3NgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIE11c2luZ3MqKgoKT2theSwgc28gSSYjMzk7bSBkaXZpbmcgaW50byB0aGlzIGBNQUM4MDIxMWAgc2l0dWF0aW9uLCBhbmQgaXQmIzM5O3MgaW1tZWRpYXRlbHkgYXBwYXJlbnQgdGhhdCBpdCYjMzk7cyB0aWdodGx5IGNvdXBsZWQgd2l0aCBgQ0ZHODAyMTFgLiBUaGF0IGRlcGVuZGVuY3kgaXMgY3JpdGljYWwsIHNvIEkmIzM5O2xsIGJlIHN1cmUgdG8gaW5jbHVkZSBib3RoIGluIGBFbmFibGVDb25maWdzYC4gQnV0IGhhbmcgb24uLi4gYE1BQzgwMjExYCBpcyB0cmlzdGF0ZSwgbWVhbmluZyBpdCBoYXMgdGhlIGZsZXhpYmlsaXR5IHRvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBDb25zaWRlcmluZyB0ZXN0aW5nIGFuZCBkZXBsb3ltZW50LCB0aGF0IG1vZHVsYXJpdHkgY291bGQgYmUgYmVuZWZpY2lhbC4KCk5vdywgdG8gcHJvcGVybHkgZXhlcmNpc2UgYE1BQzgwMjExYCwgSSBzaG91bGQgZW5hYmxlIGl0LCBhbG9uZyB3aXRoIGBDRkc4MDIxMWAsIGZvciBhIHNvbGlkIGJhc2UuIEhtbSwgYW5kIHRvICphY3R1YWxseSogcHV0IGl0IHRocm91Z2ggaXRzIHBhY2VzLCBJJiMzOTtsbCBuZWVkIGEgZHJpdmVyLiBJIHJlbWVtYmVyIHRoYXQgU3l6a2FsbGVyLCBpbiBpdHMgZnV6emluZyB3b3JrLCBsZXZlcmFnZXMgYG1hYzgwMjExX2h3c2ltYCB0byBlbXVsYXRlIHRoZSBoYXJkd2FyZSBlbnZpcm9ubWVudC4gQSBjcml0aWNhbCBwaWVjZSBmb3IgZW5zdXJpbmcgYWxsIHBhdGhzIGFyZSBleHBsb3JlZC4gSSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlciBvciBub3QgYG1hYzgwMjExX2h3c2ltYCBpcyB0cnVseSBlc3NlbnRpYWwgaGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1BQzgwMjExX0hXU0lNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzM2NQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkxldmVyYWdpbmcgTUFDODAyMTFfSFdTSU0gZm9yIFJvYnVzdCBtYWM4MDIxMSBGdXp6aW5nKioKClJpZ2h0LCBgTUFDODAyMTFfSFdTSU1gIOKAkyBpdCYjMzk7cyBwcmFjdGljYWxseSAqZXNzZW50aWFsKiBmb3IgZnV6emluZyB0aGUgYG1hYzgwMjExYCBjb2RlLCBhbmQgSSYjMzk7bSByZWFsbHkga2VlbiB0byB1c2UgaXQuIEkga25vdyBpdCYjMzk7cyBhIHBvd2VyZnVsIHRvb2wgZm9yIGdlbmVyYXRpbmcgdGVzdCBzY2VuYXJpb3MuIEJlZm9yZSBkaXZpbmcgaW4sIGhvd2V2ZXIsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlIGFsbCBteSBkdWNrcyBpbiBhIHJvdy4gQmVzdCB0byBmaXJzdCBleGFtaW5lIHRoZSBkZXBlbmRlbmNpZXMsIG1ha2Ugc3VyZSBldmVyeXRoaW5nJiMzOTtzIHNldCB1cCBjb3JyZWN0bHksIGFuZCB0aGF0IHRoZSBlbnZpcm9ubWVudCBpcyBmdWxseSBjb21wbGlhbnQuIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBvbiBhIGJyb2tlbiBidWlsZC4gSXTigJlzIGFsd2F5cyB0aGUgZmlyc3QgdGhpbmcgSSBkby4gSXQmIzM5O3MgdG9vIGVhc3kgdG8gbG9zZSB0aW1lIGxhdGVyIHRyeWluZyB0byBmaWd1cmUgb3V0IHdoeSB0aGUgdGVzdHMgYXJlbiYjMzk7dCBydW5uaW5nIGFzIGV4cGVjdGVkLCB3aGVuIGl0JiMzOTtzIGp1c3QgYSBkZXBlbmRlbmN5IGlzc3VlLiBMZXTigJlzIGdldCB0aGF0IHNvcnRlZCBvdXQgdXBmcm9udC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc9MT1jb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzozOlx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTQtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnPTE0PWNvbmZpZyBWSVJUX1dJRklcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0xNS1cdHRyaXN0YXRlIFwmIzM0O1dpZmkgd3JhcHBlciBmb3IgZXRoZXJuZXQgZHJpdmVyc1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE2Olx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTE3LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzg0MwoJCQkJCQkJb3V0cHV0OiA2MgoJCQkJCQkJdGhvdWdodHM6IDIwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIEZvY3VzKioKCk9rYXksIHNvIEkgc2VlIHRoYXQgYE1BQzgwMjExX0hXU0lNYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBNQUM4MDIxMWAuIFRoYXQgbWVhbnMgd2hlbiBJIHNldCB1cCBteSBjb25maWd1cmF0aW9uLCBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBuZWVkIHRvIGJlIGV4cGxpY2l0bHkgaW5jbHVkZWQgaW4gbXkgYEVuYWJsZUNvbmZpZ3NgLiBUaGF0IGNvdmVycyB0aGUgYmFzaWMgc2V0dXAuCgpOb3csIGxldCYjMzk7cyBpZGVudGlmeSB0aGUgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgYXJlIGJlaW5nIHRvdWNoZWQgYnkgdGhpcyBwYXRjaCwgYmVjYXVzZSB0aG9zZSBhcmUgZ29pbmcgdG8gYmUgbXkgYEZvY3VzU3ltYm9sc2AuIEkgc2VlIGBpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrYCBhbmQgYGllZWU4MDIxMV90ZGxzX29wZXJgIGFyZSB0aGUgbW9kaWZpZWQgZnVuY3Rpb25zLgoKQXJlIHRoZXkgdGhlIHJpZ2h0IGNhbmRpZGF0ZXM/IGBpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrYCBsb29rcyBsaWtlIGEgd29ya3F1ZXVlIGNhbGxiYWNrLCBhbmQgYGllZWU4MDIxMV90ZGxzX29wZXJgIGlzIGEgbmV0bGluayBjYWxsYmFjayBhY2Nlc3NlZCB0aHJvdWdoIGBjZmc4MDIxMWAuIEJvdGggYXJlIG5vbi1zdGF0aWMgYW5kIGFyZW4mIzM5O3QgaW5saW5lZCwgd2hpY2ggbWFrZXMgdGhlbSBsaWtlbHkgZW50cnkgcG9pbnRzLiBJIHNob3VsZCBjb25maXJtIHRoYXQgdGhleSBhcmUgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya3xpZWVlODAyMTFfdGRsc19vcGVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL3RkbHMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbWFjODAyMTEvdGRscy5jLTIzLVxubmV0L21hYzgwMjExL3RkbHMuYzoyNDp2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKVxubmV0L21hYzgwMjExL3RkbHMuYy0yNS17XG4tLVxubmV0L21hYzgwMjExL3RkbHMuYz0xMzg2PWllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjExL3RkbHMuYy0xNDE2LVxubmV0L21hYzgwMjExL3RkbHMuYzoxNDE3OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5uZXQvbWFjODAyMTEvdGRscy5jLTE0MTgtXHRcdFx0Y29uc3QgdTggKnBlZXIsIGVudW0gbmw4MDIxMV90ZGxzX29wZXJhdGlvbiBvcGVyKVxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMC1cbm5ldC9tYWM4MDIxMS90ZGxzLmM6MTUxMTp2b2lkIGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBjb25zdCB1OCAqcGVlcixcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMi1cdFx0XHRcdCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3Blcixcbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jLTE1MjQtfVxubmV0L21hYzgwMjExL3RkbHMuYzoxNTI1OkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KTtcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUyNi1cbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNDc9dm9pZCBpZWVlODAyMTFfdGVhcmRvd25fdGRsc19wZWVycyhzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcbi0tXG5uZXQvbWFjODAyMTEvdGRscy5jLTIwNjEtXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwNjI6XHRcdGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChcdTAwMjZzZGF0YS1cdTAwM2V2aWYsIHN0YS1cdTAwM2VzdGEuYWRkcixcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2My1cdFx0XHRcdFx0ICAgIE5MODAyMTFfVERMU19URUFSRE9XTiwgcmVhc29uLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmM9MjA2OT12b2lkIGllZWU4MDIxMV90ZGxzX2hhbmRsZV9kaXNjb25uZWN0KHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhLFxuLS1cbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4NS1cbm5ldC9tYWM4MDIxMS90ZGxzLmM6MjA4NjpcdGllZWU4MDIxMV90ZGxzX29wZXJfcmVxdWVzdChcdTAwMjZzZGF0YS1cdTAwM2V2aWYsIHBlZXIsXG5uZXQvbWFjODAyMTEvdGRscy5jLTIwODctXHRcdFx0XHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTE0MwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDg1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKlRETFMgQ29uZmlndXJhdGlvbiBEZWVwIERpdmUqKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBkeW5hbWljIHNpdHVhdGlvbiwgdGhhdCYjMzk7cyBjbGVhci4gVGhlIGluZm9ybWF0aW9uIEkmIzM5O20gcHJvY2Vzc2luZyBoYXMgc2hvd24gbWUgdGhhdCBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYCBhcmUgZGVmaW5pdGVseSBzdHJvbmcgY29udGVuZGVycyBmb3IgaW5jbHVzaW9uIGluIHRoZSBgRm9jdXNTeW1ib2xzYCBsaXN0LiBUaG9zZSB0d28gZnVuY3Rpb25zIGFyZSBwcmltZSBsb2NhdGlvbnMgZm9yIG9ic2VydmluZyB0aGUgY3JpdGljYWwgcGF0aCBvZiBURExTIG9wZXJhdGlvbiB3aXRoaW4gdGhpcyBzeXN0ZW0uCgpOb3csIGJlZm9yZSBJIGNvbW1pdCwgSSBuZWVkIHRvIHRob3JvdWdobHkgdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlcmUmIzM5O3MgYSBkZWRpY2F0ZWQgY29uZmlndXJhdGlvbiBvcHRpb24sIHNvbWV0aGluZyBsaWtlIGBDT05GSUdfTUFDODAyMTFfVERMU2AsIHRoYXQgY291bGQgcG90ZW50aWFsbHkgaW5mbHVlbmNlIHRoZSBiZWhhdmlvciBvciBhdmFpbGFiaWxpdHkgb2YgVERMUyBmdW5jdGlvbmFsaXR5LiBJIG5lZWQgdG8ga25vdyBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHByZXByb2Nlc3NvciBkaXJlY3RpdmVzIG9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGFzcGVjdHMgdGhhdCBhcmUgcmVsZXZhbnQgaGVyZS4gTmVlZCB0byBtYWtlIHN1cmUgSSYjMzk7bSBjYXB0dXJpbmcgdGhlIGNvbXBsZXRlIHBpY3R1cmUgYmVmb3JlIG1vdmluZyBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TUFDODAyMTFfVERMUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWc9MjcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXG4tLVxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODItXHRib29sIFwmIzM0O1ZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5uZXQvbWFjODAyMTEvZGVidWcuaC03MC1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjcxOiNpZmRlZiBDT05GSUdfTUFDODAyMTFfVERMU19ERUJVR1xubmV0L21hYzgwMjExL2RlYnVnLmg6NzI6I2RlZmluZSBNQUM4MDIxMV9URExTX0RFQlVHIDFcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTczLSNlbHNlXG5uZXQvbWFjODAyMTEvZGVidWcuaDo3NDojZGVmaW5lIE1BQzgwMjExX1RETFNfREVCVUcgMFxubmV0L21hYzgwMjExL2RlYnVnLmgtNzUtI2VuZGlmXG4tLVxubmV0L21hYzgwMjExL2RlYnVnLmg9MTI1PWRvIHtcdFx0XHRcdFx0XHRcdFx0XHRcXFxuLS1cbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIzMC0jZGVmaW5lIHRkbHNfZGJnKHNkYXRhLCBmbXQsIC4uLilcdFx0XHRcdFx0XFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oOjIzMTpcdF9zZGF0YV9kYmcoTUFDODAyMTFfVERMU19ERUJVRyxcdFx0XHRcdFx0XFxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTIzMi1cdFx0ICAgc2RhdGEsIGZtdCwgIyNfX1ZBX0FSR1NfXylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDc6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU4NzAKCQkJCQkJCW91dHB1dDogMTg4CgkJCQkJCQl0aG91Z2h0czogODc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlRETFMgQnVnIEZpeCBpbiBgbWFjODAyMTFgKioKCk9rYXksIHNvIHRoZXJlJiMzOTtzIG5vIHNlcGFyYXRlIGBURExTYCBtb2R1bGUsIGl0JiMzOTtzIGFsbCBidWlsdCBpbnRvIGBtYWM4MDIxMWAsIGFzIGV4cGVjdGVkLiBMZXQmIzM5O3MgZGlnIGludG8gdGhpcyBwYXRjaC4gUmlnaHQsIEkgc2VlIHRoZSBjb3JlIG9mIHRoZSBmaXggaXMgaW4gYGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtgIGFuZCBgaWVlZTgwMjExX3RkbHNfb3BlcmAuIFRoZSBvcmlnaW5hbCBjb2RlLCBpbiBib3RoIHBsYWNlcywgbmFpdmVseSBjYWxsZWQgYHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcmAgb3IgYF9fc3RhX2luZm9fZGVzdHJveWAgd2l0aG91dCBmaXJzdCB2ZXJpZnlpbmcgdGhlIHN0YXRpb24gKGBzdGFgKSBhY3R1YWxseSBleGlzdGVkIGFuZCB3YXMgYSBURExTIHN0YXRpb24gKGBzdGEtJmd0O3N0YS50ZGxzYCkuIFRoaXMgY2xlYXJseSBsZWF2ZXMgYSBwb3RlbnRpYWwgZm9yIGEgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlLCBvciBvdGhlciBtZW1vcnkgY29ycnVwdGlvbiwgaWYgdGhlIHJlZmVyZW5jZWQgc3RhdGlvbiBpc24mIzM5O3Qgc2V0IHVwIGFzIHJlcXVpcmVkLiBUaGF0JiMzOTtzIGEgY2xhc3NpYyByYWNlIGNvbmRpdGlvbiBpc3N1ZS4gVGhlIHBhdGNoIGNvcnJlY3RseSBhZGRzIHRoZSBjaGVja3MgdXNpbmcgYHN0YV9pbmZvX2dldGAsIGFuZCBvbmx5IGNhbGxzIHRoZSBkZXN0cm95IGZ1bmN0aW9ucyB3aGVuIHRoZSBjaGVja3MgcGFzcy4KCkZ1bmN0aW9uYWxseSwgdGhpcyBwYXRjaCBsb29rcyBzb3VuZC4gSXQmIzM5O3MgYSBzdHJhaWdodC1mb3J3YXJkIGJ1ZyBmaXguIEl0IHNlZW1zIGxpa2UgdGhlIGJ1ZyBjYW4gaGFwcGVuIHdoZW4gYSBwZWVyIGlzIGJlaW5nIHJlbW92ZWQuIFRoZSBjb2RlIGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSB0aGUgY2ZnODAyMTEgbmV0bGluayBpbnRlcmZhY2UuIFRoZSBwYXRjaCBhZGRyZXNzZXMgdGhpcyBieSBhZGRpbmcgY2hlY2tzIHRvIGVuc3VyZSB0aGF0IHRoZSBgc3RhYCBleGlzdHMsIGFuZCBhbHNvIHRoYXQgaXQgaXMgYWN0dWFsbHkgYSBURExTIHN0YXRpb24sIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzdGF0aW9uIGRlc3RydWN0aW9uLgoKVGhpcyBjaGFuZ2UgaXMgY3JpdGljYWwgZm9yIHN0YWJpbGl0eSBpbiBURExTIG9wZXJhdGlvbiB3aXRoaW4gYG1hYzgwMjExYC4gU2luY2UgdGhpcyBpcyBhIGJ1ZyBmaXgsIGFuZCBpdCYjMzk7cyByZWFjaGFibGUgdmlhIG5ldGxpbmsgY2FsbHMgdGhyb3VnaCB0aGUgYGNmZzgwMjExYCBpbnRlcmZhY2UsIEkgdGhpbmsgZnV6emluZyB0aGlzIGFyZWEgaXMgZXNzZW50aWFsLiBHaXZlbiB0aGUgYE1BQzgwMjExX0hXU0lNYCBjb25maWcsIHRlc3Rpbmcgd2l0aCBoYXJkd2FyZSBzaW11bGF0aW9uIGlzIGdvaW5nIHRvIGJlIHRoZSBtb3N0IGVmZmljaWVudCBhbmQgcm9idXN0IG1ldGhvZCB0byBkZXRlY3QgYW55IHBvdGVudGlhbCBpc3N1ZXMgd2l0aCB0aGlzIHBhdGNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwNzo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrJiMzNDssCiAgICAmIzM0O2llZWU4MDIxMV90ZGxzX29wZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gbWFjODAyMTEgVERMUyAoVHVubmVsZWQgRGlyZWN0IExpbmsgU2V0dXApIG9wZXJhdGlvbnMgYnkgdmVyaWZ5aW5nIHRoYXQgYSBzdGF0aW9uIGV4aXN0cyBhbmQgaXMgYWN0dWFsbHkgYSBURExTIHN0YXRpb24gYmVmb3JlIGRlc3Ryb3lpbmcgaXQuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIGNyYXNoZXMgb3IgbWVtb3J5IGNvcnJ1cHRpb24gd2hlbiBoYW5kbGluZyBURExTIHBlZXIgZGVsZXRpb24gb3IgbGluayBkaXNhYmxlIG9wZXJhdGlvbnMuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoY2ZnODAyMTEpIGFuZCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBtYWM4MDIxMV9od3NpbSBkcml2ZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O01BQzgwMjExX0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayYjMzQ7LAogICAgJiMzNDtpZWVlODAyMTFfdGRsc19vcGVyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6MzUuODk3ODc0NTQ2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjE3ODQ4ODg3NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIk1BQzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMV9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtcIixcbiAgICBcImllZWU4MDIxMV90ZGxzX29wZXJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBtYWM4MDIxMSBURExTIChUdW5uZWxlZCBEaXJlY3QgTGluayBTZXR1cCkgb3BlcmF0aW9ucyBieSB2ZXJpZnlpbmcgdGhhdCBhIHN0YXRpb24gZXhpc3RzIGFuZCBpcyBhY3R1YWxseSBhIFRETFMgc3RhdGlvbiBiZWZvcmUgZGVzdHJveWluZyBpdC4gVGhpcyBwcmV2ZW50cyBwb3RlbnRpYWwgY3Jhc2hlcyBvciBtZW1vcnkgY29ycnVwdGlvbiB3aGVuIGhhbmRsaW5nIFRETFMgcGVlciBkZWxldGlvbiBvciBsaW5rIGRpc2FibGUgb3BlcmF0aW9ucy4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBuZXRsaW5rIChjZmc4MDIxMSkgYW5kIGNhbiBiZSB0ZXN0ZWQgdXNpbmcgdGhlIG1hYzgwMjExX2h3c2ltIGRyaXZlci5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6MzUuODk3ODc5OTM1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTkxNjM2Mzg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZjRjNmU0YTUxNWE3ZjYxMGQyYTg1YmE4MGM1YTI1NGI5NTIzZjI2OVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyA2IDA3OjU0OjM0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS90ZGxzLmMgYi9uZXQvbWFjODAyMTEvdGRscy5jXFxuaW5kZXggZmZkNTc1YThkMTg4Zi4uZWVmMWRkZTFjNzBhOCAxMDA2NDRcXG4tLS0gYS9uZXQvbWFjODAyMTEvdGRscy5jXFxuKysrIGIvbmV0L21hYzgwMjExL3RkbHMuY1xcbkBAIC0zMyw4ICszMywxMiBAQCB2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKVxcbiBcXHRsb2NrZGVwX2Fzc2VydF93aXBoeShsb2NhbC1cXHUwMDNlaHcud2lwaHkpO1xcbiBcXG4gXFx0aWYgKCFpc196ZXJvX2V0aGVyX2FkZHIoc2RhdGEtXFx1MDAzZXUubWdkLnRkbHNfcGVlcikpIHtcXG4rXFx0XFx0c3RydWN0IHN0YV9pbmZvICpzdGE7XFxuK1xcbiBcXHRcXHR0ZGxzX2RiZyhzZGF0YSwgXFxcIlRETFMgZGVsIHBlZXIgJXBNXFxcXG5cXFwiLCBzZGF0YS1cXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcXG4tXFx0XFx0c3RhX2luZm9fZGVzdHJveV9hZGRyKHNkYXRhLCBzZGF0YS1cXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcXG4rXFx0XFx0c3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBzZGF0YS1cXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcXG4rXFx0XFx0aWYgKHN0YSBcXHUwMDI2XFx1MDAyNiBzdGEtXFx1MDAzZXN0YS50ZGxzKVxcbitcXHRcXHRcXHRzdGFfaW5mb19kZXN0cm95X2FkZHIoc2RhdGEsIHNkYXRhLVxcdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xcbiBcXHRcXHRldGhfemVyb19hZGRyKHNkYXRhLVxcdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xcbiBcXHR9XFxuIH1cXG5AQCAtMTQ2Miw2ICsxNDY2LDEwIEBAIGludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuIFxcdFxcdFxcdCAgICAgIWV0aGVyX2FkZHJfZXF1YWwoc2RhdGEtXFx1MDAzZXUubWdkLnRkbHNfcGVlciwgcGVlcikpO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBOTDgwMjExX1RETFNfRElTQUJMRV9MSU5LOlxcbitcXHRcXHRzdGEgPSBzdGFfaW5mb19nZXQoc2RhdGEsIHBlZXIpO1xcbitcXHRcXHRpZiAoIXN0YSB8fCAhc3RhLVxcdTAwM2VzdGEudGRscylcXG4rXFx0XFx0XFx0cmV0dXJuIC1FTk9MSU5LO1xcbitcXG4gXFx0XFx0LypcXG4gXFx0XFx0ICogVGhlIHRlYXJkb3duIG1lc3NhZ2UgaW4gaWVlZTgwMjExX3RkbHNfbWdtdF90ZWFyZG93bigpIHdhc1xcbiBcXHRcXHQgKiBjcmVhdGVkIHdoaWxlIHRoZSBxdWV1ZXMgd2VyZSBzdG9wcGVkLCBzbyBpdCBtaWdodCBzdGlsbCBiZVxcbkBAIC0xNDc2LDcgKzE0ODQsNyBAQCBpbnQgaWVlZTgwMjExX3RkbHNfb3BlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHQvKiBmbHVzaCBhIHBvdGVudGlhbGx5IHF1ZXVlZCB0ZWFyZG93biBwYWNrZXQgKi9cXG4gXFx0XFx0aWVlZTgwMjExX2ZsdXNoX3F1ZXVlcyhsb2NhbCwgc2RhdGEsIGZhbHNlKTtcXG4gXFxuLVxcdFxcdHJldCA9IHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgcGVlcik7XFxuK1xcdFxcdHJldCA9IF9fc3RhX2luZm9fZGVzdHJveShzdGEpO1xcbiBcXG4gXFx0XFx0aWVlODAyMTFfdGRsc19yZWNhbGNfaHRfcHJvdGVjdGlvbihzZGF0YSwgTlVMTCk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDozNy4wOTAyNjM2ODRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2MDU5MjQ5MTE4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya1wiLFxuICAgIFwiaWVlZTgwMjExX3RkbHNfb3BlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmNGM2ZTRhNTE1YTdmNjEwZDJhODViYTgwYzVhMjU0Yjk1MjNmMjY5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBBdWcgNiAwNzo1NDozNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS90ZGxzLmMgYi9uZXQvbWFjODAyMTEvdGRscy5jXG5pbmRleCBmZmQ1NzVhOGQxODhmLi5lZWYxZGRlMWM3MGE4IDEwMDY0NFxuLS0tIGEvbmV0L21hYzgwMjExL3RkbHMuY1xuKysrIGIvbmV0L21hYzgwMjExL3RkbHMuY1xuQEAgLTMzLDggKzMzLDEyIEBAIHZvaWQgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayhzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3Qgd2lwaHlfd29yayAqd2spXG4gXHRsb2NrZGVwX2Fzc2VydF93aXBoeShsb2NhbC1cdTAwM2Vody53aXBoeSk7XG4gXG4gXHRpZiAoIWlzX3plcm9fZXRoZXJfYWRkcihzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpKSB7XG4rXHRcdHN0cnVjdCBzdGFfaW5mbyAqc3RhO1xuK1xuIFx0XHR0ZGxzX2RiZyhzZGF0YSwgXCJURExTIGRlbCBwZWVyICVwTVxcblwiLCBzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xuLVx0XHRzdGFfaW5mb19kZXN0cm95X2FkZHIoc2RhdGEsIHNkYXRhLVx1MDAzZXUubWdkLnRkbHNfcGVlcik7XG4rXHRcdHN0YSA9IHN0YV9pbmZvX2dldChzZGF0YSwgc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcbitcdFx0aWYgKHN0YSBcdTAwMjZcdTAwMjYgc3RhLVx1MDAzZXN0YS50ZGxzKVxuK1x0XHRcdHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcihzZGF0YSwgc2RhdGEtXHUwMDNldS5tZ2QudGRsc19wZWVyKTtcbiBcdFx0ZXRoX3plcm9fYWRkcihzZGF0YS1cdTAwM2V1Lm1nZC50ZGxzX3BlZXIpO1xuIFx0fVxuIH1cbkBAIC0xNDYyLDYgKzE0NjYsMTAgQEAgaW50IGllZWU4MDIxMV90ZGxzX29wZXIoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHQgICAgICFldGhlcl9hZGRyX2VxdWFsKHNkYXRhLVx1MDAzZXUubWdkLnRkbHNfcGVlciwgcGVlcikpO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgTkw4MDIxMV9URExTX0RJU0FCTEVfTElOSzpcbitcdFx0c3RhID0gc3RhX2luZm9fZ2V0KHNkYXRhLCBwZWVyKTtcbitcdFx0aWYgKCFzdGEgfHwgIXN0YS1cdTAwM2VzdGEudGRscylcbitcdFx0XHRyZXR1cm4gLUVOT0xJTks7XG4rXG4gXHRcdC8qXG4gXHRcdCAqIFRoZSB0ZWFyZG93biBtZXNzYWdlIGluIGllZWU4MDIxMV90ZGxzX21nbXRfdGVhcmRvd24oKSB3YXNcbiBcdFx0ICogY3JlYXRlZCB3aGlsZSB0aGUgcXVldWVzIHdlcmUgc3RvcHBlZCwgc28gaXQgbWlnaHQgc3RpbGwgYmVcbkBAIC0xNDc2LDcgKzE0ODQsNyBAQCBpbnQgaWVlZTgwMjExX3RkbHNfb3BlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHQvKiBmbHVzaCBhIHBvdGVudGlhbGx5IHF1ZXVlZCB0ZWFyZG93biBwYWNrZXQgKi9cbiBcdFx0aWVlZTgwMjExX2ZsdXNoX3F1ZXVlcyhsb2NhbCwgc2RhdGEsIGZhbHNlKTtcbiBcbi1cdFx0cmV0ID0gc3RhX2luZm9fZGVzdHJveV9hZGRyKHNkYXRhLCBwZWVyKTtcbitcdFx0cmV0ID0gX19zdGFfaW5mb19kZXN0cm95KHN0YSk7XG4gXG4gXHRcdGllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc2RhdGEsIE5VTEwpO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6MzcuMDkwMjY1MTg0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk2NDg0MjE1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBURExTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9tYWM4MDIxMS90ZGxzLmNgLiBUaGUgZ2lzdCBvZiBpdCBpcyBhZGRpbmcgYSBjaGVjayBpbiBhIGNvdXBsZSBvZiBmdW5jdGlvbnMsIGBpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrYCBhbmQgYGllZWU4MDIxMV90ZGxzX29wZXJgLCB0byBtYWtlIHN1cmUgdGhhdCB3ZSdyZSBvbmx5IGRlYWxpbmcgd2l0aCBzdGF0aW9ucyB0aGF0IGFyZSBhY3R1YWxseSBjb25maWd1cmVkIGFzIFRETFMgc3RhdGlvbnMuIFRoZSBjaGVjayBpbnZvbHZlcyB2ZXJpZnlpbmcgdGhlIGBzdGEtXHUwMDNlc3RhLnRkbHNgIGZsYWcuIE1ha2VzIHNlbnNlOyB5b3UgZG9uJ3Qgd2FudCB0aGVzZSBURExTLXNwZWNpZmljIGZ1bmN0aW9ucyBvcGVyYXRpbmcgb24gcmVndWxhciBzdGF0aW9ucy4gSXQncyBhYm91dCBlbnN1cmluZyB3ZSdyZSBvbmx5IGRlbGV0aW5nIGFuZCBvcGVyYXRpbmcgb24gdGhlIGNvcnJlY3QgdHlwZSBvZiBzdGF0aW9ucy5cblxuVG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dCwgSSB3YW50IHRvIHNlZSB3aGF0IGVsc2UgbWlnaHQgYmUgYWZmZWN0ZWQgYW5kIGhvdyBURExTIGlzIGNvbmZpZ3VyZWQgaW4gdGhpcyBtb2R1bGUsIHNvIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBJJ2xsIHVzZSBgZ3JlcHBlcmAgYW5kIHNlYXJjaCBpbiB0aGUgYG5ldC9tYWM4MDIxMS9NYWtlZmlsZWAgdG8gbG9jYXRlIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aGluIGB0ZGxzLmNgLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgd2lkZXIgaW1wYWN0IGFuZCBob3cgVERMUyBmdW5jdGlvbmFsaXR5IGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQuIEl0J3MgYWxsIGFib3V0IHZlcmlmeWluZyB0aGF0IHRoZSBwYXRjaCBpcyBhIHNhZmUgYWRkaXRpb24gYW5kIGRvZXNuJ3QgaW50cm9kdWNlIGFueSByZWdyZXNzaW9ucyBvciB1bmV4cGVjdGVkIGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTM4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgyLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6NDIuMDU1MTA5NzczWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MDIyMDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInRkbHNcXFxcLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9NYWtlZmlsZT01PW1hYzgwMjExLXkgOj0gXFxcXFxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTM0LVxcdHRyYWNlLm8gbWxtZS5vIFxcXFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6MzU6XFx0dGRscy5vIFxcXFxcXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzYtXFx0b2NiLm8gXFxcXFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDo0Mi4wOTkxMzU2ODFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjYyMjgyNzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIERlcGVuZGVuY3kgQ2hhaW4qKlxuXG5SaWdodCwgc28gYHRkbHMub2AuIEkga25vdyB0aGF0J3MgcGFydCBvZiB0aGUgYG1hYzgwMjExLXlgIG1vZHVsZSwgc28gaXQncyBhIHBpZWNlIG9mIHRoZSBsYXJnZXIgYG1hYzgwMjExYCBkcml2ZXIgZnJhbWV3b3JrLiBNeSBpbW1lZGlhdGUgZm9jdXMgaXMsIHdoYXQgY29uZmlnIG9wdGlvbiBhY3R1YWxseSBicmluZ3MgdGhpcyB3aG9sZSB0aGluZyB0byBsaWZlPyBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgdXBzdHJlYW0gY29uZmlndXJhdGlvbiBlbnRyeSB0aGF0IHRvZ2dsZXMgYG1hYzgwMjExYC4gVGhhdCdzIHRoZSBrZXk6IGZpZ3VyaW5nIG91dCAqd2hpY2gqIEtjb25maWcgb3B0aW9uIG5lZWRzIHRvIGJlIGVuYWJsZWQgdG8gaW5jbHVkZSBgbWFjODAyMTFgIGFuZCwgY29uc2VxdWVudGx5LCBgdGRscy5vYC4gVGhpcyB3aWxsIGhlbHAgZGV0ZXJtaW5lIHdoYXQgcHJlcmVxdWlzaXRlcyBhcmUgbmVlZGVkIGFuZCBob3cgYHRkbHMub2AgZ2V0cyBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuIEl0J3MgYSBmdW5kYW1lbnRhbCBzdGVwIGluIHVuZGVyc3RhbmRpbmcgdGhlIGRlcGVuZGVuY2llcyBhbmQgdGhlIG92ZXJhbGwgYnVpbGQgcHJvY2Vzcy4gTGV0IG1lIHF1aWNrbHkganVtcCBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCB0cmFjZSBpdCBiYWNrLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTMyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6NDUuMzYxNDIxMjA3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNjkzNTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hYzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01BQzgwMjExKSArPSBtYWM4MDIxMS5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTMtXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjQ6IyBtYWM4MDIxMSBvYmplY3RzXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjU6bWFjODAyMTEteSA6PSBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTYtXFx0bWFpbi5vIHN0YXR1cy5vIFxcXFxcXG4tLVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zOS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDA6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfTEVEUykgKz0gbGVkLm9cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGU6NDE6bWFjODAyMTEtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgKz0gXFxcXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS00Mi1cXHRkZWJ1Z2ZzLm8gXFxcXFxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ2LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo0NzptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9NRVNIKSArPSBcXFxcXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTQ4LVxcdG1lc2gubyBcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNTQtXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjU1Om1hYzgwMjExLSQoQ09ORklHX1BNKSArPSBwbS5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTU2LVxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlPTYyPXJjODAyMTFfbWluc3RyZWwtJChDT05GSUdfTUFDODAyMTFfREVCVUdGUykgKz0gXFxcXFxcbi0tXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTY0LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTo2NTptYWM4MDIxMS0kKENPTkZJR19NQUM4MDIxMV9SQ19NSU5TVFJFTCkgKz0gJChyYzgwMjExX21pbnN0cmVsLXkpXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTY2LVxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZT02Nz1vYmoteSArPSB0ZXN0cy9cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtNjgtXFxubmV0L21hYzgwMjExL01ha2VmaWxlOjY5Om1hYzgwMjExLXkgKz0gd2JyZi5vXFxubmV0L21hYzgwMjExL01ha2VmaWxlLTcwLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDo0NS40MDUxMjA0OTRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjAxODQwNzkzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgZGVsaXZlcmVkIGluIGZpcnN0IHBlcnNvbjpcblxuKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgZmlyc3QgdGhpbmcgdGhhdCBqdW1wcyBvdXQgaXMgdGhlIGFic29sdXRlIG5lY2Vzc2l0eSBvZiBgQ09ORklHX01BQzgwMjExYC4gVGhhdCdzIHRoZSBiYXNlbGluZSwgdGhlIGZvdW5kYXRpb24uIEkgbmVlZCB0aGF0IGVuYWJsZWQsIG5vIHF1ZXN0aW9uLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayBmb3IgKm90aGVyKiByZWxldmFudCBjb25maWd1cmF0aW9ucy4gTXkgbWluZCBpbW1lZGlhdGVseSBnb2VzIHRvIHRoZSBwb3RlbnRpYWwgZm9yIGRlcGVuZGVuY2llcyB3aXRoaW4gdGhlIGBuZXQvbWFjODAyMTEvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHdoZXJlIHRoZSBncmFudWxhciBkZXRhaWxzIGFuZCBjb25kaXRpb25hbCBidWlsZCBzZXR0aW5ncyBhcmUgbGlrZWx5IGRlZmluZWQuIEkgbmVlZCB0byBkaXZlIGludG8gdGhhdCBLY29uZmlnIGZpbGUgYW5kIHNlZSB3aGF0IG90aGVyIGtub2JzIGFuZCBzd2l0Y2hlcyBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIsIGdpdmVuIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZS4gSSBhbnRpY2lwYXRlIHRoZXJlIHdpbGwgYmUgb3RoZXIgZGVwZW5kZW50IHNldHRpbmdzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDEyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6NDkuMDA2OTYyODY3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNDc1ODU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xMSBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxMSlcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOT1pZiBNQUM4MDIxMSAhPSBuXFxubmV0L21hYzgwMjExL0tjb25maWctMjAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjE6Y29uZmlnIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyLVxcdGJvb2xcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMy1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDpjb25maWcgTUFDODAyMTFfUkNfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTQwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQxOmNvbmZpZyBNQUM4MDIxMV9SQ19ERUZBVUxUX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDItXFx0Ym9vbCBcXFwiTWluc3RyZWxcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz00OD1lbmRjaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo1MDpjb25maWcgTUFDODAyMTFfUkNfREVGQVVMVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUxLVxcdHN0cmluZ1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctNTktXFxubmV0L21hYzgwMjExL0tjb25maWc6NjA6Y29uZmlnIE1BQzgwMjExX0tVTklUX1RFU1RcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02MS1cXHR0cmlzdGF0ZSBcXFwiS1VuaXQgdGVzdHMgZm9yIG1hYzgwMjExXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy02OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MDpjb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTc4LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjc5OmNvbmZpZyBNQUM4MDIxMV9MRURTXFxubmV0L21hYzgwMjExL0tjb25maWctODAtXFx0Ym9vbCBcXFwiRW5hYmxlIExFRCB0cmlnZ2Vyc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjg4OmNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctOTYtXFxubmV0L21hYzgwMjExL0tjb25maWc6OTc6Y29uZmlnIE1BQzgwMjExX01FU1NBR0VfVFJBQ0lOR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTk4LVxcdGJvb2wgXFxcIlRyYWNlIGFsbCBtYWM4MDIxMSBkZWJ1ZyBtZXNzYWdlc1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEwOS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTA6bWVudWNvbmZpZyBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTExLVxcdGJvb2wgXFxcIlNlbGVjdCBtYWM4MDIxMSBkZWJ1Z2dpbmcgZmVhdHVyZXNcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTUtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE2OmNvbmZpZyBNQUM4MDIxMV9OT0lOTElORVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExNy1cXHRib29sIFxcXCJEbyBub3QgaW5saW5lIFRYL1JYIGhhbmRsZXJzXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTMxLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzMjpjb25maWcgTUFDODAyMTFfVkVSQk9TRV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTEzMy1cXHRib29sIFxcXCJWZXJib3NlIGRlYnVnZ2luZyBvdXRwdXRcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNDItXFxubmV0L21hYzgwMjExL0tjb25maWc6MTQzOmNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1My1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNTQ6Y29uZmlnIE1BQzgwMjExX1NUQV9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1NS1cXHRib29sIFxcXCJWZXJib3NlIHN0YXRpb24gZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTYyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2Mzpjb25maWcgTUFDODAyMTFfSFRfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiVmVyYm9zZSBIVCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc1OmNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTg1LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE4Njpjb25maWcgTUFDODAyMTFfSUJTU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4Ny1cXHRib29sIFxcXCJWZXJib3NlIElCU1MgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMTk2LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5Nzpjb25maWcgTUFDODAyMTFfUFNfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xOTgtXFx0Ym9vbCBcXFwiVmVyYm9zZSBwb3dlcnNhdmUgbW9kZSBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDgtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjA5OmNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjEtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjIyOmNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMzQtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM1OmNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0Ny1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNDg6Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1OC1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTk6Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjktXFxubmV0L21hYzgwMjExL0tjb25maWc6MjcwOmNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjgwLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MTpjb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMjkyLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5Mzpjb25maWcgTUFDODAyMTFfREVCVUdfQ09VTlRFUlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXh0cmEgc3RhdGlzdGljcyBmb3IgVFgvUlggZGVidWdnaW5nXFxcIlxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWctMzA3LVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjMwODpjb25maWcgTUFDODAyMTFfU1RBX0hBU0hfTUFYX1NJWkVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMDktXFx0aW50IFxcXCJTdGF0aW9uIGhhc2ggdGFibGUgbWF4aW11bSBzaXplXFxcIiBpZiBNQUM4MDIxMV9ERUJVR19NRU5VXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU0OjQ5LjA0OTQ0MjA2NFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNzU0MzU4OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNQUM4MDIxMSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb25maWd1cmF0aW9uLCBhbmQgaXQgc2VlbXMgbGlrZSBgTUFDODAyMTFgIGlzIHRoZSBjb3JlIG9mIHRoaXMuIEhvbGQgb24sIGlzbid0IGBNQUM4MDIxMWAgYnVpbHQgb24gYENGRzgwMjExYD8gSSBndWVzcyBpdCBkb2Vzbid0IG1hdHRlciwgYE1BQzgwMjExYCBpdHNlbGYgaXMgc3VmZmljaWVudCBmb3IgdGhlIHByaW1hcnkgY29uZmlnLiBOb3csIEkgd2FudCB0byBjb25maXJtIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgaW1wb3J0YW50IGNvbmZpZ3MgSSBtaWdodCBiZSBvdmVybG9va2luZy4gVGltZSB0byBkaWcgZGVlcGVyLlxuXG5BbHJpZ2h0LCBsb29rcyBsaWtlIHRoZSBjb2RlIHRoYXQgaGFzIGJlZW4gbW9kaWZpZWQgaXMgc3BlY2lmaWNhbGx5IHdpdGhpbiBgbmV0L21hYzgwMjExL3RkbHMuY2AuIEludGVyZXN0aW5nLiBUaGUgZnVuY3Rpb25zIHRoYXQgYXJlIHJlbGV2YW50IGhlcmUgc2VlbSB0byBiZSBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGFyZSBiZWluZyB1c2VkLCB0aGVpciBjYWxsIGdyYXBocywgYW5kIGlmIHRoZXJlIGFyZSBhbnkgaW5kaXJlY3QgZGVwZW5kZW5jaWVzIEkgc2hvdWxkIGJlIGF3YXJlIG9mLiBJIG5lZWQgdG8gYmUgc3VyZSB0aGVzZSBhcmUgcmVhY2hhYmxlIGFuZCBhc3Nlc3MgdGhlaXIgaW1wYWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NDI0LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU0OjUzLjMyNDg3OTgyMVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM1ODAyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oPTI5MTg9aW50IGllZWU4MDIxMV90ZGxzX29wZXIoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTE5LVxcdFxcdFxcdGNvbnN0IHU4ICpwZWVyLCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3Blcik7XFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmg6MjkyMDp2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKTtcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTIxLWludCBpZWVlODAyMTFfdGRsc19jaGFubmVsX3N3aXRjaChzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxubmV0L21hYzgwMjExL21sbWUuYz05NDQ2PXZvaWQgaWVlZTgwMjExX3N0YV9zZXR1cF9zZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSlcXG4tLVxcbm5ldC9tYWM4MDIxMS9tbG1lLmMtOTQ1NS1cXHR3aXBoeV9kZWxheWVkX3dvcmtfaW5pdChcXHUwMDI2aWZtZ2QtXFx1MDAzZXRkbHNfcGVlcl9kZWxfd29yayxcXG5uZXQvbWFjODAyMTEvbWxtZS5jOjk0NTY6XFx0XFx0XFx0XFx0aWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29yayk7XFxubmV0L21hYzgwMjExL21sbWUuYy05NDU3LVxcdHdpcGh5X2hydGltZXJfd29ya19pbml0KFxcdTAwMjZpZm1nZC1cXHUwMDNlbWxfcmVjb25mX3dvcmssXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jLTIzLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmM6MjQ6dm9pZCBpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3aylcXG5uZXQvbWFjODAyMTEvdGRscy5jLTI1LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTQ6NTMuMzY4NDYyMzU4WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODQ3NDcyNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBhcyBpZiB0aGV5IHdlcmUgbXkgb3duIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipURExTIE9wZXJhdGlvbnMgXHUwMDI2IFJlZmFjdG9yaW5nIENvbnNpZGVyYXRpb25zKipcblxuQWxyaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGBpZWVlODAyMTFfdGRsc19vcGVyYCBmdW5jdGlvbiwgYW5kIGl0J3MgY2xlYXIgaXQncyB1bmRlcmdvbmUgc29tZSBjaGFuZ2VzLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byB1bmRlcnN0YW5kICpob3cqIGl0J3MgYmVlbiBtb2RpZmllZCwgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhvc2UgbW9kaWZpY2F0aW9ucy4gSSBjYW4gaW5mZXIgZnJvbSB0aGUgcGhyYXNpbmcgdGhhdCB0aGlzIGZ1bmN0aW9uLCBsaWtlbHkgcmVsYXRlZCB0byBUdW5uZWxlZCBEaXJlY3QgTGluayBTZXR1cCB3aXRoaW4gdGhlIDgwMi4xMSBmcmFtZXdvcmssIGlzIGEgZm9jYWwgcG9pbnQgb2YgcmVjZW50IHVwZGF0ZXMuIE15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoYXQga2luZCBvZiBhbHRlcmF0aW9ucyB3ZXJlIG1hZGUgYW5kIHdoYXQgZWZmZWN0IHRoZXNlIGhhdmUuIEkgbmVlZCB0byBrbm93OiBXYXMgaXQgYSBidWcgZml4PyBBbiBvcHRpbWl6YXRpb24/IEEgZmVhdHVyZSBhZGRpdGlvbj8gT3IgcGVyaGFwcywgYSByZWZhY3RvcmluZyBlZmZvcnQgdG8gaW1wcm92ZSBjb2RlIHJlYWRhYmlsaXR5IG9yIG1haW50YWluYWJpbGl0eT8gVGhlIHNwZWNpZmljIGRldGFpbHMgb2YgdGhlIGNoYW5nZXMgd2lsbCBkaWN0YXRlIG15IG5leHQgc3RlcHMsIHdoZXRoZXIgdGhhdOKAmXMgZm9jdXNlZCBhbmFseXNpcyBvZiBmdW5jdGlvbmFsIGNvcnJlY3RuZXNzIG9yIGZ1cnRoZXIgcmVzZWFyY2ggaW50byBkZXNpZ24gdHJhZGUtb2Zmcy4gVGhlIGNvbnRleHQgYXJvdW5kIHRoZSBtb2RpZmljYXRpb24gaXMgZ29pbmcgdG8gZHJpdmUgd2hldGhlciBteSBhbmFseXNpcyBpbnZvbHZlcyB0ZXN0aW5nIGFuZCB2YWxpZGF0aW9uLCBjb2RlIHJldmlld3MsIG9yIGRlc2lnbiBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczMjksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDo1Ni43NTMyMTI2NTZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNzY3Mjk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV90ZGxzX29wZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjExL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvY2ZnLmM9NTk5MT1jb25zdCBzdHJ1Y3QgY2ZnODAyMTFfb3BzIG1hYzgwMjExX2NvbmZpZ19vcHMgPSB7XFxuLS1cXG5uZXQvbWFjODAyMTEvY2ZnLmMtNjA2Mi1cXHQuc2V0X3Jla2V5X2RhdGEgPSBpZWVlODAyMTFfc2V0X3Jla2V5X2RhdGEsXFxubmV0L21hYzgwMjExL2NmZy5jOjYwNjM6XFx0LnRkbHNfb3BlciA9IGllZWU4MDIxMV90ZGxzX29wZXIsXFxubmV0L21hYzgwMjExL2NmZy5jLTYwNjQtXFx0LnRkbHNfbWdtdCA9IGllZWU4MDIxMV90ZGxzX21nbXQsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaD0yOTEzPWludCBpZWVlODAyMTFfdGRsc19tZ210KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaC0yOTE3LVxcdFxcdFxcdGNvbnN0IHU4ICpleHRyYV9pZXMsIHNpemVfdCBleHRyYV9pZXNfbGVuKTtcXG5uZXQvbWFjODAyMTEvaWVlZTgwMjExX2kuaDoyOTE4OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgtMjkxOS1cXHRcXHRcXHRjb25zdCB1OCAqcGVlciwgZW51bSBubDgwMjExX3RkbHNfb3BlcmF0aW9uIG9wZXIpO1xcbi0tXFxubmV0L21hYzgwMjExL3RkbHMuYz0xMzg2PWllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jLTE0MTYtXFxubmV0L21hYzgwMjExL3RkbHMuYzoxNDE3OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L21hYzgwMjExL3RkbHMuYy0xNDE4LVxcdFxcdFxcdGNvbnN0IHU4ICpwZWVyLCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3BlcilcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMC1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjE1MTE6dm9pZCBpZWVlODAyMTFfdGRsc19vcGVyX3JlcXVlc3Qoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgY29uc3QgdTggKnBlZXIsXFxubmV0L21hYzgwMjExL3RkbHMuYy0xNTEyLVxcdFxcdFxcdFxcdCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3BlcixcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUyNC19XFxubmV0L21hYzgwMjExL3RkbHMuYzoxNTI1OkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KTtcXG5uZXQvbWFjODAyMTEvdGRscy5jLTE1MjYtXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNDc9dm9pZCBpZWVlODAyMTFfdGVhcmRvd25fdGRsc19wZWVycyhzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2MS1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwNjI6XFx0XFx0aWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmLCBzdGEtXFx1MDAzZXN0YS5hZGRyLFxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2My1cXHRcXHRcXHRcXHRcXHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLCByZWFzb24sXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNjk9dm9pZCBpZWVlODAyMTFfdGRsc19oYW5kbGVfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4NS1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwODY6XFx0aWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmLCBwZWVyLFxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4Ny1cXHRcXHRcXHRcXHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NDo1Ni43OTU5ODY4MDNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjQ4MjEwNzE1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgSUVFRSA4MDIuMTEgVERMUyBPcGVyYXRpb25hbCBDb2RlIFBhdGgqKlxuXG5Pa2F5LCBzbyBgaWVlZTgwMjExX3RkbHNfb3BlcmAgaXMgZGVlcCBpbnNpZGUgYG1hYzgwMjExX2NvbmZpZ19vcHNgLiBUaGlzIG1lYW5zIGl0J3MgdWx0aW1hdGVseSBpbnZva2VkIGJ5IGBjZmc4MDIxMWAgdGhyb3VnaCB0aGUgYG5sODAyMTFgIG5ldGxpbmsgaW50ZXJmYWNlLCB3aGljaCBJIGtub3cgaW5zaWRlIGFuZCBvdXQuIFNwZWNpZmljYWxseSwgdGhlIGBOTDgwMjExX0NNRF9URExTX09QRVJgIG5ldGxpbmsgY29tbWFuZCBjYWxscyBgY2ZnODAyMTFfdGRsc19vcGVyYCwgd2hpY2ggaW4gdHVybiBoYW5kcyBpdCBvZmYgdG8gYHJkZXYtXHUwMDNlb3BzLVx1MDAzZXRkbHNfb3BlcmAuIFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZTsgdXNlciBzcGFjZSBjYW4gcmVhY2ggdGhpcyBmdW5jdGlvbmFsaXR5IHRocm91Z2ggbmV0bGluay4gQW5kIHRoYXQgZGVsYXllZCB3b3JrIGZ1bmN0aW9uLCBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AsIGlzIGFsc28gYWNjZXNzaWJsZSB0aGF0IHdheS5cblxuVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBpcyBhYm91dCBmaXhpbmcgYSBidWcsIHNwZWNpZmljYWxseSBhIHNpdHVhdGlvbiB3aGVyZSBlaXRoZXIgYHN0YV9pbmZvX2Rlc3Ryb3lfYWRkcmAgb3IgYF9fc3RhX2luZm9fZGVzdHJveWAgZ2V0cyBjYWxsZWQgb24gYSBzdGF0aW9uIHRoYXQgKm1pZ2h0KiBub3QgYmUgYSBURExTIHN0YXRpb24sIG9yIGV2ZW4gYSBzdGF0aW9uIHRoYXQgZG9lc24ndCBleGlzdCwgd2hpY2ggbGVhZHMgdG8gcHJvYmxlbXMuIEl0J3MgYSBmdW5jdGlvbmFsIGZpeCwgbm90IGEgcGVyZm9ybWFuY2UgdHdlYWssIGFuZCBpdCdzIHByZXZlbnRpbmcgcG90ZW50aWFsIGNyYXNoZXMgb3IgbWVtb3J5IGNvcnJ1cHRpb24uXG5cbkkgd29uZGVyIGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMga2VybmVsIGNvbmZpZ3MgbmVlZGVkIHRvIGVuYWJsZSBURExTIGZ1bmN0aW9uYWxpdHkuIExldCBtZSBxdWlja2x5IGNoZWNrIGBuZXQvbWFjODAyMTEvdGRscy5jYCB0byBzZWUgaWYgdGhlcmUncyBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24uIEhtbSwgaXQgc2VlbXMgdGhhdCBgdGRscy5vYCBpcyBhbHdheXMgY29tcGlsZWQgaWYgYE1BQzgwMjExYCBpcyBlbmFibGVkLiBMZXQncyBtYWtlIHN1cmUgSSBkaWRuJ3QgbWlzcyBzb21ldGhpbmcgaW4gdGhlIGBuZXQvbWFjODAyMTEvTWFrZWZpbGVgLiBKdXN0IGEgcXVpY2sgcmV2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjo4Njk2LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjkyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjAzLjI3ODA5NjMyOVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI3OTc0NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGRsc1xcXFwub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL01ha2VmaWxlPTU9bWFjODAyMTEteSA6PSBcXFxcXFxuLS1cXG5uZXQvbWFjODAyMTEvTWFrZWZpbGUtMzQtXFx0dHJhY2UubyBtbG1lLm8gXFxcXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZTozNTpcXHR0ZGxzLm8gXFxcXFxcbm5ldC9tYWM4MDIxMS9NYWtlZmlsZS0zNi1cXHRvY2IubyBcXFxcXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjAzLjMyMDg5NzYzNloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDAzNDA0OTg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBXaXJlbGVzcyBNb2R1bGUgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIEkndmUgY29uZmlybWVkIHRoYXQgdGhlIGB0ZGxzLm9gIG9iamVjdCBmaWxlIGlzIGludHJpbnNpY2FsbHkgbGlua2VkIGludG8gYG1hYzgwMjExLm9gIGR1cmluZyB0aGUgYnVpbGQgcHJvY2Vzcy4gVGhhdCBzaW1wbGlmaWVzIHRoaW5nczsgZXNzZW50aWFsbHksIGBNQUM4MDIxMWAgaXRzZWxmIGlzIHRoZSBvbmx5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIEkgbmVlZCB0byBjb25zaWRlciBhdCB0aGlzIGxldmVsLiBObyBuZWVkIHRvIHdvcnJ5IGFib3V0IGB0ZGxzYCBhcyBhIHNlcGFyYXRlIG1vZHVsZSwgaXQncyBiYWtlZCBpbi5cblxuQnV0Li4uIGEgcXVpY2sgcmVjYWxsIGNoZWNrIGZsYWdzIHRoYXQgYE1BQzgwMjExYCBoYXMgYSBkZXBlbmRlbmN5IG9uIGBDRkc4MDIxMWAsIGRvZXNuJ3QgaXQ/IEdvdHRhIHJlbWVtYmVyIHRoZXNlIGludGVyZGVwZW5kZW5jaWVzLiBBbHJpZ2h0LCBiZXN0IHRvIGp1c3QgdmVyaWZ5IHRoYXQgYXNzdW1wdGlvbiBhbmQgdG8gY29uZmlybSBob3cgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgc2V0IHVwLiBMZXQgbWUgcXVpY2tseSBleGFtaW5lIHRoZSBgbmV0L21hYzgwMjExL0tjb25maWdgIGZpbGUgYW5kIGNvbmZpcm0gdGhlIGRlcGVuZGVuY3kgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6OTUwNSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjA4LjcyNDMwNjQ3NloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMyMDIzMDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUtXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTY9Y29tbWVudCBcXFwiQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMT1uXFxubmV0L21hYzgwMjExL0tjb25maWctMTgtXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0zMT1jaG9pY2VcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0zMi1cXHRwcm9tcHQgXFxcIkRlZmF1bHQgcmF0ZSBjb250cm9sIGFsZ29yaXRobVxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzozMzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0hBU19SQ1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTM0LVxcdGRlZmF1bHQgTUFDODAyMTFfUkNfREVGQVVMVF9NSU5TVFJFTFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NDE9Y29uZmlnIE1BQzgwMjExX1JDX0RFRkFVTFRfTUlOU1RSRUxcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy00Mi1cXHRib29sIFxcXCJNaW5zdHJlbFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo0MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX1JDX01JTlNUUkVMXFxubmV0L21hYzgwMjExL0tjb25maWctNDQtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9NTc9Y29tbWVudCBcXFwiU29tZSB3aXJlbGVzcyBkcml2ZXJzIHJlcXVpcmUgYSByYXRlIGNvbnRyb2wgYWxnb3JpdGhtXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjU4OlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgTUFDODAyMTFfSEFTX1JDPW5cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy01OS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz02MD1jb25maWcgTUFDODAyMTFfS1VOSVRfVEVTVFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgbWFjODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo2MjpcXHRkZXBlbmRzIG9uIEtVTklUXFxubmV0L21hYzgwMjExL0tjb25maWc6NjM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTY0LVxcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz03MD1jb25maWcgTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTcxLVxcdGJvb2wgXFxcIkVuYWJsZSBtYWM4MDIxMSBtZXNoIG5ldHdvcmtpbmcgc3VwcG9ydFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo3MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctNzMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9Nzk9Y29uZmlnIE1BQzgwMjExX0xFRFNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04MC1cXHRib29sIFxcXCJFbmFibGUgTEVEIHRyaWdnZXJzXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjgxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo4MjpcXHRkZXBlbmRzIG9uIExFRFNfQ0xBU1M9eSB8fCBMRURTX0NMQVNTPU1BQzgwMjExXFxubmV0L21hYzgwMjExL0tjb25maWctODMtXFx0c2VsZWN0IExFRFNfVFJJR0dFUlNcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTg4PWNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXFxubmV0L21hYzgwMjExL0tjb25maWctODktXFx0Ym9vbCBcXFwiRXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjkwOlxcdGRlcGVuZHMgb24gTUFDODAyMTEgXFx1MDAyNlxcdTAwMjYgQ0ZHODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTkxLVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTk3PWNvbmZpZyBNQUM4MDIxMV9NRVNTQUdFX1RSQUNJTkdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05OC1cXHRib29sIFxcXCJUcmFjZSBhbGwgbWFjODAyMTEgZGVidWcgbWVzc2FnZXNcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6OTk6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMSBcXHUwMDI2XFx1MDAyNiBUUkFDSU5HXFxubmV0L21hYzgwMjExL0tjb25maWctMTAwLVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTExMD1tZW51Y29uZmlnIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMTEtXFx0Ym9vbCBcXFwiU2VsZWN0IG1hYzgwMjExIGRlYnVnZ2luZyBmZWF0dXJlc1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxMTI6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExMy1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMTY9Y29uZmlnIE1BQzgwMjExX05PSU5MSU5FXFxubmV0L21hYzgwMjExL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkRvIG5vdCBpbmxpbmUgVFgvUlggaGFuZGxlcnNcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTE4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTExOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xMzI9Y29uZmlnIE1BQzgwMjExX1ZFUkJPU0VfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzMtXFx0Ym9vbCBcXFwiVmVyYm9zZSBkZWJ1Z2dpbmcgb3V0cHV0XFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjEzNDpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xMzUtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTQzPWNvbmZpZyBNQUM4MDIxMV9NTE1FX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ0LVxcdGJvb2wgXFxcIlZlcmJvc2UgbWFuYWdlZCBNTE1FIG91dHB1dFxcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoxNDU6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWctMTQ2LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTE1ND1jb25maWcgTUFDODAyMTFfU1RBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTU1LVxcdGJvb2wgXFxcIlZlcmJvc2Ugc3RhdGlvbiBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTU2OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE1Ny1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xNjM9Y29uZmlnIE1BQzgwMjExX0hUX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTY0LVxcdGJvb2wgXFxcIlZlcmJvc2UgSFQgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE2NTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNjYtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTc1PWNvbmZpZyBNQUM4MDIxMV9PQ0JfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzYtXFx0Ym9vbCBcXFwiVmVyYm9zZSBPQ0IgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE3NzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0xNzgtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTg2PWNvbmZpZyBNQUM4MDIxMV9JQlNTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTg3LVxcdGJvb2wgXFxcIlZlcmJvc2UgSUJTUyBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTg4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4OS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0xOTc9Y29uZmlnIE1BQzgwMjExX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMTk4LVxcdGJvb2wgXFxcIlZlcmJvc2UgcG93ZXJzYXZlIG1vZGUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjE5OTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMDAtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjA5PWNvbmZpZyBNQUM4MDIxMV9NUExfREVCVUdcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTAtXFx0Ym9vbCBcXFwiVmVyYm9zZSBtZXNoIHBlZXIgbGluayBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjExOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIxMjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMTMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjIyPWNvbmZpZyBNQUM4MDIxMV9NUEFUSF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIyMy1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggcGF0aCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjI0OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjIyNTpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yMjYtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjM1PWNvbmZpZyBNQUM4MDIxMV9NSFdNUF9ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzNi1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggSFdNUCByb3V0aW5nIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyMzc6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjM4OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTIzOS1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNDg9Y29uZmlnIE1BQzgwMjExX01FU0hfU1lOQ19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI0OS1cXHRib29sIFxcXCJWZXJib3NlIG1lc2ggc3luY2hyb25pemF0aW9uIGRlYnVnZ2luZ1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNTA6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR19NRU5VXFxubmV0L21hYzgwMjExL0tjb25maWc6MjUxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfTUVTSFxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI1Mi1cXHRoZWxwXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz0yNTk9Y29uZmlnIE1BQzgwMjExX01FU0hfQ1NBX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjYwLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBjaGFubmVsIHN3aXRjaCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MjYxOlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI2MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX01FU0hcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yNjMtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjcxLVxcdGJvb2wgXFxcIlZlcmJvc2UgbWVzaCBwb3dlcnNhdmUgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI3MjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzoyNzM6XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9NRVNIXFxubmV0L21hYzgwMjExL0tjb25maWctMjc0LVxcdGhlbHBcXG4tLVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnPTI4MT1jb25maWcgTUFDODAyMTFfVERMU19ERUJVR1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI4Mi1cXHRib29sIFxcXCJWZXJib3NlIFRETFMgZGVidWdnaW5nXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI4MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHX01FTlVcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODQtXFx0aGVscFxcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MjkzPWNvbmZpZyBNQUM4MDIxMV9ERUJVR19DT1VOVEVSU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTI5NC1cXHRib29sIFxcXCJFeHRyYSBzdGF0aXN0aWNzIGZvciBUWC9SWCBkZWJ1Z2dpbmdcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6Mjk1OlxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdfTUVOVVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjI5NjpcXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yOTctXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NTowOC43Njc1MTMwNjJaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2MzkzNjA2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBDb25maWd1cmF0aW9uIE11c2luZ3MqKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBgTUFDODAyMTFgIHNpdHVhdGlvbiwgYW5kIGl0J3MgaW1tZWRpYXRlbHkgYXBwYXJlbnQgdGhhdCBpdCdzIHRpZ2h0bHkgY291cGxlZCB3aXRoIGBDRkc4MDIxMWAuIFRoYXQgZGVwZW5kZW5jeSBpcyBjcml0aWNhbCwgc28gSSdsbCBiZSBzdXJlIHRvIGluY2x1ZGUgYm90aCBpbiBgRW5hYmxlQ29uZmlnc2AuIEJ1dCBoYW5nIG9uLi4uIGBNQUM4MDIxMWAgaXMgdHJpc3RhdGUsIG1lYW5pbmcgaXQgaGFzIHRoZSBmbGV4aWJpbGl0eSB0byBiZSBidWlsdCBhcyBhIG1vZHVsZS4gQ29uc2lkZXJpbmcgdGVzdGluZyBhbmQgZGVwbG95bWVudCwgdGhhdCBtb2R1bGFyaXR5IGNvdWxkIGJlIGJlbmVmaWNpYWwuXG5cbk5vdywgdG8gcHJvcGVybHkgZXhlcmNpc2UgYE1BQzgwMjExYCwgSSBzaG91bGQgZW5hYmxlIGl0LCBhbG9uZyB3aXRoIGBDRkc4MDIxMWAsIGZvciBhIHNvbGlkIGJhc2UuIEhtbSwgYW5kIHRvICphY3R1YWxseSogcHV0IGl0IHRocm91Z2ggaXRzIHBhY2VzLCBJJ2xsIG5lZWQgYSBkcml2ZXIuIEkgcmVtZW1iZXIgdGhhdCBTeXprYWxsZXIsIGluIGl0cyBmdXp6aW5nIHdvcmssIGxldmVyYWdlcyBgbWFjODAyMTFfaHdzaW1gIHRvIGVtdWxhdGUgdGhlIGhhcmR3YXJlIGVudmlyb25tZW50LiBBIGNyaXRpY2FsIHBpZWNlIGZvciBlbnN1cmluZyBhbGwgcGF0aHMgYXJlIGV4cGxvcmVkLiBJIHNob3VsZCBpbnZlc3RpZ2F0ZSB3aGV0aGVyIG9yIG5vdCBgbWFjODAyMTFfaHdzaW1gIGlzIHRydWx5IGVzc2VudGlhbCBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMjg3NiwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NToxMy40MzE0NTE5NjNaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjczMDk2OTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNQUM4MDIxMV9IV1NJTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjE6Y29uZmlnIE1BQzgwMjExX0hXU0lNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NToxMy41MDQ1NTkxMDhaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwMTE3MzY3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqTGV2ZXJhZ2luZyBNQUM4MDIxMV9IV1NJTSBmb3IgUm9idXN0IG1hYzgwMjExIEZ1enppbmcqKlxuXG5SaWdodCwgYE1BQzgwMjExX0hXU0lNYCDigJMgaXQncyBwcmFjdGljYWxseSAqZXNzZW50aWFsKiBmb3IgZnV6emluZyB0aGUgYG1hYzgwMjExYCBjb2RlLCBhbmQgSSdtIHJlYWxseSBrZWVuIHRvIHVzZSBpdC4gSSBrbm93IGl0J3MgYSBwb3dlcmZ1bCB0b29sIGZvciBnZW5lcmF0aW5nIHRlc3Qgc2NlbmFyaW9zLiBCZWZvcmUgZGl2aW5nIGluLCBob3dldmVyLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZSBhbGwgbXkgZHVja3MgaW4gYSByb3cuIEJlc3QgdG8gZmlyc3QgZXhhbWluZSB0aGUgZGVwZW5kZW5jaWVzLCBtYWtlIHN1cmUgZXZlcnl0aGluZydzIHNldCB1cCBjb3JyZWN0bHksIGFuZCB0aGF0IHRoZSBlbnZpcm9ubWVudCBpcyBmdWxseSBjb21wbGlhbnQuIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBvbiBhIGJyb2tlbiBidWlsZC4gSXTigJlzIGFsd2F5cyB0aGUgZmlyc3QgdGhpbmcgSSBkby4gSXQncyB0b28gZWFzeSB0byBsb3NlIHRpbWUgbGF0ZXIgdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgd2h5IHRoZSB0ZXN0cyBhcmVuJ3QgcnVubmluZyBhcyBleHBlY3RlZCwgd2hlbiBpdCdzIGp1c3QgYSBkZXBlbmRlbmN5IGlzc3VlLiBMZXTigJlzIGdldCB0aGF0IHNvcnRlZCBvdXQgdXBmcm9udC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTMzNjUsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NToxNi45MDU3MzQ3NjVaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNjY1ODM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZz0xPWNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MzpcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTQtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnPTE0PWNvbmZpZyBWSVJUX1dJRklcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctMTUtXFx0dHJpc3RhdGUgXFxcIldpZmkgd3JhcHBlciBmb3IgZXRoZXJuZXQgZHJpdmVyc1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTY6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0xNy1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjE2Ljk0ODQwNjYxMloiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1Mjc4NzEzNDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IENvbmZpZ3VyYXRpb24gRm9jdXMqKlxuXG5Pa2F5LCBzbyBJIHNlZSB0aGF0IGBNQUM4MDIxMV9IV1NJTWAgaGFzIGEgZGVwZW5kZW5jeSBvbiBgTUFDODAyMTFgLiBUaGF0IG1lYW5zIHdoZW4gSSBzZXQgdXAgbXkgY29uZmlndXJhdGlvbiwgYENGRzgwMjExYCwgYE1BQzgwMjExYCwgYW5kIGBNQUM4MDIxMV9IV1NJTWAgbmVlZCB0byBiZSBleHBsaWNpdGx5IGluY2x1ZGVkIGluIG15IGBFbmFibGVDb25maWdzYC4gVGhhdCBjb3ZlcnMgdGhlIGJhc2ljIHNldHVwLlxuXG5Ob3csIGxldCdzIGlkZW50aWZ5IHRoZSBzcGVjaWZpYyBmdW5jdGlvbnMgdGhhdCBhcmUgYmVpbmcgdG91Y2hlZCBieSB0aGlzIHBhdGNoLCBiZWNhdXNlIHRob3NlIGFyZSBnb2luZyB0byBiZSBteSBgRm9jdXNTeW1ib2xzYC4gSSBzZWUgYGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtgIGFuZCBgaWVlZTgwMjExX3RkbHNfb3BlcmAgYXJlIHRoZSBtb2RpZmllZCBmdW5jdGlvbnMuXG5cbkFyZSB0aGV5IHRoZSByaWdodCBjYW5kaWRhdGVzPyBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgbG9va3MgbGlrZSBhIHdvcmtxdWV1ZSBjYWxsYmFjaywgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYCBpcyBhIG5ldGxpbmsgY2FsbGJhY2sgYWNjZXNzZWQgdGhyb3VnaCBgY2ZnODAyMTFgLiBCb3RoIGFyZSBub24tc3RhdGljIGFuZCBhcmVuJ3QgaW5saW5lZCwgd2hpY2ggbWFrZXMgdGhlbSBsaWtlbHkgZW50cnkgcG9pbnRzLiBJIHNob3VsZCBjb25maXJtIHRoYXQgdGhleSBhcmUgZXhwb3J0ZWQgb3Igbm9uLXN0YXRpYy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM4NDMsIk91dHB1dFRva2VucyI6NjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTU6MjIuMjI3MTIyMThaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzMjAxODY3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmt8aWVlZTgwMjExX3RkbHNfb3BlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvdGRscy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxMS90ZGxzLmMtMjMtXFxubmV0L21hYzgwMjExL3RkbHMuYzoyNDp2b2lkIGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmsoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcGh5X3dvcmsgKndrKVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjUte1xcbi0tXFxubmV0L21hYzgwMjExL3RkbHMuYz0xMzg2PWllZTgwMjExX3RkbHNfcmVjYWxjX2h0X3Byb3RlY3Rpb24oc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jLTE0MTYtXFxubmV0L21hYzgwMjExL3RkbHMuYzoxNDE3OmludCBpZWVlODAyMTFfdGRsc19vcGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L21hYzgwMjExL3RkbHMuYy0xNDE4LVxcdFxcdFxcdGNvbnN0IHU4ICpwZWVyLCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3BlcilcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUxMC1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjE1MTE6dm9pZCBpZWVlODAyMTFfdGRsc19vcGVyX3JlcXVlc3Qoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgY29uc3QgdTggKnBlZXIsXFxubmV0L21hYzgwMjExL3RkbHMuYy0xNTEyLVxcdFxcdFxcdFxcdCBlbnVtIG5sODAyMTFfdGRsc19vcGVyYXRpb24gb3BlcixcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMTUyNC19XFxubmV0L21hYzgwMjExL3RkbHMuYzoxNTI1OkVYUE9SVF9TWU1CT0woaWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KTtcXG5uZXQvbWFjODAyMTEvdGRscy5jLTE1MjYtXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNDc9dm9pZCBpZWVlODAyMTFfdGVhcmRvd25fdGRsc19wZWVycyhzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfZGF0YSAqbGluaylcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2MS1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwNjI6XFx0XFx0aWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmLCBzdGEtXFx1MDAzZXN0YS5hZGRyLFxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA2My1cXHRcXHRcXHRcXHRcXHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLCByZWFzb24sXFxuLS1cXG5uZXQvbWFjODAyMTEvdGRscy5jPTIwNjk9dm9pZCBpZWVlODAyMTFfdGRsc19oYW5kbGVfZGlzY29ubmVjdChzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSxcXG4tLVxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4NS1cXG5uZXQvbWFjODAyMTEvdGRscy5jOjIwODY6XFx0aWVlZTgwMjExX3RkbHNfb3Blcl9yZXF1ZXN0KFxcdTAwMjZzZGF0YS1cXHUwMDNldmlmLCBwZWVyLFxcbm5ldC9tYWM4MDIxMS90ZGxzLmMtMjA4Ny1cXHRcXHRcXHRcXHQgICAgTkw4MDIxMV9URExTX1RFQVJET1dOLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwNzo1NToyMi4yNzAzMjg2ODdaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgxMTA3OTE2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqVERMUyBDb25maWd1cmF0aW9uIERlZXAgRGl2ZSoqXG5cblJpZ2h0LCBzbyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBkeW5hbWljIHNpdHVhdGlvbiwgdGhhdCdzIGNsZWFyLiBUaGUgaW5mb3JtYXRpb24gSSdtIHByb2Nlc3NpbmcgaGFzIHNob3duIG1lIHRoYXQgYGllZWU4MDIxMV90ZGxzX3BlZXJfZGVsX3dvcmtgIGFuZCBgaWVlZTgwMjExX3RkbHNfb3BlcmAgYXJlIGRlZmluaXRlbHkgc3Ryb25nIGNvbnRlbmRlcnMgZm9yIGluY2x1c2lvbiBpbiB0aGUgYEZvY3VzU3ltYm9sc2AgbGlzdC4gVGhvc2UgdHdvIGZ1bmN0aW9ucyBhcmUgcHJpbWUgbG9jYXRpb25zIGZvciBvYnNlcnZpbmcgdGhlIGNyaXRpY2FsIHBhdGggb2YgVERMUyBvcGVyYXRpb24gd2l0aGluIHRoaXMgc3lzdGVtLlxuXG5Ob3csIGJlZm9yZSBJIGNvbW1pdCwgSSBuZWVkIHRvIHRob3JvdWdobHkgdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uIGxhbmRzY2FwZS4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlcmUncyBhIGRlZGljYXRlZCBjb25maWd1cmF0aW9uIG9wdGlvbiwgc29tZXRoaW5nIGxpa2UgYENPTkZJR19NQUM4MDIxMV9URExTYCwgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBpbmZsdWVuY2UgdGhlIGJlaGF2aW9yIG9yIGF2YWlsYWJpbGl0eSBvZiBURExTIGZ1bmN0aW9uYWxpdHkuIEkgbmVlZCB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgb3IgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYXNwZWN0cyB0aGF0IGFyZSByZWxldmFudCBoZXJlLiBOZWVkIHRvIG1ha2Ugc3VyZSBJJ20gY2FwdHVyaW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlIGJlZm9yZSBtb3Zpbmcgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1MTQzLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTU6MjYuMDgxNDEwNDM2WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzE0NDAyNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNQUM4MDIxMV9URExTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tYWM4MDIxMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjExL0tjb25maWc9MjcwPWNvbmZpZyBNQUM4MDIxMV9NRVNIX1BTX0RFQlVHXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZy0yODAtXFxubmV0L21hYzgwMjExL0tjb25maWc6MjgxOmNvbmZpZyBNQUM4MDIxMV9URExTX0RFQlVHXFxubmV0L21hYzgwMjExL0tjb25maWctMjgyLVxcdGJvb2wgXFxcIlZlcmJvc2UgVERMUyBkZWJ1Z2dpbmdcXFwiXFxuLS1cXG5uZXQvbWFjODAyMTEvZGVidWcuaC03MC1cXG5uZXQvbWFjODAyMTEvZGVidWcuaDo3MTojaWZkZWYgQ09ORklHX01BQzgwMjExX1RETFNfREVCVUdcXG5uZXQvbWFjODAyMTEvZGVidWcuaDo3MjojZGVmaW5lIE1BQzgwMjExX1RETFNfREVCVUcgMVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oLTczLSNlbHNlXFxubmV0L21hYzgwMjExL2RlYnVnLmg6NzQ6I2RlZmluZSBNQUM4MDIxMV9URExTX0RFQlVHIDBcXG5uZXQvbWFjODAyMTEvZGVidWcuaC03NS0jZW5kaWZcXG4tLVxcbm5ldC9tYWM4MDIxMS9kZWJ1Zy5oPTEyNT1kbyB7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxubmV0L21hYzgwMjExL2RlYnVnLmgtMjMwLSNkZWZpbmUgdGRsc19kYmcoc2RhdGEsIGZtdCwgLi4uKVxcdFxcdFxcdFxcdFxcdFxcXFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaDoyMzE6XFx0X3NkYXRhX2RiZyhNQUM4MDIxMV9URExTX0RFQlVHLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5uZXQvbWFjODAyMTEvZGVidWcuaC0yMzItXFx0XFx0ICAgc2RhdGEsIGZtdCwgIyNfX1ZBX0FSR1NfXylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDc6NTU6MjYuMTI0NTU3NDQzWiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNDgxMTYxOTYzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlRETFMgQnVnIEZpeCBpbiBgbWFjODAyMTFgKipcblxuT2theSwgc28gdGhlcmUncyBubyBzZXBhcmF0ZSBgVERMU2AgbW9kdWxlLCBpdCdzIGFsbCBidWlsdCBpbnRvIGBtYWM4MDIxMWAsIGFzIGV4cGVjdGVkLiBMZXQncyBkaWcgaW50byB0aGlzIHBhdGNoLiBSaWdodCwgSSBzZWUgdGhlIGNvcmUgb2YgdGhlIGZpeCBpcyBpbiBgaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya2AgYW5kIGBpZWVlODAyMTFfdGRsc19vcGVyYC4gVGhlIG9yaWdpbmFsIGNvZGUsIGluIGJvdGggcGxhY2VzLCBuYWl2ZWx5IGNhbGxlZCBgc3RhX2luZm9fZGVzdHJveV9hZGRyYCBvciBgX19zdGFfaW5mb19kZXN0cm95YCB3aXRob3V0IGZpcnN0IHZlcmlmeWluZyB0aGUgc3RhdGlvbiAoYHN0YWApIGFjdHVhbGx5IGV4aXN0ZWQgYW5kIHdhcyBhIFRETFMgc3RhdGlvbiAoYHN0YS1cdTAwM2VzdGEudGRsc2ApLiBUaGlzIGNsZWFybHkgbGVhdmVzIGEgcG90ZW50aWFsIGZvciBhIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSwgb3Igb3RoZXIgbWVtb3J5IGNvcnJ1cHRpb24sIGlmIHRoZSByZWZlcmVuY2VkIHN0YXRpb24gaXNuJ3Qgc2V0IHVwIGFzIHJlcXVpcmVkLiBUaGF0J3MgYSBjbGFzc2ljIHJhY2UgY29uZGl0aW9uIGlzc3VlLiBUaGUgcGF0Y2ggY29ycmVjdGx5IGFkZHMgdGhlIGNoZWNrcyB1c2luZyBgc3RhX2luZm9fZ2V0YCwgYW5kIG9ubHkgY2FsbHMgdGhlIGRlc3Ryb3kgZnVuY3Rpb25zIHdoZW4gdGhlIGNoZWNrcyBwYXNzLlxuXG5GdW5jdGlvbmFsbHksIHRoaXMgcGF0Y2ggbG9va3Mgc291bmQuIEl0J3MgYSBzdHJhaWdodC1mb3J3YXJkIGJ1ZyBmaXguIEl0IHNlZW1zIGxpa2UgdGhlIGJ1ZyBjYW4gaGFwcGVuIHdoZW4gYSBwZWVyIGlzIGJlaW5nIHJlbW92ZWQuIFRoZSBjb2RlIGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSB0aGUgY2ZnODAyMTEgbmV0bGluayBpbnRlcmZhY2UuIFRoZSBwYXRjaCBhZGRyZXNzZXMgdGhpcyBieSBhZGRpbmcgY2hlY2tzIHRvIGVuc3VyZSB0aGF0IHRoZSBgc3RhYCBleGlzdHMsIGFuZCBhbHNvIHRoYXQgaXQgaXMgYWN0dWFsbHkgYSBURExTIHN0YXRpb24sIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBzdGF0aW9uIGRlc3RydWN0aW9uLlxuXG5UaGlzIGNoYW5nZSBpcyBjcml0aWNhbCBmb3Igc3RhYmlsaXR5IGluIFRETFMgb3BlcmF0aW9uIHdpdGhpbiBgbWFjODAyMTFgLiBTaW5jZSB0aGlzIGlzIGEgYnVnIGZpeCwgYW5kIGl0J3MgcmVhY2hhYmxlIHZpYSBuZXRsaW5rIGNhbGxzIHRocm91Z2ggdGhlIGBjZmc4MDIxMWAgaW50ZXJmYWNlLCBJIHRoaW5rIGZ1enppbmcgdGhpcyBhcmVhIGlzIGVzc2VudGlhbC4gR2l2ZW4gdGhlIGBNQUM4MDIxMV9IV1NJTWAgY29uZmlnLCB0ZXN0aW5nIHdpdGggaGFyZHdhcmUgc2ltdWxhdGlvbiBpcyBnb2luZyB0byBiZSB0aGUgbW9zdCBlZmZpY2llbnQgYW5kIHJvYnVzdCBtZXRob2QgdG8gZGV0ZWN0IGFueSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdGhpcyBwYXRjaC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU4NzAsIk91dHB1dFRva2VucyI6MTg4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODc3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA3OjU1OjM3LjYwNTcyMTU0NloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3MDMwNTY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaWVlZTgwMjExX3RkbHNfcGVlcl9kZWxfd29ya1wiLFxuICAgIFwiaWVlZTgwMjExX3RkbHNfb3BlclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIG1hYzgwMjExIFRETFMgKFR1bm5lbGVkIERpcmVjdCBMaW5rIFNldHVwKSBvcGVyYXRpb25zIGJ5IHZlcmlmeWluZyB0aGF0IGEgc3RhdGlvbiBleGlzdHMgYW5kIGlzIGFjdHVhbGx5IGEgVERMUyBzdGF0aW9uIGJlZm9yZSBkZXN0cm95aW5nIGl0LiBUaGlzIHByZXZlbnRzIHBvdGVudGlhbCBjcmFzaGVzIG9yIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gaGFuZGxpbmcgVERMUyBwZWVyIGRlbGV0aW9uIG9yIGxpbmsgZGlzYWJsZSBvcGVyYXRpb25zLiBUaGUgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIG5ldGxpbmsgKGNmZzgwMjExKSBhbmQgY2FuIGJlIHRlc3RlZCB1c2luZyB0aGUgbWFjODAyMTFfaHdzaW0gZHJpdmVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJpZWVlODAyMTFfdGRsc19wZWVyX2RlbF93b3JrXCIsXG4gICAgXCJpZWVlODAyMTFfdGRsc19vcGVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gbWFjODAyMTEgVERMUyAoVHVubmVsZWQgRGlyZWN0IExpbmsgU2V0dXApIG9wZXJhdGlvbnMgYnkgdmVyaWZ5aW5nIHRoYXQgYSBzdGF0aW9uIGV4aXN0cyBhbmQgaXMgYWN0dWFsbHkgYSBURExTIHN0YXRpb24gYmVmb3JlIGRlc3Ryb3lpbmcgaXQuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIGNyYXNoZXMgb3IgbWVtb3J5IGNvcnJ1cHRpb24gd2hlbiBoYW5kbGluZyBURExTIHBlZXIgZGVsZXRpb24gb3IgbGluayBkaXNhYmxlIG9wZXJhdGlvbnMuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgbmV0bGluayAoY2ZnODAyMTEpIGFuZCBjYW4gYmUgdGVzdGVkIHVzaW5nIHRoZSBtYWM4MDIxMV9od3NpbSBkcml2ZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowxxz7j[1] Phase: Succeeded StartedAt: 2026-08-06 07:55:49 +0000 UTC FinishedAt: 2026-08-06 07:55:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-06 07:55:49 +0000 UTC FinishedAt: 2026-08-06 07:55:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2] Phase: Succeeded StartedAt: 2026-08-06 07:55:49 +0000 UTC FinishedAt: 2026-08-06 11:45:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 07:55:49 +0000 UTC FinishedAt: 2026-08-06 11:45:52 +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":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 07:55:49 +0000 UTC FinishedAt: 2026-08-06 07:55:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 07:55:49 +0000 UTC FinishedAt: 2026-08-06 07:55:53 +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":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-workflowxxz7j/series-workflowxxz7j-convert-artifact-336916650/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 07:55:59 +0000 UTC FinishedAt: 2026-08-06 08:12:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 07:55:59 +0000 UTC FinishedAt: 2026-08-06 08:12:52 +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:*455ba310-ad75-416b-8331-29c91a0924b7,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-workflowxxz7j/series-workflowxxz7j-convert-artifact-336916650/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": "4a79dcfd-a783-439d-bb98-63fb8f16e1d4", "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-workflowxxz7j/series-workflowxxz7j-build-action-2019191320/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 07:55:59 +0000 UTC FinishedAt: 2026-08-06 08:12:41 +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:*455ba310-ad75-416b-8331-29c91a0924b7,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-workflowxxz7j/series-workflowxxz7j-convert-artifact-336916650/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": "4a79dcfd-a783-439d-bb98-63fb8f16e1d4", "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-workflowxxz7j/series-workflowxxz7j-build-action-2019191320/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:12:52 +0000 UTC FinishedAt: 2026-08-06 08:12:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:12:52 +0000 UTC FinishedAt: 2026-08-06 08:12:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:12:52 +0000 UTC FinishedAt: 2026-08-06 08:13:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:12:52 +0000 UTC FinishedAt: 2026-08-06 08:12:59 +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":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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-workflowxxz7j/series-workflowxxz7j-convert-artifact-2821675973/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:13:03 +0000 UTC FinishedAt: 2026-08-06 08:14:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:13:04 +0000 UTC FinishedAt: 2026-08-06 08:14:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*4a79dcfd-a783-439d-bb98-63fb8f16e1d4,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-workflowxxz7j/series-workflowxxz7j-build-action-2019191320/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-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:14:59 +0000 UTC FinishedAt: 2026-08-06 08:15:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:15:00 +0000 UTC FinishedAt: 2026-08-06 08:15:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:15:00 +0000 UTC FinishedAt: 2026-08-06 08:37:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:15:00 +0000 UTC FinishedAt: 2026-08-06 08:37:51 +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:*455ba310-ad75-416b-8331-29c91a0924b7,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-workflowxxz7j/series-workflowxxz7j-convert-artifact-2821675973/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": "7f60cf6c-6909-46ba-accc-c130f5f2fc3c", "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-workflowxxz7j/series-workflowxxz7j-build-action-368754705/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:15:00 +0000 UTC FinishedAt: 2026-08-06 08:37:36 +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:*455ba310-ad75-416b-8331-29c91a0924b7,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-workflowxxz7j/series-workflowxxz7j-convert-artifact-2821675973/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": "7f60cf6c-6909-46ba-accc-c130f5f2fc3c", "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-workflowxxz7j/series-workflowxxz7j-build-action-368754705/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:37:51 +0000 UTC FinishedAt: 2026-08-06 08:37:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:37:51 +0000 UTC FinishedAt: 2026-08-06 08:37:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:37:51 +0000 UTC FinishedAt: 2026-08-06 08:40:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:37:51 +0000 UTC FinishedAt: 2026-08-06 08:40:18 +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:*7f60cf6c-6909-46ba-accc-c130f5f2fc3c,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-workflowxxz7j/series-workflowxxz7j-build-action-368754705/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-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:40:43 +0000 UTC FinishedAt: 2026-08-06 08:40:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:40:44 +0000 UTC FinishedAt: 2026-08-06 11:45:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:40:44 +0000 UTC FinishedAt: 2026-08-06 11:45:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"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:*4a79dcfd-a783-439d-bb98-63fb8f16e1d4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7f60cf6c-6909-46ba-accc-c130f5f2fc3c,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-workflowxxz7j/series-workflowxxz7j-build-action-2019191320/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-workflowxxz7j/series-workflowxxz7j-build-action-368754705/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:40:44 +0000 UTC FinishedAt: 2026-08-06 08:41:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:40:44 +0000 UTC FinishedAt: 2026-08-06 08:40: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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"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-workflowxxz7j/series-workflowxxz7j-convert-artifact-3736640842/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:40:44 +0000 UTC FinishedAt: 2026-08-06 08:40:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:40:45 +0000 UTC FinishedAt: 2026-08-06 08:40:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:41:14 +0000 UTC FinishedAt: 2026-08-06 11:45:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxxz7j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ieee80211_tdls_peer_del_work","ieee80211_tdls_oper"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"14c6b1ed-0b11-4cff-8012-587dafa9c60d","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 08:41:14 +0000 UTC FinishedAt: 2026-08-06 11:45:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*4a79dcfd-a783-439d-bb98-63fb8f16e1d4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7f60cf6c-6909-46ba-accc-c130f5f2fc3c,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-workflowxxz7j/series-workflowxxz7j-build-action-2019191320/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-workflowxxz7j/series-workflowxxz7j-build-action-368754705/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-workflowxxz7j/series-workflowxxz7j-convert-artifact-3736640842/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,}