Name: series-workflowpgv48 Phase: Succeeded StartedAt: 2026-07-27 03:03:55 +0000 UTC FinishedAt: 2026-07-27 05:43:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[0] Phase: Succeeded StartedAt: 2026-07-27 03:03:55 +0000 UTC FinishedAt: 2026-07-27 03:41:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[0].run-triage Phase: Succeeded StartedAt: 2026-07-27 03:03:55 +0000 UTC FinishedAt: 2026-07-27 03:41:53 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "04026c998c24ac47eb76886b9790c5710b603eb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "USB_LAN78XX", "USB_NET_AX8817X" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "04026c998c24ac47eb76886b9790c5710b603eb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "USB_LAN78XX", "USB_NET_AX8817X" ], "series_id": "9a0b79fb-7b85-4c38-9cdb-1de134b76230" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "stmmac_open", "phylink_connect_phy", "phylink_of_phy_connect", "phylink_fwnode_phy_connect", "phylink_expects_phy" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7VVNCX0xBTjc4WFgmIzM0OywKICAgICYjMzQ7VVNCX05FVF9BWDg4MTdYJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7cGh5bGlua19jb25uZWN0X3BoeSYjMzQ7LAogICAgJiMzNDtwaHlsaW5rX29mX3BoeV9jb25uZWN0JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfZXhwZWN0c19waHkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGJ5IHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIGVhcmx5IGlmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHBoeWxpbmsgY29yZSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIFRoZSBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHZpYSB2YXJpb3VzIGVtdWxhdGVkIGRldmljZXMsIGluY2x1ZGluZyBVU0IgZXRoZXJuZXQgYWRhcHRlcnMgKGUuZy4sIExBTjc4WFgsIEFYODgxN1gpIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBEZXNpZ25XYXJlIE1BQyAvIHN0bW1hYykuIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzZmE0M2JlYmIwMWFhNDFjMTA1ZjVmN2M1ZTNkMDFhOGZmMjhjMGU1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjcgMDM6Mzk6MzYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbmluZGV4IDBkZTRiYzk0OTkxMzg2Li4yYjJkMjZhMjk2MTI4NCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC0xMzI4LDYgJiM0MzsxMzI4LDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHRcdGludCBhZGRyID0gcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXBoeV9hZGRyO1xuIFx0XHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2O1xuIFxuJiM0MztcdFx0LyogSWYgYSBjdXN0b20gUENTIGlzIGluIHVzZSwgbm8gUEhZIGlzIG5lZWRlZCAqL1xuJiM0MztcdFx0aWYgKHByaXYtXHUwMDNlaHctXHUwMDNlcGh5bGlua19wY3MpXG4mIzQzO1x0XHRcdHJldHVybiAwO1xuJiM0MztcbiBcdFx0aWYgKGFkZHIgXHUwMDNjIDApIHtcbiBcdFx0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcJiMzNDtubyBwaHkgZm91bmRcXG5cJiMzNDspO1xuIFx0XHRcdHJldHVybiAtRU5PREVWO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5pbmRleCA1OWRmZTM1YWZhNTRmYy4uZmQ0ZTgwZWVlZGE3M2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5AQCAtMTk2NCw5ICYjNDM7MTk2NCw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfZGVzdHJveSk7XG4gICovXG4gYm9vbCBwaHlsaW5rX2V4cGVjdHNfcGh5KHN0cnVjdCBwaHlsaW5rICpwbClcbiB7XG4tXHRpZiAocGwtXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQgfHxcbi1cdCAgICAocGwtXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fSU5CQU5EIFx1MDAyNlx1MDAyNlxuLVx0ICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3oocGwtXHUwMDNlbGlua19pbnRlcmZhY2UpKSlcbiYjNDM7XHRpZiAocGwtXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcdHJldHVybiB0cnVlO1xuIH1cbkBAIC0yMjA1LDkgJiM0MzsyMjAzLDcgQEAgc3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxuIHtcbiBcdHUzMiBmbGFncyA9IDA7XG4gXG4tXHRpZiAoV0FSTl9PTihwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fFxuLVx0XHQgICAgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCBcdTAwMjZcdTAwMjZcbi1cdFx0ICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3ooaW50ZXJmYWNlKSBcdTAwMjZcdTAwMjYgIXBsLVx1MDAzZXNmcF9idXMpKSlcbiYjNDM7XHRpZiAoV0FSTl9PTihwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCkpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuIFx0aWYgKHBsLVx1MDAzZXBoeWRldilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzozOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtVU0JfTEFONzhYWCYjMzQ7LAogICAgJiMzNDtVU0JfTkVUX0FYODgxN1gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtwaHlsaW5rX2Nvbm5lY3RfcGh5JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19leHBlY3RzX3BoeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYnkgcmVtb3ZpbmcgdGhlIGBNTE9fQU5fSU5CQU5EYCBhbmQgYHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzemAgY2hlY2tzLiBJdCBhbHNvIGFkZHMgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCB0byByZXR1cm4gZWFybHkgaWYgYSBjdXN0b20gUENTIGlzIGluIHVzZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgcGh5bGluayBjb3JlIGFuZCB0aGUgc3RtbWFjIGRyaXZlci4gVGhlIHBoeWxpbmsgY29yZSBpcyByZWFjaGFibGUgdmlhIHZhcmlvdXMgZW11bGF0ZWQgZGV2aWNlcywgaW5jbHVkaW5nIFVTQiBldGhlcm5ldCBhZGFwdGVycyAoZS5nLiwgTEFONzhYWCwgQVg4ODE3WCkgYW5kIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIERlc2lnbldhcmUgTUFDIC8gc3RtbWFjKS4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDNmYTQzYmViYjAxYWE0MWMxMDVmNWY3YzVlM2QwMWE4ZmYyOGMwZTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyNyAwMzozOTozNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IDBkZTRiYzk0OTkxMzg2Li4yYjJkMjZhMjk2MTI4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCkBAIC0xMzI4LDYgJiM0MzsxMzI4LDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWludCBhZGRyID0gcHJpdi0mZ3Q7cGxhdC0mZ3Q7cGh5X2FkZHI7CiAJCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXY7CiAKJiM0MzsJCS8qIElmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UsIG5vIFBIWSBpcyBuZWVkZWQgKi8KJiM0MzsJCWlmIChwcml2LSZndDtody0mZ3Q7cGh5bGlua19wY3MpCiYjNDM7CQkJcmV0dXJuIDA7CiYjNDM7CiAJCWlmIChhZGRyICZsdDsgMCkgewogCQkJbmV0ZGV2X2Vycihwcml2LSZndDtkZXYsICYjMzQ7bm8gcGh5IGZvdW5kXG4mIzM0Oyk7CiAJCQlyZXR1cm4gLUVOT0RFVjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCmluZGV4IDU5ZGZlMzVhZmE1NGZjLi5mZDRlODBlZWVkYTczYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCkBAIC0xOTY0LDkgJiM0MzsxOTY0LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19kZXN0cm95KTsKICAqLwogYm9vbCBwaHlsaW5rX2V4cGVjdHNfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCkKIHsKLQlpZiAocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEIHx8Ci0JICAgIChwbC0mZ3Q7Y2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fSU5CQU5EICZhbXA7JmFtcDsKLQkgICAgIHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzeihwbC0mZ3Q7bGlua19pbnRlcmZhY2UpKSkKJiM0MzsJaWYgKHBsLSZndDtjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCkKIAkJcmV0dXJuIGZhbHNlOwogCXJldHVybiB0cnVlOwogfQpAQCAtMjIwNSw5ICYjNDM7MjIwMyw3IEBAIHN0YXRpYyBpbnQgcGh5bGlua19hdHRhY2hfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSwKIHsKIAl1MzIgZmxhZ3MgPSAwOwogCi0JaWYgKFdBUk5fT04ocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEIHx8Ci0JCSAgICAocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCAmYW1wOyZhbXA7Ci0JCSAgICAgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6KGludGVyZmFjZSkgJmFtcDsmYW1wOyAhcGwtJmd0O3NmcF9idXMpKSkKJiM0MzsJaWYgKFdBUk5fT04ocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAocGwtJmd0O3BoeWRldikKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU0MAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDgwNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBQYXRjaDogQSBEZWVwIERpdmUqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIHR3ZWFraW5nIGBzdG1tYWNfbWFpbi5jYCBhbmQgYHBoeWxpbmsuY2AuIFRoZSBjaGFuZ2VzIGFyZSBhYm91dCByZW1vdmluZyBzb21lIGNvbmRpdGlvbnMgcmVsYXRlZCB0byBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAsIGFuZCBhZGRpbmcgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCBpZiBgcHJpdi0mZ3Q7aHctJmd0O3BoeWxpbmtfcGNzYCBpcyBzZXQuIE15IGd1dCBmZWVsaW5nIGlzIHRvIGV2YWx1YXRlIHRoaXMgZm9yIGZ1enppbmcgcG90ZW50aWFsLgoKRmlyc3QsIGxldCYjMzk7cyBicmVhayBpdCBkb3duLiBgc3RtbWFjYCBpcyBhIHBoeXNpY2FsIEV0aGVybmV0IE1BQyBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciBTVE1pY3JvZWxlY3Ryb25pY3MgaGFyZHdhcmUg4oCTIHlvdXIgY2xhc3NpYyAxMC8xMDAvMTAwMCBzdHVmZi4gYHBoeWxpbmtgIGlzIHRoZSBsYXllciB0aGF0IG1hbmFnZXMgdGhlIFBIWSBsaW5rcy4gU28sIGNhbiBJIHRhcmdldCBgcGh5bGlua19leHBlY3RzX3BoeWAsIGBwaHlsaW5rX2F0dGFjaF9waHlgLCBvciBgc3RtbWFjX2luaXRfcGh5YCBmb3IgZnV6emluZz8gYHBoeWxpbmtfZXhwZWN0c19waHlgIGlzIGV4cG9ydGVkLCBtZWFuaW5nIG90aGVyIGRyaXZlcnMgdXNlIGl0IGRpcmVjdGx5LCBzbyB0aGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gYHBoeWxpbmtfYXR0YWNoX3BoeWAgaXMgc3RhdGljLCB3aGljaCBtZWFucyBpdCYjMzk7cyBjYWxsZWQgaW50ZXJuYWxseSBieSBgcGh5bGlua19jb25uZWN0X3BoeWAgYW5kIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YC4gQXMgZm9yIGBzdG1tYWNfaW5pdF9waHlgLCBpdCBnZXRzIGNhbGxlZCBkdXJpbmcgZWl0aGVyIGBzdG1tYWNfb3BlbmAgb3IgcHJvYmUsIHNvIHRoYXQmIzM5O3MgYWxzbyBwb3RlbnRpYWxseSBhY2Nlc3NpYmxlLgoKQnV0IGhlcmUmIzM5O3MgdGhlIGtpY2tlcjogQ2FuIEkgKnJlYWNoKiB0aGlzIGluIFFFTVU/IGBzdG1tYWNgIGlzIGEgKnBoeXNpY2FsKiBldGhlcm5ldCBkcml2ZXIuIFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGF0IHNwZWNpZmljIFNUTWljcm9lbGVjdHJvbmljcyBNQUMgYnkgZGVmYXVsdCwgZG9lcyBpdD8gV2FpdCwgbGV0IG1lIGNoZWNrIHRoZSBRRU1VIG5ldHdvcmtpbmcgYmFja2VuZHMuIFRoZXJlIGFyZSBhIHRvbiBvZiBkcml2ZXJzIGF2YWlsYWJsZSwgaW5jbHVkaW5nIGBpbXhfZmVjYCwgYGNhZGVuY2VfZ2VtYCwgYGUxMDAwYCwgYGUxMDAwZWAsIGBpZ2JgLCBgcnRsODEzOWAsIGBwY25ldGAsIGFuZCB0aGUgcmVzdC4gSXMgYHN0bW1hY2AgZXZlbiAqZW11bGF0ZWQqPyBXYWl0LCB0aGVyZSYjMzk7cyBgaHcvbmV0L3hnbWFjLmNgLi4uIGJ1dCB0aGF0JiMzOTtzIHByb2JhYmx5IGZvciBDYWx4ZWRhJiMzOTtzIFhHTUFDLCBub3QgdGhlIFNUTWljcm8uIFNvLCBubyBkaXJlY3QgYHN0bW1hY2AgZW11bGF0aW9uLgoKT2theSwgbGV0JiMzOTtzIGJhY2sgdXAuIElzIGBzdG1tYWNgIGEgUENJIGRldmljZT8gQWgsIHllcyEgVGhlcmUmIzM5O3MgYHN0bW1hY19wY2kuY2AuIEJ1dCBkb2VzIFFFTVUgZW11bGF0ZSB0aGF0PyBMZXQgbWUgY2hlY2vigKYgbm9wZSwgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIGBzdG1tYWNgIFBDSSBkZXZpY2VzLgoKT2theSwgbGV0JiMzOTtzIHNoaWZ0IGZvY3VzLiBFdmVuIGlmIEkgY2FuJiMzOTt0IGRpcmVjdGx5IGhpdCBgc3RtbWFjYCwgYHBoeWxpbmtgIGlzIHRoZSBrZXkuIFNpbmNlIGBwaHlsaW5rYCBpcyB1c2VkIGJ5IG1hbnkgZHJpdmVycywgY291bGQgSSByZWFjaCB0aG9zZSBmdW5jdGlvbnMgdGhyb3VnaCBvbmUgb2YgdGhlIFFFTVUtZW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VzPyAgYHBoeWxpbmtfZXhwZWN0c19waHlgIGFuZCBgcGh5bGlua19hdHRhY2hfcGh5YCBsaXZlIHdpdGhpbiBgcGh5bGluay5jYCwgc28gYXJlIHRoZXkgcmVhY2hhYmxlIHRocm91Z2ggYW55IG9mIHRoZSBkZXZpY2VzIFFFTVUgcHJvdmlkZXM/IEkgbmVlZCB0byBzZWFyY2ggZm9yIHVzYWdlcyBvZiBgcGh5bGlua19leHBlY3RzX3BoeWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGh5bGlua19leHBlY3RzX3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyOTg9c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEzMDg6XHRpZiAoIXBoeWxpbmtfZXhwZWN0c19waHkocHJpdi1cdTAwM2VwaHlsaW5rKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTMwOS1cdFx0cmV0dXJuIDA7XG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0xOTU0PUVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfZGVzdHJveSk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTU2LS8qKlxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoxOTU3OiAqIHBoeWxpbmtfZXhwZWN0c19waHkoKSAtIERldGVybWluZSBpZiBwaHlsaW5rIGV4cGVjdHMgYSBwaHkgdG8gYmUgYXR0YWNoZWRcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk1OC0gKiBAcGw6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rIHJldHVybmVkIGZyb20gcGh5bGlua19jcmVhdGUoKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk2NC0gKi9cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MTk2NTpib29sIHBoeWxpbmtfZXhwZWN0c19waHkoc3RydWN0IHBoeWxpbmsgKnBsKVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTY2LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTE5NzAtfVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoxOTcxOkVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfZXhwZWN0c19waHkpO1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTcyLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9MjI4NT1pbnQgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKnBsLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI5Mi1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI5MzpcdGlmICghcGh5bGlua19leHBlY3RzX3BoeShwbCkpXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyOTQtXHRcdHJldHVybiAwO1xuLS1cbmluY2x1ZGUvbGludXgvcGh5bGluay5oPTcyNj12b2lkIHBoeWxpbmtfZGVzdHJveShzdHJ1Y3QgcGh5bGluayAqKTtcbmluY2x1ZGUvbGludXgvcGh5bGluay5oOjcyNzpib29sIHBoeWxpbmtfZXhwZWN0c19waHkoc3RydWN0IHBoeWxpbmsgKnBsKTtcbmluY2x1ZGUvbGludXgvcGh5bGluay5oLTcyOC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjQzCgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSBQSFkgRHJpdmVyIENvbm5lY3Rpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhlc2UgUEhZIGRyaXZlcnMgYXJlIGNvbm5lY3RlZCwgYW5kIGl0IHNlZW1zIGxpa2UgYHBoeWxpbmtfZXhwZWN0c19waHlgIHNob3dzIHVwIGluIGBzdG1tYWNfaW5pdF9waHlgIGFuZCBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgLiBOb3csIHRoYXQgc2Vjb25kIGZ1bmN0aW9uLCBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgLCBpcyB1c2VkIGJ5IGEgKmxvdCogb2YgZGlmZmVyZW50IGRyaXZlcnMsIHdoaWNoIG1ha2VzIGl0IHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4gR2l2ZW4gdGhhdCBicm9hZGVyIHVzYWdlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlc2UgZnVuY3Rpb25zLCBhbmQgdGhlcmVmb3JlIGl0JiMzOTtzIGtleSB0byBhc2NlcnRhaW4gaWYgYHBoeWxpbmtfYXR0YWNoX3BoeWAgaXMgYmVpbmcgY2FsbGVkIHNvbWV3aGVyZS4gSXQmIzM5O3MgdGltZSB0byB0cmFjZSB0aGUgcG90ZW50aWFsIGNvbm5lY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BoeWxpbmtfYXR0YWNoX3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIwODQ9c3RhdGljIGludCBwaHlsaW5rX2JyaW5ndXBfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMDAtXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyMDE6c3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjAyLVx0XHRcdCAgICAgIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMjMzPWludCBwaHlsaW5rX2Nvbm5lY3RfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNDItXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNDM6XHRyZXQgPSBwaHlsaW5rX2F0dGFjaF9waHkocGwsIHBoeSwgcGwtXHUwMDNlbGlua19pbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjQ0LVx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTM2OTg9c3RhdGljIGludCBwaHlsaW5rX3NmcF9jb25maWdfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTM3MzAtXHQgKi9cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MzczMTpcdHJldCA9IHBoeWxpbmtfYXR0YWNoX3BoeShwbCwgcGh5LCBjb25maWcuaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMzczMi1cdGlmIChyZXQgXHUwMDNjIDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI1OAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZToKCioqSW52ZXN0aWdhdGluZyBgcGh5bGlua19jb25uZWN0X3BoeWAgVXNhZ2UqKgoKUmlnaHQsIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCBpcyBleHBvcnRlZCwgbWVhbmluZyBpdCYjMzk7cyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRldmljZSBkcml2ZXJzLiBBbmQsIGl0JiMzOTtzIGNvbm5lY3RlZCB0byBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgIHNvIHRoYXQgdGhlIGZ1bmN0aW9uYWxpdHkgaXMgY29uc2lzdGVudC4gTm93LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gdGhlIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJhY3RpY2FsIGltcGFjdCBvZiB0aGlzLCB0aGUgZGVzaWduIGNob2ljZXMuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGNoZWNrIHByZWNpc2VseSAqd2hpY2gqIGRyaXZlcnMgYXJlIGFjdHVhbGx5IGxldmVyYWdpbmcgdGhlc2UgcGh5bGluayBmdW5jdGlvbnMuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBpcyB3aWRlbHkgYWRvcHRlZCwgb3IgbW9yZSBuaWNoZS4gQXJlIHdlIGxvb2tpbmcgYXQgYSBjb21tb24gcGF0dGVybiwgb3Igc29tZXRoaW5nIHNwZWNpZmljPyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBwb3RlbnRpYWwgcmVmYWN0b3JpbmcsIGJ1ZyBmaXhpbmcsIG9yIGV2ZW4gYXJjaGl0ZWN0dXJhbCBjaGFuZ2VzIHRvIHRoZSBwaHlsaW5rIHN5c3RlbSBpdHNlbGY/IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgY3JpdGljYWwgYW5kIHdoZXJlIHRoZXkgYXJlIG5vdCB0byBiZSBhYmxlIHRvIG1ha2UgYW55IGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB0aGVpciBtYWludGVuYW5jZSBvciBldm9sdXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGh5bGlua19jb25uZWN0X3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTk4Mj1zdGF0aWMgaW50IG1hY2JfcGh5bGlua19jb25uZWN0KHN0cnVjdCBtYWNiICpicClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk5OS1cdFx0LyogYXR0YWNoIHRoZSBtYWMgdG8gdGhlIHBoeSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMDAwOlx0XHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KGJwLVx1MDAzZXBoeWxpbmssIHBoeWRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEwMDEtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jPTMyMTQ9c3RhdGljIGludCBsYW43NDN4X3BoeWxpbmtfY29ubmVjdChzdHJ1Y3QgbGFuNzQzeF9hZGFwdGVyICphZGFwdGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW43NDN4X21haW4uYy0zMjI3LVx0XHRcdC8qIGF0dGFjaCB0aGUgbWFjIHRvIHRoZSBwaHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW43NDN4X21haW4uYzozMjI4Olx0XHRcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkoYWRhcHRlci1cdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jLTMyMjktXHRcdH0gZWxzZSBpZiAoKChhZGFwdGVyLVx1MDAzZWNzci5pZF9yZXYgXHUwMDI2IElEX1JFVl9JRF9NQVNLXykgPT1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyOTg9c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzNDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEzNDg6XHRcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkocHJpdi1cdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xMzQ5LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvdG40MC5jPTE0MDY9c3RhdGljIGludCB0bjQwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvdG40MC5jLTE0MTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvdG40MC5jOjE0MTE6XHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KHByaXYtXHUwMDNlcGh5bGluaywgcHJpdi1cdTAwM2VwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL3RuNDAuYy0xNDEyLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz00NjI9c3RhdGljIGludCBuZ2JlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNDc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjQ3OTpcdGVyciA9IHBoeWxpbmtfY29ubmVjdF9waHkod3gtXHUwMDNlcGh5bGluaywgd3gtXHUwMDNlcGh5ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy00ODAtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9MjY4PXN0YXRpYyBpbnQgdHhnYmVfcGh5bGlua19pbml0KHN0cnVjdCB0eGdiZSAqdHhnYmUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy0yOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjMwMDpcdFx0cmV0ID0gcGh5bGlua19jb25uZWN0X3BoeShwaHlsaW5rLCB3eC1cdTAwM2VwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy0zMDEtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyMDE9c3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjIxOC0vKipcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjIxOTogKiBwaHlsaW5rX2Nvbm5lY3RfcGh5KCkgLSBjb25uZWN0IGEgUEhZIHRvIHRoZSBwaHlsaW5rIGluc3RhbmNlXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMjAtICogQHBsOiBhIHBvaW50ZXIgdG8gYSBcdTAwMjZzdHJ1Y3QgcGh5bGluayByZXR1cm5lZCBmcm9tIHBoeWxpbmtfY3JlYXRlKClcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMzItICovXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyMzM6aW50IHBoeWxpbmtfY29ubmVjdF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5KVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjM0LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNTItfVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjUzOkVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfY29ubmVjdF9waHkpO1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjU0LVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI2MS0gKiBDb25uZWN0IHRoZSBwaHkgc3BlY2lmaWVkIGluIHRoZSBkZXZpY2Ugbm9kZSBAZG4gdG8gdGhlIHBoeWxpbmsgaW5zdGFuY2VcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI2MjogKiBzcGVjaWZpZWQgYnkgQHBsLiBBY3Rpb25zIHNwZWNpZmllZCBpbiBwaHlsaW5rX2Nvbm5lY3RfcGh5KCkgd2lsbCBiZVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjYzLSAqIHBlcmZvcm1lZC5cbi0tXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9NzAzPXN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X3BoeShzdHJ1Y3QgdXNibmV0ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcxMy1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYzo3MTQ6XHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KHByaXYtXHUwMDNlcGh5bGluaywgcHJpdi1cdTAwM2VwaHlkZXYpO1xuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcxNS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jPTI4NTg9c3RhdGljIGludCBsYW43OHh4X3BoeV9pbml0KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjkwMS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM6MjkwMjpcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkoZGV2LVx1MDAzZXBoeWxpbmssIHBoeWRldik7XG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI5MDMtXHRpZiAocmV0KSB7XG4tLVxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzI3PWJvb2wgcGh5bGlua19leHBlY3RzX3BoeShzdHJ1Y3QgcGh5bGluayAqcGwpO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzI4LVxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg6NzI5OmludCBwaHlsaW5rX2Nvbm5lY3RfcGh5KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBwaHlfZGV2aWNlICopO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzMwLWludCBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBkZXZpY2Vfbm9kZSAqLCB1MzIgZmxhZ3MpO1xuLS1cbm5ldC9kc2EvdXNlci5jPTI2Mzg9c3RhdGljIGludCBkc2FfdXNlcl9waHlfY29ubmVjdChzdHJ1Y3QgbmV0X2RldmljZSAqdXNlcl9kZXYsIGludCBhZGRyLFxuLS1cbm5ldC9kc2EvdXNlci5jLTI2NTEtXG5uZXQvZHNhL3VzZXIuYzoyNjUyOlx0cmV0dXJuIHBoeWxpbmtfY29ubmVjdF9waHkoZHAtXHUwMDNlcGwsIHVzZXJfZGV2LVx1MDAzZXBoeWRldik7XG5uZXQvZHNhL3VzZXIuYy0yNjUzLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3Mjg3CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVTQiBGdXp6aW5nIGFuZCBgcGh5bGlua19jb25uZWN0X3BoeWAqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIG5ldHdvcmsgZHJpdmVyIGZpbGVzLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuY2AgYW5kIGBkcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jYC4gQW5kIHdoYXQgZG8gSSBzZWU/IFRoZXkgYm90aCB1c2UgYHBoeWxpbmtfY29ubmVjdF9waHlgLiBOb3csIHRoYXQmIzM5O3MgaW50ZXJlc3RpbmcuIFdlIGtub3cgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGBkdW1teV9oY2RgIG9yIGB1c2ItZ2FkZ2V0YC4gQW5kLCBvZiBjb3Vyc2UsIHN5emthbGxlciBoYXMgYSBwcmV0dHkgcm9idXN0IFVTQiBmdXp6ZXIuIEl0JiMzOTtzIGEgYml0IG9mIGEgbGVhcCwgYnV0IEkmIzM5O20gdGhpbmtpbmcuLi4gY291bGQgYHBoeWxpbmtfY29ubmVjdF9waHlgIGJlIHJlYWNoYWJsZSB2aWEgVVNCIGZ1enppbmc/CgpUaGF0IHNvdW5kcyBsaWtlIGEgZGVmaW5pdGUgJiMzNDt5ZXMuJiMzNDsgTm93IEkganVzdCBuZWVkIHRvIHZlcmlmeSBob3cgdGhlc2UgZnVuY3Rpb25zIGNvbm5lY3QuIFNvIEkgc2hvdWxkIGV4YW1pbmUgYGxhbjc4eHhfcGh5X2luaXRgIGFuZCBgYXg4ODc3Ml9pbml0X3BoeWAgdG8gY29uZmlybSBpZiB0aG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXg4ODc3Ml9pbml0X3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9Njk3PXN0YXRpYyB2b2lkIGF4ODg3NzJfbWRpb191bnJlZ2lzdGVyKHN0cnVjdCBhc2l4X2NvbW1vbl9wcml2YXRlICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy03MDItXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6NzAzOnN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X3BoeShzdHJ1Y3QgdXNibmV0ICpkZXYpXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtNzA0LXtcbi0tXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9ODI5PXN0YXRpYyBpbnQgYXg4ODc3Ml9iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTkyNC1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYzo5MjU6XHRyZXQgPSBheDg4NzcyX2luaXRfcGh5KGRldik7XG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtOTI2LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzg4NwoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIFVTQiBOZXR3b3JrIERldmljZSBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gd2UmIzM5O3JlIGxvb2tpbmcgYXQgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgYSBVU0IgbmV0d29yayBkZXZpY2UsIHNwZWNpZmljYWxseSB0aGUgYGF4ODg3NzJgIHZhcmlhbnQuIFRoZSBrZXJuZWwgaXMgY2FsbGluZyBgYXg4ODc3Ml9iaW5kYCwgd2hpY2ggbWFrZXMgc2Vuc2U7IHRoYXQmIzM5O3MgdGhlIHN0YW5kYXJkIGVudHJ5IHBvaW50IGZvciBiaW5kaW5nIHRoZSBkZXZpY2UgdG8gdGhlIGRyaXZlciBhZnRlciB0aGUgVVNCIGVudW1lcmF0aW9uIGFuZCBkZXZpY2UgZGlzY292ZXJ5LiBOb3csIHdoZXJlIGRvZXMgdGhpcyBpbml0aWFsaXphdGlvbiByZWFsbHkgKnN0YXJ0Kj8gVG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBQSFkgaW5pdGlhbGl6YXRpb24sIG15IGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBgbGFuNzh4eF9waHlfaW5pdGAgZnVuY3Rpb24uIFRoYXQmIzM5O3MgbGlrZWx5IHdoZXJlIHRoZSBsb3ctbGV2ZWwgcGh5c2ljYWwgbGF5ZXIgaW50ZXJmYWNlIGlzIHNldCB1cC4gTGV0JiMzOTtzIHRyYWNlIGZyb20gYGxhbjc4eHhfcGh5X2luaXRgIGFuZCBzZWUgd2hhdCB0aGF0IG1vZHVsZSBpcyBkb2luZyB0byBjb21wbGV0ZSBkZXZpY2UgY29ubmVjdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGFuNzh4eF9waHlfaW5pdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jPTI4NDk9c3RhdGljIHZvaWQgbGFuNzh4eF9waHlfdW5pbml0KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjg1Ny1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM6Mjg1ODpzdGF0aWMgaW50IGxhbjc4eHhfcGh5X2luaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI4NTkte1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9NDY1NT1zdGF0aWMgaW50IGxhbjc4eHhfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tLVxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy00Nzg1LVxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYzo0Nzg2Olx0cmV0ID0gbGFuNzh4eF9waHlfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy00Nzg3LVx0aWYgKHJldCBcdTAwM2MgMClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODM3MQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6CgoqKkRpZ2dpbmcgaW50byBQSFkgQ29ubmVjdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSB0cmFjaW5nIHRoZSBjb25uZWN0aW9ucyBhbmQgaW5pdGlhbGl6YXRpb25zIHJlbGF0ZWQgdG8gUEhZcy4gSSYjMzk7dmUgY29uZmlybWVkIHRoYXQgYHBoeWxpbmtfY29ubmVjdF9waHlgIGlzIGRlZmluaXRlbHkgYWNjZXNzaWJsZSB0aHJvdWdoIGBsYW43OHh4X3Byb2JlYCBhbmQgYGF4ODg3NzJfYmluZGAg4oCTIHRoYXQgbWFrZXMgc2Vuc2UsIHRoZXkmIzM5O3JlIGNvbW1vbiBQSFkgZHJpdmVyIGVudHJ5IHBvaW50cy4gTm93LCBJJiMzOTttIHRyeWluZyB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlIG9mIHRoZSBjb25uZWN0aW9uIHBhdGh3YXlzLgoKTXkgbmV4dCBxdWVzdGlvbiBpcyBhYm91dCBgcGh5bGlua19leHBlY3RzX3BoeWAuIEkgcmVjYWxsIHNlZWluZyB0aGF0IG9uZSBmbG9hdGluZyBhcm91bmQsIGFuZCBub3cgSSYjMzk7bSB0cnlpbmcgdG8gbWFwIGl0cyB1c2VzLiBJdCBhcHBlYXJzIGluIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAsIHNvIHRoYXTigJlzIGEgZGlyZWN0IGxpbmsuIFRoYXQgbWVhbnMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBjYWxscyBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgIGluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgd2hvIGlzIHJlcXVlc3RpbmcgdGhlIFBIWSBiZSBjb25uZWN0ZWQgdmlhIHRoZSBgcGh5bGlua19leHBlY3RzX3BoeWAgY2FsbC4gTGV0JiMzOTtzIHNlZSB3aG8mIzM5O3MgY2FsbGluZyBpdCB0byBjb250aW51ZSB0aGUgYW5hbHlzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1tYWMuYz01NjA9aW50IGRwYWEyX21hY19jb25uZWN0KHN0cnVjdCBkcGFhMl9tYWMgKm1hYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmMtNjM0LVx0cnRubF9sb2NrKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmM6NjM1Olx0ZXJyID0gcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QobWFjLVx1MDAzZXBoeWxpbmssIGRwbWFjX25vZGUsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jLTYzNi1cdHJ0bmxfdW5sb2NrKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmMtNjM3LVx0aWYgKGVycikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jOjYzODpcdFx0bmV0ZGV2X2VycihuZXRfZGV2LCBcJiMzNDtwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCgpID0gJWRcXG5cJiMzNDssIGVycik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmMtNjM5LVx0XHRnb3RvIGVycl9waHlsaW5rX2Rlc3Ryb3k7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmM9NDc5MT1zdGF0aWMgaW50IG12cHAyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYy00ODQwLVx0aWYgKHBvcnQtXHUwMDNlcGh5bGluaykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmM6NDg0MTpcdFx0ZXJyID0gcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QocG9ydC1cdTAwM2VwaHlsaW5rLCBwb3J0LVx1MDAzZWZ3bm9kZSwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYy00ODQyLVx0XHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9tYWluLmM9MTY5PXN0YXRpYyBpbnQgbGFuOTY2eF9wb3J0X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X21haW4uYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X21haW4uYzoxODY6XHRlcnIgPSBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChwb3J0LVx1MDAzZXBoeWxpbmssIHBvcnQtXHUwMDNlZndub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfbWFpbi5jLTE4Ny1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyOTg9c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzNTAtXHRcdGZ3bm9kZV9oYW5kbGVfcHV0KHBoeV9md25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxMzUxOlx0XHRyZXQgPSBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChwcml2LVx1MDAzZXBoeWxpbmssIGZ3bm9kZSwgZGV2X2ZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTM1Mi1cdH1cbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyNjc9aW50IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI2OS17XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNzA6XHRyZXR1cm4gcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QocGwsIG9mX2Z3bm9kZV9oYW5kbGUoZG4pLCBmbGFncyk7XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNzEtfVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMjcyPUVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3NC0vKipcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI3NTogKiBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCgpIC0gY29ubmVjdCB0aGUgUEhZIHNwZWNpZmllZCBpbiB0aGUgZndub2RlLlxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjc2LSAqIEBwbDogYSBwb2ludGVyIHRvIGEgXHUwMDI2c3RydWN0IHBoeWxpbmsgcmV0dXJuZWQgZnJvbSBwaHlsaW5rX2NyZWF0ZSgpXG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjg0LSAqL1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjg1OmludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyODYtXHRcdFx0ICAgICAgIGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsXG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMzMwLX1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjMzMTpFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCk7XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIzMzItXG4tLVxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzMwPWludCBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBkZXZpY2Vfbm9kZSAqLCB1MzIgZmxhZ3MpO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmg6NzMxOmludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaC03MzItXHRcdFx0ICAgICAgIGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMDU3CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyBQSFkgQ29ubmVjdGlvbiBNZXRob2RzKioKClJpZ2h0LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyBQSFkgY29ubmVjdGlvbnMgYXJlIGJlaW5nIGhhbmRsZWQgd2l0aGluIHRoaXMgc3lzdGVtLiBJIHNlZSBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgIGlzIHVzZWQgYnkgYSBmZXcgZGlmZmVyZW50IGRyaXZlcnM6IGBkcGFhMl9tYWNfY29ubmVjdGAsIGBtdnBwMl9vcGVuYCwgYGxhbjk2NnhfcG9ydF9vcGVuYCwgYW5kIGBzdG1tYWNfaW5pdF9waHlgLiBUaGF0IGdpdmVzIG1lIGEgY2VydGFpbiBiYXNlbGluZSwgYSBzdGFydGluZyBwb2ludCB0byBzZWUgaG93IG90aGVyIFBIWXMgYXJlIGNvbm5lY3RlZC4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBhIHByaW1hcnkgbWV0aG9kIGluIHVzZS4KCkJ1dCBub3cgbXkgYnJhaW4mIzM5O3MgaXRjaGluZy4uLiB3aGF0IGFib3V0IGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YD8gSSYjMzk7bSBtaXNzaW5nIHNvbWV0aGluZywgaXQgc2VlbXMgLSBpdCYjMzk7cyBhIHBhcmFsbGVsIHBhdGggb2YgY29ubmVjdGlvbiBmb3IgUEhZcywgdGhhdCYjMzk7cyBjZXJ0YWluLCB3aGljaCBtZWFucyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdCAtIGFuZCB3aGV0aGVyIGl0IHNoYXJlcyBhbnkgY29kZSBiYXNlIHdpdGggdGhlIG1ldGhvZCBJIGtub3cuIEFyZSB0aGVyZSBkaXN0aW5jdCBzY2VuYXJpb3Mgd2hlcmUgb25lIGlzIHByZWZlcnJlZCBvdmVyIHRoZSBvdGhlcj8gQXJlIHRoZXkgbXV0dWFsbHkgZXhjbHVzaXZlLCBvciBjYW4gdGhleSBiZSB1c2VkIGluIGNvbmp1bmN0aW9uPyBBcmUgdGhlcmUgYW55IGNvbW1vbiBpc3N1ZXMgdGhhdCBtYXkgb2NjdXIsIGFjcm9zcyBib3RoIG1ldGhvZHM/IEkgbmVlZCB0byBsb29rIGludG8gdGhlIHNwZWNpZmljcyBvZiAqdGhhdCogZnVuY3Rpb24gYW5kIHNlZSB3aGVyZSBpdCYjMzk7cyBiZWluZyB1c2VkIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIFBIWSBzZXR1cC4gSXQmIzM5O3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgcGljdHVyZSBoZXJlLCBhbmQgd2hhdCBpcyBjdXJyZW50bHkgaW4gcGxhY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9tYWMtcGh5LXN1cHBvcnQucnN0PTgwPXdpbGwgZG8gdGhlIGZvbGxvd2luZzpcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL21hYy1waHktc3VwcG9ydC5yc3QtODMtIC0gd2lsbCBjcmVhdGUgYSBQSFlMSU5LIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVjZWl2ZWQgbmV0X2RldmljZVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9tYWMtcGh5LXN1cHBvcnQucnN0Ojg0OiAtIGNvbm5lY3QgdG8gdGhlIFBIWSB1c2luZyBwaHlsaW5rX29mX3BoeV9jb25uZWN0KClcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvbWFjLXBoeS1zdXBwb3J0LnJzdC04NS1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0PTc0PXRoaXMgZG9jdW1lbnRhdGlvbi5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0LTE2Mi1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q6MTYzOlx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwcml2LVx1MDAzZXBoeWxpbmssIG5vZGUsIGZsYWdzKTtcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3QtMTY0LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jPTk2OD1zdGF0aWMgYm9vbCBuZXRjX3BvcnRfaXNfZW1kaW9fY29uc3VtZXIoc3RydWN0IGRldmljZV9ub2RlICpub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTk4NC1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjk4NTovKiBDdXJyZW50bHksIHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoKSBpcyBjYWxsZWQgYnkgZHNhX3VzZXJfY3JlYXRlKCksXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05ODYtICogc28gaWYgdGhlIHN3aXRjaCB1c2VzIHRoZSBleHRlcm5hbCBNRElPIGNvbnRyb2xsZXIgKGxpa2UgdGhlIEVNRElPXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05ODctICogZnVuY3Rpb24pIHRvIG1hbmFnZSB0aGUgZXh0ZXJuYWwgUEhZcy4gVGhlIE1ESU8gYnVzIG1heSBub3QgYmVcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjk4ODogKiBjcmVhdGVkIHdoZW4gcGh5bGlua19vZl9waHlfY29ubmVjdCgpIGlzIGNhbGxlZCwgc28gaXQgd2lsbCByZXR1cm5cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTk4OS0gKiBhbiBlcnJvciBhbmQgY2F1c2UgdGhlIHN3aXRjaCBkcml2ZXIgdG8gZmFpbCB0byBwcm9iZS5cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjk5MDogKiBUaGlzIHdvcmthcm91bmQgY2FuIGJlIHJlbW92ZWQgd2hlbiBEU0EgcGh5bGlua19vZl9waHlfY29ubmVjdCgpXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05OTEtICogY2FsbHMgYXJlIG1vdmVkIGZyb20gcHJvYmUoKSB0byBuZG9fb3BlbigpLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYz04NzY9c3RhdGljIGludCB0c2Vfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYy05NTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmM6OTUyOlx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwcml2LVx1MDAzZXBoeWxpbmssIHByaXYtXHUwMDNlZGV2aWNlLVx1MDAzZW9mX25vZGUsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jLTk1My1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jPTE0MDQ9c3RhdGljIGludCBhZzcxeHhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jLTE0MDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jOjE0MTA6XHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGFnLVx1MDAzZXBoeWxpbmssIGFnLVx1MDAzZXBkZXYtXHUwMDNlZGV2Lm9mX25vZGUsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYy0xNDExLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYzoxNDEyOlx0XHRuZXRpZl9lcnIoYWcsIGxpbmssIG5kZXYsIFwmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QgZmlsZWQgd2l0aCBlcnI6ICVpXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYy0xNDEzLVx0XHRcdCAgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTk4Mj1zdGF0aWMgaW50IG1hY2JfcGh5bGlua19jb25uZWN0KHN0cnVjdCBtYWNiICpicClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4OS1cdGlmIChkbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6OTkwOlx0XHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGJwLVx1MDAzZXBoeWxpbmssIGRuLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtOTkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmM9Mjk0MT1zdGF0aWMgaW50IGRwYWFfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0X2Rldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jLTI5NTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jOjI5NTE6XHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KG1hY19kZXYtXHUwMDNlcGh5bGluayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMtMjk1Mi1cdFx0XHRcdCAgICAgbWFjX2Rldi1cdTAwM2VkZXYtXHUwMDNlb2Zfbm9kZSwgMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjLmM9Mjg5OT1zdGF0aWMgaW50IGVuZXRjX3BoeWxpbmtfY29ubmVjdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGMuYy0yOTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjLmM6MjkxMTpcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QocHJpdi1cdTAwM2VwaHlsaW5rLCBwcml2LVx1MDAzZWRldi1cdTAwM2VvZl9ub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jLTI5MTItXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmM9NjU2PXN0YXRpYyBpbnQgZnNfZW5ldF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmMtNjc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmM6Njc4Olx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChmZXAtXHUwMDNlcGh5bGluaywgZmVwLVx1MDAzZWRldi1cdTAwM2VvZl9ub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L2ZzX2VuZXQtbWFpbi5jLTY3OS1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYz0zMTY3PXN0YXRpYyBpbnQgdWNjX2dldGhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5jLTMxODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYzozMTgxOlx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdCh1Z2V0aC1cdTAwM2VwaHlsaW5rLCB1Z2V0aC1cdTAwM2VkZXYtXHUwMDNlb2Zfbm9kZSwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYy0zMTgyLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmM9NDM1MT1zdGF0aWMgaW50IG12bmV0YV9tZGlvX3Byb2JlKHN0cnVjdCBtdm5ldGFfcG9ydCAqcHApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYy00MzUzLVx0c3RydWN0IGV0aHRvb2xfd29saW5mbyB3b2wgPSB7IC5jbWQgPSBFVEhUT09MX0dXT0wgfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmM6NDM1NDpcdGludCBlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHBwLVx1MDAzZXBoeWxpbmssIHBwLVx1MDAzZWRuLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMtNDM1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jPTM2MDM9c3RhdGljIGludCBtdGtfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtMzYxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6MzYxMjpcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QobWFjLVx1MDAzZXBoeWxpbmssIG1hYy1cdTAwM2VvZl9ub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtMzYxMy1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmM9MzIxND1zdGF0aWMgaW50IGxhbjc0M3hfcGh5bGlua19jb25uZWN0KHN0cnVjdCBsYW43NDN4X2FkYXB0ZXIgKmFkYXB0ZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jLTMyMjEtXHRpZiAoZG4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmM6MzIyMjpcdFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChhZGFwdGVyLVx1MDAzZXBoeWxpbmssIGRuLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW43NDN4X21haW4uYy0zMjIzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X25ldGRldi5jPTEwNT1zdGF0aWMgaW50IHNwYXJ4NV9wb3J0X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfbmV0ZGV2LmMtMTEwLVx0c3Bhcng1X3BvcnRfZW5hYmxlKHBvcnQsIHRydWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfbmV0ZGV2LmM6MTExOlx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwb3J0LVx1MDAzZXBoeWxpbmssIHBvcnQtXHUwMDNlb2Zfbm9kZSwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV9uZXRkZXYuYy0xMTItXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfbmV0LmM9MTc4MD1zdGF0aWMgaW50IG9jZWxvdF9wb3J0X3BoeWxpbmtfY3JlYXRlKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCwgaW50IHBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfbmV0LmMtMTgzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X25ldC5jOjE4MzI6XHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHBoeWxpbmssIHBvcnRucCwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdF9uZXQuYy0xODMzLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2FtNjUtY3Bzdy1udXNzLmM9OTk4PXN0YXRpYyBpbnQgYW02NV9jcHN3X251c3NfbmRvX3NsYXZlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvYW02NS1jcHN3LW51c3MuYy0xMDY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvYW02NS1jcHN3LW51c3MuYzoxMDcwOlx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwb3J0LVx1MDAzZXNsYXZlLnBoeWxpbmssIHBvcnQtXHUwMDNlc2xhdmUucG9ydF9ucCwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9hbTY1LWNwc3ctbnVzcy5jLTEwNzEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmM9MTY2MT1zdGF0aWMgaW50IGF4aWVuZXRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngveGlsaW54X2F4aWVuZXRfbWFpbi5jLTE2NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngveGlsaW54X2F4aWVuZXRfbWFpbi5jOjE2NzQ6XHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGxwLVx1MDAzZXBoeWxpbmssIGxwLVx1MDAzZWRldi1cdTAwM2VvZl9ub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmMtMTY3NS1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmM6MTY3NjpcdFx0ZGV2X2VycihscC1cdTAwM2VkZXYsIFwmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoKSBmYWlsZWQ6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L3hpbGlueF9heGllbmV0X21haW4uYy0xNjc3LVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9MjI1Mz1FWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX2Nvbm5lY3RfcGh5KTtcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNTUtLyoqXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNTY6ICogcGh5bGlua19vZl9waHlfY29ubmVjdCgpIC0gY29ubmVjdCB0aGUgUEhZIHNwZWNpZmllZCBpbiB0aGUgRFQgbW9kZS5cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI1Ny0gKiBAcGw6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rIHJldHVybmVkIGZyb20gcGh5bGlua19jcmVhdGUoKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI2Ni0gKi9cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI2NzppbnQgcGh5bGlua19vZl9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4sXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNjgtXHRcdFx0ICAgdTMyIGZsYWdzKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3MS19XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNzI6RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19vZl9waHlfY29ubmVjdCk7XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNzMtXG4tLVxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzI5PWludCBwaHlsaW5rX2Nvbm5lY3RfcGh5KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBwaHlfZGV2aWNlICopO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmg6NzMwOmludCBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBkZXZpY2Vfbm9kZSAqLCB1MzIgZmxhZ3MpO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzMxLWludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXG4tLVxubmV0L2RzYS9wb3J0LmM9MTY2NT1zdGF0aWMgaW50IGRzYV9zaGFyZWRfcG9ydF9waHlsaW5rX3JlZ2lzdGVyKHN0cnVjdCBkc2FfcG9ydCAqZHApXG4tLVxubmV0L2RzYS9wb3J0LmMtMTY3Ny1cbm5ldC9kc2EvcG9ydC5jOjE2Nzg6XHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGRwLVx1MDAzZXBsLCBwb3J0X2RuLCAwKTtcbm5ldC9kc2EvcG9ydC5jLTE2NzktXHRpZiAoZXJyIFx1MDAyNlx1MDAyNiBlcnIgIT0gLUVOT0RFVikge1xuLS1cbm5ldC9kc2EvdXNlci5jPTI2NTU9c3RhdGljIGludCBkc2FfdXNlcl9waHlfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKnVzZXJfZGV2KVxuLS1cbm5ldC9kc2EvdXNlci5jLTI2ODEtXG5uZXQvZHNhL3VzZXIuYzoyNjgyOlx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChkcC1cdTAwM2VwbCwgcG9ydF9kbiwgcGh5X2ZsYWdzKTtcbm5ldC9kc2EvdXNlci5jLTI2ODMtXHRpZiAocmV0ID09IC1FTk9ERVYgXHUwMDI2XHUwMDI2IGRzLVx1MDAzZXVzZXJfbWlpX2J1cykge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNDA1MAoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDc2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEkmIzM5O20gZGVlcCBpbiB0aGUgd2VlZHMgd2l0aCB0aGlzIHN0dWZmOgoKKipEaXZpbmcgaW50byBgcGh5bGlua19vZl9waHlfY29ubmVjdGAgYW5kIGBtYWNiYCBpbiBRRU1VKioKCkFscmlnaHQsIHNvIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCBpcyBhIGNvbW1vbiBmdW5jdGlvbiwgdXNlZCBhY3Jvc3MgYSByYW5nZSBvZiBkcml2ZXJzLiBUaGUgaW50ZXJlc3RpbmcgcG9pbnQgaGVyZSBpcyBpdHMgY29ubmVjdGlvbiB0byBgbWFjYmAuIEFoLCByaWdodCwgYG1hY2JgLi4uIHRoZSBDYWRlbmNlIEdFTSwgd2hpY2gsIGlmIEkmIzM5O20gbm90IG1pc3Rha2VuLCBpcyAqYWxzbyogZW11bGF0ZWQgaW4gUUVNVS4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgUUVNVSBzb3VyY2Ug4oCTIHllcCwgYGh3L25ldC9jYWRlbmNlX2dlbS5jYCBjb25maXJtcyBpdC4gTm93LCB0aGF0IGNsYXJpZmllcyBhIGxvdC4gU28sIGJlY2F1c2UgYG1hY2JgIGlzIGVtdWxhdGVkIGluIFFFTVUsIHVuZGVyc3RhbmRpbmcgdGhlIGludGVyYWN0aW9uIG9mIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCB3aXRoIGBtYWNiYCBpbiBRRU1VIGlzIGtleS4gTGV0JiMzOTtzIG1vdmUgb24gdG8gY2hlY2tpbmcgYG1hY2JfcGh5bGlua19jb25uZWN0YC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjYl9waHlsaW5rX2Nvbm5lY3QmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz05NzU9c3RhdGljIGJvb2wgbWFjYl9waHlfaGFuZGxlX2V4aXN0cyhzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtOTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo5ODI6c3RhdGljIGludCBtYWNiX3BoeWxpbmtfY29ubmVjdChzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0zMTYwPXN0YXRpYyBpbnQgbWFjYl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMjAyOlx0ZXJyID0gbWFjYl9waHlsaW5rX2Nvbm5lY3QoYnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjAzLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTUwODE9c3RhdGljIGludCBhdDkxZXRoZXJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTEwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTEwMTpcdHJldCA9IG1hY2JfcGh5bGlua19jb25uZWN0KGxwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTEwMi1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0NzYwCgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogNDc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIFBoeWxpbmsmIzM5O3MgQ29yZSBMb2dpYyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSB0cmFjZWQgdGhlIGV4ZWN1dGlvbiBwYXRoIGZyb20gYG1hY2Jfb3BlbmAgZG93biB0byBgcGh5bGlua2AuIEl0JiMzOTtzIGNsZWFyIHRoYXQgYG1hY2Jfb3BlbmAgdHJpZ2dlcnMgYG1hY2JfcGh5bGlua19jb25uZWN0YCwgd2hpY2ggdGhlbiBjYWxscyBlaXRoZXIgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgIG9yIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YC4gVGhpcyBpcyBrZXk7IGl0IG1lYW5zIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYXJlIGRlZmluaXRlbHkgcmVhY2hhYmxlIGFuZCwgdGhlcmVmb3JlLCBmdXp6YWJsZS4gTXkgaW5pdGlhbCBnb2FsIGhlcmUgaXMgdG8gaWRlbnRpZnkgdGhlc2UgdnVsbmVyYWJsZSBwb2ludHMuCgpJIG5lZWQgdG8gY29uZmlybSByZWFjaGFiaWxpdHkgb2YgdGhlc2Uga2V5IGZ1bmN0aW9ucyBhbmQgdW5kZXJzdGFuZCB0aGUgY29udHJvbCBmbG93LiBXYWl0LCBgcGh5bGlua19leHBlY3RzX3BoeWAgaXMgYWN0dWFsbHkgY2FsbGVkIGZyb20gYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgLiBTbyBJIHdhcyByaWdodDsgaXQmIzM5O3MgZGVmaW5pdGVseSByZWFjaGFibGUuIGBwaHlsaW5rX2F0dGFjaF9waHlgIHNlZW1zIGVxdWFsbHkgYWNjZXNzaWJsZSwgY2FsbGVkIGZyb20gYm90aCBgcGh5bGlua19jb25uZWN0X3BoeWAgYW5kIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAuIEJvdGggb2YgdGhlc2UgYXJlIGludGVyZXN0aW5nLgoKVGhpcyBwYXRjaCBpcyBpbnRlcmVzdGluZyBiZWNhdXNlIGl0IHJlbW92ZXMgdGhhdCBgcGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCAmYW1wOyZhbXA7IHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzeihwbC0mZ3Q7bGlua19pbnRlcmZhY2UpYCBjaGVjayBmcm9tIGJvdGggYHBoeWxpbmtfZXhwZWN0c19waHlgIGFuZCBgcGh5bGlua19hdHRhY2hfcGh5YC4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljLCByZW1vdmluZyBhIGNydWNpYWwgdmFsaWRhdGlvbiBzdGVwLiBUaGF0JiMzOTtzIGEgZ29vZCBwbGFjZSB0byBsb29rIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLiBQbHVzLCB0aGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGluIGBzdG1tYWNfaW5pdF9waHlgIHRvIHJldHVybiAwIGlmIGBwcml2LSZndDtody0mZ3Q7cGh5bGlua19wY3NgIGlzIHNldC4gTm93IEkgbmVlZCB0byBzZWUgaWYgYHN0bW1hY2AgaXMgcmVhY2hhYmxlLgoKSSBoYWQgbG9va2VkIGF0IHRoaXMgZWFybGllciwgYW5kIEkgZG9uJiMzOTt0IHRoaW5rIFFFTVUgZW11bGF0ZXMgYHN0bW1hY2AgUENJLiBCdXQgd2FpdCwgd2hhdCBpZiBgc3RtbWFjYCBpcyB1c2VkIHZpYSBwbGF0Zm9ybSBkZXZpY2VzPyBJIG5lZWQgdG8gY29uc2lkZXIgYWxsIHBvc3NpYmlsaXRpZXMuIFFFTVUgaGFzIGBody9uZXQveGdtYWMuY2AgYW5kIEkgbmVlZCB0byBzZWUgaWYgdGhhdCYjMzk7cyByZWxhdGVkIHRvIGBzdG1tYWNgLiBOb3BlLCBgeGdtYWNgIGlzIENhbHhlZGEuIExldCYjMzk7cyBzZWUuLi4gYGh3L25ldC9hbGx3aW5uZXItc3VuOGktZW1hYy5jYCBpcyBmb3Igc3VuOGksIGFuZCBgaHcvbmV0L25wY203eHhfZW1jLmNgIGlzIHJlbGF0ZWQgdG8gbnBjbTd4eC4KCk9rYXksIGlzIGBzdG1tYWNgIHVzZWQgaW4gKmFueSogUUVNVSBtYWNoaW5lPyBJdCYjMzk7cyB1c2VkIGluIG1hbnkgQVJNIGJvYXJkcy4gYHN0bW1hY2AgaXMgdGhlIGRyaXZlciBmb3IgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIChEV01BQykuIEFuZCB5ZXMhIFFFTVUgKmRvZXMqIGVtdWxhdGUgYGh3L25ldC9kZXNpZ253YXJlLmNgISBTbyBgc3RtbWFjYCAqaXMqIHJlYWNoYWJsZSB0aHJvdWdoIFFFTVUuIE5vdywgbGV0JiMzOTtzIHNlZSBob3cgYHN0bW1hY2AgbWF0Y2hlcyB1cCB3aXRoIGBkZXNpZ253YXJlYC4gVGhpcyBpcyBnZXR0aW5nIGludGVyZXN0aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzbnBzLGR3bWFjJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMDg4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW43aS1hMjAtZ21hYy55YW1sPTk9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW43aS1hMjAtZ21hYy55YW1sOjEwOiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW43aS1hMjAtZ21hYy55YW1sLTExLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sPTk9bWFpbnRhaW5lcnM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMTItXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbDoxMzojIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24mIzM5O3QgbWF0Y2ggYWxsIG5vZGVzIHdpdGggJiMzOTtzbnBzLGR3bWFjJiMzOTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTE0LXNlbGVjdDpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbD0yOD1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQ1LSAgICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNTVpLWE1MjMtZ21hYzIwMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6NDY6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNC4yMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQ3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sPTkyPWFsbE9mOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6OTM6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTk0LSAgLSBpZjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbD0yNTU9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMjc0LSAgICAgICAgICAgICNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjI3NTogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMjc2LSAgICAgICAgfTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0zMjUtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6MzI2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0zMjctICAgICAgICB9O1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTM3NC0gICAgICAgIG1kaW8ge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6Mzc1OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0zNzYtICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTM4Ny0gICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDthbGx3aW5uZXIsc3VuNTVpLWE1MjMtZ21hYzIwMFwmIzM0OyxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjM4ODogICAgICAgICAgICAgICAgICAgICBcJiMzNDtzbnBzLGR3bWFjLTQuMjBhXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzg5LSAgICAgICAgcmVnID0gXHUwMDNjMHgwNDUxMDAwMCAweDEwMDAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQwNS0gICAgICAgIG1kaW8ge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6NDA2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC00MDctICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sPTEyPWRlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTE2LSAgIyBUT0RPOiBEZXRlcm1pbmUgaG93IHRvIGhhbmRsZSB0aGUgQXJyaWExMCByZXNldC1uYW1lLCBzdG1tYWNldGgtb2NwLCB0aGF0XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDoxNzogICMgZG9lcyBub3QgdmFsaWRhdGUgYWdhaW5zdCBuZXQvc25wcyxkd21hYy55YW1sLlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMTgtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw9MzE9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0zNS0gICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6MzY6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43MGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjM3OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0zOC0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMzktICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6NDA6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43MmFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjQxOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC00Mi0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtNDMtICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6NDQ6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43NGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjQ1OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC00Ni0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sPTE1Mz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjE1NDogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMTU1LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sPTE1OD1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0xNjYtICAgICAgICBldGhlcm5ldEBmZjcwMDAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDoxNjc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtMy43MGFcJiMzNDssXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDoxNjg6ICAgICAgICAgICAgXCYjMzQ7c25wcyxkd21hY1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTE2OS0gICAgICAgICAgICBhbHRyLHN5c21nci1zeXNjb24gPSBcdTAwM2NcdTAwMjZzeXNtZ3IgMHg2MCAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sPTEwPW1haW50YWluZXJzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTEzLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWw6MTQ6IyBXZSBuZWVkIGEgc2VsZWN0IGhlcmUgc28gd2UgZG9uJiMzOTt0IG1hdGNoIGFsbCBub2RlcyB3aXRoICYjMzk7c25wcyxkd21hYyYjMzk7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNS1zZWxlY3Q6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWw9Mjk9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbDozMDogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWwtMzEtICAtIGlmOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sPTEzMD1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTE0My0gICAgICBlbnVtOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWw6MTQ0OiAgICAgICAgLSBzbnBzLGR3bWFjLTMuNzBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbDoxNDU6ICAgICAgICAtIHNucHMsZHdtYWNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTE0Ni1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbD0xNzI9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWwtMTc0LSAgICBldGhtYWM6IGV0aGVybmV0QGM5NDEwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sOjE3NTogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDthbWxvZ2ljLG1lc29uLWd4YmItZHdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWNcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNzYtICAgICAgICByZWcgPSBcdTAwM2MweGM5NDEwMDAwIDB4MTAwMDBcdTAwM2UsIFx1MDAzYzB4Yzg4MzQ1NDAgMHg4XHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dD02PVJlcXVpcmVkIHByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQ6NzogLSBjb21wYXRpYmxlOiAgU2hvdWxkIGJlIFwmIzM0O2FkYXB0cnVtLGFuYXJpb24tZ21hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hY1wmIzM0O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbmFyaW9uLWdtYWMudHh0LTgtIC0gcGh5LW1vZGU6ICAgIFNob3VsZCBiZSBcJiMzNDtyZ21paVwmIzM0Oy4gT3RoZXIgbW9kZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dD0xMT1FeGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQtMTMtXHRnbWFjMTogZXRoZXJuZXRAZjIwMTQwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbmFyaW9uLWdtYWMudHh0OjE0Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7YWRhcHRydW0sYW5hcmlvbi1nbWFjXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbmFyaW9uLWdtYWMudHh0LTE1LVx0XHRyZWcgPSBcdTAwM2MweGYyMDE0MDAwIDB4NDAwMFx1MDAzZSwgXHUwMDNjMHhmMjAxODEwMCA4XHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbD0yNz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDoyODogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTI5LSAgLSBpZjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWw9NDg9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWwtNTMtICAgICAgICAgIC0gZXN3aW4sZWljNzcwMC1xb3MtZXRoLWNsay1pbnZlcnNpb25cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDo1NDogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMjBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC01NS1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWw9MTM3PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC0xMzktICAgIGV0aGVybmV0QDUwNDAwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDoxNDA6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7ZXN3aW4sZWljNzcwMC1xb3MtZXRoXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjLTUuMjBcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWwtMTQxLSAgICAgICAgcmVnID0gXHUwMDNjMHg1MDQwMDAwMCAweDEwMDAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC0xNjUtICAgIGV0aGVybmV0QDUwNDEwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDoxNjY6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7ZXN3aW4sZWljNzcwMC1xb3MtZXRoLWNsay1pbnZlcnNpb25cJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtNS4yMFwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC0xNjctICAgICAgICByZWcgPSBcdTAwM2MweDUwNDEwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw9MjE9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbDoyMjogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWwtMjMtXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbD0yND1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvaW50ZWwsZHdtYWMtcGxhdC55YW1sLTI5LSAgICAgICAgICAgICAgLSBpbnRlbCxrZWVtYmF5LWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbDozMDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWwtMzEtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw9NTc9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWwtMTA2LSAgICBnbWFjMDogZXRoZXJuZXRAM2EwMDAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MTA3OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2ludGVsLGtlZW1iYXktZHdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtNC4xMGFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMDgtICAgICAgICBpbnRlcnJ1cHRzID0gXHUwMDNjR0lDX1NQSSAxMTkgSVJRX1RZUEVfTEVWRUxfSElHSFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMjgtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MTI5OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMzAtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pcHE4MDZ4LWR3bWFjLnR4dD02PVJlcXVpcmVkIHByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0LTctXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0Ojg6LSBjb21wYXRpYmxlOiBzaG91bGQgYmUgXCYjMzQ7cWNvbSxpcHE4MDZ4LWdtYWNcJiMzNDsgYWxvbmcgd2l0aCBcJiMzNDtzbnBzLGR3bWFjXCYjMzQ7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0LTktXHQgICAgICBhbmQgYW55IGFwcGxpY2FibGUgbW9yZSBkZXRhaWxlZCB2ZXJzaW9uIG51bWJlclxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9MzQ9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sLTM4LSAgICAgICAgICAtIGxvb25nc29uLGxzMWItZ21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbDozOTogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNTBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sLTQwLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9Nzg9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sOjc5OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sLTgwLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9ODM9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC04OC0gICAgZ21hYzA6IGV0aGVybmV0QDFmZTEwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw6ODk6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bG9vbmdzb24sbHMxYi1nbWFjXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjLTMuNTBhXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC05MC0gICAgICAgIHJlZyA9IFx1MDAzYzB4MWZlMTAwMDAgMHgxMDAwMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sLTEwNy0gICAgICAgICAgICAjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sOjEwODogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC0xMDktXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD0zMz1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtMzctICAgICAgICAgIC0gbG9vbmdzb24sbHMxYy1lbWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sOjM4OiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy41MGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtMzktXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD03Nz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWw6Nzg6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtNzktXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD04Mj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sLTg3LSAgICBlbWFjOiBldGhlcm5ldEAxZmUxMDAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sOjg4OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2xvb25nc29uLGxzMWMtZW1hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hYy0zLjUwYVwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtODktICAgICAgICByZWcgPSBcdTAwM2MweDFmZTEwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbC0xMDYtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbDoxMDc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3NucHMsZHdtYWMtbWRpb1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtMTA4LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0xMj1kZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMTQtXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6MTU6IyBXZSBuZWVkIGEgc2VsZWN0IGhlcmUgc28gd2UgZG9uJiMzOTt0IG1hdGNoIGFsbCBub2RlcyB3aXRoICYjMzk7c25wcyxkd21hYyYjMzk7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMTYtc2VsZWN0OlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0yNz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbDoyODogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTI5LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sPTMwPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTM1LSAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDI3MTItZ21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sOjM2OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTQuMjBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMzctICAgICAgLSBpdGVtczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMzktICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6NDA6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4xMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC00MS0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC00NC0gICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ4MTk1LWdtYWNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbDo0NTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTQ2LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0xNTI9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTE2MC0gICAgZXRoOiBldGhlcm5ldEAxMTAxYzAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6MTYxOiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10MjcxMi1nbWFjXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjLTQuMjBhXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTE2Mi0gICAgICAgIHJlZyA9IFx1MDAzYzB4MTEwMWMwMDAgMHgxMzAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbD0yNT1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbDoyNjogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTI3LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sPTI4PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTMxLSAgICAgIC0gY29uc3Q6IG51dm90b24sbWEzNWQxLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWw6MzI6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjcwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTMzLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbD0xMDg9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTExMy0gICAgZXRoZXJuZXRANDAxMjAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sOjExNDogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtudXZvdG9uLG1hMzVkMS1kd21hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hYy0zLjcwYVwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbC0xMTUtICAgICAgICByZWcgPSBcdTAwM2MweDQwMTIwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTEzMS0gICAgICAgIG1kaW8ge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sOjEzMjogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTEzMy0gICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw9OT1tYWludGFpbmVyczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0xMy1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sOjE0OiMgV2UgbmVlZCBhIHNlbGVjdCBoZXJlIHNvIHdlIGRvbiYjMzk7dCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAmIzM5O3NucHMsZHdtYWMmIzM5O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWwtMTUtc2VsZWN0OlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sPTI2PWFsbE9mOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw6Mjc6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTI4LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw9Mjk9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0zNi0gICAgICAgICAgICAgIC0gbnhwLGlteDkzLWR3bWFjLWVxb3NcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sOjM3OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0zOC1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbD05Mz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC05OS0gICAgZXFvczogZXRoZXJuZXRAMzBiZjAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw6MTAwOiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtueHAsaW14OG1wLWR3bWFjLWVxb3NcJiMzNDssXCYjMzQ7c25wcyxkd21hYy01LjEwYVwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTEwMS0gICAgICAgICAgICByZWcgPSBcdTAwM2MweDMwYmYwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sPTk9bWFpbnRhaW5lcnM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTExLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sOjEyOiMgV2UgbmVlZCBhIHNlbGVjdCBoZXJlIHNvIHdlIGRvbiYjMzk7dCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAmIzM5O3NucHMsZHdtYWMmIzM5O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTEzLXNlbGVjdDpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWw9MjI9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtMjYtICAgICAgICAgIC0gbnhwLGxwYzE4NTAtZHdtYWNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDoyNzogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNjExXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWw6Mjg6ICAgICAgLSBjb25zdDogc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTI5LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbD02Mj1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDo2MzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTY0LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbD02Nz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtNzEtICAgIGV0aGVybmV0QDQwMDEwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDo3MjogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtueHAsbHBjMTg1MC1kd21hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hYy0zLjYxMVwmIzM0OywgXCYjMzQ7c25wcyxkd21hY1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbC03My0gICAgICAgIHJlZyA9IFx1MDAzYzB4NDAwMTAwMDAgMHgyMDAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sPTg4PWFsbE9mOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWw6ODk6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sLTkwLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sPTkzPWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sLTE0Ny0gICAgICAgICAgI3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWw6MTQ4OiAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWwtMTQ5LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxldGhxb3MueWFtbD0xNz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxldGhxb3MueWFtbDoxODogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sLTE5LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxldGhxb3MueWFtbD05Nz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20sZXRocW9zLnlhbWwtMTM0LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sOjEzNTogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20sZXRocW9zLnlhbWwtMTM2LSAgICAgICAgcGh5MTogcGh5QDQge1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbD0yMj1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbDoyMzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTI0LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sPTI1PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTMwLSAgICAgIC0gY29uc3Q6IHJlbmVzYXMscnpuMS1nbWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWw6MzE6ICAgICAgLSBjb25zdDogc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTMyLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbD01Mj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWwtNTctICAgIGV0aGVybmV0QDQ0MDAwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbDo1ODogICAgICBjb21wYXRpYmxlID0gXCYjMzQ7cmVuZXNhcyxyOWEwNmcwMzItZ21hY1wmIzM0OywgXCYjMzQ7cmVuZXNhcyxyem4xLWdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWNcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWwtNTktICAgICAgcmVnID0gXHUwMDNjMHg0NDAwMDAwMCAweDIwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MjY9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zMC0gICAgICAgICAgLSBjb25zdDogcmVuZXNhcyxyOWEwOGcwNDYtZ2JldGggIyBSWi9HM0xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sOjMxOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMzBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zMi0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTM3LSAgICAgICAgICAtIGNvbnN0OiByZW5lc2FzLHJ6djJoLWdiZXRoXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbDozODogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjIwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zOS0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtNDAtICAgICAgICAgIC0gY29uc3Q6IHJlbmVzYXMscjlhMDlnMDc3LWdiZXRoICMgUlovVDJIXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbDo0MTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjIwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC00Mi0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTQ0LSAgICAgICAgICAtIGNvbnN0OiByZW5lc2FzLHI5YTA5ZzA3Ny1nYmV0aFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6NDU6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtNDYtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MTY2PWFsbE9mOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MTY3OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0xNjgtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MjQ5PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTI1NC0gICAgZXRoZXJuZXRAMTVjMzAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MjU1OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3JlbmVzYXMscjlhMDlnMDU3LWdiZXRoXCYjMzQ7LCBcJiMzNDtyZW5lc2FzLHJ6djJoLWdiZXRoXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjLTUuMjBcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0yNTYtICAgICAgICByZWcgPSBcdTAwM2MweDE1YzMwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMzU1LSAgICAgICAgICAgICNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sOjM1NjogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMzU3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbD05PW1haW50YWluZXJzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbDoxMjojIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24mIzM5O3QgbWF0Y2ggYWxsIG5vZGVzIHdpdGggJiMzOTtzbnBzLGR3bWFjJiMzOTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMy1zZWxlY3Q6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sPTM3PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sLTU5LSAgICAgICAgICAgICAgLSByb2NrY2hpcCxydjExMjYtZ21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sOjYwOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTQuMjBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JvY2tjaGlwLWR3bWFjLnlhbWwtNjEtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sPTEzMj1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbDoxMzM6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMzQtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD0xOD1zZWxlY3Q6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtMjItICAgICAgICBlbnVtOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjM6ICAgICAgICAgIC0gc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjQ6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjQwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjU6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjUwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjY6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjYxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6Mjc6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjcwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6Mjg6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjcxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6Mjk6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjcyYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MzA6ICAgICAgICAgIC0gc25wcyxkd21hYy00LjAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozMTogICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMTBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozMjogICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMjBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozMzogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozNDogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMTBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozNTogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMjBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjM2OiAgICAgICAgICAtIHNucHMsZHdtYWMtNS4zMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTM3LSAgICAgICAgICAtIHNucHMsZHd4Z21hY1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sPTQ2PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtOTgtICAgICAgICAtIHJvY2tjaGlwLHJ2MTEyNi1nbWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo5OTogICAgICAgIC0gc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTAwOiAgICAgICAgLSBzbnBzLGR3bWFjLTMuNDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDE6ICAgICAgICAtIHNucHMsZHdtYWMtMy41MGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwMjogICAgICAgIC0gc25wcyxkd21hYy0zLjYxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTAzOiAgICAgICAgLSBzbnBzLGR3bWFjLTMuNzBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDQ6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MTBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwNTogICAgICAgIC0gc25wcyxkd21hYy0zLjcyYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTA2OiAgICAgICAgLSBzbnBzLGR3bWFjLTQuMDBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwNzogICAgICAgIC0gc25wcyxkd21hYy00LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTA4OiAgICAgICAgLSBzbnBzLGR3bWFjLTQuMjBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDk6ICAgICAgICAtIHNucHMsZHdtYWMtNS4wMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjExMDogICAgICAgIC0gc25wcyxkd21hYy01LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTExOiAgICAgICAgLSBzbnBzLGR3bWFjLTUuMjBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjExMjogICAgICAgIC0gc25wcyxkd21hYy01LjMwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTEzOiAgICAgICAgLSBzbnBzLGR3bWFjLTUuNDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC0xMTQtICAgICAgICAtIHNucHMsZHd4Z21hY1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTU1NS0gICAgICBjb21wYXRpYmxlOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NTU2OiAgICAgICAgY29uc3Q6IHNucHMsZHdtYWMtbWRpb1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtNTU3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sPTYxMT1hbGxPZjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC02MzUtICAgICAgICAgICAgICAgIC0gcWNvbSxzbTgxNTAtZXRocW9zXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo2MzY6ICAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy00LjAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo2Mzc6ICAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy00LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjM4OiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNC4yMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjYzOTogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo2NDA6ICAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy01LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjQxOiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNS4yMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjQyOiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNS4zMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjY0MzogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuNDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC02NDQtICAgICAgICAgICAgICAgIC0gc25wcyxkd3hnbWFjXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw9NjU0PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTcxMi0gICAgICAgICAgICAjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo3MTM6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3NucHMsZHdtYWMtbWRpb1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTcxNC0gICAgICAgICAgICBwaHkxOiBldGhlcm5ldC1waHlAMCB7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sPTIxPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTI0LSAgICAgIC0gY29uc3Q6IHNvcGhnbyxjdjE4MDBiLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw6MjU6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjcwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTI2LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbD02Mj1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbDo2MzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTY0LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbD02Nz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWwtNzEtICAgIGV0aGVybmV0QDQwNzAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sOjcyOiAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzb3BoZ28sY3YxODAwYi1kd21hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hYy0zLjcwYVwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC03My0gICAgICByZWcgPSBcdTAwM2MweDA0MDcwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTkzLSAgICAgIG1kaW8ge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sOjk0OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3NucHMsZHdtYWMtbWRpb1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC05NS0gICAgICAgICNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbD0yMj1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTI2LSAgICAgICAgICAtIGNvbnN0OiBzb3BoZ28sc2cyMDQyLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDoyNzogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjAwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtMjgtICAgICAgLSBpdGVtczpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTI5LSAgICAgICAgICAtIGNvbnN0OiBzb3BoZ28sc2cyMDQ0LWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDozMDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjMwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtMzEtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWw9NzE9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDo3MjogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtNzMtICAtIGlmOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sPTk1PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTk5LSAgICBldGhlcm5ldEAzMDAwNjAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDoxMDA6ICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3NvcGhnbyxzZzIwNDQtZHdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtNS4zMGFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbC0xMDEtICAgICAgcmVnID0gXHUwMDNjMHgzMDAwNjAwMCAweDQwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sPTIwPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTIzLSAgICAgIC0gY29uc3Q6IHNwYWNlbWl0LGszLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWw6MjQ6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjQwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTI1LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbD04MD1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbDo4MTogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTgyLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbD04NT1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWwtODktICAgIGV0aGVybmV0QGNhYzgwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbDo5MDogICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c3BhY2VtaXQsazMtZHdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtNS40MGFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWwtOTEtICAgICAgcmVnID0gXHUwMDNjMHhjYWM4MDAwMCAweDIwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbD0yND1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMjgtICAgICAgICAgIC0gY29uc3Q6IHN0YXJmaXZlLGpoNzEwMC1kd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbDoyOTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbC0zMC0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbC0zMS0gICAgICAgICAgLSBjb25zdDogc3RhcmZpdmUsamg3MTEwLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sOjMyOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMjBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzMtICAgICAgLSBpdGVtczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sLTM1LSAgICAgICAgICAtIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtZHdtYWNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWw6MzY6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbC0zNy1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sPTg4PWFsbE9mOlxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5OTA5CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNDUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBEZXNpZ25XYXJlIE1BQyBhbmQgUEhZIEludGVyZmFjZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0YXJnZXRzLiBZZXMsIGBzbnBzLGR3bWFjYCBpcyBkZWZpbml0ZWx5IHRoZSBEZXNpZ25XYXJlIE1BQy4gUUVNVSBlbXVsYXRlcyBpdCB3aXRoIGBody9uZXQvZGVzaWdud2FyZS5jYCwgYW5kIHRoYXQmIzM5O3MgdGhlIHNhbWUgdGhpbmcgYXMgYHNucHMsZHdtYWNgLiBTbyB0aGF0IG1lYW5zIHRoZSBgc3RtbWFjYCBkcml2ZXIgaXMgKmFic29sdXRlbHkqIHJlYWNoYWJsZSBpbiBRRU1VIHZpYSBwbGF0Zm9ybSBkZXZpY2VzLiBHb29kIHN0YXJ0LgoKTm93LCBsZXQmIzM5O3MgZHJpbGwgZG93bi4gVGhlIHBhdGNoIGluY2x1ZGVzIGEgc21hbGwgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGBzdG1tYWNfaW5pdF9waHlgIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jYC4gSXQmIzM5O3MgdGhpcyBibG9jayB0aGF0IHN0b29kIG91dDoKCmBgYGMKCQkvKiBJZiBhIGN1c3RvbSBQQ1MgaXMgaW4gdXNlLCBubyBQSFkgaXMgbmVlZGVkICovCgkJaWYgKHByaXYtJmd0O2h3LSZndDtwaHlsaW5rX3BjcykKCQkJcmV0dXJuIDA7CmBgYAoKSXQmIzM5O3MgYSBzbWFsbCBjaGFuZ2UsIGJ1dCBpdCYjMzk7cyBhIGNvbmRpdGlvbiBhbmQgdGhhdCYjMzk7cyBpbnRlcmVzdGluZyBmb3IgZnV6emluZy4gSXQmIzM5O3MgYSBrZXkgdG8gZGV0ZXJtaW5lIGlmIGEgUEhZIGlzIHVzZWQgb3Igbm90LgoKVGhlIG1vcmUgc2lnbmlmaWNhbnQgY2hhbmdlcywgaG93ZXZlciwgYXJlIGluIHRoZSBwaHlsaW5rIHBhcnQuIEhlcmUmIzM5O3Mgd2hhdCYjMzk7cyBiZWVuIGNoYW5nZWQ6CgpgYGBjCi0JaWYgKHBsLSZndDtjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fAotCSAgICAocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCAmYW1wOyZhbXA7Ci0JICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3oocGwtJmd0O2xpbmtfaW50ZXJmYWNlKSkpCiYjNDM7CWlmIChwbC0mZ3Q7Y2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQpCmBgYAoKVGhpcyBpcyBkaXJlY3RseSBpbXBhY3RpbmcgYHBoeWxpbmtfZXhwZWN0c19waHlgIGFuZCBgcGh5bGlua19hdHRhY2hfcGh5YC4gVGhpcyBpcyBhICpmdW5jdGlvbmFsIGNoYW5nZSogdG8gdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpdHNlbGYsIGFzIHdlbGwgYXMgdGhlIHN0bW1hYyBkcml2ZXIuIFRoYXQgbWFrZXMgdGhpcyBhcmVhIHZlcnkgcmVsZXZhbnQuCgpTbywgdGhlIHBhdGNoIGFsdGVycyBib3RoIHRoZSBjb3JlIHBoeWxpbmsgZnVuY3Rpb25hbGl0eSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIgaW4gdGVybXMgb2YgUEhZIGhhbmRsaW5nLiBUaGlzIGlzIHByb21pc2luZy4gSXQmIzM5O3Mgd29ydGggYSBmdXp6aW5nIGNhbXBhaWduIHRvIHNlZSBpZiB0aGVzZSBjaGFuZ2VzIGludHJvZHVjZSBhbnkgbmV3IHZ1bG5lcmFiaWxpdGllcy4KCkkgbmVlZCB0byBuYWlsIGRvd24gdGhlIHNwZWNpZmljIGZ1bmN0aW9ucy4gRm9yIHRoZSBwaHlsaW5rIHNpZGUsIEkmIzM5O20gdGhpbmtpbmcgdGhlc2UgZnVuY3Rpb25zIGFyZSB0aGUga2V5IGZvY3VzOiBgcGh5bGlua19leHBlY3RzX3BoeWAsIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCwgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgLCBhbmQgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YC4KCk5vdywgcmVnYXJkaW5nIHRoZSBgc3RtbWFjYCBzaWRlLCBgc3RtbWFjX2luaXRfcGh5YCBpdHNlbGYgaXMgc3RhdGljLCBzbyBJIG5lZWQgdG8gZmluZCBpdHMgY2FsbGVycy4gSXQgaXMgdXNlZCBpbnNpZGUgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19kdnJfcHJvYmVgLiBTbyB0aG9zZSBhcmUgdGhlIGZ1bmN0aW9ucyB0byBleGFtaW5lIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0bW1hY19pbml0X3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyNjU9c3RhdGljIHZvaWQgc3RtbWFjX2NoZWNrX3Bjc19tb2RlKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTAtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEyOTE6ICogc3RtbWFjX2luaXRfcGh5IC0gUEhZIGluaXRpYWxpemF0aW9uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTItICogQGRldjogbmV0IGRldmljZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTctICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEyOTg6c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTI5OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MTc3PXN0YXRpYyBpbnQgc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxOTU6XHRyZXQgPSBzdG1tYWNfaW5pdF9waHkoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDE5Ni1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMzk3CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMTIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBgc3RtbWFjYCBEcml2ZXImIzM5O3MgUEhZIENvbm5lY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSB0cmFjaW5nIHRocm91Z2ggdGhpcyBjb2RlIGFuZCBpdCBsb29rcyBsaWtlIGBzdG1tYWNfb3BlbmAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaW5pdGlhdGVzIHRoZSB3aG9sZSBwcm9jZXNzLiBUaGF0JiMzOTtzIHRoZSBlbnRyeSBwb2ludCBJIG5lZWQgdG8gemVybyBpbiBvbi4gSSYjMzk7bSBnb2luZyB0byBhZGQgYHN0bW1hY19vcGVuYCwgYWxvbmcgd2l0aCBhbGwgaXRzIHJlbGF0ZWQgUEhZIGNvbm5lY3Rpb24gZnVuY3Rpb25zIOKAkyBgcGh5bGlua19jb25uZWN0X3BoeWAsIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCwgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgYW5kIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCDigJMgdG8gbXkgbGlzdCBvZiBgRm9jdXNTeW1ib2xzYC4gVGhhdCBnaXZlcyBtZSBhIGNsZWFyIHBhdGggdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb24uCgpOb3csIGxldCYjMzk7cyB0aGluayBhYm91dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGludm9sdmVkIGhlcmUuIEZvciBgc3RtbWFjYCwgdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBsaWtlbHkgYENPTkZJR19TVE1NQUNfRVRIYC4gRm9yIGBwaHlsaW5rYCwgaXQmIzM5O3MgcHJvYmFibHkgYENPTkZJR19QSFlMSU5LYC4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlcyBmb3IgYm90aCBgU1RNTUFDX0VUSGAgYW5kIGBQSFlMSU5LYCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gYW5kIHRvIHVuZGVyc3RhbmQgYW55IGRlcGVuZGVuY2llcy4gS25vd2luZyB0aGUgY29uZmlndXJhdGlvbiB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlc2UgZGlmZmVyZW50IG1vZHVsZXMgYXJlIGFjdGl2YXRlZCBhbmQgY29tcGlsZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTVE1NQUNfRVRIJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjpjb25maWcgU1RNTUFDX0VUSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIE11bHRpLUdpZ2FiaXQgRXRoZXJuZXQgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxODk1CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKlBIWUxJTksgQ2hlY2stSW4qKgoKUmlnaHQsIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCBgUEhZTElOS2AuIEdpdmVuIHdoYXQgd2UmIzM5O3JlIHdvcmtpbmcgb24sIGl0IHNlZW1zIGxpa2UgYSBjcnVjaWFsIHBvaW50IHRvIHJldmlzaXQuIEkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyBpdHMgY3VycmVudCBzdGF0dXMgYW5kIHdoZXRoZXIgaXQmIzM5O3Mgc3RpbGwgdGhlIGJlc3QgdG9vbCBmb3IgdGhpcyBwYXJ0aWN1bGFyIHRhc2suIElzIGl0IG1lZXRpbmcgdGhlIHBlcmZvcm1hbmNlIHJlcXVpcmVtZW50cz8gQXJlIHRoZXJlIGFueSBrbm93biBidWdzIG9yIGxpbWl0YXRpb25zIHRoYXQgbWlnaHQgYmVjb21lIGNyaXRpY2FsIGRvd24gdGhlIGxpbmU/IEkgbmVlZCB0byBiZSBzdXJlIHRoYXQgYFBIWUxJTktgIGlzbiYjMzk7dCBnb2luZyB0byBib3R0bGVuZWNrIHRoaXMgYW5hbHlzaXMsIHNvIGEgbWVudGFsIGNoZWNrbGlzdCBvZiBpdHMgZnVuY3Rpb25hbGl0eSBpcyBpbiBvcmRlci4gSGF2ZSB0aGUgcmVjZW50IHVwZGF0ZXMgaW1wYWN0ZWQgdGhlIGludGVuZGVkIGZ1bmN0aW9uPyBJdCBtaWdodCBhbHNvIGJlIGEgZ29vZCBpZGVhIHRvIHF1aWNrbHkgc2NhbiB0aGUgZG9jdW1lbnRhdGlvbiBhZ2FpbiwganVzdCB0byBtYWtlIHN1cmUgSSYjMzk7bSB1cCB0byBzcGVlZCBvbiBhbnkgbmV3IGZlYXR1cmVzIHRoYXQgbWF5IGhhdmUgYmVlbiBhZGRlZC4gTGV0JiMzOTtzIHNlZSBpZiBpdCBpcyBzdGlsbCB0aGUgb3B0aW1hbCBvcHRpb24gZm9yIHRoaXMgd29ya2Zsb3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBQSFlMSU5LJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZzo2OmNvbmZpZyBQSFlMSU5LXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy03LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIxNzkKCQkJCQkJCW91dHB1dDogMTgKCQkJCQkJCXRob3VnaHRzOiA0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBhbHJlYWR5IGRlZXAgaW4gdGhlIHdlZWRzIG9mIGRldmljZSBkcml2ZXIgY29uZmlndXJhdGlvbjoKCioqTmF2aWdhdGluZyBEZXZpY2UgRHJpdmVyIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHNvIGBQSFlMSU5LYCBpcyBvbmUgb2YgdGhvc2UgdHJpc3RhdGUgc3ltYm9scywgbWVhbmluZyBpdCYjMzk7cyBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFuZCBkb2VzbiYjMzk7dCBnZXQgYSBkaXJlY3QgcHJvbXB0IG9mIGl0cyBvd24uIEl0JiMzOTtzIGVzc2VudGlhbGx5IGEgZGVwZW5kZW5jeS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGl0JiMzOTtzIGJlaW5nIHNlbGVjdGVkLiBNeSBodW5jaCBpcyB0aGF0IGBTVE1NQUNfRVRIYCBtaWdodCBiZSB0aGUgY3VscHJpdC4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgU1RNTUFDX0VUSGAgaXMsIGluIGZhY3QsIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyBgUEhZTElOS2AuIExldCBtZSBjcm9zcy1yZWZlcmVuY2UgdGhlIEtjb25maWcgZmlsZXMsIG9yIHVzZSBteSB0b29sIG9mIGNob2ljZSB0byByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGNoYWluLiBJIG5lZWQgdG8gY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBhbmQgZW5zdXJlIHRoaXMgYmVoYXZpb3IgaXMgaW50ZW50aW9uYWwuIFVuZGVyc3RhbmRpbmcgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGVzZSBzeW1ib2xzIGlzIGtleSB0byBjb250cm9sbGluZyBteSBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IFBIWUxJTksmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdD03ND10aGlzIGRvY3VtZW50YXRpb24uXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdC05MS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q6OTI6XHRzZWxlY3QgUEhZTElOS1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdC05My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvS2NvbmZpZz0yPWNvbmZpZyBBTFRFUkFfVFNFXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWctNi1cdHNlbGVjdCBQSFlMSUJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9LY29uZmlnOjc6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWctOC1cdHNlbGVjdCBQQ1NfTFlOWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvS2NvbmZpZz0yMD1jb25maWcgQUc3MVhYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9LY29uZmlnLTIyLVx0ZGVwZW5kcyBvbiBBVEg3OSB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvS2NvbmZpZzoyMzpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL0tjb25maWctMjQtXHRpbXBseSBORVRfU0VMRlRFU1RTXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnPTIyPWNvbmZpZyBNQUNCXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTI1LVx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjI2Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0yNy1cdHNlbGVjdCBDUkMzMlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnPTgwPWNvbmZpZyBVQ0NfR0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnLTgzLVx0c2VsZWN0IEZTTF9QUV9NRElPXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZzo4NDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZy04NS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9LY29uZmlnPTI9bWVudWNvbmZpZyBGU0xfRFBBQV9FVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIEZTTF9EUEFBIFx1MDAyNlx1MDAyNiBGU0xfRk1BTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvS2NvbmZpZzo1Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWctNi1cdHNlbGVjdCBQQ1NfTFlOWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnPTI9Y29uZmlnIEZTTF9EUEFBMl9FVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBGU0xfTUNfQlVTIFx1MDAyNlx1MDAyNiBGU0xfTUNfRFBJT1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWc6NTpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZy02LVx0c2VsZWN0IFBDU19MWU5YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWc9MzM9Y29uZmlnIEZTTF9EUEFBMl9TV0lUQ0hcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZy0zNy1cdGRlcGVuZHMgb24gRlNMX01DX0JVUyBcdTAwMjZcdTAwMjYgRlNMX01DX0RQSU9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnOjM4Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnLTM5LVx0c2VsZWN0IFBDU19MWU5YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc9MzA9Y29uZmlnIEZTTF9FTkVUQ1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTM3LVx0c2VsZWN0IE5YUF9FTkVUQ19QRl9DT01NT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnOjM4Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTM5LVx0c2VsZWN0IFBDU19MWU5YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc9NDg9Y29uZmlnIE5YUF9FTkVUQzRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZy01NS1cdHNlbGVjdCBOWFBfTlRNUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc6NTY6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWctNTctXHRzZWxlY3QgRElNTElCXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc9NjY9Y29uZmlnIEZTTF9FTkVUQ19WRlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTcxLVx0c2VsZWN0IEZTTF9FTkVUQ19NRElPXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZzo3MjpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZy03My1cdHNlbGVjdCBESU1MSUJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9LY29uZmlnPTI9Y29uZmlnIEZTTF9GTUFOXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZy01LVx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9LY29uZmlnOjY6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZy03LVx0c2VsZWN0IFBDU19MWU5YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvS2NvbmZpZz0yPWNvbmZpZyBGU19FTkVUXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvS2NvbmZpZy01LVx0c2VsZWN0IE1JSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvS2NvbmZpZzo2Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L0tjb25maWctNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWc9NTk9Y29uZmlnIE1WTkVUQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvS2NvbmZpZy02Mi1cdHNlbGVjdCBNVk1ESU9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvS2NvbmZpZzo2MzpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWctNjQtXHRzZWxlY3QgUEFHRV9QT09MXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9LY29uZmlnPTg2PWNvbmZpZyBNVlBQMlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvS2NvbmZpZy04OS1cdHNlbGVjdCBNVk1ESU9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvS2NvbmZpZzo5MDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWctOTEtXHRzZWxlY3QgUEFHRV9QT09MXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnPTY9Y29uZmlnIFBSRVNURVJBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTEwLVx0c2VsZWN0IE5FVF9ERVZMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWc6MTE6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTEyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWc9MTQ9Y29uZmlnIE5FVF9NRURJQVRFS19TT0Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnLTE3LVx0c2VsZWN0IFBJTkNUUkxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWc6MTg6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvS2NvbmZpZy0xOS1cdHNlbGVjdCBESU1MSUJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWc9MjA9Y29uZmlnIEZCTklDXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTI5LVx0c2VsZWN0IFBDU19YUENTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWc6MzA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTMxLVx0c2VsZWN0IFBMRE1GV1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnPTQ1PWNvbmZpZyBMQU43NDNYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL0tjb25maWctNTEtXHRzZWxlY3QgQ1JDMzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnOjUyOlx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnLTUzLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWc9MT1jb25maWcgTEFOOTY2WF9TV0lUQ0hcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnLTctXHRkZXBlbmRzIG9uIEJSSURHRSB8fCBCUklER0U9blxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZzo4Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWctOS1cdHNlbGVjdCBQQUdFX1BPT0xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWc9MT1jb25maWcgU1BBUlg1X1NXSVRDSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy04LVx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzo5Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy0xMC1cdHNlbGVjdCBQSFlfU1BBUlg1X1NFUkRFU1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2MvS2NvbmZpZz0xNT1jb25maWcgTVNDQ19PQ0VMT1RfU1dJVENIX0xJQlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2MvS2NvbmZpZy0xOS1cdHNlbGVjdCBQQUNLSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL0tjb25maWc6MjA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL0tjb25maWc9NDI9Y29uZmlnIFJFTkVTQVNfRVRIRVJfU1dJVENIXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9LY29uZmlnLTQ3LVx0c2VsZWN0IE1JSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9LY29uZmlnOjQ4Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvS2NvbmZpZy00OS1cdHNlbGVjdCBSRU5FU0FTX0dFTjRfUFRQXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05LVx0c2VsZWN0IFBBR0VfUE9PTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExLVx0c2VsZWN0IENSQzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL0tjb25maWc9MjY9Y29uZmlnIFRFSFVUSV9UTjQwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL0tjb25maWctMzAtXHRzZWxlY3QgRldfTE9BREVSXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvS2NvbmZpZzozMTpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvS2NvbmZpZy0zMi1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9LY29uZmlnPTk2PWNvbmZpZyBUSV9LM19BTTY1X0NQU1dfTlVTU1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL0tjb25maWctMTAwLVx0c2VsZWN0IFRJX0RBVklOQ0lfTURJT1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvS2NvbmZpZzoxMDE6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvS2NvbmZpZy0xMDItXHRzZWxlY3QgUEFHRV9QT09MXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnPTE5PWNvbmZpZyBMSUJXWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy0yMy1cdHNlbGVjdCBESU1MSUJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZzoyNDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWctMjUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L0tjb25maWc9MjY9Y29uZmlnIFhJTElOWF9BWElfRU1BQ1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC9LY29uZmlnLTI5LVx0ZGVwZW5kcyBvbiBYSUxJTlhfRE1BXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngvS2NvbmZpZzozMDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngvS2NvbmZpZy0zMS1cdHNlbGVjdCBESU1MSUJcbi0tXG5kcml2ZXJzL25ldC9wY3MvS2NvbmZpZz04PWNvbmZpZyBQQ1NfWFBDU1xuZHJpdmVycy9uZXQvcGNzL0tjb25maWctOS1cdHRyaXN0YXRlIFwmIzM0O1N5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgWFBDU1wmIzM0O1xuZHJpdmVycy9uZXQvcGNzL0tjb25maWc6MTA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvcGNzL0tjb25maWctMTEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc9MTEzPWNvbmZpZyBVU0JfTEFONzhYWFxuLS1cbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTExNS1cdHNlbGVjdCBNSUlcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnOjExNjpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy0xMTctXHRzZWxlY3QgTUlDUk9DSElQX1BIWVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTE2Nj1jb25maWcgVVNCX05FVF9BWDg4MTdYXG4tLVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctMTY5LVx0c2VsZWN0IENSQzMyXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZzoxNzA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvdXNiL0tjb25maWctMTcxLVx0c2VsZWN0IEFYODg3OTZCX1BIWVxuLS1cbm5ldC9kc2EvS2NvbmZpZz0zPW1lbnVjb25maWcgTkVUX0RTQVxuLS1cbm5ldC9kc2EvS2NvbmZpZy05LVx0c2VsZWN0IE5FVF9TV0lUQ0hERVZcbm5ldC9kc2EvS2NvbmZpZzoxMDpcdHNlbGVjdCBQSFlMSU5LXG5uZXQvZHNhL0tjb25maWctMTEtXHRzZWxlY3QgTkVUX0RFVkxJTktcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU2MTUKCQkJCQkJCW91dHB1dDogMjY3CgkJCQkJCQl0aG91Z2h0czogNjI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IFJlYXNvbmluZyBmb3IgRnV6emluZyB0aGlzIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gZGlnZ2luZyBpbnRvIHRoaXMgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBwcm9jZXNzIGlzIHRoaXM6IGBTVE1NQUNfRVRIYCBkZWZpbml0ZWx5IHVzZXMgYFBIWUxJTktgLiAgQW5kLCBpdCBsb29rcyBsaWtlIGBVU0JfTEFONzhYWGAgYW5kIGBVU0JfTkVUX0FYODgxN1hgIGFsc28gZGVwZW5kIG9uIGBQSFlMSU5LYC4gR3JlYXQuICBUaG9zZSB0aHJlZSBsb29rIGxpa2UgZ29vZCBpbml0aWFsIGNvbmZpZ3VyYXRpb25zIHRvIGVuYWJsZSBmb3IgdGVzdGluZy4KCkkgbmVlZCB0byBjb25maXJtIHdoYXQgdGhvc2UgY29uZmlndXJhdGlvbnMgYWN0dWFsbHkgKmFyZSosIHNvIGEgcXVpY2sgY2hlY2suLi4gWWVwLCBgVVNCX05FVF9BWDg4MTdYYCBpcyBmb3IgdGhlIEFTSVggQVg4OHh4eCBVU0IgRXRoZXJuZXQgYWRhcHRlcnMsIGFuZCBgVVNCX0xBTjc4WFhgIGlzIGZvciB0aGUgTWljcm9jaGlwIExBTjc4WFggVVNCIEV0aGVybmV0IGFkYXB0ZXJzLiBQZXJmZWN0LiBUaGVzZSBhcmUgVVNCIGRldmljZXMsIGFuZCB0aGF0IG1lYW5zIEkgY2FuIGxldmVyYWdlIFN5emthbGxlciYjMzk7cyBVU0IgZnV6emVyIHJlYWxseSBlZmZlY3RpdmVseS4gIExldCYjMzk7cyBhZGQgdGhlc2UgdG8gdGhlIGBFbmFibGVDb25maWdzYC4KCk5vdywgbGV0JiMzOTtzIHZlcmlmeSBteSBGb2N1c1N5bWJvbHMuIEkmIzM5O3ZlIGdvdCBgc3RtbWFjX29wZW5gLCBgcGh5bGlua19jb25uZWN0X3BoeWAsIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCwgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgYW5kIGBwaHlsaW5rX2V4cGVjdHNfcGh5YC4KCkEgcXVpY2sgY2hlY2sgY29uZmlybXMgYHBoeWxpbmtfZXhwZWN0c19waHlgIGlzIGV4cG9ydGVkIGFuZCBjYWxsZWQgYnkgZHJpdmVycy4gU2FtZSBmb3IgYHBoeWxpbmtfY29ubmVjdF9waHlgLCBgcGh5bGlua19vZl9waHlfY29ubmVjdGAsIGFuZCBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgLiBBbmQgYHN0bW1hY19vcGVuYCBpcyBhIG5ldF9kZXZpY2Vfb3BzIGNhbGxiYWNrLCBzbyB0aGF0IGFsc28gbG9va3MgcmlnaHQuCgpMZXQmIzM5O3MgcXVpY2tseSBjaGVjazogYHN0bW1hY19vcGVuYCBjYWxscyBgc3RtbWFjX2luaXRfcGh5YCwgd2hpY2ggaXMgd2hlcmUgdGhlIG1vZGlmaWVkIGNvZGUgaXMuIE9rYXksIGV2ZXJ5dGhpbmcgY2hlY2tzIG91dC4KCk5vdywgbGV0JiMzOTtzIHJldmlldyB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGlzIHNlbGVjdGlvbi4gVGhpcyBwYXRjaCBzZWVtcyB0byBiZSBtb2RpZnlpbmcgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAuIEl0JiMzOTtzIHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBpbnRyb2R1Y2VzIGEgc3BlY2lmaWMgY2hlY2sgd2l0aGluIGBzdG1tYWNfaW5pdF9waHlgLiBUaGlzIG1lYW5zIGl0IGhhcyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcGh5bGluayBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIEFuZCBpbXBvcnRhbnRseSwgdGhpcyBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHRocm91Z2ggc2V2ZXJhbCBlbXVsYXRlZCBkZXZpY2VzLCBpbmNsdWRpbmcgdGhvc2UgVVNCIEV0aGVybmV0IGFkYXB0ZXJzIEkganVzdCBjb25maXJtZWQsICphbmQqIGFsc28gcGxhdGZvcm0gZGV2aWNlcyBsaWtlIHRoZSBEZXNpZ25XYXJlIE1BQyAodGhhdCB1c2VzIGBzdG1tYWNgKS4gQmVjYXVzZSB0aGUgY2hhbmdlcyBhcmUgaW4gdGhlc2UgY29yZSBsb2NhdGlvbnMsIGFuZCBhcmUgcmVhY2hhYmxlIGluIGEgZmV3IGRpZmZlcmVudCB3YXlzLCB0aGUgcGF0Y2ggaXMgYWJzb2x1dGVseSB3b3J0aCBmdXp6aW5nLgoKTXkgY2hvc2VuIGNvbmZpZ3MgYXJlOgpgU1RNTUFDX0VUSGAKYFVTQl9MQU43OFhYYApgVVNCX05FVF9BWDg4MTdYYAoKTXkgZm9jdXNlZCBzeW1ib2xzIGFyZToKYHN0bW1hY19vcGVuYApgcGh5bGlua19jb25uZWN0X3BoeWAKYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgCmBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAKYHBoeWxpbmtfZXhwZWN0c19waHlgCgpPa2F5LCB0aGF0JiMzOTtzIGV2ZXJ5dGhpbmcuIExldCYjMzk7cyBzZXQgdGhlIHJlc3VsdHMgYW5kIGdldCB0aGlzIGZ1enppbmcgcnVuIGdvaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtVU0JfTEFONzhYWCYjMzQ7LAogICAgJiMzNDtVU0JfTkVUX0FYODgxN1gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtwaHlsaW5rX2Nvbm5lY3RfcGh5JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19leHBlY3RzX3BoeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYnkgcmVtb3ZpbmcgdGhlIGBNTE9fQU5fSU5CQU5EYCBhbmQgYHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzemAgY2hlY2tzLiBJdCBhbHNvIGFkZHMgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCB0byByZXR1cm4gZWFybHkgaWYgYSBjdXN0b20gUENTIGlzIGluIHVzZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgcGh5bGluayBjb3JlIGFuZCB0aGUgc3RtbWFjIGRyaXZlci4gVGhlIHBoeWxpbmsgY29yZSBpcyByZWFjaGFibGUgdmlhIHZhcmlvdXMgZW11bGF0ZWQgZGV2aWNlcywgaW5jbHVkaW5nIFVTQiBldGhlcm5ldCBhZGFwdGVycyAoZS5nLiwgTEFONzhYWCwgQVg4ODE3WCkgYW5kIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIERlc2lnbldhcmUgTUFDIC8gc3RtbWFjKS4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtVU0JfTEFONzhYWCYjMzQ7LAogICAgJiMzNDtVU0JfTkVUX0FYODgxN1gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtwaHlsaW5rX2Nvbm5lY3RfcGh5JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19leHBlY3RzX3BoeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYnkgcmVtb3ZpbmcgdGhlIGBNTE9fQU5fSU5CQU5EYCBhbmQgYHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzemAgY2hlY2tzLiBJdCBhbHNvIGFkZHMgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCB0byByZXR1cm4gZWFybHkgaWYgYSBjdXN0b20gUENTIGlzIGluIHVzZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgcGh5bGluayBjb3JlIGFuZCB0aGUgc3RtbWFjIGRyaXZlci4gVGhlIHBoeWxpbmsgY29yZSBpcyByZWFjaGFibGUgdmlhIHZhcmlvdXMgZW11bGF0ZWQgZGV2aWNlcywgaW5jbHVkaW5nIFVTQiBldGhlcm5ldCBhZGFwdGVycyAoZS5nLiwgTEFONzhYWCwgQVg4ODE3WCkgYW5kIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIERlc2lnbldhcmUgTUFDIC8gc3RtbWFjKS4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjM4LjM5MjAxNjMwMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMjE2NzY2NjM1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJVU0JfTEFONzhYWFwiLFxuICAgIFwiVVNCX05FVF9BWDg4MTdYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInBoeWxpbmtfY29ubmVjdF9waHlcIixcbiAgICBcInBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RcIixcbiAgICBcInBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0XCIsXG4gICAgXCJwaHlsaW5rX2V4cGVjdHNfcGh5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGJ5IHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIGVhcmx5IGlmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHBoeWxpbmsgY29yZSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIFRoZSBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHZpYSB2YXJpb3VzIGVtdWxhdGVkIGRldmljZXMsIGluY2x1ZGluZyBVU0IgZXRoZXJuZXQgYWRhcHRlcnMgKGUuZy4sIExBTjc4WFgsIEFYODgxN1gpIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBEZXNpZ25XYXJlIE1BQyAvIHN0bW1hYykuIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjM4LjM5MjAyMjM1MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzUwODM2ODMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgM2ZhNDNiZWJiMDFhYTQxYzEwNWY1ZjdjNWUzZDAxYThmZjI4YzBlNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyNyAwMzozOTozNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbmluZGV4IDBkZTRiYzk0OTkxMzg2Li4yYjJkMjZhMjk2MTI4NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbkBAIC0xMzI4LDYgKzEzMjgsMTAgQEAgc3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0XFx0aW50IGFkZHIgPSBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VwaHlfYWRkcjtcXG4gXFx0XFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldjtcXG4gXFxuK1xcdFxcdC8qIElmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UsIG5vIFBIWSBpcyBuZWVkZWQgKi9cXG4rXFx0XFx0aWYgKHByaXYtXFx1MDAzZWh3LVxcdTAwM2VwaHlsaW5rX3BjcylcXG4rXFx0XFx0XFx0cmV0dXJuIDA7XFxuK1xcbiBcXHRcXHRpZiAoYWRkciBcXHUwMDNjIDApIHtcXG4gXFx0XFx0XFx0bmV0ZGV2X2Vycihwcml2LVxcdTAwM2VkZXYsIFxcXCJubyBwaHkgZm91bmRcXFxcblxcXCIpO1xcbiBcXHRcXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcXG5pbmRleCA1OWRmZTM1YWZhNTRmYy4uZmQ0ZTgwZWVlZGE3M2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcXG5AQCAtMTk2NCw5ICsxOTY0LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19kZXN0cm95KTtcXG4gICovXFxuIGJvb2wgcGh5bGlua19leHBlY3RzX3BoeShzdHJ1Y3QgcGh5bGluayAqcGwpXFxuIHtcXG4tXFx0aWYgKHBsLVxcdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fFxcbi1cXHQgICAgKHBsLVxcdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9JTkJBTkQgXFx1MDAyNlxcdTAwMjZcXG4tXFx0ICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3oocGwtXFx1MDAzZWxpbmtfaW50ZXJmYWNlKSkpXFxuK1xcdGlmIChwbC1cXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQpXFxuIFxcdFxcdHJldHVybiBmYWxzZTtcXG4gXFx0cmV0dXJuIHRydWU7XFxuIH1cXG5AQCAtMjIwNSw5ICsyMjAzLDcgQEAgc3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxcbiB7XFxuIFxcdHUzMiBmbGFncyA9IDA7XFxuIFxcbi1cXHRpZiAoV0FSTl9PTihwbC1cXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQgfHxcXG4tXFx0XFx0ICAgIChwbC1cXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fSU5CQU5EIFxcdTAwMjZcXHUwMDI2XFxuLVxcdFxcdCAgICAgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6KGludGVyZmFjZSkgXFx1MDAyNlxcdTAwMjYgIXBsLVxcdTAwM2VzZnBfYnVzKSkpXFxuK1xcdGlmIChXQVJOX09OKHBsLVxcdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCkpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4gXFx0aWYgKHBsLVxcdTAwM2VwaHlkZXYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjM5LjE0MzczNDYzNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjExMTQxNTk0MDE3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJVU0JfTEFONzhYWFwiLFxuICAgIFwiVVNCX05FVF9BWDg4MTdYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInBoeWxpbmtfY29ubmVjdF9waHlcIixcbiAgICBcInBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RcIixcbiAgICBcInBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0XCIsXG4gICAgXCJwaHlsaW5rX2V4cGVjdHNfcGh5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGJ5IHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIGVhcmx5IGlmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHBoeWxpbmsgY29yZSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIFRoZSBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHZpYSB2YXJpb3VzIGVtdWxhdGVkIGRldmljZXMsIGluY2x1ZGluZyBVU0IgZXRoZXJuZXQgYWRhcHRlcnMgKGUuZy4sIExBTjc4WFgsIEFYODgxN1gpIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBEZXNpZ25XYXJlIE1BQyAvIHN0bW1hYykuIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDNmYTQzYmViYjAxYWE0MWMxMDVmNWY3YzVlM2QwMWE4ZmYyOGMwZTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyNyAwMzozOTozNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCAwZGU0YmM5NDk5MTM4Ni4uMmIyZDI2YTI5NjEyODQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtMTMyOCw2ICsxMzI4LDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHRcdGludCBhZGRyID0gcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXBoeV9hZGRyO1xuIFx0XHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2O1xuIFxuK1x0XHQvKiBJZiBhIGN1c3RvbSBQQ1MgaXMgaW4gdXNlLCBubyBQSFkgaXMgbmVlZGVkICovXG4rXHRcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZXBoeWxpbmtfcGNzKVxuK1x0XHRcdHJldHVybiAwO1xuK1xuIFx0XHRpZiAoYWRkciBcdTAwM2MgMCkge1xuIFx0XHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwibm8gcGh5IGZvdW5kXFxuXCIpO1xuIFx0XHRcdHJldHVybiAtRU5PREVWO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5pbmRleCA1OWRmZTM1YWZhNTRmYy4uZmQ0ZTgwZWVlZGE3M2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG4rKysgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5AQCAtMTk2NCw5ICsxOTY0LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19kZXN0cm95KTtcbiAgKi9cbiBib29sIHBoeWxpbmtfZXhwZWN0c19waHkoc3RydWN0IHBoeWxpbmsgKnBsKVxuIHtcbi1cdGlmIChwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fFxuLVx0ICAgIChwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9JTkJBTkQgXHUwMDI2XHUwMDI2XG4tXHQgICAgIHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzeihwbC1cdTAwM2VsaW5rX2ludGVyZmFjZSkpKVxuK1x0aWYgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4gXHRyZXR1cm4gdHJ1ZTtcbiB9XG5AQCAtMjIwNSw5ICsyMjAzLDcgQEAgc3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxuIHtcbiBcdHUzMiBmbGFncyA9IDA7XG4gXG4tXHRpZiAoV0FSTl9PTihwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fFxuLVx0XHQgICAgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCBcdTAwMjZcdTAwMjZcbi1cdFx0ICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3ooaW50ZXJmYWNlKSBcdTAwMjZcdTAwMjYgIXBsLVx1MDAzZXNmcF9idXMpKSlcbitcdGlmIChXQVJOX09OKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEKSlcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRpZiAocGwtXHUwMDNlcGh5ZGV2KVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6Mzk6MzkuMTQzNzQxNDc0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA2NjM0MzQ5NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgUGF0Y2g6IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQncyB0d2Vha2luZyBgc3RtbWFjX21haW4uY2AgYW5kIGBwaHlsaW5rLmNgLiBUaGUgY2hhbmdlcyBhcmUgYWJvdXQgcmVtb3Zpbmcgc29tZSBjb25kaXRpb25zIHJlbGF0ZWQgdG8gYE1MT19BTl9JTkJBTkRgIGFuZCBgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6YCBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgLCBhbmQgYWRkaW5nIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgaWYgYHByaXYtXHUwMDNlaHctXHUwMDNlcGh5bGlua19wY3NgIGlzIHNldC4gTXkgZ3V0IGZlZWxpbmcgaXMgdG8gZXZhbHVhdGUgdGhpcyBmb3IgZnV6emluZyBwb3RlbnRpYWwuXG5cbkZpcnN0LCBsZXQncyBicmVhayBpdCBkb3duLiBgc3RtbWFjYCBpcyBhIHBoeXNpY2FsIEV0aGVybmV0IE1BQyBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciBTVE1pY3JvZWxlY3Ryb25pY3MgaGFyZHdhcmUg4oCTIHlvdXIgY2xhc3NpYyAxMC8xMDAvMTAwMCBzdHVmZi4gYHBoeWxpbmtgIGlzIHRoZSBsYXllciB0aGF0IG1hbmFnZXMgdGhlIFBIWSBsaW5rcy4gU28sIGNhbiBJIHRhcmdldCBgcGh5bGlua19leHBlY3RzX3BoeWAsIGBwaHlsaW5rX2F0dGFjaF9waHlgLCBvciBgc3RtbWFjX2luaXRfcGh5YCBmb3IgZnV6emluZz8gYHBoeWxpbmtfZXhwZWN0c19waHlgIGlzIGV4cG9ydGVkLCBtZWFuaW5nIG90aGVyIGRyaXZlcnMgdXNlIGl0IGRpcmVjdGx5LCBzbyB0aGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBgcGh5bGlua19hdHRhY2hfcGh5YCBpcyBzdGF0aWMsIHdoaWNoIG1lYW5zIGl0J3MgY2FsbGVkIGludGVybmFsbHkgYnkgYHBoeWxpbmtfY29ubmVjdF9waHlgIGFuZCBgcGh5bGlua19vZl9waHlfY29ubmVjdGAuIEFzIGZvciBgc3RtbWFjX2luaXRfcGh5YCwgaXQgZ2V0cyBjYWxsZWQgZHVyaW5nIGVpdGhlciBgc3RtbWFjX29wZW5gIG9yIHByb2JlLCBzbyB0aGF0J3MgYWxzbyBwb3RlbnRpYWxseSBhY2Nlc3NpYmxlLlxuXG5CdXQgaGVyZSdzIHRoZSBraWNrZXI6IENhbiBJICpyZWFjaCogdGhpcyBpbiBRRU1VPyBgc3RtbWFjYCBpcyBhICpwaHlzaWNhbCogZXRoZXJuZXQgZHJpdmVyLiBRRU1VIGRvZXNuJ3QgZW11bGF0ZSB0aGF0IHNwZWNpZmljIFNUTWljcm9lbGVjdHJvbmljcyBNQUMgYnkgZGVmYXVsdCwgZG9lcyBpdD8gV2FpdCwgbGV0IG1lIGNoZWNrIHRoZSBRRU1VIG5ldHdvcmtpbmcgYmFja2VuZHMuIFRoZXJlIGFyZSBhIHRvbiBvZiBkcml2ZXJzIGF2YWlsYWJsZSwgaW5jbHVkaW5nIGBpbXhfZmVjYCwgYGNhZGVuY2VfZ2VtYCwgYGUxMDAwYCwgYGUxMDAwZWAsIGBpZ2JgLCBgcnRsODEzOWAsIGBwY25ldGAsIGFuZCB0aGUgcmVzdC4gSXMgYHN0bW1hY2AgZXZlbiAqZW11bGF0ZWQqPyBXYWl0LCB0aGVyZSdzIGBody9uZXQveGdtYWMuY2AuLi4gYnV0IHRoYXQncyBwcm9iYWJseSBmb3IgQ2FseGVkYSdzIFhHTUFDLCBub3QgdGhlIFNUTWljcm8uIFNvLCBubyBkaXJlY3QgYHN0bW1hY2AgZW11bGF0aW9uLlxuXG5Pa2F5LCBsZXQncyBiYWNrIHVwLiBJcyBgc3RtbWFjYCBhIFBDSSBkZXZpY2U/IEFoLCB5ZXMhIFRoZXJlJ3MgYHN0bW1hY19wY2kuY2AuIEJ1dCBkb2VzIFFFTVUgZW11bGF0ZSB0aGF0PyBMZXQgbWUgY2hlY2vigKYgbm9wZSwgUUVNVSBkb2Vzbid0IGVtdWxhdGUgYHN0bW1hY2AgUENJIGRldmljZXMuXG5cbk9rYXksIGxldCdzIHNoaWZ0IGZvY3VzLiBFdmVuIGlmIEkgY2FuJ3QgZGlyZWN0bHkgaGl0IGBzdG1tYWNgLCBgcGh5bGlua2AgaXMgdGhlIGtleS4gU2luY2UgYHBoeWxpbmtgIGlzIHVzZWQgYnkgbWFueSBkcml2ZXJzLCBjb3VsZCBJIHJlYWNoIHRob3NlIGZ1bmN0aW9ucyB0aHJvdWdoIG9uZSBvZiB0aGUgUUVNVS1lbXVsYXRlZCBuZXR3b3JraW5nIGRldmljZXM/ICBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGxpdmUgd2l0aGluIGBwaHlsaW5rLmNgLCBzbyBhcmUgdGhleSByZWFjaGFibGUgdGhyb3VnaCBhbnkgb2YgdGhlIGRldmljZXMgUUVNVSBwcm92aWRlcz8gSSBuZWVkIHRvIHNlYXJjaCBmb3IgdXNhZ2VzIG9mIGBwaHlsaW5rX2V4cGVjdHNfcGh5YC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU0MCwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgwNSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjQ5LjgwNzE3ODMxNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTU5ODUxOTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBoeWxpbmtfZXhwZWN0c19waHlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0xMjk4PXN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzMDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxMzA4OlxcdGlmICghcGh5bGlua19leHBlY3RzX3BoeShwcml2LVxcdTAwM2VwaHlsaW5rKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzMDktXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTE5NTQ9RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19kZXN0cm95KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk1Ni0vKipcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjE5NTc6ICogcGh5bGlua19leHBlY3RzX3BoeSgpIC0gRGV0ZXJtaW5lIGlmIHBoeWxpbmsgZXhwZWN0cyBhIHBoeSB0byBiZSBhdHRhY2hlZFxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk1OC0gKiBAcGw6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5bGluayByZXR1cm5lZCBmcm9tIHBoeWxpbmtfY3JlYXRlKClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk2NC0gKi9cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjE5NjU6Ym9vbCBwaHlsaW5rX2V4cGVjdHNfcGh5KHN0cnVjdCBwaHlsaW5rICpwbClcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTE5NjYte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTcwLX1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjE5NzE6RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19leHBlY3RzX3BoeSk7XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTcyLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMjg1PWludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyOTItXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjkzOlxcdGlmICghcGh5bGlua19leHBlY3RzX3BoeShwbCkpXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjk0LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzI2PXZvaWQgcGh5bGlua19kZXN0cm95KHN0cnVjdCBwaHlsaW5rICopO1xcbmluY2x1ZGUvbGludXgvcGh5bGluay5oOjcyNzpib29sIHBoeWxpbmtfZXhwZWN0c19waHkoc3RydWN0IHBoeWxpbmsgKnBsKTtcXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaC03MjgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjUzLjc2NzAzNTc3NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMjQxOTExNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBQSFkgRHJpdmVyIENvbm5lY3Rpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IHRoZXNlIFBIWSBkcml2ZXJzIGFyZSBjb25uZWN0ZWQsIGFuZCBpdCBzZWVtcyBsaWtlIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBzaG93cyB1cCBpbiBgc3RtbWFjX2luaXRfcGh5YCBhbmQgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YC4gTm93LCB0aGF0IHNlY29uZCBmdW5jdGlvbiwgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgaXMgdXNlZCBieSBhICpsb3QqIG9mIGRpZmZlcmVudCBkcml2ZXJzLCB3aGljaCBtYWtlcyBpdCBwYXJ0aWN1bGFybHkgaW50ZXJlc3RpbmcuIEdpdmVuIHRoYXQgYnJvYWRlciB1c2FnZSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZXNlIGZ1bmN0aW9ucywgYW5kIHRoZXJlZm9yZSBpdCdzIGtleSB0byBhc2NlcnRhaW4gaWYgYHBoeWxpbmtfYXR0YWNoX3BoeWAgaXMgYmVpbmcgY2FsbGVkIHNvbWV3aGVyZS4gSXQncyB0aW1lIHRvIHRyYWNlIHRoZSBwb3RlbnRpYWwgY29ubmVjdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NDMsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzozOTo1Ni43OTEyMjk1MzRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIwOTk5NTg1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwaHlsaW5rX2F0dGFjaF9waHlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMDg0PXN0YXRpYyBpbnQgcGh5bGlua19icmluZ3VwX3BoeShzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMDAtXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjAxOnN0YXRpYyBpbnQgcGh5bGlua19hdHRhY2hfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSxcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMDItXFx0XFx0XFx0ICAgICAgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9MjIzMz1pbnQgcGh5bGlua19jb25uZWN0X3BoeShzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNDItXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjQzOlxcdHJldCA9IHBoeWxpbmtfYXR0YWNoX3BoeShwbCwgcGh5LCBwbC1cXHUwMDNlbGlua19pbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI0NC1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9MzY5OD1zdGF0aWMgaW50IHBoeWxpbmtfc2ZwX2NvbmZpZ19waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0zNzMwLVxcdCAqL1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MzczMTpcXHRyZXQgPSBwaHlsaW5rX2F0dGFjaF9waHkocGwsIHBoeSwgY29uZmlnLmludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0zNzMyLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzozOTo1OS4wMDEyMzI5MDJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTk0MjA3Njk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOlxuXG4qKkludmVzdGlnYXRpbmcgYHBoeWxpbmtfY29ubmVjdF9waHlgIFVzYWdlKipcblxuUmlnaHQsIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCBpcyBleHBvcnRlZCwgbWVhbmluZyBpdCdzIGludGVuZGVkIGZvciB1c2UgYnkgZGV2aWNlIGRyaXZlcnMuIEFuZCwgaXQncyBjb25uZWN0ZWQgdG8gYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCBzbyB0aGF0IHRoZSBmdW5jdGlvbmFsaXR5IGlzIGNvbnNpc3RlbnQuIE5vdywgbGV0J3MgZ2V0IGRvd24gdG8gdGhlIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJhY3RpY2FsIGltcGFjdCBvZiB0aGlzLCB0aGUgZGVzaWduIGNob2ljZXMuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGNoZWNrIHByZWNpc2VseSAqd2hpY2gqIGRyaXZlcnMgYXJlIGFjdHVhbGx5IGxldmVyYWdpbmcgdGhlc2UgcGh5bGluayBmdW5jdGlvbnMuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBpcyB3aWRlbHkgYWRvcHRlZCwgb3IgbW9yZSBuaWNoZS4gQXJlIHdlIGxvb2tpbmcgYXQgYSBjb21tb24gcGF0dGVybiwgb3Igc29tZXRoaW5nIHNwZWNpZmljPyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBwb3RlbnRpYWwgcmVmYWN0b3JpbmcsIGJ1ZyBmaXhpbmcsIG9yIGV2ZW4gYXJjaGl0ZWN0dXJhbCBjaGFuZ2VzIHRvIHRoZSBwaHlsaW5rIHN5c3RlbSBpdHNlbGY/IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgY3JpdGljYWwgYW5kIHdoZXJlIHRoZXkgYXJlIG5vdCB0byBiZSBhYmxlIHRvIG1ha2UgYW55IGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB0aGVpciBtYWludGVuYW5jZSBvciBldm9sdXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNTgsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDowMi4xOTU0NDMyMjhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwMzY0NjgxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwaHlsaW5rX2Nvbm5lY3RfcGh5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9OTgyPXN0YXRpYyBpbnQgbWFjYl9waHlsaW5rX2Nvbm5lY3Qoc3RydWN0IG1hY2IgKmJwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy05OTktXFx0XFx0LyogYXR0YWNoIHRoZSBtYWMgdG8gdGhlIHBoeSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTAwMDpcXHRcXHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KGJwLVxcdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTAwMS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmM9MzIxND1zdGF0aWMgaW50IGxhbjc0M3hfcGh5bGlua19jb25uZWN0KHN0cnVjdCBsYW43NDN4X2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmMtMzIyNy1cXHRcXHRcXHQvKiBhdHRhY2ggdGhlIG1hYyB0byB0aGUgcGh5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jOjMyMjg6XFx0XFx0XFx0cmV0ID0gcGh5bGlua19jb25uZWN0X3BoeShhZGFwdGVyLVxcdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW43NDN4X21haW4uYy0zMjI5LVxcdFxcdH0gZWxzZSBpZiAoKChhZGFwdGVyLVxcdTAwM2Vjc3IuaWRfcmV2IFxcdTAwMjYgSURfUkVWX0lEX01BU0tfKSA9PVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0xMjk4PXN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzNDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxMzQ4OlxcdFxcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkocHJpdi1cXHUwMDNlcGh5bGluaywgcGh5ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzNDktXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RlaHV0aS90bjQwLmM9MTQwNj1zdGF0aWMgaW50IHRuNDBfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL3RuNDAuYy0xNDEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RlaHV0aS90bjQwLmM6MTQxMTpcXHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KHByaXYtXFx1MDAzZXBoeWxpbmssIHByaXYtXFx1MDAzZXBoeWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL3RuNDAuYy0xNDEyLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz00NjI9c3RhdGljIGludCBuZ2JlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy00NzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjQ3OTpcXHRlcnIgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KHd4LVxcdTAwM2VwaHlsaW5rLCB3eC1cXHUwMDNlcGh5ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNDgwLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTI2OD1zdGF0aWMgaW50IHR4Z2JlX3BoeWxpbmtfaW5pdChzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy0yOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzozMDA6XFx0XFx0cmV0ID0gcGh5bGlua19jb25uZWN0X3BoeShwaHlsaW5rLCB3eC1cXHUwMDNlcGh5ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTMwMS1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyMDE9c3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjE4LS8qKlxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjIxOTogKiBwaHlsaW5rX2Nvbm5lY3RfcGh5KCkgLSBjb25uZWN0IGEgUEhZIHRvIHRoZSBwaHlsaW5rIGluc3RhbmNlXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjIwLSAqIEBwbDogYSBwb2ludGVyIHRvIGEgXFx1MDAyNnN0cnVjdCBwaHlsaW5rIHJldHVybmVkIGZyb20gcGh5bGlua19jcmVhdGUoKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjMyLSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjIzMzppbnQgcGh5bGlua19jb25uZWN0X3BoeShzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjM0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI1Mi19XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjUzOkVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfY29ubmVjdF9waHkpO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI1NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI2MS0gKiBDb25uZWN0IHRoZSBwaHkgc3BlY2lmaWVkIGluIHRoZSBkZXZpY2Ugbm9kZSBAZG4gdG8gdGhlIHBoeWxpbmsgaW5zdGFuY2VcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNjI6ICogc3BlY2lmaWVkIGJ5IEBwbC4gQWN0aW9ucyBzcGVjaWZpZWQgaW4gcGh5bGlua19jb25uZWN0X3BoeSgpIHdpbGwgYmVcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNjMtICogcGVyZm9ybWVkLlxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jPTcwMz1zdGF0aWMgaW50IGF4ODg3NzJfaW5pdF9waHkoc3RydWN0IHVzYm5ldCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcxMy1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6NzE0OlxcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkocHJpdi1cXHUwMDNlcGh5bGluaywgcHJpdi1cXHUwMDNlcGh5ZGV2KTtcXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtNzE1LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9Mjg1OD1zdGF0aWMgaW50IGxhbjc4eHhfcGh5X2luaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI5MDEtXFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYzoyOTAyOlxcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkoZGV2LVxcdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjkwMy1cXHRpZiAocmV0KSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaD03Mjc9Ym9vbCBwaHlsaW5rX2V4cGVjdHNfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCk7XFxuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzI4LVxcbmluY2x1ZGUvbGludXgvcGh5bGluay5oOjcyOTppbnQgcGh5bGlua19jb25uZWN0X3BoeShzdHJ1Y3QgcGh5bGluayAqLCBzdHJ1Y3QgcGh5X2RldmljZSAqKTtcXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaC03MzAtaW50IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKiwgc3RydWN0IGRldmljZV9ub2RlICosIHUzMiBmbGFncyk7XFxuLS1cXG5uZXQvZHNhL3VzZXIuYz0yNjM4PXN0YXRpYyBpbnQgZHNhX3VzZXJfcGh5X2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKnVzZXJfZGV2LCBpbnQgYWRkcixcXG4tLVxcbm5ldC9kc2EvdXNlci5jLTI2NTEtXFxubmV0L2RzYS91c2VyLmM6MjY1MjpcXHRyZXR1cm4gcGh5bGlua19jb25uZWN0X3BoeShkcC1cXHUwMDNlcGwsIHVzZXJfZGV2LVxcdTAwM2VwaHlkZXYpO1xcbm5ldC9kc2EvdXNlci5jLTI2NTMtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDowNC4wOTkwOTM4NjRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODg3ODY0MjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVTQiBGdXp6aW5nIGFuZCBgcGh5bGlua19jb25uZWN0X3BoeWAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBuZXR3b3JrIGRyaXZlciBmaWxlcywgc3BlY2lmaWNhbGx5IGBkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmNgIGFuZCBgZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguY2AuIEFuZCB3aGF0IGRvIEkgc2VlPyBUaGV5IGJvdGggdXNlIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YC4gTm93LCB0aGF0J3MgaW50ZXJlc3RpbmcuIFdlIGtub3cgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGBkdW1teV9oY2RgIG9yIGB1c2ItZ2FkZ2V0YC4gQW5kLCBvZiBjb3Vyc2UsIHN5emthbGxlciBoYXMgYSBwcmV0dHkgcm9idXN0IFVTQiBmdXp6ZXIuIEl0J3MgYSBiaXQgb2YgYSBsZWFwLCBidXQgSSdtIHRoaW5raW5nLi4uIGNvdWxkIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCBiZSByZWFjaGFibGUgdmlhIFVTQiBmdXp6aW5nP1xuXG5UaGF0IHNvdW5kcyBsaWtlIGEgZGVmaW5pdGUgXCJ5ZXMuXCIgTm93IEkganVzdCBuZWVkIHRvIHZlcmlmeSBob3cgdGhlc2UgZnVuY3Rpb25zIGNvbm5lY3QuIFNvIEkgc2hvdWxkIGV4YW1pbmUgYGxhbjc4eHhfcGh5X2luaXRgIGFuZCBgYXg4ODc3Ml9pbml0X3BoeWAgdG8gY29uZmlybSBpZiB0aG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzI4NywiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDowNy45ODY5NjA1MzNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3Nzk1NzUyNjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXg4ODc3Ml9pbml0X3BoeVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9Njk3PXN0YXRpYyB2b2lkIGF4ODg3NzJfbWRpb191bnJlZ2lzdGVyKHN0cnVjdCBhc2l4X2NvbW1vbl9wcml2YXRlICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcwMi1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6NzAzOnN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X3BoeShzdHJ1Y3QgdXNibmV0ICpkZXYpXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcwNC17XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9ODI5PXN0YXRpYyBpbnQgYXg4ODc3Ml9iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtOTI0LVxcbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYzo5MjU6XFx0cmV0ID0gYXg4ODc3Ml9pbml0X3BoeShkZXYpO1xcbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy05MjYtXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDA6MDkuNzY2NTQyODQxWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MjI5MDg5NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIFVTQiBOZXR3b3JrIERldmljZSBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIGEgVVNCIG5ldHdvcmsgZGV2aWNlLCBzcGVjaWZpY2FsbHkgdGhlIGBheDg4NzcyYCB2YXJpYW50LiBUaGUga2VybmVsIGlzIGNhbGxpbmcgYGF4ODg3NzJfYmluZGAsIHdoaWNoIG1ha2VzIHNlbnNlOyB0aGF0J3MgdGhlIHN0YW5kYXJkIGVudHJ5IHBvaW50IGZvciBiaW5kaW5nIHRoZSBkZXZpY2UgdG8gdGhlIGRyaXZlciBhZnRlciB0aGUgVVNCIGVudW1lcmF0aW9uIGFuZCBkZXZpY2UgZGlzY292ZXJ5LiBOb3csIHdoZXJlIGRvZXMgdGhpcyBpbml0aWFsaXphdGlvbiByZWFsbHkgKnN0YXJ0Kj8gVG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBQSFkgaW5pdGlhbGl6YXRpb24sIG15IGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBgbGFuNzh4eF9waHlfaW5pdGAgZnVuY3Rpb24uIFRoYXQncyBsaWtlbHkgd2hlcmUgdGhlIGxvdy1sZXZlbCBwaHlzaWNhbCBsYXllciBpbnRlcmZhY2UgaXMgc2V0IHVwLiBMZXQncyB0cmFjZSBmcm9tIGBsYW43OHh4X3BoeV9pbml0YCBhbmQgc2VlIHdoYXQgdGhhdCBtb2R1bGUgaXMgZG9pbmcgdG8gY29tcGxldGUgZGV2aWNlIGNvbm5lY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc4ODcsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDoxMy4yODk0NTUzMVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA1NjgzMzg2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJsYW43OHh4X3BoeV9pbml0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9Mjg0OT1zdGF0aWMgdm9pZCBsYW43OHh4X3BoeV91bmluaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI4NTctXFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYzoyODU4OnN0YXRpYyBpbnQgbGFuNzh4eF9waHlfaW5pdChzdHJ1Y3QgbGFuNzh4eF9uZXQgKmRldilcXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI4NTkte1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYz00NjU1PXN0YXRpYyBpbnQgbGFuNzh4eF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtNDc4NS1cXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jOjQ3ODY6XFx0cmV0ID0gbGFuNzh4eF9waHlfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtNDc4Ny1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDA6MTUuMzQ2Mjk0NTgyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1ODM1MDIxNjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBhbmFseXppbmcgdGhpcyBjb2RlOlxuXG4qKkRpZ2dpbmcgaW50byBQSFkgQ29ubmVjdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gdHJhY2luZyB0aGUgY29ubmVjdGlvbnMgYW5kIGluaXRpYWxpemF0aW9ucyByZWxhdGVkIHRvIFBIWXMuIEkndmUgY29uZmlybWVkIHRoYXQgYHBoeWxpbmtfY29ubmVjdF9waHlgIGlzIGRlZmluaXRlbHkgYWNjZXNzaWJsZSB0aHJvdWdoIGBsYW43OHh4X3Byb2JlYCBhbmQgYGF4ODg3NzJfYmluZGAg4oCTIHRoYXQgbWFrZXMgc2Vuc2UsIHRoZXkncmUgY29tbW9uIFBIWSBkcml2ZXIgZW50cnkgcG9pbnRzLiBOb3csIEknbSB0cnlpbmcgdG8gZ2V0IGEgY29tcGxldGUgcGljdHVyZSBvZiB0aGUgY29ubmVjdGlvbiBwYXRod2F5cy5cblxuTXkgbmV4dCBxdWVzdGlvbiBpcyBhYm91dCBgcGh5bGlua19leHBlY3RzX3BoeWAuIEkgcmVjYWxsIHNlZWluZyB0aGF0IG9uZSBmbG9hdGluZyBhcm91bmQsIGFuZCBub3cgSSdtIHRyeWluZyB0byBtYXAgaXRzIHVzZXMuIEl0IGFwcGVhcnMgaW4gYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgc28gdGhhdOKAmXMgYSBkaXJlY3QgbGluay4gVGhhdCBtZWFucyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGNhbGxzIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aG8gaXMgcmVxdWVzdGluZyB0aGUgUEhZIGJlIGNvbm5lY3RlZCB2aWEgdGhlIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBjYWxsLiBMZXQncyBzZWUgd2hvJ3MgY2FsbGluZyBpdCB0byBjb250aW51ZSB0aGUgYW5hbHlzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgzNzEsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDoxOC45Mjk3OTkwMThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDM4MjMwNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jPTU2MD1pbnQgZHBhYTJfbWFjX2Nvbm5lY3Qoc3RydWN0IGRwYWEyX21hYyAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jLTYzNC1cXHRydG5sX2xvY2soKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmM6NjM1OlxcdGVyciA9IHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0KG1hYy1cXHUwMDNlcGh5bGluaywgZHBtYWNfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jLTYzNi1cXHRydG5sX3VubG9jaygpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1tYWMuYy02MzctXFx0aWYgKGVycikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1tYWMuYzo2Mzg6XFx0XFx0bmV0ZGV2X2VycihuZXRfZGV2LCBcXFwicGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QoKSA9ICVkXFxcXG5cXFwiLCBlcnIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1tYWMuYy02MzktXFx0XFx0Z290byBlcnJfcGh5bGlua19kZXN0cm95O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmM9NDc5MT1zdGF0aWMgaW50IG12cHAyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jLTQ4NDAtXFx0aWYgKHBvcnQtXFx1MDAzZXBoeWxpbmspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYzo0ODQxOlxcdFxcdGVyciA9IHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0KHBvcnQtXFx1MDAzZXBoeWxpbmssIHBvcnQtXFx1MDAzZWZ3bm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMtNDg0Mi1cXHRcXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X21haW4uYz0xNjk9c3RhdGljIGludCBsYW45NjZ4X3BvcnRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9tYWluLmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfbWFpbi5jOjE4NjpcXHRlcnIgPSBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChwb3J0LVxcdTAwM2VwaHlsaW5rLCBwb3J0LVxcdTAwM2Vmd25vZGUsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfbWFpbi5jLTE4Ny1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyOTg9c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTM1MC1cXHRcXHRmd25vZGVfaGFuZGxlX3B1dChwaHlfZndub2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEzNTE6XFx0XFx0cmV0ID0gcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QocHJpdi1cXHUwMDNlcGh5bGluaywgZndub2RlLCBkZXZfZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTM1Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyNjc9aW50IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuLFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjY5LXtcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNzA6XFx0cmV0dXJuIHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0KHBsLCBvZl9md25vZGVfaGFuZGxlKGRuKSwgZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3MS19XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMjcyPUVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjc0LS8qKlxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI3NTogKiBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCgpIC0gY29ubmVjdCB0aGUgUEhZIHNwZWNpZmllZCBpbiB0aGUgZndub2RlLlxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3Ni0gKiBAcGw6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5bGluayByZXR1cm5lZCBmcm9tIHBoeWxpbmtfY3JlYXRlKClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI4NC0gKi9cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyODU6aW50IHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICpwbCxcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyODYtXFx0XFx0XFx0ICAgICAgIGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIzMzAtfVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjMzMTpFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCk7XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMzMyLVxcbi0tXFxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzMwPWludCBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBkZXZpY2Vfbm9kZSAqLCB1MzIgZmxhZ3MpO1xcbmluY2x1ZGUvbGludXgvcGh5bGluay5oOjczMTppbnQgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKnBsLFxcbmluY2x1ZGUvbGludXgvcGh5bGluay5oLTczMi1cXHRcXHRcXHQgICAgICAgY29uc3Qgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDA6MjAuNzczNjI3MTU2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMTkyMzIzNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgUEhZIENvbm5lY3Rpb24gTWV0aG9kcyoqXG5cblJpZ2h0LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgaG93IFBIWSBjb25uZWN0aW9ucyBhcmUgYmVpbmcgaGFuZGxlZCB3aXRoaW4gdGhpcyBzeXN0ZW0uIEkgc2VlIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAgaXMgdXNlZCBieSBhIGZldyBkaWZmZXJlbnQgZHJpdmVyczogYGRwYWEyX21hY19jb25uZWN0YCwgYG12cHAyX29wZW5gLCBgbGFuOTY2eF9wb3J0X29wZW5gLCBhbmQgYHN0bW1hY19pbml0X3BoeWAuIFRoYXQgZ2l2ZXMgbWUgYSBjZXJ0YWluIGJhc2VsaW5lLCBhIHN0YXJ0aW5nIHBvaW50IHRvIHNlZSBob3cgb3RoZXIgUEhZcyBhcmUgY29ubmVjdGVkLiBJdCBzZWVtcyBsaWtlIGl0J3MgYSBwcmltYXJ5IG1ldGhvZCBpbiB1c2UuXG5cbkJ1dCBub3cgbXkgYnJhaW4ncyBpdGNoaW5nLi4uIHdoYXQgYWJvdXQgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgPyBJJ20gbWlzc2luZyBzb21ldGhpbmcsIGl0IHNlZW1zIC0gaXQncyBhIHBhcmFsbGVsIHBhdGggb2YgY29ubmVjdGlvbiBmb3IgUEhZcywgdGhhdCdzIGNlcnRhaW4sIHdoaWNoIG1lYW5zIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IC0gYW5kIHdoZXRoZXIgaXQgc2hhcmVzIGFueSBjb2RlIGJhc2Ugd2l0aCB0aGUgbWV0aG9kIEkga25vdy4gQXJlIHRoZXJlIGRpc3RpbmN0IHNjZW5hcmlvcyB3aGVyZSBvbmUgaXMgcHJlZmVycmVkIG92ZXIgdGhlIG90aGVyPyBBcmUgdGhleSBtdXR1YWxseSBleGNsdXNpdmUsIG9yIGNhbiB0aGV5IGJlIHVzZWQgaW4gY29uanVuY3Rpb24/IEFyZSB0aGVyZSBhbnkgY29tbW9uIGlzc3VlcyB0aGF0IG1heSBvY2N1ciwgYWNyb3NzIGJvdGggbWV0aG9kcz8gSSBuZWVkIHRvIGxvb2sgaW50byB0aGUgc3BlY2lmaWNzIG9mICp0aGF0KiBmdW5jdGlvbiBhbmQgc2VlIHdoZXJlIGl0J3MgYmVpbmcgdXNlZCBhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSByZXN0IG9mIHRoZSBQSFkgc2V0dXAuIEl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgcGljdHVyZSBoZXJlLCBhbmQgd2hhdCBpcyBjdXJyZW50bHkgaW4gcGxhY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMDU3LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDA6MjQuNzkyODYxOTQyWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzMxMTM4NDk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9tYWMtcGh5LXN1cHBvcnQucnN0PTgwPXdpbGwgZG8gdGhlIGZvbGxvd2luZzpcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvbWFjLXBoeS1zdXBwb3J0LnJzdC04My0gLSB3aWxsIGNyZWF0ZSBhIFBIWUxJTksgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByZWNlaXZlZCBuZXRfZGV2aWNlXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9tYWMtcGh5LXN1cHBvcnQucnN0Ojg0OiAtIGNvbm5lY3QgdG8gdGhlIFBIWSB1c2luZyBwaHlsaW5rX29mX3BoeV9jb25uZWN0KClcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL21hYy1waHktc3VwcG9ydC5yc3QtODUtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0PTc0PXRoaXMgZG9jdW1lbnRhdGlvbi5cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3QtMTYyLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q6MTYzOlxcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QocHJpdi1cXHUwMDNlcGh5bGluaywgbm9kZSwgZmxhZ3MpO1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3QtMTY0LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM9OTY4PXN0YXRpYyBib29sIG5ldGNfcG9ydF9pc19lbWRpb19jb25zdW1lcihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05ODQtXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6OTg1Oi8qIEN1cnJlbnRseSwgcGh5bGlua19vZl9waHlfY29ubmVjdCgpIGlzIGNhbGxlZCBieSBkc2FfdXNlcl9jcmVhdGUoKSxcXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05ODYtICogc28gaWYgdGhlIHN3aXRjaCB1c2VzIHRoZSBleHRlcm5hbCBNRElPIGNvbnRyb2xsZXIgKGxpa2UgdGhlIEVNRElPXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtOTg3LSAqIGZ1bmN0aW9uKSB0byBtYW5hZ2UgdGhlIGV4dGVybmFsIFBIWXMuIFRoZSBNRElPIGJ1cyBtYXkgbm90IGJlXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6OTg4OiAqIGNyZWF0ZWQgd2hlbiBwaHlsaW5rX29mX3BoeV9jb25uZWN0KCkgaXMgY2FsbGVkLCBzbyBpdCB3aWxsIHJldHVyblxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTk4OS0gKiBhbiBlcnJvciBhbmQgY2F1c2UgdGhlIHN3aXRjaCBkcml2ZXIgdG8gZmFpbCB0byBwcm9iZS5cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYzo5OTA6ICogVGhpcyB3b3JrYXJvdW5kIGNhbiBiZSByZW1vdmVkIHdoZW4gRFNBIHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoKVxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTk5MS0gKiBjYWxscyBhcmUgbW92ZWQgZnJvbSBwcm9iZSgpIHRvIG5kb19vcGVuKCkuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmM9ODc2PXN0YXRpYyBpbnQgdHNlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYy05NTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jOjk1MjpcXHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHByaXYtXFx1MDAzZXBoeWxpbmssIHByaXYtXFx1MDAzZWRldmljZS1cXHUwMDNlb2Zfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jLTk1My1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jPTE0MDQ9c3RhdGljIGludCBhZzcxeHhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmMtMTQwOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jOjE0MTA6XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChhZy1cXHUwMDNlcGh5bGluaywgYWctXFx1MDAzZXBkZXYtXFx1MDAzZWRldi5vZl9ub2RlLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jLTE0MTEtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmM6MTQxMjpcXHRcXHRuZXRpZl9lcnIoYWcsIGxpbmssIG5kZXYsIFxcXCJwaHlsaW5rX29mX3BoeV9jb25uZWN0IGZpbGVkIHdpdGggZXJyOiAlaVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jLTE0MTMtXFx0XFx0XFx0ICByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz05ODI9c3RhdGljIGludCBtYWNiX3BoeWxpbmtfY29ubmVjdChzdHJ1Y3QgbWFjYiAqYnApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4OS1cXHRpZiAoZG4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo5OTA6XFx0XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChicC1cXHUwMDNlcGh5bGluaywgZG4sIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtOTkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYz0yOTQxPXN0YXRpYyBpbnQgZHBhYV9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRfZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYy0yOTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmM6Mjk1MTpcXHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KG1hY19kZXYtXFx1MDAzZXBoeWxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYy0yOTUyLVxcdFxcdFxcdFxcdCAgICAgbWFjX2Rldi1cXHUwMDNlZGV2LVxcdTAwM2VvZl9ub2RlLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jPTI4OTk9c3RhdGljIGludCBlbmV0Y19waHlsaW5rX2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGMuYy0yOTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jOjI5MTE6XFx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwcml2LVxcdTAwM2VwaHlsaW5rLCBwcml2LVxcdTAwM2VkZXYtXFx1MDAzZW9mX25vZGUsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jLTI5MTItXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmM9NjU2PXN0YXRpYyBpbnQgZnNfZW5ldF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9mc19lbmV0LW1haW4uYy02NzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmM6Njc4OlxcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoZmVwLVxcdTAwM2VwaHlsaW5rLCBmZXAtXFx1MDAzZWRldi1cXHUwMDNlb2Zfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmMtNjc5LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5jPTMxNjc9c3RhdGljIGludCB1Y2NfZ2V0aF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYy0zMTgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5jOjMxODE6XFx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdCh1Z2V0aC1cXHUwMDNlcGh5bGluaywgdWdldGgtXFx1MDAzZWRldi1cXHUwMDNlb2Zfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL3VjY19nZXRoLmMtMzE4Mi1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jPTQzNTE9c3RhdGljIGludCBtdm5ldGFfbWRpb19wcm9iZShzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYy00MzUzLVxcdHN0cnVjdCBldGh0b29sX3dvbGluZm8gd29sID0geyAuY21kID0gRVRIVE9PTF9HV09MIH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYzo0MzU0OlxcdGludCBlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHBwLVxcdTAwM2VwaHlsaW5rLCBwcC1cXHUwMDNlZG4sIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMtNDM1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM9MzYwMz1zdGF0aWMgaW50IG10a19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTM2MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYzozNjEyOlxcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QobWFjLVxcdTAwM2VwaHlsaW5rLCBtYWMtXFx1MDAzZW9mX25vZGUsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtMzYxMy1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmM9MzIxND1zdGF0aWMgaW50IGxhbjc0M3hfcGh5bGlua19jb25uZWN0KHN0cnVjdCBsYW43NDN4X2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmMtMzIyMS1cXHRpZiAoZG4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jOjMyMjI6XFx0XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChhZGFwdGVyLVxcdTAwM2VwaHlsaW5rLCBkbiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jLTMyMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV9uZXRkZXYuYz0xMDU9c3RhdGljIGludCBzcGFyeDVfcG9ydF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfbmV0ZGV2LmMtMTEwLVxcdHNwYXJ4NV9wb3J0X2VuYWJsZShwb3J0LCB0cnVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV9uZXRkZXYuYzoxMTE6XFx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwb3J0LVxcdTAwM2VwaHlsaW5rLCBwb3J0LVxcdTAwM2VvZl9ub2RlLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV9uZXRkZXYuYy0xMTItXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfbmV0LmM9MTc4MD1zdGF0aWMgaW50IG9jZWxvdF9wb3J0X3BoeWxpbmtfY3JlYXRlKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCwgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdF9uZXQuYy0xODMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X25ldC5jOjE4MzI6XFx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwaHlsaW5rLCBwb3J0bnAsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X25ldC5jLTE4MzMtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvYW02NS1jcHN3LW51c3MuYz05OTg9c3RhdGljIGludCBhbTY1X2Nwc3dfbnVzc19uZG9fc2xhdmVfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2FtNjUtY3Bzdy1udXNzLmMtMTA2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9hbTY1LWNwc3ctbnVzcy5jOjEwNzA6XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwb3J0LVxcdTAwM2VzbGF2ZS5waHlsaW5rLCBwb3J0LVxcdTAwM2VzbGF2ZS5wb3J0X25wLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9hbTY1LWNwc3ctbnVzcy5jLTEwNzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmM9MTY2MT1zdGF0aWMgaW50IGF4aWVuZXRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmMtMTY3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngveGlsaW54X2F4aWVuZXRfbWFpbi5jOjE2NzQ6XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChscC1cXHUwMDNlcGh5bGluaywgbHAtXFx1MDAzZWRldi1cXHUwMDNlb2Zfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L3hpbGlueF9heGllbmV0X21haW4uYy0xNjc1LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngveGlsaW54X2F4aWVuZXRfbWFpbi5jOjE2NzY6XFx0XFx0ZGV2X2VycihscC1cXHUwMDNlZGV2LCBcXFwicGh5bGlua19vZl9waHlfY29ubmVjdCgpIGZhaWxlZDogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L3hpbGlueF9heGllbmV0X21haW4uYy0xNjc3LVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyNTM9RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19jb25uZWN0X3BoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNTUtLyoqXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjU2OiAqIHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoKSAtIGNvbm5lY3QgdGhlIFBIWSBzcGVjaWZpZWQgaW4gdGhlIERUIG1vZGUuXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjU3LSAqIEBwbDogYSBwb2ludGVyIHRvIGEgXFx1MDAyNnN0cnVjdCBwaHlsaW5rIHJldHVybmVkIGZyb20gcGh5bGlua19jcmVhdGUoKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjY2LSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI2NzppbnQgcGh5bGlua19vZl9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4sXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjY4LVxcdFxcdFxcdCAgIHUzMiBmbGFncylcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3MS19XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjcyOkVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QpO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3My1cXG4tLVxcbmluY2x1ZGUvbGludXgvcGh5bGluay5oPTcyOT1pbnQgcGh5bGlua19jb25uZWN0X3BoeShzdHJ1Y3QgcGh5bGluayAqLCBzdHJ1Y3QgcGh5X2RldmljZSAqKTtcXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaDo3MzA6aW50IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKiwgc3RydWN0IGRldmljZV9ub2RlICosIHUzMiBmbGFncyk7XFxuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzMxLWludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXFxuLS1cXG5uZXQvZHNhL3BvcnQuYz0xNjY1PXN0YXRpYyBpbnQgZHNhX3NoYXJlZF9wb3J0X3BoeWxpbmtfcmVnaXN0ZXIoc3RydWN0IGRzYV9wb3J0ICpkcClcXG4tLVxcbm5ldC9kc2EvcG9ydC5jLTE2NzctXFxubmV0L2RzYS9wb3J0LmM6MTY3ODpcXHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGRwLVxcdTAwM2VwbCwgcG9ydF9kbiwgMCk7XFxubmV0L2RzYS9wb3J0LmMtMTY3OS1cXHRpZiAoZXJyIFxcdTAwMjZcXHUwMDI2IGVyciAhPSAtRU5PREVWKSB7XFxuLS1cXG5uZXQvZHNhL3VzZXIuYz0yNjU1PXN0YXRpYyBpbnQgZHNhX3VzZXJfcGh5X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICp1c2VyX2RldilcXG4tLVxcbm5ldC9kc2EvdXNlci5jLTI2ODEtXFxubmV0L2RzYS91c2VyLmM6MjY4MjpcXHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGRwLVxcdTAwM2VwbCwgcG9ydF9kbiwgcGh5X2ZsYWdzKTtcXG5uZXQvZHNhL3VzZXIuYy0yNjgzLVxcdGlmIChyZXQgPT0gLUVOT0RFViBcXHUwMDI2XFx1MDAyNiBkcy1cXHUwMDNldXNlcl9taWlfYnVzKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQwOjI2LjUyNDAwNTMwMloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzI5MDUzOTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgY29uc2lkZXJpbmcgSSdtIGRlZXAgaW4gdGhlIHdlZWRzIHdpdGggdGhpcyBzdHVmZjpcblxuKipEaXZpbmcgaW50byBgcGh5bGlua19vZl9waHlfY29ubmVjdGAgYW5kIGBtYWNiYCBpbiBRRU1VKipcblxuQWxyaWdodCwgc28gYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgIGlzIGEgY29tbW9uIGZ1bmN0aW9uLCB1c2VkIGFjcm9zcyBhIHJhbmdlIG9mIGRyaXZlcnMuIFRoZSBpbnRlcmVzdGluZyBwb2ludCBoZXJlIGlzIGl0cyBjb25uZWN0aW9uIHRvIGBtYWNiYC4gQWgsIHJpZ2h0LCBgbWFjYmAuLi4gdGhlIENhZGVuY2UgR0VNLCB3aGljaCwgaWYgSSdtIG5vdCBtaXN0YWtlbiwgaXMgKmFsc28qIGVtdWxhdGVkIGluIFFFTVUuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgUUVNVSBzb3VyY2Ug4oCTIHllcCwgYGh3L25ldC9jYWRlbmNlX2dlbS5jYCBjb25maXJtcyBpdC4gTm93LCB0aGF0IGNsYXJpZmllcyBhIGxvdC4gU28sIGJlY2F1c2UgYG1hY2JgIGlzIGVtdWxhdGVkIGluIFFFTVUsIHVuZGVyc3RhbmRpbmcgdGhlIGludGVyYWN0aW9uIG9mIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCB3aXRoIGBtYWNiYCBpbiBRRU1VIGlzIGtleS4gTGV0J3MgbW92ZSBvbiB0byBjaGVja2luZyBgbWFjYl9waHlsaW5rX2Nvbm5lY3RgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDA1MCwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQwOjMwLjI1MzA2MjQ4NVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgzNzYzNDM1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWNiX3BoeWxpbmtfY29ubmVjdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTk3NT1zdGF0aWMgYm9vbCBtYWNiX3BoeV9oYW5kbGVfZXhpc3RzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjk4MjpzdGF0aWMgaW50IG1hY2JfcGh5bGlua19jb25uZWN0KHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTMxNjA9c3RhdGljIGludCBtYWNiX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzIwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMyMDI6XFx0ZXJyID0gbWFjYl9waHlsaW5rX2Nvbm5lY3QoYnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzIwMy1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz01MDgxPXN0YXRpYyBpbnQgYXQ5MWV0aGVyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTEwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjUxMDE6XFx0cmV0ID0gbWFjYl9waHlsaW5rX2Nvbm5lY3QobHApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTEwMi1cXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDozMi4wOTA3MDIwMzJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI3Mzg5MzQxNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgUGh5bGluaydzIENvcmUgTG9naWMqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHRyYWNlZCB0aGUgZXhlY3V0aW9uIHBhdGggZnJvbSBgbWFjYl9vcGVuYCBkb3duIHRvIGBwaHlsaW5rYC4gSXQncyBjbGVhciB0aGF0IGBtYWNiX29wZW5gIHRyaWdnZXJzIGBtYWNiX3BoeWxpbmtfY29ubmVjdGAsIHdoaWNoIHRoZW4gY2FsbHMgZWl0aGVyIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCBvciBgcGh5bGlua19jb25uZWN0X3BoeWAuIFRoaXMgaXMga2V5OyBpdCBtZWFucyBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGFyZSBkZWZpbml0ZWx5IHJlYWNoYWJsZSBhbmQsIHRoZXJlZm9yZSwgZnV6emFibGUuIE15IGluaXRpYWwgZ29hbCBoZXJlIGlzIHRvIGlkZW50aWZ5IHRoZXNlIHZ1bG5lcmFibGUgcG9pbnRzLlxuXG5JIG5lZWQgdG8gY29uZmlybSByZWFjaGFiaWxpdHkgb2YgdGhlc2Uga2V5IGZ1bmN0aW9ucyBhbmQgdW5kZXJzdGFuZCB0aGUgY29udHJvbCBmbG93LiBXYWl0LCBgcGh5bGlua19leHBlY3RzX3BoeWAgaXMgYWN0dWFsbHkgY2FsbGVkIGZyb20gYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgLiBTbyBJIHdhcyByaWdodDsgaXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gYHBoeWxpbmtfYXR0YWNoX3BoeWAgc2VlbXMgZXF1YWxseSBhY2Nlc3NpYmxlLCBjYWxsZWQgZnJvbSBib3RoIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCBhbmQgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YC4gQm90aCBvZiB0aGVzZSBhcmUgaW50ZXJlc3RpbmcuXG5cblRoaXMgcGF0Y2ggaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSBpdCByZW1vdmVzIHRoYXQgYHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCBcdTAwMjZcdTAwMjYgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6KHBsLVx1MDAzZWxpbmtfaW50ZXJmYWNlKWAgY2hlY2sgZnJvbSBib3RoIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAuIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljLCByZW1vdmluZyBhIGNydWNpYWwgdmFsaWRhdGlvbiBzdGVwLiBUaGF0J3MgYSBnb29kIHBsYWNlIHRvIGxvb2sgZm9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIFBsdXMsIHRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIDAgaWYgYHByaXYtXHUwMDNlaHctXHUwMDNlcGh5bGlua19wY3NgIGlzIHNldC4gTm93IEkgbmVlZCB0byBzZWUgaWYgYHN0bW1hY2AgaXMgcmVhY2hhYmxlLlxuXG5JIGhhZCBsb29rZWQgYXQgdGhpcyBlYXJsaWVyLCBhbmQgSSBkb24ndCB0aGluayBRRU1VIGVtdWxhdGVzIGBzdG1tYWNgIFBDSS4gQnV0IHdhaXQsIHdoYXQgaWYgYHN0bW1hY2AgaXMgdXNlZCB2aWEgcGxhdGZvcm0gZGV2aWNlcz8gSSBuZWVkIHRvIGNvbnNpZGVyIGFsbCBwb3NzaWJpbGl0aWVzLiBRRU1VIGhhcyBgaHcvbmV0L3hnbWFjLmNgIGFuZCBJIG5lZWQgdG8gc2VlIGlmIHRoYXQncyByZWxhdGVkIHRvIGBzdG1tYWNgLiBOb3BlLCBgeGdtYWNgIGlzIENhbHhlZGEuIExldCdzIHNlZS4uLiBgaHcvbmV0L2FsbHdpbm5lci1zdW44aS1lbWFjLmNgIGlzIGZvciBzdW44aSwgYW5kIGBody9uZXQvbnBjbTd4eF9lbWMuY2AgaXMgcmVsYXRlZCB0byBucGNtN3h4LlxuXG5Pa2F5LCBpcyBgc3RtbWFjYCB1c2VkIGluICphbnkqIFFFTVUgbWFjaGluZT8gSXQncyB1c2VkIGluIG1hbnkgQVJNIGJvYXJkcy4gYHN0bW1hY2AgaXMgdGhlIGRyaXZlciBmb3IgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIChEV01BQykuIEFuZCB5ZXMhIFFFTVUgKmRvZXMqIGVtdWxhdGUgYGh3L25ldC9kZXNpZ253YXJlLmNgISBTbyBgc3RtbWFjYCAqaXMqIHJlYWNoYWJsZSB0aHJvdWdoIFFFTVUuIE5vdywgbGV0J3Mgc2VlIGhvdyBgc3RtbWFjYCBtYXRjaGVzIHVwIHdpdGggYGRlc2lnbndhcmVgLiBUaGlzIGlzIGdldHRpbmcgaW50ZXJlc3RpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0NzYwLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQwOjQ0LjgyOTYzOTk5NloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE0MzcyMjA2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzbnBzLGR3bWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjA4OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuN2ktYTIwLWdtYWMueWFtbD05PWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjdpLWEyMC1nbWFjLnlhbWw6MTA6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW43aS1hMjAtZ21hYy55YW1sLTExLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw9OT1tYWludGFpbmVyczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTEyLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjEzOiMgV2UgbmVlZCBhIHNlbGVjdCBoZXJlIHNvIHdlIGRvbid0IG1hdGNoIGFsbCBub2RlcyB3aXRoICdzbnBzLGR3bWFjJ1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTE0LXNlbGVjdDpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sPTI4PXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC00NS0gICAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjU1aS1hNTIzLWdtYWMyMDBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbDo0NjogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQ3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw9OTI9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6OTM6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC05NC0gIC0gaWY6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbD0yNTU9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0yNzQtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6Mjc1OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0yNzYtICAgICAgICB9O1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzI1LSAgICAgICAgICAgICNzaXplLWNlbGxzID0gXFx1MDAzYzBcXHUwMDNlO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjMyNjogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzI3LSAgICAgICAgfTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTM3NC0gICAgICAgIG1kaW8ge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjM3NTogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzc2LSAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzg3LSAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJhbGx3aW5uZXIsc3VuNTVpLWE1MjMtZ21hYzIwMFxcXCIsXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6Mzg4OiAgICAgICAgICAgICAgICAgICAgIFxcXCJzbnBzLGR3bWFjLTQuMjBhXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0zODktICAgICAgICByZWcgPSBcXHUwMDNjMHgwNDUxMDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQwNS0gICAgICAgIG1kaW8ge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjQwNjogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtNDA3LSAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw9MTI9ZGVzY3JpcHRpb246XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0xNi0gICMgVE9ETzogRGV0ZXJtaW5lIGhvdyB0byBoYW5kbGUgdGhlIEFycmlhMTAgcmVzZXQtbmFtZSwgc3RtbWFjZXRoLW9jcCwgdGhhdFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjE3OiAgIyBkb2VzIG5vdCB2YWxpZGF0ZSBhZ2FpbnN0IG5ldC9zbnBzLGR3bWFjLnlhbWwuXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMTgtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbD0zMT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMzUtICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDozNjogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjcwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjM3OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMzgtICAgICAgLSBpdGVtczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0zOS0gICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6NDA6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43MmFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDo0MTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTQyLSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtNDMtICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjQ0OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNzRhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6NDU6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC00Ni0gICAgICAtIGl0ZW1zOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw9MTUzPWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjE1NDogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTE1NS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sPTE1OD1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTE2Ni0gICAgICAgIGV0aGVybmV0QGZmNzAwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDoxNjc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjXFxcIiwgXFxcInNucHMsZHdtYWMtMy43MGFcXFwiLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjE2ODogICAgICAgICAgICBcXFwic25wcyxkd21hY1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMTY5LSAgICAgICAgICAgIGFsdHIsc3lzbWdyLXN5c2NvbiA9IFxcdTAwM2NcXHUwMDI2c3lzbWdyIDB4NjAgMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbD0xMD1tYWludGFpbmVyczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTEzLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sOjE0OiMgV2UgbmVlZCBhIHNlbGVjdCBoZXJlIHNvIHdlIGRvbid0IG1hdGNoIGFsbCBub2RlcyB3aXRoICdzbnBzLGR3bWFjJ1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTE1LXNlbGVjdDpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sPTI5PWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sOjMwOiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWwtMzEtICAtIGlmOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWw9MTMwPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNDMtICAgICAgZW51bTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbDoxNDQ6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbDoxNDU6ICAgICAgICAtIHNucHMsZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNDYtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbD0xNzI9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNzQtICAgIGV0aG1hYzogZXRoZXJuZXRAYzk0MTAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sOjE3NTogICAgICAgIGNvbXBhdGlibGUgPSBcXFwiYW1sb2dpYyxtZXNvbi1neGJiLWR3bWFjXFxcIiwgXFxcInNucHMsZHdtYWNcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTE3Ni0gICAgICAgIHJlZyA9IFxcdTAwM2MweGM5NDEwMDAwIDB4MTAwMDBcXHUwMDNlLCBcXHUwMDNjMHhjODgzNDU0MCAweDhcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbmFyaW9uLWdtYWMudHh0PTY9UmVxdWlyZWQgcHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQ6NzogLSBjb21wYXRpYmxlOiAgU2hvdWxkIGJlIFxcXCJhZGFwdHJ1bSxhbmFyaW9uLWdtYWNcXFwiLCBcXFwic25wcyxkd21hY1xcXCJcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQtOC0gLSBwaHktbW9kZTogICAgU2hvdWxkIGJlIFxcXCJyZ21paVxcXCIuIE90aGVyIG1vZGVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZC5cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dD0xMT1FeGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dC0xMy1cXHRnbWFjMTogZXRoZXJuZXRAZjIwMTQwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dDoxNDpcXHRcXHRjb21wYXRpYmxlID0gXFxcImFkYXB0cnVtLGFuYXJpb24tZ21hY1xcXCIsIFxcXCJzbnBzLGR3bWFjXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQtMTUtXFx0XFx0cmVnID0gXFx1MDAzYzB4ZjIwMTQwMDAgMHg0MDAwXFx1MDAzZSwgXFx1MDAzYzB4ZjIwMTgxMDAgOFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWw9Mjc9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sOjI4OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTI5LSAgLSBpZjpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbD00OD1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTUzLSAgICAgICAgICAtIGVzd2luLGVpYzc3MDAtcW9zLWV0aC1jbGstaW52ZXJzaW9uXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sOjU0OiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC01NS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbD0xMzc9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWwtMTM5LSAgICBldGhlcm5ldEA1MDQwMDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sOjE0MDogICAgICAgIGNvbXBhdGlibGUgPSBcXFwiZXN3aW4sZWljNzcwMC1xb3MtZXRoXFxcIiwgXFxcInNucHMsZHdtYWMtNS4yMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTE0MS0gICAgICAgIHJlZyA9IFxcdTAwM2MweDUwNDAwMDAwIDB4MTAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTE2NS0gICAgZXRoZXJuZXRANTA0MTAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDoxNjY6ICAgICAgICBjb21wYXRpYmxlID0gXFxcImVzd2luLGVpYzc3MDAtcW9zLWV0aC1jbGstaW52ZXJzaW9uXFxcIiwgXFxcInNucHMsZHdtYWMtNS4yMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTE2Ny0gICAgICAgIHJlZyA9IFxcdTAwM2MweDUwNDEwMDAwIDB4MTAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw9MjE9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MjI6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0yMy1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbD0yND1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWwtMjktICAgICAgICAgICAgICAtIGludGVsLGtlZW1iYXktZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbDozMDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjEwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvaW50ZWwsZHdtYWMtcGxhdC55YW1sLTMxLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw9NTc9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMDYtICAgIGdtYWMwOiBldGhlcm5ldEAzYTAwMDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MTA3OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJpbnRlbCxrZWVtYmF5LWR3bWFjXFxcIiwgXFxcInNucHMsZHdtYWMtNC4xMGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvaW50ZWwsZHdtYWMtcGxhdC55YW1sLTEwOC0gICAgICAgIGludGVycnVwdHMgPSBcXHUwMDNjR0lDX1NQSSAxMTkgSVJRX1RZUEVfTEVWRUxfSElHSFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMjgtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MTI5OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMzAtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0PTY9UmVxdWlyZWQgcHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0LTctXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pcHE4MDZ4LWR3bWFjLnR4dDo4Oi0gY29tcGF0aWJsZTogc2hvdWxkIGJlIFxcXCJxY29tLGlwcTgwNngtZ21hY1xcXCIgYWxvbmcgd2l0aCBcXFwic25wcyxkd21hY1xcXCJcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0LTktXFx0ICAgICAgYW5kIGFueSBhcHBsaWNhYmxlIG1vcmUgZGV0YWlsZWQgdmVyc2lvbiBudW1iZXJcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9MzQ9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWwtMzgtICAgICAgICAgIC0gbG9vbmdzb24sbHMxYi1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbDozOTogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC00MC1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9Nzg9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbDo3OTogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWwtODAtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sPTgzPWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC04OC0gICAgZ21hYzA6IGV0aGVybmV0QDFmZTEwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sOjg5OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJsb29uZ3NvbixsczFiLWdtYWNcXFwiLCBcXFwic25wcyxkd21hYy0zLjUwYVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC05MC0gICAgICAgIHJlZyA9IFxcdTAwM2MweDFmZTEwMDAwIDB4MTAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC0xMDctICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbDoxMDg6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJzbnBzLGR3bWFjLW1kaW9cXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWwtMTA5LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD0zMz1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbC0zNy0gICAgICAgICAgLSBsb29uZ3NvbixsczFjLWVtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sOjM4OiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy41MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sLTM5LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD03Nz1hbGxPZjpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sOjc4OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbC03OS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWw9ODI9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sLTg3LSAgICBlbWFjOiBldGhlcm5ldEAxZmUxMDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbDo4ODogICAgICAgIGNvbXBhdGlibGUgPSBcXFwibG9vbmdzb24sbHMxYy1lbWFjXFxcIiwgXFxcInNucHMsZHdtYWMtMy41MGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtODktICAgICAgICByZWcgPSBcXHUwMDNjMHgxZmUxMDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtMTA2LSAgICAgICAgICAgICNzaXplLWNlbGxzID0gXFx1MDAzYzBcXHUwMDNlO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWw6MTA3OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sLTEwOC1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0xMj1kZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC0xNC1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6MTU6IyBXZSBuZWVkIGEgc2VsZWN0IGhlcmUgc28gd2UgZG9uJ3QgbWF0Y2ggYWxsIG5vZGVzIHdpdGggJ3NucHMsZHdtYWMnXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTE2LXNlbGVjdDpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0yNz1hbGxPZjpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6Mjg6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMjktXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sPTMwPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMzUtICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10MjcxMi1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sOjM2OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTQuMjBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTM3LSAgICAgIC0gaXRlbXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMzktICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sOjQwOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTQxLSAgICAgIC0gaXRlbXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtNDQtICAgICAgICAgIC0gY29uc3Q6IG1lZGlhdGVrLG10ODE5NS1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sOjQ1OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTQ2LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sPTE1Mj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC0xNjAtICAgIGV0aDogZXRoZXJuZXRAMTEwMWMwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbDoxNjE6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10MjcxMi1nbWFjXFxcIiwgXFxcInNucHMsZHdtYWMtNC4yMGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC0xNjItICAgICAgICByZWcgPSBcXHUwMDNjMHgxMTAxYzAwMCAweDEzMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sPTI1PWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbDoyNjogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbC0yNy1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWw9Mjg9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbC0zMS0gICAgICAtIGNvbnN0OiBudXZvdG9uLG1hMzVkMS1kd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbDozMjogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTMzLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sPTEwOD1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbC0xMTMtICAgIGV0aGVybmV0QDQwMTIwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWw6MTE0OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJudXZvdG9uLG1hMzVkMS1kd21hY1xcXCIsIFxcXCJzbnBzLGR3bWFjLTMuNzBhXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWwtMTE1LSAgICAgICAgcmVnID0gXFx1MDAzYzB4NDAxMjAwMDAgMHgxMDAwMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWwtMTMxLSAgICAgICAgbWRpbyB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sOjEzMjogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTEzMy0gICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sPTk9bWFpbnRhaW5lcnM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0xMy1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbDoxNDojIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24ndCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAnc25wcyxkd21hYydcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0xNS1zZWxlY3Q6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbD0yNj1hbGxPZjpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbDoyNzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTI4LVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sPTI5PXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0zNi0gICAgICAgICAgICAgIC0gbnhwLGlteDkzLWR3bWFjLWVxb3NcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbDozNzogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjEwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTM4LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw9OTM9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC05OS0gICAgZXFvczogZXRoZXJuZXRAMzBiZjAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sOjEwMDogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcIm54cCxpbXg4bXAtZHdtYWMtZXFvc1xcXCIsXFxcInNucHMsZHdtYWMtNS4xMGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTEwMS0gICAgICAgICAgICByZWcgPSBcXHUwMDNjMHgzMGJmMDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbD05PW1haW50YWluZXJzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTExLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDoxMjojIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24ndCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAnc25wcyxkd21hYydcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtMTMtc2VsZWN0Olxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sPTIyPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtMjYtICAgICAgICAgIC0gbnhwLGxwYzE4NTAtZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWw6Mjc6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjYxMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDoyODogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTI5LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sPTYyPWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDo2MzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbC02NC1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbD02Nz1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbC03MS0gICAgZXRoZXJuZXRANDAwMTAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDo3MjogICAgICAgIGNvbXBhdGlibGUgPSBcXFwibnhwLGxwYzE4NTAtZHdtYWNcXFwiLCBcXFwic25wcyxkd21hYy0zLjYxMVxcXCIsIFxcXCJzbnBzLGR3bWFjXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtNzMtICAgICAgICByZWcgPSBcXHUwMDNjMHg0MDAxMDAwMCAweDIwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWw9ODg9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWw6ODk6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxzMzItZHdtYWMueWFtbC05MC1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sPTkzPWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWwtMTQ3LSAgICAgICAgICAjc2l6ZS1jZWxscyA9IFxcdTAwM2MwXFx1MDAzZTtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxzMzItZHdtYWMueWFtbDoxNDg6ICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxzMzItZHdtYWMueWFtbC0xNDktXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20sZXRocW9zLnlhbWw9MTc9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sOjE4OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sLTE5LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sPTk3PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sLTEzNC1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20sZXRocW9zLnlhbWw6MTM1OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJzbnBzLGR3bWFjLW1kaW9cXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxldGhxb3MueWFtbC0xMzYtICAgICAgICBwaHkxOiBwaHlANCB7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWw9MjI9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sOjIzOiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTI0LVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbD0yNT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTMwLSAgICAgIC0gY29uc3Q6IHJlbmVzYXMscnpuMS1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sOjMxOiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWwtMzItXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWw9NTI9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWwtNTctICAgIGV0aGVybmV0QDQ0MDAwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWw6NTg6ICAgICAgY29tcGF0aWJsZSA9IFxcXCJyZW5lc2FzLHI5YTA2ZzAzMi1nbWFjXFxcIiwgXFxcInJlbmVzYXMscnpuMS1nbWFjXFxcIiwgXFxcInNucHMsZHdtYWNcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbC01OS0gICAgICByZWcgPSBcXHUwMDNjMHg0NDAwMDAwMCAweDIwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MjY9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTMwLSAgICAgICAgICAtIGNvbnN0OiByZW5lc2FzLHI5YTA4ZzA0Ni1nYmV0aCAjIFJaL0czTFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sOjMxOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMzItICAgICAgLSBpdGVtczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTM3LSAgICAgICAgICAtIGNvbnN0OiByZW5lc2FzLHJ6djJoLWdiZXRoXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6Mzg6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTM5LSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtNDAtICAgICAgICAgIC0gY29uc3Q6IHJlbmVzYXMscjlhMDlnMDc3LWdiZXRoICMgUlovVDJIXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6NDE6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTQyLSAgICAgIC0gaXRlbXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC00NC0gICAgICAgICAgLSBjb25zdDogcmVuZXNhcyxyOWEwOWcwNzctZ2JldGhcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbDo0NTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjIwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtNDYtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbD0xNjY9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MTY3OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMTY4LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MjQ5PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMjU0LSAgICBldGhlcm5ldEAxNWMzMDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MjU1OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJyZW5lc2FzLHI5YTA5ZzA1Ny1nYmV0aFxcXCIsIFxcXCJyZW5lc2FzLHJ6djJoLWdiZXRoXFxcIiwgXFxcInNucHMsZHdtYWMtNS4yMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMjU2LSAgICAgICAgcmVnID0gXFx1MDAzYzB4MTVjMzAwMDAgMHgxMDAwMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zNTUtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MzU2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zNTctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JvY2tjaGlwLWR3bWFjLnlhbWw9OT1tYWludGFpbmVyczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JvY2tjaGlwLWR3bWFjLnlhbWw6MTI6IyBXZSBuZWVkIGEgc2VsZWN0IGhlcmUgc28gd2UgZG9uJ3QgbWF0Y2ggYWxsIG5vZGVzIHdpdGggJ3NucHMsZHdtYWMnXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sLTEzLXNlbGVjdDpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbD0zNz1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sLTU5LSAgICAgICAgICAgICAgLSByb2NrY2hpcCxydjExMjYtZ21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbDo2MDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC02MS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbD0xMzI9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sOjEzMzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMzQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD0xOD1zZWxlY3Q6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC0yMi0gICAgICAgIGVudW06XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjM6ICAgICAgICAgIC0gc25wcyxkd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjI0OiAgICAgICAgICAtIHNucHMsZHdtYWMtMy40MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoyNTogICAgICAgICAgLSBzbnBzLGR3bWFjLTMuNTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjY6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjYxMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjI3OiAgICAgICAgICAtIHNucHMsZHdtYWMtMy43MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoyODogICAgICAgICAgLSBzbnBzLGR3bWFjLTMuNzEwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6Mjk6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjcyYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjMwOiAgICAgICAgICAtIHNucHMsZHdtYWMtNC4wMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjMxOiAgICAgICAgICAtIHNucHMsZHdtYWMtNC4xMGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozMjogICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMjBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MzM6ICAgICAgICAgIC0gc25wcyxkd21hYy01LjAwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjM0OiAgICAgICAgICAtIHNucHMsZHdtYWMtNS4xMGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozNTogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMjBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozNjogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtMzctICAgICAgICAgIC0gc25wcyxkd3hnbWFjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD00Nj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtOTgtICAgICAgICAtIHJvY2tjaGlwLHJ2MTEyNi1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6OTk6ICAgICAgICAtIHNucHMsZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDA6ICAgICAgICAtIHNucHMsZHdtYWMtMy40MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDE6ICAgICAgICAtIHNucHMsZHdtYWMtMy41MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDI6ICAgICAgICAtIHNucHMsZHdtYWMtMy42MTBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDM6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDQ6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MTBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDU6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MmFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDY6ICAgICAgICAtIHNucHMsZHdtYWMtNC4wMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwNzogICAgICAgIC0gc25wcyxkd21hYy00LjEwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwODogICAgICAgIC0gc25wcyxkd21hYy00LjIwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwOTogICAgICAgIC0gc25wcyxkd21hYy01LjAwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjExMDogICAgICAgIC0gc25wcyxkd21hYy01LjEwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjExMTogICAgICAgIC0gc25wcyxkd21hYy01LjIwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTEyOiAgICAgICAgLSBzbnBzLGR3bWFjLTUuMzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTEzOiAgICAgICAgLSBzbnBzLGR3bWFjLTUuNDBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtMTE0LSAgICAgICAgLSBzbnBzLGR3eGdtYWNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTU1NS0gICAgICBjb21wYXRpYmxlOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjU1NjogICAgICAgIGNvbnN0OiBzbnBzLGR3bWFjLW1kaW9cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC01NTctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD02MTE9YWxsT2Y6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC02MzUtICAgICAgICAgICAgICAgIC0gcWNvbSxzbTgxNTAtZXRocW9zXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjM2OiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNC4wMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjYzNzogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjM4OiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNC4yMGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo2Mzk6ICAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy01LjAwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjY0MDogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjQxOiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjY0MjogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjQzOiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNS40MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC02NDQtICAgICAgICAgICAgICAgIC0gc25wcyxkd3hnbWFjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD02NTQ9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC03MTItICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NzEzOiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC03MTQtICAgICAgICAgICAgcGh5MTogZXRoZXJuZXQtcGh5QDAge1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sPTIxPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWwtMjQtICAgICAgLSBjb25zdDogc29waGdvLGN2MTgwMGItZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw6MjU6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjcwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC0yNi1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbD02Mj1hbGxPZjpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw6NjM6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWwtNjQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw9Njc9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWwtNzEtICAgIGV0aGVybmV0QDQwNzAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbDo3MjogICAgICBjb21wYXRpYmxlID0gXFxcInNvcGhnbyxjdjE4MDBiLWR3bWFjXFxcIiwgXFxcInNucHMsZHdtYWMtMy43MGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC03My0gICAgICByZWcgPSBcXHUwMDNjMHgwNDA3MDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC05My0gICAgICBtZGlvIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw6OTQ6ICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTk1LSAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbD0yMj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtMjYtICAgICAgICAgIC0gY29uc3Q6IHNvcGhnbyxzZzIwNDItZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDoyNzogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjAwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTI4LSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtMjktICAgICAgICAgIC0gY29uc3Q6IHNvcGhnbyxzZzIwNDQtZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDozMDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjMwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTMxLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWw9NzE9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWw6NzI6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbC03My0gIC0gaWY6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbD05NT1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTk5LSAgICBldGhlcm5ldEAzMDAwNjAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWw6MTAwOiAgICAgIGNvbXBhdGlibGUgPSBcXFwic29waGdvLHNnMjA0NC1kd21hY1xcXCIsIFxcXCJzbnBzLGR3bWFjLTUuMzBhXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbC0xMDEtICAgICAgcmVnID0gXFx1MDAzYzB4MzAwMDYwMDAgMHg0MDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbD0yMD1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTIzLSAgICAgIC0gY29uc3Q6IHNwYWNlbWl0LGszLWR3bWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sOjI0OiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS40MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWwtMjUtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWw9ODA9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sOjgxOiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTgyLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sPTg1PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTg5LSAgICBldGhlcm5ldEBjYWM4MDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sOjkwOiAgICAgIGNvbXBhdGlibGUgPSBcXFwic3BhY2VtaXQsazMtZHdtYWNcXFwiLCBcXFwic25wcyxkd21hYy01LjQwYVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTkxLSAgICAgIHJlZyA9IFxcdTAwM2MweGNhYzgwMDAwIDB4MjAwMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sPTI0PXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sLTI4LSAgICAgICAgICAtIGNvbnN0OiBzdGFyZml2ZSxqaDcxMDAtZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sOjI5OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbC0zMC0gICAgICAtIGl0ZW1zOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzEtICAgICAgICAgIC0gY29uc3Q6IHN0YXJmaXZlLGpoNzExMC1kd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWw6MzI6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzMtICAgICAgLSBpdGVtczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzUtICAgICAgICAgIC0gY29uc3Q6IHN0YXJmaXZlLGpoNzExMC1kd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWw6MzY6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sPTg4PWFsbE9mOlxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDo0Ni45NzMzNjYzMzZaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ5MjE5MzIwNTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IERlc2lnbldhcmUgTUFDIGFuZCBQSFkgSW50ZXJmYWNlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0YXJnZXRzLiBZZXMsIGBzbnBzLGR3bWFjYCBpcyBkZWZpbml0ZWx5IHRoZSBEZXNpZ25XYXJlIE1BQy4gUUVNVSBlbXVsYXRlcyBpdCB3aXRoIGBody9uZXQvZGVzaWdud2FyZS5jYCwgYW5kIHRoYXQncyB0aGUgc2FtZSB0aGluZyBhcyBgc25wcyxkd21hY2AuIFNvIHRoYXQgbWVhbnMgdGhlIGBzdG1tYWNgIGRyaXZlciBpcyAqYWJzb2x1dGVseSogcmVhY2hhYmxlIGluIFFFTVUgdmlhIHBsYXRmb3JtIGRldmljZXMuIEdvb2Qgc3RhcnQuXG5cbk5vdywgbGV0J3MgZHJpbGwgZG93bi4gVGhlIHBhdGNoIGluY2x1ZGVzIGEgc21hbGwgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGBzdG1tYWNfaW5pdF9waHlgIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jYC4gSXQncyB0aGlzIGJsb2NrIHRoYXQgc3Rvb2Qgb3V0OlxuXG5gYGBjXG5cdFx0LyogSWYgYSBjdXN0b20gUENTIGlzIGluIHVzZSwgbm8gUEhZIGlzIG5lZWRlZCAqL1xuXHRcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZXBoeWxpbmtfcGNzKVxuXHRcdFx0cmV0dXJuIDA7XG5gYGBcblxuSXQncyBhIHNtYWxsIGNoYW5nZSwgYnV0IGl0J3MgYSBjb25kaXRpb24gYW5kIHRoYXQncyBpbnRlcmVzdGluZyBmb3IgZnV6emluZy4gSXQncyBhIGtleSB0byBkZXRlcm1pbmUgaWYgYSBQSFkgaXMgdXNlZCBvciBub3QuXG5cblRoZSBtb3JlIHNpZ25pZmljYW50IGNoYW5nZXMsIGhvd2V2ZXIsIGFyZSBpbiB0aGUgcGh5bGluayBwYXJ0LiBIZXJlJ3Mgd2hhdCdzIGJlZW4gY2hhbmdlZDpcblxuYGBgY1xuLVx0aWYgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEIHx8XG4tXHQgICAgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCBcdTAwMjZcdTAwMjZcbi1cdCAgICAgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6KHBsLVx1MDAzZWxpbmtfaW50ZXJmYWNlKSkpXG4rXHRpZiAocGwtXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQpXG5gYGBcblxuVGhpcyBpcyBkaXJlY3RseSBpbXBhY3RpbmcgYHBoeWxpbmtfZXhwZWN0c19waHlgIGFuZCBgcGh5bGlua19hdHRhY2hfcGh5YC4gVGhpcyBpcyBhICpmdW5jdGlvbmFsIGNoYW5nZSogdG8gdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpdHNlbGYsIGFzIHdlbGwgYXMgdGhlIHN0bW1hYyBkcml2ZXIuIFRoYXQgbWFrZXMgdGhpcyBhcmVhIHZlcnkgcmVsZXZhbnQuXG5cblNvLCB0aGUgcGF0Y2ggYWx0ZXJzIGJvdGggdGhlIGNvcmUgcGh5bGluayBmdW5jdGlvbmFsaXR5IGFuZCB0aGUgc3RtbWFjIGRyaXZlciBpbiB0ZXJtcyBvZiBQSFkgaGFuZGxpbmcuIFRoaXMgaXMgcHJvbWlzaW5nLiBJdCdzIHdvcnRoIGEgZnV6emluZyBjYW1wYWlnbiB0byBzZWUgaWYgdGhlc2UgY2hhbmdlcyBpbnRyb2R1Y2UgYW55IG5ldyB2dWxuZXJhYmlsaXRpZXMuXG5cbkkgbmVlZCB0byBuYWlsIGRvd24gdGhlIHNwZWNpZmljIGZ1bmN0aW9ucy4gRm9yIHRoZSBwaHlsaW5rIHNpZGUsIEknbSB0aGlua2luZyB0aGVzZSBmdW5jdGlvbnMgYXJlIHRoZSBrZXkgZm9jdXM6IGBwaHlsaW5rX2V4cGVjdHNfcGh5YCwgYHBoeWxpbmtfY29ubmVjdF9waHlgLCBgcGh5bGlua19vZl9waHlfY29ubmVjdGAsIGFuZCBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgLlxuXG5Ob3csIHJlZ2FyZGluZyB0aGUgYHN0bW1hY2Agc2lkZSwgYHN0bW1hY19pbml0X3BoeWAgaXRzZWxmIGlzIHN0YXRpYywgc28gSSBuZWVkIHRvIGZpbmQgaXRzIGNhbGxlcnMuIEl0IGlzIHVzZWQgaW5zaWRlIGBzdG1tYWNfb3BlbmAgYW5kIGBzdG1tYWNfZHZyX3Byb2JlYC4gU28gdGhvc2UgYXJlIHRoZSBmdW5jdGlvbnMgdG8gZXhhbWluZSBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTkwOSwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MTowMS44OTUzMDA2ODhaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MTUyMjYxNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjX2luaXRfcGh5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MTI2NT1zdGF0aWMgdm9pZCBzdG1tYWNfY2hlY2tfcGNzX21vZGUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xMjkwLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTI5MTogKiBzdG1tYWNfaW5pdF9waHkgLSBQSFkgaW5pdGlhbGl6YXRpb25cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTItICogQGRldjogbmV0IGRldmljZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTI5Ny0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEyOTg6c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MTc3PXN0YXRpYyBpbnQgc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDE5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxOTU6XFx0cmV0ID0gc3RtbWFjX2luaXRfcGh5KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTk2LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjAzLjcxMDUzNjQ4NloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjQ4NTg2MDYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBgc3RtbWFjYCBEcml2ZXIncyBQSFkgQ29ubmVjdGlvbioqXG5cbk9rYXksIHNvIEknbSB0cmFjaW5nIHRocm91Z2ggdGhpcyBjb2RlIGFuZCBpdCBsb29rcyBsaWtlIGBzdG1tYWNfb3BlbmAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaW5pdGlhdGVzIHRoZSB3aG9sZSBwcm9jZXNzLiBUaGF0J3MgdGhlIGVudHJ5IHBvaW50IEkgbmVlZCB0byB6ZXJvIGluIG9uLiBJJ20gZ29pbmcgdG8gYWRkIGBzdG1tYWNfb3BlbmAsIGFsb25nIHdpdGggYWxsIGl0cyByZWxhdGVkIFBIWSBjb25uZWN0aW9uIGZ1bmN0aW9ucyDigJMgYHBoeWxpbmtfY29ubmVjdF9waHlgLCBgcGh5bGlua19vZl9waHlfY29ubmVjdGAsIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAsIGFuZCBgcGh5bGlua19leHBlY3RzX3BoeWAg4oCTIHRvIG15IGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2AuIFRoYXQgZ2l2ZXMgbWUgYSBjbGVhciBwYXRoIHRvIHVuZGVyc3RhbmQgdGhlIGludGVyYWN0aW9uLlxuXG5Ob3csIGxldCdzIHRoaW5rIGFib3V0IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW52b2x2ZWQgaGVyZS4gRm9yIGBzdG1tYWNgLCB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGxpa2VseSBgQ09ORklHX1NUTU1BQ19FVEhgLiBGb3IgYHBoeWxpbmtgLCBpdCdzIHByb2JhYmx5IGBDT05GSUdfUEhZTElOS2AuIEknbGwgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlcyBmb3IgYm90aCBgU1RNTUFDX0VUSGAgYW5kIGBQSFlMSU5LYCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gYW5kIHRvIHVuZGVyc3RhbmQgYW55IGRlcGVuZGVuY2llcy4gS25vd2luZyB0aGUgY29uZmlndXJhdGlvbiB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlc2UgZGlmZmVyZW50IG1vZHVsZXMgYXJlIGFjdGl2YXRlZCBhbmQgY29tcGlsZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMzk3LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjA3Ljk1OTEyNTc5N1oiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1NTA0NDI2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU1RNTUFDX0VUSFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjA5LjcxNDE3NDkwNloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDEyMzg2NzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKlBIWUxJTksgQ2hlY2stSW4qKlxuXG5SaWdodCwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgYFBIWUxJTktgLiBHaXZlbiB3aGF0IHdlJ3JlIHdvcmtpbmcgb24sIGl0IHNlZW1zIGxpa2UgYSBjcnVjaWFsIHBvaW50IHRvIHJldmlzaXQuIEkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyBpdHMgY3VycmVudCBzdGF0dXMgYW5kIHdoZXRoZXIgaXQncyBzdGlsbCB0aGUgYmVzdCB0b29sIGZvciB0aGlzIHBhcnRpY3VsYXIgdGFzay4gSXMgaXQgbWVldGluZyB0aGUgcGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzPyBBcmUgdGhlcmUgYW55IGtub3duIGJ1Z3Mgb3IgbGltaXRhdGlvbnMgdGhhdCBtaWdodCBiZWNvbWUgY3JpdGljYWwgZG93biB0aGUgbGluZT8gSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBgUEhZTElOS2AgaXNuJ3QgZ29pbmcgdG8gYm90dGxlbmVjayB0aGlzIGFuYWx5c2lzLCBzbyBhIG1lbnRhbCBjaGVja2xpc3Qgb2YgaXRzIGZ1bmN0aW9uYWxpdHkgaXMgaW4gb3JkZXIuIEhhdmUgdGhlIHJlY2VudCB1cGRhdGVzIGltcGFjdGVkIHRoZSBpbnRlbmRlZCBmdW5jdGlvbj8gSXQgbWlnaHQgYWxzbyBiZSBhIGdvb2QgaWRlYSB0byBxdWlja2x5IHNjYW4gdGhlIGRvY3VtZW50YXRpb24gYWdhaW4sIGp1c3QgdG8gbWFrZSBzdXJlIEknbSB1cCB0byBzcGVlZCBvbiBhbnkgbmV3IGZlYXR1cmVzIHRoYXQgbWF5IGhhdmUgYmVlbiBhZGRlZC4gTGV0J3Mgc2VlIGlmIGl0IGlzIHN0aWxsIHRoZSBvcHRpbWFsIG9wdGlvbiBmb3IgdGhpcyB3b3JrZmxvdy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE4OTUsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjEzLjEyNjU2NTIxN1oiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc2NDM1MTc0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUEhZTElOS1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvS2NvbmZpZy01LVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjY6Y29uZmlnIFBIWUxJTktcXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy03LVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjE0Ljg5MDkyMzQ3NVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTQ1MzQ3NTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBhbHJlYWR5IGRlZXAgaW4gdGhlIHdlZWRzIG9mIGRldmljZSBkcml2ZXIgY29uZmlndXJhdGlvbjpcblxuKipOYXZpZ2F0aW5nIERldmljZSBEcml2ZXIgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBzbyBgUEhZTElOS2AgaXMgb25lIG9mIHRob3NlIHRyaXN0YXRlIHN5bWJvbHMsIG1lYW5pbmcgaXQncyBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFuZCBkb2Vzbid0IGdldCBhIGRpcmVjdCBwcm9tcHQgb2YgaXRzIG93bi4gSXQncyBlc3NlbnRpYWxseSBhIGRlcGVuZGVuY3kuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyBpdCdzIGJlaW5nIHNlbGVjdGVkLiBNeSBodW5jaCBpcyB0aGF0IGBTVE1NQUNfRVRIYCBtaWdodCBiZSB0aGUgY3VscHJpdC4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgU1RNTUFDX0VUSGAgaXMsIGluIGZhY3QsIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyBgUEhZTElOS2AuIExldCBtZSBjcm9zcy1yZWZlcmVuY2UgdGhlIEtjb25maWcgZmlsZXMsIG9yIHVzZSBteSB0b29sIG9mIGNob2ljZSB0byByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGNoYWluLiBJIG5lZWQgdG8gY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBhbmQgZW5zdXJlIHRoaXMgYmVoYXZpb3IgaXMgaW50ZW50aW9uYWwuIFVuZGVyc3RhbmRpbmcgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGVzZSBzeW1ib2xzIGlzIGtleSB0byBjb250cm9sbGluZyBteSBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIxNzksIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MToxOC4wMzYyNzQxMzJaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MjY2Njc0NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2VsZWN0IFBIWUxJTktcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdD03ND10aGlzIGRvY3VtZW50YXRpb24uXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0LTkxLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q6OTI6XFx0c2VsZWN0IFBIWUxJTktcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0LTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWc9Mj1jb25maWcgQUxURVJBX1RTRVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWctNi1cXHRzZWxlY3QgUEhZTElCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWc6NzpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9LY29uZmlnLTgtXFx0c2VsZWN0IFBDU19MWU5YXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL0tjb25maWc9MjA9Y29uZmlnIEFHNzFYWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9LY29uZmlnLTIyLVxcdGRlcGVuZHMgb24gQVRINzkgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9LY29uZmlnOjIzOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9LY29uZmlnLTI0LVxcdGltcGx5IE5FVF9TRUxGVEVTVFNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZz0yMj1jb25maWcgTUFDQlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTI1LVxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6MjY6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMjctXFx0c2VsZWN0IENSQzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZz04MD1jb25maWcgVUNDX0dFVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnLTgzLVxcdHNlbGVjdCBGU0xfUFFfTURJT1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnOjg0OlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWctODUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvS2NvbmZpZz0yPW1lbnVjb25maWcgRlNMX0RQQUFfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBGU0xfRFBBQSBcXHUwMDI2XFx1MDAyNiBGU0xfRk1BTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWc6NTpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWctNi1cXHRzZWxlY3QgUENTX0xZTlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnPTI9Y29uZmlnIEZTTF9EUEFBMl9FVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBGU0xfTUNfQlVTIFxcdTAwMjZcXHUwMDI2IEZTTF9NQ19EUElPXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWc6NTpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnLTYtXFx0c2VsZWN0IFBDU19MWU5YXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZz0zMz1jb25maWcgRlNMX0RQQUEyX1NXSVRDSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWctMzctXFx0ZGVwZW5kcyBvbiBGU0xfTUNfQlVTIFxcdTAwMjZcXHUwMDI2IEZTTF9NQ19EUElPXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWc6Mzg6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZy0zOS1cXHRzZWxlY3QgUENTX0xZTlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnPTMwPWNvbmZpZyBGU0xfRU5FVENcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTM3LVxcdHNlbGVjdCBOWFBfRU5FVENfUEZfQ09NTU9OXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc6Mzg6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZy0zOS1cXHRzZWxlY3QgUENTX0xZTlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnPTQ4PWNvbmZpZyBOWFBfRU5FVEM0XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZy01NS1cXHRzZWxlY3QgTlhQX05UTVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZzo1NjpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTU3LVxcdHNlbGVjdCBESU1MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnPTY2PWNvbmZpZyBGU0xfRU5FVENfVkZcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTcxLVxcdHNlbGVjdCBGU0xfRU5FVENfTURJT1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnOjcyOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWctNzMtXFx0c2VsZWN0IERJTUxJQlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZz0yPWNvbmZpZyBGU0xfRk1BTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZy01LVxcdHNlbGVjdCBHRU5FUklDX0FMTE9DQVRPUlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL0tjb25maWc6NjpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL0tjb25maWctNy1cXHRzZWxlY3QgUENTX0xZTlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L0tjb25maWc9Mj1jb25maWcgRlNfRU5FVFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvS2NvbmZpZy01LVxcdHNlbGVjdCBNSUlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9LY29uZmlnOjY6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9LY29uZmlnLTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWc9NTk9Y29uZmlnIE1WTkVUQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9LY29uZmlnLTYyLVxcdHNlbGVjdCBNVk1ESU9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWc6NjM6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWctNjQtXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9LY29uZmlnPTg2PWNvbmZpZyBNVlBQMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9LY29uZmlnLTg5LVxcdHNlbGVjdCBNVk1ESU9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWc6OTA6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWctOTEtXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnPTY9Y29uZmlnIFBSRVNURVJBXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMTAtXFx0c2VsZWN0IE5FVF9ERVZMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjExOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTEyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWc9MTQ9Y29uZmlnIE5FVF9NRURJQVRFS19TT0NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWctMTctXFx0c2VsZWN0IFBJTkNUUkxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnOjE4OlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvS2NvbmZpZy0xOS1cXHRzZWxlY3QgRElNTElCXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWc9MjA9Y29uZmlnIEZCTklDXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWctMjktXFx0c2VsZWN0IFBDU19YUENTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnOjMwOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTMxLVxcdHNlbGVjdCBQTERNRldcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnPTQ1PWNvbmZpZyBMQU43NDNYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZy01MS1cXHRzZWxlY3QgQ1JDMzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZzo1MjpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnLTUzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWc9MT1jb25maWcgTEFOOTY2WF9TV0lUQ0hcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWctNy1cXHRkZXBlbmRzIG9uIEJSSURHRSB8fCBCUklER0U9blxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWc6ODpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWctOS1cXHRzZWxlY3QgUEFHRV9QT09MXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWc9MT1jb25maWcgU1BBUlg1X1NXSVRDSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnLTgtXFx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWc6OTpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy0xMC1cXHRzZWxlY3QgUEhZX1NQQVJYNV9TRVJERVNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2MvS2NvbmZpZz0xNT1jb25maWcgTVNDQ19PQ0VMT1RfU1dJVENIX0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9LY29uZmlnLTE5LVxcdHNlbGVjdCBQQUNLSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9LY29uZmlnOjIwOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9LY29uZmlnLTIxLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL0tjb25maWc9NDI9Y29uZmlnIFJFTkVTQVNfRVRIRVJfU1dJVENIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL0tjb25maWctNDctXFx0c2VsZWN0IE1JSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvS2NvbmZpZzo0ODpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvS2NvbmZpZy00OS1cXHRzZWxlY3QgUkVORVNBU19HRU40X1BUUFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTktXFx0c2VsZWN0IFBBR0VfUE9PTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExLVxcdHNlbGVjdCBDUkMzMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL0tjb25maWc9MjY9Y29uZmlnIFRFSFVUSV9UTjQwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvS2NvbmZpZy0zMC1cXHRzZWxlY3QgRldfTE9BREVSXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL0tjb25maWc6MzE6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvS2NvbmZpZy0zMi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9LY29uZmlnPTk2PWNvbmZpZyBUSV9LM19BTTY1X0NQU1dfTlVTU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvS2NvbmZpZy0xMDAtXFx0c2VsZWN0IFRJX0RBVklOQ0lfTURJT1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL0tjb25maWc6MTAxOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvS2NvbmZpZy0xMDItXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnPTE5PWNvbmZpZyBMSUJXWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnLTIzLVxcdHNlbGVjdCBESU1MSUJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWc6MjQ6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWctMjUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L0tjb25maWc9MjY9Y29uZmlnIFhJTElOWF9BWElfRU1BQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L0tjb25maWctMjktXFx0ZGVwZW5kcyBvbiBYSUxJTlhfRE1BXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L0tjb25maWc6MzA6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngvS2NvbmZpZy0zMS1cXHRzZWxlY3QgRElNTElCXFxuLS1cXG5kcml2ZXJzL25ldC9wY3MvS2NvbmZpZz04PWNvbmZpZyBQQ1NfWFBDU1xcbmRyaXZlcnMvbmV0L3Bjcy9LY29uZmlnLTktXFx0dHJpc3RhdGUgXFxcIlN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgWFBDU1xcXCJcXG5kcml2ZXJzL25ldC9wY3MvS2NvbmZpZzoxMDpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L3Bjcy9LY29uZmlnLTExLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTExMz1jb25maWcgVVNCX0xBTjc4WFhcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTExNS1cXHRzZWxlY3QgTUlJXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6MTE2OlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctMTE3LVxcdHNlbGVjdCBNSUNST0NISVBfUEhZXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZz0xNjY9Y29uZmlnIFVTQl9ORVRfQVg4ODE3WFxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctMTY5LVxcdHNlbGVjdCBDUkMzMlxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnOjE3MDpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTE3MS1cXHRzZWxlY3QgQVg4ODc5NkJfUEhZXFxuLS1cXG5uZXQvZHNhL0tjb25maWc9Mz1tZW51Y29uZmlnIE5FVF9EU0FcXG4tLVxcbm5ldC9kc2EvS2NvbmZpZy05LVxcdHNlbGVjdCBORVRfU1dJVENIREVWXFxubmV0L2RzYS9LY29uZmlnOjEwOlxcdHNlbGVjdCBQSFlMSU5LXFxubmV0L2RzYS9LY29uZmlnLTExLVxcdHNlbGVjdCBORVRfREVWTElOS1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MToxOS43NjI5NDYyODJaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA3MTc1MzczODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgUmVhc29uaW5nIGZvciBGdXp6aW5nIHRoaXMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gZGlnZ2luZyBpbnRvIHRoaXMgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBwcm9jZXNzIGlzIHRoaXM6IGBTVE1NQUNfRVRIYCBkZWZpbml0ZWx5IHVzZXMgYFBIWUxJTktgLiAgQW5kLCBpdCBsb29rcyBsaWtlIGBVU0JfTEFONzhYWGAgYW5kIGBVU0JfTkVUX0FYODgxN1hgIGFsc28gZGVwZW5kIG9uIGBQSFlMSU5LYC4gR3JlYXQuICBUaG9zZSB0aHJlZSBsb29rIGxpa2UgZ29vZCBpbml0aWFsIGNvbmZpZ3VyYXRpb25zIHRvIGVuYWJsZSBmb3IgdGVzdGluZy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gd2hhdCB0aG9zZSBjb25maWd1cmF0aW9ucyBhY3R1YWxseSAqYXJlKiwgc28gYSBxdWljayBjaGVjay4uLiBZZXAsIGBVU0JfTkVUX0FYODgxN1hgIGlzIGZvciB0aGUgQVNJWCBBWDg4eHh4IFVTQiBFdGhlcm5ldCBhZGFwdGVycywgYW5kIGBVU0JfTEFONzhYWGAgaXMgZm9yIHRoZSBNaWNyb2NoaXAgTEFONzhYWCBVU0IgRXRoZXJuZXQgYWRhcHRlcnMuIFBlcmZlY3QuIFRoZXNlIGFyZSBVU0IgZGV2aWNlcywgYW5kIHRoYXQgbWVhbnMgSSBjYW4gbGV2ZXJhZ2UgU3l6a2FsbGVyJ3MgVVNCIGZ1enplciByZWFsbHkgZWZmZWN0aXZlbHkuICBMZXQncyBhZGQgdGhlc2UgdG8gdGhlIGBFbmFibGVDb25maWdzYC5cblxuTm93LCBsZXQncyB2ZXJpZnkgbXkgRm9jdXNTeW1ib2xzLiBJJ3ZlIGdvdCBgc3RtbWFjX29wZW5gLCBgcGh5bGlua19jb25uZWN0X3BoeWAsIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCwgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgYW5kIGBwaHlsaW5rX2V4cGVjdHNfcGh5YC5cblxuQSBxdWljayBjaGVjayBjb25maXJtcyBgcGh5bGlua19leHBlY3RzX3BoeWAgaXMgZXhwb3J0ZWQgYW5kIGNhbGxlZCBieSBkcml2ZXJzLiBTYW1lIGZvciBgcGh5bGlua19jb25uZWN0X3BoeWAsIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCwgYW5kIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAuIEFuZCBgc3RtbWFjX29wZW5gIGlzIGEgbmV0X2RldmljZV9vcHMgY2FsbGJhY2ssIHNvIHRoYXQgYWxzbyBsb29rcyByaWdodC5cblxuTGV0J3MgcXVpY2tseSBjaGVjazogYHN0bW1hY19vcGVuYCBjYWxscyBgc3RtbWFjX2luaXRfcGh5YCwgd2hpY2ggaXMgd2hlcmUgdGhlIG1vZGlmaWVkIGNvZGUgaXMuIE9rYXksIGV2ZXJ5dGhpbmcgY2hlY2tzIG91dC5cblxuTm93LCBsZXQncyByZXZpZXcgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBzZWxlY3Rpb24uIFRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgbW9kaWZ5aW5nIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgLiBJdCdzIHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBpbnRyb2R1Y2VzIGEgc3BlY2lmaWMgY2hlY2sgd2l0aGluIGBzdG1tYWNfaW5pdF9waHlgLiBUaGlzIG1lYW5zIGl0IGhhcyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcGh5bGluayBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIEFuZCBpbXBvcnRhbnRseSwgdGhpcyBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHRocm91Z2ggc2V2ZXJhbCBlbXVsYXRlZCBkZXZpY2VzLCBpbmNsdWRpbmcgdGhvc2UgVVNCIEV0aGVybmV0IGFkYXB0ZXJzIEkganVzdCBjb25maXJtZWQsICphbmQqIGFsc28gcGxhdGZvcm0gZGV2aWNlcyBsaWtlIHRoZSBEZXNpZ25XYXJlIE1BQyAodGhhdCB1c2VzIGBzdG1tYWNgKS4gQmVjYXVzZSB0aGUgY2hhbmdlcyBhcmUgaW4gdGhlc2UgY29yZSBsb2NhdGlvbnMsIGFuZCBhcmUgcmVhY2hhYmxlIGluIGEgZmV3IGRpZmZlcmVudCB3YXlzLCB0aGUgcGF0Y2ggaXMgYWJzb2x1dGVseSB3b3J0aCBmdXp6aW5nLlxuXG5NeSBjaG9zZW4gY29uZmlncyBhcmU6XG5gU1RNTUFDX0VUSGBcbmBVU0JfTEFONzhYWGBcbmBVU0JfTkVUX0FYODgxN1hgXG5cbk15IGZvY3VzZWQgc3ltYm9scyBhcmU6XG5gc3RtbWFjX29wZW5gXG5gcGh5bGlua19jb25uZWN0X3BoeWBcbmBwaHlsaW5rX29mX3BoeV9jb25uZWN0YFxuYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YFxuYHBoeWxpbmtfZXhwZWN0c19waHlgXG5cbk9rYXksIHRoYXQncyBldmVyeXRoaW5nLiBMZXQncyBzZXQgdGhlIHJlc3VsdHMgYW5kIGdldCB0aGlzIGZ1enppbmcgcnVuIGdvaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTYxNSwiT3V0cHV0VG9rZW5zIjoyNjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDE6MzAuNDgwNDg2MzAyWiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzkxODU1OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlVTQl9MQU43OFhYXCIsXG4gICAgXCJVU0JfTkVUX0FYODgxN1hcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdG1tYWNfb3BlblwiLFxuICAgIFwicGh5bGlua19jb25uZWN0X3BoeVwiLFxuICAgIFwicGh5bGlua19vZl9waHlfY29ubmVjdFwiLFxuICAgIFwicGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RcIixcbiAgICBcInBoeWxpbmtfZXhwZWN0c19waHlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYnkgcmVtb3ZpbmcgdGhlIGBNTE9fQU5fSU5CQU5EYCBhbmQgYHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzemAgY2hlY2tzLiBJdCBhbHNvIGFkZHMgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCB0byByZXR1cm4gZWFybHkgaWYgYSBjdXN0b20gUENTIGlzIGluIHVzZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgcGh5bGluayBjb3JlIGFuZCB0aGUgc3RtbWFjIGRyaXZlci4gVGhlIHBoeWxpbmsgY29yZSBpcyByZWFjaGFibGUgdmlhIHZhcmlvdXMgZW11bGF0ZWQgZGV2aWNlcywgaW5jbHVkaW5nIFVTQiBldGhlcm5ldCBhZGFwdGVycyAoZS5nLiwgTEFONzhYWCwgQVg4ODE3WCkgYW5kIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIERlc2lnbldhcmUgTUFDIC8gc3RtbWFjKS4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJVU0JfTEFONzhYWFwiLFxuICAgIFwiVVNCX05FVF9BWDg4MTdYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInBoeWxpbmtfY29ubmVjdF9waHlcIixcbiAgICBcInBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RcIixcbiAgICBcInBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0XCIsXG4gICAgXCJwaHlsaW5rX2V4cGVjdHNfcGh5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGJ5IHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIGVhcmx5IGlmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHBoeWxpbmsgY29yZSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIFRoZSBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHZpYSB2YXJpb3VzIGVtdWxhdGVkIGRldmljZXMsIGluY2x1ZGluZyBVU0IgZXRoZXJuZXQgYWRhcHRlcnMgKGUuZy4sIExBTjc4WFgsIEFYODgxN1gpIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBEZXNpZ25XYXJlIE1BQyAvIHN0bW1hYykuIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowpgv48[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-27 03:03:55 +0000 UTC FinishedAt: 2026-07-27 03:41:32 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "04026c998c24ac47eb76886b9790c5710b603eb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "USB_LAN78XX", "USB_NET_AX8817X" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "04026c998c24ac47eb76886b9790c5710b603eb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "USB_LAN78XX", "USB_NET_AX8817X" ], "series_id": "9a0b79fb-7b85-4c38-9cdb-1de134b76230" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "stmmac_open", "phylink_connect_phy", "phylink_of_phy_connect", "phylink_fwnode_phy_connect", "phylink_expects_phy" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7VVNCX0xBTjc4WFgmIzM0OywKICAgICYjMzQ7VVNCX05FVF9BWDg4MTdYJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7cGh5bGlua19jb25uZWN0X3BoeSYjMzQ7LAogICAgJiMzNDtwaHlsaW5rX29mX3BoeV9jb25uZWN0JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfZXhwZWN0c19waHkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGJ5IHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIGVhcmx5IGlmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHBoeWxpbmsgY29yZSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIFRoZSBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHZpYSB2YXJpb3VzIGVtdWxhdGVkIGRldmljZXMsIGluY2x1ZGluZyBVU0IgZXRoZXJuZXQgYWRhcHRlcnMgKGUuZy4sIExBTjc4WFgsIEFYODgxN1gpIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBEZXNpZ25XYXJlIE1BQyAvIHN0bW1hYykuIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzZmE0M2JlYmIwMWFhNDFjMTA1ZjVmN2M1ZTNkMDFhOGZmMjhjMGU1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjcgMDM6Mzk6MzYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbmluZGV4IDBkZTRiYzk0OTkxMzg2Li4yYjJkMjZhMjk2MTI4NCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbkBAIC0xMzI4LDYgJiM0MzsxMzI4LDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHRcdGludCBhZGRyID0gcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXBoeV9hZGRyO1xuIFx0XHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2O1xuIFxuJiM0MztcdFx0LyogSWYgYSBjdXN0b20gUENTIGlzIGluIHVzZSwgbm8gUEhZIGlzIG5lZWRlZCAqL1xuJiM0MztcdFx0aWYgKHByaXYtXHUwMDNlaHctXHUwMDNlcGh5bGlua19wY3MpXG4mIzQzO1x0XHRcdHJldHVybiAwO1xuJiM0MztcbiBcdFx0aWYgKGFkZHIgXHUwMDNjIDApIHtcbiBcdFx0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcJiMzNDtubyBwaHkgZm91bmRcXG5cJiMzNDspO1xuIFx0XHRcdHJldHVybiAtRU5PREVWO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5pbmRleCA1OWRmZTM1YWZhNTRmYy4uZmQ0ZTgwZWVlZGE3M2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5AQCAtMTk2NCw5ICYjNDM7MTk2NCw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfZGVzdHJveSk7XG4gICovXG4gYm9vbCBwaHlsaW5rX2V4cGVjdHNfcGh5KHN0cnVjdCBwaHlsaW5rICpwbClcbiB7XG4tXHRpZiAocGwtXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQgfHxcbi1cdCAgICAocGwtXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fSU5CQU5EIFx1MDAyNlx1MDAyNlxuLVx0ICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3oocGwtXHUwMDNlbGlua19pbnRlcmZhY2UpKSlcbiYjNDM7XHRpZiAocGwtXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQpXG4gXHRcdHJldHVybiBmYWxzZTtcbiBcdHJldHVybiB0cnVlO1xuIH1cbkBAIC0yMjA1LDkgJiM0MzsyMjAzLDcgQEAgc3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxuIHtcbiBcdHUzMiBmbGFncyA9IDA7XG4gXG4tXHRpZiAoV0FSTl9PTihwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fFxuLVx0XHQgICAgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCBcdTAwMjZcdTAwMjZcbi1cdFx0ICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3ooaW50ZXJmYWNlKSBcdTAwMjZcdTAwMjYgIXBsLVx1MDAzZXNmcF9idXMpKSlcbiYjNDM7XHRpZiAoV0FSTl9PTihwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCkpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuIFx0aWYgKHBsLVx1MDAzZXBoeWRldilcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzozOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtVU0JfTEFONzhYWCYjMzQ7LAogICAgJiMzNDtVU0JfTkVUX0FYODgxN1gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtwaHlsaW5rX2Nvbm5lY3RfcGh5JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19leHBlY3RzX3BoeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYnkgcmVtb3ZpbmcgdGhlIGBNTE9fQU5fSU5CQU5EYCBhbmQgYHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzemAgY2hlY2tzLiBJdCBhbHNvIGFkZHMgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCB0byByZXR1cm4gZWFybHkgaWYgYSBjdXN0b20gUENTIGlzIGluIHVzZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgcGh5bGluayBjb3JlIGFuZCB0aGUgc3RtbWFjIGRyaXZlci4gVGhlIHBoeWxpbmsgY29yZSBpcyByZWFjaGFibGUgdmlhIHZhcmlvdXMgZW11bGF0ZWQgZGV2aWNlcywgaW5jbHVkaW5nIFVTQiBldGhlcm5ldCBhZGFwdGVycyAoZS5nLiwgTEFONzhYWCwgQVg4ODE3WCkgYW5kIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIERlc2lnbldhcmUgTUFDIC8gc3RtbWFjKS4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDNmYTQzYmViYjAxYWE0MWMxMDVmNWY3YzVlM2QwMWE4ZmYyOGMwZTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEp1bCAyNyAwMzozOTozNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IDBkZTRiYzk0OTkxMzg2Li4yYjJkMjZhMjk2MTI4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCkBAIC0xMzI4LDYgJiM0MzsxMzI4LDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWludCBhZGRyID0gcHJpdi0mZ3Q7cGxhdC0mZ3Q7cGh5X2FkZHI7CiAJCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXY7CiAKJiM0MzsJCS8qIElmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UsIG5vIFBIWSBpcyBuZWVkZWQgKi8KJiM0MzsJCWlmIChwcml2LSZndDtody0mZ3Q7cGh5bGlua19wY3MpCiYjNDM7CQkJcmV0dXJuIDA7CiYjNDM7CiAJCWlmIChhZGRyICZsdDsgMCkgewogCQkJbmV0ZGV2X2Vycihwcml2LSZndDtkZXYsICYjMzQ7bm8gcGh5IGZvdW5kXG4mIzM0Oyk7CiAJCQlyZXR1cm4gLUVOT0RFVjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCmluZGV4IDU5ZGZlMzVhZmE1NGZjLi5mZDRlODBlZWVkYTczYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCkBAIC0xOTY0LDkgJiM0MzsxOTY0LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19kZXN0cm95KTsKICAqLwogYm9vbCBwaHlsaW5rX2V4cGVjdHNfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCkKIHsKLQlpZiAocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEIHx8Ci0JICAgIChwbC0mZ3Q7Y2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fSU5CQU5EICZhbXA7JmFtcDsKLQkgICAgIHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzeihwbC0mZ3Q7bGlua19pbnRlcmZhY2UpKSkKJiM0MzsJaWYgKHBsLSZndDtjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCkKIAkJcmV0dXJuIGZhbHNlOwogCXJldHVybiB0cnVlOwogfQpAQCAtMjIwNSw5ICYjNDM7MjIwMyw3IEBAIHN0YXRpYyBpbnQgcGh5bGlua19hdHRhY2hfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSwKIHsKIAl1MzIgZmxhZ3MgPSAwOwogCi0JaWYgKFdBUk5fT04ocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEIHx8Ci0JCSAgICAocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCAmYW1wOyZhbXA7Ci0JCSAgICAgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6KGludGVyZmFjZSkgJmFtcDsmYW1wOyAhcGwtJmd0O3NmcF9idXMpKSkKJiM0MzsJaWYgKFdBUk5fT04ocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAocGwtJmd0O3BoeWRldikKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU0MAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDgwNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBQYXRjaDogQSBEZWVwIERpdmUqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIHR3ZWFraW5nIGBzdG1tYWNfbWFpbi5jYCBhbmQgYHBoeWxpbmsuY2AuIFRoZSBjaGFuZ2VzIGFyZSBhYm91dCByZW1vdmluZyBzb21lIGNvbmRpdGlvbnMgcmVsYXRlZCB0byBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAsIGFuZCBhZGRpbmcgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCBpZiBgcHJpdi0mZ3Q7aHctJmd0O3BoeWxpbmtfcGNzYCBpcyBzZXQuIE15IGd1dCBmZWVsaW5nIGlzIHRvIGV2YWx1YXRlIHRoaXMgZm9yIGZ1enppbmcgcG90ZW50aWFsLgoKRmlyc3QsIGxldCYjMzk7cyBicmVhayBpdCBkb3duLiBgc3RtbWFjYCBpcyBhIHBoeXNpY2FsIEV0aGVybmV0IE1BQyBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciBTVE1pY3JvZWxlY3Ryb25pY3MgaGFyZHdhcmUg4oCTIHlvdXIgY2xhc3NpYyAxMC8xMDAvMTAwMCBzdHVmZi4gYHBoeWxpbmtgIGlzIHRoZSBsYXllciB0aGF0IG1hbmFnZXMgdGhlIFBIWSBsaW5rcy4gU28sIGNhbiBJIHRhcmdldCBgcGh5bGlua19leHBlY3RzX3BoeWAsIGBwaHlsaW5rX2F0dGFjaF9waHlgLCBvciBgc3RtbWFjX2luaXRfcGh5YCBmb3IgZnV6emluZz8gYHBoeWxpbmtfZXhwZWN0c19waHlgIGlzIGV4cG9ydGVkLCBtZWFuaW5nIG90aGVyIGRyaXZlcnMgdXNlIGl0IGRpcmVjdGx5LCBzbyB0aGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gYHBoeWxpbmtfYXR0YWNoX3BoeWAgaXMgc3RhdGljLCB3aGljaCBtZWFucyBpdCYjMzk7cyBjYWxsZWQgaW50ZXJuYWxseSBieSBgcGh5bGlua19jb25uZWN0X3BoeWAgYW5kIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YC4gQXMgZm9yIGBzdG1tYWNfaW5pdF9waHlgLCBpdCBnZXRzIGNhbGxlZCBkdXJpbmcgZWl0aGVyIGBzdG1tYWNfb3BlbmAgb3IgcHJvYmUsIHNvIHRoYXQmIzM5O3MgYWxzbyBwb3RlbnRpYWxseSBhY2Nlc3NpYmxlLgoKQnV0IGhlcmUmIzM5O3MgdGhlIGtpY2tlcjogQ2FuIEkgKnJlYWNoKiB0aGlzIGluIFFFTVU/IGBzdG1tYWNgIGlzIGEgKnBoeXNpY2FsKiBldGhlcm5ldCBkcml2ZXIuIFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGF0IHNwZWNpZmljIFNUTWljcm9lbGVjdHJvbmljcyBNQUMgYnkgZGVmYXVsdCwgZG9lcyBpdD8gV2FpdCwgbGV0IG1lIGNoZWNrIHRoZSBRRU1VIG5ldHdvcmtpbmcgYmFja2VuZHMuIFRoZXJlIGFyZSBhIHRvbiBvZiBkcml2ZXJzIGF2YWlsYWJsZSwgaW5jbHVkaW5nIGBpbXhfZmVjYCwgYGNhZGVuY2VfZ2VtYCwgYGUxMDAwYCwgYGUxMDAwZWAsIGBpZ2JgLCBgcnRsODEzOWAsIGBwY25ldGAsIGFuZCB0aGUgcmVzdC4gSXMgYHN0bW1hY2AgZXZlbiAqZW11bGF0ZWQqPyBXYWl0LCB0aGVyZSYjMzk7cyBgaHcvbmV0L3hnbWFjLmNgLi4uIGJ1dCB0aGF0JiMzOTtzIHByb2JhYmx5IGZvciBDYWx4ZWRhJiMzOTtzIFhHTUFDLCBub3QgdGhlIFNUTWljcm8uIFNvLCBubyBkaXJlY3QgYHN0bW1hY2AgZW11bGF0aW9uLgoKT2theSwgbGV0JiMzOTtzIGJhY2sgdXAuIElzIGBzdG1tYWNgIGEgUENJIGRldmljZT8gQWgsIHllcyEgVGhlcmUmIzM5O3MgYHN0bW1hY19wY2kuY2AuIEJ1dCBkb2VzIFFFTVUgZW11bGF0ZSB0aGF0PyBMZXQgbWUgY2hlY2vigKYgbm9wZSwgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIGBzdG1tYWNgIFBDSSBkZXZpY2VzLgoKT2theSwgbGV0JiMzOTtzIHNoaWZ0IGZvY3VzLiBFdmVuIGlmIEkgY2FuJiMzOTt0IGRpcmVjdGx5IGhpdCBgc3RtbWFjYCwgYHBoeWxpbmtgIGlzIHRoZSBrZXkuIFNpbmNlIGBwaHlsaW5rYCBpcyB1c2VkIGJ5IG1hbnkgZHJpdmVycywgY291bGQgSSByZWFjaCB0aG9zZSBmdW5jdGlvbnMgdGhyb3VnaCBvbmUgb2YgdGhlIFFFTVUtZW11bGF0ZWQgbmV0d29ya2luZyBkZXZpY2VzPyAgYHBoeWxpbmtfZXhwZWN0c19waHlgIGFuZCBgcGh5bGlua19hdHRhY2hfcGh5YCBsaXZlIHdpdGhpbiBgcGh5bGluay5jYCwgc28gYXJlIHRoZXkgcmVhY2hhYmxlIHRocm91Z2ggYW55IG9mIHRoZSBkZXZpY2VzIFFFTVUgcHJvdmlkZXM/IEkgbmVlZCB0byBzZWFyY2ggZm9yIHVzYWdlcyBvZiBgcGh5bGlua19leHBlY3RzX3BoeWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGh5bGlua19leHBlY3RzX3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyOTg9c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEzMDg6XHRpZiAoIXBoeWxpbmtfZXhwZWN0c19waHkocHJpdi1cdTAwM2VwaHlsaW5rKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTMwOS1cdFx0cmV0dXJuIDA7XG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0xOTU0PUVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfZGVzdHJveSk7XG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTU2LS8qKlxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoxOTU3OiAqIHBoeWxpbmtfZXhwZWN0c19waHkoKSAtIERldGVybWluZSBpZiBwaHlsaW5rIGV4cGVjdHMgYSBwaHkgdG8gYmUgYXR0YWNoZWRcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk1OC0gKiBAcGw6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rIHJldHVybmVkIGZyb20gcGh5bGlua19jcmVhdGUoKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk2NC0gKi9cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MTk2NTpib29sIHBoeWxpbmtfZXhwZWN0c19waHkoc3RydWN0IHBoeWxpbmsgKnBsKVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTY2LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTE5NzAtfVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoxOTcxOkVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfZXhwZWN0c19waHkpO1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTcyLVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9MjI4NT1pbnQgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKnBsLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI5Mi1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI5MzpcdGlmICghcGh5bGlua19leHBlY3RzX3BoeShwbCkpXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyOTQtXHRcdHJldHVybiAwO1xuLS1cbmluY2x1ZGUvbGludXgvcGh5bGluay5oPTcyNj12b2lkIHBoeWxpbmtfZGVzdHJveShzdHJ1Y3QgcGh5bGluayAqKTtcbmluY2x1ZGUvbGludXgvcGh5bGluay5oOjcyNzpib29sIHBoeWxpbmtfZXhwZWN0c19waHkoc3RydWN0IHBoeWxpbmsgKnBsKTtcbmluY2x1ZGUvbGludXgvcGh5bGluay5oLTcyOC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjQzCgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSBQSFkgRHJpdmVyIENvbm5lY3Rpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhlc2UgUEhZIGRyaXZlcnMgYXJlIGNvbm5lY3RlZCwgYW5kIGl0IHNlZW1zIGxpa2UgYHBoeWxpbmtfZXhwZWN0c19waHlgIHNob3dzIHVwIGluIGBzdG1tYWNfaW5pdF9waHlgIGFuZCBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgLiBOb3csIHRoYXQgc2Vjb25kIGZ1bmN0aW9uLCBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgLCBpcyB1c2VkIGJ5IGEgKmxvdCogb2YgZGlmZmVyZW50IGRyaXZlcnMsIHdoaWNoIG1ha2VzIGl0IHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZy4gR2l2ZW4gdGhhdCBicm9hZGVyIHVzYWdlLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlc2UgZnVuY3Rpb25zLCBhbmQgdGhlcmVmb3JlIGl0JiMzOTtzIGtleSB0byBhc2NlcnRhaW4gaWYgYHBoeWxpbmtfYXR0YWNoX3BoeWAgaXMgYmVpbmcgY2FsbGVkIHNvbWV3aGVyZS4gSXQmIzM5O3MgdGltZSB0byB0cmFjZSB0aGUgcG90ZW50aWFsIGNvbm5lY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BoeWxpbmtfYXR0YWNoX3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIwODQ9c3RhdGljIGludCBwaHlsaW5rX2JyaW5ndXBfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSxcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMDAtXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyMDE6c3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjAyLVx0XHRcdCAgICAgIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMjMzPWludCBwaHlsaW5rX2Nvbm5lY3RfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNDItXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNDM6XHRyZXQgPSBwaHlsaW5rX2F0dGFjaF9waHkocGwsIHBoeSwgcGwtXHUwMDNlbGlua19pbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjQ0LVx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTM2OTg9c3RhdGljIGludCBwaHlsaW5rX3NmcF9jb25maWdfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTM3MzAtXHQgKi9cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MzczMTpcdHJldCA9IHBoeWxpbmtfYXR0YWNoX3BoeShwbCwgcGh5LCBjb25maWcuaW50ZXJmYWNlKTtcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMzczMi1cdGlmIChyZXQgXHUwMDNjIDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI1OAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZToKCioqSW52ZXN0aWdhdGluZyBgcGh5bGlua19jb25uZWN0X3BoeWAgVXNhZ2UqKgoKUmlnaHQsIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCBpcyBleHBvcnRlZCwgbWVhbmluZyBpdCYjMzk7cyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGRldmljZSBkcml2ZXJzLiBBbmQsIGl0JiMzOTtzIGNvbm5lY3RlZCB0byBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgIHNvIHRoYXQgdGhlIGZ1bmN0aW9uYWxpdHkgaXMgY29uc2lzdGVudC4gTm93LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gdGhlIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJhY3RpY2FsIGltcGFjdCBvZiB0aGlzLCB0aGUgZGVzaWduIGNob2ljZXMuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGNoZWNrIHByZWNpc2VseSAqd2hpY2gqIGRyaXZlcnMgYXJlIGFjdHVhbGx5IGxldmVyYWdpbmcgdGhlc2UgcGh5bGluayBmdW5jdGlvbnMuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBpcyB3aWRlbHkgYWRvcHRlZCwgb3IgbW9yZSBuaWNoZS4gQXJlIHdlIGxvb2tpbmcgYXQgYSBjb21tb24gcGF0dGVybiwgb3Igc29tZXRoaW5nIHNwZWNpZmljPyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBwb3RlbnRpYWwgcmVmYWN0b3JpbmcsIGJ1ZyBmaXhpbmcsIG9yIGV2ZW4gYXJjaGl0ZWN0dXJhbCBjaGFuZ2VzIHRvIHRoZSBwaHlsaW5rIHN5c3RlbSBpdHNlbGY/IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgY3JpdGljYWwgYW5kIHdoZXJlIHRoZXkgYXJlIG5vdCB0byBiZSBhYmxlIHRvIG1ha2UgYW55IGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB0aGVpciBtYWludGVuYW5jZSBvciBldm9sdXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGh5bGlua19jb25uZWN0X3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTk4Mj1zdGF0aWMgaW50IG1hY2JfcGh5bGlua19jb25uZWN0KHN0cnVjdCBtYWNiICpicClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk5OS1cdFx0LyogYXR0YWNoIHRoZSBtYWMgdG8gdGhlIHBoeSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzoxMDAwOlx0XHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KGJwLVx1MDAzZXBoeWxpbmssIHBoeWRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTEwMDEtXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jPTMyMTQ9c3RhdGljIGludCBsYW43NDN4X3BoeWxpbmtfY29ubmVjdChzdHJ1Y3QgbGFuNzQzeF9hZGFwdGVyICphZGFwdGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW43NDN4X21haW4uYy0zMjI3LVx0XHRcdC8qIGF0dGFjaCB0aGUgbWFjIHRvIHRoZSBwaHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW43NDN4X21haW4uYzozMjI4Olx0XHRcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkoYWRhcHRlci1cdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jLTMyMjktXHRcdH0gZWxzZSBpZiAoKChhZGFwdGVyLVx1MDAzZWNzci5pZF9yZXYgXHUwMDI2IElEX1JFVl9JRF9NQVNLXykgPT1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyOTg9c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzNDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEzNDg6XHRcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkocHJpdi1cdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xMzQ5LVx0fSBlbHNlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvdG40MC5jPTE0MDY9c3RhdGljIGludCB0bjQwX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvdG40MC5jLTE0MTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvdG40MC5jOjE0MTE6XHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KHByaXYtXHUwMDNlcGh5bGluaywgcHJpdi1cdTAwM2VwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL3RuNDAuYy0xNDEyLVx0aWYgKHJldCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz00NjI9c3RhdGljIGludCBuZ2JlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNDc4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjQ3OTpcdGVyciA9IHBoeWxpbmtfY29ubmVjdF9waHkod3gtXHUwMDNlcGh5bGluaywgd3gtXHUwMDNlcGh5ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy00ODAtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vdHhnYmUvdHhnYmVfcGh5LmM9MjY4PXN0YXRpYyBpbnQgdHhnYmVfcGh5bGlua19pbml0KHN0cnVjdCB0eGdiZSAqdHhnYmUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy0yOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jOjMwMDpcdFx0cmV0ID0gcGh5bGlua19jb25uZWN0X3BoeShwaHlsaW5rLCB3eC1cdTAwM2VwaHlkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy0zMDEtXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyMDE9c3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjIxOC0vKipcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjIxOTogKiBwaHlsaW5rX2Nvbm5lY3RfcGh5KCkgLSBjb25uZWN0IGEgUEhZIHRvIHRoZSBwaHlsaW5rIGluc3RhbmNlXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMjAtICogQHBsOiBhIHBvaW50ZXIgdG8gYSBcdTAwMjZzdHJ1Y3QgcGh5bGluayByZXR1cm5lZCBmcm9tIHBoeWxpbmtfY3JlYXRlKClcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMzItICovXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyMzM6aW50IHBoeWxpbmtfY29ubmVjdF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5KVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjM0LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNTItfVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjUzOkVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfY29ubmVjdF9waHkpO1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjU0LVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI2MS0gKiBDb25uZWN0IHRoZSBwaHkgc3BlY2lmaWVkIGluIHRoZSBkZXZpY2Ugbm9kZSBAZG4gdG8gdGhlIHBoeWxpbmsgaW5zdGFuY2VcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI2MjogKiBzcGVjaWZpZWQgYnkgQHBsLiBBY3Rpb25zIHNwZWNpZmllZCBpbiBwaHlsaW5rX2Nvbm5lY3RfcGh5KCkgd2lsbCBiZVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjYzLSAqIHBlcmZvcm1lZC5cbi0tXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9NzAzPXN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X3BoeShzdHJ1Y3QgdXNibmV0ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcxMy1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYzo3MTQ6XHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KHByaXYtXHUwMDNlcGh5bGluaywgcHJpdi1cdTAwM2VwaHlkZXYpO1xuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcxNS1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jPTI4NTg9c3RhdGljIGludCBsYW43OHh4X3BoeV9pbml0KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjkwMS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM6MjkwMjpcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkoZGV2LVx1MDAzZXBoeWxpbmssIHBoeWRldik7XG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI5MDMtXHRpZiAocmV0KSB7XG4tLVxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzI3PWJvb2wgcGh5bGlua19leHBlY3RzX3BoeShzdHJ1Y3QgcGh5bGluayAqcGwpO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzI4LVxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg6NzI5OmludCBwaHlsaW5rX2Nvbm5lY3RfcGh5KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBwaHlfZGV2aWNlICopO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzMwLWludCBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBkZXZpY2Vfbm9kZSAqLCB1MzIgZmxhZ3MpO1xuLS1cbm5ldC9kc2EvdXNlci5jPTI2Mzg9c3RhdGljIGludCBkc2FfdXNlcl9waHlfY29ubmVjdChzdHJ1Y3QgbmV0X2RldmljZSAqdXNlcl9kZXYsIGludCBhZGRyLFxuLS1cbm5ldC9kc2EvdXNlci5jLTI2NTEtXG5uZXQvZHNhL3VzZXIuYzoyNjUyOlx0cmV0dXJuIHBoeWxpbmtfY29ubmVjdF9waHkoZHAtXHUwMDNlcGwsIHVzZXJfZGV2LVx1MDAzZXBoeWRldik7XG5uZXQvZHNhL3VzZXIuYy0yNjUzLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3Mjg3CgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlVTQiBGdXp6aW5nIGFuZCBgcGh5bGlua19jb25uZWN0X3BoeWAqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIG5ldHdvcmsgZHJpdmVyIGZpbGVzLCBzcGVjaWZpY2FsbHkgYGRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuY2AgYW5kIGBkcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jYC4gQW5kIHdoYXQgZG8gSSBzZWU/IFRoZXkgYm90aCB1c2UgYHBoeWxpbmtfY29ubmVjdF9waHlgLiBOb3csIHRoYXQmIzM5O3MgaW50ZXJlc3RpbmcuIFdlIGtub3cgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGBkdW1teV9oY2RgIG9yIGB1c2ItZ2FkZ2V0YC4gQW5kLCBvZiBjb3Vyc2UsIHN5emthbGxlciBoYXMgYSBwcmV0dHkgcm9idXN0IFVTQiBmdXp6ZXIuIEl0JiMzOTtzIGEgYml0IG9mIGEgbGVhcCwgYnV0IEkmIzM5O20gdGhpbmtpbmcuLi4gY291bGQgYHBoeWxpbmtfY29ubmVjdF9waHlgIGJlIHJlYWNoYWJsZSB2aWEgVVNCIGZ1enppbmc/CgpUaGF0IHNvdW5kcyBsaWtlIGEgZGVmaW5pdGUgJiMzNDt5ZXMuJiMzNDsgTm93IEkganVzdCBuZWVkIHRvIHZlcmlmeSBob3cgdGhlc2UgZnVuY3Rpb25zIGNvbm5lY3QuIFNvIEkgc2hvdWxkIGV4YW1pbmUgYGxhbjc4eHhfcGh5X2luaXRgIGFuZCBgYXg4ODc3Ml9pbml0X3BoeWAgdG8gY29uZmlybSBpZiB0aG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YXg4ODc3Ml9pbml0X3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9Njk3PXN0YXRpYyB2b2lkIGF4ODg3NzJfbWRpb191bnJlZ2lzdGVyKHN0cnVjdCBhc2l4X2NvbW1vbl9wcml2YXRlICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy03MDItXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6NzAzOnN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X3BoeShzdHJ1Y3QgdXNibmV0ICpkZXYpXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtNzA0LXtcbi0tXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9ODI5PXN0YXRpYyBpbnQgYXg4ODc3Ml9iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXG4tLVxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTkyNC1cbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYzo5MjU6XHRyZXQgPSBheDg4NzcyX2luaXRfcGh5KGRldik7XG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtOTI2LVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzg4NwoJCQkJCQkJb3V0cHV0OiAyMgoJCQkJCQkJdGhvdWdodHM6IDM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIFVTQiBOZXR3b3JrIERldmljZSBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgc28gd2UmIzM5O3JlIGxvb2tpbmcgYXQgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgYSBVU0IgbmV0d29yayBkZXZpY2UsIHNwZWNpZmljYWxseSB0aGUgYGF4ODg3NzJgIHZhcmlhbnQuIFRoZSBrZXJuZWwgaXMgY2FsbGluZyBgYXg4ODc3Ml9iaW5kYCwgd2hpY2ggbWFrZXMgc2Vuc2U7IHRoYXQmIzM5O3MgdGhlIHN0YW5kYXJkIGVudHJ5IHBvaW50IGZvciBiaW5kaW5nIHRoZSBkZXZpY2UgdG8gdGhlIGRyaXZlciBhZnRlciB0aGUgVVNCIGVudW1lcmF0aW9uIGFuZCBkZXZpY2UgZGlzY292ZXJ5LiBOb3csIHdoZXJlIGRvZXMgdGhpcyBpbml0aWFsaXphdGlvbiByZWFsbHkgKnN0YXJ0Kj8gVG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBQSFkgaW5pdGlhbGl6YXRpb24sIG15IGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBgbGFuNzh4eF9waHlfaW5pdGAgZnVuY3Rpb24uIFRoYXQmIzM5O3MgbGlrZWx5IHdoZXJlIHRoZSBsb3ctbGV2ZWwgcGh5c2ljYWwgbGF5ZXIgaW50ZXJmYWNlIGlzIHNldCB1cC4gTGV0JiMzOTtzIHRyYWNlIGZyb20gYGxhbjc4eHhfcGh5X2luaXRgIGFuZCBzZWUgd2hhdCB0aGF0IG1vZHVsZSBpcyBkb2luZyB0byBjb21wbGV0ZSBkZXZpY2UgY29ubmVjdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGFuNzh4eF9waHlfaW5pdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jPTI4NDk9c3RhdGljIHZvaWQgbGFuNzh4eF9waHlfdW5pbml0KHN0cnVjdCBsYW43OHh4X25ldCAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjg1Ny1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM6Mjg1ODpzdGF0aWMgaW50IGxhbjc4eHhfcGh5X2luaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI4NTkte1xuLS1cbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9NDY1NT1zdGF0aWMgaW50IGxhbjc4eHhfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tLVxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy00Nzg1LVxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYzo0Nzg2Olx0cmV0ID0gbGFuNzh4eF9waHlfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYy00Nzg3LVx0aWYgKHJldCBcdTAwM2MgMClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODM3MQoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6CgoqKkRpZ2dpbmcgaW50byBQSFkgQ29ubmVjdGlvbnMqKgoKT2theSwgc28gSSYjMzk7bSB0cmFjaW5nIHRoZSBjb25uZWN0aW9ucyBhbmQgaW5pdGlhbGl6YXRpb25zIHJlbGF0ZWQgdG8gUEhZcy4gSSYjMzk7dmUgY29uZmlybWVkIHRoYXQgYHBoeWxpbmtfY29ubmVjdF9waHlgIGlzIGRlZmluaXRlbHkgYWNjZXNzaWJsZSB0aHJvdWdoIGBsYW43OHh4X3Byb2JlYCBhbmQgYGF4ODg3NzJfYmluZGAg4oCTIHRoYXQgbWFrZXMgc2Vuc2UsIHRoZXkmIzM5O3JlIGNvbW1vbiBQSFkgZHJpdmVyIGVudHJ5IHBvaW50cy4gTm93LCBJJiMzOTttIHRyeWluZyB0byBnZXQgYSBjb21wbGV0ZSBwaWN0dXJlIG9mIHRoZSBjb25uZWN0aW9uIHBhdGh3YXlzLgoKTXkgbmV4dCBxdWVzdGlvbiBpcyBhYm91dCBgcGh5bGlua19leHBlY3RzX3BoeWAuIEkgcmVjYWxsIHNlZWluZyB0aGF0IG9uZSBmbG9hdGluZyBhcm91bmQsIGFuZCBub3cgSSYjMzk7bSB0cnlpbmcgdG8gbWFwIGl0cyB1c2VzLiBJdCBhcHBlYXJzIGluIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAsIHNvIHRoYXTigJlzIGEgZGlyZWN0IGxpbmsuIFRoYXQgbWVhbnMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBjYWxscyBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgIGluIG9yZGVyIHRvIGZpZ3VyZSBvdXQgd2hvIGlzIHJlcXVlc3RpbmcgdGhlIFBIWSBiZSBjb25uZWN0ZWQgdmlhIHRoZSBgcGh5bGlua19leHBlY3RzX3BoeWAgY2FsbC4gTGV0JiMzOTtzIHNlZSB3aG8mIzM5O3MgY2FsbGluZyBpdCB0byBjb250aW51ZSB0aGUgYW5hbHlzaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1tYWMuYz01NjA9aW50IGRwYWEyX21hY19jb25uZWN0KHN0cnVjdCBkcGFhMl9tYWMgKm1hYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmMtNjM0LVx0cnRubF9sb2NrKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmM6NjM1Olx0ZXJyID0gcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QobWFjLVx1MDAzZXBoeWxpbmssIGRwbWFjX25vZGUsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jLTYzNi1cdHJ0bmxfdW5sb2NrKCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmMtNjM3LVx0aWYgKGVycikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jOjYzODpcdFx0bmV0ZGV2X2VycihuZXRfZGV2LCBcJiMzNDtwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCgpID0gJWRcXG5cJiMzNDssIGVycik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmMtNjM5LVx0XHRnb3RvIGVycl9waHlsaW5rX2Rlc3Ryb3k7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmM9NDc5MT1zdGF0aWMgaW50IG12cHAyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYy00ODQwLVx0aWYgKHBvcnQtXHUwMDNlcGh5bGluaykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmM6NDg0MTpcdFx0ZXJyID0gcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QocG9ydC1cdTAwM2VwaHlsaW5rLCBwb3J0LVx1MDAzZWZ3bm9kZSwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYy00ODQyLVx0XHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9tYWluLmM9MTY5PXN0YXRpYyBpbnQgbGFuOTY2eF9wb3J0X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X21haW4uYy0xODUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X21haW4uYzoxODY6XHRlcnIgPSBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChwb3J0LVx1MDAzZXBoeWxpbmssIHBvcnQtXHUwMDNlZndub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfbWFpbi5jLTE4Ny1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyOTg9c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzNTAtXHRcdGZ3bm9kZV9oYW5kbGVfcHV0KHBoeV9md25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxMzUxOlx0XHRyZXQgPSBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChwcml2LVx1MDAzZXBoeWxpbmssIGZ3bm9kZSwgZGV2X2ZsYWdzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTM1Mi1cdH1cbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyNjc9aW50IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuLFxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI2OS17XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNzA6XHRyZXR1cm4gcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QocGwsIG9mX2Z3bm9kZV9oYW5kbGUoZG4pLCBmbGFncyk7XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNzEtfVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMjcyPUVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QpO1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3NC0vKipcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI3NTogKiBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCgpIC0gY29ubmVjdCB0aGUgUEhZIHNwZWNpZmllZCBpbiB0aGUgZndub2RlLlxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjc2LSAqIEBwbDogYSBwb2ludGVyIHRvIGEgXHUwMDI2c3RydWN0IHBoeWxpbmsgcmV0dXJuZWQgZnJvbSBwaHlsaW5rX2NyZWF0ZSgpXG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjg0LSAqL1xuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjg1OmludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyODYtXHRcdFx0ICAgICAgIGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsXG4tLVxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMzMwLX1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjMzMTpFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCk7XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIzMzItXG4tLVxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzMwPWludCBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBkZXZpY2Vfbm9kZSAqLCB1MzIgZmxhZ3MpO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmg6NzMxOmludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaC03MzItXHRcdFx0ICAgICAgIGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMDU3CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyBQSFkgQ29ubmVjdGlvbiBNZXRob2RzKioKClJpZ2h0LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyBQSFkgY29ubmVjdGlvbnMgYXJlIGJlaW5nIGhhbmRsZWQgd2l0aGluIHRoaXMgc3lzdGVtLiBJIHNlZSBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgIGlzIHVzZWQgYnkgYSBmZXcgZGlmZmVyZW50IGRyaXZlcnM6IGBkcGFhMl9tYWNfY29ubmVjdGAsIGBtdnBwMl9vcGVuYCwgYGxhbjk2NnhfcG9ydF9vcGVuYCwgYW5kIGBzdG1tYWNfaW5pdF9waHlgLiBUaGF0IGdpdmVzIG1lIGEgY2VydGFpbiBiYXNlbGluZSwgYSBzdGFydGluZyBwb2ludCB0byBzZWUgaG93IG90aGVyIFBIWXMgYXJlIGNvbm5lY3RlZC4gSXQgc2VlbXMgbGlrZSBpdCYjMzk7cyBhIHByaW1hcnkgbWV0aG9kIGluIHVzZS4KCkJ1dCBub3cgbXkgYnJhaW4mIzM5O3MgaXRjaGluZy4uLiB3aGF0IGFib3V0IGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YD8gSSYjMzk7bSBtaXNzaW5nIHNvbWV0aGluZywgaXQgc2VlbXMgLSBpdCYjMzk7cyBhIHBhcmFsbGVsIHBhdGggb2YgY29ubmVjdGlvbiBmb3IgUEhZcywgdGhhdCYjMzk7cyBjZXJ0YWluLCB3aGljaCBtZWFucyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdCAtIGFuZCB3aGV0aGVyIGl0IHNoYXJlcyBhbnkgY29kZSBiYXNlIHdpdGggdGhlIG1ldGhvZCBJIGtub3cuIEFyZSB0aGVyZSBkaXN0aW5jdCBzY2VuYXJpb3Mgd2hlcmUgb25lIGlzIHByZWZlcnJlZCBvdmVyIHRoZSBvdGhlcj8gQXJlIHRoZXkgbXV0dWFsbHkgZXhjbHVzaXZlLCBvciBjYW4gdGhleSBiZSB1c2VkIGluIGNvbmp1bmN0aW9uPyBBcmUgdGhlcmUgYW55IGNvbW1vbiBpc3N1ZXMgdGhhdCBtYXkgb2NjdXIsIGFjcm9zcyBib3RoIG1ldGhvZHM/IEkgbmVlZCB0byBsb29rIGludG8gdGhlIHNwZWNpZmljcyBvZiAqdGhhdCogZnVuY3Rpb24gYW5kIHNlZSB3aGVyZSBpdCYjMzk7cyBiZWluZyB1c2VkIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIFBIWSBzZXR1cC4gSXQmIzM5O3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgcGljdHVyZSBoZXJlLCBhbmQgd2hhdCBpcyBjdXJyZW50bHkgaW4gcGxhY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9tYWMtcGh5LXN1cHBvcnQucnN0PTgwPXdpbGwgZG8gdGhlIGZvbGxvd2luZzpcbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL21hYy1waHktc3VwcG9ydC5yc3QtODMtIC0gd2lsbCBjcmVhdGUgYSBQSFlMSU5LIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVjZWl2ZWQgbmV0X2RldmljZVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9tYWMtcGh5LXN1cHBvcnQucnN0Ojg0OiAtIGNvbm5lY3QgdG8gdGhlIFBIWSB1c2luZyBwaHlsaW5rX29mX3BoeV9jb25uZWN0KClcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvbWFjLXBoeS1zdXBwb3J0LnJzdC04NS1cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0PTc0PXRoaXMgZG9jdW1lbnRhdGlvbi5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0LTE2Mi1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q6MTYzOlx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwcml2LVx1MDAzZXBoeWxpbmssIG5vZGUsIGZsYWdzKTtcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3QtMTY0LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jPTk2OD1zdGF0aWMgYm9vbCBuZXRjX3BvcnRfaXNfZW1kaW9fY29uc3VtZXIoc3RydWN0IGRldmljZV9ub2RlICpub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTk4NC1cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjk4NTovKiBDdXJyZW50bHksIHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoKSBpcyBjYWxsZWQgYnkgZHNhX3VzZXJfY3JlYXRlKCksXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05ODYtICogc28gaWYgdGhlIHN3aXRjaCB1c2VzIHRoZSBleHRlcm5hbCBNRElPIGNvbnRyb2xsZXIgKGxpa2UgdGhlIEVNRElPXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05ODctICogZnVuY3Rpb24pIHRvIG1hbmFnZSB0aGUgZXh0ZXJuYWwgUEhZcy4gVGhlIE1ESU8gYnVzIG1heSBub3QgYmVcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjk4ODogKiBjcmVhdGVkIHdoZW4gcGh5bGlua19vZl9waHlfY29ubmVjdCgpIGlzIGNhbGxlZCwgc28gaXQgd2lsbCByZXR1cm5cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTk4OS0gKiBhbiBlcnJvciBhbmQgY2F1c2UgdGhlIHN3aXRjaCBkcml2ZXIgdG8gZmFpbCB0byBwcm9iZS5cbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jOjk5MDogKiBUaGlzIHdvcmthcm91bmQgY2FuIGJlIHJlbW92ZWQgd2hlbiBEU0EgcGh5bGlua19vZl9waHlfY29ubmVjdCgpXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05OTEtICogY2FsbHMgYXJlIG1vdmVkIGZyb20gcHJvYmUoKSB0byBuZG9fb3BlbigpLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYz04NzY9c3RhdGljIGludCB0c2Vfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYy05NTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmM6OTUyOlx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwcml2LVx1MDAzZXBoeWxpbmssIHByaXYtXHUwMDNlZGV2aWNlLVx1MDAzZW9mX25vZGUsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jLTk1My1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jPTE0MDQ9c3RhdGljIGludCBhZzcxeHhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jLTE0MDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jOjE0MTA6XHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGFnLVx1MDAzZXBoeWxpbmssIGFnLVx1MDAzZXBkZXYtXHUwMDNlZGV2Lm9mX25vZGUsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYy0xNDExLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYzoxNDEyOlx0XHRuZXRpZl9lcnIoYWcsIGxpbmssIG5kZXYsIFwmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QgZmlsZWQgd2l0aCBlcnI6ICVpXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9hZzcxeHguYy0xNDEzLVx0XHRcdCAgcmV0KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTk4Mj1zdGF0aWMgaW50IG1hY2JfcGh5bGlua19jb25uZWN0KHN0cnVjdCBtYWNiICpicClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4OS1cdGlmIChkbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6OTkwOlx0XHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGJwLVx1MDAzZXBoeWxpbmssIGRuLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtOTkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmM9Mjk0MT1zdGF0aWMgaW50IGRwYWFfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0X2Rldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jLTI5NTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jOjI5NTE6XHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KG1hY19kZXYtXHUwMDNlcGh5bGluayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmMtMjk1Mi1cdFx0XHRcdCAgICAgbWFjX2Rldi1cdTAwM2VkZXYtXHUwMDNlb2Zfbm9kZSwgMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjLmM9Mjg5OT1zdGF0aWMgaW50IGVuZXRjX3BoeWxpbmtfY29ubmVjdChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGMuYy0yOTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL2VuZXRjLmM6MjkxMTpcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QocHJpdi1cdTAwM2VwaHlsaW5rLCBwcml2LVx1MDAzZWRldi1cdTAwM2VvZl9ub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jLTI5MTItXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmM9NjU2PXN0YXRpYyBpbnQgZnNfZW5ldF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmMtNjc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmM6Njc4Olx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChmZXAtXHUwMDNlcGh5bGluaywgZmVwLVx1MDAzZWRldi1cdTAwM2VvZl9ub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L2ZzX2VuZXQtbWFpbi5jLTY3OS1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYz0zMTY3PXN0YXRpYyBpbnQgdWNjX2dldGhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5jLTMxODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYzozMTgxOlx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdCh1Z2V0aC1cdTAwM2VwaHlsaW5rLCB1Z2V0aC1cdTAwM2VkZXYtXHUwMDNlb2Zfbm9kZSwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYy0zMTgyLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmM9NDM1MT1zdGF0aWMgaW50IG12bmV0YV9tZGlvX3Byb2JlKHN0cnVjdCBtdm5ldGFfcG9ydCAqcHApXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYy00MzUzLVx0c3RydWN0IGV0aHRvb2xfd29saW5mbyB3b2wgPSB7IC5jbWQgPSBFVEhUT09MX0dXT0wgfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmM6NDM1NDpcdGludCBlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHBwLVx1MDAzZXBoeWxpbmssIHBwLVx1MDAzZWRuLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMtNDM1NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jPTM2MDM9c3RhdGljIGludCBtdGtfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtMzYxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM6MzYxMjpcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QobWFjLVx1MDAzZXBoeWxpbmssIG1hYy1cdTAwM2VvZl9ub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtMzYxMy1cdGlmIChlcnIpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmM9MzIxND1zdGF0aWMgaW50IGxhbjc0M3hfcGh5bGlua19jb25uZWN0KHN0cnVjdCBsYW43NDN4X2FkYXB0ZXIgKmFkYXB0ZXIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jLTMyMjEtXHRpZiAoZG4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmM6MzIyMjpcdFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChhZGFwdGVyLVx1MDAzZXBoeWxpbmssIGRuLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW43NDN4X21haW4uYy0zMjIzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X25ldGRldi5jPTEwNT1zdGF0aWMgaW50IHNwYXJ4NV9wb3J0X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfbmV0ZGV2LmMtMTEwLVx0c3Bhcng1X3BvcnRfZW5hYmxlKHBvcnQsIHRydWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfbmV0ZGV2LmM6MTExOlx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwb3J0LVx1MDAzZXBoeWxpbmssIHBvcnQtXHUwMDNlb2Zfbm9kZSwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV9uZXRkZXYuYy0xMTItXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfbmV0LmM9MTc4MD1zdGF0aWMgaW50IG9jZWxvdF9wb3J0X3BoeWxpbmtfY3JlYXRlKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCwgaW50IHBvcnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfbmV0LmMtMTgzMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X25ldC5jOjE4MzI6XHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHBoeWxpbmssIHBvcnRucCwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdF9uZXQuYy0xODMzLVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2FtNjUtY3Bzdy1udXNzLmM9OTk4PXN0YXRpYyBpbnQgYW02NV9jcHN3X251c3NfbmRvX3NsYXZlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvYW02NS1jcHN3LW51c3MuYy0xMDY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvYW02NS1jcHN3LW51c3MuYzoxMDcwOlx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwb3J0LVx1MDAzZXNsYXZlLnBoeWxpbmssIHBvcnQtXHUwMDNlc2xhdmUucG9ydF9ucCwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9hbTY1LWNwc3ctbnVzcy5jLTEwNzEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmM9MTY2MT1zdGF0aWMgaW50IGF4aWVuZXRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngveGlsaW54X2F4aWVuZXRfbWFpbi5jLTE2NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngveGlsaW54X2F4aWVuZXRfbWFpbi5jOjE2NzQ6XHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGxwLVx1MDAzZXBoeWxpbmssIGxwLVx1MDAzZWRldi1cdTAwM2VvZl9ub2RlLCAwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmMtMTY3NS1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmM6MTY3NjpcdFx0ZGV2X2VycihscC1cdTAwM2VkZXYsIFwmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoKSBmYWlsZWQ6ICVkXFxuXCYjMzQ7LCByZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L3hpbGlueF9heGllbmV0X21haW4uYy0xNjc3LVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9MjI1Mz1FWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX2Nvbm5lY3RfcGh5KTtcbi0tXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNTUtLyoqXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNTY6ICogcGh5bGlua19vZl9waHlfY29ubmVjdCgpIC0gY29ubmVjdCB0aGUgUEhZIHNwZWNpZmllZCBpbiB0aGUgRFQgbW9kZS5cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI1Ny0gKiBAcGw6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlsaW5rIHJldHVybmVkIGZyb20gcGh5bGlua19jcmVhdGUoKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI2Ni0gKi9cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI2NzppbnQgcGh5bGlua19vZl9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4sXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNjgtXHRcdFx0ICAgdTMyIGZsYWdzKVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3MS19XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNzI6RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19vZl9waHlfY29ubmVjdCk7XG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNzMtXG4tLVxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzI5PWludCBwaHlsaW5rX2Nvbm5lY3RfcGh5KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBwaHlfZGV2aWNlICopO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmg6NzMwOmludCBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBkZXZpY2Vfbm9kZSAqLCB1MzIgZmxhZ3MpO1xuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzMxLWludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXG4tLVxubmV0L2RzYS9wb3J0LmM9MTY2NT1zdGF0aWMgaW50IGRzYV9zaGFyZWRfcG9ydF9waHlsaW5rX3JlZ2lzdGVyKHN0cnVjdCBkc2FfcG9ydCAqZHApXG4tLVxubmV0L2RzYS9wb3J0LmMtMTY3Ny1cbm5ldC9kc2EvcG9ydC5jOjE2Nzg6XHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGRwLVx1MDAzZXBsLCBwb3J0X2RuLCAwKTtcbm5ldC9kc2EvcG9ydC5jLTE2NzktXHRpZiAoZXJyIFx1MDAyNlx1MDAyNiBlcnIgIT0gLUVOT0RFVikge1xuLS1cbm5ldC9kc2EvdXNlci5jPTI2NTU9c3RhdGljIGludCBkc2FfdXNlcl9waHlfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKnVzZXJfZGV2KVxuLS1cbm5ldC9kc2EvdXNlci5jLTI2ODEtXG5uZXQvZHNhL3VzZXIuYzoyNjgyOlx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChkcC1cdTAwM2VwbCwgcG9ydF9kbiwgcGh5X2ZsYWdzKTtcbm5ldC9kc2EvdXNlci5jLTI2ODMtXHRpZiAocmV0ID09IC1FTk9ERVYgXHUwMDI2XHUwMDI2IGRzLVx1MDAzZXVzZXJfbWlpX2J1cykge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNDA1MAoJCQkJCQkJb3V0cHV0OiAyMQoJCQkJCQkJdGhvdWdodHM6IDc2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHVuZGVyc3RhbmRpbmcsIGNvbnNpZGVyaW5nIEkmIzM5O20gZGVlcCBpbiB0aGUgd2VlZHMgd2l0aCB0aGlzIHN0dWZmOgoKKipEaXZpbmcgaW50byBgcGh5bGlua19vZl9waHlfY29ubmVjdGAgYW5kIGBtYWNiYCBpbiBRRU1VKioKCkFscmlnaHQsIHNvIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCBpcyBhIGNvbW1vbiBmdW5jdGlvbiwgdXNlZCBhY3Jvc3MgYSByYW5nZSBvZiBkcml2ZXJzLiBUaGUgaW50ZXJlc3RpbmcgcG9pbnQgaGVyZSBpcyBpdHMgY29ubmVjdGlvbiB0byBgbWFjYmAuIEFoLCByaWdodCwgYG1hY2JgLi4uIHRoZSBDYWRlbmNlIEdFTSwgd2hpY2gsIGlmIEkmIzM5O20gbm90IG1pc3Rha2VuLCBpcyAqYWxzbyogZW11bGF0ZWQgaW4gUUVNVS4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgUUVNVSBzb3VyY2Ug4oCTIHllcCwgYGh3L25ldC9jYWRlbmNlX2dlbS5jYCBjb25maXJtcyBpdC4gTm93LCB0aGF0IGNsYXJpZmllcyBhIGxvdC4gU28sIGJlY2F1c2UgYG1hY2JgIGlzIGVtdWxhdGVkIGluIFFFTVUsIHVuZGVyc3RhbmRpbmcgdGhlIGludGVyYWN0aW9uIG9mIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCB3aXRoIGBtYWNiYCBpbiBRRU1VIGlzIGtleS4gTGV0JiMzOTtzIG1vdmUgb24gdG8gY2hlY2tpbmcgYG1hY2JfcGh5bGlua19jb25uZWN0YC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjYl9waHlsaW5rX2Nvbm5lY3QmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz05NzU9c3RhdGljIGJvb2wgbWFjYl9waHlfaGFuZGxlX2V4aXN0cyhzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtOTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo5ODI6c3RhdGljIGludCBtYWNiX3BoeWxpbmtfY29ubmVjdChzdHJ1Y3QgbWFjYiAqYnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4My17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz0zMTYwPXN0YXRpYyBpbnQgbWFjYl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjAxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzozMjAyOlx0ZXJyID0gbWFjYl9waHlsaW5rX2Nvbm5lY3QoYnApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy0zMjAzLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTUwODE9c3RhdGljIGludCBhdDkxZXRoZXJfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTEwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6NTEwMTpcdHJldCA9IG1hY2JfcGh5bGlua19jb25uZWN0KGxwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTEwMi1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0NzYwCgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogNDc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlJlYWNoaW5nIFBoeWxpbmsmIzM5O3MgQ29yZSBMb2dpYyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSB0cmFjZWQgdGhlIGV4ZWN1dGlvbiBwYXRoIGZyb20gYG1hY2Jfb3BlbmAgZG93biB0byBgcGh5bGlua2AuIEl0JiMzOTtzIGNsZWFyIHRoYXQgYG1hY2Jfb3BlbmAgdHJpZ2dlcnMgYG1hY2JfcGh5bGlua19jb25uZWN0YCwgd2hpY2ggdGhlbiBjYWxscyBlaXRoZXIgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgIG9yIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YC4gVGhpcyBpcyBrZXk7IGl0IG1lYW5zIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYXJlIGRlZmluaXRlbHkgcmVhY2hhYmxlIGFuZCwgdGhlcmVmb3JlLCBmdXp6YWJsZS4gTXkgaW5pdGlhbCBnb2FsIGhlcmUgaXMgdG8gaWRlbnRpZnkgdGhlc2UgdnVsbmVyYWJsZSBwb2ludHMuCgpJIG5lZWQgdG8gY29uZmlybSByZWFjaGFiaWxpdHkgb2YgdGhlc2Uga2V5IGZ1bmN0aW9ucyBhbmQgdW5kZXJzdGFuZCB0aGUgY29udHJvbCBmbG93LiBXYWl0LCBgcGh5bGlua19leHBlY3RzX3BoeWAgaXMgYWN0dWFsbHkgY2FsbGVkIGZyb20gYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgLiBTbyBJIHdhcyByaWdodDsgaXQmIzM5O3MgZGVmaW5pdGVseSByZWFjaGFibGUuIGBwaHlsaW5rX2F0dGFjaF9waHlgIHNlZW1zIGVxdWFsbHkgYWNjZXNzaWJsZSwgY2FsbGVkIGZyb20gYm90aCBgcGh5bGlua19jb25uZWN0X3BoeWAgYW5kIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAuIEJvdGggb2YgdGhlc2UgYXJlIGludGVyZXN0aW5nLgoKVGhpcyBwYXRjaCBpcyBpbnRlcmVzdGluZyBiZWNhdXNlIGl0IHJlbW92ZXMgdGhhdCBgcGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCAmYW1wOyZhbXA7IHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzeihwbC0mZ3Q7bGlua19pbnRlcmZhY2UpYCBjaGVjayBmcm9tIGJvdGggYHBoeWxpbmtfZXhwZWN0c19waHlgIGFuZCBgcGh5bGlua19hdHRhY2hfcGh5YC4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljLCByZW1vdmluZyBhIGNydWNpYWwgdmFsaWRhdGlvbiBzdGVwLiBUaGF0JiMzOTtzIGEgZ29vZCBwbGFjZSB0byBsb29rIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLiBQbHVzLCB0aGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGluIGBzdG1tYWNfaW5pdF9waHlgIHRvIHJldHVybiAwIGlmIGBwcml2LSZndDtody0mZ3Q7cGh5bGlua19wY3NgIGlzIHNldC4gTm93IEkgbmVlZCB0byBzZWUgaWYgYHN0bW1hY2AgaXMgcmVhY2hhYmxlLgoKSSBoYWQgbG9va2VkIGF0IHRoaXMgZWFybGllciwgYW5kIEkgZG9uJiMzOTt0IHRoaW5rIFFFTVUgZW11bGF0ZXMgYHN0bW1hY2AgUENJLiBCdXQgd2FpdCwgd2hhdCBpZiBgc3RtbWFjYCBpcyB1c2VkIHZpYSBwbGF0Zm9ybSBkZXZpY2VzPyBJIG5lZWQgdG8gY29uc2lkZXIgYWxsIHBvc3NpYmlsaXRpZXMuIFFFTVUgaGFzIGBody9uZXQveGdtYWMuY2AgYW5kIEkgbmVlZCB0byBzZWUgaWYgdGhhdCYjMzk7cyByZWxhdGVkIHRvIGBzdG1tYWNgLiBOb3BlLCBgeGdtYWNgIGlzIENhbHhlZGEuIExldCYjMzk7cyBzZWUuLi4gYGh3L25ldC9hbGx3aW5uZXItc3VuOGktZW1hYy5jYCBpcyBmb3Igc3VuOGksIGFuZCBgaHcvbmV0L25wY203eHhfZW1jLmNgIGlzIHJlbGF0ZWQgdG8gbnBjbTd4eC4KCk9rYXksIGlzIGBzdG1tYWNgIHVzZWQgaW4gKmFueSogUUVNVSBtYWNoaW5lPyBJdCYjMzk7cyB1c2VkIGluIG1hbnkgQVJNIGJvYXJkcy4gYHN0bW1hY2AgaXMgdGhlIGRyaXZlciBmb3IgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIChEV01BQykuIEFuZCB5ZXMhIFFFTVUgKmRvZXMqIGVtdWxhdGUgYGh3L25ldC9kZXNpZ253YXJlLmNgISBTbyBgc3RtbWFjYCAqaXMqIHJlYWNoYWJsZSB0aHJvdWdoIFFFTVUuIE5vdywgbGV0JiMzOTtzIHNlZSBob3cgYHN0bW1hY2AgbWF0Y2hlcyB1cCB3aXRoIGBkZXNpZ253YXJlYC4gVGhpcyBpcyBnZXR0aW5nIGludGVyZXN0aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzbnBzLGR3bWFjJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMDg4IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW43aS1hMjAtZ21hYy55YW1sPTk9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW43aS1hMjAtZ21hYy55YW1sOjEwOiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW43aS1hMjAtZ21hYy55YW1sLTExLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sPTk9bWFpbnRhaW5lcnM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMTItXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbDoxMzojIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24mIzM5O3QgbWF0Y2ggYWxsIG5vZGVzIHdpdGggJiMzOTtzbnBzLGR3bWFjJiMzOTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTE0LXNlbGVjdDpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbD0yOD1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQ1LSAgICAgICAgICAtIGNvbnN0OiBhbGx3aW5uZXIsc3VuNTVpLWE1MjMtZ21hYzIwMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6NDY6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNC4yMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQ3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sPTkyPWFsbE9mOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6OTM6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTk0LSAgLSBpZjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbD0yNTU9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMjc0LSAgICAgICAgICAgICNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjI3NTogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMjc2LSAgICAgICAgfTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0zMjUtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6MzI2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0zMjctICAgICAgICB9O1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTM3NC0gICAgICAgIG1kaW8ge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6Mzc1OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0zNzYtICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTM4Ny0gICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDthbGx3aW5uZXIsc3VuNTVpLWE1MjMtZ21hYzIwMFwmIzM0OyxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjM4ODogICAgICAgICAgICAgICAgICAgICBcJiMzNDtzbnBzLGR3bWFjLTQuMjBhXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzg5LSAgICAgICAgcmVnID0gXHUwMDNjMHgwNDUxMDAwMCAweDEwMDAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQwNS0gICAgICAgIG1kaW8ge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6NDA2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC00MDctICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sPTEyPWRlc2NyaXB0aW9uOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTE2LSAgIyBUT0RPOiBEZXRlcm1pbmUgaG93IHRvIGhhbmRsZSB0aGUgQXJyaWExMCByZXNldC1uYW1lLCBzdG1tYWNldGgtb2NwLCB0aGF0XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDoxNzogICMgZG9lcyBub3QgdmFsaWRhdGUgYWdhaW5zdCBuZXQvc25wcyxkd21hYy55YW1sLlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMTgtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw9MzE9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0zNS0gICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6MzY6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43MGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjM3OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0zOC0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMzktICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6NDA6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43MmFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjQxOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC00Mi0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtNDMtICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6NDQ6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43NGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjQ1OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC00Ni0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sPTE1Mz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjE1NDogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMTU1LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sPTE1OD1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0xNjYtICAgICAgICBldGhlcm5ldEBmZjcwMDAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDoxNjc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2FsdHIsc29jZnBnYS1zdG1tYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtMy43MGFcJiMzNDssXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDoxNjg6ICAgICAgICAgICAgXCYjMzQ7c25wcyxkd21hY1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTE2OS0gICAgICAgICAgICBhbHRyLHN5c21nci1zeXNjb24gPSBcdTAwM2NcdTAwMjZzeXNtZ3IgMHg2MCAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sPTEwPW1haW50YWluZXJzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTEzLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWw6MTQ6IyBXZSBuZWVkIGEgc2VsZWN0IGhlcmUgc28gd2UgZG9uJiMzOTt0IG1hdGNoIGFsbCBub2RlcyB3aXRoICYjMzk7c25wcyxkd21hYyYjMzk7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNS1zZWxlY3Q6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWw9Mjk9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbDozMDogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWwtMzEtICAtIGlmOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sPTEzMD1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTE0My0gICAgICBlbnVtOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWw6MTQ0OiAgICAgICAgLSBzbnBzLGR3bWFjLTMuNzBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbDoxNDU6ICAgICAgICAtIHNucHMsZHdtYWNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTE0Ni1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbD0xNzI9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWwtMTc0LSAgICBldGhtYWM6IGV0aGVybmV0QGM5NDEwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sOjE3NTogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDthbWxvZ2ljLG1lc29uLWd4YmItZHdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWNcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNzYtICAgICAgICByZWcgPSBcdTAwM2MweGM5NDEwMDAwIDB4MTAwMDBcdTAwM2UsIFx1MDAzYzB4Yzg4MzQ1NDAgMHg4XHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dD02PVJlcXVpcmVkIHByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQ6NzogLSBjb21wYXRpYmxlOiAgU2hvdWxkIGJlIFwmIzM0O2FkYXB0cnVtLGFuYXJpb24tZ21hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hY1wmIzM0O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbmFyaW9uLWdtYWMudHh0LTgtIC0gcGh5LW1vZGU6ICAgIFNob3VsZCBiZSBcJiMzNDtyZ21paVwmIzM0Oy4gT3RoZXIgbW9kZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dD0xMT1FeGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQtMTMtXHRnbWFjMTogZXRoZXJuZXRAZjIwMTQwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbmFyaW9uLWdtYWMudHh0OjE0Olx0XHRjb21wYXRpYmxlID0gXCYjMzQ7YWRhcHRydW0sYW5hcmlvbi1nbWFjXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbmFyaW9uLWdtYWMudHh0LTE1LVx0XHRyZWcgPSBcdTAwM2MweGYyMDE0MDAwIDB4NDAwMFx1MDAzZSwgXHUwMDNjMHhmMjAxODEwMCA4XHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbD0yNz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDoyODogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTI5LSAgLSBpZjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWw9NDg9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWwtNTMtICAgICAgICAgIC0gZXN3aW4sZWljNzcwMC1xb3MtZXRoLWNsay1pbnZlcnNpb25cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDo1NDogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMjBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC01NS1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWw9MTM3PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC0xMzktICAgIGV0aGVybmV0QDUwNDAwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDoxNDA6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7ZXN3aW4sZWljNzcwMC1xb3MtZXRoXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjLTUuMjBcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWwtMTQxLSAgICAgICAgcmVnID0gXHUwMDNjMHg1MDQwMDAwMCAweDEwMDAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC0xNjUtICAgIGV0aGVybmV0QDUwNDEwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDoxNjY6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7ZXN3aW4sZWljNzcwMC1xb3MtZXRoLWNsay1pbnZlcnNpb25cJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtNS4yMFwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC0xNjctICAgICAgICByZWcgPSBcdTAwM2MweDUwNDEwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw9MjE9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbDoyMjogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWwtMjMtXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbD0yND1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvaW50ZWwsZHdtYWMtcGxhdC55YW1sLTI5LSAgICAgICAgICAgICAgLSBpbnRlbCxrZWVtYmF5LWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbDozMDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWwtMzEtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw9NTc9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWwtMTA2LSAgICBnbWFjMDogZXRoZXJuZXRAM2EwMDAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MTA3OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2ludGVsLGtlZW1iYXktZHdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtNC4xMGFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMDgtICAgICAgICBpbnRlcnJ1cHRzID0gXHUwMDNjR0lDX1NQSSAxMTkgSVJRX1RZUEVfTEVWRUxfSElHSFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMjgtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MTI5OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMzAtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pcHE4MDZ4LWR3bWFjLnR4dD02PVJlcXVpcmVkIHByb3BlcnRpZXM6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0LTctXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0Ojg6LSBjb21wYXRpYmxlOiBzaG91bGQgYmUgXCYjMzQ7cWNvbSxpcHE4MDZ4LWdtYWNcJiMzNDsgYWxvbmcgd2l0aCBcJiMzNDtzbnBzLGR3bWFjXCYjMzQ7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0LTktXHQgICAgICBhbmQgYW55IGFwcGxpY2FibGUgbW9yZSBkZXRhaWxlZCB2ZXJzaW9uIG51bWJlclxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9MzQ9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sLTM4LSAgICAgICAgICAtIGxvb25nc29uLGxzMWItZ21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbDozOTogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNTBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sLTQwLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9Nzg9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sOjc5OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sLTgwLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9ODM9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC04OC0gICAgZ21hYzA6IGV0aGVybmV0QDFmZTEwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw6ODk6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7bG9vbmdzb24sbHMxYi1nbWFjXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjLTMuNTBhXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC05MC0gICAgICAgIHJlZyA9IFx1MDAzYzB4MWZlMTAwMDAgMHgxMDAwMFx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sLTEwNy0gICAgICAgICAgICAjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sOjEwODogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC0xMDktXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD0zMz1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtMzctICAgICAgICAgIC0gbG9vbmdzb24sbHMxYy1lbWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sOjM4OiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy41MGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtMzktXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD03Nz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWw6Nzg6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtNzktXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD04Mj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sLTg3LSAgICBlbWFjOiBldGhlcm5ldEAxZmUxMDAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sOjg4OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2xvb25nc29uLGxzMWMtZW1hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hYy0zLjUwYVwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtODktICAgICAgICByZWcgPSBcdTAwM2MweDFmZTEwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbC0xMDYtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbDoxMDc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3NucHMsZHdtYWMtbWRpb1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtMTA4LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0xMj1kZXNjcmlwdGlvbjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMTQtXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6MTU6IyBXZSBuZWVkIGEgc2VsZWN0IGhlcmUgc28gd2UgZG9uJiMzOTt0IG1hdGNoIGFsbCBub2RlcyB3aXRoICYjMzk7c25wcyxkd21hYyYjMzk7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMTYtc2VsZWN0OlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0yNz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbDoyODogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTI5LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sPTMwPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTM1LSAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDI3MTItZ21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sOjM2OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTQuMjBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMzctICAgICAgLSBpdGVtczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMzktICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6NDA6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4xMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC00MS0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC00NC0gICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ4MTk1LWdtYWNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbDo0NTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTQ2LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0xNTI9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTE2MC0gICAgZXRoOiBldGhlcm5ldEAxMTAxYzAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6MTYxOiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10MjcxMi1nbWFjXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjLTQuMjBhXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTE2Mi0gICAgICAgIHJlZyA9IFx1MDAzYzB4MTEwMWMwMDAgMHgxMzAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbD0yNT1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbDoyNjogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTI3LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sPTI4PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTMxLSAgICAgIC0gY29uc3Q6IG51dm90b24sbWEzNWQxLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWw6MzI6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjcwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTMzLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbD0xMDg9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTExMy0gICAgZXRoZXJuZXRANDAxMjAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sOjExNDogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtudXZvdG9uLG1hMzVkMS1kd21hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hYy0zLjcwYVwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbC0xMTUtICAgICAgICByZWcgPSBcdTAwM2MweDQwMTIwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTEzMS0gICAgICAgIG1kaW8ge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sOjEzMjogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTEzMy0gICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw9OT1tYWludGFpbmVyczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0xMy1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sOjE0OiMgV2UgbmVlZCBhIHNlbGVjdCBoZXJlIHNvIHdlIGRvbiYjMzk7dCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAmIzM5O3NucHMsZHdtYWMmIzM5O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWwtMTUtc2VsZWN0OlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sPTI2PWFsbE9mOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw6Mjc6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTI4LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw9Mjk9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0zNi0gICAgICAgICAgICAgIC0gbnhwLGlteDkzLWR3bWFjLWVxb3NcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sOjM3OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0zOC1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbD05Mz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC05OS0gICAgZXFvczogZXRoZXJuZXRAMzBiZjAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw6MTAwOiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtueHAsaW14OG1wLWR3bWFjLWVxb3NcJiMzNDssXCYjMzQ7c25wcyxkd21hYy01LjEwYVwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTEwMS0gICAgICAgICAgICByZWcgPSBcdTAwM2MweDMwYmYwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sPTk9bWFpbnRhaW5lcnM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTExLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sOjEyOiMgV2UgbmVlZCBhIHNlbGVjdCBoZXJlIHNvIHdlIGRvbiYjMzk7dCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAmIzM5O3NucHMsZHdtYWMmIzM5O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTEzLXNlbGVjdDpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWw9MjI9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtMjYtICAgICAgICAgIC0gbnhwLGxwYzE4NTAtZHdtYWNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDoyNzogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNjExXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWw6Mjg6ICAgICAgLSBjb25zdDogc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTI5LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbD02Mj1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDo2MzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTY0LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbD02Nz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtNzEtICAgIGV0aGVybmV0QDQwMDEwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDo3MjogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtueHAsbHBjMTg1MC1kd21hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hYy0zLjYxMVwmIzM0OywgXCYjMzQ7c25wcyxkd21hY1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbC03My0gICAgICAgIHJlZyA9IFx1MDAzYzB4NDAwMTAwMDAgMHgyMDAwXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sPTg4PWFsbE9mOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWw6ODk6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sLTkwLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sPTkzPWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sLTE0Ny0gICAgICAgICAgI3NpemUtY2VsbHMgPSBcdTAwM2MwXHUwMDNlO1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWw6MTQ4OiAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWwtMTQ5LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxldGhxb3MueWFtbD0xNz1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxldGhxb3MueWFtbDoxODogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sLTE5LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxldGhxb3MueWFtbD05Nz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20sZXRocW9zLnlhbWwtMTM0LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sOjEzNTogICAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzbnBzLGR3bWFjLW1kaW9cJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20sZXRocW9zLnlhbWwtMTM2LSAgICAgICAgcGh5MTogcGh5QDQge1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbD0yMj1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbDoyMzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTI0LVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sPTI1PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTMwLSAgICAgIC0gY29uc3Q6IHJlbmVzYXMscnpuMS1nbWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWw6MzE6ICAgICAgLSBjb25zdDogc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTMyLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbD01Mj1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWwtNTctICAgIGV0aGVybmV0QDQ0MDAwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbDo1ODogICAgICBjb21wYXRpYmxlID0gXCYjMzQ7cmVuZXNhcyxyOWEwNmcwMzItZ21hY1wmIzM0OywgXCYjMzQ7cmVuZXNhcyxyem4xLWdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWNcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWwtNTktICAgICAgcmVnID0gXHUwMDNjMHg0NDAwMDAwMCAweDIwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MjY9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zMC0gICAgICAgICAgLSBjb25zdDogcmVuZXNhcyxyOWEwOGcwNDYtZ2JldGggIyBSWi9HM0xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sOjMxOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMzBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zMi0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTM3LSAgICAgICAgICAtIGNvbnN0OiByZW5lc2FzLHJ6djJoLWdiZXRoXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbDozODogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjIwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zOS0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtNDAtICAgICAgICAgIC0gY29uc3Q6IHJlbmVzYXMscjlhMDlnMDc3LWdiZXRoICMgUlovVDJIXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbDo0MTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjIwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC00Mi0gICAgICAtIGl0ZW1zOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTQ0LSAgICAgICAgICAtIGNvbnN0OiByZW5lc2FzLHI5YTA5ZzA3Ny1nYmV0aFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6NDU6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtNDYtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MTY2PWFsbE9mOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MTY3OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0xNjgtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MjQ5PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTI1NC0gICAgZXRoZXJuZXRAMTVjMzAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MjU1OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3JlbmVzYXMscjlhMDlnMDU3LWdiZXRoXCYjMzQ7LCBcJiMzNDtyZW5lc2FzLHJ6djJoLWdiZXRoXCYjMzQ7LCBcJiMzNDtzbnBzLGR3bWFjLTUuMjBcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0yNTYtICAgICAgICByZWcgPSBcdTAwM2MweDE1YzMwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMzU1LSAgICAgICAgICAgICNzaXplLWNlbGxzID0gXHUwMDNjMFx1MDAzZTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sOjM1NjogICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c25wcyxkd21hYy1tZGlvXCYjMzQ7O1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMzU3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbD05PW1haW50YWluZXJzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbDoxMjojIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24mIzM5O3QgbWF0Y2ggYWxsIG5vZGVzIHdpdGggJiMzOTtzbnBzLGR3bWFjJiMzOTtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMy1zZWxlY3Q6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sPTM3PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sLTU5LSAgICAgICAgICAgICAgLSByb2NrY2hpcCxydjExMjYtZ21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sOjYwOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTQuMjBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JvY2tjaGlwLWR3bWFjLnlhbWwtNjEtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sPTEzMj1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbDoxMzM6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMzQtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD0xOD1zZWxlY3Q6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtMjItICAgICAgICBlbnVtOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjM6ICAgICAgICAgIC0gc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjQ6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjQwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjU6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjUwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjY6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjYxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6Mjc6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjcwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6Mjg6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjcxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6Mjk6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjcyYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MzA6ICAgICAgICAgIC0gc25wcyxkd21hYy00LjAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozMTogICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMTBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozMjogICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMjBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozMzogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozNDogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMTBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozNTogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMjBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjM2OiAgICAgICAgICAtIHNucHMsZHdtYWMtNS4zMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTM3LSAgICAgICAgICAtIHNucHMsZHd4Z21hY1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sPTQ2PXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtOTgtICAgICAgICAtIHJvY2tjaGlwLHJ2MTEyNi1nbWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo5OTogICAgICAgIC0gc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTAwOiAgICAgICAgLSBzbnBzLGR3bWFjLTMuNDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDE6ICAgICAgICAtIHNucHMsZHdtYWMtMy41MGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwMjogICAgICAgIC0gc25wcyxkd21hYy0zLjYxMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTAzOiAgICAgICAgLSBzbnBzLGR3bWFjLTMuNzBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDQ6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MTBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwNTogICAgICAgIC0gc25wcyxkd21hYy0zLjcyYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTA2OiAgICAgICAgLSBzbnBzLGR3bWFjLTQuMDBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwNzogICAgICAgIC0gc25wcyxkd21hYy00LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTA4OiAgICAgICAgLSBzbnBzLGR3bWFjLTQuMjBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDk6ICAgICAgICAtIHNucHMsZHdtYWMtNS4wMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjExMDogICAgICAgIC0gc25wcyxkd21hYy01LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTExOiAgICAgICAgLSBzbnBzLGR3bWFjLTUuMjBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjExMjogICAgICAgIC0gc25wcyxkd21hYy01LjMwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTEzOiAgICAgICAgLSBzbnBzLGR3bWFjLTUuNDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC0xMTQtICAgICAgICAtIHNucHMsZHd4Z21hY1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTU1NS0gICAgICBjb21wYXRpYmxlOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NTU2OiAgICAgICAgY29uc3Q6IHNucHMsZHdtYWMtbWRpb1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtNTU3LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sPTYxMT1hbGxPZjpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC02MzUtICAgICAgICAgICAgICAgIC0gcWNvbSxzbTgxNTAtZXRocW9zXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo2MzY6ICAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy00LjAwXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo2Mzc6ICAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy00LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjM4OiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNC4yMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjYzOTogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo2NDA6ICAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy01LjEwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjQxOiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNS4yMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjQyOiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNS4zMGFcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjY0MzogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuNDBhXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC02NDQtICAgICAgICAgICAgICAgIC0gc25wcyxkd3hnbWFjXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw9NjU0PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTcxMi0gICAgICAgICAgICAjc2l6ZS1jZWxscyA9IFx1MDAzYzBcdTAwM2U7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo3MTM6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3NucHMsZHdtYWMtbWRpb1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTcxNC0gICAgICAgICAgICBwaHkxOiBldGhlcm5ldC1waHlAMCB7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sPTIxPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTI0LSAgICAgIC0gY29uc3Q6IHNvcGhnbyxjdjE4MDBiLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw6MjU6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjcwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTI2LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbD02Mj1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbDo2MzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTY0LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbD02Nz1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWwtNzEtICAgIGV0aGVybmV0QDQwNzAwMDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sOjcyOiAgICAgIGNvbXBhdGlibGUgPSBcJiMzNDtzb3BoZ28sY3YxODAwYi1kd21hY1wmIzM0OywgXCYjMzQ7c25wcyxkd21hYy0zLjcwYVwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC03My0gICAgICByZWcgPSBcdTAwM2MweDA0MDcwMDAwIDB4MTAwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTkzLSAgICAgIG1kaW8ge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sOjk0OiAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3NucHMsZHdtYWMtbWRpb1wmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC05NS0gICAgICAgICNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbD0yMj1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTI2LSAgICAgICAgICAtIGNvbnN0OiBzb3BoZ28sc2cyMDQyLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDoyNzogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjAwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtMjgtICAgICAgLSBpdGVtczpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTI5LSAgICAgICAgICAtIGNvbnN0OiBzb3BoZ28sc2cyMDQ0LWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDozMDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjMwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtMzEtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWw9NzE9YWxsT2Y6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDo3MjogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtNzMtICAtIGlmOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sPTk1PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTk5LSAgICBldGhlcm5ldEAzMDAwNjAwMCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDoxMDA6ICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O3NvcGhnbyxzZzIwNDQtZHdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtNS4zMGFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbC0xMDEtICAgICAgcmVnID0gXHUwMDNjMHgzMDAwNjAwMCAweDQwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sPTIwPXByb3BlcnRpZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTIzLSAgICAgIC0gY29uc3Q6IHNwYWNlbWl0LGszLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWw6MjQ6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjQwYVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTI1LVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbD04MD1hbGxPZjpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbDo4MTogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTgyLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbD04NT1leGFtcGxlczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWwtODktICAgIGV0aGVybmV0QGNhYzgwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbDo5MDogICAgICBjb21wYXRpYmxlID0gXCYjMzQ7c3BhY2VtaXQsazMtZHdtYWNcJiMzNDssIFwmIzM0O3NucHMsZHdtYWMtNS40MGFcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWwtOTEtICAgICAgcmVnID0gXHUwMDNjMHhjYWM4MDAwMCAweDIwMDBcdTAwM2U7XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbD0yND1wcm9wZXJ0aWVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMjgtICAgICAgICAgIC0gY29uc3Q6IHN0YXJmaXZlLGpoNzEwMC1kd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbDoyOTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hY1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbC0zMC0gICAgICAtIGl0ZW1zOlxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbC0zMS0gICAgICAgICAgLSBjb25zdDogc3RhcmZpdmUsamg3MTEwLWR3bWFjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sOjMyOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMjBcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzMtICAgICAgLSBpdGVtczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sLTM1LSAgICAgICAgICAtIGNvbnN0OiBzdGFyZml2ZSxqaDcxMTAtZHdtYWNcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWw6MzY6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbC0zNy1cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sPTg4PWFsbE9mOlxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5OTA5CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogNDUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBEZXNpZ25XYXJlIE1BQyBhbmQgUEhZIEludGVyZmFjZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0YXJnZXRzLiBZZXMsIGBzbnBzLGR3bWFjYCBpcyBkZWZpbml0ZWx5IHRoZSBEZXNpZ25XYXJlIE1BQy4gUUVNVSBlbXVsYXRlcyBpdCB3aXRoIGBody9uZXQvZGVzaWdud2FyZS5jYCwgYW5kIHRoYXQmIzM5O3MgdGhlIHNhbWUgdGhpbmcgYXMgYHNucHMsZHdtYWNgLiBTbyB0aGF0IG1lYW5zIHRoZSBgc3RtbWFjYCBkcml2ZXIgaXMgKmFic29sdXRlbHkqIHJlYWNoYWJsZSBpbiBRRU1VIHZpYSBwbGF0Zm9ybSBkZXZpY2VzLiBHb29kIHN0YXJ0LgoKTm93LCBsZXQmIzM5O3MgZHJpbGwgZG93bi4gVGhlIHBhdGNoIGluY2x1ZGVzIGEgc21hbGwgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGBzdG1tYWNfaW5pdF9waHlgIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jYC4gSXQmIzM5O3MgdGhpcyBibG9jayB0aGF0IHN0b29kIG91dDoKCmBgYGMKCQkvKiBJZiBhIGN1c3RvbSBQQ1MgaXMgaW4gdXNlLCBubyBQSFkgaXMgbmVlZGVkICovCgkJaWYgKHByaXYtJmd0O2h3LSZndDtwaHlsaW5rX3BjcykKCQkJcmV0dXJuIDA7CmBgYAoKSXQmIzM5O3MgYSBzbWFsbCBjaGFuZ2UsIGJ1dCBpdCYjMzk7cyBhIGNvbmRpdGlvbiBhbmQgdGhhdCYjMzk7cyBpbnRlcmVzdGluZyBmb3IgZnV6emluZy4gSXQmIzM5O3MgYSBrZXkgdG8gZGV0ZXJtaW5lIGlmIGEgUEhZIGlzIHVzZWQgb3Igbm90LgoKVGhlIG1vcmUgc2lnbmlmaWNhbnQgY2hhbmdlcywgaG93ZXZlciwgYXJlIGluIHRoZSBwaHlsaW5rIHBhcnQuIEhlcmUmIzM5O3Mgd2hhdCYjMzk7cyBiZWVuIGNoYW5nZWQ6CgpgYGBjCi0JaWYgKHBsLSZndDtjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fAotCSAgICAocGwtJmd0O2NmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCAmYW1wOyZhbXA7Ci0JICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3oocGwtJmd0O2xpbmtfaW50ZXJmYWNlKSkpCiYjNDM7CWlmIChwbC0mZ3Q7Y2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQpCmBgYAoKVGhpcyBpcyBkaXJlY3RseSBpbXBhY3RpbmcgYHBoeWxpbmtfZXhwZWN0c19waHlgIGFuZCBgcGh5bGlua19hdHRhY2hfcGh5YC4gVGhpcyBpcyBhICpmdW5jdGlvbmFsIGNoYW5nZSogdG8gdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpdHNlbGYsIGFzIHdlbGwgYXMgdGhlIHN0bW1hYyBkcml2ZXIuIFRoYXQgbWFrZXMgdGhpcyBhcmVhIHZlcnkgcmVsZXZhbnQuCgpTbywgdGhlIHBhdGNoIGFsdGVycyBib3RoIHRoZSBjb3JlIHBoeWxpbmsgZnVuY3Rpb25hbGl0eSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIgaW4gdGVybXMgb2YgUEhZIGhhbmRsaW5nLiBUaGlzIGlzIHByb21pc2luZy4gSXQmIzM5O3Mgd29ydGggYSBmdXp6aW5nIGNhbXBhaWduIHRvIHNlZSBpZiB0aGVzZSBjaGFuZ2VzIGludHJvZHVjZSBhbnkgbmV3IHZ1bG5lcmFiaWxpdGllcy4KCkkgbmVlZCB0byBuYWlsIGRvd24gdGhlIHNwZWNpZmljIGZ1bmN0aW9ucy4gRm9yIHRoZSBwaHlsaW5rIHNpZGUsIEkmIzM5O20gdGhpbmtpbmcgdGhlc2UgZnVuY3Rpb25zIGFyZSB0aGUga2V5IGZvY3VzOiBgcGh5bGlua19leHBlY3RzX3BoeWAsIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCwgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgLCBhbmQgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YC4KCk5vdywgcmVnYXJkaW5nIHRoZSBgc3RtbWFjYCBzaWRlLCBgc3RtbWFjX2luaXRfcGh5YCBpdHNlbGYgaXMgc3RhdGljLCBzbyBJIG5lZWQgdG8gZmluZCBpdHMgY2FsbGVycy4gSXQgaXMgdXNlZCBpbnNpZGUgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19kdnJfcHJvYmVgLiBTbyB0aG9zZSBhcmUgdGhlIGZ1bmN0aW9ucyB0byBleGFtaW5lIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N0bW1hY19pbml0X3BoeSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyNjU9c3RhdGljIHZvaWQgc3RtbWFjX2NoZWNrX3Bjc19tb2RlKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTAtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEyOTE6ICogc3RtbWFjX2luaXRfcGh5IC0gUEhZIGluaXRpYWxpemF0aW9uXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTItICogQGRldjogbmV0IGRldmljZSBzdHJ1Y3R1cmVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTctICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEyOTg6c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTI5OS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MTc3PXN0YXRpYyBpbnQgc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxOTU6XHRyZXQgPSBzdG1tYWNfaW5pdF9waHkoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDE5Ni1cdGlmIChyZXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxMzk3CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogMTIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBgc3RtbWFjYCBEcml2ZXImIzM5O3MgUEhZIENvbm5lY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSB0cmFjaW5nIHRocm91Z2ggdGhpcyBjb2RlIGFuZCBpdCBsb29rcyBsaWtlIGBzdG1tYWNfb3BlbmAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaW5pdGlhdGVzIHRoZSB3aG9sZSBwcm9jZXNzLiBUaGF0JiMzOTtzIHRoZSBlbnRyeSBwb2ludCBJIG5lZWQgdG8gemVybyBpbiBvbi4gSSYjMzk7bSBnb2luZyB0byBhZGQgYHN0bW1hY19vcGVuYCwgYWxvbmcgd2l0aCBhbGwgaXRzIHJlbGF0ZWQgUEhZIGNvbm5lY3Rpb24gZnVuY3Rpb25zIOKAkyBgcGh5bGlua19jb25uZWN0X3BoeWAsIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCwgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgYW5kIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCDigJMgdG8gbXkgbGlzdCBvZiBgRm9jdXNTeW1ib2xzYC4gVGhhdCBnaXZlcyBtZSBhIGNsZWFyIHBhdGggdG8gdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb24uCgpOb3csIGxldCYjMzk7cyB0aGluayBhYm91dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGludm9sdmVkIGhlcmUuIEZvciBgc3RtbWFjYCwgdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBsaWtlbHkgYENPTkZJR19TVE1NQUNfRVRIYC4gRm9yIGBwaHlsaW5rYCwgaXQmIzM5O3MgcHJvYmFibHkgYENPTkZJR19QSFlMSU5LYC4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlcyBmb3IgYm90aCBgU1RNTUFDX0VUSGAgYW5kIGBQSFlMSU5LYCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gYW5kIHRvIHVuZGVyc3RhbmQgYW55IGRlcGVuZGVuY2llcy4gS25vd2luZyB0aGUgY29uZmlndXJhdGlvbiB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlc2UgZGlmZmVyZW50IG1vZHVsZXMgYXJlIGFjdGl2YXRlZCBhbmQgY29tcGlsZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTVE1NQUNfRVRIJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjpjb25maWcgU1RNTUFDX0VUSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIE11bHRpLUdpZ2FiaXQgRXRoZXJuZXQgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxODk1CgkJCQkJCQlvdXRwdXQ6IDE4CgkJCQkJCQl0aG91Z2h0czogOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKlBIWUxJTksgQ2hlY2stSW4qKgoKUmlnaHQsIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCBgUEhZTElOS2AuIEdpdmVuIHdoYXQgd2UmIzM5O3JlIHdvcmtpbmcgb24sIGl0IHNlZW1zIGxpa2UgYSBjcnVjaWFsIHBvaW50IHRvIHJldmlzaXQuIEkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyBpdHMgY3VycmVudCBzdGF0dXMgYW5kIHdoZXRoZXIgaXQmIzM5O3Mgc3RpbGwgdGhlIGJlc3QgdG9vbCBmb3IgdGhpcyBwYXJ0aWN1bGFyIHRhc2suIElzIGl0IG1lZXRpbmcgdGhlIHBlcmZvcm1hbmNlIHJlcXVpcmVtZW50cz8gQXJlIHRoZXJlIGFueSBrbm93biBidWdzIG9yIGxpbWl0YXRpb25zIHRoYXQgbWlnaHQgYmVjb21lIGNyaXRpY2FsIGRvd24gdGhlIGxpbmU/IEkgbmVlZCB0byBiZSBzdXJlIHRoYXQgYFBIWUxJTktgIGlzbiYjMzk7dCBnb2luZyB0byBib3R0bGVuZWNrIHRoaXMgYW5hbHlzaXMsIHNvIGEgbWVudGFsIGNoZWNrbGlzdCBvZiBpdHMgZnVuY3Rpb25hbGl0eSBpcyBpbiBvcmRlci4gSGF2ZSB0aGUgcmVjZW50IHVwZGF0ZXMgaW1wYWN0ZWQgdGhlIGludGVuZGVkIGZ1bmN0aW9uPyBJdCBtaWdodCBhbHNvIGJlIGEgZ29vZCBpZGVhIHRvIHF1aWNrbHkgc2NhbiB0aGUgZG9jdW1lbnRhdGlvbiBhZ2FpbiwganVzdCB0byBtYWtlIHN1cmUgSSYjMzk7bSB1cCB0byBzcGVlZCBvbiBhbnkgbmV3IGZlYXR1cmVzIHRoYXQgbWF5IGhhdmUgYmVlbiBhZGRlZC4gTGV0JiMzOTtzIHNlZSBpZiBpdCBpcyBzdGlsbCB0aGUgb3B0aW1hbCBvcHRpb24gZm9yIHRoaXMgd29ya2Zsb3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDAzOjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBQSFlMSU5LJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZzo2OmNvbmZpZyBQSFlMSU5LXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy03LVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIxNzkKCQkJCQkJCW91dHB1dDogMTgKCQkJCQkJCXRob3VnaHRzOiA0MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBhbHJlYWR5IGRlZXAgaW4gdGhlIHdlZWRzIG9mIGRldmljZSBkcml2ZXIgY29uZmlndXJhdGlvbjoKCioqTmF2aWdhdGluZyBEZXZpY2UgRHJpdmVyIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIHNvIGBQSFlMSU5LYCBpcyBvbmUgb2YgdGhvc2UgdHJpc3RhdGUgc3ltYm9scywgbWVhbmluZyBpdCYjMzk7cyBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFuZCBkb2VzbiYjMzk7dCBnZXQgYSBkaXJlY3QgcHJvbXB0IG9mIGl0cyBvd24uIEl0JiMzOTtzIGVzc2VudGlhbGx5IGEgZGVwZW5kZW5jeS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IGl0JiMzOTtzIGJlaW5nIHNlbGVjdGVkLiBNeSBodW5jaCBpcyB0aGF0IGBTVE1NQUNfRVRIYCBtaWdodCBiZSB0aGUgY3VscHJpdC4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgU1RNTUFDX0VUSGAgaXMsIGluIGZhY3QsIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyBgUEhZTElOS2AuIExldCBtZSBjcm9zcy1yZWZlcmVuY2UgdGhlIEtjb25maWcgZmlsZXMsIG9yIHVzZSBteSB0b29sIG9mIGNob2ljZSB0byByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGNoYWluLiBJIG5lZWQgdG8gY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBhbmQgZW5zdXJlIHRoaXMgYmVoYXZpb3IgaXMgaW50ZW50aW9uYWwuIFVuZGVyc3RhbmRpbmcgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGVzZSBzeW1ib2xzIGlzIGtleSB0byBjb250cm9sbGluZyBteSBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2VsZWN0IFBIWUxJTksmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdD03ND10aGlzIGRvY3VtZW50YXRpb24uXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdC05MS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q6OTI6XHRzZWxlY3QgUEhZTElOS1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdC05My1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvS2NvbmZpZz0yPWNvbmZpZyBBTFRFUkFfVFNFXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWctNi1cdHNlbGVjdCBQSFlMSUJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9LY29uZmlnOjc6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWctOC1cdHNlbGVjdCBQQ1NfTFlOWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvS2NvbmZpZz0yMD1jb25maWcgQUc3MVhYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9LY29uZmlnLTIyLVx0ZGVwZW5kcyBvbiBBVEg3OSB8fCBDT01QSUxFX1RFU1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvS2NvbmZpZzoyMzpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL0tjb25maWctMjQtXHRpbXBseSBORVRfU0VMRlRFU1RTXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnPTIyPWNvbmZpZyBNQUNCXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTI1LVx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnOjI2Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZy0yNy1cdHNlbGVjdCBDUkMzMlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnPTgwPWNvbmZpZyBVQ0NfR0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnLTgzLVx0c2VsZWN0IEZTTF9QUV9NRElPXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZzo4NDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZy04NS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9LY29uZmlnPTI9bWVudWNvbmZpZyBGU0xfRFBBQV9FVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIEZTTF9EUEFBIFx1MDAyNlx1MDAyNiBGU0xfRk1BTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvS2NvbmZpZzo1Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWctNi1cdHNlbGVjdCBQQ1NfTFlOWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnPTI9Y29uZmlnIEZTTF9EUEFBMl9FVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBGU0xfTUNfQlVTIFx1MDAyNlx1MDAyNiBGU0xfTUNfRFBJT1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWc6NTpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZy02LVx0c2VsZWN0IFBDU19MWU5YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWc9MzM9Y29uZmlnIEZTTF9EUEFBMl9TV0lUQ0hcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZy0zNy1cdGRlcGVuZHMgb24gRlNMX01DX0JVUyBcdTAwMjZcdTAwMjYgRlNMX01DX0RQSU9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnOjM4Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnLTM5LVx0c2VsZWN0IFBDU19MWU5YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc9MzA9Y29uZmlnIEZTTF9FTkVUQ1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTM3LVx0c2VsZWN0IE5YUF9FTkVUQ19QRl9DT01NT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnOjM4Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTM5LVx0c2VsZWN0IFBDU19MWU5YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc9NDg9Y29uZmlnIE5YUF9FTkVUQzRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZy01NS1cdHNlbGVjdCBOWFBfTlRNUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc6NTY6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWctNTctXHRzZWxlY3QgRElNTElCXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc9NjY9Y29uZmlnIEZTTF9FTkVUQ19WRlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTcxLVx0c2VsZWN0IEZTTF9FTkVUQ19NRElPXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZzo3MjpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZy03My1cdHNlbGVjdCBESU1MSUJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9LY29uZmlnPTI9Y29uZmlnIEZTTF9GTUFOXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZy01LVx0c2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9LY29uZmlnOjY6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZy03LVx0c2VsZWN0IFBDU19MWU5YXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvS2NvbmZpZz0yPWNvbmZpZyBGU19FTkVUXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvS2NvbmZpZy01LVx0c2VsZWN0IE1JSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvS2NvbmZpZzo2Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L0tjb25maWctNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWc9NTk9Y29uZmlnIE1WTkVUQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvS2NvbmZpZy02Mi1cdHNlbGVjdCBNVk1ESU9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvS2NvbmZpZzo2MzpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWctNjQtXHRzZWxlY3QgUEFHRV9QT09MXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9LY29uZmlnPTg2PWNvbmZpZyBNVlBQMlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvS2NvbmZpZy04OS1cdHNlbGVjdCBNVk1ESU9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvS2NvbmZpZzo5MDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWctOTEtXHRzZWxlY3QgUEFHRV9QT09MXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnPTY9Y29uZmlnIFBSRVNURVJBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTEwLVx0c2VsZWN0IE5FVF9ERVZMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWc6MTE6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTEyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWc9MTQ9Y29uZmlnIE5FVF9NRURJQVRFS19TT0Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnLTE3LVx0c2VsZWN0IFBJTkNUUkxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWc6MTg6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvS2NvbmZpZy0xOS1cdHNlbGVjdCBESU1MSUJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWc9MjA9Y29uZmlnIEZCTklDXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTI5LVx0c2VsZWN0IFBDU19YUENTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWc6MzA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTMxLVx0c2VsZWN0IFBMRE1GV1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnPTQ1PWNvbmZpZyBMQU43NDNYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL0tjb25maWctNTEtXHRzZWxlY3QgQ1JDMzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnOjUyOlx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnLTUzLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWc9MT1jb25maWcgTEFOOTY2WF9TV0lUQ0hcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9LY29uZmlnLTctXHRkZXBlbmRzIG9uIEJSSURHRSB8fCBCUklER0U9blxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvS2NvbmZpZzo4Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWctOS1cdHNlbGVjdCBQQUdFX1BPT0xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWc9MT1jb25maWcgU1BBUlg1X1NXSVRDSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy04LVx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZzo5Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy0xMC1cdHNlbGVjdCBQSFlfU1BBUlg1X1NFUkRFU1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2MvS2NvbmZpZz0xNT1jb25maWcgTVNDQ19PQ0VMT1RfU1dJVENIX0xJQlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2MvS2NvbmZpZy0xOS1cdHNlbGVjdCBQQUNLSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL0tjb25maWc6MjA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL0tjb25maWc9NDI9Y29uZmlnIFJFTkVTQVNfRVRIRVJfU1dJVENIXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9LY29uZmlnLTQ3LVx0c2VsZWN0IE1JSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVuZXNhcy9LY29uZmlnOjQ4Olx0c2VsZWN0IFBIWUxJTktcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvS2NvbmZpZy00OS1cdHNlbGVjdCBSRU5FU0FTX0dFTjRfUFRQXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05LVx0c2VsZWN0IFBBR0VfUE9PTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExLVx0c2VsZWN0IENSQzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL0tjb25maWc9MjY9Y29uZmlnIFRFSFVUSV9UTjQwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL0tjb25maWctMzAtXHRzZWxlY3QgRldfTE9BREVSXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvS2NvbmZpZzozMTpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvS2NvbmZpZy0zMi1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9LY29uZmlnPTk2PWNvbmZpZyBUSV9LM19BTTY1X0NQU1dfTlVTU1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL0tjb25maWctMTAwLVx0c2VsZWN0IFRJX0RBVklOQ0lfTURJT1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvS2NvbmZpZzoxMDE6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvS2NvbmZpZy0xMDItXHRzZWxlY3QgUEFHRV9QT09MXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnPTE5PWNvbmZpZyBMSUJXWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZy0yMy1cdHNlbGVjdCBESU1MSUJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vS2NvbmZpZzoyNDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWctMjUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L0tjb25maWc9MjY9Y29uZmlnIFhJTElOWF9BWElfRU1BQ1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC9LY29uZmlnLTI5LVx0ZGVwZW5kcyBvbiBYSUxJTlhfRE1BXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngvS2NvbmZpZzozMDpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngvS2NvbmZpZy0zMS1cdHNlbGVjdCBESU1MSUJcbi0tXG5kcml2ZXJzL25ldC9wY3MvS2NvbmZpZz04PWNvbmZpZyBQQ1NfWFBDU1xuZHJpdmVycy9uZXQvcGNzL0tjb25maWctOS1cdHRyaXN0YXRlIFwmIzM0O1N5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgWFBDU1wmIzM0O1xuZHJpdmVycy9uZXQvcGNzL0tjb25maWc6MTA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvcGNzL0tjb25maWctMTEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc9MTEzPWNvbmZpZyBVU0JfTEFONzhYWFxuLS1cbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTExNS1cdHNlbGVjdCBNSUlcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnOjExNjpcdHNlbGVjdCBQSFlMSU5LXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZy0xMTctXHRzZWxlY3QgTUlDUk9DSElQX1BIWVxuLS1cbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTE2Nj1jb25maWcgVVNCX05FVF9BWDg4MTdYXG4tLVxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctMTY5LVx0c2VsZWN0IENSQzMyXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZzoxNzA6XHRzZWxlY3QgUEhZTElOS1xuZHJpdmVycy9uZXQvdXNiL0tjb25maWctMTcxLVx0c2VsZWN0IEFYODg3OTZCX1BIWVxuLS1cbm5ldC9kc2EvS2NvbmZpZz0zPW1lbnVjb25maWcgTkVUX0RTQVxuLS1cbm5ldC9kc2EvS2NvbmZpZy05LVx0c2VsZWN0IE5FVF9TV0lUQ0hERVZcbm5ldC9kc2EvS2NvbmZpZzoxMDpcdHNlbGVjdCBQSFlMSU5LXG5uZXQvZHNhL0tjb25maWctMTEtXHRzZWxlY3QgTkVUX0RFVkxJTktcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMDM6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU2MTUKCQkJCQkJCW91dHB1dDogMjY3CgkJCQkJCQl0aG91Z2h0czogNjI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IFJlYXNvbmluZyBmb3IgRnV6emluZyB0aGlzIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gZGlnZ2luZyBpbnRvIHRoaXMgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBwcm9jZXNzIGlzIHRoaXM6IGBTVE1NQUNfRVRIYCBkZWZpbml0ZWx5IHVzZXMgYFBIWUxJTktgLiAgQW5kLCBpdCBsb29rcyBsaWtlIGBVU0JfTEFONzhYWGAgYW5kIGBVU0JfTkVUX0FYODgxN1hgIGFsc28gZGVwZW5kIG9uIGBQSFlMSU5LYC4gR3JlYXQuICBUaG9zZSB0aHJlZSBsb29rIGxpa2UgZ29vZCBpbml0aWFsIGNvbmZpZ3VyYXRpb25zIHRvIGVuYWJsZSBmb3IgdGVzdGluZy4KCkkgbmVlZCB0byBjb25maXJtIHdoYXQgdGhvc2UgY29uZmlndXJhdGlvbnMgYWN0dWFsbHkgKmFyZSosIHNvIGEgcXVpY2sgY2hlY2suLi4gWWVwLCBgVVNCX05FVF9BWDg4MTdYYCBpcyBmb3IgdGhlIEFTSVggQVg4OHh4eCBVU0IgRXRoZXJuZXQgYWRhcHRlcnMsIGFuZCBgVVNCX0xBTjc4WFhgIGlzIGZvciB0aGUgTWljcm9jaGlwIExBTjc4WFggVVNCIEV0aGVybmV0IGFkYXB0ZXJzLiBQZXJmZWN0LiBUaGVzZSBhcmUgVVNCIGRldmljZXMsIGFuZCB0aGF0IG1lYW5zIEkgY2FuIGxldmVyYWdlIFN5emthbGxlciYjMzk7cyBVU0IgZnV6emVyIHJlYWxseSBlZmZlY3RpdmVseS4gIExldCYjMzk7cyBhZGQgdGhlc2UgdG8gdGhlIGBFbmFibGVDb25maWdzYC4KCk5vdywgbGV0JiMzOTtzIHZlcmlmeSBteSBGb2N1c1N5bWJvbHMuIEkmIzM5O3ZlIGdvdCBgc3RtbWFjX29wZW5gLCBgcGh5bGlua19jb25uZWN0X3BoeWAsIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCwgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgYW5kIGBwaHlsaW5rX2V4cGVjdHNfcGh5YC4KCkEgcXVpY2sgY2hlY2sgY29uZmlybXMgYHBoeWxpbmtfZXhwZWN0c19waHlgIGlzIGV4cG9ydGVkIGFuZCBjYWxsZWQgYnkgZHJpdmVycy4gU2FtZSBmb3IgYHBoeWxpbmtfY29ubmVjdF9waHlgLCBgcGh5bGlua19vZl9waHlfY29ubmVjdGAsIGFuZCBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgLiBBbmQgYHN0bW1hY19vcGVuYCBpcyBhIG5ldF9kZXZpY2Vfb3BzIGNhbGxiYWNrLCBzbyB0aGF0IGFsc28gbG9va3MgcmlnaHQuCgpMZXQmIzM5O3MgcXVpY2tseSBjaGVjazogYHN0bW1hY19vcGVuYCBjYWxscyBgc3RtbWFjX2luaXRfcGh5YCwgd2hpY2ggaXMgd2hlcmUgdGhlIG1vZGlmaWVkIGNvZGUgaXMuIE9rYXksIGV2ZXJ5dGhpbmcgY2hlY2tzIG91dC4KCk5vdywgbGV0JiMzOTtzIHJldmlldyB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGlzIHNlbGVjdGlvbi4gVGhpcyBwYXRjaCBzZWVtcyB0byBiZSBtb2RpZnlpbmcgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAuIEl0JiMzOTtzIHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBpbnRyb2R1Y2VzIGEgc3BlY2lmaWMgY2hlY2sgd2l0aGluIGBzdG1tYWNfaW5pdF9waHlgLiBUaGlzIG1lYW5zIGl0IGhhcyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcGh5bGluayBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIEFuZCBpbXBvcnRhbnRseSwgdGhpcyBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHRocm91Z2ggc2V2ZXJhbCBlbXVsYXRlZCBkZXZpY2VzLCBpbmNsdWRpbmcgdGhvc2UgVVNCIEV0aGVybmV0IGFkYXB0ZXJzIEkganVzdCBjb25maXJtZWQsICphbmQqIGFsc28gcGxhdGZvcm0gZGV2aWNlcyBsaWtlIHRoZSBEZXNpZ25XYXJlIE1BQyAodGhhdCB1c2VzIGBzdG1tYWNgKS4gQmVjYXVzZSB0aGUgY2hhbmdlcyBhcmUgaW4gdGhlc2UgY29yZSBsb2NhdGlvbnMsIGFuZCBhcmUgcmVhY2hhYmxlIGluIGEgZmV3IGRpZmZlcmVudCB3YXlzLCB0aGUgcGF0Y2ggaXMgYWJzb2x1dGVseSB3b3J0aCBmdXp6aW5nLgoKTXkgY2hvc2VuIGNvbmZpZ3MgYXJlOgpgU1RNTUFDX0VUSGAKYFVTQl9MQU43OFhYYApgVVNCX05FVF9BWDg4MTdYYAoKTXkgZm9jdXNlZCBzeW1ib2xzIGFyZToKYHN0bW1hY19vcGVuYApgcGh5bGlua19jb25uZWN0X3BoeWAKYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgCmBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAKYHBoeWxpbmtfZXhwZWN0c19waHlgCgpPa2F5LCB0aGF0JiMzOTtzIGV2ZXJ5dGhpbmcuIExldCYjMzk7cyBzZXQgdGhlIHJlc3VsdHMgYW5kIGdldCB0aGlzIGZ1enppbmcgcnVuIGdvaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAwMzo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtVU0JfTEFONzhYWCYjMzQ7LAogICAgJiMzNDtVU0JfTkVUX0FYODgxN1gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtwaHlsaW5rX2Nvbm5lY3RfcGh5JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19leHBlY3RzX3BoeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYnkgcmVtb3ZpbmcgdGhlIGBNTE9fQU5fSU5CQU5EYCBhbmQgYHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzemAgY2hlY2tzLiBJdCBhbHNvIGFkZHMgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCB0byByZXR1cm4gZWFybHkgaWYgYSBjdXN0b20gUENTIGlzIGluIHVzZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgcGh5bGluayBjb3JlIGFuZCB0aGUgc3RtbWFjIGRyaXZlci4gVGhlIHBoeWxpbmsgY29yZSBpcyByZWFjaGFibGUgdmlhIHZhcmlvdXMgZW11bGF0ZWQgZGV2aWNlcywgaW5jbHVkaW5nIFVTQiBldGhlcm5ldCBhZGFwdGVycyAoZS5nLiwgTEFONzhYWCwgQVg4ODE3WCkgYW5kIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIERlc2lnbldhcmUgTUFDIC8gc3RtbWFjKS4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtVU0JfTEFONzhYWCYjMzQ7LAogICAgJiMzNDtVU0JfTkVUX0FYODgxN1gmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtwaHlsaW5rX2Nvbm5lY3RfcGh5JiMzNDssCiAgICAmIzM0O3BoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7cGh5bGlua19leHBlY3RzX3BoeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYnkgcmVtb3ZpbmcgdGhlIGBNTE9fQU5fSU5CQU5EYCBhbmQgYHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzemAgY2hlY2tzLiBJdCBhbHNvIGFkZHMgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCB0byByZXR1cm4gZWFybHkgaWYgYSBjdXN0b20gUENTIGlzIGluIHVzZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgcGh5bGluayBjb3JlIGFuZCB0aGUgc3RtbWFjIGRyaXZlci4gVGhlIHBoeWxpbmsgY29yZSBpcyByZWFjaGFibGUgdmlhIHZhcmlvdXMgZW11bGF0ZWQgZGV2aWNlcywgaW5jbHVkaW5nIFVTQiBldGhlcm5ldCBhZGFwdGVycyAoZS5nLiwgTEFONzhYWCwgQVg4ODE3WCkgYW5kIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIERlc2lnbldhcmUgTUFDIC8gc3RtbWFjKS4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjM4LjM5MjAxNjMwMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMjE2NzY2NjM1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJVU0JfTEFONzhYWFwiLFxuICAgIFwiVVNCX05FVF9BWDg4MTdYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInBoeWxpbmtfY29ubmVjdF9waHlcIixcbiAgICBcInBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RcIixcbiAgICBcInBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0XCIsXG4gICAgXCJwaHlsaW5rX2V4cGVjdHNfcGh5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGJ5IHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIGVhcmx5IGlmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHBoeWxpbmsgY29yZSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIFRoZSBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHZpYSB2YXJpb3VzIGVtdWxhdGVkIGRldmljZXMsIGluY2x1ZGluZyBVU0IgZXRoZXJuZXQgYWRhcHRlcnMgKGUuZy4sIExBTjc4WFgsIEFYODgxN1gpIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBEZXNpZ25XYXJlIE1BQyAvIHN0bW1hYykuIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjM4LjM5MjAyMjM1MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzUwODM2ODMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgM2ZhNDNiZWJiMDFhYTQxYzEwNWY1ZjdjNWUzZDAxYThmZjI4YzBlNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCAyNyAwMzozOTozNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbmluZGV4IDBkZTRiYzk0OTkxMzg2Li4yYjJkMjZhMjk2MTI4NCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbkBAIC0xMzI4LDYgKzEzMjgsMTAgQEAgc3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gXFx0XFx0aW50IGFkZHIgPSBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VwaHlfYWRkcjtcXG4gXFx0XFx0c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldjtcXG4gXFxuK1xcdFxcdC8qIElmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UsIG5vIFBIWSBpcyBuZWVkZWQgKi9cXG4rXFx0XFx0aWYgKHByaXYtXFx1MDAzZWh3LVxcdTAwM2VwaHlsaW5rX3BjcylcXG4rXFx0XFx0XFx0cmV0dXJuIDA7XFxuK1xcbiBcXHRcXHRpZiAoYWRkciBcXHUwMDNjIDApIHtcXG4gXFx0XFx0XFx0bmV0ZGV2X2Vycihwcml2LVxcdTAwM2VkZXYsIFxcXCJubyBwaHkgZm91bmRcXFxcblxcXCIpO1xcbiBcXHRcXHRcXHRyZXR1cm4gLUVOT0RFVjtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcXG5pbmRleCA1OWRmZTM1YWZhNTRmYy4uZmQ0ZTgwZWVlZGE3M2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmNcXG5AQCAtMTk2NCw5ICsxOTY0LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19kZXN0cm95KTtcXG4gICovXFxuIGJvb2wgcGh5bGlua19leHBlY3RzX3BoeShzdHJ1Y3QgcGh5bGluayAqcGwpXFxuIHtcXG4tXFx0aWYgKHBsLVxcdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fFxcbi1cXHQgICAgKHBsLVxcdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9JTkJBTkQgXFx1MDAyNlxcdTAwMjZcXG4tXFx0ICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3oocGwtXFx1MDAzZWxpbmtfaW50ZXJmYWNlKSkpXFxuK1xcdGlmIChwbC1cXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQpXFxuIFxcdFxcdHJldHVybiBmYWxzZTtcXG4gXFx0cmV0dXJuIHRydWU7XFxuIH1cXG5AQCAtMjIwNSw5ICsyMjAzLDcgQEAgc3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxcbiB7XFxuIFxcdHUzMiBmbGFncyA9IDA7XFxuIFxcbi1cXHRpZiAoV0FSTl9PTihwbC1cXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQgfHxcXG4tXFx0XFx0ICAgIChwbC1cXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fSU5CQU5EIFxcdTAwMjZcXHUwMDI2XFxuLVxcdFxcdCAgICAgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6KGludGVyZmFjZSkgXFx1MDAyNlxcdTAwMjYgIXBsLVxcdTAwM2VzZnBfYnVzKSkpXFxuK1xcdGlmIChXQVJOX09OKHBsLVxcdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCkpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4gXFx0aWYgKHBsLVxcdTAwM2VwaHlkZXYpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjM5LjE0MzczNDYzNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjExMTQxNTk0MDE3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJVU0JfTEFONzhYWFwiLFxuICAgIFwiVVNCX05FVF9BWDg4MTdYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInBoeWxpbmtfY29ubmVjdF9waHlcIixcbiAgICBcInBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RcIixcbiAgICBcInBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0XCIsXG4gICAgXCJwaHlsaW5rX2V4cGVjdHNfcGh5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGJ5IHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIGVhcmx5IGlmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHBoeWxpbmsgY29yZSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIFRoZSBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHZpYSB2YXJpb3VzIGVtdWxhdGVkIGRldmljZXMsIGluY2x1ZGluZyBVU0IgZXRoZXJuZXQgYWRhcHRlcnMgKGUuZy4sIExBTjc4WFgsIEFYODgxN1gpIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBEZXNpZ25XYXJlIE1BQyAvIHN0bW1hYykuIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDNmYTQzYmViYjAxYWE0MWMxMDVmNWY3YzVlM2QwMWE4ZmYyOGMwZTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyNyAwMzozOTozNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCAwZGU0YmM5NDk5MTM4Ni4uMmIyZDI2YTI5NjEyODQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtMTMyOCw2ICsxMzI4LDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4gXHRcdGludCBhZGRyID0gcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXBoeV9hZGRyO1xuIFx0XHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2O1xuIFxuK1x0XHQvKiBJZiBhIGN1c3RvbSBQQ1MgaXMgaW4gdXNlLCBubyBQSFkgaXMgbmVlZGVkICovXG4rXHRcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZXBoeWxpbmtfcGNzKVxuK1x0XHRcdHJldHVybiAwO1xuK1xuIFx0XHRpZiAoYWRkciBcdTAwM2MgMCkge1xuIFx0XHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwibm8gcGh5IGZvdW5kXFxuXCIpO1xuIFx0XHRcdHJldHVybiAtRU5PREVWO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5pbmRleCA1OWRmZTM1YWZhNTRmYy4uZmQ0ZTgwZWVlZGE3M2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG4rKysgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jXG5AQCAtMTk2NCw5ICsxOTY0LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19kZXN0cm95KTtcbiAgKi9cbiBib29sIHBoeWxpbmtfZXhwZWN0c19waHkoc3RydWN0IHBoeWxpbmsgKnBsKVxuIHtcbi1cdGlmIChwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fFxuLVx0ICAgIChwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9JTkJBTkQgXHUwMDI2XHUwMDI2XG4tXHQgICAgIHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzeihwbC1cdTAwM2VsaW5rX2ludGVyZmFjZSkpKVxuK1x0aWYgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEKVxuIFx0XHRyZXR1cm4gZmFsc2U7XG4gXHRyZXR1cm4gdHJ1ZTtcbiB9XG5AQCAtMjIwNSw5ICsyMjAzLDcgQEAgc3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxuIHtcbiBcdHUzMiBmbGFncyA9IDA7XG4gXG4tXHRpZiAoV0FSTl9PTihwbC1cdTAwM2VjZmdfbGlua19hbl9tb2RlID09IE1MT19BTl9GSVhFRCB8fFxuLVx0XHQgICAgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCBcdTAwMjZcdTAwMjZcbi1cdFx0ICAgICBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3ooaW50ZXJmYWNlKSBcdTAwMjZcdTAwMjYgIXBsLVx1MDAzZXNmcF9idXMpKSlcbitcdGlmIChXQVJOX09OKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEKSlcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4gXHRpZiAocGwtXHUwMDNlcGh5ZGV2KVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6Mzk6MzkuMTQzNzQxNDc0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA2NjM0MzQ5NDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgUGF0Y2g6IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQncyB0d2Vha2luZyBgc3RtbWFjX21haW4uY2AgYW5kIGBwaHlsaW5rLmNgLiBUaGUgY2hhbmdlcyBhcmUgYWJvdXQgcmVtb3Zpbmcgc29tZSBjb25kaXRpb25zIHJlbGF0ZWQgdG8gYE1MT19BTl9JTkJBTkRgIGFuZCBgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6YCBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgLCBhbmQgYWRkaW5nIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgaWYgYHByaXYtXHUwMDNlaHctXHUwMDNlcGh5bGlua19wY3NgIGlzIHNldC4gTXkgZ3V0IGZlZWxpbmcgaXMgdG8gZXZhbHVhdGUgdGhpcyBmb3IgZnV6emluZyBwb3RlbnRpYWwuXG5cbkZpcnN0LCBsZXQncyBicmVhayBpdCBkb3duLiBgc3RtbWFjYCBpcyBhIHBoeXNpY2FsIEV0aGVybmV0IE1BQyBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciBTVE1pY3JvZWxlY3Ryb25pY3MgaGFyZHdhcmUg4oCTIHlvdXIgY2xhc3NpYyAxMC8xMDAvMTAwMCBzdHVmZi4gYHBoeWxpbmtgIGlzIHRoZSBsYXllciB0aGF0IG1hbmFnZXMgdGhlIFBIWSBsaW5rcy4gU28sIGNhbiBJIHRhcmdldCBgcGh5bGlua19leHBlY3RzX3BoeWAsIGBwaHlsaW5rX2F0dGFjaF9waHlgLCBvciBgc3RtbWFjX2luaXRfcGh5YCBmb3IgZnV6emluZz8gYHBoeWxpbmtfZXhwZWN0c19waHlgIGlzIGV4cG9ydGVkLCBtZWFuaW5nIG90aGVyIGRyaXZlcnMgdXNlIGl0IGRpcmVjdGx5LCBzbyB0aGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBgcGh5bGlua19hdHRhY2hfcGh5YCBpcyBzdGF0aWMsIHdoaWNoIG1lYW5zIGl0J3MgY2FsbGVkIGludGVybmFsbHkgYnkgYHBoeWxpbmtfY29ubmVjdF9waHlgIGFuZCBgcGh5bGlua19vZl9waHlfY29ubmVjdGAuIEFzIGZvciBgc3RtbWFjX2luaXRfcGh5YCwgaXQgZ2V0cyBjYWxsZWQgZHVyaW5nIGVpdGhlciBgc3RtbWFjX29wZW5gIG9yIHByb2JlLCBzbyB0aGF0J3MgYWxzbyBwb3RlbnRpYWxseSBhY2Nlc3NpYmxlLlxuXG5CdXQgaGVyZSdzIHRoZSBraWNrZXI6IENhbiBJICpyZWFjaCogdGhpcyBpbiBRRU1VPyBgc3RtbWFjYCBpcyBhICpwaHlzaWNhbCogZXRoZXJuZXQgZHJpdmVyLiBRRU1VIGRvZXNuJ3QgZW11bGF0ZSB0aGF0IHNwZWNpZmljIFNUTWljcm9lbGVjdHJvbmljcyBNQUMgYnkgZGVmYXVsdCwgZG9lcyBpdD8gV2FpdCwgbGV0IG1lIGNoZWNrIHRoZSBRRU1VIG5ldHdvcmtpbmcgYmFja2VuZHMuIFRoZXJlIGFyZSBhIHRvbiBvZiBkcml2ZXJzIGF2YWlsYWJsZSwgaW5jbHVkaW5nIGBpbXhfZmVjYCwgYGNhZGVuY2VfZ2VtYCwgYGUxMDAwYCwgYGUxMDAwZWAsIGBpZ2JgLCBgcnRsODEzOWAsIGBwY25ldGAsIGFuZCB0aGUgcmVzdC4gSXMgYHN0bW1hY2AgZXZlbiAqZW11bGF0ZWQqPyBXYWl0LCB0aGVyZSdzIGBody9uZXQveGdtYWMuY2AuLi4gYnV0IHRoYXQncyBwcm9iYWJseSBmb3IgQ2FseGVkYSdzIFhHTUFDLCBub3QgdGhlIFNUTWljcm8uIFNvLCBubyBkaXJlY3QgYHN0bW1hY2AgZW11bGF0aW9uLlxuXG5Pa2F5LCBsZXQncyBiYWNrIHVwLiBJcyBgc3RtbWFjYCBhIFBDSSBkZXZpY2U/IEFoLCB5ZXMhIFRoZXJlJ3MgYHN0bW1hY19wY2kuY2AuIEJ1dCBkb2VzIFFFTVUgZW11bGF0ZSB0aGF0PyBMZXQgbWUgY2hlY2vigKYgbm9wZSwgUUVNVSBkb2Vzbid0IGVtdWxhdGUgYHN0bW1hY2AgUENJIGRldmljZXMuXG5cbk9rYXksIGxldCdzIHNoaWZ0IGZvY3VzLiBFdmVuIGlmIEkgY2FuJ3QgZGlyZWN0bHkgaGl0IGBzdG1tYWNgLCBgcGh5bGlua2AgaXMgdGhlIGtleS4gU2luY2UgYHBoeWxpbmtgIGlzIHVzZWQgYnkgbWFueSBkcml2ZXJzLCBjb3VsZCBJIHJlYWNoIHRob3NlIGZ1bmN0aW9ucyB0aHJvdWdoIG9uZSBvZiB0aGUgUUVNVS1lbXVsYXRlZCBuZXR3b3JraW5nIGRldmljZXM/ICBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGxpdmUgd2l0aGluIGBwaHlsaW5rLmNgLCBzbyBhcmUgdGhleSByZWFjaGFibGUgdGhyb3VnaCBhbnkgb2YgdGhlIGRldmljZXMgUUVNVSBwcm92aWRlcz8gSSBuZWVkIHRvIHNlYXJjaCBmb3IgdXNhZ2VzIG9mIGBwaHlsaW5rX2V4cGVjdHNfcGh5YC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU0MCwiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjgwNSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjQ5LjgwNzE3ODMxNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTU5ODUxOTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBoeWxpbmtfZXhwZWN0c19waHlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0xMjk4PXN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzMDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxMzA4OlxcdGlmICghcGh5bGlua19leHBlY3RzX3BoeShwcml2LVxcdTAwM2VwaHlsaW5rKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzMDktXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTE5NTQ9RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19kZXN0cm95KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk1Ni0vKipcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjE5NTc6ICogcGh5bGlua19leHBlY3RzX3BoeSgpIC0gRGV0ZXJtaW5lIGlmIHBoeWxpbmsgZXhwZWN0cyBhIHBoeSB0byBiZSBhdHRhY2hlZFxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk1OC0gKiBAcGw6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5bGluayByZXR1cm5lZCBmcm9tIHBoeWxpbmtfY3JlYXRlKClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMTk2NC0gKi9cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjE5NjU6Ym9vbCBwaHlsaW5rX2V4cGVjdHNfcGh5KHN0cnVjdCBwaHlsaW5rICpwbClcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTE5NjYte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTcwLX1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjE5NzE6RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19leHBlY3RzX3BoeSk7XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0xOTcyLVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMjg1PWludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyOTItXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjkzOlxcdGlmICghcGh5bGlua19leHBlY3RzX3BoeShwbCkpXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjk0LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzI2PXZvaWQgcGh5bGlua19kZXN0cm95KHN0cnVjdCBwaHlsaW5rICopO1xcbmluY2x1ZGUvbGludXgvcGh5bGluay5oOjcyNzpib29sIHBoeWxpbmtfZXhwZWN0c19waHkoc3RydWN0IHBoeWxpbmsgKnBsKTtcXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaC03MjgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjM5OjUzLjc2NzAzNTc3NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMjQxOTExNzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBQSFkgRHJpdmVyIENvbm5lY3Rpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgaG93IHRoZXNlIFBIWSBkcml2ZXJzIGFyZSBjb25uZWN0ZWQsIGFuZCBpdCBzZWVtcyBsaWtlIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBzaG93cyB1cCBpbiBgc3RtbWFjX2luaXRfcGh5YCBhbmQgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YC4gTm93LCB0aGF0IHNlY29uZCBmdW5jdGlvbiwgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgaXMgdXNlZCBieSBhICpsb3QqIG9mIGRpZmZlcmVudCBkcml2ZXJzLCB3aGljaCBtYWtlcyBpdCBwYXJ0aWN1bGFybHkgaW50ZXJlc3RpbmcuIEdpdmVuIHRoYXQgYnJvYWRlciB1c2FnZSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZXNlIGZ1bmN0aW9ucywgYW5kIHRoZXJlZm9yZSBpdCdzIGtleSB0byBhc2NlcnRhaW4gaWYgYHBoeWxpbmtfYXR0YWNoX3BoeWAgaXMgYmVpbmcgY2FsbGVkIHNvbWV3aGVyZS4gSXQncyB0aW1lIHRvIHRyYWNlIHRoZSBwb3RlbnRpYWwgY29ubmVjdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NDMsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzozOTo1Ni43OTEyMjk1MzRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIwOTk5NTg1OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwaHlsaW5rX2F0dGFjaF9waHlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMDg0PXN0YXRpYyBpbnQgcGh5bGlua19icmluZ3VwX3BoeShzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMDAtXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjAxOnN0YXRpYyBpbnQgcGh5bGlua19hdHRhY2hfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSxcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyMDItXFx0XFx0XFx0ICAgICAgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9MjIzMz1pbnQgcGh5bGlua19jb25uZWN0X3BoeShzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNDItXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjQzOlxcdHJldCA9IHBoeWxpbmtfYXR0YWNoX3BoeShwbCwgcGh5LCBwbC1cXHUwMDNlbGlua19pbnRlcmZhY2UpO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI0NC1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM9MzY5OD1zdGF0aWMgaW50IHBoeWxpbmtfc2ZwX2NvbmZpZ19waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0zNzMwLVxcdCAqL1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MzczMTpcXHRyZXQgPSBwaHlsaW5rX2F0dGFjaF9waHkocGwsIHBoeSwgY29uZmlnLmludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0zNzMyLVxcdGlmIChyZXQgXFx1MDAzYyAwKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzozOTo1OS4wMDEyMzI5MDJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTk0MjA3Njk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOlxuXG4qKkludmVzdGlnYXRpbmcgYHBoeWxpbmtfY29ubmVjdF9waHlgIFVzYWdlKipcblxuUmlnaHQsIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCBpcyBleHBvcnRlZCwgbWVhbmluZyBpdCdzIGludGVuZGVkIGZvciB1c2UgYnkgZGV2aWNlIGRyaXZlcnMuIEFuZCwgaXQncyBjb25uZWN0ZWQgdG8gYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCBzbyB0aGF0IHRoZSBmdW5jdGlvbmFsaXR5IGlzIGNvbnNpc3RlbnQuIE5vdywgbGV0J3MgZ2V0IGRvd24gdG8gdGhlIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJhY3RpY2FsIGltcGFjdCBvZiB0aGlzLCB0aGUgZGVzaWduIGNob2ljZXMuIFRoZXJlZm9yZSwgSSBuZWVkIHRvIGNoZWNrIHByZWNpc2VseSAqd2hpY2gqIGRyaXZlcnMgYXJlIGFjdHVhbGx5IGxldmVyYWdpbmcgdGhlc2UgcGh5bGluayBmdW5jdGlvbnMuIEkgd2FudCB0byBzZWUgaWYgdGhpcyBpcyB3aWRlbHkgYWRvcHRlZCwgb3IgbW9yZSBuaWNoZS4gQXJlIHdlIGxvb2tpbmcgYXQgYSBjb21tb24gcGF0dGVybiwgb3Igc29tZXRoaW5nIHNwZWNpZmljPyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBwb3RlbnRpYWwgcmVmYWN0b3JpbmcsIGJ1ZyBmaXhpbmcsIG9yIGV2ZW4gYXJjaGl0ZWN0dXJhbCBjaGFuZ2VzIHRvIHRoZSBwaHlsaW5rIHN5c3RlbSBpdHNlbGY/IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgY3JpdGljYWwgYW5kIHdoZXJlIHRoZXkgYXJlIG5vdCB0byBiZSBhYmxlIHRvIG1ha2UgYW55IGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB0aGVpciBtYWludGVuYW5jZSBvciBldm9sdXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyNTgsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDowMi4xOTU0NDMyMjhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwMzY0NjgxNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwaHlsaW5rX2Nvbm5lY3RfcGh5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM9OTgyPXN0YXRpYyBpbnQgbWFjYl9waHlsaW5rX2Nvbm5lY3Qoc3RydWN0IG1hY2IgKmJwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYy05OTktXFx0XFx0LyogYXR0YWNoIHRoZSBtYWMgdG8gdGhlIHBoeSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmM6MTAwMDpcXHRcXHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KGJwLVxcdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMTAwMS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmM9MzIxND1zdGF0aWMgaW50IGxhbjc0M3hfcGh5bGlua19jb25uZWN0KHN0cnVjdCBsYW43NDN4X2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmMtMzIyNy1cXHRcXHRcXHQvKiBhdHRhY2ggdGhlIG1hYyB0byB0aGUgcGh5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jOjMyMjg6XFx0XFx0XFx0cmV0ID0gcGh5bGlua19jb25uZWN0X3BoeShhZGFwdGVyLVxcdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW43NDN4X21haW4uYy0zMjI5LVxcdFxcdH0gZWxzZSBpZiAoKChhZGFwdGVyLVxcdTAwM2Vjc3IuaWRfcmV2IFxcdTAwMjYgSURfUkVWX0lEX01BU0tfKSA9PVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0xMjk4PXN0YXRpYyBpbnQgc3RtbWFjX2luaXRfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzNDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoxMzQ4OlxcdFxcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkocHJpdi1cXHUwMDNlcGh5bGluaywgcGh5ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEzNDktXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RlaHV0aS90bjQwLmM9MTQwNj1zdGF0aWMgaW50IHRuNDBfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL3RuNDAuYy0xNDEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RlaHV0aS90bjQwLmM6MTQxMTpcXHRyZXQgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KHByaXYtXFx1MDAzZXBoeWxpbmssIHByaXYtXFx1MDAzZXBoeWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL3RuNDAuYy0xNDEyLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYz00NjI9c3RhdGljIGludCBuZ2JlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3dhbmd4dW4vbmdiZS9uZ2JlX21haW4uYy00NzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9uZ2JlL25nYmVfbWFpbi5jOjQ3OTpcXHRlcnIgPSBwaHlsaW5rX2Nvbm5lY3RfcGh5KHd4LVxcdTAwM2VwaHlsaW5rLCB3eC1cXHUwMDNlcGh5ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL25nYmUvbmdiZV9tYWluLmMtNDgwLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jPTI2OD1zdGF0aWMgaW50IHR4Z2JlX3BoeWxpbmtfaW5pdChzdHJ1Y3QgdHhnYmUgKnR4Z2JlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYy0yOTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi90eGdiZS90eGdiZV9waHkuYzozMDA6XFx0XFx0cmV0ID0gcGh5bGlua19jb25uZWN0X3BoeShwaHlsaW5rLCB3eC1cXHUwMDNlcGh5ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL3R4Z2JlL3R4Z2JlX3BoeS5jLTMwMS1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyMDE9c3RhdGljIGludCBwaHlsaW5rX2F0dGFjaF9waHkoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjE4LS8qKlxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjIxOTogKiBwaHlsaW5rX2Nvbm5lY3RfcGh5KCkgLSBjb25uZWN0IGEgUEhZIHRvIHRoZSBwaHlsaW5rIGluc3RhbmNlXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjIwLSAqIEBwbDogYSBwb2ludGVyIHRvIGEgXFx1MDAyNnN0cnVjdCBwaHlsaW5rIHJldHVybmVkIGZyb20gcGh5bGlua19jcmVhdGUoKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjMyLSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjIzMzppbnQgcGh5bGlua19jb25uZWN0X3BoeShzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjM0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI1Mi19XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjUzOkVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfY29ubmVjdF9waHkpO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI1NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI2MS0gKiBDb25uZWN0IHRoZSBwaHkgc3BlY2lmaWVkIGluIHRoZSBkZXZpY2Ugbm9kZSBAZG4gdG8gdGhlIHBoeWxpbmsgaW5zdGFuY2VcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNjI6ICogc3BlY2lmaWVkIGJ5IEBwbC4gQWN0aW9ucyBzcGVjaWZpZWQgaW4gcGh5bGlua19jb25uZWN0X3BoeSgpIHdpbGwgYmVcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNjMtICogcGVyZm9ybWVkLlxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jPTcwMz1zdGF0aWMgaW50IGF4ODg3NzJfaW5pdF9waHkoc3RydWN0IHVzYm5ldCAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcxMy1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6NzE0OlxcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkocHJpdi1cXHUwMDNlcGh5bGluaywgcHJpdi1cXHUwMDNlcGh5ZGV2KTtcXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtNzE1LVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9Mjg1OD1zdGF0aWMgaW50IGxhbjc4eHhfcGh5X2luaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI5MDEtXFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYzoyOTAyOlxcdHJldCA9IHBoeWxpbmtfY29ubmVjdF9waHkoZGV2LVxcdTAwM2VwaHlsaW5rLCBwaHlkZXYpO1xcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtMjkwMy1cXHRpZiAocmV0KSB7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaD03Mjc9Ym9vbCBwaHlsaW5rX2V4cGVjdHNfcGh5KHN0cnVjdCBwaHlsaW5rICpwbCk7XFxuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzI4LVxcbmluY2x1ZGUvbGludXgvcGh5bGluay5oOjcyOTppbnQgcGh5bGlua19jb25uZWN0X3BoeShzdHJ1Y3QgcGh5bGluayAqLCBzdHJ1Y3QgcGh5X2RldmljZSAqKTtcXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaC03MzAtaW50IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKiwgc3RydWN0IGRldmljZV9ub2RlICosIHUzMiBmbGFncyk7XFxuLS1cXG5uZXQvZHNhL3VzZXIuYz0yNjM4PXN0YXRpYyBpbnQgZHNhX3VzZXJfcGh5X2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKnVzZXJfZGV2LCBpbnQgYWRkcixcXG4tLVxcbm5ldC9kc2EvdXNlci5jLTI2NTEtXFxubmV0L2RzYS91c2VyLmM6MjY1MjpcXHRyZXR1cm4gcGh5bGlua19jb25uZWN0X3BoeShkcC1cXHUwMDNlcGwsIHVzZXJfZGV2LVxcdTAwM2VwaHlkZXYpO1xcbm5ldC9kc2EvdXNlci5jLTI2NTMtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDowNC4wOTkwOTM4NjRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODg3ODY0MjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVTQiBGdXp6aW5nIGFuZCBgcGh5bGlua19jb25uZWN0X3BoeWAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBuZXR3b3JrIGRyaXZlciBmaWxlcywgc3BlY2lmaWNhbGx5IGBkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmNgIGFuZCBgZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguY2AuIEFuZCB3aGF0IGRvIEkgc2VlPyBUaGV5IGJvdGggdXNlIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YC4gTm93LCB0aGF0J3MgaW50ZXJlc3RpbmcuIFdlIGtub3cgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIGBkdW1teV9oY2RgIG9yIGB1c2ItZ2FkZ2V0YC4gQW5kLCBvZiBjb3Vyc2UsIHN5emthbGxlciBoYXMgYSBwcmV0dHkgcm9idXN0IFVTQiBmdXp6ZXIuIEl0J3MgYSBiaXQgb2YgYSBsZWFwLCBidXQgSSdtIHRoaW5raW5nLi4uIGNvdWxkIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCBiZSByZWFjaGFibGUgdmlhIFVTQiBmdXp6aW5nP1xuXG5UaGF0IHNvdW5kcyBsaWtlIGEgZGVmaW5pdGUgXCJ5ZXMuXCIgTm93IEkganVzdCBuZWVkIHRvIHZlcmlmeSBob3cgdGhlc2UgZnVuY3Rpb25zIGNvbm5lY3QuIFNvIEkgc2hvdWxkIGV4YW1pbmUgYGxhbjc4eHhfcGh5X2luaXRgIGFuZCBgYXg4ODc3Ml9pbml0X3BoeWAgdG8gY29uZmlybSBpZiB0aG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzI4NywiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDowNy45ODY5NjA1MzNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3Nzk1NzUyNjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXg4ODc3Ml9pbml0X3BoeVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9Njk3PXN0YXRpYyB2b2lkIGF4ODg3NzJfbWRpb191bnJlZ2lzdGVyKHN0cnVjdCBhc2l4X2NvbW1vbl9wcml2YXRlICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcwMi1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM6NzAzOnN0YXRpYyBpbnQgYXg4ODc3Ml9pbml0X3BoeShzdHJ1Y3QgdXNibmV0ICpkZXYpXFxuZHJpdmVycy9uZXQvdXNiL2FzaXhfZGV2aWNlcy5jLTcwNC17XFxuLS1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmM9ODI5PXN0YXRpYyBpbnQgYXg4ODc3Ml9iaW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvYXNpeF9kZXZpY2VzLmMtOTI0LVxcbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYzo5MjU6XFx0cmV0ID0gYXg4ODc3Ml9pbml0X3BoeShkZXYpO1xcbmRyaXZlcnMvbmV0L3VzYi9hc2l4X2RldmljZXMuYy05MjYtXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDA6MDkuNzY2NTQyODQxWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1MjI5MDg5NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aGUgZXhwZXJ0OlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIFVTQiBOZXR3b3JrIERldmljZSBEcml2ZXIgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIGEgVVNCIG5ldHdvcmsgZGV2aWNlLCBzcGVjaWZpY2FsbHkgdGhlIGBheDg4NzcyYCB2YXJpYW50LiBUaGUga2VybmVsIGlzIGNhbGxpbmcgYGF4ODg3NzJfYmluZGAsIHdoaWNoIG1ha2VzIHNlbnNlOyB0aGF0J3MgdGhlIHN0YW5kYXJkIGVudHJ5IHBvaW50IGZvciBiaW5kaW5nIHRoZSBkZXZpY2UgdG8gdGhlIGRyaXZlciBhZnRlciB0aGUgVVNCIGVudW1lcmF0aW9uIGFuZCBkZXZpY2UgZGlzY292ZXJ5LiBOb3csIHdoZXJlIGRvZXMgdGhpcyBpbml0aWFsaXphdGlvbiByZWFsbHkgKnN0YXJ0Kj8gVG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBQSFkgaW5pdGlhbGl6YXRpb24sIG15IGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBgbGFuNzh4eF9waHlfaW5pdGAgZnVuY3Rpb24uIFRoYXQncyBsaWtlbHkgd2hlcmUgdGhlIGxvdy1sZXZlbCBwaHlzaWNhbCBsYXllciBpbnRlcmZhY2UgaXMgc2V0IHVwLiBMZXQncyB0cmFjZSBmcm9tIGBsYW43OHh4X3BoeV9pbml0YCBhbmQgc2VlIHdoYXQgdGhhdCBtb2R1bGUgaXMgZG9pbmcgdG8gY29tcGxldGUgZGV2aWNlIGNvbm5lY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc4ODcsIk91dHB1dFRva2VucyI6MjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDoxMy4yODk0NTUzMVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA1NjgzMzg2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJsYW43OHh4X3BoeV9pbml0XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmM9Mjg0OT1zdGF0aWMgdm9pZCBsYW43OHh4X3BoeV91bmluaXQoc3RydWN0IGxhbjc4eHhfbmV0ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI4NTctXFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYzoyODU4OnN0YXRpYyBpbnQgbGFuNzh4eF9waHlfaW5pdChzdHJ1Y3QgbGFuNzh4eF9uZXQgKmRldilcXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jLTI4NTkte1xcbi0tXFxuZHJpdmVycy9uZXQvdXNiL2xhbjc4eHguYz00NjU1PXN0YXRpYyBpbnQgbGFuNzh4eF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtNDc4NS1cXG5kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jOjQ3ODY6XFx0cmV0ID0gbGFuNzh4eF9waHlfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMtNDc4Ny1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDA6MTUuMzQ2Mjk0NTgyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1ODM1MDIxNjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBhbmFseXppbmcgdGhpcyBjb2RlOlxuXG4qKkRpZ2dpbmcgaW50byBQSFkgQ29ubmVjdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gdHJhY2luZyB0aGUgY29ubmVjdGlvbnMgYW5kIGluaXRpYWxpemF0aW9ucyByZWxhdGVkIHRvIFBIWXMuIEkndmUgY29uZmlybWVkIHRoYXQgYHBoeWxpbmtfY29ubmVjdF9waHlgIGlzIGRlZmluaXRlbHkgYWNjZXNzaWJsZSB0aHJvdWdoIGBsYW43OHh4X3Byb2JlYCBhbmQgYGF4ODg3NzJfYmluZGAg4oCTIHRoYXQgbWFrZXMgc2Vuc2UsIHRoZXkncmUgY29tbW9uIFBIWSBkcml2ZXIgZW50cnkgcG9pbnRzLiBOb3csIEknbSB0cnlpbmcgdG8gZ2V0IGEgY29tcGxldGUgcGljdHVyZSBvZiB0aGUgY29ubmVjdGlvbiBwYXRod2F5cy5cblxuTXkgbmV4dCBxdWVzdGlvbiBpcyBhYm91dCBgcGh5bGlua19leHBlY3RzX3BoeWAuIEkgcmVjYWxsIHNlZWluZyB0aGF0IG9uZSBmbG9hdGluZyBhcm91bmQsIGFuZCBub3cgSSdtIHRyeWluZyB0byBtYXAgaXRzIHVzZXMuIEl0IGFwcGVhcnMgaW4gYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgc28gdGhhdOKAmXMgYSBkaXJlY3QgbGluay4gVGhhdCBtZWFucyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGNhbGxzIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aG8gaXMgcmVxdWVzdGluZyB0aGUgUEhZIGJlIGNvbm5lY3RlZCB2aWEgdGhlIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBjYWxsLiBMZXQncyBzZWUgd2hvJ3MgY2FsbGluZyBpdCB0byBjb250aW51ZSB0aGUgYW5hbHlzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgzNzEsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDoxOC45Mjk3OTkwMThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDM4MjMwNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jPTU2MD1pbnQgZHBhYTJfbWFjX2Nvbm5lY3Qoc3RydWN0IGRwYWEyX21hYyAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jLTYzNC1cXHRydG5sX2xvY2soKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvZHBhYTItbWFjLmM6NjM1OlxcdGVyciA9IHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0KG1hYy1cXHUwMDNlcGh5bGluaywgZHBtYWNfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLW1hYy5jLTYzNi1cXHRydG5sX3VubG9jaygpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1tYWMuYy02MzctXFx0aWYgKGVycikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1tYWMuYzo2Mzg6XFx0XFx0bmV0ZGV2X2VycihuZXRfZGV2LCBcXFwicGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QoKSA9ICVkXFxcXG5cXFwiLCBlcnIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1tYWMuYy02MzktXFx0XFx0Z290byBlcnJfcGh5bGlua19kZXN0cm95O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmM9NDc5MT1zdGF0aWMgaW50IG12cHAyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZwcDIvbXZwcDJfbWFpbi5jLTQ4NDAtXFx0aWYgKHBvcnQtXFx1MDAzZXBoeWxpbmspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212cHAyL212cHAyX21haW4uYzo0ODQxOlxcdFxcdGVyciA9IHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0KHBvcnQtXFx1MDAzZXBoeWxpbmssIHBvcnQtXFx1MDAzZWZ3bm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdnBwMi9tdnBwMl9tYWluLmMtNDg0Mi1cXHRcXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuOTY2eC9sYW45NjZ4X21haW4uYz0xNjk9c3RhdGljIGludCBsYW45NjZ4X3BvcnRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjk2NngvbGFuOTY2eF9tYWluLmMtMTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfbWFpbi5jOjE4NjpcXHRlcnIgPSBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChwb3J0LVxcdTAwM2VwaHlsaW5rLCBwb3J0LVxcdTAwM2Vmd25vZGUsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L2xhbjk2NnhfbWFpbi5jLTE4Ny1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTEyOTg9c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTM1MC1cXHRcXHRmd25vZGVfaGFuZGxlX3B1dChwaHlfZndub2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEzNTE6XFx0XFx0cmV0ID0gcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3QocHJpdi1cXHUwMDNlcGh5bGluaywgZndub2RlLCBkZXZfZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTM1Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyNjc9aW50IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuLFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjY5LXtcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyNzA6XFx0cmV0dXJuIHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0KHBsLCBvZl9md25vZGVfaGFuZGxlKGRuKSwgZmxhZ3MpO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3MS19XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYz0yMjcyPUVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjc0LS8qKlxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI3NTogKiBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCgpIC0gY29ubmVjdCB0aGUgUEhZIHNwZWNpZmllZCBpbiB0aGUgZndub2RlLlxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3Ni0gKiBAcGw6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5bGluayByZXR1cm5lZCBmcm9tIHBoeWxpbmtfY3JlYXRlKClcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI4NC0gKi9cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jOjIyODU6aW50IHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICpwbCxcXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyODYtXFx0XFx0XFx0ICAgICAgIGNvbnN0IHN0cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIzMzAtfVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjMzMTpFWFBPUlRfU1lNQk9MX0dQTChwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdCk7XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMzMyLVxcbi0tXFxuaW5jbHVkZS9saW51eC9waHlsaW5rLmg9NzMwPWludCBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHN0cnVjdCBwaHlsaW5rICosIHN0cnVjdCBkZXZpY2Vfbm9kZSAqLCB1MzIgZmxhZ3MpO1xcbmluY2x1ZGUvbGludXgvcGh5bGluay5oOjczMTppbnQgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKnBsLFxcbmluY2x1ZGUvbGludXgvcGh5bGluay5oLTczMi1cXHRcXHRcXHQgICAgICAgY29uc3Qgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9kZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDA6MjAuNzczNjI3MTU2WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMTkyMzIzNjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgUEhZIENvbm5lY3Rpb24gTWV0aG9kcyoqXG5cblJpZ2h0LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgaG93IFBIWSBjb25uZWN0aW9ucyBhcmUgYmVpbmcgaGFuZGxlZCB3aXRoaW4gdGhpcyBzeXN0ZW0uIEkgc2VlIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAgaXMgdXNlZCBieSBhIGZldyBkaWZmZXJlbnQgZHJpdmVyczogYGRwYWEyX21hY19jb25uZWN0YCwgYG12cHAyX29wZW5gLCBgbGFuOTY2eF9wb3J0X29wZW5gLCBhbmQgYHN0bW1hY19pbml0X3BoeWAuIFRoYXQgZ2l2ZXMgbWUgYSBjZXJ0YWluIGJhc2VsaW5lLCBhIHN0YXJ0aW5nIHBvaW50IHRvIHNlZSBob3cgb3RoZXIgUEhZcyBhcmUgY29ubmVjdGVkLiBJdCBzZWVtcyBsaWtlIGl0J3MgYSBwcmltYXJ5IG1ldGhvZCBpbiB1c2UuXG5cbkJ1dCBub3cgbXkgYnJhaW4ncyBpdGNoaW5nLi4uIHdoYXQgYWJvdXQgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgPyBJJ20gbWlzc2luZyBzb21ldGhpbmcsIGl0IHNlZW1zIC0gaXQncyBhIHBhcmFsbGVsIHBhdGggb2YgY29ubmVjdGlvbiBmb3IgUEhZcywgdGhhdCdzIGNlcnRhaW4sIHdoaWNoIG1lYW5zIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IC0gYW5kIHdoZXRoZXIgaXQgc2hhcmVzIGFueSBjb2RlIGJhc2Ugd2l0aCB0aGUgbWV0aG9kIEkga25vdy4gQXJlIHRoZXJlIGRpc3RpbmN0IHNjZW5hcmlvcyB3aGVyZSBvbmUgaXMgcHJlZmVycmVkIG92ZXIgdGhlIG90aGVyPyBBcmUgdGhleSBtdXR1YWxseSBleGNsdXNpdmUsIG9yIGNhbiB0aGV5IGJlIHVzZWQgaW4gY29uanVuY3Rpb24/IEFyZSB0aGVyZSBhbnkgY29tbW9uIGlzc3VlcyB0aGF0IG1heSBvY2N1ciwgYWNyb3NzIGJvdGggbWV0aG9kcz8gSSBuZWVkIHRvIGxvb2sgaW50byB0aGUgc3BlY2lmaWNzIG9mICp0aGF0KiBmdW5jdGlvbiBhbmQgc2VlIHdoZXJlIGl0J3MgYmVpbmcgdXNlZCBhbmQgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSByZXN0IG9mIHRoZSBQSFkgc2V0dXAuIEl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgcGljdHVyZSBoZXJlLCBhbmQgd2hhdCBpcyBjdXJyZW50bHkgaW4gcGxhY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMDU3LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDA6MjQuNzkyODYxOTQyWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzMxMTM4NDk5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9tYWMtcGh5LXN1cHBvcnQucnN0PTgwPXdpbGwgZG8gdGhlIGZvbGxvd2luZzpcXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvbWFjLXBoeS1zdXBwb3J0LnJzdC04My0gLSB3aWxsIGNyZWF0ZSBhIFBIWUxJTksgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSByZWNlaXZlZCBuZXRfZGV2aWNlXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9tYWMtcGh5LXN1cHBvcnQucnN0Ojg0OiAtIGNvbm5lY3QgdG8gdGhlIFBIWSB1c2luZyBwaHlsaW5rX29mX3BoeV9jb25uZWN0KClcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL21hYy1waHktc3VwcG9ydC5yc3QtODUtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0PTc0PXRoaXMgZG9jdW1lbnRhdGlvbi5cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3QtMTYyLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q6MTYzOlxcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QocHJpdi1cXHUwMDNlcGh5bGluaywgbm9kZSwgZmxhZ3MpO1xcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3QtMTY0LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM9OTY4PXN0YXRpYyBib29sIG5ldGNfcG9ydF9pc19lbWRpb19jb25zdW1lcihzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05ODQtXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6OTg1Oi8qIEN1cnJlbnRseSwgcGh5bGlua19vZl9waHlfY29ubmVjdCgpIGlzIGNhbGxlZCBieSBkc2FfdXNlcl9jcmVhdGUoKSxcXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYy05ODYtICogc28gaWYgdGhlIHN3aXRjaCB1c2VzIHRoZSBleHRlcm5hbCBNRElPIGNvbnRyb2xsZXIgKGxpa2UgdGhlIEVNRElPXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmMtOTg3LSAqIGZ1bmN0aW9uKSB0byBtYW5hZ2UgdGhlIGV4dGVybmFsIFBIWXMuIFRoZSBNRElPIGJ1cyBtYXkgbm90IGJlXFxuZHJpdmVycy9uZXQvZHNhL25ldGMvbmV0Y19tYWluLmM6OTg4OiAqIGNyZWF0ZWQgd2hlbiBwaHlsaW5rX29mX3BoeV9jb25uZWN0KCkgaXMgY2FsbGVkLCBzbyBpdCB3aWxsIHJldHVyblxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTk4OS0gKiBhbiBlcnJvciBhbmQgY2F1c2UgdGhlIHN3aXRjaCBkcml2ZXIgdG8gZmFpbCB0byBwcm9iZS5cXG5kcml2ZXJzL25ldC9kc2EvbmV0Yy9uZXRjX21haW4uYzo5OTA6ICogVGhpcyB3b3JrYXJvdW5kIGNhbiBiZSByZW1vdmVkIHdoZW4gRFNBIHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoKVxcbmRyaXZlcnMvbmV0L2RzYS9uZXRjL25ldGNfbWFpbi5jLTk5MS0gKiBjYWxscyBhcmUgbW92ZWQgZnJvbSBwcm9iZSgpIHRvIG5kb19vcGVuKCkuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbHRlcmEvYWx0ZXJhX3RzZV9tYWluLmM9ODc2PXN0YXRpYyBpbnQgdHNlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9hbHRlcmFfdHNlX21haW4uYy05NTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jOjk1MjpcXHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHByaXYtXFx1MDAzZXBoeWxpbmssIHByaXYtXFx1MDAzZWRldmljZS1cXHUwMDNlb2Zfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL2FsdGVyYV90c2VfbWFpbi5jLTk1My1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jPTE0MDQ9c3RhdGljIGludCBhZzcxeHhfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmMtMTQwOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jOjE0MTA6XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChhZy1cXHUwMDNlcGh5bGluaywgYWctXFx1MDAzZXBkZXYtXFx1MDAzZWRldi5vZl9ub2RlLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jLTE0MTEtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2F0aGVyb3MvYWc3MXh4LmM6MTQxMjpcXHRcXHRuZXRpZl9lcnIoYWcsIGxpbmssIG5kZXYsIFxcXCJwaHlsaW5rX29mX3BoeV9jb25uZWN0IGZpbGVkIHdpdGggZXJyOiAlaVxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL2FnNzF4eC5jLTE0MTMtXFx0XFx0XFx0ICByZXQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz05ODI9c3RhdGljIGludCBtYWNiX3BoeWxpbmtfY29ubmVjdChzdHJ1Y3QgbWFjYiAqYnApXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4OS1cXHRpZiAoZG4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYzo5OTA6XFx0XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChicC1cXHUwMDNlcGh5bGluaywgZG4sIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtOTkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYz0yOTQxPXN0YXRpYyBpbnQgZHBhYV9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRfZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYy0yOTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL2RwYWFfZXRoLmM6Mjk1MTpcXHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KG1hY19kZXYtXFx1MDAzZXBoeWxpbmssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYy0yOTUyLVxcdFxcdFxcdFxcdCAgICAgbWFjX2Rldi1cXHUwMDNlZGV2LVxcdTAwM2VvZl9ub2RlLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jPTI4OTk9c3RhdGljIGludCBlbmV0Y19waHlsaW5rX2Nvbm5lY3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvZW5ldGMuYy0yOTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jOjI5MTE6XFx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwcml2LVxcdTAwM2VwaHlsaW5rLCBwcml2LVxcdTAwM2VkZXYtXFx1MDAzZW9mX25vZGUsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9lbmV0Yy5jLTI5MTItXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmM9NjU2PXN0YXRpYyBpbnQgZnNfZW5ldF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9mc19lbmV0LW1haW4uYy02NzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmM6Njc4OlxcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoZmVwLVxcdTAwM2VwaHlsaW5rLCBmZXAtXFx1MDAzZWRldi1cXHUwMDNlb2Zfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvZnNfZW5ldC1tYWluLmMtNjc5LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5jPTMxNjc9c3RhdGljIGludCB1Y2NfZ2V0aF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvdWNjX2dldGguYy0zMTgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS91Y2NfZ2V0aC5jOjMxODE6XFx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdCh1Z2V0aC1cXHUwMDNlcGh5bGluaywgdWdldGgtXFx1MDAzZWRldi1cXHUwMDNlb2Zfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL3VjY19nZXRoLmMtMzE4Mi1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jPTQzNTE9c3RhdGljIGludCBtdm5ldGFfbWRpb19wcm9iZShzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYy00MzUzLVxcdHN0cnVjdCBldGh0b29sX3dvbGluZm8gd29sID0geyAuY21kID0gRVRIVE9PTF9HV09MIH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYzo0MzU0OlxcdGludCBlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KHBwLVxcdTAwM2VwaHlsaW5rLCBwcC1cXHUwMDNlZG4sIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMtNDM1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmM9MzYwMz1zdGF0aWMgaW50IG10a19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfZXRoX3NvYy5jLTM2MTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvbXRrX2V0aF9zb2MuYzozNjEyOlxcdGVyciA9IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QobWFjLVxcdTAwM2VwaHlsaW5rLCBtYWMtXFx1MDAzZW9mX25vZGUsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19ldGhfc29jLmMtMzYxMy1cXHRpZiAoZXJyKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmM9MzIxND1zdGF0aWMgaW50IGxhbjc0M3hfcGh5bGlua19jb25uZWN0KHN0cnVjdCBsYW43NDN4X2FkYXB0ZXIgKmFkYXB0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmMtMzIyMS1cXHRpZiAoZG4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jOjMyMjI6XFx0XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChhZGFwdGVyLVxcdTAwM2VwaHlsaW5rLCBkbiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jLTMyMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV9uZXRkZXYuYz0xMDU9c3RhdGljIGludCBzcGFyeDVfcG9ydF9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfbmV0ZGV2LmMtMTEwLVxcdHNwYXJ4NV9wb3J0X2VuYWJsZShwb3J0LCB0cnVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV9uZXRkZXYuYzoxMTE6XFx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwb3J0LVxcdTAwM2VwaHlsaW5rLCBwb3J0LVxcdTAwM2VvZl9ub2RlLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV9uZXRkZXYuYy0xMTItXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfbmV0LmM9MTc4MD1zdGF0aWMgaW50IG9jZWxvdF9wb3J0X3BoeWxpbmtfY3JlYXRlKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCwgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdF9uZXQuYy0xODMxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X25ldC5jOjE4MzI6XFx0ZXJyID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwaHlsaW5rLCBwb3J0bnAsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X25ldC5jLTE4MzMtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvYW02NS1jcHN3LW51c3MuYz05OTg9c3RhdGljIGludCBhbTY1X2Nwc3dfbnVzc19uZG9fc2xhdmVfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2FtNjUtY3Bzdy1udXNzLmMtMTA2OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9hbTY1LWNwc3ctbnVzcy5jOjEwNzA6XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChwb3J0LVxcdTAwM2VzbGF2ZS5waHlsaW5rLCBwb3J0LVxcdTAwM2VzbGF2ZS5wb3J0X25wLCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9hbTY1LWNwc3ctbnVzcy5jLTEwNzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmM9MTY2MT1zdGF0aWMgaW50IGF4aWVuZXRfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3hpbGlueC94aWxpbnhfYXhpZW5ldF9tYWluLmMtMTY3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngveGlsaW54X2F4aWVuZXRfbWFpbi5jOjE2NzQ6XFx0cmV0ID0gcGh5bGlua19vZl9waHlfY29ubmVjdChscC1cXHUwMDNlcGh5bGluaywgbHAtXFx1MDAzZWRldi1cXHUwMDNlb2Zfbm9kZSwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L3hpbGlueF9heGllbmV0X21haW4uYy0xNjc1LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngveGlsaW54X2F4aWVuZXRfbWFpbi5jOjE2NzY6XFx0XFx0ZGV2X2VycihscC1cXHUwMDNlZGV2LCBcXFwicGh5bGlua19vZl9waHlfY29ubmVjdCgpIGZhaWxlZDogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L3hpbGlueF9heGllbmV0X21haW4uYy0xNjc3LVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jPTIyNTM9RVhQT1JUX1NZTUJPTF9HUEwocGh5bGlua19jb25uZWN0X3BoeSk7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvcGh5bGluay5jLTIyNTUtLyoqXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjU2OiAqIHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QoKSAtIGNvbm5lY3QgdGhlIFBIWSBzcGVjaWZpZWQgaW4gdGhlIERUIG1vZGUuXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjU3LSAqIEBwbDogYSBwb2ludGVyIHRvIGEgXFx1MDAyNnN0cnVjdCBwaHlsaW5rIHJldHVybmVkIGZyb20gcGh5bGlua19jcmVhdGUoKVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjY2LSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmM6MjI2NzppbnQgcGh5bGlua19vZl9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4sXFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYy0yMjY4LVxcdFxcdFxcdCAgIHUzMiBmbGFncylcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3MS19XFxuZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYzoyMjcyOkVYUE9SVF9TWU1CT0xfR1BMKHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3QpO1xcbmRyaXZlcnMvbmV0L3BoeS9waHlsaW5rLmMtMjI3My1cXG4tLVxcbmluY2x1ZGUvbGludXgvcGh5bGluay5oPTcyOT1pbnQgcGh5bGlua19jb25uZWN0X3BoeShzdHJ1Y3QgcGh5bGluayAqLCBzdHJ1Y3QgcGh5X2RldmljZSAqKTtcXG5pbmNsdWRlL2xpbnV4L3BoeWxpbmsuaDo3MzA6aW50IHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3Qoc3RydWN0IHBoeWxpbmsgKiwgc3RydWN0IGRldmljZV9ub2RlICosIHUzMiBmbGFncyk7XFxuaW5jbHVkZS9saW51eC9waHlsaW5rLmgtNzMxLWludCBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdChzdHJ1Y3QgcGh5bGluayAqcGwsXFxuLS1cXG5uZXQvZHNhL3BvcnQuYz0xNjY1PXN0YXRpYyBpbnQgZHNhX3NoYXJlZF9wb3J0X3BoeWxpbmtfcmVnaXN0ZXIoc3RydWN0IGRzYV9wb3J0ICpkcClcXG4tLVxcbm5ldC9kc2EvcG9ydC5jLTE2NzctXFxubmV0L2RzYS9wb3J0LmM6MTY3ODpcXHRlcnIgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGRwLVxcdTAwM2VwbCwgcG9ydF9kbiwgMCk7XFxubmV0L2RzYS9wb3J0LmMtMTY3OS1cXHRpZiAoZXJyIFxcdTAwMjZcXHUwMDI2IGVyciAhPSAtRU5PREVWKSB7XFxuLS1cXG5uZXQvZHNhL3VzZXIuYz0yNjU1PXN0YXRpYyBpbnQgZHNhX3VzZXJfcGh5X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICp1c2VyX2RldilcXG4tLVxcbm5ldC9kc2EvdXNlci5jLTI2ODEtXFxubmV0L2RzYS91c2VyLmM6MjY4MjpcXHRyZXQgPSBwaHlsaW5rX29mX3BoeV9jb25uZWN0KGRwLVxcdTAwM2VwbCwgcG9ydF9kbiwgcGh5X2ZsYWdzKTtcXG5uZXQvZHNhL3VzZXIuYy0yNjgzLVxcdGlmIChyZXQgPT0gLUVOT0RFViBcXHUwMDI2XFx1MDAyNiBkcy1cXHUwMDNldXNlcl9taWlfYnVzKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQwOjI2LjUyNDAwNTMwMloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzI5MDUzOTQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdW5kZXJzdGFuZGluZywgY29uc2lkZXJpbmcgSSdtIGRlZXAgaW4gdGhlIHdlZWRzIHdpdGggdGhpcyBzdHVmZjpcblxuKipEaXZpbmcgaW50byBgcGh5bGlua19vZl9waHlfY29ubmVjdGAgYW5kIGBtYWNiYCBpbiBRRU1VKipcblxuQWxyaWdodCwgc28gYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgIGlzIGEgY29tbW9uIGZ1bmN0aW9uLCB1c2VkIGFjcm9zcyBhIHJhbmdlIG9mIGRyaXZlcnMuIFRoZSBpbnRlcmVzdGluZyBwb2ludCBoZXJlIGlzIGl0cyBjb25uZWN0aW9uIHRvIGBtYWNiYC4gQWgsIHJpZ2h0LCBgbWFjYmAuLi4gdGhlIENhZGVuY2UgR0VNLCB3aGljaCwgaWYgSSdtIG5vdCBtaXN0YWtlbiwgaXMgKmFsc28qIGVtdWxhdGVkIGluIFFFTVUuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgUUVNVSBzb3VyY2Ug4oCTIHllcCwgYGh3L25ldC9jYWRlbmNlX2dlbS5jYCBjb25maXJtcyBpdC4gTm93LCB0aGF0IGNsYXJpZmllcyBhIGxvdC4gU28sIGJlY2F1c2UgYG1hY2JgIGlzIGVtdWxhdGVkIGluIFFFTVUsIHVuZGVyc3RhbmRpbmcgdGhlIGludGVyYWN0aW9uIG9mIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCB3aXRoIGBtYWNiYCBpbiBRRU1VIGlzIGtleS4gTGV0J3MgbW92ZSBvbiB0byBjaGVja2luZyBgbWFjYl9waHlsaW5rX2Nvbm5lY3RgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDA1MCwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQwOjMwLjI1MzA2MjQ4NVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgzNzYzNDM1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWNiX3BoeWxpbmtfY29ubmVjdFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTk3NT1zdGF0aWMgYm9vbCBtYWNiX3BoeV9oYW5kbGVfZXhpc3RzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqZG4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjk4MjpzdGF0aWMgaW50IG1hY2JfcGh5bGlua19jb25uZWN0KHN0cnVjdCBtYWNiICpicClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jLTk4My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jPTMxNjA9c3RhdGljIGludCBtYWNiX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzIwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjMyMDI6XFx0ZXJyID0gbWFjYl9waHlsaW5rX2Nvbm5lY3QoYnApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtMzIwMy1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9tYWNiX21haW4uYz01MDgxPXN0YXRpYyBpbnQgYXQ5MWV0aGVyX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTEwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jOjUxMDE6XFx0cmV0ID0gbWFjYl9waHlsaW5rX2Nvbm5lY3QobHApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvbWFjYl9tYWluLmMtNTEwMi1cXHRpZiAocmV0KVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDozMi4wOTA3MDIwMzJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTI3Mzg5MzQxNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hpbmcgUGh5bGluaydzIENvcmUgTG9naWMqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHRyYWNlZCB0aGUgZXhlY3V0aW9uIHBhdGggZnJvbSBgbWFjYl9vcGVuYCBkb3duIHRvIGBwaHlsaW5rYC4gSXQncyBjbGVhciB0aGF0IGBtYWNiX29wZW5gIHRyaWdnZXJzIGBtYWNiX3BoeWxpbmtfY29ubmVjdGAsIHdoaWNoIHRoZW4gY2FsbHMgZWl0aGVyIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCBvciBgcGh5bGlua19jb25uZWN0X3BoeWAuIFRoaXMgaXMga2V5OyBpdCBtZWFucyBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGFyZSBkZWZpbml0ZWx5IHJlYWNoYWJsZSBhbmQsIHRoZXJlZm9yZSwgZnV6emFibGUuIE15IGluaXRpYWwgZ29hbCBoZXJlIGlzIHRvIGlkZW50aWZ5IHRoZXNlIHZ1bG5lcmFibGUgcG9pbnRzLlxuXG5JIG5lZWQgdG8gY29uZmlybSByZWFjaGFiaWxpdHkgb2YgdGhlc2Uga2V5IGZ1bmN0aW9ucyBhbmQgdW5kZXJzdGFuZCB0aGUgY29udHJvbCBmbG93LiBXYWl0LCBgcGh5bGlua19leHBlY3RzX3BoeWAgaXMgYWN0dWFsbHkgY2FsbGVkIGZyb20gYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYHBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RgLiBTbyBJIHdhcyByaWdodDsgaXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gYHBoeWxpbmtfYXR0YWNoX3BoeWAgc2VlbXMgZXF1YWxseSBhY2Nlc3NpYmxlLCBjYWxsZWQgZnJvbSBib3RoIGBwaHlsaW5rX2Nvbm5lY3RfcGh5YCBhbmQgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YC4gQm90aCBvZiB0aGVzZSBhcmUgaW50ZXJlc3RpbmcuXG5cblRoaXMgcGF0Y2ggaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSBpdCByZW1vdmVzIHRoYXQgYHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCBcdTAwMjZcdTAwMjYgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6KHBsLVx1MDAzZWxpbmtfaW50ZXJmYWNlKWAgY2hlY2sgZnJvbSBib3RoIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAuIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljLCByZW1vdmluZyBhIGNydWNpYWwgdmFsaWRhdGlvbiBzdGVwLiBUaGF0J3MgYSBnb29kIHBsYWNlIHRvIGxvb2sgZm9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIFBsdXMsIHRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIDAgaWYgYHByaXYtXHUwMDNlaHctXHUwMDNlcGh5bGlua19wY3NgIGlzIHNldC4gTm93IEkgbmVlZCB0byBzZWUgaWYgYHN0bW1hY2AgaXMgcmVhY2hhYmxlLlxuXG5JIGhhZCBsb29rZWQgYXQgdGhpcyBlYXJsaWVyLCBhbmQgSSBkb24ndCB0aGluayBRRU1VIGVtdWxhdGVzIGBzdG1tYWNgIFBDSS4gQnV0IHdhaXQsIHdoYXQgaWYgYHN0bW1hY2AgaXMgdXNlZCB2aWEgcGxhdGZvcm0gZGV2aWNlcz8gSSBuZWVkIHRvIGNvbnNpZGVyIGFsbCBwb3NzaWJpbGl0aWVzLiBRRU1VIGhhcyBgaHcvbmV0L3hnbWFjLmNgIGFuZCBJIG5lZWQgdG8gc2VlIGlmIHRoYXQncyByZWxhdGVkIHRvIGBzdG1tYWNgLiBOb3BlLCBgeGdtYWNgIGlzIENhbHhlZGEuIExldCdzIHNlZS4uLiBgaHcvbmV0L2FsbHdpbm5lci1zdW44aS1lbWFjLmNgIGlzIGZvciBzdW44aSwgYW5kIGBody9uZXQvbnBjbTd4eF9lbWMuY2AgaXMgcmVsYXRlZCB0byBucGNtN3h4LlxuXG5Pa2F5LCBpcyBgc3RtbWFjYCB1c2VkIGluICphbnkqIFFFTVUgbWFjaGluZT8gSXQncyB1c2VkIGluIG1hbnkgQVJNIGJvYXJkcy4gYHN0bW1hY2AgaXMgdGhlIGRyaXZlciBmb3IgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgTUFDIChEV01BQykuIEFuZCB5ZXMhIFFFTVUgKmRvZXMqIGVtdWxhdGUgYGh3L25ldC9kZXNpZ253YXJlLmNgISBTbyBgc3RtbWFjYCAqaXMqIHJlYWNoYWJsZSB0aHJvdWdoIFFFTVUuIE5vdywgbGV0J3Mgc2VlIGhvdyBgc3RtbWFjYCBtYXRjaGVzIHVwIHdpdGggYGRlc2lnbndhcmVgLiBUaGlzIGlzIGdldHRpbmcgaW50ZXJlc3RpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0NzYwLCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQwOjQ0LjgyOTYzOTk5NloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjE0MzcyMjA2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzbnBzLGR3bWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjA4OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuN2ktYTIwLWdtYWMueWFtbD05PWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjdpLWEyMC1nbWFjLnlhbWw6MTA6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW43aS1hMjAtZ21hYy55YW1sLTExLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw9OT1tYWludGFpbmVyczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTEyLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjEzOiMgV2UgbmVlZCBhIHNlbGVjdCBoZXJlIHNvIHdlIGRvbid0IG1hdGNoIGFsbCBub2RlcyB3aXRoICdzbnBzLGR3bWFjJ1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTE0LXNlbGVjdDpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sPTI4PXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC00NS0gICAgICAgICAgLSBjb25zdDogYWxsd2lubmVyLHN1bjU1aS1hNTIzLWdtYWMyMDBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbDo0NjogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQ3LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw9OTI9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6OTM6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC05NC0gIC0gaWY6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbD0yNTU9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0yNzQtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6Mjc1OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0yNzYtICAgICAgICB9O1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzI1LSAgICAgICAgICAgICNzaXplLWNlbGxzID0gXFx1MDAzYzBcXHUwMDNlO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjMyNjogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzI3LSAgICAgICAgfTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTM3NC0gICAgICAgIG1kaW8ge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjM3NTogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzc2LSAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtMzg3LSAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJhbGx3aW5uZXIsc3VuNTVpLWE1MjMtZ21hYzIwMFxcXCIsXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWw6Mzg4OiAgICAgICAgICAgICAgICAgICAgIFxcXCJzbnBzLGR3bWFjLTQuMjBhXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsbHdpbm5lcixzdW44aS1hODN0LWVtYWMueWFtbC0zODktICAgICAgICByZWcgPSBcXHUwMDNjMHgwNDUxMDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sLTQwNS0gICAgICAgIG1kaW8ge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWxsd2lubmVyLHN1bjhpLWE4M3QtZW1hYy55YW1sOjQwNjogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbGx3aW5uZXIsc3VuOGktYTgzdC1lbWFjLnlhbWwtNDA3LSAgICAgICAgICAgICNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw9MTI9ZGVzY3JpcHRpb246XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0xNi0gICMgVE9ETzogRGV0ZXJtaW5lIGhvdyB0byBoYW5kbGUgdGhlIEFycmlhMTAgcmVzZXQtbmFtZSwgc3RtbWFjZXRoLW9jcCwgdGhhdFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjE3OiAgIyBkb2VzIG5vdCB2YWxpZGF0ZSBhZ2FpbnN0IG5ldC9zbnBzLGR3bWFjLnlhbWwuXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMTgtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbD0zMT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMzUtICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDozNjogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjcwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjM3OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMzgtICAgICAgLSBpdGVtczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC0zOS0gICAgICAgICAgLSBjb25zdDogYWx0cixzb2NmcGdhLXN0bW1hYy1hMTAtczEwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6NDA6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy43MmFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDo0MTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTQyLSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtNDMtICAgICAgICAgIC0gY29uc3Q6IGFsdHIsc29jZnBnYS1zdG1tYWMtYTEwLXMxMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjQ0OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNzRhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw6NDU6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbC00Ni0gICAgICAtIGl0ZW1zOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWw9MTUzPWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjE1NDogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTE1NS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sPTE1OD1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sLTE2Ni0gICAgICAgIGV0aGVybmV0QGZmNzAwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FsdHIsc29jZnBnYS1zdG1tYWMueWFtbDoxNjc6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJhbHRyLHNvY2ZwZ2Etc3RtbWFjXFxcIiwgXFxcInNucHMsZHdtYWMtMy43MGFcXFwiLFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYWx0cixzb2NmcGdhLXN0bW1hYy55YW1sOjE2ODogICAgICAgICAgICBcXFwic25wcyxkd21hY1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbHRyLHNvY2ZwZ2Etc3RtbWFjLnlhbWwtMTY5LSAgICAgICAgICAgIGFsdHIsc3lzbWdyLXN5c2NvbiA9IFxcdTAwM2NcXHUwMDI2c3lzbWdyIDB4NjAgMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbD0xMD1tYWludGFpbmVyczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTEzLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sOjE0OiMgV2UgbmVlZCBhIHNlbGVjdCBoZXJlIHNvIHdlIGRvbid0IG1hdGNoIGFsbCBub2RlcyB3aXRoICdzbnBzLGR3bWFjJ1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTE1LXNlbGVjdDpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sPTI5PWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sOjMwOiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWwtMzEtICAtIGlmOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbWxvZ2ljLG1lc29uLWR3bWFjLnlhbWw9MTMwPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNDMtICAgICAgZW51bTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbDoxNDQ6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbDoxNDU6ICAgICAgICAtIHNucHMsZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNDYtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbD0xNzI9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FtbG9naWMsbWVzb24tZHdtYWMueWFtbC0xNzQtICAgIGV0aG1hYzogZXRoZXJuZXRAYzk0MTAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sOjE3NTogICAgICAgIGNvbXBhdGlibGUgPSBcXFwiYW1sb2dpYyxtZXNvbi1neGJiLWR3bWFjXFxcIiwgXFxcInNucHMsZHdtYWNcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW1sb2dpYyxtZXNvbi1kd21hYy55YW1sLTE3Ni0gICAgICAgIHJlZyA9IFxcdTAwM2MweGM5NDEwMDAwIDB4MTAwMDBcXHUwMDNlLCBcXHUwMDNjMHhjODgzNDU0MCAweDhcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9hbmFyaW9uLWdtYWMudHh0PTY9UmVxdWlyZWQgcHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQ6NzogLSBjb21wYXRpYmxlOiAgU2hvdWxkIGJlIFxcXCJhZGFwdHJ1bSxhbmFyaW9uLWdtYWNcXFwiLCBcXFwic25wcyxkd21hY1xcXCJcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQtOC0gLSBwaHktbW9kZTogICAgU2hvdWxkIGJlIFxcXCJyZ21paVxcXCIuIE90aGVyIG1vZGVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZC5cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dD0xMT1FeGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dC0xMy1cXHRnbWFjMTogZXRoZXJuZXRAZjIwMTQwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvYW5hcmlvbi1nbWFjLnR4dDoxNDpcXHRcXHRjb21wYXRpYmxlID0gXFxcImFkYXB0cnVtLGFuYXJpb24tZ21hY1xcXCIsIFxcXCJzbnBzLGR3bWFjXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2FuYXJpb24tZ21hYy50eHQtMTUtXFx0XFx0cmVnID0gXFx1MDAzYzB4ZjIwMTQwMDAgMHg0MDAwXFx1MDAzZSwgXFx1MDAzYzB4ZjIwMTgxMDAgOFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWw9Mjc9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sOjI4OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTI5LSAgLSBpZjpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbD00OD1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTUzLSAgICAgICAgICAtIGVzd2luLGVpYzc3MDAtcW9zLWV0aC1jbGstaW52ZXJzaW9uXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sOjU0OiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbC01NS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbD0xMzc9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Vzd2luLGVpYzc3MDAtZXRoLnlhbWwtMTM5LSAgICBldGhlcm5ldEA1MDQwMDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sOjE0MDogICAgICAgIGNvbXBhdGlibGUgPSBcXFwiZXN3aW4sZWljNzcwMC1xb3MtZXRoXFxcIiwgXFxcInNucHMsZHdtYWMtNS4yMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTE0MS0gICAgICAgIHJlZyA9IFxcdTAwM2MweDUwNDAwMDAwIDB4MTAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTE2NS0gICAgZXRoZXJuZXRANTA0MTAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXN3aW4sZWljNzcwMC1ldGgueWFtbDoxNjY6ICAgICAgICBjb21wYXRpYmxlID0gXFxcImVzd2luLGVpYzc3MDAtcW9zLWV0aC1jbGstaW52ZXJzaW9uXFxcIiwgXFxcInNucHMsZHdtYWMtNS4yMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9lc3dpbixlaWM3NzAwLWV0aC55YW1sLTE2Ny0gICAgICAgIHJlZyA9IFxcdTAwM2MweDUwNDEwMDAwIDB4MTAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw9MjE9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MjI6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0yMy1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbD0yND1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWwtMjktICAgICAgICAgICAgICAtIGludGVsLGtlZW1iYXktZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbDozMDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjEwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvaW50ZWwsZHdtYWMtcGxhdC55YW1sLTMxLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw9NTc9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMDYtICAgIGdtYWMwOiBldGhlcm5ldEAzYTAwMDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MTA3OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJpbnRlbCxrZWVtYmF5LWR3bWFjXFxcIiwgXFxcInNucHMsZHdtYWMtNC4xMGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvaW50ZWwsZHdtYWMtcGxhdC55YW1sLTEwOC0gICAgICAgIGludGVycnVwdHMgPSBcXHUwMDNjR0lDX1NQSSAxMTkgSVJRX1RZUEVfTEVWRUxfSElHSFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMjgtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pbnRlbCxkd21hYy1wbGF0LnlhbWw6MTI5OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2ludGVsLGR3bWFjLXBsYXQueWFtbC0xMzAtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0PTY9UmVxdWlyZWQgcHJvcGVydGllczpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0LTctXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9pcHE4MDZ4LWR3bWFjLnR4dDo4Oi0gY29tcGF0aWJsZTogc2hvdWxkIGJlIFxcXCJxY29tLGlwcTgwNngtZ21hY1xcXCIgYWxvbmcgd2l0aCBcXFwic25wcyxkd21hY1xcXCJcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2lwcTgwNngtZHdtYWMudHh0LTktXFx0ICAgICAgYW5kIGFueSBhcHBsaWNhYmxlIG1vcmUgZGV0YWlsZWQgdmVyc2lvbiBudW1iZXJcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9MzQ9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWwtMzgtICAgICAgICAgIC0gbG9vbmdzb24sbHMxYi1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbDozOTogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC00MC1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWw9Nzg9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbDo3OTogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWwtODAtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sPTgzPWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC04OC0gICAgZ21hYzA6IGV0aGVybmV0QDFmZTEwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWItZ21hYy55YW1sOjg5OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJsb29uZ3NvbixsczFiLWdtYWNcXFwiLCBcXFwic25wcyxkd21hYy0zLjUwYVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC05MC0gICAgICAgIHJlZyA9IFxcdTAwM2MweDFmZTEwMDAwIDB4MTAwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbC0xMDctICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFiLWdtYWMueWFtbDoxMDg6ICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJzbnBzLGR3bWFjLW1kaW9cXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYi1nbWFjLnlhbWwtMTA5LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD0zMz1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbC0zNy0gICAgICAgICAgLSBsb29uZ3NvbixsczFjLWVtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sOjM4OiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtMy41MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sLTM5LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbD03Nz1hbGxPZjpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sOjc4OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbC03OS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWw9ODI9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sLTg3LSAgICBlbWFjOiBldGhlcm5ldEAxZmUxMDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9sb29uZ3NvbixsczFjLWVtYWMueWFtbDo4ODogICAgICAgIGNvbXBhdGlibGUgPSBcXFwibG9vbmdzb24sbHMxYy1lbWFjXFxcIiwgXFxcInNucHMsZHdtYWMtMy41MGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtODktICAgICAgICByZWcgPSBcXHUwMDNjMHgxZmUxMDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWwtMTA2LSAgICAgICAgICAgICNzaXplLWNlbGxzID0gXFx1MDAzYzBcXHUwMDNlO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbG9vbmdzb24sbHMxYy1lbWFjLnlhbWw6MTA3OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2xvb25nc29uLGxzMWMtZW1hYy55YW1sLTEwOC1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0xMj1kZXNjcmlwdGlvbjpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC0xNC1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6MTU6IyBXZSBuZWVkIGEgc2VsZWN0IGhlcmUgc28gd2UgZG9uJ3QgbWF0Y2ggYWxsIG5vZGVzIHdpdGggJ3NucHMsZHdtYWMnXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTE2LXNlbGVjdDpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbD0yNz1hbGxPZjpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWw6Mjg6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMjktXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sPTMwPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMzUtICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10MjcxMi1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sOjM2OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTQuMjBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTM3LSAgICAgIC0gaXRlbXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtMzktICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sOjQwOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTQxLSAgICAgIC0gaXRlbXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWwtNDQtICAgICAgICAgIC0gY29uc3Q6IG1lZGlhdGVrLG10ODE5NS1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sOjQ1OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sLTQ2LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sPTE1Mj1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC0xNjAtICAgIGV0aDogZXRoZXJuZXRAMTEwMWMwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbDoxNjE6ICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10MjcxMi1nbWFjXFxcIiwgXFxcInNucHMsZHdtYWMtNC4yMGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbC0xNjItICAgICAgICByZWcgPSBcXHUwMDNjMHgxMTAxYzAwMCAweDEzMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sPTI1PWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbDoyNjogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbC0yNy1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWw9Mjg9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbC0zMS0gICAgICAtIGNvbnN0OiBudXZvdG9uLG1hMzVkMS1kd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbDozMjogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTMuNzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTMzLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sPTEwOD1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnV2b3RvbixtYTM1ZDEtZHdtYWMueWFtbC0xMTMtICAgIGV0aGVybmV0QDQwMTIwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWw6MTE0OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJudXZvdG9uLG1hMzVkMS1kd21hY1xcXCIsIFxcXCJzbnBzLGR3bWFjLTMuNzBhXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWwtMTE1LSAgICAgICAgcmVnID0gXFx1MDAzYzB4NDAxMjAwMDAgMHgxMDAwMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L251dm90b24sbWEzNWQxLWR3bWFjLnlhbWwtMTMxLSAgICAgICAgbWRpbyB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sOjEzMjogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9udXZvdG9uLG1hMzVkMS1kd21hYy55YW1sLTEzMy0gICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sPTk9bWFpbnRhaW5lcnM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0xMy1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbDoxNDojIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24ndCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAnc25wcyxkd21hYydcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0xNS1zZWxlY3Q6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbD0yNj1hbGxPZjpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbDoyNzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTI4LVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sPTI5PXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC0zNi0gICAgICAgICAgICAgIC0gbnhwLGlteDkzLWR3bWFjLWVxb3NcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbDozNzogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjEwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTM4LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsZHdtYWMtaW14LnlhbWw9OTM9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxkd21hYy1pbXgueWFtbC05OS0gICAgZXFvczogZXRoZXJuZXRAMzBiZjAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sOjEwMDogICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcIm54cCxpbXg4bXAtZHdtYWMtZXFvc1xcXCIsXFxcInNucHMsZHdtYWMtNS4xMGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGR3bWFjLWlteC55YW1sLTEwMS0gICAgICAgICAgICByZWcgPSBcXHUwMDNjMHgzMGJmMDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbD05PW1haW50YWluZXJzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTExLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDoxMjojIFdlIG5lZWQgYSBzZWxlY3QgaGVyZSBzbyB3ZSBkb24ndCBtYXRjaCBhbGwgbm9kZXMgd2l0aCAnc25wcyxkd21hYydcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtMTMtc2VsZWN0Olxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sPTIyPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtMjYtICAgICAgICAgIC0gbnhwLGxwYzE4NTAtZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWw6Mjc6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjYxMVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDoyODogICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sLTI5LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsbHBjMTg1MC1kd21hYy55YW1sPTYyPWFsbE9mOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDo2MzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbC02NC1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbD02Nz1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbC03MS0gICAgZXRoZXJuZXRANDAwMTAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLGxwYzE4NTAtZHdtYWMueWFtbDo3MjogICAgICAgIGNvbXBhdGlibGUgPSBcXFwibnhwLGxwYzE4NTAtZHdtYWNcXFwiLCBcXFwic25wcyxkd21hYy0zLjYxMVxcXCIsIFxcXCJzbnBzLGR3bWFjXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxscGMxODUwLWR3bWFjLnlhbWwtNzMtICAgICAgICByZWcgPSBcXHUwMDNjMHg0MDAxMDAwMCAweDIwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWw9ODg9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWw6ODk6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxzMzItZHdtYWMueWFtbC05MC1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbnhwLHMzMi1kd21hYy55YW1sPTkzPWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9ueHAsczMyLWR3bWFjLnlhbWwtMTQ3LSAgICAgICAgICAjc2l6ZS1jZWxscyA9IFxcdTAwM2MwXFx1MDAzZTtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxzMzItZHdtYWMueWFtbDoxNDg6ICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L254cCxzMzItZHdtYWMueWFtbC0xNDktXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20sZXRocW9zLnlhbWw9MTc9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sOjE4OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sLTE5LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sPTk3PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGV0aHFvcy55YW1sLTEzNC1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20sZXRocW9zLnlhbWw6MTM1OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJzbnBzLGR3bWFjLW1kaW9cXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxldGhxb3MueWFtbC0xMzYtICAgICAgICBwaHkxOiBwaHlANCB7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWw9MjI9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sOjIzOiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTI0LVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbD0yNT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sLTMwLSAgICAgIC0gY29uc3Q6IHJlbmVzYXMscnpuMS1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6bjEtZ21hYy55YW1sOjMxOiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWwtMzItXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWw9NTI9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWwtNTctICAgIGV0aGVybmV0QDQ0MDAwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnpuMS1nbWFjLnlhbWw6NTg6ICAgICAgY29tcGF0aWJsZSA9IFxcXCJyZW5lc2FzLHI5YTA2ZzAzMi1nbWFjXFxcIiwgXFxcInJlbmVzYXMscnpuMS1nbWFjXFxcIiwgXFxcInNucHMsZHdtYWNcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyem4xLWdtYWMueWFtbC01OS0gICAgICByZWcgPSBcXHUwMDNjMHg0NDAwMDAwMCAweDIwMDBcXHUwMDNlO1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MjY9cHJvcGVydGllczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTMwLSAgICAgICAgICAtIGNvbnN0OiByZW5lc2FzLHI5YTA4ZzA0Ni1nYmV0aCAjIFJaL0czTFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sOjMxOiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMzItICAgICAgLSBpdGVtczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTM3LSAgICAgICAgICAtIGNvbnN0OiByZW5lc2FzLHJ6djJoLWdiZXRoXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6Mzg6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTM5LSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtNDAtICAgICAgICAgIC0gY29uc3Q6IHJlbmVzYXMscjlhMDlnMDc3LWdiZXRoICMgUlovVDJIXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6NDE6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcmVuZXNhcyxyenYyaC1nYmV0aC55YW1sLTQyLSAgICAgIC0gaXRlbXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC00NC0gICAgICAgICAgLSBjb25zdDogcmVuZXNhcyxyOWEwOWcwNzctZ2JldGhcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbDo0NTogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjIwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtNDYtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbD0xNjY9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MTY3OiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMTY4LVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw9MjQ5PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMjU0LSAgICBldGhlcm5ldEAxNWMzMDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MjU1OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJyZW5lc2FzLHI5YTA5ZzA1Ny1nYmV0aFxcXCIsIFxcXCJyZW5lc2FzLHJ6djJoLWdiZXRoXFxcIiwgXFxcInNucHMsZHdtYWMtNS4yMFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWwtMjU2LSAgICAgICAgcmVnID0gXFx1MDAzYzB4MTVjMzAwMDAgMHgxMDAwMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zNTUtICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yZW5lc2FzLHJ6djJoLWdiZXRoLnlhbWw6MzU2OiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JlbmVzYXMscnp2MmgtZ2JldGgueWFtbC0zNTctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JvY2tjaGlwLWR3bWFjLnlhbWw9OT1tYWludGFpbmVyczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3JvY2tjaGlwLWR3bWFjLnlhbWw6MTI6IyBXZSBuZWVkIGEgc2VsZWN0IGhlcmUgc28gd2UgZG9uJ3QgbWF0Y2ggYWxsIG5vZGVzIHdpdGggJ3NucHMsZHdtYWMnXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sLTEzLXNlbGVjdDpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbD0zNz1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sLTU5LSAgICAgICAgICAgICAgLSByb2NrY2hpcCxydjExMjYtZ21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbDo2MDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC02MS1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbD0xMzI9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9yb2NrY2hpcC1kd21hYy55YW1sOjEzMzogIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcm9ja2NoaXAtZHdtYWMueWFtbC0xMzQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC0zLS0tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvc25wcyxkd21hYy55YW1sI1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTUtJHNjaGVtYTogaHR0cDovL2RldmljZXRyZWUub3JnL21ldGEtc2NoZW1hcy9jb3JlLnlhbWwjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD0xOD1zZWxlY3Q6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC0yMi0gICAgICAgIGVudW06XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjM6ICAgICAgICAgIC0gc25wcyxkd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjI0OiAgICAgICAgICAtIHNucHMsZHdtYWMtMy40MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoyNTogICAgICAgICAgLSBzbnBzLGR3bWFjLTMuNTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MjY6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjYxMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjI3OiAgICAgICAgICAtIHNucHMsZHdtYWMtMy43MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoyODogICAgICAgICAgLSBzbnBzLGR3bWFjLTMuNzEwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6Mjk6ICAgICAgICAgIC0gc25wcyxkd21hYy0zLjcyYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjMwOiAgICAgICAgICAtIHNucHMsZHdtYWMtNC4wMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjMxOiAgICAgICAgICAtIHNucHMsZHdtYWMtNC4xMGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozMjogICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMjBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MzM6ICAgICAgICAgIC0gc25wcyxkd21hYy01LjAwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjM0OiAgICAgICAgICAtIHNucHMsZHdtYWMtNS4xMGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozNTogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMjBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDozNjogICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtMzctICAgICAgICAgIC0gc25wcyxkd3hnbWFjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD00Nj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtOTgtICAgICAgICAtIHJvY2tjaGlwLHJ2MTEyNi1nbWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6OTk6ICAgICAgICAtIHNucHMsZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDA6ICAgICAgICAtIHNucHMsZHdtYWMtMy40MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDE6ICAgICAgICAtIHNucHMsZHdtYWMtMy41MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDI6ICAgICAgICAtIHNucHMsZHdtYWMtMy42MTBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDM6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDQ6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MTBcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDU6ICAgICAgICAtIHNucHMsZHdtYWMtMy43MmFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDoxMDY6ICAgICAgICAtIHNucHMsZHdtYWMtNC4wMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwNzogICAgICAgIC0gc25wcyxkd21hYy00LjEwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwODogICAgICAgIC0gc25wcyxkd21hYy00LjIwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjEwOTogICAgICAgIC0gc25wcyxkd21hYy01LjAwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjExMDogICAgICAgIC0gc25wcyxkd21hYy01LjEwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjExMTogICAgICAgIC0gc25wcyxkd21hYy01LjIwXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTEyOiAgICAgICAgLSBzbnBzLGR3bWFjLTUuMzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6MTEzOiAgICAgICAgLSBzbnBzLGR3bWFjLTUuNDBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwtMTE0LSAgICAgICAgLSBzbnBzLGR3eGdtYWNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sLTU1NS0gICAgICBjb21wYXRpYmxlOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjU1NjogICAgICAgIGNvbnN0OiBzbnBzLGR3bWFjLW1kaW9cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC01NTctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD02MTE9YWxsT2Y6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC02MzUtICAgICAgICAgICAgICAgIC0gcWNvbSxzbTgxNTAtZXRocW9zXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjM2OiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNC4wMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjYzNzogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTQuMTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjM4OiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNC4yMGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbDo2Mzk6ICAgICAgICAgICAgICAgIC0gc25wcyxkd21hYy01LjAwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjY0MDogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMTBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjQxOiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sOjY0MjogICAgICAgICAgICAgICAgLSBzbnBzLGR3bWFjLTUuMzBhXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NjQzOiAgICAgICAgICAgICAgICAtIHNucHMsZHdtYWMtNS40MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC02NDQtICAgICAgICAgICAgICAgIC0gc25wcyxkd3hnbWFjXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbD02NTQ9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC03MTItICAgICAgICAgICAgI3NpemUtY2VsbHMgPSBcXHUwMDNjMFxcdTAwM2U7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWw6NzEzOiAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwic25wcyxkd21hYy1tZGlvXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbC03MTQtICAgICAgICAgICAgcGh5MTogZXRoZXJuZXQtcGh5QDAge1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sPTIxPXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWwtMjQtICAgICAgLSBjb25zdDogc29waGdvLGN2MTgwMGItZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw6MjU6ICAgICAgLSBjb25zdDogc25wcyxkd21hYy0zLjcwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC0yNi1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbD02Mj1hbGxPZjpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw6NjM6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWwtNjQtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw9Njc9ZXhhbXBsZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWwtNzEtICAgIGV0aGVybmV0QDQwNzAwMDAge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbDo3MjogICAgICBjb21wYXRpYmxlID0gXFxcInNvcGhnbyxjdjE4MDBiLWR3bWFjXFxcIiwgXFxcInNucHMsZHdtYWMtMy43MGFcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC03My0gICAgICByZWcgPSBcXHUwMDNjMHgwNDA3MDAwMCAweDEwMDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLGN2MTgwMGItZHdtYWMueWFtbC05My0gICAgICBtZGlvIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxjdjE4MDBiLWR3bWFjLnlhbWw6OTQ6ICAgICAgICBjb21wYXRpYmxlID0gXFxcInNucHMsZHdtYWMtbWRpb1xcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sY3YxODAwYi1kd21hYy55YW1sLTk1LSAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbD0yMj1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtMjYtICAgICAgICAgIC0gY29uc3Q6IHNvcGhnbyxzZzIwNDItZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDoyNzogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjAwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTI4LSAgICAgIC0gaXRlbXM6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWwtMjktICAgICAgICAgIC0gY29uc3Q6IHNvcGhnbyxzZzIwNDQtZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbDozMDogICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjMwYVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTMxLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWw9NzE9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWw6NzI6ICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbC03My0gIC0gaWY6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbD05NT1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc29waGdvLHNnMjA0NC1kd21hYy55YW1sLTk5LSAgICBldGhlcm5ldEAzMDAwNjAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb3BoZ28sc2cyMDQ0LWR3bWFjLnlhbWw6MTAwOiAgICAgIGNvbXBhdGlibGUgPSBcXFwic29waGdvLHNnMjA0NC1kd21hY1xcXCIsIFxcXCJzbnBzLGR3bWFjLTUuMzBhXFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NvcGhnbyxzZzIwNDQtZHdtYWMueWFtbC0xMDEtICAgICAgcmVnID0gXFx1MDAzYzB4MzAwMDYwMDAgMHg0MDAwXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3BhY2VtaXQsazMtZHdtYWMueWFtbD0yMD1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTIzLSAgICAgIC0gY29uc3Q6IHNwYWNlbWl0LGszLWR3bWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sOjI0OiAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS40MGFcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWwtMjUtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NwYWNlbWl0LGszLWR3bWFjLnlhbWw9ODA9YWxsT2Y6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sOjgxOiAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTgyLVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sPTg1PWV4YW1wbGVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTg5LSAgICBldGhlcm5ldEBjYWM4MDAwMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sOjkwOiAgICAgIGNvbXBhdGlibGUgPSBcXFwic3BhY2VtaXQsazMtZHdtYWNcXFwiLCBcXFwic25wcyxkd21hYy01LjQwYVxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zcGFjZW1pdCxrMy1kd21hYy55YW1sLTkxLSAgICAgIHJlZyA9IFxcdTAwM2MweGNhYzgwMDAwIDB4MjAwMFxcdTAwM2U7XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sPTI0PXByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sLTI4LSAgICAgICAgICAtIGNvbnN0OiBzdGFyZml2ZSxqaDcxMDAtZHdtYWNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sOjI5OiAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zdGFyZml2ZSxqaDcxMTAtZHdtYWMueWFtbC0zMC0gICAgICAtIGl0ZW1zOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzEtICAgICAgICAgIC0gY29uc3Q6IHN0YXJmaXZlLGpoNzExMC1kd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWw6MzI6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzMtICAgICAgLSBpdGVtczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzUtICAgICAgICAgIC0gY29uc3Q6IHN0YXJmaXZlLGpoNzExMC1kd21hY1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWw6MzY6ICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4yMFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc3RhcmZpdmUsamg3MTEwLWR3bWFjLnlhbWwtMzctXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3N0YXJmaXZlLGpoNzExMC1kd21hYy55YW1sPTg4PWFsbE9mOlxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MDo0Ni45NzMzNjYzMzZaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ5MjE5MzIwNTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IERlc2lnbldhcmUgTUFDIGFuZCBQSFkgSW50ZXJmYWNlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0YXJnZXRzLiBZZXMsIGBzbnBzLGR3bWFjYCBpcyBkZWZpbml0ZWx5IHRoZSBEZXNpZ25XYXJlIE1BQy4gUUVNVSBlbXVsYXRlcyBpdCB3aXRoIGBody9uZXQvZGVzaWdud2FyZS5jYCwgYW5kIHRoYXQncyB0aGUgc2FtZSB0aGluZyBhcyBgc25wcyxkd21hY2AuIFNvIHRoYXQgbWVhbnMgdGhlIGBzdG1tYWNgIGRyaXZlciBpcyAqYWJzb2x1dGVseSogcmVhY2hhYmxlIGluIFFFTVUgdmlhIHBsYXRmb3JtIGRldmljZXMuIEdvb2Qgc3RhcnQuXG5cbk5vdywgbGV0J3MgZHJpbGwgZG93bi4gVGhlIHBhdGNoIGluY2x1ZGVzIGEgc21hbGwgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGBzdG1tYWNfaW5pdF9waHlgIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jYC4gSXQncyB0aGlzIGJsb2NrIHRoYXQgc3Rvb2Qgb3V0OlxuXG5gYGBjXG5cdFx0LyogSWYgYSBjdXN0b20gUENTIGlzIGluIHVzZSwgbm8gUEhZIGlzIG5lZWRlZCAqL1xuXHRcdGlmIChwcml2LVx1MDAzZWh3LVx1MDAzZXBoeWxpbmtfcGNzKVxuXHRcdFx0cmV0dXJuIDA7XG5gYGBcblxuSXQncyBhIHNtYWxsIGNoYW5nZSwgYnV0IGl0J3MgYSBjb25kaXRpb24gYW5kIHRoYXQncyBpbnRlcmVzdGluZyBmb3IgZnV6emluZy4gSXQncyBhIGtleSB0byBkZXRlcm1pbmUgaWYgYSBQSFkgaXMgdXNlZCBvciBub3QuXG5cblRoZSBtb3JlIHNpZ25pZmljYW50IGNoYW5nZXMsIGhvd2V2ZXIsIGFyZSBpbiB0aGUgcGh5bGluayBwYXJ0LiBIZXJlJ3Mgd2hhdCdzIGJlZW4gY2hhbmdlZDpcblxuYGBgY1xuLVx0aWYgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0ZJWEVEIHx8XG4tXHQgICAgKHBsLVx1MDAzZWNmZ19saW5rX2FuX21vZGUgPT0gTUxPX0FOX0lOQkFORCBcdTAwMjZcdTAwMjZcbi1cdCAgICAgcGh5X2ludGVyZmFjZV9tb2RlX2lzXzgwMjN6KHBsLVx1MDAzZWxpbmtfaW50ZXJmYWNlKSkpXG4rXHRpZiAocGwtXHUwMDNlY2ZnX2xpbmtfYW5fbW9kZSA9PSBNTE9fQU5fRklYRUQpXG5gYGBcblxuVGhpcyBpcyBkaXJlY3RseSBpbXBhY3RpbmcgYHBoeWxpbmtfZXhwZWN0c19waHlgIGFuZCBgcGh5bGlua19hdHRhY2hfcGh5YC4gVGhpcyBpcyBhICpmdW5jdGlvbmFsIGNoYW5nZSogdG8gdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpdHNlbGYsIGFzIHdlbGwgYXMgdGhlIHN0bW1hYyBkcml2ZXIuIFRoYXQgbWFrZXMgdGhpcyBhcmVhIHZlcnkgcmVsZXZhbnQuXG5cblNvLCB0aGUgcGF0Y2ggYWx0ZXJzIGJvdGggdGhlIGNvcmUgcGh5bGluayBmdW5jdGlvbmFsaXR5IGFuZCB0aGUgc3RtbWFjIGRyaXZlciBpbiB0ZXJtcyBvZiBQSFkgaGFuZGxpbmcuIFRoaXMgaXMgcHJvbWlzaW5nLiBJdCdzIHdvcnRoIGEgZnV6emluZyBjYW1wYWlnbiB0byBzZWUgaWYgdGhlc2UgY2hhbmdlcyBpbnRyb2R1Y2UgYW55IG5ldyB2dWxuZXJhYmlsaXRpZXMuXG5cbkkgbmVlZCB0byBuYWlsIGRvd24gdGhlIHNwZWNpZmljIGZ1bmN0aW9ucy4gRm9yIHRoZSBwaHlsaW5rIHNpZGUsIEknbSB0aGlua2luZyB0aGVzZSBmdW5jdGlvbnMgYXJlIHRoZSBrZXkgZm9jdXM6IGBwaHlsaW5rX2V4cGVjdHNfcGh5YCwgYHBoeWxpbmtfY29ubmVjdF9waHlgLCBgcGh5bGlua19vZl9waHlfY29ubmVjdGAsIGFuZCBgcGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RgLlxuXG5Ob3csIHJlZ2FyZGluZyB0aGUgYHN0bW1hY2Agc2lkZSwgYHN0bW1hY19pbml0X3BoeWAgaXRzZWxmIGlzIHN0YXRpYywgc28gSSBuZWVkIHRvIGZpbmQgaXRzIGNhbGxlcnMuIEl0IGlzIHVzZWQgaW5zaWRlIGBzdG1tYWNfb3BlbmAgYW5kIGBzdG1tYWNfZHZyX3Byb2JlYC4gU28gdGhvc2UgYXJlIHRoZSBmdW5jdGlvbnMgdG8gZXhhbWluZSBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTkwOSwiT3V0cHV0VG9rZW5zIjoyMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ1MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MTowMS44OTUzMDA2ODhaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MTUyMjYxNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjX2luaXRfcGh5XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MTI2NT1zdGF0aWMgdm9pZCBzdG1tYWNfY2hlY2tfcGNzX21vZGUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0xMjkwLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MTI5MTogKiBzdG1tYWNfaW5pdF9waHkgLSBQSFkgaW5pdGlhbGl6YXRpb25cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTItICogQGRldjogbmV0IGRldmljZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMTI5Ny0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjEyOTg6c3RhdGljIGludCBzdG1tYWNfaW5pdF9waHkoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTEyOTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00MTc3PXN0YXRpYyBpbnQgc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDE5NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxOTU6XFx0cmV0ID0gc3RtbWFjX2luaXRfcGh5KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTk2LVxcdGlmIChyZXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjAzLjcxMDUzNjQ4NloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjQ4NTg2MDYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBgc3RtbWFjYCBEcml2ZXIncyBQSFkgQ29ubmVjdGlvbioqXG5cbk9rYXksIHNvIEknbSB0cmFjaW5nIHRocm91Z2ggdGhpcyBjb2RlIGFuZCBpdCBsb29rcyBsaWtlIGBzdG1tYWNfb3BlbmAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaW5pdGlhdGVzIHRoZSB3aG9sZSBwcm9jZXNzLiBUaGF0J3MgdGhlIGVudHJ5IHBvaW50IEkgbmVlZCB0byB6ZXJvIGluIG9uLiBJJ20gZ29pbmcgdG8gYWRkIGBzdG1tYWNfb3BlbmAsIGFsb25nIHdpdGggYWxsIGl0cyByZWxhdGVkIFBIWSBjb25uZWN0aW9uIGZ1bmN0aW9ucyDigJMgYHBoeWxpbmtfY29ubmVjdF9waHlgLCBgcGh5bGlua19vZl9waHlfY29ubmVjdGAsIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAsIGFuZCBgcGh5bGlua19leHBlY3RzX3BoeWAg4oCTIHRvIG15IGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2AuIFRoYXQgZ2l2ZXMgbWUgYSBjbGVhciBwYXRoIHRvIHVuZGVyc3RhbmQgdGhlIGludGVyYWN0aW9uLlxuXG5Ob3csIGxldCdzIHRoaW5rIGFib3V0IHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW52b2x2ZWQgaGVyZS4gRm9yIGBzdG1tYWNgLCB0aGUga2V5IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGxpa2VseSBgQ09ORklHX1NUTU1BQ19FVEhgLiBGb3IgYHBoeWxpbmtgLCBpdCdzIHByb2JhYmx5IGBDT05GSUdfUEhZTElOS2AuIEknbGwgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGBLY29uZmlnYCBmaWxlcyBmb3IgYm90aCBgU1RNTUFDX0VUSGAgYW5kIGBQSFlMSU5LYCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gYW5kIHRvIHVuZGVyc3RhbmQgYW55IGRlcGVuZGVuY2llcy4gS25vd2luZyB0aGUgY29uZmlndXJhdGlvbiB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlc2UgZGlmZmVyZW50IG1vZHVsZXMgYXJlIGFjdGl2YXRlZCBhbmQgY29tcGlsZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMzk3LCJPdXRwdXRUb2tlbnMiOjIwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjA3Ljk1OTEyNTc5N1oiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1NTA0NDI2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU1RNTUFDX0VUSFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjA5LjcxNDE3NDkwNloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDEyMzg2NzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKlBIWUxJTksgQ2hlY2stSW4qKlxuXG5SaWdodCwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgYFBIWUxJTktgLiBHaXZlbiB3aGF0IHdlJ3JlIHdvcmtpbmcgb24sIGl0IHNlZW1zIGxpa2UgYSBjcnVjaWFsIHBvaW50IHRvIHJldmlzaXQuIEkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyBpdHMgY3VycmVudCBzdGF0dXMgYW5kIHdoZXRoZXIgaXQncyBzdGlsbCB0aGUgYmVzdCB0b29sIGZvciB0aGlzIHBhcnRpY3VsYXIgdGFzay4gSXMgaXQgbWVldGluZyB0aGUgcGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzPyBBcmUgdGhlcmUgYW55IGtub3duIGJ1Z3Mgb3IgbGltaXRhdGlvbnMgdGhhdCBtaWdodCBiZWNvbWUgY3JpdGljYWwgZG93biB0aGUgbGluZT8gSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBgUEhZTElOS2AgaXNuJ3QgZ29pbmcgdG8gYm90dGxlbmVjayB0aGlzIGFuYWx5c2lzLCBzbyBhIG1lbnRhbCBjaGVja2xpc3Qgb2YgaXRzIGZ1bmN0aW9uYWxpdHkgaXMgaW4gb3JkZXIuIEhhdmUgdGhlIHJlY2VudCB1cGRhdGVzIGltcGFjdGVkIHRoZSBpbnRlbmRlZCBmdW5jdGlvbj8gSXQgbWlnaHQgYWxzbyBiZSBhIGdvb2QgaWRlYSB0byBxdWlja2x5IHNjYW4gdGhlIGRvY3VtZW50YXRpb24gYWdhaW4sIGp1c3QgdG8gbWFrZSBzdXJlIEknbSB1cCB0byBzcGVlZCBvbiBhbnkgbmV3IGZlYXR1cmVzIHRoYXQgbWF5IGhhdmUgYmVlbiBhZGRlZC4gTGV0J3Mgc2VlIGlmIGl0IGlzIHN0aWxsIHRoZSBvcHRpbWFsIG9wdGlvbiBmb3IgdGhpcyB3b3JrZmxvdy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE4OTUsIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjEzLjEyNjU2NTIxN1oiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc2NDM1MTc0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUEhZTElOS1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvS2NvbmZpZy01LVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjY6Y29uZmlnIFBIWUxJTktcXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy03LVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDAzOjQxOjE0Ljg5MDkyMzQ3NVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTQ1MzQ3NTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBhbHJlYWR5IGRlZXAgaW4gdGhlIHdlZWRzIG9mIGRldmljZSBkcml2ZXIgY29uZmlndXJhdGlvbjpcblxuKipOYXZpZ2F0aW5nIERldmljZSBEcml2ZXIgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKlxuXG5BbHJpZ2h0LCBzbyBgUEhZTElOS2AgaXMgb25lIG9mIHRob3NlIHRyaXN0YXRlIHN5bWJvbHMsIG1lYW5pbmcgaXQncyBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFuZCBkb2Vzbid0IGdldCBhIGRpcmVjdCBwcm9tcHQgb2YgaXRzIG93bi4gSXQncyBlc3NlbnRpYWxseSBhIGRlcGVuZGVuY3kuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyBpdCdzIGJlaW5nIHNlbGVjdGVkLiBNeSBodW5jaCBpcyB0aGF0IGBTVE1NQUNfRVRIYCBtaWdodCBiZSB0aGUgY3VscHJpdC4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgU1RNTUFDX0VUSGAgaXMsIGluIGZhY3QsIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyBgUEhZTElOS2AuIExldCBtZSBjcm9zcy1yZWZlcmVuY2UgdGhlIEtjb25maWcgZmlsZXMsIG9yIHVzZSBteSB0b29sIG9mIGNob2ljZSB0byByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGNoYWluLiBJIG5lZWQgdG8gY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBhbmQgZW5zdXJlIHRoaXMgYmVoYXZpb3IgaXMgaW50ZW50aW9uYWwuIFVuZGVyc3RhbmRpbmcgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGVzZSBzeW1ib2xzIGlzIGtleSB0byBjb250cm9sbGluZyBteSBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIxNzksIk91dHB1dFRva2VucyI6MTgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MToxOC4wMzYyNzQxMzJaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MjY2Njc0NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2VsZWN0IFBIWUxJTktcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3NmcC1waHlsaW5rLnJzdD03ND10aGlzIGRvY3VtZW50YXRpb24uXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0LTkxLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9zZnAtcGh5bGluay5yc3Q6OTI6XFx0c2VsZWN0IFBIWUxJTktcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvc2ZwLXBoeWxpbmsucnN0LTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWc9Mj1jb25maWcgQUxURVJBX1RTRVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWctNi1cXHRzZWxlY3QgUEhZTElCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYWx0ZXJhL0tjb25maWc6NzpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FsdGVyYS9LY29uZmlnLTgtXFx0c2VsZWN0IFBDU19MWU5YXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hdGhlcm9zL0tjb25maWc9MjA9Y29uZmlnIEFHNzFYWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9LY29uZmlnLTIyLVxcdGRlcGVuZHMgb24gQVRINzkgfHwgQ09NUElMRV9URVNUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9LY29uZmlnOjIzOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYXRoZXJvcy9LY29uZmlnLTI0LVxcdGltcGx5IE5FVF9TRUxGVEVTVFNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NhZGVuY2UvS2NvbmZpZz0yMj1jb25maWcgTUFDQlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2FkZW5jZS9LY29uZmlnLTI1LVxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWc6MjY6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL0tjb25maWctMjctXFx0c2VsZWN0IENSQzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvS2NvbmZpZz04MD1jb25maWcgVUNDX0dFVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnLTgzLVxcdHNlbGVjdCBGU0xfUFFfTURJT1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9LY29uZmlnOjg0OlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL0tjb25maWctODUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvS2NvbmZpZz0yPW1lbnVjb25maWcgRlNMX0RQQUFfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBGU0xfRFBBQSBcXHUwMDI2XFx1MDAyNiBGU0xfRk1BTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWc6NTpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhL0tjb25maWctNi1cXHRzZWxlY3QgUENTX0xZTlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnPTI9Y29uZmlnIEZTTF9EUEFBMl9FVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnLTQtXFx0ZGVwZW5kcyBvbiBGU0xfTUNfQlVTIFxcdTAwMjZcXHUwMDI2IEZTTF9NQ19EUElPXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWc6NTpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9LY29uZmlnLTYtXFx0c2VsZWN0IFBDU19MWU5YXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZz0zMz1jb25maWcgRlNMX0RQQUEyX1NXSVRDSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWctMzctXFx0ZGVwZW5kcyBvbiBGU0xfTUNfQlVTIFxcdTAwMjZcXHUwMDI2IEZTTF9NQ19EUElPXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL0tjb25maWc6Mzg6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYTIvS2NvbmZpZy0zOS1cXHRzZWxlY3QgUENTX0xZTlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnPTMwPWNvbmZpZyBGU0xfRU5FVENcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTM3LVxcdHNlbGVjdCBOWFBfRU5FVENfUEZfQ09NTU9OXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWc6Mzg6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZy0zOS1cXHRzZWxlY3QgUENTX0xZTlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnPTQ4PWNvbmZpZyBOWFBfRU5FVEM0XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZy01NS1cXHRzZWxlY3QgTlhQX05UTVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZW5ldGMvS2NvbmZpZzo1NjpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTU3LVxcdHNlbGVjdCBESU1MSUJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnPTY2PWNvbmZpZyBGU0xfRU5FVENfVkZcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnLTcxLVxcdHNlbGVjdCBGU0xfRU5FVENfTURJT1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9lbmV0Yy9LY29uZmlnOjcyOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2VuZXRjL0tjb25maWctNzMtXFx0c2VsZWN0IERJTUxJQlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZz0yPWNvbmZpZyBGU0xfRk1BTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZy01LVxcdHNlbGVjdCBHRU5FUklDX0FMTE9DQVRPUlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL0tjb25maWc6NjpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL0tjb25maWctNy1cXHRzZWxlY3QgUENTX0xZTlhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mc19lbmV0L0tjb25maWc9Mj1jb25maWcgRlNfRU5FVFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZzX2VuZXQvS2NvbmZpZy01LVxcdHNlbGVjdCBNSUlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9LY29uZmlnOjY6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZnNfZW5ldC9LY29uZmlnLTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWc9NTk9Y29uZmlnIE1WTkVUQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9LY29uZmlnLTYyLVxcdHNlbGVjdCBNVk1ESU9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWc6NjM6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWctNjQtXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9LY29uZmlnPTg2PWNvbmZpZyBNVlBQMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9LY29uZmlnLTg5LVxcdHNlbGVjdCBNVk1ESU9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWc6OTA6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL0tjb25maWctOTEtXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnPTY9Y29uZmlnIFBSRVNURVJBXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL3ByZXN0ZXJhL0tjb25maWctMTAtXFx0c2VsZWN0IE5FVF9ERVZMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnOjExOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9LY29uZmlnLTEyLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWc9MTQ9Y29uZmlnIE5FVF9NRURJQVRFS19TT0NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL0tjb25maWctMTctXFx0c2VsZWN0IFBJTkNUUkxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9LY29uZmlnOjE4OlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVkaWF0ZWsvS2NvbmZpZy0xOS1cXHRzZWxlY3QgRElNTElCXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWc9MjA9Y29uZmlnIEZCTklDXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZXRhL0tjb25maWctMjktXFx0c2VsZWN0IFBDU19YUENTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnOjMwOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWV0YS9LY29uZmlnLTMxLVxcdHNlbGVjdCBQTERNRldcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnPTQ1PWNvbmZpZyBMQU43NDNYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZy01MS1cXHRzZWxlY3QgQ1JDMzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvS2NvbmZpZzo1MjpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9LY29uZmlnLTUzLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWc9MT1jb25maWcgTEFOOTY2WF9TV0lUQ0hcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWctNy1cXHRkZXBlbmRzIG9uIEJSSURHRSB8fCBCUklER0U9blxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWc6ODpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9sYW45NjZ4L0tjb25maWctOS1cXHRzZWxlY3QgUEFHRV9QT09MXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWc9MT1jb25maWcgU1BBUlg1X1NXSVRDSFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9LY29uZmlnLTgtXFx0ZGVwZW5kcyBvbiBCUklER0UgfHwgQlJJREdFPW5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L0tjb25maWc6OTpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvS2NvbmZpZy0xMC1cXHRzZWxlY3QgUEhZX1NQQVJYNV9TRVJERVNcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2MvS2NvbmZpZz0xNT1jb25maWcgTVNDQ19PQ0VMT1RfU1dJVENIX0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9LY29uZmlnLTE5LVxcdHNlbGVjdCBQQUNLSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9LY29uZmlnOjIwOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9LY29uZmlnLTIxLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL0tjb25maWc9NDI9Y29uZmlnIFJFTkVTQVNfRVRIRVJfU1dJVENIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9yZW5lc2FzL0tjb25maWctNDctXFx0c2VsZWN0IE1JSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvS2NvbmZpZzo0ODpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3JlbmVzYXMvS2NvbmZpZy00OS1cXHRzZWxlY3QgUkVORVNBU19HRU40X1BUUFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTktXFx0c2VsZWN0IFBBR0VfUE9PTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTA6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExLVxcdHNlbGVjdCBDUkMzMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL0tjb25maWc9MjY9Y29uZmlnIFRFSFVUSV9UTjQwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvS2NvbmZpZy0zMC1cXHRzZWxlY3QgRldfTE9BREVSXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGVodXRpL0tjb25maWc6MzE6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90ZWh1dGkvS2NvbmZpZy0zMi1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9LY29uZmlnPTk2PWNvbmZpZyBUSV9LM19BTTY1X0NQU1dfTlVTU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvS2NvbmZpZy0xMDAtXFx0c2VsZWN0IFRJX0RBVklOQ0lfTURJT1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL0tjb25maWc6MTAxOlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvS2NvbmZpZy0xMDItXFx0c2VsZWN0IFBBR0VfUE9PTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnPTE5PWNvbmZpZyBMSUJXWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvd2FuZ3h1bi9LY29uZmlnLTIzLVxcdHNlbGVjdCBESU1MSUJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWc6MjQ6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC93YW5neHVuL0tjb25maWctMjUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L0tjb25maWc9MjY9Y29uZmlnIFhJTElOWF9BWElfRU1BQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L0tjb25maWctMjktXFx0ZGVwZW5kcyBvbiBYSUxJTlhfRE1BXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQveGlsaW54L0tjb25maWc6MzA6XFx0c2VsZWN0IFBIWUxJTktcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC94aWxpbngvS2NvbmZpZy0zMS1cXHRzZWxlY3QgRElNTElCXFxuLS1cXG5kcml2ZXJzL25ldC9wY3MvS2NvbmZpZz04PWNvbmZpZyBQQ1NfWFBDU1xcbmRyaXZlcnMvbmV0L3Bjcy9LY29uZmlnLTktXFx0dHJpc3RhdGUgXFxcIlN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgWFBDU1xcXCJcXG5kcml2ZXJzL25ldC9wY3MvS2NvbmZpZzoxMDpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L3Bjcy9LY29uZmlnLTExLVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnPTExMz1jb25maWcgVVNCX0xBTjc4WFhcXG4tLVxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTExNS1cXHRzZWxlY3QgTUlJXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWc6MTE2OlxcdHNlbGVjdCBQSFlMSU5LXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctMTE3LVxcdHNlbGVjdCBNSUNST0NISVBfUEhZXFxuLS1cXG5kcml2ZXJzL25ldC91c2IvS2NvbmZpZz0xNjY9Y29uZmlnIFVTQl9ORVRfQVg4ODE3WFxcbi0tXFxuZHJpdmVycy9uZXQvdXNiL0tjb25maWctMTY5LVxcdHNlbGVjdCBDUkMzMlxcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnOjE3MDpcXHRzZWxlY3QgUEhZTElOS1xcbmRyaXZlcnMvbmV0L3VzYi9LY29uZmlnLTE3MS1cXHRzZWxlY3QgQVg4ODc5NkJfUEhZXFxuLS1cXG5uZXQvZHNhL0tjb25maWc9Mz1tZW51Y29uZmlnIE5FVF9EU0FcXG4tLVxcbm5ldC9kc2EvS2NvbmZpZy05LVxcdHNlbGVjdCBORVRfU1dJVENIREVWXFxubmV0L2RzYS9LY29uZmlnOjEwOlxcdHNlbGVjdCBQSFlMSU5LXFxubmV0L2RzYS9LY29uZmlnLTExLVxcdHNlbGVjdCBORVRfREVWTElOS1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QwMzo0MToxOS43NjI5NDYyODJaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTA3MTc1MzczODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgUmVhc29uaW5nIGZvciBGdXp6aW5nIHRoaXMgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gZGlnZ2luZyBpbnRvIHRoaXMgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBwcm9jZXNzIGlzIHRoaXM6IGBTVE1NQUNfRVRIYCBkZWZpbml0ZWx5IHVzZXMgYFBIWUxJTktgLiAgQW5kLCBpdCBsb29rcyBsaWtlIGBVU0JfTEFONzhYWGAgYW5kIGBVU0JfTkVUX0FYODgxN1hgIGFsc28gZGVwZW5kIG9uIGBQSFlMSU5LYC4gR3JlYXQuICBUaG9zZSB0aHJlZSBsb29rIGxpa2UgZ29vZCBpbml0aWFsIGNvbmZpZ3VyYXRpb25zIHRvIGVuYWJsZSBmb3IgdGVzdGluZy5cblxuSSBuZWVkIHRvIGNvbmZpcm0gd2hhdCB0aG9zZSBjb25maWd1cmF0aW9ucyBhY3R1YWxseSAqYXJlKiwgc28gYSBxdWljayBjaGVjay4uLiBZZXAsIGBVU0JfTkVUX0FYODgxN1hgIGlzIGZvciB0aGUgQVNJWCBBWDg4eHh4IFVTQiBFdGhlcm5ldCBhZGFwdGVycywgYW5kIGBVU0JfTEFONzhYWGAgaXMgZm9yIHRoZSBNaWNyb2NoaXAgTEFONzhYWCBVU0IgRXRoZXJuZXQgYWRhcHRlcnMuIFBlcmZlY3QuIFRoZXNlIGFyZSBVU0IgZGV2aWNlcywgYW5kIHRoYXQgbWVhbnMgSSBjYW4gbGV2ZXJhZ2UgU3l6a2FsbGVyJ3MgVVNCIGZ1enplciByZWFsbHkgZWZmZWN0aXZlbHkuICBMZXQncyBhZGQgdGhlc2UgdG8gdGhlIGBFbmFibGVDb25maWdzYC5cblxuTm93LCBsZXQncyB2ZXJpZnkgbXkgRm9jdXNTeW1ib2xzLiBJJ3ZlIGdvdCBgc3RtbWFjX29wZW5gLCBgcGh5bGlua19jb25uZWN0X3BoeWAsIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCwgYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YCwgYW5kIGBwaHlsaW5rX2V4cGVjdHNfcGh5YC5cblxuQSBxdWljayBjaGVjayBjb25maXJtcyBgcGh5bGlua19leHBlY3RzX3BoeWAgaXMgZXhwb3J0ZWQgYW5kIGNhbGxlZCBieSBkcml2ZXJzLiBTYW1lIGZvciBgcGh5bGlua19jb25uZWN0X3BoeWAsIGBwaHlsaW5rX29mX3BoeV9jb25uZWN0YCwgYW5kIGBwaHlsaW5rX2Z3bm9kZV9waHlfY29ubmVjdGAuIEFuZCBgc3RtbWFjX29wZW5gIGlzIGEgbmV0X2RldmljZV9vcHMgY2FsbGJhY2ssIHNvIHRoYXQgYWxzbyBsb29rcyByaWdodC5cblxuTGV0J3MgcXVpY2tseSBjaGVjazogYHN0bW1hY19vcGVuYCBjYWxscyBgc3RtbWFjX2luaXRfcGh5YCwgd2hpY2ggaXMgd2hlcmUgdGhlIG1vZGlmaWVkIGNvZGUgaXMuIE9rYXksIGV2ZXJ5dGhpbmcgY2hlY2tzIG91dC5cblxuTm93LCBsZXQncyByZXZpZXcgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBzZWxlY3Rpb24uIFRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgbW9kaWZ5aW5nIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgLiBJdCdzIHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBpbnRyb2R1Y2VzIGEgc3BlY2lmaWMgY2hlY2sgd2l0aGluIGBzdG1tYWNfaW5pdF9waHlgLiBUaGlzIG1lYW5zIGl0IGhhcyBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gcGh5bGluayBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIEFuZCBpbXBvcnRhbnRseSwgdGhpcyBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHRocm91Z2ggc2V2ZXJhbCBlbXVsYXRlZCBkZXZpY2VzLCBpbmNsdWRpbmcgdGhvc2UgVVNCIEV0aGVybmV0IGFkYXB0ZXJzIEkganVzdCBjb25maXJtZWQsICphbmQqIGFsc28gcGxhdGZvcm0gZGV2aWNlcyBsaWtlIHRoZSBEZXNpZ25XYXJlIE1BQyAodGhhdCB1c2VzIGBzdG1tYWNgKS4gQmVjYXVzZSB0aGUgY2hhbmdlcyBhcmUgaW4gdGhlc2UgY29yZSBsb2NhdGlvbnMsIGFuZCBhcmUgcmVhY2hhYmxlIGluIGEgZmV3IGRpZmZlcmVudCB3YXlzLCB0aGUgcGF0Y2ggaXMgYWJzb2x1dGVseSB3b3J0aCBmdXp6aW5nLlxuXG5NeSBjaG9zZW4gY29uZmlncyBhcmU6XG5gU1RNTUFDX0VUSGBcbmBVU0JfTEFONzhYWGBcbmBVU0JfTkVUX0FYODgxN1hgXG5cbk15IGZvY3VzZWQgc3ltYm9scyBhcmU6XG5gc3RtbWFjX29wZW5gXG5gcGh5bGlua19jb25uZWN0X3BoeWBcbmBwaHlsaW5rX29mX3BoeV9jb25uZWN0YFxuYHBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0YFxuYHBoeWxpbmtfZXhwZWN0c19waHlgXG5cbk9rYXksIHRoYXQncyBldmVyeXRoaW5nLiBMZXQncyBzZXQgdGhlIHJlc3VsdHMgYW5kIGdldCB0aGlzIGZ1enppbmcgcnVuIGdvaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTYxNSwiT3V0cHV0VG9rZW5zIjoyNjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMDM6NDE6MzAuNDgwNDg2MzAyWiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzkxODU1OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNUTU1BQ19FVEhcIixcbiAgICBcIlVTQl9MQU43OFhYXCIsXG4gICAgXCJVU0JfTkVUX0FYODgxN1hcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzdG1tYWNfb3BlblwiLFxuICAgIFwicGh5bGlua19jb25uZWN0X3BoeVwiLFxuICAgIFwicGh5bGlua19vZl9waHlfY29ubmVjdFwiLFxuICAgIFwicGh5bGlua19md25vZGVfcGh5X2Nvbm5lY3RcIixcbiAgICBcInBoeWxpbmtfZXhwZWN0c19waHlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBwaHlsaW5rIGxvZ2ljIGluIGBwaHlsaW5rX2V4cGVjdHNfcGh5YCBhbmQgYHBoeWxpbmtfYXR0YWNoX3BoeWAgYnkgcmVtb3ZpbmcgdGhlIGBNTE9fQU5fSU5CQU5EYCBhbmQgYHBoeV9pbnRlcmZhY2VfbW9kZV9pc184MDIzemAgY2hlY2tzLiBJdCBhbHNvIGFkZHMgYSBjaGVjayBpbiBgc3RtbWFjX2luaXRfcGh5YCB0byByZXR1cm4gZWFybHkgaWYgYSBjdXN0b20gUENTIGlzIGluIHVzZS4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgcGh5bGluayBjb3JlIGFuZCB0aGUgc3RtbWFjIGRyaXZlci4gVGhlIHBoeWxpbmsgY29yZSBpcyByZWFjaGFibGUgdmlhIHZhcmlvdXMgZW11bGF0ZWQgZGV2aWNlcywgaW5jbHVkaW5nIFVTQiBldGhlcm5ldCBhZGFwdGVycyAoZS5nLiwgTEFONzhYWCwgQVg4ODE3WCkgYW5kIHBsYXRmb3JtIGRldmljZXMgKGUuZy4sIERlc2lnbldhcmUgTUFDIC8gc3RtbWFjKS4gVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSBhbmQgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJTVE1NQUNfRVRIXCIsXG4gICAgXCJVU0JfTEFONzhYWFwiLFxuICAgIFwiVVNCX05FVF9BWDg4MTdYXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX29wZW5cIixcbiAgICBcInBoeWxpbmtfY29ubmVjdF9waHlcIixcbiAgICBcInBoeWxpbmtfb2ZfcGh5X2Nvbm5lY3RcIixcbiAgICBcInBoeWxpbmtfZndub2RlX3BoeV9jb25uZWN0XCIsXG4gICAgXCJwaHlsaW5rX2V4cGVjdHNfcGh5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgcGh5bGluayBsb2dpYyBpbiBgcGh5bGlua19leHBlY3RzX3BoeWAgYW5kIGBwaHlsaW5rX2F0dGFjaF9waHlgIGJ5IHJlbW92aW5nIHRoZSBgTUxPX0FOX0lOQkFORGAgYW5kIGBwaHlfaW50ZXJmYWNlX21vZGVfaXNfODAyM3pgIGNoZWNrcy4gSXQgYWxzbyBhZGRzIGEgY2hlY2sgaW4gYHN0bW1hY19pbml0X3BoeWAgdG8gcmV0dXJuIGVhcmx5IGlmIGEgY3VzdG9tIFBDUyBpcyBpbiB1c2UuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIHBoeWxpbmsgY29yZSBhbmQgdGhlIHN0bW1hYyBkcml2ZXIuIFRoZSBwaHlsaW5rIGNvcmUgaXMgcmVhY2hhYmxlIHZpYSB2YXJpb3VzIGVtdWxhdGVkIGRldmljZXMsIGluY2x1ZGluZyBVU0IgZXRoZXJuZXQgYWRhcHRlcnMgKGUuZy4sIExBTjc4WFgsIEFYODgxN1gpIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIChlLmcuLCBEZXNpZ25XYXJlIE1BQyAvIHN0bW1hYykuIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgYW5kIHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowpgv48[1] Phase: Succeeded StartedAt: 2026-07-27 03:41:53 +0000 UTC FinishedAt: 2026-07-27 03:41:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-27 03:41:53 +0000 UTC FinishedAt: 2026-07-27 03:41:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2] Phase: Succeeded StartedAt: 2026-07-27 03:41:53 +0000 UTC FinishedAt: 2026-07-27 05:43:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-27 03:41:53 +0000 UTC FinishedAt: 2026-07-27 05:43:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-27 03:41:53 +0000 UTC FinishedAt: 2026-07-27 03:42:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-27 03:41:53 +0000 UTC FinishedAt: 2026-07-27 03:41:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowpgv48/series-workflowpgv48-convert-artifact-3308560880/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-27 03:42:03 +0000 UTC FinishedAt: 2026-07-27 04:23:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-27 03:42:03 +0000 UTC FinishedAt: 2026-07-27 04:23:20 +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:*3acb9efe-70f2-49dc-afe6-03b8eb1e120d,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-workflowpgv48/series-workflowpgv48-convert-artifact-3308560880/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": "27e1fa8c-c6c0-44c0-8ac9-3400793daa4b", "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-workflowpgv48/series-workflowpgv48-build-action-1607314678/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-27 03:42:03 +0000 UTC FinishedAt: 2026-07-27 04:23:10 +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:*3acb9efe-70f2-49dc-afe6-03b8eb1e120d,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-workflowpgv48/series-workflowpgv48-convert-artifact-3308560880/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": "27e1fa8c-c6c0-44c0-8ac9-3400793daa4b", "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-workflowpgv48/series-workflowpgv48-build-action-1607314678/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-27 04:23:20 +0000 UTC FinishedAt: 2026-07-27 04:23:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-27 04:23:20 +0000 UTC FinishedAt: 2026-07-27 04:23:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-27 04:23:20 +0000 UTC FinishedAt: 2026-07-27 04:23:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-27 04:23:20 +0000 UTC FinishedAt: 2026-07-27 04:23:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowpgv48/series-workflowpgv48-convert-artifact-1152345047/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-27 04:23:30 +0000 UTC FinishedAt: 2026-07-27 04:25:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-27 04:23:30 +0000 UTC FinishedAt: 2026-07-27 04:25:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*27e1fa8c-c6c0-44c0-8ac9-3400793daa4b,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-workflowpgv48/series-workflowpgv48-build-action-1607314678/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-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-27 04:25:39 +0000 UTC FinishedAt: 2026-07-27 04:25:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-27 04:25:39 +0000 UTC FinishedAt: 2026-07-27 04:25:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-27 04:25:39 +0000 UTC FinishedAt: 2026-07-27 04:53:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-27 04:25:39 +0000 UTC FinishedAt: 2026-07-27 04:53:14 +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:*3acb9efe-70f2-49dc-afe6-03b8eb1e120d,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-workflowpgv48/series-workflowpgv48-convert-artifact-1152345047/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": "4a360a29-9751-4bd2-909c-93b66ea8e423", "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-workflowpgv48/series-workflowpgv48-build-action-93444891/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-27 04:25:39 +0000 UTC FinishedAt: 2026-07-27 04:53:04 +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:*3acb9efe-70f2-49dc-afe6-03b8eb1e120d,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-workflowpgv48/series-workflowpgv48-convert-artifact-1152345047/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": "4a360a29-9751-4bd2-909c-93b66ea8e423", "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-workflowpgv48/series-workflowpgv48-build-action-93444891/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-27 04:53:14 +0000 UTC FinishedAt: 2026-07-27 04:53:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-27 04:53:14 +0000 UTC FinishedAt: 2026-07-27 04:53:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-27 04:53:14 +0000 UTC FinishedAt: 2026-07-27 04:55:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-27 04:53:14 +0000 UTC FinishedAt: 2026-07-27 04:54:57 +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:*4a360a29-9751-4bd2-909c-93b66ea8e423,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-workflowpgv48/series-workflowpgv48-build-action-93444891/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-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-27 04:55:07 +0000 UTC FinishedAt: 2026-07-27 05:43:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-27 04:55:07 +0000 UTC FinishedAt: 2026-07-27 05:43:46 +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":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"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:*27e1fa8c-c6c0-44c0-8ac9-3400793daa4b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4a360a29-9751-4bd2-909c-93b66ea8e423,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-workflowpgv48/series-workflowpgv48-build-action-1607314678/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-workflowpgv48/series-workflowpgv48-build-action-93444891/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-27 04:55:07 +0000 UTC FinishedAt: 2026-07-27 04:55:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-27 04:55:07 +0000 UTC FinishedAt: 2026-07-27 04:55:12 +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":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"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-workflowpgv48/series-workflowpgv48-convert-artifact-633738128/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-27 04:55:07 +0000 UTC FinishedAt: 2026-07-27 04:55:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-27 04:55:07 +0000 UTC FinishedAt: 2026-07-27 04:55:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-27 04:55:07 +0000 UTC FinishedAt: 2026-07-27 04:55:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-27 04:55:17 +0000 UTC FinishedAt: 2026-07-27 05:43:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpgv48[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_open","phylink_connect_phy","phylink_of_phy_connect","phylink_fwnode_phy_connect","phylink_expects_phy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"04026c998c24ac47eb76886b9790c5710b603eb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","USB_LAN78XX","USB_NET_AX8817X"],"series_id":"9a0b79fb-7b85-4c38-9cdb-1de134b76230","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-27 04:55:17 +0000 UTC FinishedAt: 2026-07-27 05:43:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*27e1fa8c-c6c0-44c0-8ac9-3400793daa4b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4a360a29-9751-4bd2-909c-93b66ea8e423,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-workflowpgv48/series-workflowpgv48-build-action-1607314678/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-workflowpgv48/series-workflowpgv48-build-action-93444891/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-workflowpgv48/series-workflowpgv48-convert-artifact-633738128/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,}