Name: series-workflowc6gsh Phase: Succeeded StartedAt: 2026-07-03 07:04:53 +0000 UTC FinishedAt: 2026-07-03 12:02:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[0] Phase: Succeeded StartedAt: 2026-07-03 07:04:53 +0000 UTC FinishedAt: 2026-07-03 07:44:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[0].run-triage Phase: Succeeded StartedAt: 2026-07-03 07:04:53 +0000 UTC FinishedAt: 2026-07-03 07:44:21 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "cb158789c1e15c201b80e09351805e7e30bf0b1c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "FUSE_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "cb158789c1e15c201b80e09351805e7e30bf0b1c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "FUSE_FS" ], "series_id": "92d08e66-6619-49ea-b410-fd0b0bfce599" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "lookup_bdev" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0ZVU0VfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtsb29rdXBfYmRldiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYGxvb2t1cF9iZGV2YCB0byByZWplY3QgYmxvY2sgZGV2aWNlIGlub2RlcyB3aXRoIGBpX3JkZXYgPT0gMGAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBibG9jayBsYXllciB0aGF0IHByZXZlbnRzIHN1cGVyYmxvY2sgbG9va3VwIGNvbmZ1c2lvbiBhbmQgd2FybmluZ3Mgd2hlbiBkZWFsaW5nIHdpdGggZmFrZSBibG9jayBkZXZpY2UgaW5vZGVzIChlLmcuLCBmcm9tIEZVU0UpLiBGdXp6aW5nIGBsb29rdXBfYmRldmAgd2l0aCBGVVNFIGVuYWJsZWQgd2lsbCBoZWxwIHZlcmlmeSB0aGlzIGZpeC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGM2ZjY0MjY5MjM1YjM5MGNiNzMyNmRmMTg3NGMxMTNjMTA3NzZhMmNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzIDA3OjQyOjM3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2Jsb2NrL2JkZXYuYyBiL2Jsb2NrL2JkZXYuY1xuaW5kZXggMjhiMGQ0MGMzNjJmZTguLjc5N2Q3ZjBlZjYwOTQ2IDEwMDY0NFxuLS0tIGEvYmxvY2svYmRldi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9iZGV2LmNcbkBAIC0xMjc4LDYgJiM0MzsxMjc4LDE4IEBAIGludCBsb29rdXBfYmRldihjb25zdCBjaGFyICpwYXRobmFtZSwgZGV2X3QgKmRldilcbiBcdGlmICghbWF5X29wZW5fZGV2KFx1MDAyNnBhdGgpKVxuIFx0XHRnb3RvIG91dF9wYXRoX3B1dDtcbiBcbiYjNDM7XHQvKlxuJiM0MztcdCAqIFJlamVjdCBhIGJsb2NrIGRldmljZSBpbm9kZSB3aXRoIGlfcmRldiA9PSAwLiAgQSBkZXZfdCBvZiAwIGlzXG4mIzQzO1x0ICogbmV2ZXIgdmFsaWQgZm9yIGEgYmxvY2sgZGV2aWNlOiBubyByZWFsIGJsb2NrIGRldmljZSBkcml2ZXJcbiYjNDM7XHQgKiByZWdpc3RlcnMgbWFqb3IgMC4gIEZha2UgYmxvY2sgZGV2aWNlIGlub2RlcyAoZS5nLiBmdXNlIHdpdGhcbiYjNDM7XHQgKiByb290bW9kZT1TX0lGQkxLKSBjYW4gZXhwb3NlIGlfcmRldiA9PSAwLCBhbmQgbGV0dGluZyB0aGF0XG4mIzQzO1x0ICogcHJvcGFnYXRlIHdvdWxkIGNvbmZ1c2Ugc3VwZXJibG9jayBsb29rdXAgYW5kIHRyaWdnZXIgd2FybmluZ3NcbiYjNDM7XHQgKiBpbiB0aGUgZGV2aWNlLXRvLXN1cGVyYmxvY2sgdGFibGUgKHN1cGVyX2Rldl9yZWdpc3RlcikuXG4mIzQzO1x0ICovXG4mIzQzO1x0ZXJyb3IgPSAtRU5PREVWO1xuJiM0MztcdGlmICghaW5vZGUtXHUwMDNlaV9yZGV2KVxuJiM0MztcdFx0Z290byBvdXRfcGF0aF9wdXQ7XG4mIzQzO1xuIFx0KmRldiA9IGlub2RlLVx1MDAzZWlfcmRldjtcbiBcdGVycm9yID0gMDtcbiBvdXRfcGF0aF9wdXQ6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDc6NDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RlVTRV9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2xvb2t1cF9iZGV2JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjNmY2NDI2OTIzNWIzOTBjYjczMjZkZjE4NzRjMTEzYzEwNzc2YTJjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMyAwNzo0MjozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2Jsb2NrL2JkZXYuYyBiL2Jsb2NrL2JkZXYuYwppbmRleCAyOGIwZDQwYzM2MmZlOC4uNzk3ZDdmMGVmNjA5NDYgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2JkZXYuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9iZGV2LmMKQEAgLTEyNzgsNiAmIzQzOzEyNzgsMTggQEAgaW50IGxvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBkZXZfdCAqZGV2KQogCWlmICghbWF5X29wZW5fZGV2KCZhbXA7cGF0aCkpCiAJCWdvdG8gb3V0X3BhdGhfcHV0OwogCiYjNDM7CS8qCiYjNDM7CSAqIFJlamVjdCBhIGJsb2NrIGRldmljZSBpbm9kZSB3aXRoIGlfcmRldiA9PSAwLiAgQSBkZXZfdCBvZiAwIGlzCiYjNDM7CSAqIG5ldmVyIHZhbGlkIGZvciBhIGJsb2NrIGRldmljZTogbm8gcmVhbCBibG9jayBkZXZpY2UgZHJpdmVyCiYjNDM7CSAqIHJlZ2lzdGVycyBtYWpvciAwLiAgRmFrZSBibG9jayBkZXZpY2UgaW5vZGVzIChlLmcuIGZ1c2Ugd2l0aAomIzQzOwkgKiByb290bW9kZT1TX0lGQkxLKSBjYW4gZXhwb3NlIGlfcmRldiA9PSAwLCBhbmQgbGV0dGluZyB0aGF0CiYjNDM7CSAqIHByb3BhZ2F0ZSB3b3VsZCBjb25mdXNlIHN1cGVyYmxvY2sgbG9va3VwIGFuZCB0cmlnZ2VyIHdhcm5pbmdzCiYjNDM7CSAqIGluIHRoZSBkZXZpY2UtdG8tc3VwZXJibG9jayB0YWJsZSAoc3VwZXJfZGV2X3JlZ2lzdGVyKS4KJiM0MzsJICovCiYjNDM7CWVycm9yID0gLUVOT0RFVjsKJiM0MzsJaWYgKCFpbm9kZS0mZ3Q7aV9yZGV2KQomIzQzOwkJZ290byBvdXRfcGF0aF9wdXQ7CiYjNDM7CiAJKmRldiA9IGlub2RlLSZndDtpX3JkZXY7CiAJZXJyb3IgPSAwOwogb3V0X3BhdGhfcHV0Ogo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTUxCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMTA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJsb2NrIERldmljZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGJsb2NrL2JkZXYuY2AuIEl0JiMzOTtzIGEgcHJldHR5IGZvY3VzZWQgbW9kaWZpY2F0aW9uLCBzZWVtcyBsaWtlIGl0JiMzOTtzIGNoYW5naW5nIHRoZSBiZWhhdmlvciBvZiBgbG9va3VwX2JkZXZgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG1ha2luZyBgbG9va3VwX2JkZXZgIHJldHVybiBgLUVOT0RFVmAgaWYgdGhlIGBpbm9kZS0mZ3Q7aV9yZGV2YCB2YWx1ZSBpcyAwLiBUaGF0JiMzOTtzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHJpZ2h0IGluIHRoZSBibG9jayBsYXllciwgYW5kIGBsb29rdXBfYmRldmAgaXMgdGhlIGNydWNpYWwgZnVuY3Rpb24uIEkga25vdyBpdCBnZXRzIGNhbGxlZCBmcm9tIGFsbCBzb3J0cyBvZiBwbGFjZXMsIGxpa2Ugd2hlbiBtb3VudGluZyBhIGJsb2NrIGRldmljZSBvciBvcGVuaW5nIG9uZS4gVGhlIGNvbnNlcXVlbmNlcyBvZiB0aGlzIGNoYW5nZSBjb3VsZCBiZSBzaWduaWZpY2FudCBkZXBlbmRpbmcgb24gd2hlcmUgZWxzZSB0aGUgZXJyb3IgY29kZSBpcyBldmFsdWF0ZWQgaW4gdGhlIGNhbGwgc3RhY2suIExldCBtZSBnZXQgcmlnaHQgaW50byBgYmxvY2svYmRldi5jYCBhbmQgc2VlIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFuZCB3aHkgdGhpcyBtb2RpZmljYXRpb24gaXMgYmVpbmcgaW50cm9kdWNlZCBpbiB0aGUgZmlyc3QgcGxhY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByYXRpb25hbGUgYW5kIHRoZSBwb3RlbnRpYWwgcmlwcGxlIGVmZmVjdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDc6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bG9va3VwX2JkZXYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtibG9jay9iZGV2LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YmxvY2svYmRldi5jPTExMTY9c3RydWN0IGZpbGUgKmJkZXZfZmlsZV9vcGVuX2J5X3BhdGgoY29uc3QgY2hhciAqcGF0aCwgYmxrX21vZGVfdCBtb2RlLFxuLS1cbmJsb2NrL2JkZXYuYy0xMTIzLVxuYmxvY2svYmRldi5jOjExMjQ6XHRlcnJvciA9IGxvb2t1cF9iZGV2KHBhdGgsIFx1MDAyNmRldik7XG5ibG9jay9iZGV2LmMtMTEyNS1cdGlmIChlcnJvcilcbi0tXG5ibG9jay9iZGV2LmM9MTI0Nz1FWFBPUlRfU1lNQk9MKGJkZXZfZnB1dCk7XG4tLVxuYmxvY2svYmRldi5jLTEyNDktLyoqXG5ibG9jay9iZGV2LmM6MTI1MDogKiBsb29rdXBfYmRldigpIC0gTG9vayB1cCBhIHN0cnVjdCBibG9ja19kZXZpY2UgYnkgbmFtZS5cbmJsb2NrL2JkZXYuYy0xMjUxLSAqIEBwYXRobmFtZTogTmFtZSBvZiB0aGUgYmxvY2sgZGV2aWNlIGluIHRoZSBmaWxlc3lzdGVtLlxuLS1cbmJsb2NrL2JkZXYuYy0xMjU5LSAqL1xuYmxvY2svYmRldi5jOjEyNjA6aW50IGxvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBkZXZfdCAqZGV2KVxuYmxvY2svYmRldi5jLTEyNjEte1xuLS1cbmJsb2NrL2JkZXYuYy0xMjk4LX1cbmJsb2NrL2JkZXYuYzoxMjk5OkVYUE9SVF9TWU1CT0wobG9va3VwX2JkZXYpO1xuYmxvY2svYmRldi5jLTEzMDAtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDc6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYwNAoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIEJsb2NrIERldmljZSBMb29rdXAqKgoKT2theSwgc28gdGhlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdpdGhpbiBgbG9va3VwX2JkZXZgLiBUaW1lIHRvIHRyYWNlIGl0cyB1c2FnZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHRzIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGZ1bGx5IGdyYXNwIHRoZSBpbXBhY3Qgb2YgdGhlIHBhdGNoLiBLbm93aW5nIGl0cyBjYWxsZXJzIHdpbGwgdGVsbCBtZSB3aGljaCBtb2R1bGVzIG9yIHN1YnN5c3RlbXMgcmVseSBvbiB0aGUgYmxvY2sgZGV2aWNlIGxvb2t1cCBtZWNoYW5pc20gYW5kIHdoaWNoIGNvdWxkIGJlIGFmZmVjdGVkIGJ5IHRoZSBtb2RpZmljYXRpb25zLiBJdCYjMzk7cyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAgdG8gYXNzZXNzIHRoZSBvdmVyYWxsIGltcGxpY2F0aW9ucy4gVGhpcyB3aWxsIHNldCB0aGUgc3RhZ2UgZm9yIGEgcHJvcGVyIGltcGFjdCBhbmFseXNpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtsb29rdXBfYmRldiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dD05NT1LZXJuZWwgcGFyYW1ldGVyc1xuLS1cbkRvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0LTY2ODAtXHRcdFx0VXN1YWxseSB0aGlzIGlzIGEgYmxvY2sgZGV2aWNlIHNwZWNpZmllciBvZiBzb21lIGtpbmQsXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dDo2NjgxOlx0XHRcdHNlZSB0aGUgZWFybHlfbG9va3VwX2JkZXYgY29tbWVudCBpblxuRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQtNjY4Mi1cdFx0XHRibG9jay9lYXJseS1sb29rdXAuYyBmb3IgZGV0YWlscy5cbi0tXG5ibG9jay9iZGV2LmM9MTExNj1zdHJ1Y3QgZmlsZSAqYmRldl9maWxlX29wZW5fYnlfcGF0aChjb25zdCBjaGFyICpwYXRoLCBibGtfbW9kZV90IG1vZGUsXG4tLVxuYmxvY2svYmRldi5jLTExMjMtXG5ibG9jay9iZGV2LmM6MTEyNDpcdGVycm9yID0gbG9va3VwX2JkZXYocGF0aCwgXHUwMDI2ZGV2KTtcbmJsb2NrL2JkZXYuYy0xMTI1LVx0aWYgKGVycm9yKVxuLS1cbmJsb2NrL2JkZXYuYz0xMjQ3PUVYUE9SVF9TWU1CT0woYmRldl9mcHV0KTtcbi0tXG5ibG9jay9iZGV2LmMtMTI0OS0vKipcbmJsb2NrL2JkZXYuYzoxMjUwOiAqIGxvb2t1cF9iZGV2KCkgLSBMb29rIHVwIGEgc3RydWN0IGJsb2NrX2RldmljZSBieSBuYW1lLlxuYmxvY2svYmRldi5jLTEyNTEtICogQHBhdGhuYW1lOiBOYW1lIG9mIHRoZSBibG9jayBkZXZpY2UgaW4gdGhlIGZpbGVzeXN0ZW0uXG4tLVxuYmxvY2svYmRldi5jLTEyNTktICovXG5ibG9jay9iZGV2LmM6MTI2MDppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXG5ibG9jay9iZGV2LmMtMTI2MS17XG4tLVxuYmxvY2svYmRldi5jLTEyOTgtfVxuYmxvY2svYmRldi5jOjEyOTk6RVhQT1JUX1NZTUJPTChsb29rdXBfYmRldik7XG5ibG9jay9iZGV2LmMtMTMwMC1cbi0tXG5ibG9jay9lYXJseS1sb29rdXAuYz0xOTc9c3RhdGljIGludCBfX2luaXQgZGV2dF9mcm9tX2Rldm51bShjb25zdCBjaGFyICpuYW1lLCBkZXZfdCAqZGV2dClcbi0tXG5ibG9jay9lYXJseS1sb29rdXAuYy0yNDMtICovXG5ibG9jay9lYXJseS1sb29rdXAuYzoyNDQ6aW50IF9faW5pdCBlYXJseV9sb29rdXBfYmRldihjb25zdCBjaGFyICpuYW1lLCBkZXZfdCAqZGV2dClcbmJsb2NrL2Vhcmx5LWxvb2t1cC5jLTI0NS17XG4tLVxuZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYz0yNTU3PXN0YXRpYyBzc2l6ZV90IHJlZ2lzdGVyX2JjYWNoZShzdHJ1Y3Qga29iamVjdCAqaywgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLFxuLS1cbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMtMjYyMy1cdFx0XHRtdXRleF9sb2NrKFx1MDAyNmJjaF9yZWdpc3Rlcl9sb2NrKTtcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmM6MjYyNDpcdFx0XHRpZiAobG9va3VwX2JkZXYoc3RyaW0ocGF0aCksIFx1MDAyNmRldikgPT0gMCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMtMjYyNS1cdFx0XHQgICAgYmNoX2lzX29wZW4oZGV2KSlcbi0tXG5kcml2ZXJzL21kL2RtLWluaXQuYz0yNzE9c3RhdGljIGludCBfX2luaXQgZG1faW5pdF9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9tZC9kbS1pbml0LmMtMzAwLVx0XHRcdERNSU5GTyhcJiMzNDt3YWl0aW5nIGZvciBkZXZpY2UgJXMgLi4uXCYjMzQ7LCB3YWl0Zm9yW2ldKTtcbmRyaXZlcnMvbWQvZG0taW5pdC5jOjMwMTpcdFx0XHR3aGlsZSAoZWFybHlfbG9va3VwX2JkZXYod2FpdGZvcltpXSwgXHUwMDI2ZGV2KSlcbmRyaXZlcnMvbWQvZG0taW5pdC5jLTMwMi1cdFx0XHRcdGZzbGVlcCg1MDAwKTtcbi0tXG5kcml2ZXJzL21kL2RtLXRhYmxlLmM9MzEyPXN0YXRpYyBpbnQgdXBncmFkZV9tb2RlKHN0cnVjdCBkbV9kZXZfaW50ZXJuYWwgKmRkLCBibGtfbW9kZV90IG5ld19tb2RlLFxuLS1cbmRyaXZlcnMvbWQvZG0tdGFibGUuYy0zMzItICogTm90ZTogdGhlIF9fcmVmIGFubm90YXRpb24gaXMgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGNhbiBjYWxsIHRoZSBfX2luaXRcbmRyaXZlcnMvbWQvZG0tdGFibGUuYzozMzM6ICogbWFya2VkIGVhcmx5X2xvb2t1cF9iZGV2IHdoZW4gY2FsbGVkIGR1cmluZyBlYXJseSBib290IGNvZGUgZnJvbSBkbS1pbml0LmMuXG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzM0LSAqL1xuZHJpdmVycy9tZC9kbS10YWJsZS5jPTMzNT1pbnQgX19yZWYgZG1fZGV2dF9mcm9tX3BhdGgoY29uc3QgY2hhciAqcGF0aCwgZGV2X3QgKmRldl9wKVxuLS1cbmRyaXZlcnMvbWQvZG0tdGFibGUuYy0zNDctXHR9IGVsc2Uge1xuZHJpdmVycy9tZC9kbS10YWJsZS5jOjM0ODpcdFx0ciA9IGxvb2t1cF9iZGV2KHBhdGgsIFx1MDAyNmRldik7XG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzQ5LSNpZm5kZWYgTU9EVUxFXG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzUwLVx0XHRpZiAociBcdTAwMjZcdTAwMjYgc3lzdGVtX3N0YXRlIFx1MDAzYyBTWVNURU1fUlVOTklORylcbmRyaXZlcnMvbWQvZG0tdGFibGUuYzozNTE6XHRcdFx0ciA9IGVhcmx5X2xvb2t1cF9iZGV2KHBhdGgsIFx1MDAyNmRldik7XG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzUyLSNlbmRpZlxuLS1cbmRyaXZlcnMvbWQvbWQtYXV0b2RldGVjdC5jPTEyMz1zdGF0aWMgdm9pZCBfX2luaXQgbWRfc2V0dXBfZHJpdmUoc3RydWN0IG1kX3NldHVwX2FyZ3MgKmFyZ3MpXG4tLVxuZHJpdmVycy9tZC9tZC1hdXRvZGV0ZWN0LmMtMTQ5LVxuZHJpdmVycy9tZC9tZC1hdXRvZGV0ZWN0LmM6MTUwOlx0XHRpZiAoZWFybHlfbG9va3VwX2JkZXYoZGV2bmFtZSwgXHUwMDI2ZGV2KSlcbmRyaXZlcnMvbWQvbWQtYXV0b2RldGVjdC5jLTE1MS1cdFx0XHRkZXYgPSAwO1xuLS1cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM9MjAzPXN0YXRpYyB2b2lkIGJsb2NrMm10ZF9mcmVlX2RldmljZShzdHJ1Y3QgYmxvY2sybXRkX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjE5LSAqIFRoaXMgZnVuY3Rpb24gaXMgbWFya2VkIF9fcmVmIGJlY2F1c2UgaXQgY2FsbHMgdGhlIF9faW5pdCBtYXJrZWRcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM6MjIwOiAqIGVhcmx5X2xvb2t1cF9iZGV2IHdoZW4gY2FsbGVkIGZyb20gdGhlIGVhcmx5IGJvb3QgY29kZS5cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjIxLSAqL1xuZHJpdmVycy9tdGQvZGV2aWNlcy9ibG9jazJtdGQuYz0yMjI9c3RhdGljIHN0cnVjdCBmaWxlIF9fcmVmICptZHRibG9ja19lYXJseV9nZXRfYmRldihjb25zdCBjaGFyICpkZXZuYW1lLFxuLS1cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjI5LVx0LypcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM6MjMwOlx0ICogV2UgY2FuJiMzOTt0IHVzZSBlYXJseV9sb29rdXBfYmRldiBmcm9tIGEgcnVubmluZyBzeXN0ZW0uXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jLTIzMS1cdCAqL1xuLS1cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjUwLVxuZHJpdmVycy9tdGQvZGV2aWNlcy9ibG9jazJtdGQuYzoyNTE6XHRcdGlmICghZWFybHlfbG9va3VwX2JkZXYoZGV2bmFtZSwgXHUwMDI2ZGV2dCkpIHtcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjUyLVx0XHRcdGJkZXZfZmlsZSA9IGJkZXZfZmlsZV9vcGVuX2J5X2RldihkZXZ0LCBtb2RlLCBkZXYsIE5VTEwpO1xuLS1cbmRyaXZlcnMvbXRkL210ZHN1cGVyLmM9OTY9aW50IGdldF90cmVlX210ZChzdHJ1Y3QgZnNfY29udGV4dCAqZmMsXG4tLVxuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNDktXHQgKi9cbmRyaXZlcnMvbXRkL210ZHN1cGVyLmM6MTUwOlx0cmV0ID0gbG9va3VwX2JkZXYoZmMtXHUwMDNlc291cmNlLCBcdTAwMjZkZXYpO1xuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNTEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNTQtXHR9XG5kcml2ZXJzL210ZC9tdGRzdXBlci5jOjE1NTpcdHByX2RlYnVnKFwmIzM0O01URFNCOiBsb29rdXBfYmRldigpIHJldHVybmVkIDBcXG5cJiMzNDspO1xuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNTYtXG4tLVxuZnMvYnRyZnMvZGV2LXJlcGxhY2UuYz0yMzI9c3RhdGljIGludCBidHJmc19pbml0X2Rldl9yZXBsYWNlX3RndGRldihzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbyxcbi0tXG5mcy9idHJmcy9kZXYtcmVwbGFjZS5jLTI5MC1cbmZzL2J0cmZzL2Rldi1yZXBsYWNlLmM6MjkxOlx0cmV0ID0gbG9va3VwX2JkZXYoZGV2aWNlX3BhdGgsIFx1MDAyNmRldmljZS1cdTAwM2VkZXZ0KTtcbmZzL2J0cmZzL2Rldi1yZXBsYWNlLmMtMjkyLVx0aWYgKHJldClcbi0tXG5mcy9idHJmcy9zdXBlci5jPTIyNTQ9c3RhdGljIGxvbmcgYnRyZnNfY29udHJvbF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCxcbi0tXG5mcy9idHJmcy9zdXBlci5jLTIyODQtXHRcdGlmICh2b2wtXHUwMDNlbmFtZVswXSAhPSAwKSB7XG5mcy9idHJmcy9zdXBlci5jOjIyODU6XHRcdFx0cmV0ID0gbG9va3VwX2JkZXYodm9sLVx1MDAzZW5hbWUsIFx1MDAyNmRldnQpO1xuZnMvYnRyZnMvc3VwZXIuYy0yMjg2LVx0XHRcdGlmIChyZXQpXG4tLVxuZnMvYnRyZnMvdm9sdW1lcy5jPTc5ND1zdGF0aWMgbm9pbmxpbmUgc3RydWN0IGJ0cmZzX2RldmljZSAqZGV2aWNlX2xpc3RfYWRkKGNvbnN0IGNoYXIgKnBhdGgsXG4tLVxuZnMvYnRyZnMvdm9sdW1lcy5jLTgxNS1cbmZzL2J0cmZzL3ZvbHVtZXMuYzo4MTY6XHRyZXQgPSBsb29rdXBfYmRldihwYXRoLCBcdTAwMjZwYXRoX2RldnQpO1xuZnMvYnRyZnMvdm9sdW1lcy5jLTgxNy1cdGlmIChyZXQpIHtcbi0tXG5mcy9idHJmcy92b2x1bWVzLmM9MjkyNT1pbnQgYnRyZnNfaW5pdF9uZXdfZGV2aWNlKHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvLCBjb25zdCBjaGFyICpkZXZpY2VfcGF0aClcbi0tXG5mcy9idHJmcy92b2x1bWVzLmMtMjk4Ni1cdGRldmljZS1cdTAwM2ViZGV2ID0gZmlsZV9iZGV2KGJkZXZfZmlsZSk7XG5mcy9idHJmcy92b2x1bWVzLmM6Mjk4NzpcdHJldCA9IGxvb2t1cF9iZGV2KGRldmljZV9wYXRoLCBcdTAwMjZkZXZpY2UtXHUwMDNlZGV2dCk7XG5mcy9idHJmcy92b2x1bWVzLmMtMjk4OC1cdGlmIChyZXQpXG4tLVxuZnMvbmlsZnMyL3N1cGVyLmM9MTIwMT1uaWxmc19nZXRfdHJlZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpXG4tLVxuZnMvbmlsZnMyL3N1cGVyLmMtMTIxNC1cbmZzL25pbGZzMi9zdXBlci5jOjEyMTU6XHRlcnIgPSBsb29rdXBfYmRldihmYy1cdTAwM2Vzb3VyY2UsIFx1MDAyNmRldik7XG5mcy9uaWxmczIvc3VwZXIuYy0xMjE2LVx0aWYgKGVycilcbi0tXG5mcy9wc3RvcmUvYmxrLmM9MjU4PXN0YXRpYyBfX2luaXQgY29uc3QgY2hhciAqZWFybHlfYm9vdF9kZXZwYXRoKGNvbnN0IGNoYXIgKmluaXRpYWxfZGV2bmFtZSlcbi0tXG5mcy9wc3RvcmUvYmxrLmMtMjY3LVxuZnMvcHN0b3JlL2Jsay5jOjI2ODpcdGlmIChlYXJseV9sb29rdXBfYmRldihpbml0aWFsX2Rldm5hbWUsIFx1MDAyNmRldikpIHtcbmZzL3BzdG9yZS9ibGsuYy0yNjktXHRcdHByX2VycihcJiMzNDtmYWlsZWQgdG8gcmVzb2x2ZSAmIzM5OyVzJiMzOTshXFxuXCYjMzQ7LCBpbml0aWFsX2Rldm5hbWUpO1xuLS1cbmZzL3F1b3RhL3F1b3RhLmM9ODY2PXN0YXRpYyBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnF1b3RhY3RsX2Jsb2NrKGNvbnN0IGNoYXIgX191c2VyICpzcGVjaWFsLCBpbnQgY21kKVxuLS1cbmZzL3F1b3RhL3F1b3RhLmMtODc2LVx0XHRyZXR1cm4gRVJSX0NBU1QodG1wKTtcbmZzL3F1b3RhL3F1b3RhLmM6ODc3Olx0ZXJyb3IgPSBsb29rdXBfYmRldih0bXAtXHUwMDNlbmFtZSwgXHUwMDI2ZGV2KTtcbmZzL3F1b3RhL3F1b3RhLmMtODc4LVx0aWYgKGVycm9yKVxuLS1cbmZzL3N1cGVyLmM9MTg0OT1pbnQgZ2V0X3RyZWVfYmRldl9mbGFncyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMsXG4tLVxuZnMvc3VwZXIuYy0xODU5LVxuZnMvc3VwZXIuYzoxODYwOlx0ZXJyb3IgPSBsb29rdXBfYmRldihmYy1cdTAwM2Vzb3VyY2UsIFx1MDAyNmRldik7XG5mcy9zdXBlci5jLTE4NjEtXHRpZiAoZXJyb3IpIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oPTE3MzQ9aW50IHNldF9ibG9ja3NpemUoc3RydWN0IGZpbGUgKmZpbGUsIGludCBzaXplKTtcbmluY2x1ZGUvbGludXgvYmxrZGV2LmgtMTczNS1cbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg6MTczNjppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpO1xuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xNzM3LVxuLS1cbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg9MTc5OT12b2lkIHByaW50a19hbGxfcGFydGl0aW9ucyh2b2lkKTtcbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg6MTgwMDppbnQgX19pbml0IGVhcmx5X2xvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBkZXZfdCAqZGV2KTtcbmluY2x1ZGUvbGludXgvYmxrZGV2LmgtMTgwMS0jZWxzZVxuLS1cbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg9MTgyMD1zdGF0aWMgaW5saW5lIHZvaWQgcHJpbnRrX2FsbF9wYXJ0aXRpb25zKHZvaWQpXG4tLVxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xODIyLX1cbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg6MTgyMzpzdGF0aWMgaW5saW5lIGludCBlYXJseV9sb29rdXBfYmRldihjb25zdCBjaGFyICpwYXRobmFtZSwgZGV2X3QgKmRldilcbmluY2x1ZGUvbGludXgvYmxrZGV2LmgtMTgyNC17XG4tLVxuaW5pdC9kb19tb3VudHMuYz00MDY9c3RhdGljIHZvaWQgX19pbml0IHdhaXRfZm9yX3Jvb3QoY2hhciAqcm9vdF9kZXZpY2VfbmFtZSlcbi0tXG5pbml0L2RvX21vdW50cy5jLTQxNy1cdHdoaWxlICghZHJpdmVyX3Byb2JlX2RvbmUoKSB8fFxuaW5pdC9kb19tb3VudHMuYzo0MTg6XHQgICAgICAgZWFybHlfbG9va3VwX2JkZXYocm9vdF9kZXZpY2VfbmFtZSwgXHUwMDI2Uk9PVF9ERVYpIFx1MDAzYyAwKSB7XG5pbml0L2RvX21vdW50cy5jLTQxOS1cdFx0bXNsZWVwKDUpO1xuLS1cbmluaXQvZG9fbW91bnRzLmM9NDI4PXN0YXRpYyBkZXZfdCBfX2luaXQgcGFyc2Vfcm9vdF9kZXZpY2UoY2hhciAqcm9vdF9kZXZpY2VfbmFtZSlcbi0tXG5pbml0L2RvX21vdW50cy5jLTQ0Mi1cbmluaXQvZG9fbW91bnRzLmM6NDQzOlx0ZXJyb3IgPSBlYXJseV9sb29rdXBfYmRldihyb290X2RldmljZV9uYW1lLCBcdTAwMjZkZXYpO1xuaW5pdC9kb19tb3VudHMuYy00NDQtXHRpZiAoZXJyb3IpIHtcbi0tXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM9OTgyPXN0YXRpYyBpbnQgX19pbml0IGZpbmRfcmVzdW1lX2RldmljZSh2b2lkKVxuLS1cbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy05OTUtXHQvKiBDaGVjayBpZiB0aGUgZGV2aWNlIGlzIHRoZXJlICovXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM6OTk2Olx0aWYgKCFlYXJseV9sb29rdXBfYmRldihyZXN1bWVfZmlsZSwgXHUwMDI2c3dzdXNwX3Jlc3VtZV9kZXZpY2UpKVxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTk5Ny1cdFx0cmV0dXJuIDA7XG4tLVxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMDQtXHRpZiAocmVzdW1lX3dhaXQpIHtcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYzoxMDA1Olx0XHR3aGlsZSAoZWFybHlfbG9va3VwX2JkZXYocmVzdW1lX2ZpbGUsIFx1MDAyNnN3c3VzcF9yZXN1bWVfZGV2aWNlKSlcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy0xMDA2LVx0XHRcdG1zbGVlcCgxMCk7XG4tLVxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMDktXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM6MTAxMDpcdHJldHVybiBlYXJseV9sb29rdXBfYmRldihyZXN1bWVfZmlsZSwgXHUwMDI2c3dzdXNwX3Jlc3VtZV9kZXZpY2UpO1xua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMTEtfVxuLS1cbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYz0xMjYwPXN0YXRpYyBzc2l6ZV90IHJlc3VtZV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLFxuLS1cbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy0xMjc3LVxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jOjEyNzg6XHRlcnJvciA9IGxvb2t1cF9iZGV2KG5hbWUsIFx1MDAyNmRldik7XG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMtMTI3OS1cdGlmIChlcnJvcikge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyMjIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAyMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNzaW5nIE15IEZ1enppbmcgRWZmb3J0cyoqCgpPa2F5LCBzbyBgbG9va3VwX2JkZXZgIGlzIHVzZWQgaW4gYSBidW5jaCBvZiBwbGFjZXMsIGluY2x1ZGluZyBgZ2V0X3RyZWVfYmRldl9mbGFnc2AsIHdoaWNoIGlzIGNydWNpYWwgZm9yIG1vdW50aW5nIGJsb2NrIGRldmljZXMuIEl0JiMzOTtzIGFsc28gaW52b2x2ZWQgaW4gYHF1b3RhY3RsX2Jsb2NrYCwgYGJ0cmZzX2NvbnRyb2xfaW9jdGxgLCBhbmQgb3RoZXIga2V5IGFyZWFzIGxpa2UgYG5pbGZzX2dldF90cmVlYCwgYGdldF90cmVlX210ZGAsIGFuZCBgYmRldl9maWxlX29wZW5fYnlfcGF0aGAuIFRoZSBwYXRjaCBtYWtlcyBpdCBjbGVhciB0aGF0IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggJiMzNDtmYWtlJiMzNDsgYmxvY2sgZGV2aWNlIGlub2Rlcywgc3BlY2lmaWNhbGx5IG1lbnRpb25pbmcgYGZ1c2Ugd2l0aCByb290bW9kZT1TX0lGQkxLYCB3aGVyZSBgaV9yZGV2ID09IDBgLiBUaGF0IGNvdWxkIGVhc2lseSBsZWFkIHRvIHByb2JsZW1zIHdpdGggc3VwZXJibG9jayBsb29rdXAsIHRyaWdnZXJpbmcgdGhvc2UgYW5ub3lpbmcgd2FybmluZ3MgaW4gdGhlIGRldmljZS10by1zdXBlcmJsb2NrIHRhYmxlLCBgc3VwZXJfZGV2X3JlZ2lzdGVyYC4KCk15IGluaXRpYWwgdGhvdWdodCB3YXMsICYjMzQ7TGV0JiMzOTtzIGZ1enogYGxvb2t1cF9iZGV2YCBkaXJlY3RseSEmIzM0OyBCdXQgd2FpdCBhIHNlY29uZC4uLiBgbG9va3VwX2JkZXZgIGlzIGEgcmVhbGx5IGdlbmVyYWwgZnVuY3Rpb24uIFBlcmhhcHMgdGhhdCBpcyB0b28gYnJvYWQgYW5kIGdlbmVyaWMgYW4gYXBwcm9hY2guCgpBaCwgYnV0IHRoZSBjb21taXQgbWVzc2FnZSByZWFsbHkgaGlnaGxpZ2h0cyB0aGUgc2NlbmFyaW8gd2hlcmUgYGlub2RlLSZndDtpX3JkZXYgPT0gMGAuIFRoYXQmIzM5O3MgdGhlIHJlYWwga2V5IGhlcmUuIFRoZSBjb21taXQgbWVzc2FnZSBhbHNvIG1lbnRpb25zIGBmdXNlIHdpdGggcm9vdG1vZGU9U19JRkJMS2AsIHdoaWNoIEkgdGhpbmsgY291bGQgYmUgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBSaWdodCwgSSB0aGluayBJJiMzOTtsbCBkaXZlIGludG8gYGdldF90cmVlX2JkZXZfZmxhZ3NgIGluIGBmcy9zdXBlci5jYC4gVGhhdCBzZWVtcyB0byBiZSB0aGUgY3JpdGljYWwgZW50cnkgcG9pbnQgdG8gdGVzdCBmcm9tLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2dldF90cmVlX2JkZXZfZmxhZ3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9zdXBlci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3N1cGVyLmM9MTg0MT1FWFBPUlRfU1lNQk9MX0dQTChzZXR1cF9iZGV2X3N1cGVyKTtcbi0tXG5mcy9zdXBlci5jLTE4NDMtLyoqXG5mcy9zdXBlci5jOjE4NDQ6ICogZ2V0X3RyZWVfYmRldl9mbGFncyAtIEdldCBhIHN1cGVyYmxvY2sgYmFzZWQgb24gYSBzaW5nbGUgYmxvY2sgZGV2aWNlXG5mcy9zdXBlci5jLTE4NDUtICogQGZjOiBUaGUgZmlsZXN5c3RlbSBjb250ZXh0IGhvbGRpbmcgdGhlIHBhcmFtZXRlcnNcbi0tXG5mcy9zdXBlci5jLTE4NDgtICovXG5mcy9zdXBlci5jOjE4NDk6aW50IGdldF90cmVlX2JkZXZfZmxhZ3Moc3RydWN0IGZzX2NvbnRleHQgKmZjLFxuZnMvc3VwZXIuYy0xODUwLVx0XHRpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLFxuLS1cbmZzL3N1cGVyLmMtMTg5Mi19XG5mcy9zdXBlci5jOjE4OTM6RVhQT1JUX1NZTUJPTF9HUEwoZ2V0X3RyZWVfYmRldl9mbGFncyk7XG5mcy9zdXBlci5jLTE4OTQtXG4tLVxuZnMvc3VwZXIuYz0xOTAwPWludCBnZXRfdHJlZV9iZGV2KHN0cnVjdCBmc19jb250ZXh0ICpmYyxcbi0tXG5mcy9zdXBlci5jLTE5MDMte1xuZnMvc3VwZXIuYzoxOTA0Olx0cmV0dXJuIGdldF90cmVlX2JkZXZfZmxhZ3MoZmMsIGZpbGxfc3VwZXIsIDApO1xuZnMvc3VwZXIuYy0xOTA1LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTI0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBnZXRfdHJlZV9iZGV2YCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldGluZyBgZ2V0X3RyZWVfYmRldmAgaXMgaW50ZXJlc3RpbmcuIEl0IGxvb2tzIGxpa2UgdGhpcyBmdW5jdGlvbiBpcyBwcmV0dHkgd2lkZWx5IHVzZWQgYnkgdmFyaW91cyBmaWxlc3lzdGVtcywgc28gYW55IGNoYW5nZSBoZXJlIGhhcyBhIHBvdGVudGlhbGx5IGJyb2FkIGltcGFjdC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBwcmV2ZW50aW5nIGBsb29rdXBfYmRldmAgZnJvbSByZXR1cm5pbmcgYSBgZGV2X3RgIG9mIHplcm8uIEVzc2VudGlhbGx5LCB0aGV5JiMzOTtyZSBwbHVnZ2luZyBhIGJ1ZyB0aGF0IHdhcyBjYXVzaW5nIHdhcm5pbmdzIGluIGBzdXBlcl9kZXZfcmVnaXN0ZXJgLCB3aGljaCBpcyBkZWZpbml0ZWx5IGEgZ29vZCB0aGluZy4KClRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXM6IHNob3VsZCBJIGZ1enogdGhpcz8gQWJzb2x1dGVseSwgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyLiBBbnkgYWRqdXN0bWVudCBhdCB0aGlzIGxldmVsIG5lY2Vzc2l0YXRlcyBzb21lIGhlYXZ5IHRlc3RpbmcgdG8gYXZvaWQgdW5mb3Jlc2VlbiBzaWRlLWVmZmVjdHMuCgpNeSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGBsb29rdXBfYmRldmAgc3ltYm9sIHByaW1hcmlseS4KCkFzIGZvciBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG5lZWRzLCBgQ09ORklHX0JMT0NLYCBpcyB0aGUgb2J2aW91cyBvbmUsIHdoaWNoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gSG93ZXZlciwgdGhlIGNvbW1pdCBtZXNzYWdlIG1lbnRpb25zICYjMzQ7ZnVzZSB3aXRoIHJvb3Rtb2RlPVNfSUZCTEssJiMzNDsgc28gSSBzaG91bGQgcHJvYmFibHkgYWxzbyBleHBsb3JlIGBDT05GSUdfRlVTRV9GU2AgdG8gc2VlIGlmIHRoYXQgcmV2ZWFscyBhbnl0aGluZyBhZGRpdGlvbmFsLiBMZXQgbWUgY2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyLCByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19GVVNFX0ZTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk4PUNPTkZJR19BVVRPRlNfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9heG01NXh4X2RlZmNvbmZpZzoxOTk6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9heG01NXh4X2RlZmNvbmZpZy0yMDAtQ09ORklHX0NVU0U9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00NDU9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQ2OkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDctQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWc9MTE5PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWc6MTIwOkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWctMTIxLUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnPTU4MD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZzo1ODE6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnLTU4Mi1DT05GSUdfQ1VTRT1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZz0yNzk9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZzoyODA6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODEtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04OD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZzo4OTpDT05GSUdfRlVTRV9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWctOTAtQ09ORklHX01TRE9TX0ZTPW1cbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE5MDc9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDg6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy0xOTA5LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnPTk4MD1DT05GSUdfQVVUT0ZTX0ZTPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTgxOkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctOTgyLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTEwMTE9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjEwMTI6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy0xMDEzLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWc9NDEyPUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnOjQxMzpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWctNDE0LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnPTM2Nz1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc6MzY4OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWctMzY5LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWc9MzkwPUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnOjM5MTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWctMzkyLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWc9MzU5PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnOjM2MDpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWctMzYxLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc9MzY5PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnOjM3MDpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWctMzcxLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnPTM4OD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc6Mzg5OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWctMzkwLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWc9NDc1PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnOjQ3NjpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWctNDc3LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZz0zNTk9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZzozNjA6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWctMzYxLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZz0zNjA9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZzozNjE6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE2eF9kZWZjb25maWctMzYyLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnPTM3OD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWc6Mzc5OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWctMzgwLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZz0zNTc9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZzozNTg6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWctMzU5LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWc9MzU3PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnOjM1ODpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWctMzU5LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnPTE0NT1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTQ2OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWctMTQ3LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc9NjA9Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnLTYxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYyOkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZy02My1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZz0xNDg9Q09ORklHX0pCRDJfREVCVUc9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZzoxNDk6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZy0xNTAtQ09ORklHX0ZIQU5ETEU9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc9MTc3PUNPTkZJR19GQU5PVElGWT15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3ODpDT05GSUdfRlVTRV9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3OS1DT05GSUdfQ1VTRT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTk0PUNPTkZJR19GU19FTkNSWVBUSU9OPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5NTpDT05GSUdfRlVTRV9GUz15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTYtQ09ORklHX0NVU0U9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZz05Mz1DT05GSUdfRlNfRU5DUllQVElPTj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTQ6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTk1LUNPTkZJR19DVVNFPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz0xMDE9Q09ORklHX0ZTX0VOQ1JZUFRJT049eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6MTAyOkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMy1DT05GSUdfQ1VTRT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZz0xNzg9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3OTpDT05GSUdfRlVTRV9GUz15XG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnLTE4MC1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc9NjI9Q09ORklHX0ZBTk9USUZZPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjYzOkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTY0LUNPTkZJR19DVVNFPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZz0yNDM9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyNDQ6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWctMjQ1LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZz0yODE9Q09ORklHX1FVT1RBX05FVExJTktfSU5URVJGQUNFPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI4MjpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZy0yODMtQ09ORklHX0NVU0U9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnPTE1Mz1DT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTU0OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnLTE1NS1DT05GSUdfQ1VTRT1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc9OTc9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5ODpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZy05OS1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc9NzQ9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZzo3NTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZy03Ni1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc9MzA3PUNPTkZJR19BVVRPRlNfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzA4OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnLTMwOS1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZz0zNTg9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1OTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTM2MC1DT05GSUdfVklSVElPX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWc9MzIyPUNPTkZJR19RRk1UX1YyPXlcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZzozMjM6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfZGVmY29uZmlnLTMyNC1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZz0zMjg9Q09ORklHX1FGTVRfVjI9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZzozMjk6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZy0zMzAtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL21hbHRhdXBfeHBhX2RlZmNvbmZpZz0zMjg9Q09ORklHX1FGTVRfVjI9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGF1cF94cGFfZGVmY29uZmlnOjMyOTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWctMzMwLUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZz01NTc9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZzo1NTg6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWctNTU5LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnPTY5PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZzo3MDpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnLTcxLUNPTkZJR19ORVRGU19TVVBQT1JUPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWc9MzA1PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3Mvcm0yMDBfZGVmY29uZmlnOjMwNjpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWctMzA3LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9zYjEyNTBfc3dhcm1fZGVmY29uZmlnPTcxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL3NiMTI1MF9zd2FybV9kZWZjb25maWc6NzI6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3Mvc2IxMjUwX3N3YXJtX2RlZmNvbmZpZy03My1DT05GSUdfUFJPQ19LQ09SRT15XG4tLVxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTY0Yml0X2RlZmNvbmZpZz0yNTk9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtNjRiaXRfZGVmY29uZmlnOjI2MDpDT05GSUdfRlVTRV9GUz15XG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtNjRiaXRfZGVmY29uZmlnLTI2MS1DT05GSUdfQ1VTRT15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWc9MTY0PUNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L2dlX2ltcDNhX2RlZmNvbmZpZzoxNjU6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWctMTY2LUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wbWFjMzJfZGVmY29uZmlnPTI1OD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWc6MjU5OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWctMjYwLUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZz0yNjk9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZzoyNzA6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWctMjcxLUNPTkZJR19PVkVSTEFZX0ZTPW1cbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc9MzI0PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnOjMyNTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWctMzI2LUNPTkZJR19PVkVSTEFZX0ZTPW1cbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnPTkzMz1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc6OTM0OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWctOTM1LUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy93aWlfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy93aWlfZGVmY29uZmlnOjEwNDpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL3Bvd2VycGMvY29uZmlncy93aWlfZGVmY29uZmlnLTEwNS1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnPTY4Nj1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZzo2ODc6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnLTY4OC1DT05GSUdfQ1VTRT1tXG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnPTY3Mj1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZzo2NzM6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnLTY3NC1DT05GSUdfQ1VTRT1tXG4tLVxuYXJjaC9zaC9jb25maWdzL3I3NzgwbXBfZGVmY29uZmlnPTc3PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvc2gvY29uZmlncy9yNzc4MG1wX2RlZmNvbmZpZzo3ODpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL3NoL2NvbmZpZ3Mvcjc3ODBtcF9kZWZjb25maWctNzktQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL3NoL2NvbmZpZ3Mvcjc3ODVycF9kZWZjb25maWc9NzI9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9zaC9jb25maWdzL3I3Nzg1cnBfZGVmY29uZmlnOjczOkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvc2gvY29uZmlncy9yNzc4NXJwX2RlZmNvbmZpZy03NC1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9zZGs3Nzg2X2RlZmNvbmZpZz0xNjg9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4Nl9kZWZjb25maWc6MTY5OkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvc2gvY29uZmlncy9zZGs3Nzg2X2RlZmNvbmZpZy0xNzAtQ09ORklHX0NVU0U9bVxuLS1cbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc9MjIwPUNPTkZJR19YRlNfRlM9bVxuYXJjaC9zaC9jb25maWdzL3RpdGFuX2RlZmNvbmZpZzoyMjE6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9zaC9jb25maWdzL3RpdGFuX2RlZmNvbmZpZy0yMjItQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jaS94ODZfNjQuY29uZmlnPTg2PUNPTkZJR19LVk1fSU5URUw9bVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jaS94ODZfNjQuY29uZmlnLTg4LSNvcHRpb25zIGZvciBLVk0gZ3Vlc3RzXG5kcml2ZXJzL2dwdS9kcm0vY2kveDg2XzY0LmNvbmZpZzo4OTpDT05GSUdfRlVTRV9GUz15XG5kcml2ZXJzL2dwdS9kcm0vY2kveDg2XzY0LmNvbmZpZy05MC1DT05GSUdfSFlQRVJWSVNPUl9HVUVTVD15XG4tLVxuZnMvTWFrZWZpbGU9MTAyPW9iai0kKENPTkZJR19BREZTX0ZTKVx0XHQmIzQzOz0gYWRmcy9cbmZzL01ha2VmaWxlOjEwMzpvYmotJChDT05GSUdfRlVTRV9GUylcdFx0JiM0Mzs9IGZ1c2UvXG5mcy9NYWtlZmlsZS0xMDQtb2JqLSQoQ09ORklHX09WRVJMQVlfRlMpXHQmIzQzOz0gb3ZlcmxheWZzL1xuLS1cbmZzL2Z1c2UvTWFrZWZpbGU9Nz1jY2ZsYWdzLXkgPSAtSSQoc3JjKVxuZnMvZnVzZS9NYWtlZmlsZS04LVxuZnMvZnVzZS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19GVVNFX0ZTKSAmIzQzOz0gZnVzZS5vXG5mcy9mdXNlL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19DVVNFKSAmIzQzOz0gY3VzZS5vXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5hYXJjaDY0PTUyPUNPTkZJR19GVU5DVElPTl9QUk9GSUxFUj15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLmFhcmNoNjQ6NTM6Q09ORklHX0ZVU0VfRlM9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5hYXJjaDY0LTU0LUNPTkZJR19GV19DRkdfU1lTRlNfQ01ETElORT15XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy52bT00PUNPTkZJR19DUllQVE9fREVWX1ZJUlRJTz15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnZtOjU6Q09ORklHX0ZVU0VfRlM9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy52bS02LUNPTkZJR19GVVNFX1BBU1NUSFJPVUdIPXlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbj03NT1DT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbjo3NjpDT05GSUdfRlVTRV9GUz15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbi03Ny1DT05GSUdfRldfTE9BREVSX1VTRVJfSEVMUEVSPXlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9tZW1mZC9jb25maWc6MTpDT05GSUdfRlVTRV9GUz1tXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdnNvY2svY29uZmlnPTM1PUNPTkZJR19TUVVBU0hGU19aU1REPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Zzb2NrL2NvbmZpZzozNjpDT05GSUdfRlVTRV9GUz15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy92c29jay9jb25maWctMzctQ09ORklHX1ZJUlRJT19GUz15XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzMTA5CgkJCQkJCQlvdXRwdXQ6IDEyMgoJCQkJCQkJdGhvdWdodHM6IDUyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBGdW5jdGlvbmFsIENoYW5nZSBpbiBCbG9jayBEZXZpY2UgSGFuZGxpbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggcmVsYXRlZCB0byBgQ09ORklHX0ZVU0VfRlNgLiBUaGUgY29yZSBvZiB0aGlzIGNoYW5nZSBmb2N1c2VzIG9uIHRoZSBgbG9va3VwX2JkZXZgIGZ1bmN0aW9uLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIHNwZWNpZmljIGNoZWNrOiBpdCYjMzk7cyByZWplY3RpbmcgYmxvY2sgZGV2aWNlIGlub2RlcyB3aGVyZSBgaV9yZGV2YCBpcyBlcXVhbCB0byAwLiBUaGlzIHNlZW1zIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYWltZWQgYXQgY29ycmVjdGluZyBhIHBvdGVudGlhbCBpc3N1ZS4KCkxldCYjMzk7cyBxdWlja2x5IHJlY2FwOiB0aGUgY3JpdGljYWwgcGllY2UgaXMgYGxvb2t1cF9iZGV2YC4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IGBsb29rdXBfYmRldmAgaXMgaW5kZWVkIHJlYWNoYWJsZSB2aWEgbXVsdGlwbGUgcGF0aHMg4oCTIG1vdW50IG9wZXJhdGlvbnMsIGBxdW90YWN0bGAsIEJ0cmZzIGlvY3RscywgYW5kIGxpa2VseSBvdGhlcnMuIEkmIzM5O3ZlIGRvdWJsZS1jaGVja2VkIHRoYXQ7IGl0IHNlZW1zIHRvIGJlIHRoZSBvbmx5IGZ1bmN0aW9uIGRpcmVjdGx5IG1vZGlmaWVkIGJ5IHRoaXMgcGF0Y2guCgpSZXZpZXdpbmcgdGhlIGNvZGUgc25pcHBldCBhZ2FpbiBjb25maXJtcyB0aGlzLiBUaGUgcGF0Y2ggYWRkcyBhIHNpbXBsZSBjb25kaXRpb25hbCBjaGVjayByaWdodCBhZnRlciB0aGUgYG1heV9vcGVuX2RldmAgY2FsbC4gSXQgZW5zdXJlcyB0aGF0IGBpX3JkZXZgIGlzbiYjMzk7dCB6ZXJvLCByZXR1cm5pbmcgYC1FTk9ERVZgIGlmIGl0IGlzLiBUaGUgcmF0aW9uYWxlIGlzIGNsZWFyOiBhIGBkZXZfdGAgb2YgMCBpcyBuZXZlciB2YWxpZCBmb3IgYW4gYWN0dWFsIGJsb2NrIGRldmljZSwgYW5kIGFsbG93aW5nIHRoZXNlICYjMzk7ZmFrZSYjMzk7IGlub2RlcyAobGlrZSB0aG9zZSBwb3NzaWJseSBnZW5lcmF0ZWQgYnkgRlVTRSB3aGVuIHVzaW5nIGByb290bW9kZT1TX0lGQkxLYCkgdG8gcHJvcGFnYXRlIGNhbiBjcmVhdGUgcHJvYmxlbXMgaW4gc3VwZXJibG9jayBsb29rdXAgYW5kIHRyaWdnZXIgd2FybmluZ3MgaW4gdGhlIGRldmljZS10by1zdXBlcmJsb2NrIHRhYmxlIHJlZ2lzdHJhdGlvbiAoYHN1cGVyX2Rldl9yZWdpc3RlcmApLgoKVGhpcyBjbGVhcmx5IHByZXZlbnRzIGEgcG90ZW50aWFsIGJ1Zy4gU2luY2UgdGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgYmVoYXZpb3Igb2YgYSBjb3JlIGJsb2NrIGxheWVyIGZ1bmN0aW9uLCBhbmQgdGhlIGlzc3VlIGFyaXNlcyBpbiBjb25qdW5jdGlvbiB3aXRoIEZVU0UsIHRoaXMgbWFrZXMgaXQgYW4gZXhjZWxsZW50IGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gRm9jdXNpbmcgZnV6emluZyBlZmZvcnRzIG9uIGBsb29rdXBfYmRldmAgd2l0aCBgRlVTRV9GU2AgZW5hYmxlZCB3b3VsZCBiZSB0aGUgbW9zdCBlZmZlY3RpdmUgd2F5IHRvIHZhbGlkYXRlIHRoaXMgZml4LgoKSSYjMzk7bSByZWFkeSB0byBkb2N1bWVudCB0aGVzZSBmaW5kaW5ncyB1c2luZyBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RlVTRV9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2xvb2t1cF9iZGV2JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtGVVNFX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bG9va3VwX2JkZXYmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGluIGBsb29rdXBfYmRldmAgdG8gcmVqZWN0IGJsb2NrIGRldmljZSBpbm9kZXMgd2l0aCBgaV9yZGV2ID09IDBgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgYmxvY2sgbGF5ZXIgdGhhdCBwcmV2ZW50cyBzdXBlcmJsb2NrIGxvb2t1cCBjb25mdXNpb24gYW5kIHdhcm5pbmdzIHdoZW4gZGVhbGluZyB3aXRoIGZha2UgYmxvY2sgZGV2aWNlIGlub2RlcyAoZS5nLiwgZnJvbSBGVVNFKS4gRnV6emluZyBgbG9va3VwX2JkZXZgIHdpdGggRlVTRSBlbmFibGVkIHdpbGwgaGVscCB2ZXJpZnkgdGhpcyBmaXguJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0MjozOC42ODY0NTU5MDJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODU4MzE5NjQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJGVVNFX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibG9va3VwX2JkZXZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYGxvb2t1cF9iZGV2YCB0byByZWplY3QgYmxvY2sgZGV2aWNlIGlub2RlcyB3aXRoIGBpX3JkZXYgPT0gMGAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBibG9jayBsYXllciB0aGF0IHByZXZlbnRzIHN1cGVyYmxvY2sgbG9va3VwIGNvbmZ1c2lvbiBhbmQgd2FybmluZ3Mgd2hlbiBkZWFsaW5nIHdpdGggZmFrZSBibG9jayBkZXZpY2UgaW5vZGVzIChlLmcuLCBmcm9tIEZVU0UpLiBGdXp6aW5nIGBsb29rdXBfYmRldmAgd2l0aCBGVVNFIGVuYWJsZWQgd2lsbCBoZWxwIHZlcmlmeSB0aGlzIGZpeC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6MzguNjg2NDYxNjgyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjM4NjkxMTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBjNmY2NDI2OTIzNWIzOTBjYjczMjZkZjE4NzRjMTEzYzEwNzc2YTJjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDMgMDc6NDI6MzcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYmxvY2svYmRldi5jIGIvYmxvY2svYmRldi5jXFxuaW5kZXggMjhiMGQ0MGMzNjJmZTguLjc5N2Q3ZjBlZjYwOTQ2IDEwMDY0NFxcbi0tLSBhL2Jsb2NrL2JkZXYuY1xcbisrKyBiL2Jsb2NrL2JkZXYuY1xcbkBAIC0xMjc4LDYgKzEyNzgsMTggQEAgaW50IGxvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBkZXZfdCAqZGV2KVxcbiBcXHRpZiAoIW1heV9vcGVuX2RldihcXHUwMDI2cGF0aCkpXFxuIFxcdFxcdGdvdG8gb3V0X3BhdGhfcHV0O1xcbiBcXG4rXFx0LypcXG4rXFx0ICogUmVqZWN0IGEgYmxvY2sgZGV2aWNlIGlub2RlIHdpdGggaV9yZGV2ID09IDAuICBBIGRldl90IG9mIDAgaXNcXG4rXFx0ICogbmV2ZXIgdmFsaWQgZm9yIGEgYmxvY2sgZGV2aWNlOiBubyByZWFsIGJsb2NrIGRldmljZSBkcml2ZXJcXG4rXFx0ICogcmVnaXN0ZXJzIG1ham9yIDAuICBGYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4gZnVzZSB3aXRoXFxuK1xcdCAqIHJvb3Rtb2RlPVNfSUZCTEspIGNhbiBleHBvc2UgaV9yZGV2ID09IDAsIGFuZCBsZXR0aW5nIHRoYXRcXG4rXFx0ICogcHJvcGFnYXRlIHdvdWxkIGNvbmZ1c2Ugc3VwZXJibG9jayBsb29rdXAgYW5kIHRyaWdnZXIgd2FybmluZ3NcXG4rXFx0ICogaW4gdGhlIGRldmljZS10by1zdXBlcmJsb2NrIHRhYmxlIChzdXBlcl9kZXZfcmVnaXN0ZXIpLlxcbitcXHQgKi9cXG4rXFx0ZXJyb3IgPSAtRU5PREVWO1xcbitcXHRpZiAoIWlub2RlLVxcdTAwM2VpX3JkZXYpXFxuK1xcdFxcdGdvdG8gb3V0X3BhdGhfcHV0O1xcbitcXG4gXFx0KmRldiA9IGlub2RlLVxcdTAwM2VpX3JkZXY7XFxuIFxcdGVycm9yID0gMDtcXG4gb3V0X3BhdGhfcHV0OlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0MjozOS4xNTE4Mzk5MjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MTE3ODAxMjU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkZVU0VfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsb29rdXBfYmRldlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGM2ZjY0MjY5MjM1YjM5MGNiNzMyNmRmMTg3NGMxMTNjMTA3NzZhMmNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzIDA3OjQyOjM3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYmxvY2svYmRldi5jIGIvYmxvY2svYmRldi5jXG5pbmRleCAyOGIwZDQwYzM2MmZlOC4uNzk3ZDdmMGVmNjA5NDYgMTAwNjQ0XG4tLS0gYS9ibG9jay9iZGV2LmNcbisrKyBiL2Jsb2NrL2JkZXYuY1xuQEAgLTEyNzgsNiArMTI3OCwxOCBAQCBpbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXG4gXHRpZiAoIW1heV9vcGVuX2RldihcdTAwMjZwYXRoKSlcbiBcdFx0Z290byBvdXRfcGF0aF9wdXQ7XG4gXG4rXHQvKlxuK1x0ICogUmVqZWN0IGEgYmxvY2sgZGV2aWNlIGlub2RlIHdpdGggaV9yZGV2ID09IDAuICBBIGRldl90IG9mIDAgaXNcbitcdCAqIG5ldmVyIHZhbGlkIGZvciBhIGJsb2NrIGRldmljZTogbm8gcmVhbCBibG9jayBkZXZpY2UgZHJpdmVyXG4rXHQgKiByZWdpc3RlcnMgbWFqb3IgMC4gIEZha2UgYmxvY2sgZGV2aWNlIGlub2RlcyAoZS5nLiBmdXNlIHdpdGhcbitcdCAqIHJvb3Rtb2RlPVNfSUZCTEspIGNhbiBleHBvc2UgaV9yZGV2ID09IDAsIGFuZCBsZXR0aW5nIHRoYXRcbitcdCAqIHByb3BhZ2F0ZSB3b3VsZCBjb25mdXNlIHN1cGVyYmxvY2sgbG9va3VwIGFuZCB0cmlnZ2VyIHdhcm5pbmdzXG4rXHQgKiBpbiB0aGUgZGV2aWNlLXRvLXN1cGVyYmxvY2sgdGFibGUgKHN1cGVyX2Rldl9yZWdpc3RlcikuXG4rXHQgKi9cbitcdGVycm9yID0gLUVOT0RFVjtcbitcdGlmICghaW5vZGUtXHUwMDNlaV9yZGV2KVxuK1x0XHRnb3RvIG91dF9wYXRoX3B1dDtcbitcbiBcdCpkZXYgPSBpbm9kZS1cdTAwM2VpX3JkZXY7XG4gXHRlcnJvciA9IDA7XG4gb3V0X3BhdGhfcHV0OlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6MzkuMTUxODQyNjY3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQxNzk0NzY0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCbG9jayBEZXZpY2UgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgYmxvY2svYmRldi5jYC4gSXQncyBhIHByZXR0eSBmb2N1c2VkIG1vZGlmaWNhdGlvbiwgc2VlbXMgbGlrZSBpdCdzIGNoYW5naW5nIHRoZSBiZWhhdmlvciBvZiBgbG9va3VwX2JkZXZgLiBTcGVjaWZpY2FsbHksIGl0J3MgbWFraW5nIGBsb29rdXBfYmRldmAgcmV0dXJuIGAtRU5PREVWYCBpZiB0aGUgYGlub2RlLVx1MDAzZWlfcmRldmAgdmFsdWUgaXMgMC4gVGhhdCdzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHJpZ2h0IGluIHRoZSBibG9jayBsYXllciwgYW5kIGBsb29rdXBfYmRldmAgaXMgdGhlIGNydWNpYWwgZnVuY3Rpb24uIEkga25vdyBpdCBnZXRzIGNhbGxlZCBmcm9tIGFsbCBzb3J0cyBvZiBwbGFjZXMsIGxpa2Ugd2hlbiBtb3VudGluZyBhIGJsb2NrIGRldmljZSBvciBvcGVuaW5nIG9uZS4gVGhlIGNvbnNlcXVlbmNlcyBvZiB0aGlzIGNoYW5nZSBjb3VsZCBiZSBzaWduaWZpY2FudCBkZXBlbmRpbmcgb24gd2hlcmUgZWxzZSB0aGUgZXJyb3IgY29kZSBpcyBldmFsdWF0ZWQgaW4gdGhlIGNhbGwgc3RhY2suIExldCBtZSBnZXQgcmlnaHQgaW50byBgYmxvY2svYmRldi5jYCBhbmQgc2VlIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFuZCB3aHkgdGhpcyBtb2RpZmljYXRpb24gaXMgYmVpbmcgaW50cm9kdWNlZCBpbiB0aGUgZmlyc3QgcGxhY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByYXRpb25hbGUgYW5kIHRoZSBwb3RlbnRpYWwgcmlwcGxlIGVmZmVjdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5NTEsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo0Mi41Njk3OTI2MzdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjMxODIxMDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibG9va3VwX2JkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYmxvY2svYmRldi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImJsb2NrL2JkZXYuYz0xMTE2PXN0cnVjdCBmaWxlICpiZGV2X2ZpbGVfb3Blbl9ieV9wYXRoKGNvbnN0IGNoYXIgKnBhdGgsIGJsa19tb2RlX3QgbW9kZSxcXG4tLVxcbmJsb2NrL2JkZXYuYy0xMTIzLVxcbmJsb2NrL2JkZXYuYzoxMTI0OlxcdGVycm9yID0gbG9va3VwX2JkZXYocGF0aCwgXFx1MDAyNmRldik7XFxuYmxvY2svYmRldi5jLTExMjUtXFx0aWYgKGVycm9yKVxcbi0tXFxuYmxvY2svYmRldi5jPTEyNDc9RVhQT1JUX1NZTUJPTChiZGV2X2ZwdXQpO1xcbi0tXFxuYmxvY2svYmRldi5jLTEyNDktLyoqXFxuYmxvY2svYmRldi5jOjEyNTA6ICogbG9va3VwX2JkZXYoKSAtIExvb2sgdXAgYSBzdHJ1Y3QgYmxvY2tfZGV2aWNlIGJ5IG5hbWUuXFxuYmxvY2svYmRldi5jLTEyNTEtICogQHBhdGhuYW1lOiBOYW1lIG9mIHRoZSBibG9jayBkZXZpY2UgaW4gdGhlIGZpbGVzeXN0ZW0uXFxuLS1cXG5ibG9jay9iZGV2LmMtMTI1OS0gKi9cXG5ibG9jay9iZGV2LmM6MTI2MDppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXFxuYmxvY2svYmRldi5jLTEyNjEte1xcbi0tXFxuYmxvY2svYmRldi5jLTEyOTgtfVxcbmJsb2NrL2JkZXYuYzoxMjk5OkVYUE9SVF9TWU1CT0wobG9va3VwX2JkZXYpO1xcbmJsb2NrL2JkZXYuYy0xMzAwLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo0Mi42MzMwMDM5NzJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTY3MDY1ODQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBCbG9jayBEZXZpY2UgTG9va3VwKipcblxuT2theSwgc28gdGhlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdpdGhpbiBgbG9va3VwX2JkZXZgLiBUaW1lIHRvIHRyYWNlIGl0cyB1c2FnZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHRzIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGZ1bGx5IGdyYXNwIHRoZSBpbXBhY3Qgb2YgdGhlIHBhdGNoLiBLbm93aW5nIGl0cyBjYWxsZXJzIHdpbGwgdGVsbCBtZSB3aGljaCBtb2R1bGVzIG9yIHN1YnN5c3RlbXMgcmVseSBvbiB0aGUgYmxvY2sgZGV2aWNlIGxvb2t1cCBtZWNoYW5pc20gYW5kIHdoaWNoIGNvdWxkIGJlIGFmZmVjdGVkIGJ5IHRoZSBtb2RpZmljYXRpb25zLiBJdCdzIGEgY3JpdGljYWwgZmlyc3Qgc3RlcCB0byBhc3Nlc3MgdGhlIG92ZXJhbGwgaW1wbGljYXRpb25zLiBUaGlzIHdpbGwgc2V0IHRoZSBzdGFnZSBmb3IgYSBwcm9wZXIgaW1wYWN0IGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjA0LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6NDUuNjAwMDcxNjE2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4MTY3NTc4MjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibG9va3VwX2JkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0PTk1PUtlcm5lbCBwYXJhbWV0ZXJzXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dC02NjgwLVxcdFxcdFxcdFVzdWFsbHkgdGhpcyBpcyBhIGJsb2NrIGRldmljZSBzcGVjaWZpZXIgb2Ygc29tZSBraW5kLFxcbkRvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0OjY2ODE6XFx0XFx0XFx0c2VlIHRoZSBlYXJseV9sb29rdXBfYmRldiBjb21tZW50IGluXFxuRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQtNjY4Mi1cXHRcXHRcXHRibG9jay9lYXJseS1sb29rdXAuYyBmb3IgZGV0YWlscy5cXG4tLVxcbmJsb2NrL2JkZXYuYz0xMTE2PXN0cnVjdCBmaWxlICpiZGV2X2ZpbGVfb3Blbl9ieV9wYXRoKGNvbnN0IGNoYXIgKnBhdGgsIGJsa19tb2RlX3QgbW9kZSxcXG4tLVxcbmJsb2NrL2JkZXYuYy0xMTIzLVxcbmJsb2NrL2JkZXYuYzoxMTI0OlxcdGVycm9yID0gbG9va3VwX2JkZXYocGF0aCwgXFx1MDAyNmRldik7XFxuYmxvY2svYmRldi5jLTExMjUtXFx0aWYgKGVycm9yKVxcbi0tXFxuYmxvY2svYmRldi5jPTEyNDc9RVhQT1JUX1NZTUJPTChiZGV2X2ZwdXQpO1xcbi0tXFxuYmxvY2svYmRldi5jLTEyNDktLyoqXFxuYmxvY2svYmRldi5jOjEyNTA6ICogbG9va3VwX2JkZXYoKSAtIExvb2sgdXAgYSBzdHJ1Y3QgYmxvY2tfZGV2aWNlIGJ5IG5hbWUuXFxuYmxvY2svYmRldi5jLTEyNTEtICogQHBhdGhuYW1lOiBOYW1lIG9mIHRoZSBibG9jayBkZXZpY2UgaW4gdGhlIGZpbGVzeXN0ZW0uXFxuLS1cXG5ibG9jay9iZGV2LmMtMTI1OS0gKi9cXG5ibG9jay9iZGV2LmM6MTI2MDppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXFxuYmxvY2svYmRldi5jLTEyNjEte1xcbi0tXFxuYmxvY2svYmRldi5jLTEyOTgtfVxcbmJsb2NrL2JkZXYuYzoxMjk5OkVYUE9SVF9TWU1CT0wobG9va3VwX2JkZXYpO1xcbmJsb2NrL2JkZXYuYy0xMzAwLVxcbi0tXFxuYmxvY2svZWFybHktbG9va3VwLmM9MTk3PXN0YXRpYyBpbnQgX19pbml0IGRldnRfZnJvbV9kZXZudW0oY29uc3QgY2hhciAqbmFtZSwgZGV2X3QgKmRldnQpXFxuLS1cXG5ibG9jay9lYXJseS1sb29rdXAuYy0yNDMtICovXFxuYmxvY2svZWFybHktbG9va3VwLmM6MjQ0OmludCBfX2luaXQgZWFybHlfbG9va3VwX2JkZXYoY29uc3QgY2hhciAqbmFtZSwgZGV2X3QgKmRldnQpXFxuYmxvY2svZWFybHktbG9va3VwLmMtMjQ1LXtcXG4tLVxcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmM9MjU1Nz1zdGF0aWMgc3NpemVfdCByZWdpc3Rlcl9iY2FjaGUoc3RydWN0IGtvYmplY3QgKmssIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0cixcXG4tLVxcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMtMjYyMy1cXHRcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZiY2hfcmVnaXN0ZXJfbG9jayk7XFxuZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYzoyNjI0OlxcdFxcdFxcdGlmIChsb29rdXBfYmRldihzdHJpbShwYXRoKSwgXFx1MDAyNmRldikgPT0gMCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMtMjYyNS1cXHRcXHRcXHQgICAgYmNoX2lzX29wZW4oZGV2KSlcXG4tLVxcbmRyaXZlcnMvbWQvZG0taW5pdC5jPTI3MT1zdGF0aWMgaW50IF9faW5pdCBkbV9pbml0X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbWQvZG0taW5pdC5jLTMwMC1cXHRcXHRcXHRETUlORk8oXFxcIndhaXRpbmcgZm9yIGRldmljZSAlcyAuLi5cXFwiLCB3YWl0Zm9yW2ldKTtcXG5kcml2ZXJzL21kL2RtLWluaXQuYzozMDE6XFx0XFx0XFx0d2hpbGUgKGVhcmx5X2xvb2t1cF9iZGV2KHdhaXRmb3JbaV0sIFxcdTAwMjZkZXYpKVxcbmRyaXZlcnMvbWQvZG0taW5pdC5jLTMwMi1cXHRcXHRcXHRcXHRmc2xlZXAoNTAwMCk7XFxuLS1cXG5kcml2ZXJzL21kL2RtLXRhYmxlLmM9MzEyPXN0YXRpYyBpbnQgdXBncmFkZV9tb2RlKHN0cnVjdCBkbV9kZXZfaW50ZXJuYWwgKmRkLCBibGtfbW9kZV90IG5ld19tb2RlLFxcbi0tXFxuZHJpdmVycy9tZC9kbS10YWJsZS5jLTMzMi0gKiBOb3RlOiB0aGUgX19yZWYgYW5ub3RhdGlvbiBpcyBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgdGhlIF9faW5pdFxcbmRyaXZlcnMvbWQvZG0tdGFibGUuYzozMzM6ICogbWFya2VkIGVhcmx5X2xvb2t1cF9iZGV2IHdoZW4gY2FsbGVkIGR1cmluZyBlYXJseSBib290IGNvZGUgZnJvbSBkbS1pbml0LmMuXFxuZHJpdmVycy9tZC9kbS10YWJsZS5jLTMzNC0gKi9cXG5kcml2ZXJzL21kL2RtLXRhYmxlLmM9MzM1PWludCBfX3JlZiBkbV9kZXZ0X2Zyb21fcGF0aChjb25zdCBjaGFyICpwYXRoLCBkZXZfdCAqZGV2X3ApXFxuLS1cXG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzQ3LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9tZC9kbS10YWJsZS5jOjM0ODpcXHRcXHRyID0gbG9va3VwX2JkZXYocGF0aCwgXFx1MDAyNmRldik7XFxuZHJpdmVycy9tZC9kbS10YWJsZS5jLTM0OS0jaWZuZGVmIE1PRFVMRVxcbmRyaXZlcnMvbWQvZG0tdGFibGUuYy0zNTAtXFx0XFx0aWYgKHIgXFx1MDAyNlxcdTAwMjYgc3lzdGVtX3N0YXRlIFxcdTAwM2MgU1lTVEVNX1JVTk5JTkcpXFxuZHJpdmVycy9tZC9kbS10YWJsZS5jOjM1MTpcXHRcXHRcXHRyID0gZWFybHlfbG9va3VwX2JkZXYocGF0aCwgXFx1MDAyNmRldik7XFxuZHJpdmVycy9tZC9kbS10YWJsZS5jLTM1Mi0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbWQvbWQtYXV0b2RldGVjdC5jPTEyMz1zdGF0aWMgdm9pZCBfX2luaXQgbWRfc2V0dXBfZHJpdmUoc3RydWN0IG1kX3NldHVwX2FyZ3MgKmFyZ3MpXFxuLS1cXG5kcml2ZXJzL21kL21kLWF1dG9kZXRlY3QuYy0xNDktXFxuZHJpdmVycy9tZC9tZC1hdXRvZGV0ZWN0LmM6MTUwOlxcdFxcdGlmIChlYXJseV9sb29rdXBfYmRldihkZXZuYW1lLCBcXHUwMDI2ZGV2KSlcXG5kcml2ZXJzL21kL21kLWF1dG9kZXRlY3QuYy0xNTEtXFx0XFx0XFx0ZGV2ID0gMDtcXG4tLVxcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM9MjAzPXN0YXRpYyB2b2lkIGJsb2NrMm10ZF9mcmVlX2RldmljZShzdHJ1Y3QgYmxvY2sybXRkX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9tdGQvZGV2aWNlcy9ibG9jazJtdGQuYy0yMTktICogVGhpcyBmdW5jdGlvbiBpcyBtYXJrZWQgX19yZWYgYmVjYXVzZSBpdCBjYWxscyB0aGUgX19pbml0IG1hcmtlZFxcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM6MjIwOiAqIGVhcmx5X2xvb2t1cF9iZGV2IHdoZW4gY2FsbGVkIGZyb20gdGhlIGVhcmx5IGJvb3QgY29kZS5cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jLTIyMS0gKi9cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jPTIyMj1zdGF0aWMgc3RydWN0IGZpbGUgX19yZWYgKm1kdGJsb2NrX2Vhcmx5X2dldF9iZGV2KGNvbnN0IGNoYXIgKmRldm5hbWUsXFxuLS1cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jLTIyOS1cXHQvKlxcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM6MjMwOlxcdCAqIFdlIGNhbid0IHVzZSBlYXJseV9sb29rdXBfYmRldiBmcm9tIGEgcnVubmluZyBzeXN0ZW0uXFxuZHJpdmVycy9tdGQvZGV2aWNlcy9ibG9jazJtdGQuYy0yMzEtXFx0ICovXFxuLS1cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jLTI1MC1cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jOjI1MTpcXHRcXHRpZiAoIWVhcmx5X2xvb2t1cF9iZGV2KGRldm5hbWUsIFxcdTAwMjZkZXZ0KSkge1xcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjUyLVxcdFxcdFxcdGJkZXZfZmlsZSA9IGJkZXZfZmlsZV9vcGVuX2J5X2RldihkZXZ0LCBtb2RlLCBkZXYsIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9tdGQvbXRkc3VwZXIuYz05Nj1pbnQgZ2V0X3RyZWVfbXRkKHN0cnVjdCBmc19jb250ZXh0ICpmYyxcXG4tLVxcbmRyaXZlcnMvbXRkL210ZHN1cGVyLmMtMTQ5LVxcdCAqL1xcbmRyaXZlcnMvbXRkL210ZHN1cGVyLmM6MTUwOlxcdHJldCA9IGxvb2t1cF9iZGV2KGZjLVxcdTAwM2Vzb3VyY2UsIFxcdTAwMjZkZXYpO1xcbmRyaXZlcnMvbXRkL210ZHN1cGVyLmMtMTUxLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbXRkL210ZHN1cGVyLmMtMTU0LVxcdH1cXG5kcml2ZXJzL210ZC9tdGRzdXBlci5jOjE1NTpcXHRwcl9kZWJ1ZyhcXFwiTVREU0I6IGxvb2t1cF9iZGV2KCkgcmV0dXJuZWQgMFxcXFxuXFxcIik7XFxuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNTYtXFxuLS1cXG5mcy9idHJmcy9kZXYtcmVwbGFjZS5jPTIzMj1zdGF0aWMgaW50IGJ0cmZzX2luaXRfZGV2X3JlcGxhY2VfdGd0ZGV2KHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvLFxcbi0tXFxuZnMvYnRyZnMvZGV2LXJlcGxhY2UuYy0yOTAtXFxuZnMvYnRyZnMvZGV2LXJlcGxhY2UuYzoyOTE6XFx0cmV0ID0gbG9va3VwX2JkZXYoZGV2aWNlX3BhdGgsIFxcdTAwMjZkZXZpY2UtXFx1MDAzZWRldnQpO1xcbmZzL2J0cmZzL2Rldi1yZXBsYWNlLmMtMjkyLVxcdGlmIChyZXQpXFxuLS1cXG5mcy9idHJmcy9zdXBlci5jPTIyNTQ9c3RhdGljIGxvbmcgYnRyZnNfY29udHJvbF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCxcXG4tLVxcbmZzL2J0cmZzL3N1cGVyLmMtMjI4NC1cXHRcXHRpZiAodm9sLVxcdTAwM2VuYW1lWzBdICE9IDApIHtcXG5mcy9idHJmcy9zdXBlci5jOjIyODU6XFx0XFx0XFx0cmV0ID0gbG9va3VwX2JkZXYodm9sLVxcdTAwM2VuYW1lLCBcXHUwMDI2ZGV2dCk7XFxuZnMvYnRyZnMvc3VwZXIuYy0yMjg2LVxcdFxcdFxcdGlmIChyZXQpXFxuLS1cXG5mcy9idHJmcy92b2x1bWVzLmM9Nzk0PXN0YXRpYyBub2lubGluZSBzdHJ1Y3QgYnRyZnNfZGV2aWNlICpkZXZpY2VfbGlzdF9hZGQoY29uc3QgY2hhciAqcGF0aCxcXG4tLVxcbmZzL2J0cmZzL3ZvbHVtZXMuYy04MTUtXFxuZnMvYnRyZnMvdm9sdW1lcy5jOjgxNjpcXHRyZXQgPSBsb29rdXBfYmRldihwYXRoLCBcXHUwMDI2cGF0aF9kZXZ0KTtcXG5mcy9idHJmcy92b2x1bWVzLmMtODE3LVxcdGlmIChyZXQpIHtcXG4tLVxcbmZzL2J0cmZzL3ZvbHVtZXMuYz0yOTI1PWludCBidHJmc19pbml0X25ld19kZXZpY2Uoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8sIGNvbnN0IGNoYXIgKmRldmljZV9wYXRoKVxcbi0tXFxuZnMvYnRyZnMvdm9sdW1lcy5jLTI5ODYtXFx0ZGV2aWNlLVxcdTAwM2ViZGV2ID0gZmlsZV9iZGV2KGJkZXZfZmlsZSk7XFxuZnMvYnRyZnMvdm9sdW1lcy5jOjI5ODc6XFx0cmV0ID0gbG9va3VwX2JkZXYoZGV2aWNlX3BhdGgsIFxcdTAwMjZkZXZpY2UtXFx1MDAzZWRldnQpO1xcbmZzL2J0cmZzL3ZvbHVtZXMuYy0yOTg4LVxcdGlmIChyZXQpXFxuLS1cXG5mcy9uaWxmczIvc3VwZXIuYz0xMjAxPW5pbGZzX2dldF90cmVlKHN0cnVjdCBmc19jb250ZXh0ICpmYylcXG4tLVxcbmZzL25pbGZzMi9zdXBlci5jLTEyMTQtXFxuZnMvbmlsZnMyL3N1cGVyLmM6MTIxNTpcXHRlcnIgPSBsb29rdXBfYmRldihmYy1cXHUwMDNlc291cmNlLCBcXHUwMDI2ZGV2KTtcXG5mcy9uaWxmczIvc3VwZXIuYy0xMjE2LVxcdGlmIChlcnIpXFxuLS1cXG5mcy9wc3RvcmUvYmxrLmM9MjU4PXN0YXRpYyBfX2luaXQgY29uc3QgY2hhciAqZWFybHlfYm9vdF9kZXZwYXRoKGNvbnN0IGNoYXIgKmluaXRpYWxfZGV2bmFtZSlcXG4tLVxcbmZzL3BzdG9yZS9ibGsuYy0yNjctXFxuZnMvcHN0b3JlL2Jsay5jOjI2ODpcXHRpZiAoZWFybHlfbG9va3VwX2JkZXYoaW5pdGlhbF9kZXZuYW1lLCBcXHUwMDI2ZGV2KSkge1xcbmZzL3BzdG9yZS9ibGsuYy0yNjktXFx0XFx0cHJfZXJyKFxcXCJmYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIVxcXFxuXFxcIiwgaW5pdGlhbF9kZXZuYW1lKTtcXG4tLVxcbmZzL3F1b3RhL3F1b3RhLmM9ODY2PXN0YXRpYyBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnF1b3RhY3RsX2Jsb2NrKGNvbnN0IGNoYXIgX191c2VyICpzcGVjaWFsLCBpbnQgY21kKVxcbi0tXFxuZnMvcXVvdGEvcXVvdGEuYy04NzYtXFx0XFx0cmV0dXJuIEVSUl9DQVNUKHRtcCk7XFxuZnMvcXVvdGEvcXVvdGEuYzo4Nzc6XFx0ZXJyb3IgPSBsb29rdXBfYmRldih0bXAtXFx1MDAzZW5hbWUsIFxcdTAwMjZkZXYpO1xcbmZzL3F1b3RhL3F1b3RhLmMtODc4LVxcdGlmIChlcnJvcilcXG4tLVxcbmZzL3N1cGVyLmM9MTg0OT1pbnQgZ2V0X3RyZWVfYmRldl9mbGFncyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMsXFxuLS1cXG5mcy9zdXBlci5jLTE4NTktXFxuZnMvc3VwZXIuYzoxODYwOlxcdGVycm9yID0gbG9va3VwX2JkZXYoZmMtXFx1MDAzZXNvdXJjZSwgXFx1MDAyNmRldik7XFxuZnMvc3VwZXIuYy0xODYxLVxcdGlmIChlcnJvcikge1xcbi0tXFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaD0xNzM0PWludCBzZXRfYmxvY2tzaXplKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgc2l6ZSk7XFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xNzM1LVxcbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg6MTczNjppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpO1xcbmluY2x1ZGUvbGludXgvYmxrZGV2LmgtMTczNy1cXG4tLVxcbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg9MTc5OT12b2lkIHByaW50a19hbGxfcGFydGl0aW9ucyh2b2lkKTtcXG5pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oOjE4MDA6aW50IF9faW5pdCBlYXJseV9sb29rdXBfYmRldihjb25zdCBjaGFyICpwYXRobmFtZSwgZGV2X3QgKmRldik7XFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xODAxLSNlbHNlXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oPTE4MjA9c3RhdGljIGlubGluZSB2b2lkIHByaW50a19hbGxfcGFydGl0aW9ucyh2b2lkKVxcbi0tXFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xODIyLX1cXG5pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oOjE4MjM6c3RhdGljIGlubGluZSBpbnQgZWFybHlfbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xODI0LXtcXG4tLVxcbmluaXQvZG9fbW91bnRzLmM9NDA2PXN0YXRpYyB2b2lkIF9faW5pdCB3YWl0X2Zvcl9yb290KGNoYXIgKnJvb3RfZGV2aWNlX25hbWUpXFxuLS1cXG5pbml0L2RvX21vdW50cy5jLTQxNy1cXHR3aGlsZSAoIWRyaXZlcl9wcm9iZV9kb25lKCkgfHxcXG5pbml0L2RvX21vdW50cy5jOjQxODpcXHQgICAgICAgZWFybHlfbG9va3VwX2JkZXYocm9vdF9kZXZpY2VfbmFtZSwgXFx1MDAyNlJPT1RfREVWKSBcXHUwMDNjIDApIHtcXG5pbml0L2RvX21vdW50cy5jLTQxOS1cXHRcXHRtc2xlZXAoNSk7XFxuLS1cXG5pbml0L2RvX21vdW50cy5jPTQyOD1zdGF0aWMgZGV2X3QgX19pbml0IHBhcnNlX3Jvb3RfZGV2aWNlKGNoYXIgKnJvb3RfZGV2aWNlX25hbWUpXFxuLS1cXG5pbml0L2RvX21vdW50cy5jLTQ0Mi1cXG5pbml0L2RvX21vdW50cy5jOjQ0MzpcXHRlcnJvciA9IGVhcmx5X2xvb2t1cF9iZGV2KHJvb3RfZGV2aWNlX25hbWUsIFxcdTAwMjZkZXYpO1xcbmluaXQvZG9fbW91bnRzLmMtNDQ0LVxcdGlmIChlcnJvcikge1xcbi0tXFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jPTk4Mj1zdGF0aWMgaW50IF9faW5pdCBmaW5kX3Jlc3VtZV9kZXZpY2Uodm9pZClcXG4tLVxcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy05OTUtXFx0LyogQ2hlY2sgaWYgdGhlIGRldmljZSBpcyB0aGVyZSAqL1xcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYzo5OTY6XFx0aWYgKCFlYXJseV9sb29rdXBfYmRldihyZXN1bWVfZmlsZSwgXFx1MDAyNnN3c3VzcF9yZXN1bWVfZGV2aWNlKSlcXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMtOTk3LVxcdFxcdHJldHVybiAwO1xcbi0tXFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMDQtXFx0aWYgKHJlc3VtZV93YWl0KSB7XFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jOjEwMDU6XFx0XFx0d2hpbGUgKGVhcmx5X2xvb2t1cF9iZGV2KHJlc3VtZV9maWxlLCBcXHUwMDI2c3dzdXNwX3Jlc3VtZV9kZXZpY2UpKVxcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy0xMDA2LVxcdFxcdFxcdG1zbGVlcCgxMCk7XFxuLS1cXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMtMTAwOS1cXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM6MTAxMDpcXHRyZXR1cm4gZWFybHlfbG9va3VwX2JkZXYocmVzdW1lX2ZpbGUsIFxcdTAwMjZzd3N1c3BfcmVzdW1lX2RldmljZSk7XFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMTEtfVxcbi0tXFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jPTEyNjA9c3RhdGljIHNzaXplX3QgcmVzdW1lX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsXFxuLS1cXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMtMTI3Ny1cXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM6MTI3ODpcXHRlcnJvciA9IGxvb2t1cF9iZGV2KG5hbWUsIFxcdTAwMjZkZXYpO1xcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy0xMjc5LVxcdGlmIChlcnJvcikge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo0OC40MTY4Mzk2MzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mjc3OTY1NTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZvY3Vzc2luZyBNeSBGdXp6aW5nIEVmZm9ydHMqKlxuXG5Pa2F5LCBzbyBgbG9va3VwX2JkZXZgIGlzIHVzZWQgaW4gYSBidW5jaCBvZiBwbGFjZXMsIGluY2x1ZGluZyBgZ2V0X3RyZWVfYmRldl9mbGFnc2AsIHdoaWNoIGlzIGNydWNpYWwgZm9yIG1vdW50aW5nIGJsb2NrIGRldmljZXMuIEl0J3MgYWxzbyBpbnZvbHZlZCBpbiBgcXVvdGFjdGxfYmxvY2tgLCBgYnRyZnNfY29udHJvbF9pb2N0bGAsIGFuZCBvdGhlciBrZXkgYXJlYXMgbGlrZSBgbmlsZnNfZ2V0X3RyZWVgLCBgZ2V0X3RyZWVfbXRkYCwgYW5kIGBiZGV2X2ZpbGVfb3Blbl9ieV9wYXRoYC4gVGhlIHBhdGNoIG1ha2VzIGl0IGNsZWFyIHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIFwiZmFrZVwiIGJsb2NrIGRldmljZSBpbm9kZXMsIHNwZWNpZmljYWxseSBtZW50aW9uaW5nIGBmdXNlIHdpdGggcm9vdG1vZGU9U19JRkJMS2Agd2hlcmUgYGlfcmRldiA9PSAwYC4gVGhhdCBjb3VsZCBlYXNpbHkgbGVhZCB0byBwcm9ibGVtcyB3aXRoIHN1cGVyYmxvY2sgbG9va3VwLCB0cmlnZ2VyaW5nIHRob3NlIGFubm95aW5nIHdhcm5pbmdzIGluIHRoZSBkZXZpY2UtdG8tc3VwZXJibG9jayB0YWJsZSwgYHN1cGVyX2Rldl9yZWdpc3RlcmAuXG5cbk15IGluaXRpYWwgdGhvdWdodCB3YXMsIFwiTGV0J3MgZnV6eiBgbG9va3VwX2JkZXZgIGRpcmVjdGx5IVwiIEJ1dCB3YWl0IGEgc2Vjb25kLi4uIGBsb29rdXBfYmRldmAgaXMgYSByZWFsbHkgZ2VuZXJhbCBmdW5jdGlvbi4gUGVyaGFwcyB0aGF0IGlzIHRvbyBicm9hZCBhbmQgZ2VuZXJpYyBhbiBhcHByb2FjaC5cblxuQWgsIGJ1dCB0aGUgY29tbWl0IG1lc3NhZ2UgcmVhbGx5IGhpZ2hsaWdodHMgdGhlIHNjZW5hcmlvIHdoZXJlIGBpbm9kZS1cdTAwM2VpX3JkZXYgPT0gMGAuIFRoYXQncyB0aGUgcmVhbCBrZXkgaGVyZS4gVGhlIGNvbW1pdCBtZXNzYWdlIGFsc28gbWVudGlvbnMgYGZ1c2Ugd2l0aCByb290bW9kZT1TX0lGQkxLYCwgd2hpY2ggSSB0aGluayBjb3VsZCBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIFJpZ2h0LCBJIHRoaW5rIEknbGwgZGl2ZSBpbnRvIGBnZXRfdHJlZV9iZGV2X2ZsYWdzYCBpbiBgZnMvc3VwZXIuY2AuIFRoYXQgc2VlbXMgdG8gYmUgdGhlIGNyaXRpY2FsIGVudHJ5IHBvaW50IHRvIHRlc3QgZnJvbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjIyMiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo1Mi42OTQ4MTA3NTZaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc3MTE4MjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZ2V0X3RyZWVfYmRldl9mbGFnc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9zdXBlci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL3N1cGVyLmM9MTg0MT1FWFBPUlRfU1lNQk9MX0dQTChzZXR1cF9iZGV2X3N1cGVyKTtcXG4tLVxcbmZzL3N1cGVyLmMtMTg0My0vKipcXG5mcy9zdXBlci5jOjE4NDQ6ICogZ2V0X3RyZWVfYmRldl9mbGFncyAtIEdldCBhIHN1cGVyYmxvY2sgYmFzZWQgb24gYSBzaW5nbGUgYmxvY2sgZGV2aWNlXFxuZnMvc3VwZXIuYy0xODQ1LSAqIEBmYzogVGhlIGZpbGVzeXN0ZW0gY29udGV4dCBob2xkaW5nIHRoZSBwYXJhbWV0ZXJzXFxuLS1cXG5mcy9zdXBlci5jLTE4NDgtICovXFxuZnMvc3VwZXIuYzoxODQ5OmludCBnZXRfdHJlZV9iZGV2X2ZsYWdzKHN0cnVjdCBmc19jb250ZXh0ICpmYyxcXG5mcy9zdXBlci5jLTE4NTAtXFx0XFx0aW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICpzYixcXG4tLVxcbmZzL3N1cGVyLmMtMTg5Mi19XFxuZnMvc3VwZXIuYzoxODkzOkVYUE9SVF9TWU1CT0xfR1BMKGdldF90cmVlX2JkZXZfZmxhZ3MpO1xcbmZzL3N1cGVyLmMtMTg5NC1cXG4tLVxcbmZzL3N1cGVyLmM9MTkwMD1pbnQgZ2V0X3RyZWVfYmRldihzdHJ1Y3QgZnNfY29udGV4dCAqZmMsXFxuLS1cXG5mcy9zdXBlci5jLTE5MDMte1xcbmZzL3N1cGVyLmM6MTkwNDpcXHRyZXR1cm4gZ2V0X3RyZWVfYmRldl9mbGFncyhmYywgZmlsbF9zdXBlciwgMCk7XFxuZnMvc3VwZXIuYy0xOTA1LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6NTIuNzYyNTMxNzcxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAxMjk1NzQ4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBgZ2V0X3RyZWVfYmRldmAgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldGluZyBgZ2V0X3RyZWVfYmRldmAgaXMgaW50ZXJlc3RpbmcuIEl0IGxvb2tzIGxpa2UgdGhpcyBmdW5jdGlvbiBpcyBwcmV0dHkgd2lkZWx5IHVzZWQgYnkgdmFyaW91cyBmaWxlc3lzdGVtcywgc28gYW55IGNoYW5nZSBoZXJlIGhhcyBhIHBvdGVudGlhbGx5IGJyb2FkIGltcGFjdC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBwcmV2ZW50aW5nIGBsb29rdXBfYmRldmAgZnJvbSByZXR1cm5pbmcgYSBgZGV2X3RgIG9mIHplcm8uIEVzc2VudGlhbGx5LCB0aGV5J3JlIHBsdWdnaW5nIGEgYnVnIHRoYXQgd2FzIGNhdXNpbmcgd2FybmluZ3MgaW4gYHN1cGVyX2Rldl9yZWdpc3RlcmAsIHdoaWNoIGlzIGRlZmluaXRlbHkgYSBnb29kIHRoaW5nLlxuXG5UaGUgcXVlc3Rpb24gdGhlbiBiZWNvbWVzOiBzaG91bGQgSSBmdXp6IHRoaXM/IEFic29sdXRlbHksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBibG9jayBsYXllci4gQW55IGFkanVzdG1lbnQgYXQgdGhpcyBsZXZlbCBuZWNlc3NpdGF0ZXMgc29tZSBoZWF2eSB0ZXN0aW5nIHRvIGF2b2lkIHVuZm9yZXNlZW4gc2lkZS1lZmZlY3RzLlxuXG5NeSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGBsb29rdXBfYmRldmAgc3ltYm9sIHByaW1hcmlseS5cblxuQXMgZm9yIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gbmVlZHMsIGBDT05GSUdfQkxPQ0tgIGlzIHRoZSBvYnZpb3VzIG9uZSwgd2hpY2ggaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBIb3dldmVyLCB0aGUgY29tbWl0IG1lc3NhZ2UgbWVudGlvbnMgXCJmdXNlIHdpdGggcm9vdG1vZGU9U19JRkJMSyxcIiBzbyBJIHNob3VsZCBwcm9iYWJseSBhbHNvIGV4cGxvcmUgYENPTkZJR19GVVNFX0ZTYCB0byBzZWUgaWYgdGhhdCByZXZlYWxzIGFueXRoaW5nIGFkZGl0aW9uYWwuIExldCBtZSBjaGVjayBpZiB0aGVyZSBhcmUgb3RoZXIsIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzEyNCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo1Ni43NzU0OTIzMzVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MjY5MjQzMDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX0ZVU0VfRlNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk4PUNPTkZJR19BVVRPRlNfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc6MTk5OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2F4bTU1eHhfZGVmY29uZmlnLTIwMC1DT05GSUdfQ1VTRT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc9NDQ1PUNPTkZJR19BVVRPRlNfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0NDY6Q09ORklHX0ZVU0VfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDctQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9uaGs4ODE1X2RlZmNvbmZpZz0xMTk9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWc6MTIwOkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnLTEyMS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnPTU4MD1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTgxOkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWctNTgyLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcWNvbV9kZWZjb25maWc9Mjc5PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3Fjb21fZGVmY29uZmlnOjI4MDpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODEtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnPTg4PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZzo4OTpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTkwLUNPTkZJR19NU0RPU19GUz1tXFxuLS1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE5MDc9Q09ORklHX0FVVE9GU19GUz15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxOTA4OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTE5MDktQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZz05ODA9Q09ORklHX0FVVE9GU19GUz15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZzo5ODE6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctOTgyLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc9MTAxMT1DT05GSUdfQVVUT0ZTX0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjEwMTI6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWctMTAxMy1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWc9NDEyPUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZzo0MTM6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZy00MTQtQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXBvbGxvX2RlZmNvbmZpZz0zNjc9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXBvbGxvX2RlZmNvbmZpZzozNjg6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWctMzY5LUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZz0zOTA9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnOjM5MTpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnLTM5Mi1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWc9MzU5PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZzozNjA6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZy0zNjEtQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnPTM2OT1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc6MzcwOkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWctMzcxLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc9Mzg4PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc6Mzg5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnLTM5MC1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWc9NDc1PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZzo0NzY6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZy00NzctQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWc9MzU5PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNDdfZGVmY29uZmlnOjM2MDpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWctMzYxLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnPTM2MD1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZzozNjE6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnLTM2Mi1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnPTM3OD1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnOjM3OTpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZy0zODAtQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWc9MzU3PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjNfZGVmY29uZmlnOjM1ODpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWctMzU5LUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZz0zNTc9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnOjM1ODpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnLTM1OS1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnPTE0NT1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjE0NjpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZy0xNDctQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnPTYwPUNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWctNjEtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYyOkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWctNjMtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZz0xNDg9Q09ORklHX0pCRDJfREVCVUc9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQ5OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE1MC1DT05GSUdfRkhBTkRMRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnPTE3Nz1DT05GSUdfRkFOT1RJRlk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTc4OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3OS1DT05GSUdfQ1VTRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc9OTQ9Q09ORklHX0ZTX0VOQ1JZUFRJT049eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5NTpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnLTk2LUNPTkZJR19DVVNFPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZz05Mz1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjk0OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWctOTUtQ09ORklHX0NVU0U9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc9MTAxPUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzoxMDI6Q09ORklHX0ZVU0VfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMy1DT05GSUdfQ1VTRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnPTE3OD1DT05GSUdfQVVUT0ZTX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3OTpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZy0xODAtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc9NjI9Q09ORklHX0ZBTk9USUZZPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo2MzpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWctNjQtQ09ORklHX0NVU0U9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc9MjQzPUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjI0NDpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWctMjQ1LUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnPTI4MT1DT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI4MjpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWctMjgzLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnPTE1Mz1DT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE1NDpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWctMTU1LUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnPTk3PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjk4OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZy05OS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZz03ND1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZzo3NTpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWctNzYtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc9MzA3PUNPTkZJR19BVVRPRlNfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwODpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMzA5LUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc9MzU4PUNPTkZJR19BVVRPRlNfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzU5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTM2MC1DT05GSUdfVklSVElPX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZz0zMjI9Q09ORklHX1FGTVRfVjI9eVxcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZzozMjM6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZy0zMjQtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZz0zMjg9Q09ORklHX1FGTVRfVjI9eVxcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2t2bV9kZWZjb25maWc6MzI5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9rdm1fZGVmY29uZmlnLTMzMC1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWc9MzI4PUNPTkZJR19RRk1UX1YyPXlcXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWc6MzI5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWctMzMwLUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnPTU1Nz1DT05GSUdfQVVUT0ZTX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZzo1NTg6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnLTU1OS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnPTY5PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL3BpYzMybXpkYV9kZWZjb25maWc6NzA6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL3BpYzMybXpkYV9kZWZjb25maWctNzEtQ09ORklHX05FVEZTX1NVUFBPUlQ9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3Mvcm0yMDBfZGVmY29uZmlnPTMwNT1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWc6MzA2OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWctMzA3LUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL3NiMTI1MF9zd2FybV9kZWZjb25maWc9NzE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL3NiMTI1MF9zd2FybV9kZWZjb25maWc6NzI6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL3NiMTI1MF9zd2FybV9kZWZjb25maWctNzMtQ09ORklHX1BST0NfS0NPUkU9eVxcbi0tXFxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTY0Yml0X2RlZmNvbmZpZz0yNTk9Q09ORklHX0FVVE9GU19GUz15XFxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTY0Yml0X2RlZmNvbmZpZzoyNjA6Q09ORklHX0ZVU0VfRlM9eVxcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWctMjYxLUNPTkZJR19DVVNFPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnPTE2ND1DT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnOjE2NTpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWctMTY2LUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWc9MjU4PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWc6MjU5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wbWFjMzJfZGVmY29uZmlnLTI2MC1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZz0yNjk9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWc6MjcwOkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZy0yNzEtQ09ORklHX09WRVJMQVlfRlM9bVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnPTMyND1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6MzI1OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWctMzI2LUNPTkZJR19PVkVSTEFZX0ZTPW1cXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9OTMzPUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc6OTM0OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnLTkzNS1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy93aWlfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvd2lpX2RlZmNvbmZpZzoxMDQ6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3dpaV9kZWZjb25maWctMTA1LUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZz02ODY9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnOjY4NzpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnLTY4OC1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWc9NjcyPUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZzo2NzM6Q09ORklHX0ZVU0VfRlM9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZy02NzQtQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3I3NzgwbXBfZGVmY29uZmlnPTc3PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvcjc3ODBtcF9kZWZjb25maWc6Nzg6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvc2gvY29uZmlncy9yNzc4MG1wX2RlZmNvbmZpZy03OS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3I3Nzg1cnBfZGVmY29uZmlnPTcyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvcjc3ODVycF9kZWZjb25maWc6NzM6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvc2gvY29uZmlncy9yNzc4NXJwX2RlZmNvbmZpZy03NC1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3Nkazc3ODZfZGVmY29uZmlnPTE2OD1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4Nl9kZWZjb25maWc6MTY5OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4Nl9kZWZjb25maWctMTcwLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc9MjIwPUNPTkZJR19YRlNfRlM9bVxcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc6MjIxOkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnLTIyMi1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2kveDg2XzY0LmNvbmZpZz04Nj1DT05GSUdfS1ZNX0lOVEVMPW1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jaS94ODZfNjQuY29uZmlnLTg4LSNvcHRpb25zIGZvciBLVk0gZ3Vlc3RzXFxuZHJpdmVycy9ncHUvZHJtL2NpL3g4Nl82NC5jb25maWc6ODk6Q09ORklHX0ZVU0VfRlM9eVxcbmRyaXZlcnMvZ3B1L2RybS9jaS94ODZfNjQuY29uZmlnLTkwLUNPTkZJR19IWVBFUlZJU09SX0dVRVNUPXlcXG4tLVxcbmZzL01ha2VmaWxlPTEwMj1vYmotJChDT05GSUdfQURGU19GUylcXHRcXHQrPSBhZGZzL1xcbmZzL01ha2VmaWxlOjEwMzpvYmotJChDT05GSUdfRlVTRV9GUylcXHRcXHQrPSBmdXNlL1xcbmZzL01ha2VmaWxlLTEwNC1vYmotJChDT05GSUdfT1ZFUkxBWV9GUylcXHQrPSBvdmVybGF5ZnMvXFxuLS1cXG5mcy9mdXNlL01ha2VmaWxlPTc9Y2NmbGFncy15ID0gLUkkKHNyYylcXG5mcy9mdXNlL01ha2VmaWxlLTgtXFxuZnMvZnVzZS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19GVVNFX0ZTKSArPSBmdXNlLm9cXG5mcy9mdXNlL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19DVVNFKSArPSBjdXNlLm9cXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2ND01Mj1DT05GSUdfRlVOQ1RJT05fUFJPRklMRVI9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2NDo1MzpDT05GSUdfRlVTRV9GUz15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5hYXJjaDY0LTU0LUNPTkZJR19GV19DRkdfU1lTRlNfQ01ETElORT15XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnZtPTQ9Q09ORklHX0NSWVBUT19ERVZfVklSVElPPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnZtOjU6Q09ORklHX0ZVU0VfRlM9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcudm0tNi1DT05GSUdfRlVTRV9QQVNTVEhST1VHSD15XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbj03NT1DT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb246NzY6Q09ORklHX0ZVU0VfRlM9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2hpZC9jb25maWcuY29tbW9uLTc3LUNPTkZJR19GV19MT0FERVJfVVNFUl9IRUxQRVI9eVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtZmQvY29uZmlnOjE6Q09ORklHX0ZVU0VfRlM9bVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdnNvY2svY29uZmlnPTM1PUNPTkZJR19TUVVBU0hGU19aU1REPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy92c29jay9jb25maWc6MzY6Q09ORklHX0ZVU0VfRlM9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Zzb2NrL2NvbmZpZy0zNy1DT05GSUdfVklSVElPX0ZTPXlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6NTkuMzAyNDI0OTczWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc4ODE2NjAyMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRnVuY3Rpb25hbCBDaGFuZ2UgaW4gQmxvY2sgRGV2aWNlIEhhbmRsaW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCByZWxhdGVkIHRvIGBDT05GSUdfRlVTRV9GU2AuIFRoZSBjb3JlIG9mIHRoaXMgY2hhbmdlIGZvY3VzZXMgb24gdGhlIGBsb29rdXBfYmRldmAgZnVuY3Rpb24uIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgc3BlY2lmaWMgY2hlY2s6IGl0J3MgcmVqZWN0aW5nIGJsb2NrIGRldmljZSBpbm9kZXMgd2hlcmUgYGlfcmRldmAgaXMgZXF1YWwgdG8gMC4gVGhpcyBzZWVtcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGFpbWVkIGF0IGNvcnJlY3RpbmcgYSBwb3RlbnRpYWwgaXNzdWUuXG5cbkxldCdzIHF1aWNrbHkgcmVjYXA6IHRoZSBjcml0aWNhbCBwaWVjZSBpcyBgbG9va3VwX2JkZXZgLiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgYGxvb2t1cF9iZGV2YCBpcyBpbmRlZWQgcmVhY2hhYmxlIHZpYSBtdWx0aXBsZSBwYXRocyDigJMgbW91bnQgb3BlcmF0aW9ucywgYHF1b3RhY3RsYCwgQnRyZnMgaW9jdGxzLCBhbmQgbGlrZWx5IG90aGVycy4gSSd2ZSBkb3VibGUtY2hlY2tlZCB0aGF0OyBpdCBzZWVtcyB0byBiZSB0aGUgb25seSBmdW5jdGlvbiBkaXJlY3RseSBtb2RpZmllZCBieSB0aGlzIHBhdGNoLlxuXG5SZXZpZXdpbmcgdGhlIGNvZGUgc25pcHBldCBhZ2FpbiBjb25maXJtcyB0aGlzLiBUaGUgcGF0Y2ggYWRkcyBhIHNpbXBsZSBjb25kaXRpb25hbCBjaGVjayByaWdodCBhZnRlciB0aGUgYG1heV9vcGVuX2RldmAgY2FsbC4gSXQgZW5zdXJlcyB0aGF0IGBpX3JkZXZgIGlzbid0IHplcm8sIHJldHVybmluZyBgLUVOT0RFVmAgaWYgaXQgaXMuIFRoZSByYXRpb25hbGUgaXMgY2xlYXI6IGEgYGRldl90YCBvZiAwIGlzIG5ldmVyIHZhbGlkIGZvciBhbiBhY3R1YWwgYmxvY2sgZGV2aWNlLCBhbmQgYWxsb3dpbmcgdGhlc2UgJ2Zha2UnIGlub2RlcyAobGlrZSB0aG9zZSBwb3NzaWJseSBnZW5lcmF0ZWQgYnkgRlVTRSB3aGVuIHVzaW5nIGByb290bW9kZT1TX0lGQkxLYCkgdG8gcHJvcGFnYXRlIGNhbiBjcmVhdGUgcHJvYmxlbXMgaW4gc3VwZXJibG9jayBsb29rdXAgYW5kIHRyaWdnZXIgd2FybmluZ3MgaW4gdGhlIGRldmljZS10by1zdXBlcmJsb2NrIHRhYmxlIHJlZ2lzdHJhdGlvbiAoYHN1cGVyX2Rldl9yZWdpc3RlcmApLlxuXG5UaGlzIGNsZWFybHkgcHJldmVudHMgYSBwb3RlbnRpYWwgYnVnLiBTaW5jZSB0aGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBiZWhhdmlvciBvZiBhIGNvcmUgYmxvY2sgbGF5ZXIgZnVuY3Rpb24sIGFuZCB0aGUgaXNzdWUgYXJpc2VzIGluIGNvbmp1bmN0aW9uIHdpdGggRlVTRSwgdGhpcyBtYWtlcyBpdCBhbiBleGNlbGxlbnQgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBGb2N1c2luZyBmdXp6aW5nIGVmZm9ydHMgb24gYGxvb2t1cF9iZGV2YCB3aXRoIGBGVVNFX0ZTYCBlbmFibGVkIHdvdWxkIGJlIHRoZSBtb3N0IGVmZmVjdGl2ZSB3YXkgdG8gdmFsaWRhdGUgdGhpcyBmaXguXG5cbkknbSByZWFkeSB0byBkb2N1bWVudCB0aGVzZSBmaW5kaW5ncyB1c2luZyBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzEwOSwiT3V0cHV0VG9rZW5zIjoxMjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDM6MDcuMTg0MDg3ODYzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU1NDY5NDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkZVU0VfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsb29rdXBfYmRldlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkZVU0VfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsb29rdXBfYmRldlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowc6gsh[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-03 07:04:53 +0000 UTC FinishedAt: 2026-07-03 07:43:09 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "cb158789c1e15c201b80e09351805e7e30bf0b1c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "FUSE_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "cb158789c1e15c201b80e09351805e7e30bf0b1c", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "FUSE_FS" ], "series_id": "92d08e66-6619-49ea-b410-fd0b0bfce599" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "lookup_bdev" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0ZVU0VfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtsb29rdXBfYmRldiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYGxvb2t1cF9iZGV2YCB0byByZWplY3QgYmxvY2sgZGV2aWNlIGlub2RlcyB3aXRoIGBpX3JkZXYgPT0gMGAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBibG9jayBsYXllciB0aGF0IHByZXZlbnRzIHN1cGVyYmxvY2sgbG9va3VwIGNvbmZ1c2lvbiBhbmQgd2FybmluZ3Mgd2hlbiBkZWFsaW5nIHdpdGggZmFrZSBibG9jayBkZXZpY2UgaW5vZGVzIChlLmcuLCBmcm9tIEZVU0UpLiBGdXp6aW5nIGBsb29rdXBfYmRldmAgd2l0aCBGVVNFIGVuYWJsZWQgd2lsbCBoZWxwIHZlcmlmeSB0aGlzIGZpeC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGM2ZjY0MjY5MjM1YjM5MGNiNzMyNmRmMTg3NGMxMTNjMTA3NzZhMmNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzIDA3OjQyOjM3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2Jsb2NrL2JkZXYuYyBiL2Jsb2NrL2JkZXYuY1xuaW5kZXggMjhiMGQ0MGMzNjJmZTguLjc5N2Q3ZjBlZjYwOTQ2IDEwMDY0NFxuLS0tIGEvYmxvY2svYmRldi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9iZGV2LmNcbkBAIC0xMjc4LDYgJiM0MzsxMjc4LDE4IEBAIGludCBsb29rdXBfYmRldihjb25zdCBjaGFyICpwYXRobmFtZSwgZGV2X3QgKmRldilcbiBcdGlmICghbWF5X29wZW5fZGV2KFx1MDAyNnBhdGgpKVxuIFx0XHRnb3RvIG91dF9wYXRoX3B1dDtcbiBcbiYjNDM7XHQvKlxuJiM0MztcdCAqIFJlamVjdCBhIGJsb2NrIGRldmljZSBpbm9kZSB3aXRoIGlfcmRldiA9PSAwLiAgQSBkZXZfdCBvZiAwIGlzXG4mIzQzO1x0ICogbmV2ZXIgdmFsaWQgZm9yIGEgYmxvY2sgZGV2aWNlOiBubyByZWFsIGJsb2NrIGRldmljZSBkcml2ZXJcbiYjNDM7XHQgKiByZWdpc3RlcnMgbWFqb3IgMC4gIEZha2UgYmxvY2sgZGV2aWNlIGlub2RlcyAoZS5nLiBmdXNlIHdpdGhcbiYjNDM7XHQgKiByb290bW9kZT1TX0lGQkxLKSBjYW4gZXhwb3NlIGlfcmRldiA9PSAwLCBhbmQgbGV0dGluZyB0aGF0XG4mIzQzO1x0ICogcHJvcGFnYXRlIHdvdWxkIGNvbmZ1c2Ugc3VwZXJibG9jayBsb29rdXAgYW5kIHRyaWdnZXIgd2FybmluZ3NcbiYjNDM7XHQgKiBpbiB0aGUgZGV2aWNlLXRvLXN1cGVyYmxvY2sgdGFibGUgKHN1cGVyX2Rldl9yZWdpc3RlcikuXG4mIzQzO1x0ICovXG4mIzQzO1x0ZXJyb3IgPSAtRU5PREVWO1xuJiM0MztcdGlmICghaW5vZGUtXHUwMDNlaV9yZGV2KVxuJiM0MztcdFx0Z290byBvdXRfcGF0aF9wdXQ7XG4mIzQzO1xuIFx0KmRldiA9IGlub2RlLVx1MDAzZWlfcmRldjtcbiBcdGVycm9yID0gMDtcbiBvdXRfcGF0aF9wdXQ6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDc6NDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RlVTRV9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2xvb2t1cF9iZGV2JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjNmY2NDI2OTIzNWIzOTBjYjczMjZkZjE4NzRjMTEzYzEwNzc2YTJjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMyAwNzo0MjozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2Jsb2NrL2JkZXYuYyBiL2Jsb2NrL2JkZXYuYwppbmRleCAyOGIwZDQwYzM2MmZlOC4uNzk3ZDdmMGVmNjA5NDYgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2JkZXYuYwomIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9iZGV2LmMKQEAgLTEyNzgsNiAmIzQzOzEyNzgsMTggQEAgaW50IGxvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBkZXZfdCAqZGV2KQogCWlmICghbWF5X29wZW5fZGV2KCZhbXA7cGF0aCkpCiAJCWdvdG8gb3V0X3BhdGhfcHV0OwogCiYjNDM7CS8qCiYjNDM7CSAqIFJlamVjdCBhIGJsb2NrIGRldmljZSBpbm9kZSB3aXRoIGlfcmRldiA9PSAwLiAgQSBkZXZfdCBvZiAwIGlzCiYjNDM7CSAqIG5ldmVyIHZhbGlkIGZvciBhIGJsb2NrIGRldmljZTogbm8gcmVhbCBibG9jayBkZXZpY2UgZHJpdmVyCiYjNDM7CSAqIHJlZ2lzdGVycyBtYWpvciAwLiAgRmFrZSBibG9jayBkZXZpY2UgaW5vZGVzIChlLmcuIGZ1c2Ugd2l0aAomIzQzOwkgKiByb290bW9kZT1TX0lGQkxLKSBjYW4gZXhwb3NlIGlfcmRldiA9PSAwLCBhbmQgbGV0dGluZyB0aGF0CiYjNDM7CSAqIHByb3BhZ2F0ZSB3b3VsZCBjb25mdXNlIHN1cGVyYmxvY2sgbG9va3VwIGFuZCB0cmlnZ2VyIHdhcm5pbmdzCiYjNDM7CSAqIGluIHRoZSBkZXZpY2UtdG8tc3VwZXJibG9jayB0YWJsZSAoc3VwZXJfZGV2X3JlZ2lzdGVyKS4KJiM0MzsJICovCiYjNDM7CWVycm9yID0gLUVOT0RFVjsKJiM0MzsJaWYgKCFpbm9kZS0mZ3Q7aV9yZGV2KQomIzQzOwkJZ290byBvdXRfcGF0aF9wdXQ7CiYjNDM7CiAJKmRldiA9IGlub2RlLSZndDtpX3JkZXY7CiAJZXJyb3IgPSAwOwogb3V0X3BhdGhfcHV0Ogo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTUxCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMTA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEJsb2NrIERldmljZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYGJsb2NrL2JkZXYuY2AuIEl0JiMzOTtzIGEgcHJldHR5IGZvY3VzZWQgbW9kaWZpY2F0aW9uLCBzZWVtcyBsaWtlIGl0JiMzOTtzIGNoYW5naW5nIHRoZSBiZWhhdmlvciBvZiBgbG9va3VwX2JkZXZgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIG1ha2luZyBgbG9va3VwX2JkZXZgIHJldHVybiBgLUVOT0RFVmAgaWYgdGhlIGBpbm9kZS0mZ3Q7aV9yZGV2YCB2YWx1ZSBpcyAwLiBUaGF0JiMzOTtzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHJpZ2h0IGluIHRoZSBibG9jayBsYXllciwgYW5kIGBsb29rdXBfYmRldmAgaXMgdGhlIGNydWNpYWwgZnVuY3Rpb24uIEkga25vdyBpdCBnZXRzIGNhbGxlZCBmcm9tIGFsbCBzb3J0cyBvZiBwbGFjZXMsIGxpa2Ugd2hlbiBtb3VudGluZyBhIGJsb2NrIGRldmljZSBvciBvcGVuaW5nIG9uZS4gVGhlIGNvbnNlcXVlbmNlcyBvZiB0aGlzIGNoYW5nZSBjb3VsZCBiZSBzaWduaWZpY2FudCBkZXBlbmRpbmcgb24gd2hlcmUgZWxzZSB0aGUgZXJyb3IgY29kZSBpcyBldmFsdWF0ZWQgaW4gdGhlIGNhbGwgc3RhY2suIExldCBtZSBnZXQgcmlnaHQgaW50byBgYmxvY2svYmRldi5jYCBhbmQgc2VlIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFuZCB3aHkgdGhpcyBtb2RpZmljYXRpb24gaXMgYmVpbmcgaW50cm9kdWNlZCBpbiB0aGUgZmlyc3QgcGxhY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByYXRpb25hbGUgYW5kIHRoZSBwb3RlbnRpYWwgcmlwcGxlIGVmZmVjdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDc6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bG9va3VwX2JkZXYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtibG9jay9iZGV2LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YmxvY2svYmRldi5jPTExMTY9c3RydWN0IGZpbGUgKmJkZXZfZmlsZV9vcGVuX2J5X3BhdGgoY29uc3QgY2hhciAqcGF0aCwgYmxrX21vZGVfdCBtb2RlLFxuLS1cbmJsb2NrL2JkZXYuYy0xMTIzLVxuYmxvY2svYmRldi5jOjExMjQ6XHRlcnJvciA9IGxvb2t1cF9iZGV2KHBhdGgsIFx1MDAyNmRldik7XG5ibG9jay9iZGV2LmMtMTEyNS1cdGlmIChlcnJvcilcbi0tXG5ibG9jay9iZGV2LmM9MTI0Nz1FWFBPUlRfU1lNQk9MKGJkZXZfZnB1dCk7XG4tLVxuYmxvY2svYmRldi5jLTEyNDktLyoqXG5ibG9jay9iZGV2LmM6MTI1MDogKiBsb29rdXBfYmRldigpIC0gTG9vayB1cCBhIHN0cnVjdCBibG9ja19kZXZpY2UgYnkgbmFtZS5cbmJsb2NrL2JkZXYuYy0xMjUxLSAqIEBwYXRobmFtZTogTmFtZSBvZiB0aGUgYmxvY2sgZGV2aWNlIGluIHRoZSBmaWxlc3lzdGVtLlxuLS1cbmJsb2NrL2JkZXYuYy0xMjU5LSAqL1xuYmxvY2svYmRldi5jOjEyNjA6aW50IGxvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBkZXZfdCAqZGV2KVxuYmxvY2svYmRldi5jLTEyNjEte1xuLS1cbmJsb2NrL2JkZXYuYy0xMjk4LX1cbmJsb2NrL2JkZXYuYzoxMjk5OkVYUE9SVF9TWU1CT0wobG9va3VwX2JkZXYpO1xuYmxvY2svYmRldi5jLTEzMDAtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDc6NDI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYwNAoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIEJsb2NrIERldmljZSBMb29rdXAqKgoKT2theSwgc28gdGhlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdpdGhpbiBgbG9va3VwX2JkZXZgLiBUaW1lIHRvIHRyYWNlIGl0cyB1c2FnZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHRzIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGZ1bGx5IGdyYXNwIHRoZSBpbXBhY3Qgb2YgdGhlIHBhdGNoLiBLbm93aW5nIGl0cyBjYWxsZXJzIHdpbGwgdGVsbCBtZSB3aGljaCBtb2R1bGVzIG9yIHN1YnN5c3RlbXMgcmVseSBvbiB0aGUgYmxvY2sgZGV2aWNlIGxvb2t1cCBtZWNoYW5pc20gYW5kIHdoaWNoIGNvdWxkIGJlIGFmZmVjdGVkIGJ5IHRoZSBtb2RpZmljYXRpb25zLiBJdCYjMzk7cyBhIGNyaXRpY2FsIGZpcnN0IHN0ZXAgdG8gYXNzZXNzIHRoZSBvdmVyYWxsIGltcGxpY2F0aW9ucy4gVGhpcyB3aWxsIHNldCB0aGUgc3RhZ2UgZm9yIGEgcHJvcGVyIGltcGFjdCBhbmFseXNpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtsb29rdXBfYmRldiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dD05NT1LZXJuZWwgcGFyYW1ldGVyc1xuLS1cbkRvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0LTY2ODAtXHRcdFx0VXN1YWxseSB0aGlzIGlzIGEgYmxvY2sgZGV2aWNlIHNwZWNpZmllciBvZiBzb21lIGtpbmQsXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dDo2NjgxOlx0XHRcdHNlZSB0aGUgZWFybHlfbG9va3VwX2JkZXYgY29tbWVudCBpblxuRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQtNjY4Mi1cdFx0XHRibG9jay9lYXJseS1sb29rdXAuYyBmb3IgZGV0YWlscy5cbi0tXG5ibG9jay9iZGV2LmM9MTExNj1zdHJ1Y3QgZmlsZSAqYmRldl9maWxlX29wZW5fYnlfcGF0aChjb25zdCBjaGFyICpwYXRoLCBibGtfbW9kZV90IG1vZGUsXG4tLVxuYmxvY2svYmRldi5jLTExMjMtXG5ibG9jay9iZGV2LmM6MTEyNDpcdGVycm9yID0gbG9va3VwX2JkZXYocGF0aCwgXHUwMDI2ZGV2KTtcbmJsb2NrL2JkZXYuYy0xMTI1LVx0aWYgKGVycm9yKVxuLS1cbmJsb2NrL2JkZXYuYz0xMjQ3PUVYUE9SVF9TWU1CT0woYmRldl9mcHV0KTtcbi0tXG5ibG9jay9iZGV2LmMtMTI0OS0vKipcbmJsb2NrL2JkZXYuYzoxMjUwOiAqIGxvb2t1cF9iZGV2KCkgLSBMb29rIHVwIGEgc3RydWN0IGJsb2NrX2RldmljZSBieSBuYW1lLlxuYmxvY2svYmRldi5jLTEyNTEtICogQHBhdGhuYW1lOiBOYW1lIG9mIHRoZSBibG9jayBkZXZpY2UgaW4gdGhlIGZpbGVzeXN0ZW0uXG4tLVxuYmxvY2svYmRldi5jLTEyNTktICovXG5ibG9jay9iZGV2LmM6MTI2MDppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXG5ibG9jay9iZGV2LmMtMTI2MS17XG4tLVxuYmxvY2svYmRldi5jLTEyOTgtfVxuYmxvY2svYmRldi5jOjEyOTk6RVhQT1JUX1NZTUJPTChsb29rdXBfYmRldik7XG5ibG9jay9iZGV2LmMtMTMwMC1cbi0tXG5ibG9jay9lYXJseS1sb29rdXAuYz0xOTc9c3RhdGljIGludCBfX2luaXQgZGV2dF9mcm9tX2Rldm51bShjb25zdCBjaGFyICpuYW1lLCBkZXZfdCAqZGV2dClcbi0tXG5ibG9jay9lYXJseS1sb29rdXAuYy0yNDMtICovXG5ibG9jay9lYXJseS1sb29rdXAuYzoyNDQ6aW50IF9faW5pdCBlYXJseV9sb29rdXBfYmRldihjb25zdCBjaGFyICpuYW1lLCBkZXZfdCAqZGV2dClcbmJsb2NrL2Vhcmx5LWxvb2t1cC5jLTI0NS17XG4tLVxuZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYz0yNTU3PXN0YXRpYyBzc2l6ZV90IHJlZ2lzdGVyX2JjYWNoZShzdHJ1Y3Qga29iamVjdCAqaywgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLFxuLS1cbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMtMjYyMy1cdFx0XHRtdXRleF9sb2NrKFx1MDAyNmJjaF9yZWdpc3Rlcl9sb2NrKTtcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmM6MjYyNDpcdFx0XHRpZiAobG9va3VwX2JkZXYoc3RyaW0ocGF0aCksIFx1MDAyNmRldikgPT0gMCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMtMjYyNS1cdFx0XHQgICAgYmNoX2lzX29wZW4oZGV2KSlcbi0tXG5kcml2ZXJzL21kL2RtLWluaXQuYz0yNzE9c3RhdGljIGludCBfX2luaXQgZG1faW5pdF9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9tZC9kbS1pbml0LmMtMzAwLVx0XHRcdERNSU5GTyhcJiMzNDt3YWl0aW5nIGZvciBkZXZpY2UgJXMgLi4uXCYjMzQ7LCB3YWl0Zm9yW2ldKTtcbmRyaXZlcnMvbWQvZG0taW5pdC5jOjMwMTpcdFx0XHR3aGlsZSAoZWFybHlfbG9va3VwX2JkZXYod2FpdGZvcltpXSwgXHUwMDI2ZGV2KSlcbmRyaXZlcnMvbWQvZG0taW5pdC5jLTMwMi1cdFx0XHRcdGZzbGVlcCg1MDAwKTtcbi0tXG5kcml2ZXJzL21kL2RtLXRhYmxlLmM9MzEyPXN0YXRpYyBpbnQgdXBncmFkZV9tb2RlKHN0cnVjdCBkbV9kZXZfaW50ZXJuYWwgKmRkLCBibGtfbW9kZV90IG5ld19tb2RlLFxuLS1cbmRyaXZlcnMvbWQvZG0tdGFibGUuYy0zMzItICogTm90ZTogdGhlIF9fcmVmIGFubm90YXRpb24gaXMgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGNhbiBjYWxsIHRoZSBfX2luaXRcbmRyaXZlcnMvbWQvZG0tdGFibGUuYzozMzM6ICogbWFya2VkIGVhcmx5X2xvb2t1cF9iZGV2IHdoZW4gY2FsbGVkIGR1cmluZyBlYXJseSBib290IGNvZGUgZnJvbSBkbS1pbml0LmMuXG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzM0LSAqL1xuZHJpdmVycy9tZC9kbS10YWJsZS5jPTMzNT1pbnQgX19yZWYgZG1fZGV2dF9mcm9tX3BhdGgoY29uc3QgY2hhciAqcGF0aCwgZGV2X3QgKmRldl9wKVxuLS1cbmRyaXZlcnMvbWQvZG0tdGFibGUuYy0zNDctXHR9IGVsc2Uge1xuZHJpdmVycy9tZC9kbS10YWJsZS5jOjM0ODpcdFx0ciA9IGxvb2t1cF9iZGV2KHBhdGgsIFx1MDAyNmRldik7XG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzQ5LSNpZm5kZWYgTU9EVUxFXG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzUwLVx0XHRpZiAociBcdTAwMjZcdTAwMjYgc3lzdGVtX3N0YXRlIFx1MDAzYyBTWVNURU1fUlVOTklORylcbmRyaXZlcnMvbWQvZG0tdGFibGUuYzozNTE6XHRcdFx0ciA9IGVhcmx5X2xvb2t1cF9iZGV2KHBhdGgsIFx1MDAyNmRldik7XG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzUyLSNlbmRpZlxuLS1cbmRyaXZlcnMvbWQvbWQtYXV0b2RldGVjdC5jPTEyMz1zdGF0aWMgdm9pZCBfX2luaXQgbWRfc2V0dXBfZHJpdmUoc3RydWN0IG1kX3NldHVwX2FyZ3MgKmFyZ3MpXG4tLVxuZHJpdmVycy9tZC9tZC1hdXRvZGV0ZWN0LmMtMTQ5LVxuZHJpdmVycy9tZC9tZC1hdXRvZGV0ZWN0LmM6MTUwOlx0XHRpZiAoZWFybHlfbG9va3VwX2JkZXYoZGV2bmFtZSwgXHUwMDI2ZGV2KSlcbmRyaXZlcnMvbWQvbWQtYXV0b2RldGVjdC5jLTE1MS1cdFx0XHRkZXYgPSAwO1xuLS1cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM9MjAzPXN0YXRpYyB2b2lkIGJsb2NrMm10ZF9mcmVlX2RldmljZShzdHJ1Y3QgYmxvY2sybXRkX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjE5LSAqIFRoaXMgZnVuY3Rpb24gaXMgbWFya2VkIF9fcmVmIGJlY2F1c2UgaXQgY2FsbHMgdGhlIF9faW5pdCBtYXJrZWRcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM6MjIwOiAqIGVhcmx5X2xvb2t1cF9iZGV2IHdoZW4gY2FsbGVkIGZyb20gdGhlIGVhcmx5IGJvb3QgY29kZS5cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjIxLSAqL1xuZHJpdmVycy9tdGQvZGV2aWNlcy9ibG9jazJtdGQuYz0yMjI9c3RhdGljIHN0cnVjdCBmaWxlIF9fcmVmICptZHRibG9ja19lYXJseV9nZXRfYmRldihjb25zdCBjaGFyICpkZXZuYW1lLFxuLS1cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjI5LVx0LypcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM6MjMwOlx0ICogV2UgY2FuJiMzOTt0IHVzZSBlYXJseV9sb29rdXBfYmRldiBmcm9tIGEgcnVubmluZyBzeXN0ZW0uXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jLTIzMS1cdCAqL1xuLS1cbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjUwLVxuZHJpdmVycy9tdGQvZGV2aWNlcy9ibG9jazJtdGQuYzoyNTE6XHRcdGlmICghZWFybHlfbG9va3VwX2JkZXYoZGV2bmFtZSwgXHUwMDI2ZGV2dCkpIHtcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjUyLVx0XHRcdGJkZXZfZmlsZSA9IGJkZXZfZmlsZV9vcGVuX2J5X2RldihkZXZ0LCBtb2RlLCBkZXYsIE5VTEwpO1xuLS1cbmRyaXZlcnMvbXRkL210ZHN1cGVyLmM9OTY9aW50IGdldF90cmVlX210ZChzdHJ1Y3QgZnNfY29udGV4dCAqZmMsXG4tLVxuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNDktXHQgKi9cbmRyaXZlcnMvbXRkL210ZHN1cGVyLmM6MTUwOlx0cmV0ID0gbG9va3VwX2JkZXYoZmMtXHUwMDNlc291cmNlLCBcdTAwMjZkZXYpO1xuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNTEtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNTQtXHR9XG5kcml2ZXJzL210ZC9tdGRzdXBlci5jOjE1NTpcdHByX2RlYnVnKFwmIzM0O01URFNCOiBsb29rdXBfYmRldigpIHJldHVybmVkIDBcXG5cJiMzNDspO1xuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNTYtXG4tLVxuZnMvYnRyZnMvZGV2LXJlcGxhY2UuYz0yMzI9c3RhdGljIGludCBidHJmc19pbml0X2Rldl9yZXBsYWNlX3RndGRldihzdHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbyxcbi0tXG5mcy9idHJmcy9kZXYtcmVwbGFjZS5jLTI5MC1cbmZzL2J0cmZzL2Rldi1yZXBsYWNlLmM6MjkxOlx0cmV0ID0gbG9va3VwX2JkZXYoZGV2aWNlX3BhdGgsIFx1MDAyNmRldmljZS1cdTAwM2VkZXZ0KTtcbmZzL2J0cmZzL2Rldi1yZXBsYWNlLmMtMjkyLVx0aWYgKHJldClcbi0tXG5mcy9idHJmcy9zdXBlci5jPTIyNTQ9c3RhdGljIGxvbmcgYnRyZnNfY29udHJvbF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCxcbi0tXG5mcy9idHJmcy9zdXBlci5jLTIyODQtXHRcdGlmICh2b2wtXHUwMDNlbmFtZVswXSAhPSAwKSB7XG5mcy9idHJmcy9zdXBlci5jOjIyODU6XHRcdFx0cmV0ID0gbG9va3VwX2JkZXYodm9sLVx1MDAzZW5hbWUsIFx1MDAyNmRldnQpO1xuZnMvYnRyZnMvc3VwZXIuYy0yMjg2LVx0XHRcdGlmIChyZXQpXG4tLVxuZnMvYnRyZnMvdm9sdW1lcy5jPTc5ND1zdGF0aWMgbm9pbmxpbmUgc3RydWN0IGJ0cmZzX2RldmljZSAqZGV2aWNlX2xpc3RfYWRkKGNvbnN0IGNoYXIgKnBhdGgsXG4tLVxuZnMvYnRyZnMvdm9sdW1lcy5jLTgxNS1cbmZzL2J0cmZzL3ZvbHVtZXMuYzo4MTY6XHRyZXQgPSBsb29rdXBfYmRldihwYXRoLCBcdTAwMjZwYXRoX2RldnQpO1xuZnMvYnRyZnMvdm9sdW1lcy5jLTgxNy1cdGlmIChyZXQpIHtcbi0tXG5mcy9idHJmcy92b2x1bWVzLmM9MjkyNT1pbnQgYnRyZnNfaW5pdF9uZXdfZGV2aWNlKHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvLCBjb25zdCBjaGFyICpkZXZpY2VfcGF0aClcbi0tXG5mcy9idHJmcy92b2x1bWVzLmMtMjk4Ni1cdGRldmljZS1cdTAwM2ViZGV2ID0gZmlsZV9iZGV2KGJkZXZfZmlsZSk7XG5mcy9idHJmcy92b2x1bWVzLmM6Mjk4NzpcdHJldCA9IGxvb2t1cF9iZGV2KGRldmljZV9wYXRoLCBcdTAwMjZkZXZpY2UtXHUwMDNlZGV2dCk7XG5mcy9idHJmcy92b2x1bWVzLmMtMjk4OC1cdGlmIChyZXQpXG4tLVxuZnMvbmlsZnMyL3N1cGVyLmM9MTIwMT1uaWxmc19nZXRfdHJlZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpXG4tLVxuZnMvbmlsZnMyL3N1cGVyLmMtMTIxNC1cbmZzL25pbGZzMi9zdXBlci5jOjEyMTU6XHRlcnIgPSBsb29rdXBfYmRldihmYy1cdTAwM2Vzb3VyY2UsIFx1MDAyNmRldik7XG5mcy9uaWxmczIvc3VwZXIuYy0xMjE2LVx0aWYgKGVycilcbi0tXG5mcy9wc3RvcmUvYmxrLmM9MjU4PXN0YXRpYyBfX2luaXQgY29uc3QgY2hhciAqZWFybHlfYm9vdF9kZXZwYXRoKGNvbnN0IGNoYXIgKmluaXRpYWxfZGV2bmFtZSlcbi0tXG5mcy9wc3RvcmUvYmxrLmMtMjY3LVxuZnMvcHN0b3JlL2Jsay5jOjI2ODpcdGlmIChlYXJseV9sb29rdXBfYmRldihpbml0aWFsX2Rldm5hbWUsIFx1MDAyNmRldikpIHtcbmZzL3BzdG9yZS9ibGsuYy0yNjktXHRcdHByX2VycihcJiMzNDtmYWlsZWQgdG8gcmVzb2x2ZSAmIzM5OyVzJiMzOTshXFxuXCYjMzQ7LCBpbml0aWFsX2Rldm5hbWUpO1xuLS1cbmZzL3F1b3RhL3F1b3RhLmM9ODY2PXN0YXRpYyBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnF1b3RhY3RsX2Jsb2NrKGNvbnN0IGNoYXIgX191c2VyICpzcGVjaWFsLCBpbnQgY21kKVxuLS1cbmZzL3F1b3RhL3F1b3RhLmMtODc2LVx0XHRyZXR1cm4gRVJSX0NBU1QodG1wKTtcbmZzL3F1b3RhL3F1b3RhLmM6ODc3Olx0ZXJyb3IgPSBsb29rdXBfYmRldih0bXAtXHUwMDNlbmFtZSwgXHUwMDI2ZGV2KTtcbmZzL3F1b3RhL3F1b3RhLmMtODc4LVx0aWYgKGVycm9yKVxuLS1cbmZzL3N1cGVyLmM9MTg0OT1pbnQgZ2V0X3RyZWVfYmRldl9mbGFncyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMsXG4tLVxuZnMvc3VwZXIuYy0xODU5LVxuZnMvc3VwZXIuYzoxODYwOlx0ZXJyb3IgPSBsb29rdXBfYmRldihmYy1cdTAwM2Vzb3VyY2UsIFx1MDAyNmRldik7XG5mcy9zdXBlci5jLTE4NjEtXHRpZiAoZXJyb3IpIHtcbi0tXG5pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oPTE3MzQ9aW50IHNldF9ibG9ja3NpemUoc3RydWN0IGZpbGUgKmZpbGUsIGludCBzaXplKTtcbmluY2x1ZGUvbGludXgvYmxrZGV2LmgtMTczNS1cbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg6MTczNjppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpO1xuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xNzM3LVxuLS1cbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg9MTc5OT12b2lkIHByaW50a19hbGxfcGFydGl0aW9ucyh2b2lkKTtcbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg6MTgwMDppbnQgX19pbml0IGVhcmx5X2xvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBkZXZfdCAqZGV2KTtcbmluY2x1ZGUvbGludXgvYmxrZGV2LmgtMTgwMS0jZWxzZVxuLS1cbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg9MTgyMD1zdGF0aWMgaW5saW5lIHZvaWQgcHJpbnRrX2FsbF9wYXJ0aXRpb25zKHZvaWQpXG4tLVxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xODIyLX1cbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg6MTgyMzpzdGF0aWMgaW5saW5lIGludCBlYXJseV9sb29rdXBfYmRldihjb25zdCBjaGFyICpwYXRobmFtZSwgZGV2X3QgKmRldilcbmluY2x1ZGUvbGludXgvYmxrZGV2LmgtMTgyNC17XG4tLVxuaW5pdC9kb19tb3VudHMuYz00MDY9c3RhdGljIHZvaWQgX19pbml0IHdhaXRfZm9yX3Jvb3QoY2hhciAqcm9vdF9kZXZpY2VfbmFtZSlcbi0tXG5pbml0L2RvX21vdW50cy5jLTQxNy1cdHdoaWxlICghZHJpdmVyX3Byb2JlX2RvbmUoKSB8fFxuaW5pdC9kb19tb3VudHMuYzo0MTg6XHQgICAgICAgZWFybHlfbG9va3VwX2JkZXYocm9vdF9kZXZpY2VfbmFtZSwgXHUwMDI2Uk9PVF9ERVYpIFx1MDAzYyAwKSB7XG5pbml0L2RvX21vdW50cy5jLTQxOS1cdFx0bXNsZWVwKDUpO1xuLS1cbmluaXQvZG9fbW91bnRzLmM9NDI4PXN0YXRpYyBkZXZfdCBfX2luaXQgcGFyc2Vfcm9vdF9kZXZpY2UoY2hhciAqcm9vdF9kZXZpY2VfbmFtZSlcbi0tXG5pbml0L2RvX21vdW50cy5jLTQ0Mi1cbmluaXQvZG9fbW91bnRzLmM6NDQzOlx0ZXJyb3IgPSBlYXJseV9sb29rdXBfYmRldihyb290X2RldmljZV9uYW1lLCBcdTAwMjZkZXYpO1xuaW5pdC9kb19tb3VudHMuYy00NDQtXHRpZiAoZXJyb3IpIHtcbi0tXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM9OTgyPXN0YXRpYyBpbnQgX19pbml0IGZpbmRfcmVzdW1lX2RldmljZSh2b2lkKVxuLS1cbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy05OTUtXHQvKiBDaGVjayBpZiB0aGUgZGV2aWNlIGlzIHRoZXJlICovXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM6OTk2Olx0aWYgKCFlYXJseV9sb29rdXBfYmRldihyZXN1bWVfZmlsZSwgXHUwMDI2c3dzdXNwX3Jlc3VtZV9kZXZpY2UpKVxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTk5Ny1cdFx0cmV0dXJuIDA7XG4tLVxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMDQtXHRpZiAocmVzdW1lX3dhaXQpIHtcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYzoxMDA1Olx0XHR3aGlsZSAoZWFybHlfbG9va3VwX2JkZXYocmVzdW1lX2ZpbGUsIFx1MDAyNnN3c3VzcF9yZXN1bWVfZGV2aWNlKSlcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy0xMDA2LVx0XHRcdG1zbGVlcCgxMCk7XG4tLVxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMDktXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM6MTAxMDpcdHJldHVybiBlYXJseV9sb29rdXBfYmRldihyZXN1bWVfZmlsZSwgXHUwMDI2c3dzdXNwX3Jlc3VtZV9kZXZpY2UpO1xua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMTEtfVxuLS1cbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYz0xMjYwPXN0YXRpYyBzc2l6ZV90IHJlc3VtZV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLFxuLS1cbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy0xMjc3LVxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jOjEyNzg6XHRlcnJvciA9IGxvb2t1cF9iZGV2KG5hbWUsIFx1MDAyNmRldik7XG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMtMTI3OS1cdGlmIChlcnJvcikge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYyMjIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAyMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNzaW5nIE15IEZ1enppbmcgRWZmb3J0cyoqCgpPa2F5LCBzbyBgbG9va3VwX2JkZXZgIGlzIHVzZWQgaW4gYSBidW5jaCBvZiBwbGFjZXMsIGluY2x1ZGluZyBgZ2V0X3RyZWVfYmRldl9mbGFnc2AsIHdoaWNoIGlzIGNydWNpYWwgZm9yIG1vdW50aW5nIGJsb2NrIGRldmljZXMuIEl0JiMzOTtzIGFsc28gaW52b2x2ZWQgaW4gYHF1b3RhY3RsX2Jsb2NrYCwgYGJ0cmZzX2NvbnRyb2xfaW9jdGxgLCBhbmQgb3RoZXIga2V5IGFyZWFzIGxpa2UgYG5pbGZzX2dldF90cmVlYCwgYGdldF90cmVlX210ZGAsIGFuZCBgYmRldl9maWxlX29wZW5fYnlfcGF0aGAuIFRoZSBwYXRjaCBtYWtlcyBpdCBjbGVhciB0aGF0IHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggJiMzNDtmYWtlJiMzNDsgYmxvY2sgZGV2aWNlIGlub2Rlcywgc3BlY2lmaWNhbGx5IG1lbnRpb25pbmcgYGZ1c2Ugd2l0aCByb290bW9kZT1TX0lGQkxLYCB3aGVyZSBgaV9yZGV2ID09IDBgLiBUaGF0IGNvdWxkIGVhc2lseSBsZWFkIHRvIHByb2JsZW1zIHdpdGggc3VwZXJibG9jayBsb29rdXAsIHRyaWdnZXJpbmcgdGhvc2UgYW5ub3lpbmcgd2FybmluZ3MgaW4gdGhlIGRldmljZS10by1zdXBlcmJsb2NrIHRhYmxlLCBgc3VwZXJfZGV2X3JlZ2lzdGVyYC4KCk15IGluaXRpYWwgdGhvdWdodCB3YXMsICYjMzQ7TGV0JiMzOTtzIGZ1enogYGxvb2t1cF9iZGV2YCBkaXJlY3RseSEmIzM0OyBCdXQgd2FpdCBhIHNlY29uZC4uLiBgbG9va3VwX2JkZXZgIGlzIGEgcmVhbGx5IGdlbmVyYWwgZnVuY3Rpb24uIFBlcmhhcHMgdGhhdCBpcyB0b28gYnJvYWQgYW5kIGdlbmVyaWMgYW4gYXBwcm9hY2guCgpBaCwgYnV0IHRoZSBjb21taXQgbWVzc2FnZSByZWFsbHkgaGlnaGxpZ2h0cyB0aGUgc2NlbmFyaW8gd2hlcmUgYGlub2RlLSZndDtpX3JkZXYgPT0gMGAuIFRoYXQmIzM5O3MgdGhlIHJlYWwga2V5IGhlcmUuIFRoZSBjb21taXQgbWVzc2FnZSBhbHNvIG1lbnRpb25zIGBmdXNlIHdpdGggcm9vdG1vZGU9U19JRkJMS2AsIHdoaWNoIEkgdGhpbmsgY291bGQgYmUgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBSaWdodCwgSSB0aGluayBJJiMzOTtsbCBkaXZlIGludG8gYGdldF90cmVlX2JkZXZfZmxhZ3NgIGluIGBmcy9zdXBlci5jYC4gVGhhdCBzZWVtcyB0byBiZSB0aGUgY3JpdGljYWwgZW50cnkgcG9pbnQgdG8gdGVzdCBmcm9tLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2dldF90cmVlX2JkZXZfZmxhZ3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9zdXBlci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3N1cGVyLmM9MTg0MT1FWFBPUlRfU1lNQk9MX0dQTChzZXR1cF9iZGV2X3N1cGVyKTtcbi0tXG5mcy9zdXBlci5jLTE4NDMtLyoqXG5mcy9zdXBlci5jOjE4NDQ6ICogZ2V0X3RyZWVfYmRldl9mbGFncyAtIEdldCBhIHN1cGVyYmxvY2sgYmFzZWQgb24gYSBzaW5nbGUgYmxvY2sgZGV2aWNlXG5mcy9zdXBlci5jLTE4NDUtICogQGZjOiBUaGUgZmlsZXN5c3RlbSBjb250ZXh0IGhvbGRpbmcgdGhlIHBhcmFtZXRlcnNcbi0tXG5mcy9zdXBlci5jLTE4NDgtICovXG5mcy9zdXBlci5jOjE4NDk6aW50IGdldF90cmVlX2JkZXZfZmxhZ3Moc3RydWN0IGZzX2NvbnRleHQgKmZjLFxuZnMvc3VwZXIuYy0xODUwLVx0XHRpbnQgKCpmaWxsX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLFxuLS1cbmZzL3N1cGVyLmMtMTg5Mi19XG5mcy9zdXBlci5jOjE4OTM6RVhQT1JUX1NZTUJPTF9HUEwoZ2V0X3RyZWVfYmRldl9mbGFncyk7XG5mcy9zdXBlci5jLTE4OTQtXG4tLVxuZnMvc3VwZXIuYz0xOTAwPWludCBnZXRfdHJlZV9iZGV2KHN0cnVjdCBmc19jb250ZXh0ICpmYyxcbi0tXG5mcy9zdXBlci5jLTE5MDMte1xuZnMvc3VwZXIuYzoxOTA0Olx0cmV0dXJuIGdldF90cmVlX2JkZXZfZmxhZ3MoZmMsIGZpbGxfc3VwZXIsIDApO1xuZnMvc3VwZXIuYy0xOTA1LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTI0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMTUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBnZXRfdHJlZV9iZGV2YCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldGluZyBgZ2V0X3RyZWVfYmRldmAgaXMgaW50ZXJlc3RpbmcuIEl0IGxvb2tzIGxpa2UgdGhpcyBmdW5jdGlvbiBpcyBwcmV0dHkgd2lkZWx5IHVzZWQgYnkgdmFyaW91cyBmaWxlc3lzdGVtcywgc28gYW55IGNoYW5nZSBoZXJlIGhhcyBhIHBvdGVudGlhbGx5IGJyb2FkIGltcGFjdC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBwcmV2ZW50aW5nIGBsb29rdXBfYmRldmAgZnJvbSByZXR1cm5pbmcgYSBgZGV2X3RgIG9mIHplcm8uIEVzc2VudGlhbGx5LCB0aGV5JiMzOTtyZSBwbHVnZ2luZyBhIGJ1ZyB0aGF0IHdhcyBjYXVzaW5nIHdhcm5pbmdzIGluIGBzdXBlcl9kZXZfcmVnaXN0ZXJgLCB3aGljaCBpcyBkZWZpbml0ZWx5IGEgZ29vZCB0aGluZy4KClRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXM6IHNob3VsZCBJIGZ1enogdGhpcz8gQWJzb2x1dGVseSwgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyLiBBbnkgYWRqdXN0bWVudCBhdCB0aGlzIGxldmVsIG5lY2Vzc2l0YXRlcyBzb21lIGhlYXZ5IHRlc3RpbmcgdG8gYXZvaWQgdW5mb3Jlc2VlbiBzaWRlLWVmZmVjdHMuCgpNeSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGBsb29rdXBfYmRldmAgc3ltYm9sIHByaW1hcmlseS4KCkFzIGZvciBzcGVjaWZpYyBjb25maWd1cmF0aW9uIG5lZWRzLCBgQ09ORklHX0JMT0NLYCBpcyB0aGUgb2J2aW91cyBvbmUsIHdoaWNoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4gSG93ZXZlciwgdGhlIGNvbW1pdCBtZXNzYWdlIG1lbnRpb25zICYjMzQ7ZnVzZSB3aXRoIHJvb3Rtb2RlPVNfSUZCTEssJiMzNDsgc28gSSBzaG91bGQgcHJvYmFibHkgYWxzbyBleHBsb3JlIGBDT05GSUdfRlVTRV9GU2AgdG8gc2VlIGlmIHRoYXQgcmV2ZWFscyBhbnl0aGluZyBhZGRpdGlvbmFsLiBMZXQgbWUgY2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyLCByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19GVVNFX0ZTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk4PUNPTkZJR19BVVRPRlNfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9heG01NXh4X2RlZmNvbmZpZzoxOTk6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9heG01NXh4X2RlZmNvbmZpZy0yMDAtQ09ORklHX0NVU0U9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZz00NDU9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc6NDQ2OkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDctQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWc9MTE5PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWc6MTIwOkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWctMTIxLUNPTkZJR19NU0RPU19GUz15XG4tLVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnPTU4MD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvYXJtL2NvbmZpZ3MvcHhhX2RlZmNvbmZpZzo1ODE6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnLTU4Mi1DT05GSUdfQ1VTRT1tXG4tLVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZz0yNzk9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZzoyODA6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODEtQ09ORklHX1ZGQVRfRlM9eVxuLS1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZz04OD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZzo4OTpDT05GSUdfRlVTRV9GUz15XG5hcmNoL2FybS9jb25maWdzL3NwZWFyMTN4eF9kZWZjb25maWctOTAtQ09ORklHX01TRE9TX0ZTPW1cbi0tXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE5MDc9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnOjE5MDg6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZy0xOTA5LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uMzJfZGVmY29uZmlnPTk4MD1DT05GSUdfQVVUT0ZTX0ZTPXlcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWc6OTgxOkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctOTgyLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnPTEwMTE9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjEwMTI6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjY0X2RlZmNvbmZpZy0xMDEzLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWc9NDEyPUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnOjQxMzpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWctNDE0LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnPTM2Nz1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWc6MzY4OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWctMzY5LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWc9MzkwPUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnOjM5MTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWctMzkyLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWc9MzU5PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnOjM2MDpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWctMzYxLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc9MzY5PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnOjM3MDpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWctMzcxLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnPTM4OD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc6Mzg5OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWctMzkwLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWc9NDc1PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnOjQ3NjpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWctNDc3LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZz0zNTk9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTQ3X2RlZmNvbmZpZzozNjA6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWctMzYxLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZz0zNjA9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZzozNjE6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE2eF9kZWZjb25maWctMzYyLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnPTM3OD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWc6Mzc5OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWctMzgwLUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZz0zNTc9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZzozNTg6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWctMzU5LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWc9MzU3PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnOjM1ODpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWctMzU5LUNPTkZJR19DVVNFPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnPTE0NT1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWc6MTQ2OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2JpZ3N1cl9kZWZjb25maWctMTQ3LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWc9NjA9Q09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnLTYxLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYyOkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX2JlX2RlZmNvbmZpZy02My1DT05GSUdfVkZBVF9GUz15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZz0xNDg9Q09ORklHX0pCRDJfREVCVUc9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZzoxNDk6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZy0xNTAtQ09ORklHX0ZIQU5ETEU9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc9MTc3PUNPTkZJR19GQU5PVElGWT15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnOjE3ODpDT05GSUdfRlVTRV9GUz15XG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3OS1DT05GSUdfQ1VTRT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnPTk0PUNPTkZJR19GU19FTkNSWVBUSU9OPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5NTpDT05GSUdfRlVTRV9GUz15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWctOTYtQ09ORklHX0NVU0U9eVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZz05Mz1DT05GSUdfRlNfRU5DUllQVElPTj15XG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWc6OTQ6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnLTk1LUNPTkZJR19DVVNFPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZz0xMDE9Q09ORklHX0ZTX0VOQ1JZUFRJT049eVxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc6MTAyOkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMy1DT05GSUdfQ1VTRT15XG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZz0xNzg9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3OTpDT05GSUdfRlVTRV9GUz15XG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnLTE4MC1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc9NjI9Q09ORklHX0ZBTk9USUZZPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnOjYzOkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvbWlwcy9jb25maWdzL2dlbmVyaWNfZGVmY29uZmlnLTY0LUNPTkZJR19DVVNFPXlcbi0tXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZz0yNDM9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL21pcHMvY29uZmlncy9pcDIyX2RlZmNvbmZpZzoyNDQ6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWctMjQ1LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZz0yODE9Q09ORklHX1FVT1RBX05FVExJTktfSU5URVJGQUNFPXlcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI4MjpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9pcDI3X2RlZmNvbmZpZy0yODMtQ09ORklHX0NVU0U9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnPTE1Mz1DT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWc6MTU0OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnLTE1NS1DT05GSUdfQ1VTRT1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMl9kZWZjb25maWc9OTc9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZzo5ODpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZy05OS1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWc9NzQ9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZzo3NTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZy03Ni1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc9MzA3PUNPTkZJR19BVVRPRlNfRlM9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc6MzA4OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnLTMwOS1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24zX2RlZmNvbmZpZz0zNTg9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnOjM1OTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTM2MC1DT05GSUdfVklSVElPX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9kZWZjb25maWc9MzIyPUNPTkZJR19RRk1UX1YyPXlcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZzozMjM6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfZGVmY29uZmlnLTMyNC1DT05GSUdfSVNPOTY2MF9GUz1tXG4tLVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZz0zMjg9Q09ORklHX1FGTVRfVjI9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZzozMjk6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZy0zMzAtQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmFyY2gvbWlwcy9jb25maWdzL21hbHRhdXBfeHBhX2RlZmNvbmZpZz0zMjg9Q09ORklHX1FGTVRfVjI9eVxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGF1cF94cGFfZGVmY29uZmlnOjMyOTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWctMzMwLUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZz01NTc9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZzo1NTg6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvbXR4MV9kZWZjb25maWctNTU5LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnPTY5PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3MvcGljMzJtemRhX2RlZmNvbmZpZzo3MDpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnLTcxLUNPTkZJR19ORVRGU19TVVBQT1JUPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWc9MzA1PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3Mvcm0yMDBfZGVmY29uZmlnOjMwNjpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWctMzA3LUNPTkZJR19JU085NjYwX0ZTPW1cbi0tXG5hcmNoL21pcHMvY29uZmlncy9zYjEyNTBfc3dhcm1fZGVmY29uZmlnPTcxPUNPTkZJR19FWFQyX0ZTX1NFQ1VSSVRZPXlcbmFyY2gvbWlwcy9jb25maWdzL3NiMTI1MF9zd2FybV9kZWZjb25maWc6NzI6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9taXBzL2NvbmZpZ3Mvc2IxMjUwX3N3YXJtX2RlZmNvbmZpZy03My1DT05GSUdfUFJPQ19LQ09SRT15XG4tLVxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTY0Yml0X2RlZmNvbmZpZz0yNTk9Q09ORklHX0FVVE9GU19GUz15XG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtNjRiaXRfZGVmY29uZmlnOjI2MDpDT05GSUdfRlVTRV9GUz15XG5hcmNoL3BhcmlzYy9jb25maWdzL2dlbmVyaWMtNjRiaXRfZGVmY29uZmlnLTI2MS1DT05GSUdfQ1VTRT15XG4tLVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWc9MTY0PUNPTkZJR19FWFQ0X0ZTX1BPU0lYX0FDTD15XG5hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L2dlX2ltcDNhX2RlZmNvbmZpZzoxNjU6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWctMTY2LUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wbWFjMzJfZGVmY29uZmlnPTI1OD1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWc6MjU5OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWctMjYwLUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZz0yNjk9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZzoyNzA6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWctMjcxLUNPTkZJR19PVkVSTEFZX0ZTPW1cbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc9MzI0PUNPTkZJR19BVVRPRlNfRlM9bVxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnOjMyNTpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWctMzI2LUNPTkZJR19PVkVSTEFZX0ZTPW1cbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnPTkzMz1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc6OTM0OkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWctOTM1LUNPTkZJR19JU085NjYwX0ZTPXlcbi0tXG5hcmNoL3Bvd2VycGMvY29uZmlncy93aWlfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUNF9GUz15XG5hcmNoL3Bvd2VycGMvY29uZmlncy93aWlfZGVmY29uZmlnOjEwNDpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL3Bvd2VycGMvY29uZmlncy93aWlfZGVmY29uZmlnLTEwNS1DT05GSUdfSVNPOTY2MF9GUz15XG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnPTY4Nj1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZzo2ODc6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnLTY4OC1DT05GSUdfQ1VTRT1tXG4tLVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnPTY3Mj1DT05GSUdfQVVUT0ZTX0ZTPW1cbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZzo2NzM6Q09ORklHX0ZVU0VfRlM9eVxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVmY29uZmlnLTY3NC1DT05GSUdfQ1VTRT1tXG4tLVxuYXJjaC9zaC9jb25maWdzL3I3NzgwbXBfZGVmY29uZmlnPTc3PUNPTkZJR19FWFQ0X0ZTPXlcbmFyY2gvc2gvY29uZmlncy9yNzc4MG1wX2RlZmNvbmZpZzo3ODpDT05GSUdfRlVTRV9GUz1tXG5hcmNoL3NoL2NvbmZpZ3Mvcjc3ODBtcF9kZWZjb25maWctNzktQ09ORklHX01TRE9TX0ZTPXlcbi0tXG5hcmNoL3NoL2NvbmZpZ3Mvcjc3ODVycF9kZWZjb25maWc9NzI9Q09ORklHX0VYVDRfRlM9eVxuYXJjaC9zaC9jb25maWdzL3I3Nzg1cnBfZGVmY29uZmlnOjczOkNPTkZJR19GVVNFX0ZTPW1cbmFyY2gvc2gvY29uZmlncy9yNzc4NXJwX2RlZmNvbmZpZy03NC1DT05GSUdfTVNET1NfRlM9eVxuLS1cbmFyY2gvc2gvY29uZmlncy9zZGs3Nzg2X2RlZmNvbmZpZz0xNjg9Q09ORklHX0FVVE9GU19GUz1tXG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4Nl9kZWZjb25maWc6MTY5OkNPTkZJR19GVVNFX0ZTPXlcbmFyY2gvc2gvY29uZmlncy9zZGs3Nzg2X2RlZmNvbmZpZy0xNzAtQ09ORklHX0NVU0U9bVxuLS1cbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc9MjIwPUNPTkZJR19YRlNfRlM9bVxuYXJjaC9zaC9jb25maWdzL3RpdGFuX2RlZmNvbmZpZzoyMjE6Q09ORklHX0ZVU0VfRlM9bVxuYXJjaC9zaC9jb25maWdzL3RpdGFuX2RlZmNvbmZpZy0yMjItQ09ORklHX0lTTzk2NjBfRlM9bVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jaS94ODZfNjQuY29uZmlnPTg2PUNPTkZJR19LVk1fSU5URUw9bVxuLS1cbmRyaXZlcnMvZ3B1L2RybS9jaS94ODZfNjQuY29uZmlnLTg4LSNvcHRpb25zIGZvciBLVk0gZ3Vlc3RzXG5kcml2ZXJzL2dwdS9kcm0vY2kveDg2XzY0LmNvbmZpZzo4OTpDT05GSUdfRlVTRV9GUz15XG5kcml2ZXJzL2dwdS9kcm0vY2kveDg2XzY0LmNvbmZpZy05MC1DT05GSUdfSFlQRVJWSVNPUl9HVUVTVD15XG4tLVxuZnMvTWFrZWZpbGU9MTAyPW9iai0kKENPTkZJR19BREZTX0ZTKVx0XHQmIzQzOz0gYWRmcy9cbmZzL01ha2VmaWxlOjEwMzpvYmotJChDT05GSUdfRlVTRV9GUylcdFx0JiM0Mzs9IGZ1c2UvXG5mcy9NYWtlZmlsZS0xMDQtb2JqLSQoQ09ORklHX09WRVJMQVlfRlMpXHQmIzQzOz0gb3ZlcmxheWZzL1xuLS1cbmZzL2Z1c2UvTWFrZWZpbGU9Nz1jY2ZsYWdzLXkgPSAtSSQoc3JjKVxuZnMvZnVzZS9NYWtlZmlsZS04LVxuZnMvZnVzZS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19GVVNFX0ZTKSAmIzQzOz0gZnVzZS5vXG5mcy9mdXNlL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19DVVNFKSAmIzQzOz0gY3VzZS5vXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5hYXJjaDY0PTUyPUNPTkZJR19GVU5DVElPTl9QUk9GSUxFUj15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLmFhcmNoNjQ6NTM6Q09ORklHX0ZVU0VfRlM9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5hYXJjaDY0LTU0LUNPTkZJR19GV19DRkdfU1lTRlNfQ01ETElORT15XG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy52bT00PUNPTkZJR19DUllQVE9fREVWX1ZJUlRJTz15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnZtOjU6Q09ORklHX0ZVU0VfRlM9eVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy52bS02LUNPTkZJR19GVVNFX1BBU1NUSFJPVUdIPXlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbj03NT1DT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbjo3NjpDT05GSUdfRlVTRV9GUz15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbi03Ny1DT05GSUdfRldfTE9BREVSX1VTRVJfSEVMUEVSPXlcbi0tXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9tZW1mZC9jb25maWc6MTpDT05GSUdfRlVTRV9GUz1tXG4tLVxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdnNvY2svY29uZmlnPTM1PUNPTkZJR19TUVVBU0hGU19aU1REPXlcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Zzb2NrL2NvbmZpZzozNjpDT05GSUdfRlVTRV9GUz15XG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy92c29jay9jb25maWctMzctQ09ORklHX1ZJUlRJT19GUz15XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA3OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzMTA5CgkJCQkJCQlvdXRwdXQ6IDEyMgoJCQkJCQkJdGhvdWdodHM6IDUyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBGdW5jdGlvbmFsIENoYW5nZSBpbiBCbG9jayBEZXZpY2UgSGFuZGxpbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggcmVsYXRlZCB0byBgQ09ORklHX0ZVU0VfRlNgLiBUaGUgY29yZSBvZiB0aGlzIGNoYW5nZSBmb2N1c2VzIG9uIHRoZSBgbG9va3VwX2JkZXZgIGZ1bmN0aW9uLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIHNwZWNpZmljIGNoZWNrOiBpdCYjMzk7cyByZWplY3RpbmcgYmxvY2sgZGV2aWNlIGlub2RlcyB3aGVyZSBgaV9yZGV2YCBpcyBlcXVhbCB0byAwLiBUaGlzIHNlZW1zIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYWltZWQgYXQgY29ycmVjdGluZyBhIHBvdGVudGlhbCBpc3N1ZS4KCkxldCYjMzk7cyBxdWlja2x5IHJlY2FwOiB0aGUgY3JpdGljYWwgcGllY2UgaXMgYGxvb2t1cF9iZGV2YC4gSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IGBsb29rdXBfYmRldmAgaXMgaW5kZWVkIHJlYWNoYWJsZSB2aWEgbXVsdGlwbGUgcGF0aHMg4oCTIG1vdW50IG9wZXJhdGlvbnMsIGBxdW90YWN0bGAsIEJ0cmZzIGlvY3RscywgYW5kIGxpa2VseSBvdGhlcnMuIEkmIzM5O3ZlIGRvdWJsZS1jaGVja2VkIHRoYXQ7IGl0IHNlZW1zIHRvIGJlIHRoZSBvbmx5IGZ1bmN0aW9uIGRpcmVjdGx5IG1vZGlmaWVkIGJ5IHRoaXMgcGF0Y2guCgpSZXZpZXdpbmcgdGhlIGNvZGUgc25pcHBldCBhZ2FpbiBjb25maXJtcyB0aGlzLiBUaGUgcGF0Y2ggYWRkcyBhIHNpbXBsZSBjb25kaXRpb25hbCBjaGVjayByaWdodCBhZnRlciB0aGUgYG1heV9vcGVuX2RldmAgY2FsbC4gSXQgZW5zdXJlcyB0aGF0IGBpX3JkZXZgIGlzbiYjMzk7dCB6ZXJvLCByZXR1cm5pbmcgYC1FTk9ERVZgIGlmIGl0IGlzLiBUaGUgcmF0aW9uYWxlIGlzIGNsZWFyOiBhIGBkZXZfdGAgb2YgMCBpcyBuZXZlciB2YWxpZCBmb3IgYW4gYWN0dWFsIGJsb2NrIGRldmljZSwgYW5kIGFsbG93aW5nIHRoZXNlICYjMzk7ZmFrZSYjMzk7IGlub2RlcyAobGlrZSB0aG9zZSBwb3NzaWJseSBnZW5lcmF0ZWQgYnkgRlVTRSB3aGVuIHVzaW5nIGByb290bW9kZT1TX0lGQkxLYCkgdG8gcHJvcGFnYXRlIGNhbiBjcmVhdGUgcHJvYmxlbXMgaW4gc3VwZXJibG9jayBsb29rdXAgYW5kIHRyaWdnZXIgd2FybmluZ3MgaW4gdGhlIGRldmljZS10by1zdXBlcmJsb2NrIHRhYmxlIHJlZ2lzdHJhdGlvbiAoYHN1cGVyX2Rldl9yZWdpc3RlcmApLgoKVGhpcyBjbGVhcmx5IHByZXZlbnRzIGEgcG90ZW50aWFsIGJ1Zy4gU2luY2UgdGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgYmVoYXZpb3Igb2YgYSBjb3JlIGJsb2NrIGxheWVyIGZ1bmN0aW9uLCBhbmQgdGhlIGlzc3VlIGFyaXNlcyBpbiBjb25qdW5jdGlvbiB3aXRoIEZVU0UsIHRoaXMgbWFrZXMgaXQgYW4gZXhjZWxsZW50IGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gRm9jdXNpbmcgZnV6emluZyBlZmZvcnRzIG9uIGBsb29rdXBfYmRldmAgd2l0aCBgRlVTRV9GU2AgZW5hYmxlZCB3b3VsZCBiZSB0aGUgbW9zdCBlZmZlY3RpdmUgd2F5IHRvIHZhbGlkYXRlIHRoaXMgZml4LgoKSSYjMzk7bSByZWFkeSB0byBkb2N1bWVudCB0aGVzZSBmaW5kaW5ncyB1c2luZyBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNzo0MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RlVTRV9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2xvb2t1cF9iZGV2JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtGVVNFX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bG9va3VwX2JkZXYmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIGluIGBsb29rdXBfYmRldmAgdG8gcmVqZWN0IGJsb2NrIGRldmljZSBpbm9kZXMgd2l0aCBgaV9yZGV2ID09IDBgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgYmxvY2sgbGF5ZXIgdGhhdCBwcmV2ZW50cyBzdXBlcmJsb2NrIGxvb2t1cCBjb25mdXNpb24gYW5kIHdhcm5pbmdzIHdoZW4gZGVhbGluZyB3aXRoIGZha2UgYmxvY2sgZGV2aWNlIGlub2RlcyAoZS5nLiwgZnJvbSBGVVNFKS4gRnV6emluZyBgbG9va3VwX2JkZXZgIHdpdGggRlVTRSBlbmFibGVkIHdpbGwgaGVscCB2ZXJpZnkgdGhpcyBmaXguJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0MjozOC42ODY0NTU5MDJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODU4MzE5NjQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJGVVNFX0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibG9va3VwX2JkZXZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgaW4gYGxvb2t1cF9iZGV2YCB0byByZWplY3QgYmxvY2sgZGV2aWNlIGlub2RlcyB3aXRoIGBpX3JkZXYgPT0gMGAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBibG9jayBsYXllciB0aGF0IHByZXZlbnRzIHN1cGVyYmxvY2sgbG9va3VwIGNvbmZ1c2lvbiBhbmQgd2FybmluZ3Mgd2hlbiBkZWFsaW5nIHdpdGggZmFrZSBibG9jayBkZXZpY2UgaW5vZGVzIChlLmcuLCBmcm9tIEZVU0UpLiBGdXp6aW5nIGBsb29rdXBfYmRldmAgd2l0aCBGVVNFIGVuYWJsZWQgd2lsbCBoZWxwIHZlcmlmeSB0aGlzIGZpeC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6MzguNjg2NDYxNjgyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjM4NjkxMTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBjNmY2NDI2OTIzNWIzOTBjYjczMjZkZjE4NzRjMTEzYzEwNzc2YTJjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDMgMDc6NDI6MzcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYmxvY2svYmRldi5jIGIvYmxvY2svYmRldi5jXFxuaW5kZXggMjhiMGQ0MGMzNjJmZTguLjc5N2Q3ZjBlZjYwOTQ2IDEwMDY0NFxcbi0tLSBhL2Jsb2NrL2JkZXYuY1xcbisrKyBiL2Jsb2NrL2JkZXYuY1xcbkBAIC0xMjc4LDYgKzEyNzgsMTggQEAgaW50IGxvb2t1cF9iZGV2KGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBkZXZfdCAqZGV2KVxcbiBcXHRpZiAoIW1heV9vcGVuX2RldihcXHUwMDI2cGF0aCkpXFxuIFxcdFxcdGdvdG8gb3V0X3BhdGhfcHV0O1xcbiBcXG4rXFx0LypcXG4rXFx0ICogUmVqZWN0IGEgYmxvY2sgZGV2aWNlIGlub2RlIHdpdGggaV9yZGV2ID09IDAuICBBIGRldl90IG9mIDAgaXNcXG4rXFx0ICogbmV2ZXIgdmFsaWQgZm9yIGEgYmxvY2sgZGV2aWNlOiBubyByZWFsIGJsb2NrIGRldmljZSBkcml2ZXJcXG4rXFx0ICogcmVnaXN0ZXJzIG1ham9yIDAuICBGYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4gZnVzZSB3aXRoXFxuK1xcdCAqIHJvb3Rtb2RlPVNfSUZCTEspIGNhbiBleHBvc2UgaV9yZGV2ID09IDAsIGFuZCBsZXR0aW5nIHRoYXRcXG4rXFx0ICogcHJvcGFnYXRlIHdvdWxkIGNvbmZ1c2Ugc3VwZXJibG9jayBsb29rdXAgYW5kIHRyaWdnZXIgd2FybmluZ3NcXG4rXFx0ICogaW4gdGhlIGRldmljZS10by1zdXBlcmJsb2NrIHRhYmxlIChzdXBlcl9kZXZfcmVnaXN0ZXIpLlxcbitcXHQgKi9cXG4rXFx0ZXJyb3IgPSAtRU5PREVWO1xcbitcXHRpZiAoIWlub2RlLVxcdTAwM2VpX3JkZXYpXFxuK1xcdFxcdGdvdG8gb3V0X3BhdGhfcHV0O1xcbitcXG4gXFx0KmRldiA9IGlub2RlLVxcdTAwM2VpX3JkZXY7XFxuIFxcdGVycm9yID0gMDtcXG4gb3V0X3BhdGhfcHV0OlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0MjozOS4xNTE4Mzk5MjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4MTE3ODAxMjU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkZVU0VfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsb29rdXBfYmRldlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGM2ZjY0MjY5MjM1YjM5MGNiNzMyNmRmMTg3NGMxMTNjMTA3NzZhMmNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzIDA3OjQyOjM3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYmxvY2svYmRldi5jIGIvYmxvY2svYmRldi5jXG5pbmRleCAyOGIwZDQwYzM2MmZlOC4uNzk3ZDdmMGVmNjA5NDYgMTAwNjQ0XG4tLS0gYS9ibG9jay9iZGV2LmNcbisrKyBiL2Jsb2NrL2JkZXYuY1xuQEAgLTEyNzgsNiArMTI3OCwxOCBAQCBpbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXG4gXHRpZiAoIW1heV9vcGVuX2RldihcdTAwMjZwYXRoKSlcbiBcdFx0Z290byBvdXRfcGF0aF9wdXQ7XG4gXG4rXHQvKlxuK1x0ICogUmVqZWN0IGEgYmxvY2sgZGV2aWNlIGlub2RlIHdpdGggaV9yZGV2ID09IDAuICBBIGRldl90IG9mIDAgaXNcbitcdCAqIG5ldmVyIHZhbGlkIGZvciBhIGJsb2NrIGRldmljZTogbm8gcmVhbCBibG9jayBkZXZpY2UgZHJpdmVyXG4rXHQgKiByZWdpc3RlcnMgbWFqb3IgMC4gIEZha2UgYmxvY2sgZGV2aWNlIGlub2RlcyAoZS5nLiBmdXNlIHdpdGhcbitcdCAqIHJvb3Rtb2RlPVNfSUZCTEspIGNhbiBleHBvc2UgaV9yZGV2ID09IDAsIGFuZCBsZXR0aW5nIHRoYXRcbitcdCAqIHByb3BhZ2F0ZSB3b3VsZCBjb25mdXNlIHN1cGVyYmxvY2sgbG9va3VwIGFuZCB0cmlnZ2VyIHdhcm5pbmdzXG4rXHQgKiBpbiB0aGUgZGV2aWNlLXRvLXN1cGVyYmxvY2sgdGFibGUgKHN1cGVyX2Rldl9yZWdpc3RlcikuXG4rXHQgKi9cbitcdGVycm9yID0gLUVOT0RFVjtcbitcdGlmICghaW5vZGUtXHUwMDNlaV9yZGV2KVxuK1x0XHRnb3RvIG91dF9wYXRoX3B1dDtcbitcbiBcdCpkZXYgPSBpbm9kZS1cdTAwM2VpX3JkZXY7XG4gXHRlcnJvciA9IDA7XG4gb3V0X3BhdGhfcHV0OlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6MzkuMTUxODQyNjY3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQxNzk0NzY0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCbG9jayBEZXZpY2UgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgYmxvY2svYmRldi5jYC4gSXQncyBhIHByZXR0eSBmb2N1c2VkIG1vZGlmaWNhdGlvbiwgc2VlbXMgbGlrZSBpdCdzIGNoYW5naW5nIHRoZSBiZWhhdmlvciBvZiBgbG9va3VwX2JkZXZgLiBTcGVjaWZpY2FsbHksIGl0J3MgbWFraW5nIGBsb29rdXBfYmRldmAgcmV0dXJuIGAtRU5PREVWYCBpZiB0aGUgYGlub2RlLVx1MDAzZWlfcmRldmAgdmFsdWUgaXMgMC4gVGhhdCdzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHJpZ2h0IGluIHRoZSBibG9jayBsYXllciwgYW5kIGBsb29rdXBfYmRldmAgaXMgdGhlIGNydWNpYWwgZnVuY3Rpb24uIEkga25vdyBpdCBnZXRzIGNhbGxlZCBmcm9tIGFsbCBzb3J0cyBvZiBwbGFjZXMsIGxpa2Ugd2hlbiBtb3VudGluZyBhIGJsb2NrIGRldmljZSBvciBvcGVuaW5nIG9uZS4gVGhlIGNvbnNlcXVlbmNlcyBvZiB0aGlzIGNoYW5nZSBjb3VsZCBiZSBzaWduaWZpY2FudCBkZXBlbmRpbmcgb24gd2hlcmUgZWxzZSB0aGUgZXJyb3IgY29kZSBpcyBldmFsdWF0ZWQgaW4gdGhlIGNhbGwgc3RhY2suIExldCBtZSBnZXQgcmlnaHQgaW50byBgYmxvY2svYmRldi5jYCBhbmQgc2VlIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFuZCB3aHkgdGhpcyBtb2RpZmljYXRpb24gaXMgYmVpbmcgaW50cm9kdWNlZCBpbiB0aGUgZmlyc3QgcGxhY2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByYXRpb25hbGUgYW5kIHRoZSBwb3RlbnRpYWwgcmlwcGxlIGVmZmVjdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5NTEsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo0Mi41Njk3OTI2MzdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjMxODIxMDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibG9va3VwX2JkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYmxvY2svYmRldi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImJsb2NrL2JkZXYuYz0xMTE2PXN0cnVjdCBmaWxlICpiZGV2X2ZpbGVfb3Blbl9ieV9wYXRoKGNvbnN0IGNoYXIgKnBhdGgsIGJsa19tb2RlX3QgbW9kZSxcXG4tLVxcbmJsb2NrL2JkZXYuYy0xMTIzLVxcbmJsb2NrL2JkZXYuYzoxMTI0OlxcdGVycm9yID0gbG9va3VwX2JkZXYocGF0aCwgXFx1MDAyNmRldik7XFxuYmxvY2svYmRldi5jLTExMjUtXFx0aWYgKGVycm9yKVxcbi0tXFxuYmxvY2svYmRldi5jPTEyNDc9RVhQT1JUX1NZTUJPTChiZGV2X2ZwdXQpO1xcbi0tXFxuYmxvY2svYmRldi5jLTEyNDktLyoqXFxuYmxvY2svYmRldi5jOjEyNTA6ICogbG9va3VwX2JkZXYoKSAtIExvb2sgdXAgYSBzdHJ1Y3QgYmxvY2tfZGV2aWNlIGJ5IG5hbWUuXFxuYmxvY2svYmRldi5jLTEyNTEtICogQHBhdGhuYW1lOiBOYW1lIG9mIHRoZSBibG9jayBkZXZpY2UgaW4gdGhlIGZpbGVzeXN0ZW0uXFxuLS1cXG5ibG9jay9iZGV2LmMtMTI1OS0gKi9cXG5ibG9jay9iZGV2LmM6MTI2MDppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXFxuYmxvY2svYmRldi5jLTEyNjEte1xcbi0tXFxuYmxvY2svYmRldi5jLTEyOTgtfVxcbmJsb2NrL2JkZXYuYzoxMjk5OkVYUE9SVF9TWU1CT0wobG9va3VwX2JkZXYpO1xcbmJsb2NrL2JkZXYuYy0xMzAwLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo0Mi42MzMwMDM5NzJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTY3MDY1ODQ0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBCbG9jayBEZXZpY2UgTG9va3VwKipcblxuT2theSwgc28gdGhlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IHdpdGhpbiBgbG9va3VwX2JkZXZgLiBUaW1lIHRvIHRyYWNlIGl0cyB1c2FnZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHRzIHdoZXJlIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGZ1bGx5IGdyYXNwIHRoZSBpbXBhY3Qgb2YgdGhlIHBhdGNoLiBLbm93aW5nIGl0cyBjYWxsZXJzIHdpbGwgdGVsbCBtZSB3aGljaCBtb2R1bGVzIG9yIHN1YnN5c3RlbXMgcmVseSBvbiB0aGUgYmxvY2sgZGV2aWNlIGxvb2t1cCBtZWNoYW5pc20gYW5kIHdoaWNoIGNvdWxkIGJlIGFmZmVjdGVkIGJ5IHRoZSBtb2RpZmljYXRpb25zLiBJdCdzIGEgY3JpdGljYWwgZmlyc3Qgc3RlcCB0byBhc3Nlc3MgdGhlIG92ZXJhbGwgaW1wbGljYXRpb25zLiBUaGlzIHdpbGwgc2V0IHRoZSBzdGFnZSBmb3IgYSBwcm9wZXIgaW1wYWN0IGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjA0LCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6NDUuNjAwMDcxNjE2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI4MTY3NTc4MjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibG9va3VwX2JkZXZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0PTk1PUtlcm5lbCBwYXJhbWV0ZXJzXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2FkbWluLWd1aWRlL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dC02NjgwLVxcdFxcdFxcdFVzdWFsbHkgdGhpcyBpcyBhIGJsb2NrIGRldmljZSBzcGVjaWZpZXIgb2Ygc29tZSBraW5kLFxcbkRvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUva2VybmVsLXBhcmFtZXRlcnMudHh0OjY2ODE6XFx0XFx0XFx0c2VlIHRoZSBlYXJseV9sb29rdXBfYmRldiBjb21tZW50IGluXFxuRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9rZXJuZWwtcGFyYW1ldGVycy50eHQtNjY4Mi1cXHRcXHRcXHRibG9jay9lYXJseS1sb29rdXAuYyBmb3IgZGV0YWlscy5cXG4tLVxcbmJsb2NrL2JkZXYuYz0xMTE2PXN0cnVjdCBmaWxlICpiZGV2X2ZpbGVfb3Blbl9ieV9wYXRoKGNvbnN0IGNoYXIgKnBhdGgsIGJsa19tb2RlX3QgbW9kZSxcXG4tLVxcbmJsb2NrL2JkZXYuYy0xMTIzLVxcbmJsb2NrL2JkZXYuYzoxMTI0OlxcdGVycm9yID0gbG9va3VwX2JkZXYocGF0aCwgXFx1MDAyNmRldik7XFxuYmxvY2svYmRldi5jLTExMjUtXFx0aWYgKGVycm9yKVxcbi0tXFxuYmxvY2svYmRldi5jPTEyNDc9RVhQT1JUX1NZTUJPTChiZGV2X2ZwdXQpO1xcbi0tXFxuYmxvY2svYmRldi5jLTEyNDktLyoqXFxuYmxvY2svYmRldi5jOjEyNTA6ICogbG9va3VwX2JkZXYoKSAtIExvb2sgdXAgYSBzdHJ1Y3QgYmxvY2tfZGV2aWNlIGJ5IG5hbWUuXFxuYmxvY2svYmRldi5jLTEyNTEtICogQHBhdGhuYW1lOiBOYW1lIG9mIHRoZSBibG9jayBkZXZpY2UgaW4gdGhlIGZpbGVzeXN0ZW0uXFxuLS1cXG5ibG9jay9iZGV2LmMtMTI1OS0gKi9cXG5ibG9jay9iZGV2LmM6MTI2MDppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXFxuYmxvY2svYmRldi5jLTEyNjEte1xcbi0tXFxuYmxvY2svYmRldi5jLTEyOTgtfVxcbmJsb2NrL2JkZXYuYzoxMjk5OkVYUE9SVF9TWU1CT0wobG9va3VwX2JkZXYpO1xcbmJsb2NrL2JkZXYuYy0xMzAwLVxcbi0tXFxuYmxvY2svZWFybHktbG9va3VwLmM9MTk3PXN0YXRpYyBpbnQgX19pbml0IGRldnRfZnJvbV9kZXZudW0oY29uc3QgY2hhciAqbmFtZSwgZGV2X3QgKmRldnQpXFxuLS1cXG5ibG9jay9lYXJseS1sb29rdXAuYy0yNDMtICovXFxuYmxvY2svZWFybHktbG9va3VwLmM6MjQ0OmludCBfX2luaXQgZWFybHlfbG9va3VwX2JkZXYoY29uc3QgY2hhciAqbmFtZSwgZGV2X3QgKmRldnQpXFxuYmxvY2svZWFybHktbG9va3VwLmMtMjQ1LXtcXG4tLVxcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmM9MjU1Nz1zdGF0aWMgc3NpemVfdCByZWdpc3Rlcl9iY2FjaGUoc3RydWN0IGtvYmplY3QgKmssIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0cixcXG4tLVxcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMtMjYyMy1cXHRcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZiY2hfcmVnaXN0ZXJfbG9jayk7XFxuZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYzoyNjI0OlxcdFxcdFxcdGlmIChsb29rdXBfYmRldihzdHJpbShwYXRoKSwgXFx1MDAyNmRldikgPT0gMCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMtMjYyNS1cXHRcXHRcXHQgICAgYmNoX2lzX29wZW4oZGV2KSlcXG4tLVxcbmRyaXZlcnMvbWQvZG0taW5pdC5jPTI3MT1zdGF0aWMgaW50IF9faW5pdCBkbV9pbml0X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbWQvZG0taW5pdC5jLTMwMC1cXHRcXHRcXHRETUlORk8oXFxcIndhaXRpbmcgZm9yIGRldmljZSAlcyAuLi5cXFwiLCB3YWl0Zm9yW2ldKTtcXG5kcml2ZXJzL21kL2RtLWluaXQuYzozMDE6XFx0XFx0XFx0d2hpbGUgKGVhcmx5X2xvb2t1cF9iZGV2KHdhaXRmb3JbaV0sIFxcdTAwMjZkZXYpKVxcbmRyaXZlcnMvbWQvZG0taW5pdC5jLTMwMi1cXHRcXHRcXHRcXHRmc2xlZXAoNTAwMCk7XFxuLS1cXG5kcml2ZXJzL21kL2RtLXRhYmxlLmM9MzEyPXN0YXRpYyBpbnQgdXBncmFkZV9tb2RlKHN0cnVjdCBkbV9kZXZfaW50ZXJuYWwgKmRkLCBibGtfbW9kZV90IG5ld19tb2RlLFxcbi0tXFxuZHJpdmVycy9tZC9kbS10YWJsZS5jLTMzMi0gKiBOb3RlOiB0aGUgX19yZWYgYW5ub3RhdGlvbiBpcyBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gY2FuIGNhbGwgdGhlIF9faW5pdFxcbmRyaXZlcnMvbWQvZG0tdGFibGUuYzozMzM6ICogbWFya2VkIGVhcmx5X2xvb2t1cF9iZGV2IHdoZW4gY2FsbGVkIGR1cmluZyBlYXJseSBib290IGNvZGUgZnJvbSBkbS1pbml0LmMuXFxuZHJpdmVycy9tZC9kbS10YWJsZS5jLTMzNC0gKi9cXG5kcml2ZXJzL21kL2RtLXRhYmxlLmM9MzM1PWludCBfX3JlZiBkbV9kZXZ0X2Zyb21fcGF0aChjb25zdCBjaGFyICpwYXRoLCBkZXZfdCAqZGV2X3ApXFxuLS1cXG5kcml2ZXJzL21kL2RtLXRhYmxlLmMtMzQ3LVxcdH0gZWxzZSB7XFxuZHJpdmVycy9tZC9kbS10YWJsZS5jOjM0ODpcXHRcXHRyID0gbG9va3VwX2JkZXYocGF0aCwgXFx1MDAyNmRldik7XFxuZHJpdmVycy9tZC9kbS10YWJsZS5jLTM0OS0jaWZuZGVmIE1PRFVMRVxcbmRyaXZlcnMvbWQvZG0tdGFibGUuYy0zNTAtXFx0XFx0aWYgKHIgXFx1MDAyNlxcdTAwMjYgc3lzdGVtX3N0YXRlIFxcdTAwM2MgU1lTVEVNX1JVTk5JTkcpXFxuZHJpdmVycy9tZC9kbS10YWJsZS5jOjM1MTpcXHRcXHRcXHRyID0gZWFybHlfbG9va3VwX2JkZXYocGF0aCwgXFx1MDAyNmRldik7XFxuZHJpdmVycy9tZC9kbS10YWJsZS5jLTM1Mi0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbWQvbWQtYXV0b2RldGVjdC5jPTEyMz1zdGF0aWMgdm9pZCBfX2luaXQgbWRfc2V0dXBfZHJpdmUoc3RydWN0IG1kX3NldHVwX2FyZ3MgKmFyZ3MpXFxuLS1cXG5kcml2ZXJzL21kL21kLWF1dG9kZXRlY3QuYy0xNDktXFxuZHJpdmVycy9tZC9tZC1hdXRvZGV0ZWN0LmM6MTUwOlxcdFxcdGlmIChlYXJseV9sb29rdXBfYmRldihkZXZuYW1lLCBcXHUwMDI2ZGV2KSlcXG5kcml2ZXJzL21kL21kLWF1dG9kZXRlY3QuYy0xNTEtXFx0XFx0XFx0ZGV2ID0gMDtcXG4tLVxcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM9MjAzPXN0YXRpYyB2b2lkIGJsb2NrMm10ZF9mcmVlX2RldmljZShzdHJ1Y3QgYmxvY2sybXRkX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9tdGQvZGV2aWNlcy9ibG9jazJtdGQuYy0yMTktICogVGhpcyBmdW5jdGlvbiBpcyBtYXJrZWQgX19yZWYgYmVjYXVzZSBpdCBjYWxscyB0aGUgX19pbml0IG1hcmtlZFxcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM6MjIwOiAqIGVhcmx5X2xvb2t1cF9iZGV2IHdoZW4gY2FsbGVkIGZyb20gdGhlIGVhcmx5IGJvb3QgY29kZS5cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jLTIyMS0gKi9cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jPTIyMj1zdGF0aWMgc3RydWN0IGZpbGUgX19yZWYgKm1kdGJsb2NrX2Vhcmx5X2dldF9iZGV2KGNvbnN0IGNoYXIgKmRldm5hbWUsXFxuLS1cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jLTIyOS1cXHQvKlxcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmM6MjMwOlxcdCAqIFdlIGNhbid0IHVzZSBlYXJseV9sb29rdXBfYmRldiBmcm9tIGEgcnVubmluZyBzeXN0ZW0uXFxuZHJpdmVycy9tdGQvZGV2aWNlcy9ibG9jazJtdGQuYy0yMzEtXFx0ICovXFxuLS1cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jLTI1MC1cXG5kcml2ZXJzL210ZC9kZXZpY2VzL2Jsb2NrMm10ZC5jOjI1MTpcXHRcXHRpZiAoIWVhcmx5X2xvb2t1cF9iZGV2KGRldm5hbWUsIFxcdTAwMjZkZXZ0KSkge1xcbmRyaXZlcnMvbXRkL2RldmljZXMvYmxvY2sybXRkLmMtMjUyLVxcdFxcdFxcdGJkZXZfZmlsZSA9IGJkZXZfZmlsZV9vcGVuX2J5X2RldihkZXZ0LCBtb2RlLCBkZXYsIE5VTEwpO1xcbi0tXFxuZHJpdmVycy9tdGQvbXRkc3VwZXIuYz05Nj1pbnQgZ2V0X3RyZWVfbXRkKHN0cnVjdCBmc19jb250ZXh0ICpmYyxcXG4tLVxcbmRyaXZlcnMvbXRkL210ZHN1cGVyLmMtMTQ5LVxcdCAqL1xcbmRyaXZlcnMvbXRkL210ZHN1cGVyLmM6MTUwOlxcdHJldCA9IGxvb2t1cF9iZGV2KGZjLVxcdTAwM2Vzb3VyY2UsIFxcdTAwMjZkZXYpO1xcbmRyaXZlcnMvbXRkL210ZHN1cGVyLmMtMTUxLVxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbXRkL210ZHN1cGVyLmMtMTU0LVxcdH1cXG5kcml2ZXJzL210ZC9tdGRzdXBlci5jOjE1NTpcXHRwcl9kZWJ1ZyhcXFwiTVREU0I6IGxvb2t1cF9iZGV2KCkgcmV0dXJuZWQgMFxcXFxuXFxcIik7XFxuZHJpdmVycy9tdGQvbXRkc3VwZXIuYy0xNTYtXFxuLS1cXG5mcy9idHJmcy9kZXYtcmVwbGFjZS5jPTIzMj1zdGF0aWMgaW50IGJ0cmZzX2luaXRfZGV2X3JlcGxhY2VfdGd0ZGV2KHN0cnVjdCBidHJmc19mc19pbmZvICpmc19pbmZvLFxcbi0tXFxuZnMvYnRyZnMvZGV2LXJlcGxhY2UuYy0yOTAtXFxuZnMvYnRyZnMvZGV2LXJlcGxhY2UuYzoyOTE6XFx0cmV0ID0gbG9va3VwX2JkZXYoZGV2aWNlX3BhdGgsIFxcdTAwMjZkZXZpY2UtXFx1MDAzZWRldnQpO1xcbmZzL2J0cmZzL2Rldi1yZXBsYWNlLmMtMjkyLVxcdGlmIChyZXQpXFxuLS1cXG5mcy9idHJmcy9zdXBlci5jPTIyNTQ9c3RhdGljIGxvbmcgYnRyZnNfY29udHJvbF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCxcXG4tLVxcbmZzL2J0cmZzL3N1cGVyLmMtMjI4NC1cXHRcXHRpZiAodm9sLVxcdTAwM2VuYW1lWzBdICE9IDApIHtcXG5mcy9idHJmcy9zdXBlci5jOjIyODU6XFx0XFx0XFx0cmV0ID0gbG9va3VwX2JkZXYodm9sLVxcdTAwM2VuYW1lLCBcXHUwMDI2ZGV2dCk7XFxuZnMvYnRyZnMvc3VwZXIuYy0yMjg2LVxcdFxcdFxcdGlmIChyZXQpXFxuLS1cXG5mcy9idHJmcy92b2x1bWVzLmM9Nzk0PXN0YXRpYyBub2lubGluZSBzdHJ1Y3QgYnRyZnNfZGV2aWNlICpkZXZpY2VfbGlzdF9hZGQoY29uc3QgY2hhciAqcGF0aCxcXG4tLVxcbmZzL2J0cmZzL3ZvbHVtZXMuYy04MTUtXFxuZnMvYnRyZnMvdm9sdW1lcy5jOjgxNjpcXHRyZXQgPSBsb29rdXBfYmRldihwYXRoLCBcXHUwMDI2cGF0aF9kZXZ0KTtcXG5mcy9idHJmcy92b2x1bWVzLmMtODE3LVxcdGlmIChyZXQpIHtcXG4tLVxcbmZzL2J0cmZzL3ZvbHVtZXMuYz0yOTI1PWludCBidHJmc19pbml0X25ld19kZXZpY2Uoc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZzX2luZm8sIGNvbnN0IGNoYXIgKmRldmljZV9wYXRoKVxcbi0tXFxuZnMvYnRyZnMvdm9sdW1lcy5jLTI5ODYtXFx0ZGV2aWNlLVxcdTAwM2ViZGV2ID0gZmlsZV9iZGV2KGJkZXZfZmlsZSk7XFxuZnMvYnRyZnMvdm9sdW1lcy5jOjI5ODc6XFx0cmV0ID0gbG9va3VwX2JkZXYoZGV2aWNlX3BhdGgsIFxcdTAwMjZkZXZpY2UtXFx1MDAzZWRldnQpO1xcbmZzL2J0cmZzL3ZvbHVtZXMuYy0yOTg4LVxcdGlmIChyZXQpXFxuLS1cXG5mcy9uaWxmczIvc3VwZXIuYz0xMjAxPW5pbGZzX2dldF90cmVlKHN0cnVjdCBmc19jb250ZXh0ICpmYylcXG4tLVxcbmZzL25pbGZzMi9zdXBlci5jLTEyMTQtXFxuZnMvbmlsZnMyL3N1cGVyLmM6MTIxNTpcXHRlcnIgPSBsb29rdXBfYmRldihmYy1cXHUwMDNlc291cmNlLCBcXHUwMDI2ZGV2KTtcXG5mcy9uaWxmczIvc3VwZXIuYy0xMjE2LVxcdGlmIChlcnIpXFxuLS1cXG5mcy9wc3RvcmUvYmxrLmM9MjU4PXN0YXRpYyBfX2luaXQgY29uc3QgY2hhciAqZWFybHlfYm9vdF9kZXZwYXRoKGNvbnN0IGNoYXIgKmluaXRpYWxfZGV2bmFtZSlcXG4tLVxcbmZzL3BzdG9yZS9ibGsuYy0yNjctXFxuZnMvcHN0b3JlL2Jsay5jOjI2ODpcXHRpZiAoZWFybHlfbG9va3VwX2JkZXYoaW5pdGlhbF9kZXZuYW1lLCBcXHUwMDI2ZGV2KSkge1xcbmZzL3BzdG9yZS9ibGsuYy0yNjktXFx0XFx0cHJfZXJyKFxcXCJmYWlsZWQgdG8gcmVzb2x2ZSAnJXMnIVxcXFxuXFxcIiwgaW5pdGlhbF9kZXZuYW1lKTtcXG4tLVxcbmZzL3F1b3RhL3F1b3RhLmM9ODY2PXN0YXRpYyBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnF1b3RhY3RsX2Jsb2NrKGNvbnN0IGNoYXIgX191c2VyICpzcGVjaWFsLCBpbnQgY21kKVxcbi0tXFxuZnMvcXVvdGEvcXVvdGEuYy04NzYtXFx0XFx0cmV0dXJuIEVSUl9DQVNUKHRtcCk7XFxuZnMvcXVvdGEvcXVvdGEuYzo4Nzc6XFx0ZXJyb3IgPSBsb29rdXBfYmRldih0bXAtXFx1MDAzZW5hbWUsIFxcdTAwMjZkZXYpO1xcbmZzL3F1b3RhL3F1b3RhLmMtODc4LVxcdGlmIChlcnJvcilcXG4tLVxcbmZzL3N1cGVyLmM9MTg0OT1pbnQgZ2V0X3RyZWVfYmRldl9mbGFncyhzdHJ1Y3QgZnNfY29udGV4dCAqZmMsXFxuLS1cXG5mcy9zdXBlci5jLTE4NTktXFxuZnMvc3VwZXIuYzoxODYwOlxcdGVycm9yID0gbG9va3VwX2JkZXYoZmMtXFx1MDAzZXNvdXJjZSwgXFx1MDAyNmRldik7XFxuZnMvc3VwZXIuYy0xODYxLVxcdGlmIChlcnJvcikge1xcbi0tXFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaD0xNzM0PWludCBzZXRfYmxvY2tzaXplKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgc2l6ZSk7XFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xNzM1LVxcbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg6MTczNjppbnQgbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpO1xcbmluY2x1ZGUvbGludXgvYmxrZGV2LmgtMTczNy1cXG4tLVxcbmluY2x1ZGUvbGludXgvYmxrZGV2Lmg9MTc5OT12b2lkIHByaW50a19hbGxfcGFydGl0aW9ucyh2b2lkKTtcXG5pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oOjE4MDA6aW50IF9faW5pdCBlYXJseV9sb29rdXBfYmRldihjb25zdCBjaGFyICpwYXRobmFtZSwgZGV2X3QgKmRldik7XFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xODAxLSNlbHNlXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oPTE4MjA9c3RhdGljIGlubGluZSB2b2lkIHByaW50a19hbGxfcGFydGl0aW9ucyh2b2lkKVxcbi0tXFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xODIyLX1cXG5pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oOjE4MjM6c3RhdGljIGlubGluZSBpbnQgZWFybHlfbG9va3VwX2JkZXYoY29uc3QgY2hhciAqcGF0aG5hbWUsIGRldl90ICpkZXYpXFxuaW5jbHVkZS9saW51eC9ibGtkZXYuaC0xODI0LXtcXG4tLVxcbmluaXQvZG9fbW91bnRzLmM9NDA2PXN0YXRpYyB2b2lkIF9faW5pdCB3YWl0X2Zvcl9yb290KGNoYXIgKnJvb3RfZGV2aWNlX25hbWUpXFxuLS1cXG5pbml0L2RvX21vdW50cy5jLTQxNy1cXHR3aGlsZSAoIWRyaXZlcl9wcm9iZV9kb25lKCkgfHxcXG5pbml0L2RvX21vdW50cy5jOjQxODpcXHQgICAgICAgZWFybHlfbG9va3VwX2JkZXYocm9vdF9kZXZpY2VfbmFtZSwgXFx1MDAyNlJPT1RfREVWKSBcXHUwMDNjIDApIHtcXG5pbml0L2RvX21vdW50cy5jLTQxOS1cXHRcXHRtc2xlZXAoNSk7XFxuLS1cXG5pbml0L2RvX21vdW50cy5jPTQyOD1zdGF0aWMgZGV2X3QgX19pbml0IHBhcnNlX3Jvb3RfZGV2aWNlKGNoYXIgKnJvb3RfZGV2aWNlX25hbWUpXFxuLS1cXG5pbml0L2RvX21vdW50cy5jLTQ0Mi1cXG5pbml0L2RvX21vdW50cy5jOjQ0MzpcXHRlcnJvciA9IGVhcmx5X2xvb2t1cF9iZGV2KHJvb3RfZGV2aWNlX25hbWUsIFxcdTAwMjZkZXYpO1xcbmluaXQvZG9fbW91bnRzLmMtNDQ0LVxcdGlmIChlcnJvcikge1xcbi0tXFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jPTk4Mj1zdGF0aWMgaW50IF9faW5pdCBmaW5kX3Jlc3VtZV9kZXZpY2Uodm9pZClcXG4tLVxcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy05OTUtXFx0LyogQ2hlY2sgaWYgdGhlIGRldmljZSBpcyB0aGVyZSAqL1xcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYzo5OTY6XFx0aWYgKCFlYXJseV9sb29rdXBfYmRldihyZXN1bWVfZmlsZSwgXFx1MDAyNnN3c3VzcF9yZXN1bWVfZGV2aWNlKSlcXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMtOTk3LVxcdFxcdHJldHVybiAwO1xcbi0tXFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMDQtXFx0aWYgKHJlc3VtZV93YWl0KSB7XFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jOjEwMDU6XFx0XFx0d2hpbGUgKGVhcmx5X2xvb2t1cF9iZGV2KHJlc3VtZV9maWxlLCBcXHUwMDI2c3dzdXNwX3Jlc3VtZV9kZXZpY2UpKVxcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy0xMDA2LVxcdFxcdFxcdG1zbGVlcCgxMCk7XFxuLS1cXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMtMTAwOS1cXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM6MTAxMDpcXHRyZXR1cm4gZWFybHlfbG9va3VwX2JkZXYocmVzdW1lX2ZpbGUsIFxcdTAwMjZzd3N1c3BfcmVzdW1lX2RldmljZSk7XFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jLTEwMTEtfVxcbi0tXFxua2VybmVsL3Bvd2VyL2hpYmVybmF0ZS5jPTEyNjA9c3RhdGljIHNzaXplX3QgcmVzdW1lX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsXFxuLS1cXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmMtMTI3Ny1cXG5rZXJuZWwvcG93ZXIvaGliZXJuYXRlLmM6MTI3ODpcXHRlcnJvciA9IGxvb2t1cF9iZGV2KG5hbWUsIFxcdTAwMjZkZXYpO1xcbmtlcm5lbC9wb3dlci9oaWJlcm5hdGUuYy0xMjc5LVxcdGlmIChlcnJvcikge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo0OC40MTY4Mzk2MzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mjc3OTY1NTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZvY3Vzc2luZyBNeSBGdXp6aW5nIEVmZm9ydHMqKlxuXG5Pa2F5LCBzbyBgbG9va3VwX2JkZXZgIGlzIHVzZWQgaW4gYSBidW5jaCBvZiBwbGFjZXMsIGluY2x1ZGluZyBgZ2V0X3RyZWVfYmRldl9mbGFnc2AsIHdoaWNoIGlzIGNydWNpYWwgZm9yIG1vdW50aW5nIGJsb2NrIGRldmljZXMuIEl0J3MgYWxzbyBpbnZvbHZlZCBpbiBgcXVvdGFjdGxfYmxvY2tgLCBgYnRyZnNfY29udHJvbF9pb2N0bGAsIGFuZCBvdGhlciBrZXkgYXJlYXMgbGlrZSBgbmlsZnNfZ2V0X3RyZWVgLCBgZ2V0X3RyZWVfbXRkYCwgYW5kIGBiZGV2X2ZpbGVfb3Blbl9ieV9wYXRoYC4gVGhlIHBhdGNoIG1ha2VzIGl0IGNsZWFyIHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIFwiZmFrZVwiIGJsb2NrIGRldmljZSBpbm9kZXMsIHNwZWNpZmljYWxseSBtZW50aW9uaW5nIGBmdXNlIHdpdGggcm9vdG1vZGU9U19JRkJMS2Agd2hlcmUgYGlfcmRldiA9PSAwYC4gVGhhdCBjb3VsZCBlYXNpbHkgbGVhZCB0byBwcm9ibGVtcyB3aXRoIHN1cGVyYmxvY2sgbG9va3VwLCB0cmlnZ2VyaW5nIHRob3NlIGFubm95aW5nIHdhcm5pbmdzIGluIHRoZSBkZXZpY2UtdG8tc3VwZXJibG9jayB0YWJsZSwgYHN1cGVyX2Rldl9yZWdpc3RlcmAuXG5cbk15IGluaXRpYWwgdGhvdWdodCB3YXMsIFwiTGV0J3MgZnV6eiBgbG9va3VwX2JkZXZgIGRpcmVjdGx5IVwiIEJ1dCB3YWl0IGEgc2Vjb25kLi4uIGBsb29rdXBfYmRldmAgaXMgYSByZWFsbHkgZ2VuZXJhbCBmdW5jdGlvbi4gUGVyaGFwcyB0aGF0IGlzIHRvbyBicm9hZCBhbmQgZ2VuZXJpYyBhbiBhcHByb2FjaC5cblxuQWgsIGJ1dCB0aGUgY29tbWl0IG1lc3NhZ2UgcmVhbGx5IGhpZ2hsaWdodHMgdGhlIHNjZW5hcmlvIHdoZXJlIGBpbm9kZS1cdTAwM2VpX3JkZXYgPT0gMGAuIFRoYXQncyB0aGUgcmVhbCBrZXkgaGVyZS4gVGhlIGNvbW1pdCBtZXNzYWdlIGFsc28gbWVudGlvbnMgYGZ1c2Ugd2l0aCByb290bW9kZT1TX0lGQkxLYCwgd2hpY2ggSSB0aGluayBjb3VsZCBiZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIFJpZ2h0LCBJIHRoaW5rIEknbGwgZGl2ZSBpbnRvIGBnZXRfdHJlZV9iZGV2X2ZsYWdzYCBpbiBgZnMvc3VwZXIuY2AuIFRoYXQgc2VlbXMgdG8gYmUgdGhlIGNyaXRpY2FsIGVudHJ5IHBvaW50IHRvIHRlc3QgZnJvbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjIyMiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIzNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo1Mi42OTQ4MTA3NTZaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njc3MTE4MjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZ2V0X3RyZWVfYmRldl9mbGFnc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9zdXBlci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL3N1cGVyLmM9MTg0MT1FWFBPUlRfU1lNQk9MX0dQTChzZXR1cF9iZGV2X3N1cGVyKTtcXG4tLVxcbmZzL3N1cGVyLmMtMTg0My0vKipcXG5mcy9zdXBlci5jOjE4NDQ6ICogZ2V0X3RyZWVfYmRldl9mbGFncyAtIEdldCBhIHN1cGVyYmxvY2sgYmFzZWQgb24gYSBzaW5nbGUgYmxvY2sgZGV2aWNlXFxuZnMvc3VwZXIuYy0xODQ1LSAqIEBmYzogVGhlIGZpbGVzeXN0ZW0gY29udGV4dCBob2xkaW5nIHRoZSBwYXJhbWV0ZXJzXFxuLS1cXG5mcy9zdXBlci5jLTE4NDgtICovXFxuZnMvc3VwZXIuYzoxODQ5OmludCBnZXRfdHJlZV9iZGV2X2ZsYWdzKHN0cnVjdCBmc19jb250ZXh0ICpmYyxcXG5mcy9zdXBlci5jLTE4NTAtXFx0XFx0aW50ICgqZmlsbF9zdXBlcikoc3RydWN0IHN1cGVyX2Jsb2NrICpzYixcXG4tLVxcbmZzL3N1cGVyLmMtMTg5Mi19XFxuZnMvc3VwZXIuYzoxODkzOkVYUE9SVF9TWU1CT0xfR1BMKGdldF90cmVlX2JkZXZfZmxhZ3MpO1xcbmZzL3N1cGVyLmMtMTg5NC1cXG4tLVxcbmZzL3N1cGVyLmM9MTkwMD1pbnQgZ2V0X3RyZWVfYmRldihzdHJ1Y3QgZnNfY29udGV4dCAqZmMsXFxuLS1cXG5mcy9zdXBlci5jLTE5MDMte1xcbmZzL3N1cGVyLmM6MTkwNDpcXHRyZXR1cm4gZ2V0X3RyZWVfYmRldl9mbGFncyhmYywgZmlsbF9zdXBlciwgMCk7XFxuZnMvc3VwZXIuYy0xOTA1LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6NTIuNzYyNTMxNzcxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDAxMjk1NzQ4NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBgZ2V0X3RyZWVfYmRldmAgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldGluZyBgZ2V0X3RyZWVfYmRldmAgaXMgaW50ZXJlc3RpbmcuIEl0IGxvb2tzIGxpa2UgdGhpcyBmdW5jdGlvbiBpcyBwcmV0dHkgd2lkZWx5IHVzZWQgYnkgdmFyaW91cyBmaWxlc3lzdGVtcywgc28gYW55IGNoYW5nZSBoZXJlIGhhcyBhIHBvdGVudGlhbGx5IGJyb2FkIGltcGFjdC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBwcmV2ZW50aW5nIGBsb29rdXBfYmRldmAgZnJvbSByZXR1cm5pbmcgYSBgZGV2X3RgIG9mIHplcm8uIEVzc2VudGlhbGx5LCB0aGV5J3JlIHBsdWdnaW5nIGEgYnVnIHRoYXQgd2FzIGNhdXNpbmcgd2FybmluZ3MgaW4gYHN1cGVyX2Rldl9yZWdpc3RlcmAsIHdoaWNoIGlzIGRlZmluaXRlbHkgYSBnb29kIHRoaW5nLlxuXG5UaGUgcXVlc3Rpb24gdGhlbiBiZWNvbWVzOiBzaG91bGQgSSBmdXp6IHRoaXM/IEFic29sdXRlbHksIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBibG9jayBsYXllci4gQW55IGFkanVzdG1lbnQgYXQgdGhpcyBsZXZlbCBuZWNlc3NpdGF0ZXMgc29tZSBoZWF2eSB0ZXN0aW5nIHRvIGF2b2lkIHVuZm9yZXNlZW4gc2lkZS1lZmZlY3RzLlxuXG5NeSBmb2N1cyBzaG91bGQgYmUgb24gdGhlIGBsb29rdXBfYmRldmAgc3ltYm9sIHByaW1hcmlseS5cblxuQXMgZm9yIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gbmVlZHMsIGBDT05GSUdfQkxPQ0tgIGlzIHRoZSBvYnZpb3VzIG9uZSwgd2hpY2ggaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBIb3dldmVyLCB0aGUgY29tbWl0IG1lc3NhZ2UgbWVudGlvbnMgXCJmdXNlIHdpdGggcm9vdG1vZGU9U19JRkJMSyxcIiBzbyBJIHNob3VsZCBwcm9iYWJseSBhbHNvIGV4cGxvcmUgYENPTkZJR19GVVNFX0ZTYCB0byBzZWUgaWYgdGhhdCByZXZlYWxzIGFueXRoaW5nIGFkZGl0aW9uYWwuIExldCBtZSBjaGVjayBpZiB0aGVyZSBhcmUgb3RoZXIsIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzEyNCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNzo0Mjo1Ni43NzU0OTIzMzVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MjY5MjQzMDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiQ09ORklHX0ZVU0VfRlNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc9MTk4PUNPTkZJR19BVVRPRlNfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvYXhtNTV4eF9kZWZjb25maWc6MTk5OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL2F4bTU1eHhfZGVmY29uZmlnLTIwMC1DT05GSUdfQ1VTRT15XFxuLS1cXG5hcmNoL2FybS9jb25maWdzL2lteF92Nl92N19kZWZjb25maWc9NDQ1PUNPTkZJR19BVVRPRlNfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZzo0NDY6Q09ORklHX0ZVU0VfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvaW14X3Y2X3Y3X2RlZmNvbmZpZy00NDctQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9uaGs4ODE1X2RlZmNvbmZpZz0xMTk9Q09ORklHX0VYVDRfRlM9eVxcbmFyY2gvYXJtL2NvbmZpZ3MvbmhrODgxNV9kZWZjb25maWc6MTIwOkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL25oazg4MTVfZGVmY29uZmlnLTEyMS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9weGFfZGVmY29uZmlnPTU4MD1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWc6NTgxOkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL2FybS9jb25maWdzL3B4YV9kZWZjb25maWctNTgyLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvYXJtL2NvbmZpZ3MvcWNvbV9kZWZjb25maWc9Mjc5PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL2FybS9jb25maWdzL3Fjb21fZGVmY29uZmlnOjI4MDpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9xY29tX2RlZmNvbmZpZy0yODEtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnPTg4PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvYXJtL2NvbmZpZ3Mvc3BlYXIxM3h4X2RlZmNvbmZpZzo4OTpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9hcm0vY29uZmlncy9zcGVhcjEzeHhfZGVmY29uZmlnLTkwLUNPTkZJR19NU0RPU19GUz1tXFxuLS1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnPTE5MDc9Q09ORklHX0FVVE9GU19GUz15XFxuYXJjaC9hcm02NC9jb25maWdzL2RlZmNvbmZpZzoxOTA4OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL2FybTY0L2NvbmZpZ3MvZGVmY29uZmlnLTE5MDktQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZz05ODA9Q09ORklHX0FVVE9GU19GUz15XFxuYXJjaC9sb29uZ2FyY2gvY29uZmlncy9sb29uZ3NvbjMyX2RlZmNvbmZpZzo5ODE6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb24zMl9kZWZjb25maWctOTgyLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWc9MTAxMT1DT05GSUdfQVVUT0ZTX0ZTPXlcXG5hcmNoL2xvb25nYXJjaC9jb25maWdzL2xvb25nc29uNjRfZGVmY29uZmlnOjEwMTI6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbG9vbmdhcmNoL2NvbmZpZ3MvbG9vbmdzb242NF9kZWZjb25maWctMTAxMy1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWc9NDEyPUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZzo0MTM6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZy00MTQtQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXBvbGxvX2RlZmNvbmZpZz0zNjc9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXBvbGxvX2RlZmNvbmZpZzozNjg6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWctMzY5LUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZz0zOTA9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnOjM5MTpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnLTM5Mi1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWc9MzU5PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZzozNjA6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZy0zNjEtQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnPTM2OT1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWc6MzcwOkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWctMzcxLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc9Mzg4PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWc6Mzg5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnLTM5MC1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWc9NDc1PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZzo0NzY6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZy00NzctQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWc9MzU5PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNDdfZGVmY29uZmlnOjM2MDpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWctMzYxLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnPTM2MD1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZzozNjE6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnLTM2Mi1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnPTM3OD1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnOjM3OTpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZy0zODAtQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWc9MzU3PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjNfZGVmY29uZmlnOjM1ODpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWctMzU5LUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZz0zNTc9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnOjM1ODpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnLTM1OS1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnPTE0NT1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9iaWdzdXJfZGVmY29uZmlnOjE0NjpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYmlnc3VyX2RlZmNvbmZpZy0xNDctQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnPTYwPUNPTkZJR19FWFQ0X0ZTX1NFQ1VSSVRZPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWctNjEtIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0XFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfYmVfZGVmY29uZmlnOjYyOkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19iZV9kZWZjb25maWctNjMtQ09ORklHX1ZGQVRfRlM9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvYm1pcHNfc3RiX2RlZmNvbmZpZz0xNDg9Q09ORklHX0pCRDJfREVCVUc9eVxcbmFyY2gvbWlwcy9jb25maWdzL2JtaXBzX3N0Yl9kZWZjb25maWc6MTQ5OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9ibWlwc19zdGJfZGVmY29uZmlnLTE1MC1DT05GSUdfRkhBTkRMRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnPTE3Nz1DT05GSUdfRkFOT1RJRlk9eVxcbmFyY2gvbWlwcy9jb25maWdzL2RiMXh4eF9kZWZjb25maWc6MTc4OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9kYjF4eHhfZGVmY29uZmlnLTE3OS1DT05GSUdfQ1VTRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9leWVxNV9kZWZjb25maWc9OTQ9Q09ORklHX0ZTX0VOQ1JZUFRJT049eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE1X2RlZmNvbmZpZzo5NTpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTVfZGVmY29uZmlnLTk2LUNPTkZJR19DVVNFPXlcXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2X2RlZmNvbmZpZz05Mz1DT05GSUdfRlNfRU5DUllQVElPTj15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZfZGVmY29uZmlnOjk0OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNl9kZWZjb25maWctOTUtQ09ORklHX0NVU0U9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZXllcTZscGx1c19kZWZjb25maWc9MTAxPUNPTkZJR19GU19FTkNSWVBUSU9OPXlcXG5hcmNoL21pcHMvY29uZmlncy9leWVxNmxwbHVzX2RlZmNvbmZpZzoxMDI6Q09ORklHX0ZVU0VfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2V5ZXE2bHBsdXNfZGVmY29uZmlnLTEwMy1DT05GSUdfQ1VTRT15XFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnPTE3OD1DT05GSUdfQVVUT0ZTX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9mdWxvb25nMmVfZGVmY29uZmlnOjE3OTpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZnVsb29uZzJlX2RlZmNvbmZpZy0xODAtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWc9NjI9Q09ORklHX0ZBTk9USUZZPXlcXG5hcmNoL21pcHMvY29uZmlncy9nZW5lcmljX2RlZmNvbmZpZzo2MzpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9taXBzL2NvbmZpZ3MvZ2VuZXJpY19kZWZjb25maWctNjQtQ09ORklHX0NVU0U9eVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWc9MjQzPUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjJfZGVmY29uZmlnOjI0NDpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyMl9kZWZjb25maWctMjQ1LUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnPTI4MT1DT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMjdfZGVmY29uZmlnOjI4MjpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAyN19kZWZjb25maWctMjgzLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnPTE1Mz1DT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzBfZGVmY29uZmlnOjE1NDpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvaXAzMF9kZWZjb25maWctMTU1LUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnPTk3PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL2lwMzJfZGVmY29uZmlnOjk4OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9pcDMyX2RlZmNvbmZpZy05OS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZz03ND1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9qYXp6X2RlZmNvbmZpZzo3NTpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvamF6el9kZWZjb25maWctNzYtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWc9MzA3PUNPTkZJR19BVVRPRlNfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uMmtfZGVmY29uZmlnOjMwODpDT05GSUdfRlVTRV9GUz1tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbG9vbmdzb24ya19kZWZjb25maWctMzA5LUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc9MzU4PUNPTkZJR19BVVRPRlNfRlM9eVxcbmFyY2gvbWlwcy9jb25maWdzL2xvb25nc29uM19kZWZjb25maWc6MzU5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9sb29uZ3NvbjNfZGVmY29uZmlnLTM2MC1DT05GSUdfVklSVElPX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZz0zMjI9Q09ORklHX1FGTVRfVjI9eVxcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZzozMjM6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2RlZmNvbmZpZy0zMjQtQ09ORklHX0lTTzk2NjBfRlM9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3MvbWFsdGFfa3ZtX2RlZmNvbmZpZz0zMjg9Q09ORklHX1FGTVRfVjI9eVxcbmFyY2gvbWlwcy9jb25maWdzL21hbHRhX2t2bV9kZWZjb25maWc6MzI5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YV9rdm1fZGVmY29uZmlnLTMzMC1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWc9MzI4PUNPTkZJR19RRk1UX1YyPXlcXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWc6MzI5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9tYWx0YXVwX3hwYV9kZWZjb25maWctMzMwLUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnPTU1Nz1DT05GSUdfQVVUT0ZTX0ZTPXlcXG5hcmNoL21pcHMvY29uZmlncy9tdHgxX2RlZmNvbmZpZzo1NTg6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL210eDFfZGVmY29uZmlnLTU1OS1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5hcmNoL21pcHMvY29uZmlncy9waWMzMm16ZGFfZGVmY29uZmlnPTY5PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL3BpYzMybXpkYV9kZWZjb25maWc6NzA6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL3BpYzMybXpkYV9kZWZjb25maWctNzEtQ09ORklHX05FVEZTX1NVUFBPUlQ9bVxcbi0tXFxuYXJjaC9taXBzL2NvbmZpZ3Mvcm0yMDBfZGVmY29uZmlnPTMwNT1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWc6MzA2OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL21pcHMvY29uZmlncy9ybTIwMF9kZWZjb25maWctMzA3LUNPTkZJR19JU085NjYwX0ZTPW1cXG4tLVxcbmFyY2gvbWlwcy9jb25maWdzL3NiMTI1MF9zd2FybV9kZWZjb25maWc9NzE9Q09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eVxcbmFyY2gvbWlwcy9jb25maWdzL3NiMTI1MF9zd2FybV9kZWZjb25maWc6NzI6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvbWlwcy9jb25maWdzL3NiMTI1MF9zd2FybV9kZWZjb25maWctNzMtQ09ORklHX1BST0NfS0NPUkU9eVxcbi0tXFxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTY0Yml0X2RlZmNvbmZpZz0yNTk9Q09ORklHX0FVVE9GU19GUz15XFxuYXJjaC9wYXJpc2MvY29uZmlncy9nZW5lcmljLTY0Yml0X2RlZmNvbmZpZzoyNjA6Q09ORklHX0ZVU0VfRlM9eVxcbmFyY2gvcGFyaXNjL2NvbmZpZ3MvZ2VuZXJpYy02NGJpdF9kZWZjb25maWctMjYxLUNPTkZJR19DVVNFPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnPTE2ND1DT05GSUdfRVhUNF9GU19QT1NJWF9BQ0w9eVxcbmFyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvZ2VfaW1wM2FfZGVmY29uZmlnOjE2NTpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9nZV9pbXAzYV9kZWZjb25maWctMTY2LUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWc9MjU4PUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BtYWMzMl9kZWZjb25maWc6MjU5OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wbWFjMzJfZGVmY29uZmlnLTI2MC1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZz0yNjk9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcG93ZXJudl9kZWZjb25maWc6MjcwOkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wb3dlcm52X2RlZmNvbmZpZy0yNzEtQ09ORklHX09WRVJMQVlfRlM9bVxcbi0tXFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnPTMyND1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWc6MzI1OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWctMzI2LUNPTkZJR19PVkVSTEFZX0ZTPW1cXG4tLVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc9OTMzPUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3BwYzZ4eF9kZWZjb25maWc6OTM0OkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2eHhfZGVmY29uZmlnLTkzNS1DT05GSUdfSVNPOTY2MF9GUz15XFxuLS1cXG5hcmNoL3Bvd2VycGMvY29uZmlncy93aWlfZGVmY29uZmlnPTEwMz1DT05GSUdfRVhUNF9GUz15XFxuYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvd2lpX2RlZmNvbmZpZzoxMDQ6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvcG93ZXJwYy9jb25maWdzL3dpaV9kZWZjb25maWctMTA1LUNPTkZJR19JU085NjYwX0ZTPXlcXG4tLVxcbmFyY2gvczM5MC9jb25maWdzL2RlYnVnX2RlZmNvbmZpZz02ODY9Q09ORklHX0FVVE9GU19GUz1tXFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnOjY4NzpDT05GSUdfRlVTRV9GUz15XFxuYXJjaC9zMzkwL2NvbmZpZ3MvZGVidWdfZGVmY29uZmlnLTY4OC1DT05GSUdfQ1VTRT1tXFxuLS1cXG5hcmNoL3MzOTAvY29uZmlncy9kZWZjb25maWc9NjcyPUNPTkZJR19BVVRPRlNfRlM9bVxcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZzo2NzM6Q09ORklHX0ZVU0VfRlM9eVxcbmFyY2gvczM5MC9jb25maWdzL2RlZmNvbmZpZy02NzQtQ09ORklHX0NVU0U9bVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3I3NzgwbXBfZGVmY29uZmlnPTc3PUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvcjc3ODBtcF9kZWZjb25maWc6Nzg6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvc2gvY29uZmlncy9yNzc4MG1wX2RlZmNvbmZpZy03OS1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3I3Nzg1cnBfZGVmY29uZmlnPTcyPUNPTkZJR19FWFQ0X0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvcjc3ODVycF9kZWZjb25maWc6NzM6Q09ORklHX0ZVU0VfRlM9bVxcbmFyY2gvc2gvY29uZmlncy9yNzc4NXJwX2RlZmNvbmZpZy03NC1DT05GSUdfTVNET1NfRlM9eVxcbi0tXFxuYXJjaC9zaC9jb25maWdzL3Nkazc3ODZfZGVmY29uZmlnPTE2OD1DT05GSUdfQVVUT0ZTX0ZTPW1cXG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4Nl9kZWZjb25maWc6MTY5OkNPTkZJR19GVVNFX0ZTPXlcXG5hcmNoL3NoL2NvbmZpZ3Mvc2RrNzc4Nl9kZWZjb25maWctMTcwLUNPTkZJR19DVVNFPW1cXG4tLVxcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc9MjIwPUNPTkZJR19YRlNfRlM9bVxcbmFyY2gvc2gvY29uZmlncy90aXRhbl9kZWZjb25maWc6MjIxOkNPTkZJR19GVVNFX0ZTPW1cXG5hcmNoL3NoL2NvbmZpZ3MvdGl0YW5fZGVmY29uZmlnLTIyMi1DT05GSUdfSVNPOTY2MF9GUz1tXFxuLS1cXG5kcml2ZXJzL2dwdS9kcm0vY2kveDg2XzY0LmNvbmZpZz04Nj1DT05GSUdfS1ZNX0lOVEVMPW1cXG4tLVxcbmRyaXZlcnMvZ3B1L2RybS9jaS94ODZfNjQuY29uZmlnLTg4LSNvcHRpb25zIGZvciBLVk0gZ3Vlc3RzXFxuZHJpdmVycy9ncHUvZHJtL2NpL3g4Nl82NC5jb25maWc6ODk6Q09ORklHX0ZVU0VfRlM9eVxcbmRyaXZlcnMvZ3B1L2RybS9jaS94ODZfNjQuY29uZmlnLTkwLUNPTkZJR19IWVBFUlZJU09SX0dVRVNUPXlcXG4tLVxcbmZzL01ha2VmaWxlPTEwMj1vYmotJChDT05GSUdfQURGU19GUylcXHRcXHQrPSBhZGZzL1xcbmZzL01ha2VmaWxlOjEwMzpvYmotJChDT05GSUdfRlVTRV9GUylcXHRcXHQrPSBmdXNlL1xcbmZzL01ha2VmaWxlLTEwNC1vYmotJChDT05GSUdfT1ZFUkxBWV9GUylcXHQrPSBvdmVybGF5ZnMvXFxuLS1cXG5mcy9mdXNlL01ha2VmaWxlPTc9Y2NmbGFncy15ID0gLUkkKHNyYylcXG5mcy9mdXNlL01ha2VmaWxlLTgtXFxuZnMvZnVzZS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19GVVNFX0ZTKSArPSBmdXNlLm9cXG5mcy9mdXNlL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19DVVNFKSArPSBjdXNlLm9cXG4tLVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2ND01Mj1DT05GSUdfRlVOQ1RJT05fUFJPRklMRVI9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcuYWFyY2g2NDo1MzpDT05GSUdfRlVTRV9GUz15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL2NvbmZpZy5hYXJjaDY0LTU0LUNPTkZJR19GV19DRkdfU1lTRlNfQ01ETElORT15XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnZtPTQ9Q09ORklHX0NSWVBUT19ERVZfVklSVElPPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvY29uZmlnLnZtOjU6Q09ORklHX0ZVU0VfRlM9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9jb25maWcudm0tNi1DT05GSUdfRlVTRV9QQVNTVEhST1VHSD15XFxuLS1cXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9oaWQvY29uZmlnLmNvbW1vbj03NT1DT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15XFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvaGlkL2NvbmZpZy5jb21tb246NzY6Q09ORklHX0ZVU0VfRlM9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2hpZC9jb25maWcuY29tbW9uLTc3LUNPTkZJR19GV19MT0FERVJfVVNFUl9IRUxQRVI9eVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbWVtZmQvY29uZmlnOjE6Q09ORklHX0ZVU0VfRlM9bVxcbi0tXFxudG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvdnNvY2svY29uZmlnPTM1PUNPTkZJR19TUVVBU0hGU19aU1REPXlcXG50b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy92c29jay9jb25maWc6MzY6Q09ORklHX0ZVU0VfRlM9eVxcbnRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3Zzb2NrL2NvbmZpZy0zNy1DT05GSUdfVklSVElPX0ZTPXlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDI6NTkuMzAyNDI0OTczWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc4ODE2NjAyMDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgRnVuY3Rpb25hbCBDaGFuZ2UgaW4gQmxvY2sgRGV2aWNlIEhhbmRsaW5nKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCByZWxhdGVkIHRvIGBDT05GSUdfRlVTRV9GU2AuIFRoZSBjb3JlIG9mIHRoaXMgY2hhbmdlIGZvY3VzZXMgb24gdGhlIGBsb29rdXBfYmRldmAgZnVuY3Rpb24uIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgc3BlY2lmaWMgY2hlY2s6IGl0J3MgcmVqZWN0aW5nIGJsb2NrIGRldmljZSBpbm9kZXMgd2hlcmUgYGlfcmRldmAgaXMgZXF1YWwgdG8gMC4gVGhpcyBzZWVtcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGFpbWVkIGF0IGNvcnJlY3RpbmcgYSBwb3RlbnRpYWwgaXNzdWUuXG5cbkxldCdzIHF1aWNrbHkgcmVjYXA6IHRoZSBjcml0aWNhbCBwaWVjZSBpcyBgbG9va3VwX2JkZXZgLiBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgYGxvb2t1cF9iZGV2YCBpcyBpbmRlZWQgcmVhY2hhYmxlIHZpYSBtdWx0aXBsZSBwYXRocyDigJMgbW91bnQgb3BlcmF0aW9ucywgYHF1b3RhY3RsYCwgQnRyZnMgaW9jdGxzLCBhbmQgbGlrZWx5IG90aGVycy4gSSd2ZSBkb3VibGUtY2hlY2tlZCB0aGF0OyBpdCBzZWVtcyB0byBiZSB0aGUgb25seSBmdW5jdGlvbiBkaXJlY3RseSBtb2RpZmllZCBieSB0aGlzIHBhdGNoLlxuXG5SZXZpZXdpbmcgdGhlIGNvZGUgc25pcHBldCBhZ2FpbiBjb25maXJtcyB0aGlzLiBUaGUgcGF0Y2ggYWRkcyBhIHNpbXBsZSBjb25kaXRpb25hbCBjaGVjayByaWdodCBhZnRlciB0aGUgYG1heV9vcGVuX2RldmAgY2FsbC4gSXQgZW5zdXJlcyB0aGF0IGBpX3JkZXZgIGlzbid0IHplcm8sIHJldHVybmluZyBgLUVOT0RFVmAgaWYgaXQgaXMuIFRoZSByYXRpb25hbGUgaXMgY2xlYXI6IGEgYGRldl90YCBvZiAwIGlzIG5ldmVyIHZhbGlkIGZvciBhbiBhY3R1YWwgYmxvY2sgZGV2aWNlLCBhbmQgYWxsb3dpbmcgdGhlc2UgJ2Zha2UnIGlub2RlcyAobGlrZSB0aG9zZSBwb3NzaWJseSBnZW5lcmF0ZWQgYnkgRlVTRSB3aGVuIHVzaW5nIGByb290bW9kZT1TX0lGQkxLYCkgdG8gcHJvcGFnYXRlIGNhbiBjcmVhdGUgcHJvYmxlbXMgaW4gc3VwZXJibG9jayBsb29rdXAgYW5kIHRyaWdnZXIgd2FybmluZ3MgaW4gdGhlIGRldmljZS10by1zdXBlcmJsb2NrIHRhYmxlIHJlZ2lzdHJhdGlvbiAoYHN1cGVyX2Rldl9yZWdpc3RlcmApLlxuXG5UaGlzIGNsZWFybHkgcHJldmVudHMgYSBwb3RlbnRpYWwgYnVnLiBTaW5jZSB0aGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBiZWhhdmlvciBvZiBhIGNvcmUgYmxvY2sgbGF5ZXIgZnVuY3Rpb24sIGFuZCB0aGUgaXNzdWUgYXJpc2VzIGluIGNvbmp1bmN0aW9uIHdpdGggRlVTRSwgdGhpcyBtYWtlcyBpdCBhbiBleGNlbGxlbnQgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBGb2N1c2luZyBmdXp6aW5nIGVmZm9ydHMgb24gYGxvb2t1cF9iZGV2YCB3aXRoIGBGVVNFX0ZTYCBlbmFibGVkIHdvdWxkIGJlIHRoZSBtb3N0IGVmZmVjdGl2ZSB3YXkgdG8gdmFsaWRhdGUgdGhpcyBmaXguXG5cbkknbSByZWFkeSB0byBkb2N1bWVudCB0aGVzZSBmaW5kaW5ncyB1c2luZyBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzEwOSwiT3V0cHV0VG9rZW5zIjoxMjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDc6NDM6MDcuMTg0MDg3ODYzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODU1NDY5NDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkZVU0VfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsb29rdXBfYmRldlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkZVU0VfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsb29rdXBfYmRldlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBjaGVjayBpbiBgbG9va3VwX2JkZXZgIHRvIHJlamVjdCBibG9jayBkZXZpY2UgaW5vZGVzIHdpdGggYGlfcmRldiA9PSAwYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGJsb2NrIGxheWVyIHRoYXQgcHJldmVudHMgc3VwZXJibG9jayBsb29rdXAgY29uZnVzaW9uIGFuZCB3YXJuaW5ncyB3aGVuIGRlYWxpbmcgd2l0aCBmYWtlIGJsb2NrIGRldmljZSBpbm9kZXMgKGUuZy4sIGZyb20gRlVTRSkuIEZ1enppbmcgYGxvb2t1cF9iZGV2YCB3aXRoIEZVU0UgZW5hYmxlZCB3aWxsIGhlbHAgdmVyaWZ5IHRoaXMgZml4LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowc6gsh[1] Phase: Succeeded StartedAt: 2026-07-03 07:44:21 +0000 UTC FinishedAt: 2026-07-03 07:44:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-03 07:44:21 +0000 UTC FinishedAt: 2026-07-03 07:44:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2] Phase: Succeeded StartedAt: 2026-07-03 07:44:21 +0000 UTC FinishedAt: 2026-07-03 12:02:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-03 07:44:21 +0000 UTC FinishedAt: 2026-07-03 12:02:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-03 07:44:21 +0000 UTC FinishedAt: 2026-07-03 07:45:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-03 07:44:21 +0000 UTC FinishedAt: 2026-07-03 07:45:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowc6gsh/series-workflowc6gsh-convert-artifact-1873485524/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-03 07:45:08 +0000 UTC FinishedAt: 2026-07-03 08:21:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-03 07:45:08 +0000 UTC FinishedAt: 2026-07-03 08:21:18 +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:*1d5ac248-efc9-4548-97d4-ceb29a356ec3,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-workflowc6gsh/series-workflowc6gsh-convert-artifact-1873485524/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": "99d22ead-91ea-44dc-8d84-81f012a3f4d8", "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-workflowc6gsh/series-workflowc6gsh-build-action-4025702994/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-03 07:45:08 +0000 UTC FinishedAt: 2026-07-03 08:21:01 +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:*1d5ac248-efc9-4548-97d4-ceb29a356ec3,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-workflowc6gsh/series-workflowc6gsh-convert-artifact-1873485524/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": "99d22ead-91ea-44dc-8d84-81f012a3f4d8", "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-workflowc6gsh/series-workflowc6gsh-build-action-4025702994/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-03 08:21:18 +0000 UTC FinishedAt: 2026-07-03 08:21:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-03 08:21:18 +0000 UTC FinishedAt: 2026-07-03 08:21:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-03 08:21:18 +0000 UTC FinishedAt: 2026-07-03 08:21:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-03 08:21:18 +0000 UTC FinishedAt: 2026-07-03 08:21:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowc6gsh/series-workflowc6gsh-convert-artifact-3491879571/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-03 08:21:39 +0000 UTC FinishedAt: 2026-07-03 08:24:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-03 08:21:39 +0000 UTC FinishedAt: 2026-07-03 08:24:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*99d22ead-91ea-44dc-8d84-81f012a3f4d8,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-workflowc6gsh/series-workflowc6gsh-build-action-4025702994/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-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-03 08:24:17 +0000 UTC FinishedAt: 2026-07-03 08:24:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-03 08:24:17 +0000 UTC FinishedAt: 2026-07-03 08:24:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-03 08:24:17 +0000 UTC FinishedAt: 2026-07-03 08:57:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-03 08:24:17 +0000 UTC FinishedAt: 2026-07-03 08:57: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:*1d5ac248-efc9-4548-97d4-ceb29a356ec3,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-workflowc6gsh/series-workflowc6gsh-convert-artifact-3491879571/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": "4efcb4e5-7f60-4d28-8675-417050222a5a", "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-workflowc6gsh/series-workflowc6gsh-build-action-2852171975/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-03 08:24:17 +0000 UTC FinishedAt: 2026-07-03 08:57: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:*1d5ac248-efc9-4548-97d4-ceb29a356ec3,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-workflowc6gsh/series-workflowc6gsh-convert-artifact-3491879571/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": "4efcb4e5-7f60-4d28-8675-417050222a5a", "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-workflowc6gsh/series-workflowc6gsh-build-action-2852171975/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-03 08:57:14 +0000 UTC FinishedAt: 2026-07-03 08:57:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-03 08:57:14 +0000 UTC FinishedAt: 2026-07-03 08:57:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-03 08:57:14 +0000 UTC FinishedAt: 2026-07-03 08:59:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-03 08:57:14 +0000 UTC FinishedAt: 2026-07-03 08:59:11 +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:*4efcb4e5-7f60-4d28-8675-417050222a5a,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-workflowc6gsh/series-workflowc6gsh-build-action-2852171975/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-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-03 08:59:21 +0000 UTC FinishedAt: 2026-07-03 12:02:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-03 08:59:21 +0000 UTC FinishedAt: 2026-07-03 12:02:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"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:*99d22ead-91ea-44dc-8d84-81f012a3f4d8,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4efcb4e5-7f60-4d28-8675-417050222a5a,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-workflowc6gsh/series-workflowc6gsh-build-action-4025702994/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-workflowc6gsh/series-workflowc6gsh-build-action-2852171975/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-03 08:59:21 +0000 UTC FinishedAt: 2026-07-03 08:59:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-03 08:59:21 +0000 UTC FinishedAt: 2026-07-03 08:59:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"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-workflowc6gsh/series-workflowc6gsh-convert-artifact-3546245900/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-03 08:59:21 +0000 UTC FinishedAt: 2026-07-03 08:59:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-03 08:59:21 +0000 UTC FinishedAt: 2026-07-03 08:59:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-03 08:59:21 +0000 UTC FinishedAt: 2026-07-03 08:59:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-03 08:59:31 +0000 UTC FinishedAt: 2026-07-03 12:02:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc6gsh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["lookup_bdev"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"cb158789c1e15c201b80e09351805e7e30bf0b1c","config_name":"upstream-apparmor-kasan.config","enable_configs":["FUSE_FS"],"series_id":"92d08e66-6619-49ea-b410-fd0b0bfce599","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-03 08:59:31 +0000 UTC FinishedAt: 2026-07-03 12:02:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*99d22ead-91ea-44dc-8d84-81f012a3f4d8,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4efcb4e5-7f60-4d28-8675-417050222a5a,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-workflowc6gsh/series-workflowc6gsh-build-action-4025702994/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-workflowc6gsh/series-workflowc6gsh-build-action-2852171975/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-workflowc6gsh/series-workflowc6gsh-convert-artifact-3546245900/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,}