Name: series-workflowm5shq Phase: Succeeded StartedAt: 2026-07-10 23:58:53 +0000 UTC FinishedAt: 2026-07-11 05:38:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[0] Phase: Succeeded StartedAt: 2026-07-10 23:58:53 +0000 UTC FinishedAt: 2026-07-11 00:35:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[0].run-triage Phase: Succeeded StartedAt: 2026-07-10 23:58:53 +0000 UTC FinishedAt: 2026-07-11 00:35:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "CFG80211_WEXT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "CFG80211_WEXT" ], "series_id": "501e36bb-7c9f-4cca-b3d7-c9175526caa5" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cfg80211_wext_siwgenie", "cfg80211_validate_ies" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O0NGRzgwMjExX1dFWFQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV93ZXh0X3Npd2dlbmllJiMzNDssCiAgICAmIzM0O2NmZzgwMjExX3ZhbGlkYXRlX2llcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHRvIHZhbGlkYXRlIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGFuZCB1c2VzIGl0IGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCB0byB2YWxpZGF0ZSBpbnB1dCBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBTSU9DU0lXR0VOSUVgIHdpcmVsZXNzIGV4dGVuc2lvbiBpb2N0bC4gVGhpcyBpcyByZWFjaGFibGUgZnVuY3Rpb25hbCBsb2dpYyB0aGF0IGhhbmRsZXMgdXNlci1jb250cm9sbGVkIGRhdGEsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDA6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyMmFhZjEyNmJlYTE2ZTZlZGFhYjkxYjFhMmUzZWExNWEwNmVlYzY4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTEgMDA6MzQ6MTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaCBiL2luY2x1ZGUvbmV0L2NmZzgwMjExLmhcbmluZGV4IDgxODhhZDIwMGRlNTM5Li4zMmNlZjkyNmY4YTQwZCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L2NmZzgwMjExLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L2NmZzgwMjExLmhcbkBAIC0xMDk5Miw0ICYjNDM7MTA5OTIsNSBAQCB2b2lkIGNmZzgwMjExX2luY3VtYmVudF9zaWduYWxfbm90aWZ5KHN0cnVjdCB3aXBoeSAqd2lwaHksXG4gXHRcdFx0XHQgICAgICB1MzIgc2lnbmFsX2ludGVyZmVyZW5jZV9iaXRtYXAsXG4gXHRcdFx0XHQgICAgICBnZnBfdCBnZnApO1xuIFxuJiM0Mztib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbik7XG4gI2VuZGlmIC8qIF9fTkVUX0NGRzgwMjExX0ggKi9cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvdXRpbC5jIGIvbmV0L3dpcmVsZXNzL3V0aWwuY1xuaW5kZXggMjQ1MjdiZjMyMWIyYTEuLmE2ODUwMjBjOGVmYzM4IDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL3V0aWwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3dpcmVsZXNzL3V0aWwuY1xuQEAgLTMwODMsMyAmIzQzOzMwODMsMTkgQEAgYm9vbCBjZmc4MDIxMV93ZGV2X2NoYW5uZWxfYWxsb3dlZChzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuIFx0cmV0dXJuIGZhbHNlO1xuIH1cbiBFWFBPUlRfU1lNQk9MKGNmZzgwMjExX3dkZXZfY2hhbm5lbF9hbGxvd2VkKTtcbiYjNDM7XG4mIzQzO2Jvb2wgY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGNvbnN0IHU4ICppZXMsIHNpemVfdCBpZXNfbGVuKVxuJiM0Mzt7XG4mIzQzO1x0c2l6ZV90IHBvcyA9IDA7XG4mIzQzO1xuJiM0MztcdHdoaWxlIChwb3MgXHUwMDNjIGllc19sZW4pIHtcbiYjNDM7XHRcdGlmIChwb3MgJiM0MzsgMiBcdTAwM2UgaWVzX2xlbilcbiYjNDM7XHRcdFx0cmV0dXJuIGZhbHNlO1xuJiM0MztcdFx0aWYgKHBvcyAmIzQzOyAyICYjNDM7IGllc1twb3MgJiM0MzsgMV0gXHUwMDNlIGllc19sZW4pXG4mIzQzO1x0XHRcdHJldHVybiBmYWxzZTtcbiYjNDM7XHRcdHBvcyAmIzQzOz0gMiAmIzQzOyBpZXNbcG9zICYjNDM7IDFdO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHRydWU7XG4mIzQzO31cbiYjNDM7RVhQT1JUX1NZTUJPTChjZmc4MDIxMV92YWxpZGF0ZV9pZXMpO1xuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jIGIvbmV0L3dpcmVsZXNzL3dleHQtc21lLmNcbmluZGV4IDU3M2I2YjE1YTQ0NmVjLi4zZTliMDcxZjZkNjYxYyAxMDA2NDRcbi0tLSBhL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY1xuQEAgLTMxOSw2ICYjNDM7MzE5LDggQEAgaW50IGNmZzgwMjExX3dleHRfc2l3Z2VuaWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0cmV0dXJuIDA7XG4gXG4gXHRpZiAoaWVfbGVuKSB7XG4mIzQzO1x0XHRpZiAoIWNmZzgwMjExX3ZhbGlkYXRlX2llcyhleHRyYSwgaWVfbGVuKSlcbiYjNDM7XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRcdGllID0ga21lbWR1cChleHRyYSwgaWVfbGVuLCBHRlBfS0VSTkVMKTtcbiBcdFx0aWYgKCFpZSlcbiBcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMV9XRVhUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfd2V4dF9zaXdnZW5pZSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV92YWxpZGF0ZV9pZXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBhbmQgdXNlcyBpdCBpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgdG8gdmFsaWRhdGUgaW5wdXQgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgU0lPQ1NJV0dFTklFYCB3aXJlbGVzcyBleHRlbnNpb24gaW9jdGwuIFRoaXMgaXMgcmVhY2hhYmxlIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCBoYW5kbGVzIHVzZXItY29udHJvbGxlZCBkYXRhLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyMmFhZjEyNmJlYTE2ZTZlZGFhYjkxYjFhMmUzZWExNWEwNmVlYzY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTEgMDA6MzQ6MTEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oIGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaAppbmRleCA4MTg4YWQyMDBkZTUzOS4uMzJjZWY5MjZmOGE0MGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2NmZzgwMjExLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaApAQCAtMTA5OTIsNCAmIzQzOzEwOTkyLDUgQEAgdm9pZCBjZmc4MDIxMV9pbmN1bWJlbnRfc2lnbmFsX25vdGlmeShzdHJ1Y3Qgd2lwaHkgKndpcGh5LAogCQkJCSAgICAgIHUzMiBzaWduYWxfaW50ZXJmZXJlbmNlX2JpdG1hcCwKIAkJCQkgICAgICBnZnBfdCBnZnApOwogCiYjNDM7Ym9vbCBjZmc4MDIxMV92YWxpZGF0ZV9pZXMoY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pOwogI2VuZGlmIC8qIF9fTkVUX0NGRzgwMjExX0ggKi8KZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy91dGlsLmMgYi9uZXQvd2lyZWxlc3MvdXRpbC5jCmluZGV4IDI0NTI3YmYzMjFiMmExLi5hNjg1MDIwYzhlZmMzOCAxMDA2NDQKLS0tIGEvbmV0L3dpcmVsZXNzL3V0aWwuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3MvdXRpbC5jCkBAIC0zMDgzLDMgJiM0MzszMDgzLDE5IEBAIGJvb2wgY2ZnODAyMTFfd2Rldl9jaGFubmVsX2FsbG93ZWQoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwKIAlyZXR1cm4gZmFsc2U7CiB9CiBFWFBPUlRfU1lNQk9MKGNmZzgwMjExX3dkZXZfY2hhbm5lbF9hbGxvd2VkKTsKJiM0MzsKJiM0Mztib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbikKJiM0Mzt7CiYjNDM7CXNpemVfdCBwb3MgPSAwOwomIzQzOwomIzQzOwl3aGlsZSAocG9zICZsdDsgaWVzX2xlbikgewomIzQzOwkJaWYgKHBvcyAmIzQzOyAyICZndDsgaWVzX2xlbikKJiM0MzsJCQlyZXR1cm4gZmFsc2U7CiYjNDM7CQlpZiAocG9zICYjNDM7IDIgJiM0MzsgaWVzW3BvcyAmIzQzOyAxXSAmZ3Q7IGllc19sZW4pCiYjNDM7CQkJcmV0dXJuIGZhbHNlOwomIzQzOwkJcG9zICYjNDM7PSAyICYjNDM7IGllc1twb3MgJiM0MzsgMV07CiYjNDM7CX0KJiM0MzsKJiM0MzsJcmV0dXJuIHRydWU7CiYjNDM7fQomIzQzO0VYUE9SVF9TWU1CT0woY2ZnODAyMTFfdmFsaWRhdGVfaWVzKTsKZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jIGIvbmV0L3dpcmVsZXNzL3dleHQtc21lLmMKaW5kZXggNTczYjZiMTVhNDQ2ZWMuLjNlOWIwNzFmNmQ2NjFjIDEwMDY0NAotLS0gYS9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYwpAQCAtMzE5LDYgJiM0MzszMTksOCBAQCBpbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlyZXR1cm4gMDsKIAogCWlmIChpZV9sZW4pIHsKJiM0MzsJCWlmICghY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGV4dHJhLCBpZV9sZW4pKQomIzQzOwkJCXJldHVybiAtRUlOVkFMOwogCQlpZSA9IGttZW1kdXAoZXh0cmEsIGllX2xlbiwgR0ZQX0tFUk5FTCk7CiAJCWlmICghaWUpCiAJCQlyZXR1cm4gLUVOT01FTTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDA6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM0OQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDE0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBOZXcgSW5mb3JtYXRpb24gRWxlbWVudCBWYWxpZGF0aW9uIExvZ2ljKioKCk9rYXksIHNvIHdlJiMzOTt2ZSBnb3QgdGhpcyBuZXcgcGF0Y2ggaW50cm9kdWNpbmcgYGNmZzgwMjExX3ZhbGlkYXRlX2llc2AsIGFuZCBpdCYjMzk7cyBiZWluZyB1c2VkIGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhpcyBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIOKAkyBmdW5jdGlvbmFsIGxvZ2ljLCBzcGVjaWZpY2FsbHkgdmFsaWRhdGluZyBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSB3aXRoaW4gdGhlIHdpcmVsZXNzIGV4dGVuc2lvbnMgZnJhbWV3b3JrLiBJdCYjMzk7cyB0b3VjaGluZyBgbmV0L3dpcmVsZXNzL3V0aWwuY2AgYW5kIGBuZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY2AsIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGNvcmUgd2lyZWxlc3MgaW50ZXJhY3Rpb24gaGVyZSwgc3BlY2lmaWNhbGx5IHRocm91Z2ggV0VYVCBpb2N0bHMuCgpHaXZlbiB0aGUgbmF0dXJlIG9mIElFIGhhbmRsaW5nLCBhbmQgaXRzIGNyaXRpY2FsIHJvbGUgaW4gd2lyZWxlc3MgY29tbXVuaWNhdGlvbiwgdGhpcyBpcyBwcmltZSBmdXp6aW5nIHRlcnJpdG9yeS4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBleHRlcm5hbCBkYXRhIGJlaW5nIHBhcnNlZCBhbmQgdXNlZCB0byBjb25maWd1cmUgd2lyZWxlc3MgYmVoYXZpb3IsIGFuZCB0aGF0IG1ha2VzIGl0IGEganVpY3kgdGFyZ2V0LiBTbywgc3RlcCBvbmUsIGxldCYjMzk7cyBuYWlsIGRvd24gdGhlIGV4YWN0IGNvbmZpZ3VyYXRpb24uIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYHdleHQtc21lLmNgIGdldHMgYnVpbHQuIEkmIzM5O2xsIHN0YXJ0IHdpdGggYSBxdWljayBgZ3JlcGAgZm9yIGB3ZXh0LXNtZS5vYCBpbiBgbmV0L3dpcmVsZXNzL01ha2VmaWxlYC4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgYW5kIHRoZSBwb3NzaWJsZSBkZXBlbmRlbmNpZXMuIFRpbWUgdG8gc3RhcnQgdGhlIGZ1enppbmcgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3ZXh0LXNtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvTWFrZWZpbGU9MTM9Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfREVCVUdGUykgJiM0Mzs9IGRlYnVnZnMub1xubmV0L3dpcmVsZXNzL01ha2VmaWxlOjE0OmNmZzgwMjExLSQoQ09ORklHX0NGRzgwMjExX1dFWFQpICYjNDM7PSB3ZXh0LWNvbXBhdC5vIHdleHQtc21lLm9cbm5ldC93aXJlbGVzcy9NYWtlZmlsZS0xNS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODg0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSBXRVhUIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBpdGVtIGhlcmUgaXMgYENGRzgwMjExX1dFWFRgLiBSaWdodCwgbWFrZXMgc2Vuc2UsIHRoYXQmIzM5O3Mgd2hlcmUgd2UmIzM5O3JlIHN0YXJ0aW5nLiBOb3csIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3Mgd2UmIzM5O3JlIG92ZXJsb29raW5nLiBPYnZpb3VzbHksIGBDRkc4MDIxMWAgaXRzZWxmIGlzIGEgcHJlcmVxdWlzaXRlLCBzbyB0aGF0IG9uZSYjMzk7cyBhIGdpdmVuLiBOb3csIGFuIGludGVyZXN0aW5nIGFuZ2xlIGlzIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhhdCBsb29rcyBsaWtlIGFuIGlvY3RsIGhhbmRsZXIgZm9yIHRoZSBXRVhUIGludGVyZmFjZSwgc29tZXRoaW5nIEkmIzM5O20gaW50aW1hdGVseSBmYW1pbGlhciB3aXRoLiBUaW1lIHRvIHRyYWNlIGl0cyB1c2FnZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgYW5kIGhvdyB0aGlzIHBhcnRpY3VsYXIgZnVuY3Rpb24gaXMgZW1wbG95ZWQgd2l0aGluIHRoZSBrZXJuZWwmIzM5O3Mgd2lyZWxlc3Mgc3Vic3lzdGVtLiBMZXQmIzM5O3Mgc2VlIGhvdyBpdCYjMzk7cyBiZWluZyBhY2Nlc3NlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjZmc4MDIxMV93ZXh0X3Npd2dlbmllJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5jPTE0ODQ9c3RhdGljIGNvbnN0IGl3X2hhbmRsZXIgY2ZnODAyMTFfaGFuZGxlcnNbXSA9IHtcbi0tXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuYy0xNTExLVx0SVdfSEFORExFUihTSU9DR0lXUE9XRVIsXHRjZmc4MDIxMV93ZXh0X2dpd3Bvd2VyKSxcbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5jOjE1MTI6XHRJV19IQU5ETEVSKFNJT0NTSVdHRU5JRSxcdGNmZzgwMjExX3dleHRfc2l3Z2VuaWUpLFxubmV0L3dpcmVsZXNzL3dleHQtY29tcGF0LmMtMTUxMy1cdElXX0hBTkRMRVIoU0lPQ1NJV0FVVEgsXHRcdGNmZzgwMjExX3dleHRfc2l3YXV0aCksXG4tLVxubmV0L3dpcmVsZXNzL3dleHQtY29tcGF0Lmg9NDY9aW50IGNmZzgwMjExX3dleHRfc2l3bWxtZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5oLTQ4LVx0XHRcdCAgdW5pb24gaXdyZXFfZGF0YSAqd3JxdSwgY2hhciAqZXh0cmEpO1xubmV0L3dpcmVsZXNzL3dleHQtY29tcGF0Lmg6NDk6aW50IGNmZzgwMjExX3dleHRfc2l3Z2VuaWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5oLTUwLVx0XHRcdCAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sXG4tLVxubmV0L3dpcmVsZXNzL3dleHQtc21lLmM9MjczPWludCBjZmc4MDIxMV9tZ2Rfd2V4dF9naXdhcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbm5ldC93aXJlbGVzcy93ZXh0LXNtZS5jLTI5Ny1cbm5ldC93aXJlbGVzcy93ZXh0LXNtZS5jOjI5ODppbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMjk5LVx0XHRcdCAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDA6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzYyOQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFdFWFQgQ29uZmlndXJhdGlvbiBhbmQgSXRzIERlcGVuZGVuY2llcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQmIzM5O3MgY2xlYXIgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVzZWQgd2l0aGluIGBjZmc4MDIxMV9oYW5kbGVyc2AgZm9yIHRoZSBgU0lPQ1NJV0dFTklFYCBvcGVyYXRpb24uIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgaXQmIzM5O3MgYmVpbmcgYWNjZXNzZWQgdGhyb3VnaCBXRVhUIGlvY3Rscy4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgdG8gYmUgY2VydGFpbi4KCk15IG5leHQgdGhvdWdodCBpcyB0byBpc29sYXRlIGV4YWN0bHkgKmhvdyogaXQmIzM5O3MgY29uZmlndXJlZC4gSXMgYENGRzgwMjExX1dFWFRgIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaGVyZSwgb3IgYXJlIHRoZXJlIG90aGVycyBpbiB0aGUgbWl4PyBIbW0sIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgcHJpbWFyaWx5IGRlcGVuZGVudCBvbiBgQ0ZHODAyMTFfV0VYVGAgYW5kIGFsc28gYENGRzgwMjExYCBkaXJlY3RseS4gSSBzZWUgdGhlbSBpbiB0aGUgS2NvbmZpZyBhcyB0aGUgbWFpbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhpcyBmdW5jdGlvbmFsaXR5LgoKTm93IHRoYXQgSSYjMzk7dmUgZ290dGVuIHRoaXMgZmFyLCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBjb25zaWRlciBkZXBlbmRlbmNpZXMuIFdhaXQgYSBtaW51dGUuLi4gYENGRzgwMjExX1dFWFRgICppdHNlbGYqIGRlcGVuZHMgb24gYm90aCBgQ0ZHODAyMTFgICphbmQqIGBXRVhUX0NPUkVgLiBJIHNob3VsZCBjaGVjayB0aGUgYG5ldC93aXJlbGVzcy9LY29uZmlnYCBmaWxlIHRvIGNvbmZpcm0gdGhpcyBlbnRpcmUgcGljdHVyZSBhbmQgbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDA6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIENGRzgwMjExX1dFWFQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvS2NvbmZpZz0xNzc9Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4Ni1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTY0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHJlcXVlc3QsIHRoaW5raW5nIGFzIGFuIGV4cGVydCBpbiB0aGUgZmllbGQ6CgoqKkFuYWx5emluZyB0aGUgRGVwZW5kZW5jaWVzIG9mIENGRzgwMjExX1dFWFQqKgoKT2theSwgc28gdGhlIHByb21wdCBpcyB0byBleHBsb3JlIHRoZSBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBgQ0ZHODAyMTFfV0VYVGAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgc3BlY2lmaWMgbW9kdWxlIG9yIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBXaHkgYXJlIHdlIGludGVyZXN0ZWQgaW4gaXRzIGRlcGVuZGVuY2llcz8gSXMgdGhlcmUgYSBjb21waWxhdGlvbiBpc3N1ZT8gVHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIGJ1aWxkIHByb2Nlc3M/IEFyZSB3ZSBhaW1pbmcgZm9yIGEgbWluaW1hbCBjb25maWd1cmF0aW9uLCBvciB0cnlpbmcgdG8gdW5kZXJzdGFuZCB3aGF0IGVuYWJsaW5nIHRoaXMgb3B0aW9uIGVudGFpbHMgZm9yIG92ZXJhbGwgc3lzdGVtIGNhcGFiaWxpdGllcz8gTXkgbWluZCBpcyBzdGFydGluZyB0byByYWNlIHRocm91Z2ggdGhlIHZhcmlvdXMgc2NlbmFyaW9zLgoKYENGRzgwMjExX1dFWFRgLi4uIHJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBsYXllciBmb3Igd2lyZWxlc3MgZXh0ZW5zaW9ucyB3aXRoaW4gdGhlIGNmZzgwMjExIGZyYW1ld29yay4gU28sIG15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGl0IHByb3ZpZGVzIGEgYnJpZGdlIG9yIHRyYW5zbGF0aW9uIGZvciBvbGRlciB3aXJlbGVzcyB0b29scyBhbmQgYXBwbGljYXRpb25zIHRoYXQgcmVseSBvbiB0aGUgZGVwcmVjYXRlZCBgd2lyZWxlc3MgZXh0ZW5zaW9uc2AgQVBJIHRvIHdvcmsgd2l0aCB0aGUgbmV3ZXIgY2ZnODAyMTEgZHJpdmVyIHN0YWNrLiBUaGF0IGdpdmVzIG1lIGEgZGlyZWN0aW9uIGZvciBhbmFseXNpcy4KCkkmIzM5O2QgZXhwZWN0IHRoZSBpbW1lZGlhdGUgZGVwZW5kZW5jaWVzIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIGNvcmUgYGNmZzgwMjExYCBpbmZyYXN0cnVjdHVyZSBpdHNlbGYsIGFuZCBsaWtlbHkgc29tZXRoaW5nIHJlbGF0ZWQgdG8gYHdpcmVsZXNzIGV4dGVuc2lvbnNgIGFuZCB0aGVpciBsZWdhY3kgY29tcG9uZW50cy4gSSYjMzk7ZCBiZSBsb29raW5nIGZvciB0aGUgaW5jbHVzaW9uIG9mIHNwZWNpZmljIGhlYWRlcnMsIHRoZSBkZWZpbml0aW9uIG9mIGNlcnRhaW4gc3ltYm9scyBvciBzdHJ1Y3R1cmVzLCBhbmQgbWF5YmUgZXZlbiBzb21lIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGJhc2VkIG9uIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIG9sZGVyIEFQSS4KCkVzc2VudGlhbGx5LCBJIG5lZWQgdG8gdHJhY2UgdGhlIGNvbm5lY3Rpb25zIGFuZCBkZXRlcm1pbmUgd2hhdCBvdGhlciBjb25maWd1cmF0aW9ucyBvciBrZXJuZWwgZmVhdHVyZXMgYXJlIGxpbmtlZC4gSSBhbSBnb2luZyB0byBuZWVkIHRvIHRyYWNrIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlcywgb3IgdGhlIHJlbGV2YW50IHNvdXJjZSBjb2RlLCB0byBiZWdpbiB0byB1bmRlcnN0YW5kIHRoZSBsaW5rYWdlcy4gSSB3b3VsZCBhc3N1bWUgdGhhdCB0aGlzIG1vZHVsZSBicmlkZ2VzIHRvIHRoZSB3aXJlbGVzcyBzdGFjayBhbmQgdGhlIHZhcmlvdXMgc3VwcGxpY2FudCBpbXBsZW1lbnRhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxODcsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE4NzpcdGNvbmZpZyBDRkc4MDIxMV9XRVhUXG4gMTg4Olx0XHRib29sIFwmIzM0O2NmZzgwMjExIHdpcmVsZXNzIGV4dGVuc2lvbnMgY29tcGF0aWJpbGl0eVwmIzM0O1xuIDE4OTpcdFx0c2VsZWN0IFdFWFRfQ09SRVxuIDE5MDpcdFx0aGVscFxuIDE5MTpcdFx0ICBFbmFibGUgdGhpcyBvcHRpb24gaWYgeW91IG5lZWQgb2xkIHVzZXJzcGFjZSBmb3Igd2lyZWxlc3NcbiAxOTI6XHRcdCAgZXh0ZW5zaW9ucyB3aXRoIGNmZzgwMjExLWJhc2VkIGRyaXZlcnMuXG4gMTkzOlx0XG4gMTk0Olx0Y29uZmlnIENGRzgwMjExX0tVTklUX1RFU1RcbiAxOTU6XHRcdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBjZmc4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4gMTk2Olx0XHRkZXBlbmRzIG9uIEtVTklUXG4gMTk3Olx0XHRkZXBlbmRzIG9uIENGRzgwMjExXG4gMTk4Olx0XHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuIDE5OTpcdFx0aGVscFxuIDIwMDpcdFx0ICBFbmFibGUgdGhpcyBvcHRpb24gdG8gdGVzdCBjZmc4MDIxMSBmdW5jdGlvbnMgd2l0aCBrdW5pdC5cbiAyMDE6XHRcbiAyMDI6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiAyMDM6XHRcbiAyMDQ6XHRlbmRpZiAjIENGRzgwMjExXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NTUKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxNDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMgYW5kIFNjb3BlIG9mIGEgQ29kZSBDaGFuZ2UqKgoKT2theSwgc28gdGhpcyBjaGFuZ2UgaGluZ2VzIG9uIGBDRkc4MDIxMWAsIGdpdmVuIHRoYXQgdGhlIHJlbGV2YW50IGNvZGUgc25pcHBldCBpcyB3cmFwcGVkIGluIGFuIGBpZiBDRkc4MDIxMWAgYmxvY2suIFRoZXJlZm9yZSwgdGhlIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBjb25zaWRlciBhcmUgYENGRzgwMjExYCBhbmQgYENGRzgwMjExX1dFWFRgLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZS4KCk15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCBhbmQgYGNmZzgwMjExX3ZhbGlkYXRlX2llc2AuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgaW50cm9kdWNlcyBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB3aXRoaW4gYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgLiBNeSBwcmltYXJ5IGNvbmNlcm4gbm93IGlzIHdoZXRoZXIgYGNmZzgwMjExX3ZhbGlkYXRlX2llc2AgaXMgKm9ubHkqIGNhbGxlZCBmcm9tIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCBvciBpZiBpdCYjMzk7cyB1c2VkIGVsc2V3aGVyZSBpbiB0aGUgY29kZWJhc2UuIEkgbmVlZCB0byBkZXRlcm1pbmUgdGhlIGV4dGVudCBvZiBpdHMgcmVhY2guIFRoaXMgd2lsbCBpbmZvcm0gdGhlIG92ZXJhbGwgaW1wYWN0IGFuZCBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzIG9mIHRoaXMgY2hhbmdlLiBJJiMzOTtsbCBjaGVjayBpdHMgdXNhZ2VzIHRob3JvdWdobHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NmZzgwMjExX3ZhbGlkYXRlX2llcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9jZmc4MDIxMS5oPTEwOTkwPXZvaWQgY2ZnODAyMTFfaW5jdW1iZW50X3NpZ25hbF9ub3RpZnkoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTEwOTk0LVxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDoxMDk5NTpib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbik7XG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTEwOTk2LSNlbmRpZiAvKiBfX05FVF9DRkc4MDIxMV9IICovXG4tLVxubmV0L3dpcmVsZXNzL3V0aWwuYz0zMDg1PUVYUE9SVF9TWU1CT0woY2ZnODAyMTFfd2Rldl9jaGFubmVsX2FsbG93ZWQpO1xubmV0L3dpcmVsZXNzL3V0aWwuYy0zMDg2LVxubmV0L3dpcmVsZXNzL3V0aWwuYzozMDg3OmJvb2wgY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGNvbnN0IHU4ICppZXMsIHNpemVfdCBpZXNfbGVuKVxubmV0L3dpcmVsZXNzL3V0aWwuYy0zMDg4LXtcbi0tXG5uZXQvd2lyZWxlc3MvdXRpbC5jLTMxMDAtfVxubmV0L3dpcmVsZXNzL3V0aWwuYzozMTAxOkVYUE9SVF9TWU1CT0woY2ZnODAyMTFfdmFsaWRhdGVfaWVzKTtcbi0tXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYz0yOTg9aW50IGNmZzgwMjExX3dleHRfc2l3Z2VuaWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYy0zMjEtXHRpZiAoaWVfbGVuKSB7XG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYzozMjI6XHRcdGlmICghY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGV4dHJhLCBpZV9sZW4pKVxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMzIzLVx0XHRcdHJldHVybiAtRUlOVkFMO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzAwCgkJCQkJCQlvdXRwdXQ6IDE2OQoJCQkJCQkJdGhvdWdodHM6IDM0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogSUVzIGFuZCBXRVhUIGlvY3RscyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIG15IGF0dGVudGlvbiBpcyBkcmF3biB0byBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgYW5kIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgLiBUaGVzZSBhcmUgdGhlIGtleSBzeW1ib2xzIGhlcmUuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgLCBhIHZhbGlkYXRpb24gZnVuY3Rpb24gc3BlY2lmaWNhbGx5IGZvciBJbmZvcm1hdGlvbiBFbGVtZW50cywgYW5kIHRoZW4gKnVzZXMqIGl0IHdpdGhpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAuIFRoYXQmIzM5O3MgaW1wb3J0YW50LiBUaGlzIGlzIGFsbCBmdW5jdGlvbmFsIGxvZ2ljLCByZWFjaGFibGUgdGhyb3VnaCB0aGUgV2lyZWxlc3MgRXh0ZW5zaW9uIChXRVhUKSBpb2N0bHMsIHNwZWNpZmljYWxseSwgSSBiZWxpZXZlLCBgU0lPQ1NJV0dFTklFYC4KClJpZ2h0LCB0aW1lIHRvIGNvbnNpZGVyIHRoZSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cy4gV2UgbmVlZCBgQ0ZHODAyMTFgIG9idmlvdXNseSwgYW5kIGBDRkc4MDIxMV9XRVhUYC4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYENGRzgwMjExX1dFWFRgIGlzIHN1ZmZpY2llbnQuIFllcywgdGhhdCBzZWxlY3RzIGBXRVhUX0NPUkVgLCBzbyB3ZSYjMzk7cmUgZ29vZCB0aGVyZS4gQXJlIHRoZXJlIGFueSBvdGhlciBwb3RlbnRpYWxseSB1c2VmdWwgY29uZmlndXJhdGlvbnM/IEZvciAqYWN0dWFsKiB3aXJlbGVzcyBkZXZpY2UgaW50ZXJhY3Rpb24sIGBNQUM4MDIxMV9IV1NJTWAgY291bGQgYmUgaGFuZHkgdG8gc2ltdWxhdGUgaW9jdGwgYmVoYXZpb3IsIGJ1dCBgQ0ZHODAyMTFfV0VYVGAgaXMgdGhlIGNyaXRpY2FsIG9uZSBmb3IgKnRoaXMqIGNvZGUuCgpMZXQgbWUgc29saWRpZnkgbXkgcmF0aW9uYWxlLiBUaGUgcGF0Y2ggYWRkcyBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyBhbmQgdXRpbGl6ZXMgaXQgd2l0aGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgdXNlciBhcHBsaWNhdGlvbiBpcyBwcm92aWRpbmcgaW5wdXQgdG8gdGhlIHdpcmVsZXNzIGRldmljZSB0aHJvdWdoIGEgV0VYVCBpb2N0bCBsaWtlIGBTSU9DU0lXR0VOSUVgLiBUaGlzIGRpcmVjdCB1c2VyIGNvbnRyb2wgb3ZlciB0aGUgZGF0YSBiZWluZyBmZWQgaW50byB0aGUgc3lzdGVtIG1lYW5zIGl0JiMzOTtzIGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBXZSBoYXZlIGFuIGVudHJ5IHBvaW50IHRoYXQgdGFrZXMgZGF0YSBmcm9tIGEgdXNlciwgdmFsaWRhdGVzIGl0LCBhbmQgdGhlbiB1c2VzIHRoYXQgdG8gY29uZmlndXJlIHRoZSB3aXJlbGVzcyBkZXZpY2UuIFRoaXMgaXMgYSBjbGFzc2ljIGNhc2UgZm9yIGZ1enppbmcuCgpUaW1lIHRvIGxvZyB0aGlzLiBJJiMzOTtsbCBzZXQgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMV9XRVhUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfd2V4dF9zaXdnZW5pZSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV92YWxpZGF0ZV9pZXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBhbmQgdXNlcyBpdCBpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgdG8gdmFsaWRhdGUgaW5wdXQgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgU0lPQ1NJV0dFTklFYCB3aXJlbGVzcyBleHRlbnNpb24gaW9jdGwuIFRoaXMgaXMgcmVhY2hhYmxlIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCBoYW5kbGVzIHVzZXItY29udHJvbGxlZCBkYXRhLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMV9XRVhUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfd2V4dF9zaXdnZW5pZSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV92YWxpZGF0ZV9pZXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBhbmQgdXNlcyBpdCBpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgdG8gdmFsaWRhdGUgaW5wdXQgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgU0lPQ1NJV0dFTklFYCB3aXJlbGVzcyBleHRlbnNpb24gaW9jdGwuIFRoaXMgaXMgcmVhY2hhYmxlIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCBoYW5kbGVzIHVzZXItY29udHJvbGxlZCBkYXRhLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTFUMDA6MzQ6MTIuNTY5OTU3OTk4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzgxMjk4OTIyMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIkNGRzgwMjExX1dFWFRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV93ZXh0X3Npd2dlbmllXCIsXG4gICAgXCJjZmc4MDIxMV92YWxpZGF0ZV9pZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHRvIHZhbGlkYXRlIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGFuZCB1c2VzIGl0IGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCB0byB2YWxpZGF0ZSBpbnB1dCBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBTSU9DU0lXR0VOSUVgIHdpcmVsZXNzIGV4dGVuc2lvbiBpb2N0bC4gVGhpcyBpcyByZWFjaGFibGUgZnVuY3Rpb25hbCBsb2dpYyB0aGF0IGhhbmRsZXMgdXNlci1jb250cm9sbGVkIGRhdGEsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjEyLjU2OTk2ODIzOFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzI2NzIxOTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjJhYWYxMjZiZWExNmU2ZWRhYWI5MWIxYTJlM2VhMTVhMDZlZWM2OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAxMSAwMDozNDoxMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oIGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaFxcbmluZGV4IDgxODhhZDIwMGRlNTM5Li4zMmNlZjkyNmY4YTQwZCAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oXFxuKysrIGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaFxcbkBAIC0xMDk5Miw0ICsxMDk5Miw1IEBAIHZvaWQgY2ZnODAyMTFfaW5jdW1iZW50X3NpZ25hbF9ub3RpZnkoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4gXFx0XFx0XFx0XFx0ICAgICAgdTMyIHNpZ25hbF9pbnRlcmZlcmVuY2VfYml0bWFwLFxcbiBcXHRcXHRcXHRcXHQgICAgICBnZnBfdCBnZnApO1xcbiBcXG4rYm9vbCBjZmc4MDIxMV92YWxpZGF0ZV9pZXMoY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pO1xcbiAjZW5kaWYgLyogX19ORVRfQ0ZHODAyMTFfSCAqL1xcbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvdXRpbC5jIGIvbmV0L3dpcmVsZXNzL3V0aWwuY1xcbmluZGV4IDI0NTI3YmYzMjFiMmExLi5hNjg1MDIwYzhlZmMzOCAxMDA2NDRcXG4tLS0gYS9uZXQvd2lyZWxlc3MvdXRpbC5jXFxuKysrIGIvbmV0L3dpcmVsZXNzL3V0aWwuY1xcbkBAIC0zMDgzLDMgKzMwODMsMTkgQEAgYm9vbCBjZmc4MDIxMV93ZGV2X2NoYW5uZWxfYWxsb3dlZChzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbiBcXHRyZXR1cm4gZmFsc2U7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTChjZmc4MDIxMV93ZGV2X2NoYW5uZWxfYWxsb3dlZCk7XFxuK1xcbitib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbilcXG4re1xcbitcXHRzaXplX3QgcG9zID0gMDtcXG4rXFxuK1xcdHdoaWxlIChwb3MgXFx1MDAzYyBpZXNfbGVuKSB7XFxuK1xcdFxcdGlmIChwb3MgKyAyIFxcdTAwM2UgaWVzX2xlbilcXG4rXFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXHRcXHRpZiAocG9zICsgMiArIGllc1twb3MgKyAxXSBcXHUwMDNlIGllc19sZW4pXFxuK1xcdFxcdFxcdHJldHVybiBmYWxzZTtcXG4rXFx0XFx0cG9zICs9IDIgKyBpZXNbcG9zICsgMV07XFxuK1xcdH1cXG4rXFxuK1xcdHJldHVybiB0cnVlO1xcbit9XFxuK0VYUE9SVF9TWU1CT0woY2ZnODAyMTFfdmFsaWRhdGVfaWVzKTtcXG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL3dleHQtc21lLmMgYi9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY1xcbmluZGV4IDU3M2I2YjE1YTQ0NmVjLi4zZTliMDcxZjZkNjYxYyAxMDA2NDRcXG4tLS0gYS9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY1xcbisrKyBiL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jXFxuQEAgLTMxOSw2ICszMTksOCBAQCBpbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHRyZXR1cm4gMDtcXG4gXFxuIFxcdGlmIChpZV9sZW4pIHtcXG4rXFx0XFx0aWYgKCFjZmc4MDIxMV92YWxpZGF0ZV9pZXMoZXh0cmEsIGllX2xlbikpXFxuK1xcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHRcXHRpZSA9IGttZW1kdXAoZXh0cmEsIGllX2xlbiwgR0ZQX0tFUk5FTCk7XFxuIFxcdFxcdGlmICghaWUpXFxuIFxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDoxMy4yOTc0NDQ0OTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NDAyMzkxODM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJDRkc4MDIxMV9XRVhUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfd2V4dF9zaXdnZW5pZVwiLFxuICAgIFwiY2ZnODAyMTFfdmFsaWRhdGVfaWVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBhbmQgdXNlcyBpdCBpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgdG8gdmFsaWRhdGUgaW5wdXQgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgU0lPQ1NJV0dFTklFYCB3aXJlbGVzcyBleHRlbnNpb24gaW9jdGwuIFRoaXMgaXMgcmVhY2hhYmxlIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCBoYW5kbGVzIHVzZXItY29udHJvbGxlZCBkYXRhLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDIyYWFmMTI2YmVhMTZlNmVkYWFiOTFiMWEyZTNlYTE1YTA2ZWVjNjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAxMSAwMDozNDoxMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2NmZzgwMjExLmggYi9pbmNsdWRlL25ldC9jZmc4MDIxMS5oXG5pbmRleCA4MTg4YWQyMDBkZTUzOS4uMzJjZWY5MjZmOGE0MGQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oXG4rKysgYi9pbmNsdWRlL25ldC9jZmc4MDIxMS5oXG5AQCAtMTA5OTIsNCArMTA5OTIsNSBAQCB2b2lkIGNmZzgwMjExX2luY3VtYmVudF9zaWduYWxfbm90aWZ5KHN0cnVjdCB3aXBoeSAqd2lwaHksXG4gXHRcdFx0XHQgICAgICB1MzIgc2lnbmFsX2ludGVyZmVyZW5jZV9iaXRtYXAsXG4gXHRcdFx0XHQgICAgICBnZnBfdCBnZnApO1xuIFxuK2Jvb2wgY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGNvbnN0IHU4ICppZXMsIHNpemVfdCBpZXNfbGVuKTtcbiAjZW5kaWYgLyogX19ORVRfQ0ZHODAyMTFfSCAqL1xuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy91dGlsLmMgYi9uZXQvd2lyZWxlc3MvdXRpbC5jXG5pbmRleCAyNDUyN2JmMzIxYjJhMS4uYTY4NTAyMGM4ZWZjMzggMTAwNjQ0XG4tLS0gYS9uZXQvd2lyZWxlc3MvdXRpbC5jXG4rKysgYi9uZXQvd2lyZWxlc3MvdXRpbC5jXG5AQCAtMzA4MywzICszMDgzLDE5IEBAIGJvb2wgY2ZnODAyMTFfd2Rldl9jaGFubmVsX2FsbG93ZWQoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcbiBcdHJldHVybiBmYWxzZTtcbiB9XG4gRVhQT1JUX1NZTUJPTChjZmc4MDIxMV93ZGV2X2NoYW5uZWxfYWxsb3dlZCk7XG4rXG4rYm9vbCBjZmc4MDIxMV92YWxpZGF0ZV9pZXMoY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pXG4re1xuK1x0c2l6ZV90IHBvcyA9IDA7XG4rXG4rXHR3aGlsZSAocG9zIFx1MDAzYyBpZXNfbGVuKSB7XG4rXHRcdGlmIChwb3MgKyAyIFx1MDAzZSBpZXNfbGVuKVxuK1x0XHRcdHJldHVybiBmYWxzZTtcbitcdFx0aWYgKHBvcyArIDIgKyBpZXNbcG9zICsgMV0gXHUwMDNlIGllc19sZW4pXG4rXHRcdFx0cmV0dXJuIGZhbHNlO1xuK1x0XHRwb3MgKz0gMiArIGllc1twb3MgKyAxXTtcbitcdH1cbitcbitcdHJldHVybiB0cnVlO1xuK31cbitFWFBPUlRfU1lNQk9MKGNmZzgwMjExX3ZhbGlkYXRlX2llcyk7XG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL3dleHQtc21lLmMgYi9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY1xuaW5kZXggNTczYjZiMTVhNDQ2ZWMuLjNlOWIwNzFmNmQ2NjFjIDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL3dleHQtc21lLmNcbisrKyBiL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jXG5AQCAtMzE5LDYgKzMxOSw4IEBAIGludCBjZmc4MDIxMV93ZXh0X3Npd2dlbmllKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdHJldHVybiAwO1xuIFxuIFx0aWYgKGllX2xlbikge1xuK1x0XHRpZiAoIWNmZzgwMjExX3ZhbGlkYXRlX2llcyhleHRyYSwgaWVfbGVuKSlcbitcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0aWUgPSBrbWVtZHVwKGV4dHJhLCBpZV9sZW4sIEdGUF9LRVJORUwpO1xuIFx0XHRpZiAoIWllKVxuIFx0XHRcdHJldHVybiAtRU5PTUVNO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDA6MzQ6MTMuMjk3NDQ1ODExWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODkzMDc3MDI2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBOZXcgSW5mb3JtYXRpb24gRWxlbWVudCBWYWxpZGF0aW9uIExvZ2ljKipcblxuT2theSwgc28gd2UndmUgZ290IHRoaXMgbmV3IHBhdGNoIGludHJvZHVjaW5nIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgLCBhbmQgaXQncyBiZWluZyB1c2VkIGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhpcyBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIOKAkyBmdW5jdGlvbmFsIGxvZ2ljLCBzcGVjaWZpY2FsbHkgdmFsaWRhdGluZyBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSB3aXRoaW4gdGhlIHdpcmVsZXNzIGV4dGVuc2lvbnMgZnJhbWV3b3JrLiBJdCdzIHRvdWNoaW5nIGBuZXQvd2lyZWxlc3MvdXRpbC5jYCBhbmQgYG5ldC93aXJlbGVzcy93ZXh0LXNtZS5jYCwgc28gd2UncmUgbG9va2luZyBhdCBjb3JlIHdpcmVsZXNzIGludGVyYWN0aW9uIGhlcmUsIHNwZWNpZmljYWxseSB0aHJvdWdoIFdFWFQgaW9jdGxzLlxuXG5HaXZlbiB0aGUgbmF0dXJlIG9mIElFIGhhbmRsaW5nLCBhbmQgaXRzIGNyaXRpY2FsIHJvbGUgaW4gd2lyZWxlc3MgY29tbXVuaWNhdGlvbiwgdGhpcyBpcyBwcmltZSBmdXp6aW5nIHRlcnJpdG9yeS4gV2UncmUgZGVhbGluZyB3aXRoIGV4dGVybmFsIGRhdGEgYmVpbmcgcGFyc2VkIGFuZCB1c2VkIHRvIGNvbmZpZ3VyZSB3aXJlbGVzcyBiZWhhdmlvciwgYW5kIHRoYXQgbWFrZXMgaXQgYSBqdWljeSB0YXJnZXQuIFNvLCBzdGVwIG9uZSwgbGV0J3MgbmFpbCBkb3duIHRoZSBleGFjdCBjb25maWd1cmF0aW9uLiBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYHdleHQtc21lLmNgIGdldHMgYnVpbHQuIEknbGwgc3RhcnQgd2l0aCBhIHF1aWNrIGBncmVwYCBmb3IgYHdleHQtc21lLm9gIGluIGBuZXQvd2lyZWxlc3MvTWFrZWZpbGVgLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBidWlsZCBlbnZpcm9ubWVudCBhbmQgdGhlIHBvc3NpYmxlIGRlcGVuZGVuY2llcy4gVGltZSB0byBzdGFydCB0aGUgZnV6emluZyBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzQ5LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDA6MzQ6MjIuMjI4MjE5MTc2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1OTgwNDYzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3ZXh0LXNtZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvd2lyZWxlc3MvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3dpcmVsZXNzL01ha2VmaWxlPTEzPWNmZzgwMjExLSQoQ09ORklHX0NGRzgwMjExX0RFQlVHRlMpICs9IGRlYnVnZnMub1xcbm5ldC93aXJlbGVzcy9NYWtlZmlsZToxNDpjZmc4MDIxMS0kKENPTkZJR19DRkc4MDIxMV9XRVhUKSArPSB3ZXh0LWNvbXBhdC5vIHdleHQtc21lLm9cXG5uZXQvd2lyZWxlc3MvTWFrZWZpbGUtMTUtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjIyLjY4ODAyOTg1NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyOTE0MzQxODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBXRVhUIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gaGVyZSBpcyBgQ0ZHODAyMTFfV0VYVGAuIFJpZ2h0LCBtYWtlcyBzZW5zZSwgdGhhdCdzIHdoZXJlIHdlJ3JlIHN0YXJ0aW5nLiBOb3csIGxldCdzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzIHdlJ3JlIG92ZXJsb29raW5nLiBPYnZpb3VzbHksIGBDRkc4MDIxMWAgaXRzZWxmIGlzIGEgcHJlcmVxdWlzaXRlLCBzbyB0aGF0IG9uZSdzIGEgZ2l2ZW4uIE5vdywgYW4gaW50ZXJlc3RpbmcgYW5nbGUgaXMgYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgLiBUaGF0IGxvb2tzIGxpa2UgYW4gaW9jdGwgaGFuZGxlciBmb3IgdGhlIFdFWFQgaW50ZXJmYWNlLCBzb21ldGhpbmcgSSdtIGludGltYXRlbHkgZmFtaWxpYXIgd2l0aC4gVGltZSB0byB0cmFjZSBpdHMgdXNhZ2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZXJlIGFuZCBob3cgdGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGVtcGxveWVkIHdpdGhpbiB0aGUga2VybmVsJ3Mgd2lyZWxlc3Mgc3Vic3lzdGVtLiBMZXQncyBzZWUgaG93IGl0J3MgYmVpbmcgYWNjZXNzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4ODQsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDoyNS45Nzk0NjU2OTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUzMTI0MjAzOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjZmc4MDIxMV93ZXh0X3Npd2dlbmllXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuYz0xNDg0PXN0YXRpYyBjb25zdCBpd19oYW5kbGVyIGNmZzgwMjExX2hhbmRsZXJzW10gPSB7XFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuYy0xNTExLVxcdElXX0hBTkRMRVIoU0lPQ0dJV1BPV0VSLFxcdGNmZzgwMjExX3dleHRfZ2l3cG93ZXIpLFxcbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5jOjE1MTI6XFx0SVdfSEFORExFUihTSU9DU0lXR0VOSUUsXFx0Y2ZnODAyMTFfd2V4dF9zaXdnZW5pZSksXFxubmV0L3dpcmVsZXNzL3dleHQtY29tcGF0LmMtMTUxMy1cXHRJV19IQU5ETEVSKFNJT0NTSVdBVVRILFxcdFxcdGNmZzgwMjExX3dleHRfc2l3YXV0aCksXFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuaD00Nj1pbnQgY2ZnODAyMTFfd2V4dF9zaXdtbG1lKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuaC00OC1cXHRcXHRcXHQgIHVuaW9uIGl3cmVxX2RhdGEgKndycXUsIGNoYXIgKmV4dHJhKTtcXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuaDo0OTppbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5oLTUwLVxcdFxcdFxcdCAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sXFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYz0yNzM9aW50IGNmZzgwMjExX21nZF93ZXh0X2dpd2FwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYy0yOTctXFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmM6Mjk4OmludCBjZmc4MDIxMV93ZXh0X3Npd2dlbmllKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMjk5LVxcdFxcdFxcdCAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjI4LjUxMDcxNTcwMVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNzY0Njc0NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBXRVhUIENvbmZpZ3VyYXRpb24gYW5kIEl0cyBEZXBlbmRlbmNpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCBpdCdzIGNsZWFyIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VkIHdpdGhpbiBgY2ZnODAyMTFfaGFuZGxlcnNgIGZvciB0aGUgYFNJT0NTSVdHRU5JRWAgb3BlcmF0aW9uLiBUaGlzIHN0cm9uZ2x5IHN1Z2dlc3RzIGl0J3MgYmVpbmcgYWNjZXNzZWQgdGhyb3VnaCBXRVhUIGlvY3Rscy4gTGV0J3MgZGlnIGRlZXBlciB0byBiZSBjZXJ0YWluLlxuXG5NeSBuZXh0IHRob3VnaHQgaXMgdG8gaXNvbGF0ZSBleGFjdGx5ICpob3cqIGl0J3MgY29uZmlndXJlZC4gSXMgYENGRzgwMjExX1dFWFRgIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaGVyZSwgb3IgYXJlIHRoZXJlIG90aGVycyBpbiB0aGUgbWl4PyBIbW0sIGl0IGxvb2tzIGxpa2UgaXQncyBwcmltYXJpbHkgZGVwZW5kZW50IG9uIGBDRkc4MDIxMV9XRVhUYCBhbmQgYWxzbyBgQ0ZHODAyMTFgIGRpcmVjdGx5LiBJIHNlZSB0aGVtIGluIHRoZSBLY29uZmlnIGFzIHRoZSBtYWluIG9wdGlvbnMgcmVsYXRlZCB0byB0aGlzIGZ1bmN0aW9uYWxpdHkuXG5cbk5vdyB0aGF0IEkndmUgZ290dGVuIHRoaXMgZmFyLCBsZXQncyBzdGVwIGJhY2sgYW5kIGNvbnNpZGVyIGRlcGVuZGVuY2llcy4gV2FpdCBhIG1pbnV0ZS4uLiBgQ0ZHODAyMTFfV0VYVGAgKml0c2VsZiogZGVwZW5kcyBvbiBib3RoIGBDRkc4MDIxMWAgKmFuZCogYFdFWFRfQ09SRWAuIEkgc2hvdWxkIGNoZWNrIHRoZSBgbmV0L3dpcmVsZXNzL0tjb25maWdgIGZpbGUgdG8gY29uZmlybSB0aGlzIGVudGlyZSBwaWN0dXJlIGFuZCBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjI5LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjMyLjc4NzE4NjE5NloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDg2OTY3OTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIENGRzgwMjExX1dFWFRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3dpcmVsZXNzL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3dpcmVsZXNzL0tjb25maWc9MTc3PWNvbmZpZyBDRkc4MDIxMV9DUkRBX1NVUFBPUlRcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxODc6Y29uZmlnIENGRzgwMjExX1dFWFRcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xODgtXFx0Ym9vbCBcXFwiY2ZnODAyMTEgd2lyZWxlc3MgZXh0ZW5zaW9ucyBjb21wYXRpYmlsaXR5XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDozMi44OTU4ODcxODdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTExMjgyNTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIHJlcXVlc3QsIHRoaW5raW5nIGFzIGFuIGV4cGVydCBpbiB0aGUgZmllbGQ6XG5cbioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMgb2YgQ0ZHODAyMTFfV0VYVCoqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgaXMgdG8gZXhwbG9yZSB0aGUgZGVwZW5kZW5jaWVzIHJlbGF0ZWQgdG8gYENGRzgwMjExX1dFWFRgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGlzIHNwZWNpZmljIG1vZHVsZSBvciBjb25maWd1cmF0aW9uIG9wdGlvbi4gV2h5IGFyZSB3ZSBpbnRlcmVzdGVkIGluIGl0cyBkZXBlbmRlbmNpZXM/IElzIHRoZXJlIGEgY29tcGlsYXRpb24gaXNzdWU/IFRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBidWlsZCBwcm9jZXNzPyBBcmUgd2UgYWltaW5nIGZvciBhIG1pbmltYWwgY29uZmlndXJhdGlvbiwgb3IgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgd2hhdCBlbmFibGluZyB0aGlzIG9wdGlvbiBlbnRhaWxzIGZvciBvdmVyYWxsIHN5c3RlbSBjYXBhYmlsaXRpZXM/IE15IG1pbmQgaXMgc3RhcnRpbmcgdG8gcmFjZSB0aHJvdWdoIHRoZSB2YXJpb3VzIHNjZW5hcmlvcy5cblxuYENGRzgwMjExX1dFWFRgLi4uIHJpZ2h0LCB0aGF0J3MgdGhlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGxheWVyIGZvciB3aXJlbGVzcyBleHRlbnNpb25zIHdpdGhpbiB0aGUgY2ZnODAyMTEgZnJhbWV3b3JrLiBTbywgbXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgaXQgcHJvdmlkZXMgYSBicmlkZ2Ugb3IgdHJhbnNsYXRpb24gZm9yIG9sZGVyIHdpcmVsZXNzIHRvb2xzIGFuZCBhcHBsaWNhdGlvbnMgdGhhdCByZWx5IG9uIHRoZSBkZXByZWNhdGVkIGB3aXJlbGVzcyBleHRlbnNpb25zYCBBUEkgdG8gd29yayB3aXRoIHRoZSBuZXdlciBjZmc4MDIxMSBkcml2ZXIgc3RhY2suIFRoYXQgZ2l2ZXMgbWUgYSBkaXJlY3Rpb24gZm9yIGFuYWx5c2lzLlxuXG5JJ2QgZXhwZWN0IHRoZSBpbW1lZGlhdGUgZGVwZW5kZW5jaWVzIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIGNvcmUgYGNmZzgwMjExYCBpbmZyYXN0cnVjdHVyZSBpdHNlbGYsIGFuZCBsaWtlbHkgc29tZXRoaW5nIHJlbGF0ZWQgdG8gYHdpcmVsZXNzIGV4dGVuc2lvbnNgIGFuZCB0aGVpciBsZWdhY3kgY29tcG9uZW50cy4gSSdkIGJlIGxvb2tpbmcgZm9yIHRoZSBpbmNsdXNpb24gb2Ygc3BlY2lmaWMgaGVhZGVycywgdGhlIGRlZmluaXRpb24gb2YgY2VydGFpbiBzeW1ib2xzIG9yIHN0cnVjdHVyZXMsIGFuZCBtYXliZSBldmVuIHNvbWUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmFzZWQgb24gdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgb2xkZXIgQVBJLlxuXG5Fc3NlbnRpYWxseSwgSSBuZWVkIHRvIHRyYWNlIHRoZSBjb25uZWN0aW9ucyBhbmQgZGV0ZXJtaW5lIHdoYXQgb3RoZXIgY29uZmlndXJhdGlvbnMgb3Iga2VybmVsIGZlYXR1cmVzIGFyZSBsaW5rZWQuIEkgYW0gZ29pbmcgdG8gbmVlZCB0byB0cmFjayB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gZmlsZXMsIG9yIHRoZSByZWxldmFudCBzb3VyY2UgY29kZSwgdG8gYmVnaW4gdG8gdW5kZXJzdGFuZCB0aGUgbGlua2FnZXMuIEkgd291bGQgYXNzdW1lIHRoYXQgdGhpcyBtb2R1bGUgYnJpZGdlcyB0byB0aGUgd2lyZWxlc3Mgc3RhY2sgYW5kIHRoZSB2YXJpb3VzIHN1cHBsaWNhbnQgaW1wbGVtZW50YXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTY0LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDA6MzQ6MzYuODA3MTcyNzY1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTIwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxODcsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxODc6XFx0Y29uZmlnIENGRzgwMjExX1dFWFRcXG4gMTg4OlxcdFxcdGJvb2wgXFxcImNmZzgwMjExIHdpcmVsZXNzIGV4dGVuc2lvbnMgY29tcGF0aWJpbGl0eVxcXCJcXG4gMTg5OlxcdFxcdHNlbGVjdCBXRVhUX0NPUkVcXG4gMTkwOlxcdFxcdGhlbHBcXG4gMTkxOlxcdFxcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIGlmIHlvdSBuZWVkIG9sZCB1c2Vyc3BhY2UgZm9yIHdpcmVsZXNzXFxuIDE5MjpcXHRcXHQgIGV4dGVuc2lvbnMgd2l0aCBjZmc4MDIxMS1iYXNlZCBkcml2ZXJzLlxcbiAxOTM6XFx0XFxuIDE5NDpcXHRjb25maWcgQ0ZHODAyMTFfS1VOSVRfVEVTVFxcbiAxOTU6XFx0XFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBjZmc4MDIxMVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbiAxOTY6XFx0XFx0ZGVwZW5kcyBvbiBLVU5JVFxcbiAxOTc6XFx0XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbiAxOTg6XFx0XFx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcXG4gMTk5OlxcdFxcdGhlbHBcXG4gMjAwOlxcdFxcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIHRvIHRlc3QgY2ZnODAyMTEgZnVuY3Rpb25zIHdpdGgga3VuaXQuXFxuIDIwMTpcXHRcXG4gMjAyOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gMjAzOlxcdFxcbiAyMDQ6XFx0ZW5kaWYgIyBDRkc4MDIxMVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDozNi44MDcyOTcxMTZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk0NzIyNDE4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIERlcGVuZGVuY2llcyBhbmQgU2NvcGUgb2YgYSBDb2RlIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoaXMgY2hhbmdlIGhpbmdlcyBvbiBgQ0ZHODAyMTFgLCBnaXZlbiB0aGF0IHRoZSByZWxldmFudCBjb2RlIHNuaXBwZXQgaXMgd3JhcHBlZCBpbiBhbiBgaWYgQ0ZHODAyMTFgIGJsb2NrLiBUaGVyZWZvcmUsIHRoZSBjb25maWd1cmF0aW9ucyBJIG5lZWQgdG8gY29uc2lkZXIgYXJlIGBDRkc4MDIxMWAgYW5kIGBDRkc4MDIxMV9XRVhUYC4gVGhhdCdzIHRoZSBiYXNlbGluZS5cblxuTXkgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIHRoZSBmdW5jdGlvbnMgYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgIGFuZCBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYC4gVGhlIHBhdGNoIHNwZWNpZmljYWxseSBpbnRyb2R1Y2VzIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHdpdGhpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAuIE15IHByaW1hcnkgY29uY2VybiBub3cgaXMgd2hldGhlciBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCBpcyAqb25seSogY2FsbGVkIGZyb20gYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgIG9yIGlmIGl0J3MgdXNlZCBlbHNld2hlcmUgaW4gdGhlIGNvZGViYXNlLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIHRoZSBleHRlbnQgb2YgaXRzIHJlYWNoLiBUaGlzIHdpbGwgaW5mb3JtIHRoZSBvdmVyYWxsIGltcGFjdCBhbmQgcG90ZW50aWFsIHNpZGUgZWZmZWN0cyBvZiB0aGlzIGNoYW5nZS4gSSdsbCBjaGVjayBpdHMgdXNhZ2VzIHRob3JvdWdobHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NTUsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDo0MC43NTQ1MjYyNThaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxNTUxNDc2MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2ZnODAyMTFfdmFsaWRhdGVfaWVzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL25ldC9jZmc4MDIxMS5oPTEwOTkwPXZvaWQgY2ZnODAyMTFfaW5jdW1iZW50X3NpZ25hbF9ub3RpZnkoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtMTA5OTQtXFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDoxMDk5NTpib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbik7XFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC0xMDk5Ni0jZW5kaWYgLyogX19ORVRfQ0ZHODAyMTFfSCAqL1xcbi0tXFxubmV0L3dpcmVsZXNzL3V0aWwuYz0zMDg1PUVYUE9SVF9TWU1CT0woY2ZnODAyMTFfd2Rldl9jaGFubmVsX2FsbG93ZWQpO1xcbm5ldC93aXJlbGVzcy91dGlsLmMtMzA4Ni1cXG5uZXQvd2lyZWxlc3MvdXRpbC5jOjMwODc6Ym9vbCBjZmc4MDIxMV92YWxpZGF0ZV9pZXMoY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pXFxubmV0L3dpcmVsZXNzL3V0aWwuYy0zMDg4LXtcXG4tLVxcbm5ldC93aXJlbGVzcy91dGlsLmMtMzEwMC19XFxubmV0L3dpcmVsZXNzL3V0aWwuYzozMTAxOkVYUE9SVF9TWU1CT0woY2ZnODAyMTFfdmFsaWRhdGVfaWVzKTtcXG4tLVxcbm5ldC93aXJlbGVzcy93ZXh0LXNtZS5jPTI5OD1pbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMzIxLVxcdGlmIChpZV9sZW4pIHtcXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYzozMjI6XFx0XFx0aWYgKCFjZmc4MDIxMV92YWxpZGF0ZV9pZXMoZXh0cmEsIGllX2xlbikpXFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMzIzLVxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDo0My45MDk2ODA1ODhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjYyMTE1OTUzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogSUVzIGFuZCBXRVhUIGlvY3RscyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBhdHRlbnRpb24gaXMgZHJhd24gdG8gYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgIGFuZCBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYC4gVGhlc2UgYXJlIHRoZSBrZXkgc3ltYm9scyBoZXJlLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCwgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHNwZWNpZmljYWxseSBmb3IgSW5mb3JtYXRpb24gRWxlbWVudHMsIGFuZCB0aGVuICp1c2VzKiBpdCB3aXRoaW4gYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgLiBUaGF0J3MgaW1wb3J0YW50LiBUaGlzIGlzIGFsbCBmdW5jdGlvbmFsIGxvZ2ljLCByZWFjaGFibGUgdGhyb3VnaCB0aGUgV2lyZWxlc3MgRXh0ZW5zaW9uIChXRVhUKSBpb2N0bHMsIHNwZWNpZmljYWxseSwgSSBiZWxpZXZlLCBgU0lPQ1NJV0dFTklFYC5cblxuUmlnaHQsIHRpbWUgdG8gY29uc2lkZXIgdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBXZSBuZWVkIGBDRkc4MDIxMWAgb2J2aW91c2x5LCBhbmQgYENGRzgwMjExX1dFWFRgLiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdCBgQ0ZHODAyMTFfV0VYVGAgaXMgc3VmZmljaWVudC4gWWVzLCB0aGF0IHNlbGVjdHMgYFdFWFRfQ09SRWAsIHNvIHdlJ3JlIGdvb2QgdGhlcmUuIEFyZSB0aGVyZSBhbnkgb3RoZXIgcG90ZW50aWFsbHkgdXNlZnVsIGNvbmZpZ3VyYXRpb25zPyBGb3IgKmFjdHVhbCogd2lyZWxlc3MgZGV2aWNlIGludGVyYWN0aW9uLCBgTUFDODAyMTFfSFdTSU1gIGNvdWxkIGJlIGhhbmR5IHRvIHNpbXVsYXRlIGlvY3RsIGJlaGF2aW9yLCBidXQgYENGRzgwMjExX1dFWFRgIGlzIHRoZSBjcml0aWNhbCBvbmUgZm9yICp0aGlzKiBjb2RlLlxuXG5MZXQgbWUgc29saWRpZnkgbXkgcmF0aW9uYWxlLiBUaGUgcGF0Y2ggYWRkcyBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyBhbmQgdXRpbGl6ZXMgaXQgd2l0aGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgdXNlciBhcHBsaWNhdGlvbiBpcyBwcm92aWRpbmcgaW5wdXQgdG8gdGhlIHdpcmVsZXNzIGRldmljZSB0aHJvdWdoIGEgV0VYVCBpb2N0bCBsaWtlIGBTSU9DU0lXR0VOSUVgLiBUaGlzIGRpcmVjdCB1c2VyIGNvbnRyb2wgb3ZlciB0aGUgZGF0YSBiZWluZyBmZWQgaW50byB0aGUgc3lzdGVtIG1lYW5zIGl0J3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIGhhdmUgYW4gZW50cnkgcG9pbnQgdGhhdCB0YWtlcyBkYXRhIGZyb20gYSB1c2VyLCB2YWxpZGF0ZXMgaXQsIGFuZCB0aGVuIHVzZXMgdGhhdCB0byBjb25maWd1cmUgdGhlIHdpcmVsZXNzIGRldmljZS4gVGhpcyBpcyBhIGNsYXNzaWMgY2FzZSBmb3IgZnV6emluZy5cblxuVGltZSB0byBsb2cgdGhpcy4gSSdsbCBzZXQgdGhlIHJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU3MDAsIk91dHB1dFRva2VucyI6MTY5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjUwLjUzMDg0MzM2NVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2ODk4NzU1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIkNGRzgwMjExX1dFWFRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV93ZXh0X3Npd2dlbmllXCIsXG4gICAgXCJjZmc4MDIxMV92YWxpZGF0ZV9pZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHRvIHZhbGlkYXRlIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGFuZCB1c2VzIGl0IGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCB0byB2YWxpZGF0ZSBpbnB1dCBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBTSU9DU0lXR0VOSUVgIHdpcmVsZXNzIGV4dGVuc2lvbiBpb2N0bC4gVGhpcyBpcyByZWFjaGFibGUgZnVuY3Rpb25hbCBsb2dpYyB0aGF0IGhhbmRsZXMgdXNlci1jb250cm9sbGVkIGRhdGEsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIkNGRzgwMjExX1dFWFRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV93ZXh0X3Npd2dlbmllXCIsXG4gICAgXCJjZmc4MDIxMV92YWxpZGF0ZV9pZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHRvIHZhbGlkYXRlIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGFuZCB1c2VzIGl0IGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCB0byB2YWxpZGF0ZSBpbnB1dCBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBTSU9DU0lXR0VOSUVgIHdpcmVsZXNzIGV4dGVuc2lvbiBpb2N0bC4gVGhpcyBpcyByZWFjaGFibGUgZnVuY3Rpb25hbCBsb2dpYyB0aGF0IGhhbmRsZXMgdXNlci1jb250cm9sbGVkIGRhdGEsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-10 23:58:53 +0000 UTC FinishedAt: 2026-07-11 00:34:52 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "CFG80211_WEXT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "a635d6748234582ea287c5ffeae28b9b23f91c7e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "CFG80211_WEXT" ], "series_id": "501e36bb-7c9f-4cca-b3d7-c9175526caa5" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cfg80211_wext_siwgenie", "cfg80211_validate_ies" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NGRzgwMjExJiMzNDssCiAgICAmIzM0O0NGRzgwMjExX1dFWFQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV93ZXh0X3Npd2dlbmllJiMzNDssCiAgICAmIzM0O2NmZzgwMjExX3ZhbGlkYXRlX2llcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHRvIHZhbGlkYXRlIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGFuZCB1c2VzIGl0IGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCB0byB2YWxpZGF0ZSBpbnB1dCBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBTSU9DU0lXR0VOSUVgIHdpcmVsZXNzIGV4dGVuc2lvbiBpb2N0bC4gVGhpcyBpcyByZWFjaGFibGUgZnVuY3Rpb25hbCBsb2dpYyB0aGF0IGhhbmRsZXMgdXNlci1jb250cm9sbGVkIGRhdGEsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDA6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyMmFhZjEyNmJlYTE2ZTZlZGFhYjkxYjFhMmUzZWExNWEwNmVlYzY4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMTEgMDA6MzQ6MTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaCBiL2luY2x1ZGUvbmV0L2NmZzgwMjExLmhcbmluZGV4IDgxODhhZDIwMGRlNTM5Li4zMmNlZjkyNmY4YTQwZCAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L2NmZzgwMjExLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L2NmZzgwMjExLmhcbkBAIC0xMDk5Miw0ICYjNDM7MTA5OTIsNSBAQCB2b2lkIGNmZzgwMjExX2luY3VtYmVudF9zaWduYWxfbm90aWZ5KHN0cnVjdCB3aXBoeSAqd2lwaHksXG4gXHRcdFx0XHQgICAgICB1MzIgc2lnbmFsX2ludGVyZmVyZW5jZV9iaXRtYXAsXG4gXHRcdFx0XHQgICAgICBnZnBfdCBnZnApO1xuIFxuJiM0Mztib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbik7XG4gI2VuZGlmIC8qIF9fTkVUX0NGRzgwMjExX0ggKi9cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvdXRpbC5jIGIvbmV0L3dpcmVsZXNzL3V0aWwuY1xuaW5kZXggMjQ1MjdiZjMyMWIyYTEuLmE2ODUwMjBjOGVmYzM4IDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL3V0aWwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3dpcmVsZXNzL3V0aWwuY1xuQEAgLTMwODMsMyAmIzQzOzMwODMsMTkgQEAgYm9vbCBjZmc4MDIxMV93ZGV2X2NoYW5uZWxfYWxsb3dlZChzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuIFx0cmV0dXJuIGZhbHNlO1xuIH1cbiBFWFBPUlRfU1lNQk9MKGNmZzgwMjExX3dkZXZfY2hhbm5lbF9hbGxvd2VkKTtcbiYjNDM7XG4mIzQzO2Jvb2wgY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGNvbnN0IHU4ICppZXMsIHNpemVfdCBpZXNfbGVuKVxuJiM0Mzt7XG4mIzQzO1x0c2l6ZV90IHBvcyA9IDA7XG4mIzQzO1xuJiM0MztcdHdoaWxlIChwb3MgXHUwMDNjIGllc19sZW4pIHtcbiYjNDM7XHRcdGlmIChwb3MgJiM0MzsgMiBcdTAwM2UgaWVzX2xlbilcbiYjNDM7XHRcdFx0cmV0dXJuIGZhbHNlO1xuJiM0MztcdFx0aWYgKHBvcyAmIzQzOyAyICYjNDM7IGllc1twb3MgJiM0MzsgMV0gXHUwMDNlIGllc19sZW4pXG4mIzQzO1x0XHRcdHJldHVybiBmYWxzZTtcbiYjNDM7XHRcdHBvcyAmIzQzOz0gMiAmIzQzOyBpZXNbcG9zICYjNDM7IDFdO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHRydWU7XG4mIzQzO31cbiYjNDM7RVhQT1JUX1NZTUJPTChjZmc4MDIxMV92YWxpZGF0ZV9pZXMpO1xuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jIGIvbmV0L3dpcmVsZXNzL3dleHQtc21lLmNcbmluZGV4IDU3M2I2YjE1YTQ0NmVjLi4zZTliMDcxZjZkNjYxYyAxMDA2NDRcbi0tLSBhL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY1xuQEAgLTMxOSw2ICYjNDM7MzE5LDggQEAgaW50IGNmZzgwMjExX3dleHRfc2l3Z2VuaWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0cmV0dXJuIDA7XG4gXG4gXHRpZiAoaWVfbGVuKSB7XG4mIzQzO1x0XHRpZiAoIWNmZzgwMjExX3ZhbGlkYXRlX2llcyhleHRyYSwgaWVfbGVuKSlcbiYjNDM7XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHRcdGllID0ga21lbWR1cChleHRyYSwgaWVfbGVuLCBHRlBfS0VSTkVMKTtcbiBcdFx0aWYgKCFpZSlcbiBcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMV9XRVhUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfd2V4dF9zaXdnZW5pZSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV92YWxpZGF0ZV9pZXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBhbmQgdXNlcyBpdCBpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgdG8gdmFsaWRhdGUgaW5wdXQgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgU0lPQ1NJV0dFTklFYCB3aXJlbGVzcyBleHRlbnNpb24gaW9jdGwuIFRoaXMgaXMgcmVhY2hhYmxlIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCBoYW5kbGVzIHVzZXItY29udHJvbGxlZCBkYXRhLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyMmFhZjEyNmJlYTE2ZTZlZGFhYjkxYjFhMmUzZWExNWEwNmVlYzY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTEgMDA6MzQ6MTEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oIGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaAppbmRleCA4MTg4YWQyMDBkZTUzOS4uMzJjZWY5MjZmOGE0MGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2NmZzgwMjExLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaApAQCAtMTA5OTIsNCAmIzQzOzEwOTkyLDUgQEAgdm9pZCBjZmc4MDIxMV9pbmN1bWJlbnRfc2lnbmFsX25vdGlmeShzdHJ1Y3Qgd2lwaHkgKndpcGh5LAogCQkJCSAgICAgIHUzMiBzaWduYWxfaW50ZXJmZXJlbmNlX2JpdG1hcCwKIAkJCQkgICAgICBnZnBfdCBnZnApOwogCiYjNDM7Ym9vbCBjZmc4MDIxMV92YWxpZGF0ZV9pZXMoY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pOwogI2VuZGlmIC8qIF9fTkVUX0NGRzgwMjExX0ggKi8KZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy91dGlsLmMgYi9uZXQvd2lyZWxlc3MvdXRpbC5jCmluZGV4IDI0NTI3YmYzMjFiMmExLi5hNjg1MDIwYzhlZmMzOCAxMDA2NDQKLS0tIGEvbmV0L3dpcmVsZXNzL3V0aWwuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3MvdXRpbC5jCkBAIC0zMDgzLDMgJiM0MzszMDgzLDE5IEBAIGJvb2wgY2ZnODAyMTFfd2Rldl9jaGFubmVsX2FsbG93ZWQoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwKIAlyZXR1cm4gZmFsc2U7CiB9CiBFWFBPUlRfU1lNQk9MKGNmZzgwMjExX3dkZXZfY2hhbm5lbF9hbGxvd2VkKTsKJiM0MzsKJiM0Mztib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbikKJiM0Mzt7CiYjNDM7CXNpemVfdCBwb3MgPSAwOwomIzQzOwomIzQzOwl3aGlsZSAocG9zICZsdDsgaWVzX2xlbikgewomIzQzOwkJaWYgKHBvcyAmIzQzOyAyICZndDsgaWVzX2xlbikKJiM0MzsJCQlyZXR1cm4gZmFsc2U7CiYjNDM7CQlpZiAocG9zICYjNDM7IDIgJiM0MzsgaWVzW3BvcyAmIzQzOyAxXSAmZ3Q7IGllc19sZW4pCiYjNDM7CQkJcmV0dXJuIGZhbHNlOwomIzQzOwkJcG9zICYjNDM7PSAyICYjNDM7IGllc1twb3MgJiM0MzsgMV07CiYjNDM7CX0KJiM0MzsKJiM0MzsJcmV0dXJuIHRydWU7CiYjNDM7fQomIzQzO0VYUE9SVF9TWU1CT0woY2ZnODAyMTFfdmFsaWRhdGVfaWVzKTsKZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jIGIvbmV0L3dpcmVsZXNzL3dleHQtc21lLmMKaW5kZXggNTczYjZiMTVhNDQ2ZWMuLjNlOWIwNzFmNmQ2NjFjIDEwMDY0NAotLS0gYS9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYwpAQCAtMzE5LDYgJiM0MzszMTksOCBAQCBpbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlyZXR1cm4gMDsKIAogCWlmIChpZV9sZW4pIHsKJiM0MzsJCWlmICghY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGV4dHJhLCBpZV9sZW4pKQomIzQzOwkJCXJldHVybiAtRUlOVkFMOwogCQlpZSA9IGttZW1kdXAoZXh0cmEsIGllX2xlbiwgR0ZQX0tFUk5FTCk7CiAJCWlmICghaWUpCiAJCQlyZXR1cm4gLUVOT01FTTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDA6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM0OQoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDE0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBOZXcgSW5mb3JtYXRpb24gRWxlbWVudCBWYWxpZGF0aW9uIExvZ2ljKioKCk9rYXksIHNvIHdlJiMzOTt2ZSBnb3QgdGhpcyBuZXcgcGF0Y2ggaW50cm9kdWNpbmcgYGNmZzgwMjExX3ZhbGlkYXRlX2llc2AsIGFuZCBpdCYjMzk7cyBiZWluZyB1c2VkIGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhpcyBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIOKAkyBmdW5jdGlvbmFsIGxvZ2ljLCBzcGVjaWZpY2FsbHkgdmFsaWRhdGluZyBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSB3aXRoaW4gdGhlIHdpcmVsZXNzIGV4dGVuc2lvbnMgZnJhbWV3b3JrLiBJdCYjMzk7cyB0b3VjaGluZyBgbmV0L3dpcmVsZXNzL3V0aWwuY2AgYW5kIGBuZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY2AsIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGNvcmUgd2lyZWxlc3MgaW50ZXJhY3Rpb24gaGVyZSwgc3BlY2lmaWNhbGx5IHRocm91Z2ggV0VYVCBpb2N0bHMuCgpHaXZlbiB0aGUgbmF0dXJlIG9mIElFIGhhbmRsaW5nLCBhbmQgaXRzIGNyaXRpY2FsIHJvbGUgaW4gd2lyZWxlc3MgY29tbXVuaWNhdGlvbiwgdGhpcyBpcyBwcmltZSBmdXp6aW5nIHRlcnJpdG9yeS4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBleHRlcm5hbCBkYXRhIGJlaW5nIHBhcnNlZCBhbmQgdXNlZCB0byBjb25maWd1cmUgd2lyZWxlc3MgYmVoYXZpb3IsIGFuZCB0aGF0IG1ha2VzIGl0IGEganVpY3kgdGFyZ2V0LiBTbywgc3RlcCBvbmUsIGxldCYjMzk7cyBuYWlsIGRvd24gdGhlIGV4YWN0IGNvbmZpZ3VyYXRpb24uIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYHdleHQtc21lLmNgIGdldHMgYnVpbHQuIEkmIzM5O2xsIHN0YXJ0IHdpdGggYSBxdWljayBgZ3JlcGAgZm9yIGB3ZXh0LXNtZS5vYCBpbiBgbmV0L3dpcmVsZXNzL01ha2VmaWxlYC4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgYnVpbGQgZW52aXJvbm1lbnQgYW5kIHRoZSBwb3NzaWJsZSBkZXBlbmRlbmNpZXMuIFRpbWUgdG8gc3RhcnQgdGhlIGZ1enppbmcgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt3ZXh0LXNtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvTWFrZWZpbGU9MTM9Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfREVCVUdGUykgJiM0Mzs9IGRlYnVnZnMub1xubmV0L3dpcmVsZXNzL01ha2VmaWxlOjE0OmNmZzgwMjExLSQoQ09ORklHX0NGRzgwMjExX1dFWFQpICYjNDM7PSB3ZXh0LWNvbXBhdC5vIHdleHQtc21lLm9cbm5ldC93aXJlbGVzcy9NYWtlZmlsZS0xNS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODg0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSBXRVhUIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBpdGVtIGhlcmUgaXMgYENGRzgwMjExX1dFWFRgLiBSaWdodCwgbWFrZXMgc2Vuc2UsIHRoYXQmIzM5O3Mgd2hlcmUgd2UmIzM5O3JlIHN0YXJ0aW5nLiBOb3csIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3Mgd2UmIzM5O3JlIG92ZXJsb29raW5nLiBPYnZpb3VzbHksIGBDRkc4MDIxMWAgaXRzZWxmIGlzIGEgcHJlcmVxdWlzaXRlLCBzbyB0aGF0IG9uZSYjMzk7cyBhIGdpdmVuLiBOb3csIGFuIGludGVyZXN0aW5nIGFuZ2xlIGlzIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhhdCBsb29rcyBsaWtlIGFuIGlvY3RsIGhhbmRsZXIgZm9yIHRoZSBXRVhUIGludGVyZmFjZSwgc29tZXRoaW5nIEkmIzM5O20gaW50aW1hdGVseSBmYW1pbGlhciB3aXRoLiBUaW1lIHRvIHRyYWNlIGl0cyB1c2FnZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgYW5kIGhvdyB0aGlzIHBhcnRpY3VsYXIgZnVuY3Rpb24gaXMgZW1wbG95ZWQgd2l0aGluIHRoZSBrZXJuZWwmIzM5O3Mgd2lyZWxlc3Mgc3Vic3lzdGVtLiBMZXQmIzM5O3Mgc2VlIGhvdyBpdCYjMzk7cyBiZWluZyBhY2Nlc3NlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjZmc4MDIxMV93ZXh0X3Npd2dlbmllJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5jPTE0ODQ9c3RhdGljIGNvbnN0IGl3X2hhbmRsZXIgY2ZnODAyMTFfaGFuZGxlcnNbXSA9IHtcbi0tXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuYy0xNTExLVx0SVdfSEFORExFUihTSU9DR0lXUE9XRVIsXHRjZmc4MDIxMV93ZXh0X2dpd3Bvd2VyKSxcbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5jOjE1MTI6XHRJV19IQU5ETEVSKFNJT0NTSVdHRU5JRSxcdGNmZzgwMjExX3dleHRfc2l3Z2VuaWUpLFxubmV0L3dpcmVsZXNzL3dleHQtY29tcGF0LmMtMTUxMy1cdElXX0hBTkRMRVIoU0lPQ1NJV0FVVEgsXHRcdGNmZzgwMjExX3dleHRfc2l3YXV0aCksXG4tLVxubmV0L3dpcmVsZXNzL3dleHQtY29tcGF0Lmg9NDY9aW50IGNmZzgwMjExX3dleHRfc2l3bWxtZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5oLTQ4LVx0XHRcdCAgdW5pb24gaXdyZXFfZGF0YSAqd3JxdSwgY2hhciAqZXh0cmEpO1xubmV0L3dpcmVsZXNzL3dleHQtY29tcGF0Lmg6NDk6aW50IGNmZzgwMjExX3dleHRfc2l3Z2VuaWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5oLTUwLVx0XHRcdCAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sXG4tLVxubmV0L3dpcmVsZXNzL3dleHQtc21lLmM9MjczPWludCBjZmc4MDIxMV9tZ2Rfd2V4dF9naXdhcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbm5ldC93aXJlbGVzcy93ZXh0LXNtZS5jLTI5Ny1cbm5ldC93aXJlbGVzcy93ZXh0LXNtZS5jOjI5ODppbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMjk5LVx0XHRcdCAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDA6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzYyOQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFdFWFQgQ29uZmlndXJhdGlvbiBhbmQgSXRzIERlcGVuZGVuY2llcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQmIzM5O3MgY2xlYXIgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVzZWQgd2l0aGluIGBjZmc4MDIxMV9oYW5kbGVyc2AgZm9yIHRoZSBgU0lPQ1NJV0dFTklFYCBvcGVyYXRpb24uIFRoaXMgc3Ryb25nbHkgc3VnZ2VzdHMgaXQmIzM5O3MgYmVpbmcgYWNjZXNzZWQgdGhyb3VnaCBXRVhUIGlvY3Rscy4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgdG8gYmUgY2VydGFpbi4KCk15IG5leHQgdGhvdWdodCBpcyB0byBpc29sYXRlIGV4YWN0bHkgKmhvdyogaXQmIzM5O3MgY29uZmlndXJlZC4gSXMgYENGRzgwMjExX1dFWFRgIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaGVyZSwgb3IgYXJlIHRoZXJlIG90aGVycyBpbiB0aGUgbWl4PyBIbW0sIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgcHJpbWFyaWx5IGRlcGVuZGVudCBvbiBgQ0ZHODAyMTFfV0VYVGAgYW5kIGFsc28gYENGRzgwMjExYCBkaXJlY3RseS4gSSBzZWUgdGhlbSBpbiB0aGUgS2NvbmZpZyBhcyB0aGUgbWFpbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhpcyBmdW5jdGlvbmFsaXR5LgoKTm93IHRoYXQgSSYjMzk7dmUgZ290dGVuIHRoaXMgZmFyLCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBjb25zaWRlciBkZXBlbmRlbmNpZXMuIFdhaXQgYSBtaW51dGUuLi4gYENGRzgwMjExX1dFWFRgICppdHNlbGYqIGRlcGVuZHMgb24gYm90aCBgQ0ZHODAyMTFgICphbmQqIGBXRVhUX0NPUkVgLiBJIHNob3VsZCBjaGVjayB0aGUgYG5ldC93aXJlbGVzcy9LY29uZmlnYCBmaWxlIHRvIGNvbmZpcm0gdGhpcyBlbnRpcmUgcGljdHVyZSBhbmQgbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMDA6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIENGRzgwMjExX1dFWFQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvS2NvbmZpZz0xNzc9Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4Ni1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTY0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHJlcXVlc3QsIHRoaW5raW5nIGFzIGFuIGV4cGVydCBpbiB0aGUgZmllbGQ6CgoqKkFuYWx5emluZyB0aGUgRGVwZW5kZW5jaWVzIG9mIENGRzgwMjExX1dFWFQqKgoKT2theSwgc28gdGhlIHByb21wdCBpcyB0byBleHBsb3JlIHRoZSBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byBgQ0ZHODAyMTFfV0VYVGAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgc3BlY2lmaWMgbW9kdWxlIG9yIGNvbmZpZ3VyYXRpb24gb3B0aW9uLiBXaHkgYXJlIHdlIGludGVyZXN0ZWQgaW4gaXRzIGRlcGVuZGVuY2llcz8gSXMgdGhlcmUgYSBjb21waWxhdGlvbiBpc3N1ZT8gVHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIGJ1aWxkIHByb2Nlc3M/IEFyZSB3ZSBhaW1pbmcgZm9yIGEgbWluaW1hbCBjb25maWd1cmF0aW9uLCBvciB0cnlpbmcgdG8gdW5kZXJzdGFuZCB3aGF0IGVuYWJsaW5nIHRoaXMgb3B0aW9uIGVudGFpbHMgZm9yIG92ZXJhbGwgc3lzdGVtIGNhcGFiaWxpdGllcz8gTXkgbWluZCBpcyBzdGFydGluZyB0byByYWNlIHRocm91Z2ggdGhlIHZhcmlvdXMgc2NlbmFyaW9zLgoKYENGRzgwMjExX1dFWFRgLi4uIHJpZ2h0LCB0aGF0JiMzOTtzIHRoZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBsYXllciBmb3Igd2lyZWxlc3MgZXh0ZW5zaW9ucyB3aXRoaW4gdGhlIGNmZzgwMjExIGZyYW1ld29yay4gU28sIG15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGl0IHByb3ZpZGVzIGEgYnJpZGdlIG9yIHRyYW5zbGF0aW9uIGZvciBvbGRlciB3aXJlbGVzcyB0b29scyBhbmQgYXBwbGljYXRpb25zIHRoYXQgcmVseSBvbiB0aGUgZGVwcmVjYXRlZCBgd2lyZWxlc3MgZXh0ZW5zaW9uc2AgQVBJIHRvIHdvcmsgd2l0aCB0aGUgbmV3ZXIgY2ZnODAyMTEgZHJpdmVyIHN0YWNrLiBUaGF0IGdpdmVzIG1lIGEgZGlyZWN0aW9uIGZvciBhbmFseXNpcy4KCkkmIzM5O2QgZXhwZWN0IHRoZSBpbW1lZGlhdGUgZGVwZW5kZW5jaWVzIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIGNvcmUgYGNmZzgwMjExYCBpbmZyYXN0cnVjdHVyZSBpdHNlbGYsIGFuZCBsaWtlbHkgc29tZXRoaW5nIHJlbGF0ZWQgdG8gYHdpcmVsZXNzIGV4dGVuc2lvbnNgIGFuZCB0aGVpciBsZWdhY3kgY29tcG9uZW50cy4gSSYjMzk7ZCBiZSBsb29raW5nIGZvciB0aGUgaW5jbHVzaW9uIG9mIHNwZWNpZmljIGhlYWRlcnMsIHRoZSBkZWZpbml0aW9uIG9mIGNlcnRhaW4gc3ltYm9scyBvciBzdHJ1Y3R1cmVzLCBhbmQgbWF5YmUgZXZlbiBzb21lIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGJhc2VkIG9uIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIG9sZGVyIEFQSS4KCkVzc2VudGlhbGx5LCBJIG5lZWQgdG8gdHJhY2UgdGhlIGNvbm5lY3Rpb25zIGFuZCBkZXRlcm1pbmUgd2hhdCBvdGhlciBjb25maWd1cmF0aW9ucyBvciBrZXJuZWwgZmVhdHVyZXMgYXJlIGxpbmtlZC4gSSBhbSBnb2luZyB0byBuZWVkIHRvIHRyYWNrIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlcywgb3IgdGhlIHJlbGV2YW50IHNvdXJjZSBjb2RlLCB0byBiZWdpbiB0byB1bmRlcnN0YW5kIHRoZSBsaW5rYWdlcy4gSSB3b3VsZCBhc3N1bWUgdGhhdCB0aGlzIG1vZHVsZSBicmlkZ2VzIHRvIHRoZSB3aXJlbGVzcyBzdGFjayBhbmQgdGhlIHZhcmlvdXMgc3VwcGxpY2FudCBpbXBsZW1lbnRhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3dpcmVsZXNzL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxODcsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE4NzpcdGNvbmZpZyBDRkc4MDIxMV9XRVhUXG4gMTg4Olx0XHRib29sIFwmIzM0O2NmZzgwMjExIHdpcmVsZXNzIGV4dGVuc2lvbnMgY29tcGF0aWJpbGl0eVwmIzM0O1xuIDE4OTpcdFx0c2VsZWN0IFdFWFRfQ09SRVxuIDE5MDpcdFx0aGVscFxuIDE5MTpcdFx0ICBFbmFibGUgdGhpcyBvcHRpb24gaWYgeW91IG5lZWQgb2xkIHVzZXJzcGFjZSBmb3Igd2lyZWxlc3NcbiAxOTI6XHRcdCAgZXh0ZW5zaW9ucyB3aXRoIGNmZzgwMjExLWJhc2VkIGRyaXZlcnMuXG4gMTkzOlx0XG4gMTk0Olx0Y29uZmlnIENGRzgwMjExX0tVTklUX1RFU1RcbiAxOTU6XHRcdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3RzIGZvciBjZmc4MDIxMVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4gMTk2Olx0XHRkZXBlbmRzIG9uIEtVTklUXG4gMTk3Olx0XHRkZXBlbmRzIG9uIENGRzgwMjExXG4gMTk4Olx0XHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuIDE5OTpcdFx0aGVscFxuIDIwMDpcdFx0ICBFbmFibGUgdGhpcyBvcHRpb24gdG8gdGVzdCBjZmc4MDIxMSBmdW5jdGlvbnMgd2l0aCBrdW5pdC5cbiAyMDE6XHRcbiAyMDI6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiAyMDM6XHRcbiAyMDQ6XHRlbmRpZiAjIENGRzgwMjExXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4NTUKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxNDMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMgYW5kIFNjb3BlIG9mIGEgQ29kZSBDaGFuZ2UqKgoKT2theSwgc28gdGhpcyBjaGFuZ2UgaGluZ2VzIG9uIGBDRkc4MDIxMWAsIGdpdmVuIHRoYXQgdGhlIHJlbGV2YW50IGNvZGUgc25pcHBldCBpcyB3cmFwcGVkIGluIGFuIGBpZiBDRkc4MDIxMWAgYmxvY2suIFRoZXJlZm9yZSwgdGhlIGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBjb25zaWRlciBhcmUgYENGRzgwMjExYCBhbmQgYENGRzgwMjExX1dFWFRgLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZS4KCk15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCBhbmQgYGNmZzgwMjExX3ZhbGlkYXRlX2llc2AuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgaW50cm9kdWNlcyBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB3aXRoaW4gYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgLiBNeSBwcmltYXJ5IGNvbmNlcm4gbm93IGlzIHdoZXRoZXIgYGNmZzgwMjExX3ZhbGlkYXRlX2llc2AgaXMgKm9ubHkqIGNhbGxlZCBmcm9tIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCBvciBpZiBpdCYjMzk7cyB1c2VkIGVsc2V3aGVyZSBpbiB0aGUgY29kZWJhc2UuIEkgbmVlZCB0byBkZXRlcm1pbmUgdGhlIGV4dGVudCBvZiBpdHMgcmVhY2guIFRoaXMgd2lsbCBpbmZvcm0gdGhlIG92ZXJhbGwgaW1wYWN0IGFuZCBwb3RlbnRpYWwgc2lkZSBlZmZlY3RzIG9mIHRoaXMgY2hhbmdlLiBJJiMzOTtsbCBjaGVjayBpdHMgdXNhZ2VzIHRob3JvdWdobHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NmZzgwMjExX3ZhbGlkYXRlX2llcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC9jZmc4MDIxMS5oPTEwOTkwPXZvaWQgY2ZnODAyMTFfaW5jdW1iZW50X3NpZ25hbF9ub3RpZnkoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTEwOTk0LVxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDoxMDk5NTpib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbik7XG5pbmNsdWRlL25ldC9jZmc4MDIxMS5oLTEwOTk2LSNlbmRpZiAvKiBfX05FVF9DRkc4MDIxMV9IICovXG4tLVxubmV0L3dpcmVsZXNzL3V0aWwuYz0zMDg1PUVYUE9SVF9TWU1CT0woY2ZnODAyMTFfd2Rldl9jaGFubmVsX2FsbG93ZWQpO1xubmV0L3dpcmVsZXNzL3V0aWwuYy0zMDg2LVxubmV0L3dpcmVsZXNzL3V0aWwuYzozMDg3OmJvb2wgY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGNvbnN0IHU4ICppZXMsIHNpemVfdCBpZXNfbGVuKVxubmV0L3dpcmVsZXNzL3V0aWwuYy0zMDg4LXtcbi0tXG5uZXQvd2lyZWxlc3MvdXRpbC5jLTMxMDAtfVxubmV0L3dpcmVsZXNzL3V0aWwuYzozMTAxOkVYUE9SVF9TWU1CT0woY2ZnODAyMTFfdmFsaWRhdGVfaWVzKTtcbi0tXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYz0yOTg9aW50IGNmZzgwMjExX3dleHRfc2l3Z2VuaWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYy0zMjEtXHRpZiAoaWVfbGVuKSB7XG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYzozMjI6XHRcdGlmICghY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGV4dHJhLCBpZV9sZW4pKVxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMzIzLVx0XHRcdHJldHVybiAtRUlOVkFMO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAwMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzAwCgkJCQkJCQlvdXRwdXQ6IDE2OQoJCQkJCQkJdGhvdWdodHM6IDM0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogSUVzIGFuZCBXRVhUIGlvY3RscyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIG15IGF0dGVudGlvbiBpcyBkcmF3biB0byBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgYW5kIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgLiBUaGVzZSBhcmUgdGhlIGtleSBzeW1ib2xzIGhlcmUuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgLCBhIHZhbGlkYXRpb24gZnVuY3Rpb24gc3BlY2lmaWNhbGx5IGZvciBJbmZvcm1hdGlvbiBFbGVtZW50cywgYW5kIHRoZW4gKnVzZXMqIGl0IHdpdGhpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAuIFRoYXQmIzM5O3MgaW1wb3J0YW50LiBUaGlzIGlzIGFsbCBmdW5jdGlvbmFsIGxvZ2ljLCByZWFjaGFibGUgdGhyb3VnaCB0aGUgV2lyZWxlc3MgRXh0ZW5zaW9uIChXRVhUKSBpb2N0bHMsIHNwZWNpZmljYWxseSwgSSBiZWxpZXZlLCBgU0lPQ1NJV0dFTklFYC4KClJpZ2h0LCB0aW1lIHRvIGNvbnNpZGVyIHRoZSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cy4gV2UgbmVlZCBgQ0ZHODAyMTFgIG9idmlvdXNseSwgYW5kIGBDRkc4MDIxMV9XRVhUYC4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoYXQgYENGRzgwMjExX1dFWFRgIGlzIHN1ZmZpY2llbnQuIFllcywgdGhhdCBzZWxlY3RzIGBXRVhUX0NPUkVgLCBzbyB3ZSYjMzk7cmUgZ29vZCB0aGVyZS4gQXJlIHRoZXJlIGFueSBvdGhlciBwb3RlbnRpYWxseSB1c2VmdWwgY29uZmlndXJhdGlvbnM/IEZvciAqYWN0dWFsKiB3aXJlbGVzcyBkZXZpY2UgaW50ZXJhY3Rpb24sIGBNQUM4MDIxMV9IV1NJTWAgY291bGQgYmUgaGFuZHkgdG8gc2ltdWxhdGUgaW9jdGwgYmVoYXZpb3IsIGJ1dCBgQ0ZHODAyMTFfV0VYVGAgaXMgdGhlIGNyaXRpY2FsIG9uZSBmb3IgKnRoaXMqIGNvZGUuCgpMZXQgbWUgc29saWRpZnkgbXkgcmF0aW9uYWxlLiBUaGUgcGF0Y2ggYWRkcyBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyBhbmQgdXRpbGl6ZXMgaXQgd2l0aGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgdXNlciBhcHBsaWNhdGlvbiBpcyBwcm92aWRpbmcgaW5wdXQgdG8gdGhlIHdpcmVsZXNzIGRldmljZSB0aHJvdWdoIGEgV0VYVCBpb2N0bCBsaWtlIGBTSU9DU0lXR0VOSUVgLiBUaGlzIGRpcmVjdCB1c2VyIGNvbnRyb2wgb3ZlciB0aGUgZGF0YSBiZWluZyBmZWQgaW50byB0aGUgc3lzdGVtIG1lYW5zIGl0JiMzOTtzIGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBXZSBoYXZlIGFuIGVudHJ5IHBvaW50IHRoYXQgdGFrZXMgZGF0YSBmcm9tIGEgdXNlciwgdmFsaWRhdGVzIGl0LCBhbmQgdGhlbiB1c2VzIHRoYXQgdG8gY29uZmlndXJlIHRoZSB3aXJlbGVzcyBkZXZpY2UuIFRoaXMgaXMgYSBjbGFzc2ljIGNhc2UgZm9yIGZ1enppbmcuCgpUaW1lIHRvIGxvZyB0aGlzLiBJJiMzOTtsbCBzZXQgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDAwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMV9XRVhUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfd2V4dF9zaXdnZW5pZSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV92YWxpZGF0ZV9pZXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBhbmQgdXNlcyBpdCBpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgdG8gdmFsaWRhdGUgaW5wdXQgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgU0lPQ1NJV0dFTklFYCB3aXJlbGVzcyBleHRlbnNpb24gaW9jdGwuIFRoaXMgaXMgcmVhY2hhYmxlIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCBoYW5kbGVzIHVzZXItY29udHJvbGxlZCBkYXRhLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtDRkc4MDIxMV9XRVhUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2ZnODAyMTFfd2V4dF9zaXdnZW5pZSYjMzQ7LAogICAgJiMzNDtjZmc4MDIxMV92YWxpZGF0ZV9pZXMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBhbmQgdXNlcyBpdCBpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgdG8gdmFsaWRhdGUgaW5wdXQgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgU0lPQ1NJV0dFTklFYCB3aXJlbGVzcyBleHRlbnNpb24gaW9jdGwuIFRoaXMgaXMgcmVhY2hhYmxlIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCBoYW5kbGVzIHVzZXItY29udHJvbGxlZCBkYXRhLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTFUMDA6MzQ6MTIuNTY5OTU3OTk4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzgxMjk4OTIyMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIkNGRzgwMjExX1dFWFRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV93ZXh0X3Npd2dlbmllXCIsXG4gICAgXCJjZmc4MDIxMV92YWxpZGF0ZV9pZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHRvIHZhbGlkYXRlIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGFuZCB1c2VzIGl0IGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCB0byB2YWxpZGF0ZSBpbnB1dCBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBTSU9DU0lXR0VOSUVgIHdpcmVsZXNzIGV4dGVuc2lvbiBpb2N0bC4gVGhpcyBpcyByZWFjaGFibGUgZnVuY3Rpb25hbCBsb2dpYyB0aGF0IGhhbmRsZXMgdXNlci1jb250cm9sbGVkIGRhdGEsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjEyLjU2OTk2ODIzOFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzI2NzIxOTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjJhYWYxMjZiZWExNmU2ZWRhYWI5MWIxYTJlM2VhMTVhMDZlZWM2OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAxMSAwMDozNDoxMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oIGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaFxcbmluZGV4IDgxODhhZDIwMGRlNTM5Li4zMmNlZjkyNmY4YTQwZCAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oXFxuKysrIGIvaW5jbHVkZS9uZXQvY2ZnODAyMTEuaFxcbkBAIC0xMDk5Miw0ICsxMDk5Miw1IEBAIHZvaWQgY2ZnODAyMTFfaW5jdW1iZW50X3NpZ25hbF9ub3RpZnkoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4gXFx0XFx0XFx0XFx0ICAgICAgdTMyIHNpZ25hbF9pbnRlcmZlcmVuY2VfYml0bWFwLFxcbiBcXHRcXHRcXHRcXHQgICAgICBnZnBfdCBnZnApO1xcbiBcXG4rYm9vbCBjZmc4MDIxMV92YWxpZGF0ZV9pZXMoY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pO1xcbiAjZW5kaWYgLyogX19ORVRfQ0ZHODAyMTFfSCAqL1xcbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvdXRpbC5jIGIvbmV0L3dpcmVsZXNzL3V0aWwuY1xcbmluZGV4IDI0NTI3YmYzMjFiMmExLi5hNjg1MDIwYzhlZmMzOCAxMDA2NDRcXG4tLS0gYS9uZXQvd2lyZWxlc3MvdXRpbC5jXFxuKysrIGIvbmV0L3dpcmVsZXNzL3V0aWwuY1xcbkBAIC0zMDgzLDMgKzMwODMsMTkgQEAgYm9vbCBjZmc4MDIxMV93ZGV2X2NoYW5uZWxfYWxsb3dlZChzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxcbiBcXHRyZXR1cm4gZmFsc2U7XFxuIH1cXG4gRVhQT1JUX1NZTUJPTChjZmc4MDIxMV93ZGV2X2NoYW5uZWxfYWxsb3dlZCk7XFxuK1xcbitib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbilcXG4re1xcbitcXHRzaXplX3QgcG9zID0gMDtcXG4rXFxuK1xcdHdoaWxlIChwb3MgXFx1MDAzYyBpZXNfbGVuKSB7XFxuK1xcdFxcdGlmIChwb3MgKyAyIFxcdTAwM2UgaWVzX2xlbilcXG4rXFx0XFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXHRcXHRpZiAocG9zICsgMiArIGllc1twb3MgKyAxXSBcXHUwMDNlIGllc19sZW4pXFxuK1xcdFxcdFxcdHJldHVybiBmYWxzZTtcXG4rXFx0XFx0cG9zICs9IDIgKyBpZXNbcG9zICsgMV07XFxuK1xcdH1cXG4rXFxuK1xcdHJldHVybiB0cnVlO1xcbit9XFxuK0VYUE9SVF9TWU1CT0woY2ZnODAyMTFfdmFsaWRhdGVfaWVzKTtcXG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL3dleHQtc21lLmMgYi9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY1xcbmluZGV4IDU3M2I2YjE1YTQ0NmVjLi4zZTliMDcxZjZkNjYxYyAxMDA2NDRcXG4tLS0gYS9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY1xcbisrKyBiL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jXFxuQEAgLTMxOSw2ICszMTksOCBAQCBpbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHRyZXR1cm4gMDtcXG4gXFxuIFxcdGlmIChpZV9sZW4pIHtcXG4rXFx0XFx0aWYgKCFjZmc4MDIxMV92YWxpZGF0ZV9pZXMoZXh0cmEsIGllX2xlbikpXFxuK1xcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHRcXHRpZSA9IGttZW1kdXAoZXh0cmEsIGllX2xlbiwgR0ZQX0tFUk5FTCk7XFxuIFxcdFxcdGlmICghaWUpXFxuIFxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDoxMy4yOTc0NDQ0OTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NDAyMzkxODM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJDRkc4MDIxMV9XRVhUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfd2V4dF9zaXdnZW5pZVwiLFxuICAgIFwiY2ZnODAyMTFfdmFsaWRhdGVfaWVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSBhbmQgdXNlcyBpdCBpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAgdG8gdmFsaWRhdGUgaW5wdXQgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgU0lPQ1NJV0dFTklFYCB3aXJlbGVzcyBleHRlbnNpb24gaW9jdGwuIFRoaXMgaXMgcmVhY2hhYmxlIGZ1bmN0aW9uYWwgbG9naWMgdGhhdCBoYW5kbGVzIHVzZXItY29udHJvbGxlZCBkYXRhLCBzbyBpdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDIyYWFmMTI2YmVhMTZlNmVkYWFiOTFiMWEyZTNlYTE1YTA2ZWVjNjhcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAxMSAwMDozNDoxMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2NmZzgwMjExLmggYi9pbmNsdWRlL25ldC9jZmc4MDIxMS5oXG5pbmRleCA4MTg4YWQyMDBkZTUzOS4uMzJjZWY5MjZmOGE0MGQgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oXG4rKysgYi9pbmNsdWRlL25ldC9jZmc4MDIxMS5oXG5AQCAtMTA5OTIsNCArMTA5OTIsNSBAQCB2b2lkIGNmZzgwMjExX2luY3VtYmVudF9zaWduYWxfbm90aWZ5KHN0cnVjdCB3aXBoeSAqd2lwaHksXG4gXHRcdFx0XHQgICAgICB1MzIgc2lnbmFsX2ludGVyZmVyZW5jZV9iaXRtYXAsXG4gXHRcdFx0XHQgICAgICBnZnBfdCBnZnApO1xuIFxuK2Jvb2wgY2ZnODAyMTFfdmFsaWRhdGVfaWVzKGNvbnN0IHU4ICppZXMsIHNpemVfdCBpZXNfbGVuKTtcbiAjZW5kaWYgLyogX19ORVRfQ0ZHODAyMTFfSCAqL1xuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy91dGlsLmMgYi9uZXQvd2lyZWxlc3MvdXRpbC5jXG5pbmRleCAyNDUyN2JmMzIxYjJhMS4uYTY4NTAyMGM4ZWZjMzggMTAwNjQ0XG4tLS0gYS9uZXQvd2lyZWxlc3MvdXRpbC5jXG4rKysgYi9uZXQvd2lyZWxlc3MvdXRpbC5jXG5AQCAtMzA4MywzICszMDgzLDE5IEBAIGJvb2wgY2ZnODAyMTFfd2Rldl9jaGFubmVsX2FsbG93ZWQoc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcbiBcdHJldHVybiBmYWxzZTtcbiB9XG4gRVhQT1JUX1NZTUJPTChjZmc4MDIxMV93ZGV2X2NoYW5uZWxfYWxsb3dlZCk7XG4rXG4rYm9vbCBjZmc4MDIxMV92YWxpZGF0ZV9pZXMoY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pXG4re1xuK1x0c2l6ZV90IHBvcyA9IDA7XG4rXG4rXHR3aGlsZSAocG9zIFx1MDAzYyBpZXNfbGVuKSB7XG4rXHRcdGlmIChwb3MgKyAyIFx1MDAzZSBpZXNfbGVuKVxuK1x0XHRcdHJldHVybiBmYWxzZTtcbitcdFx0aWYgKHBvcyArIDIgKyBpZXNbcG9zICsgMV0gXHUwMDNlIGllc19sZW4pXG4rXHRcdFx0cmV0dXJuIGZhbHNlO1xuK1x0XHRwb3MgKz0gMiArIGllc1twb3MgKyAxXTtcbitcdH1cbitcbitcdHJldHVybiB0cnVlO1xuK31cbitFWFBPUlRfU1lNQk9MKGNmZzgwMjExX3ZhbGlkYXRlX2llcyk7XG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL3dleHQtc21lLmMgYi9uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuY1xuaW5kZXggNTczYjZiMTVhNDQ2ZWMuLjNlOWIwNzFmNmQ2NjFjIDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL3dleHQtc21lLmNcbisrKyBiL25ldC93aXJlbGVzcy93ZXh0LXNtZS5jXG5AQCAtMzE5LDYgKzMxOSw4IEBAIGludCBjZmc4MDIxMV93ZXh0X3Npd2dlbmllKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdHJldHVybiAwO1xuIFxuIFx0aWYgKGllX2xlbikge1xuK1x0XHRpZiAoIWNmZzgwMjExX3ZhbGlkYXRlX2llcyhleHRyYSwgaWVfbGVuKSlcbitcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdFx0aWUgPSBrbWVtZHVwKGV4dHJhLCBpZV9sZW4sIEdGUF9LRVJORUwpO1xuIFx0XHRpZiAoIWllKVxuIFx0XHRcdHJldHVybiAtRU5PTUVNO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDA6MzQ6MTMuMjk3NDQ1ODExWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODkzMDc3MDI2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBOZXcgSW5mb3JtYXRpb24gRWxlbWVudCBWYWxpZGF0aW9uIExvZ2ljKipcblxuT2theSwgc28gd2UndmUgZ290IHRoaXMgbmV3IHBhdGNoIGludHJvZHVjaW5nIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgLCBhbmQgaXQncyBiZWluZyB1c2VkIGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhpcyBzZWVtcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIOKAkyBmdW5jdGlvbmFsIGxvZ2ljLCBzcGVjaWZpY2FsbHkgdmFsaWRhdGluZyBJbmZvcm1hdGlvbiBFbGVtZW50cyAoSUVzKSB3aXRoaW4gdGhlIHdpcmVsZXNzIGV4dGVuc2lvbnMgZnJhbWV3b3JrLiBJdCdzIHRvdWNoaW5nIGBuZXQvd2lyZWxlc3MvdXRpbC5jYCBhbmQgYG5ldC93aXJlbGVzcy93ZXh0LXNtZS5jYCwgc28gd2UncmUgbG9va2luZyBhdCBjb3JlIHdpcmVsZXNzIGludGVyYWN0aW9uIGhlcmUsIHNwZWNpZmljYWxseSB0aHJvdWdoIFdFWFQgaW9jdGxzLlxuXG5HaXZlbiB0aGUgbmF0dXJlIG9mIElFIGhhbmRsaW5nLCBhbmQgaXRzIGNyaXRpY2FsIHJvbGUgaW4gd2lyZWxlc3MgY29tbXVuaWNhdGlvbiwgdGhpcyBpcyBwcmltZSBmdXp6aW5nIHRlcnJpdG9yeS4gV2UncmUgZGVhbGluZyB3aXRoIGV4dGVybmFsIGRhdGEgYmVpbmcgcGFyc2VkIGFuZCB1c2VkIHRvIGNvbmZpZ3VyZSB3aXJlbGVzcyBiZWhhdmlvciwgYW5kIHRoYXQgbWFrZXMgaXQgYSBqdWljeSB0YXJnZXQuIFNvLCBzdGVwIG9uZSwgbGV0J3MgbmFpbCBkb3duIHRoZSBleGFjdCBjb25maWd1cmF0aW9uLiBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgYHdleHQtc21lLmNgIGdldHMgYnVpbHQuIEknbGwgc3RhcnQgd2l0aCBhIHF1aWNrIGBncmVwYCBmb3IgYHdleHQtc21lLm9gIGluIGBuZXQvd2lyZWxlc3MvTWFrZWZpbGVgLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBidWlsZCBlbnZpcm9ubWVudCBhbmQgdGhlIHBvc3NpYmxlIGRlcGVuZGVuY2llcy4gVGltZSB0byBzdGFydCB0aGUgZnV6emluZyBwcm9jZXNzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzQ5LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDA6MzQ6MjIuMjI4MjE5MTc2WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1OTgwNDYzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ3ZXh0LXNtZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvd2lyZWxlc3MvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3dpcmVsZXNzL01ha2VmaWxlPTEzPWNmZzgwMjExLSQoQ09ORklHX0NGRzgwMjExX0RFQlVHRlMpICs9IGRlYnVnZnMub1xcbm5ldC93aXJlbGVzcy9NYWtlZmlsZToxNDpjZmc4MDIxMS0kKENPTkZJR19DRkc4MDIxMV9XRVhUKSArPSB3ZXh0LWNvbXBhdC5vIHdleHQtc21lLm9cXG5uZXQvd2lyZWxlc3MvTWFrZWZpbGUtMTUtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjIyLjY4ODAyOTg1NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyOTE0MzQxODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBXRVhUIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gaGVyZSBpcyBgQ0ZHODAyMTFfV0VYVGAuIFJpZ2h0LCBtYWtlcyBzZW5zZSwgdGhhdCdzIHdoZXJlIHdlJ3JlIHN0YXJ0aW5nLiBOb3csIGxldCdzIGp1c3QgbWFrZSBzdXJlIHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzIHdlJ3JlIG92ZXJsb29raW5nLiBPYnZpb3VzbHksIGBDRkc4MDIxMWAgaXRzZWxmIGlzIGEgcHJlcmVxdWlzaXRlLCBzbyB0aGF0IG9uZSdzIGEgZ2l2ZW4uIE5vdywgYW4gaW50ZXJlc3RpbmcgYW5nbGUgaXMgYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgLiBUaGF0IGxvb2tzIGxpa2UgYW4gaW9jdGwgaGFuZGxlciBmb3IgdGhlIFdFWFQgaW50ZXJmYWNlLCBzb21ldGhpbmcgSSdtIGludGltYXRlbHkgZmFtaWxpYXIgd2l0aC4gVGltZSB0byB0cmFjZSBpdHMgdXNhZ2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZXJlIGFuZCBob3cgdGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGVtcGxveWVkIHdpdGhpbiB0aGUga2VybmVsJ3Mgd2lyZWxlc3Mgc3Vic3lzdGVtLiBMZXQncyBzZWUgaG93IGl0J3MgYmVpbmcgYWNjZXNzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4ODQsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDoyNS45Nzk0NjU2OTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUzMTI0MjAzOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjZmc4MDIxMV93ZXh0X3Npd2dlbmllXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuYz0xNDg0PXN0YXRpYyBjb25zdCBpd19oYW5kbGVyIGNmZzgwMjExX2hhbmRsZXJzW10gPSB7XFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuYy0xNTExLVxcdElXX0hBTkRMRVIoU0lPQ0dJV1BPV0VSLFxcdGNmZzgwMjExX3dleHRfZ2l3cG93ZXIpLFxcbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5jOjE1MTI6XFx0SVdfSEFORExFUihTSU9DU0lXR0VOSUUsXFx0Y2ZnODAyMTFfd2V4dF9zaXdnZW5pZSksXFxubmV0L3dpcmVsZXNzL3dleHQtY29tcGF0LmMtMTUxMy1cXHRJV19IQU5ETEVSKFNJT0NTSVdBVVRILFxcdFxcdGNmZzgwMjExX3dleHRfc2l3YXV0aCksXFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuaD00Nj1pbnQgY2ZnODAyMTFfd2V4dF9zaXdtbG1lKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuaC00OC1cXHRcXHRcXHQgIHVuaW9uIGl3cmVxX2RhdGEgKndycXUsIGNoYXIgKmV4dHJhKTtcXG5uZXQvd2lyZWxlc3Mvd2V4dC1jb21wYXQuaDo0OTppbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbm5ldC93aXJlbGVzcy93ZXh0LWNvbXBhdC5oLTUwLVxcdFxcdFxcdCAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sXFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYz0yNzM9aW50IGNmZzgwMjExX21nZF93ZXh0X2dpd2FwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYy0yOTctXFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmM6Mjk4OmludCBjZmc4MDIxMV93ZXh0X3Npd2dlbmllKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMjk5LVxcdFxcdFxcdCAgIHN0cnVjdCBpd19yZXF1ZXN0X2luZm8gKmluZm8sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjI4LjUxMDcxNTcwMVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNzY0Njc0NDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBXRVhUIENvbmZpZ3VyYXRpb24gYW5kIEl0cyBEZXBlbmRlbmNpZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCBpdCdzIGNsZWFyIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1c2VkIHdpdGhpbiBgY2ZnODAyMTFfaGFuZGxlcnNgIGZvciB0aGUgYFNJT0NTSVdHRU5JRWAgb3BlcmF0aW9uLiBUaGlzIHN0cm9uZ2x5IHN1Z2dlc3RzIGl0J3MgYmVpbmcgYWNjZXNzZWQgdGhyb3VnaCBXRVhUIGlvY3Rscy4gTGV0J3MgZGlnIGRlZXBlciB0byBiZSBjZXJ0YWluLlxuXG5NeSBuZXh0IHRob3VnaHQgaXMgdG8gaXNvbGF0ZSBleGFjdGx5ICpob3cqIGl0J3MgY29uZmlndXJlZC4gSXMgYENGRzgwMjExX1dFWFRgIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaGVyZSwgb3IgYXJlIHRoZXJlIG90aGVycyBpbiB0aGUgbWl4PyBIbW0sIGl0IGxvb2tzIGxpa2UgaXQncyBwcmltYXJpbHkgZGVwZW5kZW50IG9uIGBDRkc4MDIxMV9XRVhUYCBhbmQgYWxzbyBgQ0ZHODAyMTFgIGRpcmVjdGx5LiBJIHNlZSB0aGVtIGluIHRoZSBLY29uZmlnIGFzIHRoZSBtYWluIG9wdGlvbnMgcmVsYXRlZCB0byB0aGlzIGZ1bmN0aW9uYWxpdHkuXG5cbk5vdyB0aGF0IEkndmUgZ290dGVuIHRoaXMgZmFyLCBsZXQncyBzdGVwIGJhY2sgYW5kIGNvbnNpZGVyIGRlcGVuZGVuY2llcy4gV2FpdCBhIG1pbnV0ZS4uLiBgQ0ZHODAyMTFfV0VYVGAgKml0c2VsZiogZGVwZW5kcyBvbiBib3RoIGBDRkc4MDIxMWAgKmFuZCogYFdFWFRfQ09SRWAuIEkgc2hvdWxkIGNoZWNrIHRoZSBgbmV0L3dpcmVsZXNzL0tjb25maWdgIGZpbGUgdG8gY29uZmlybSB0aGlzIGVudGlyZSBwaWN0dXJlIGFuZCBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjI5LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjMyLjc4NzE4NjE5NloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDg2OTY3OTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIENGRzgwMjExX1dFWFRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3dpcmVsZXNzL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3dpcmVsZXNzL0tjb25maWc9MTc3PWNvbmZpZyBDRkc4MDIxMV9DUkRBX1NVUFBPUlRcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxODc6Y29uZmlnIENGRzgwMjExX1dFWFRcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xODgtXFx0Ym9vbCBcXFwiY2ZnODAyMTEgd2lyZWxlc3MgZXh0ZW5zaW9ucyBjb21wYXRpYmlsaXR5XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDozMi44OTU4ODcxODdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTExMjgyNTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhlIHJlcXVlc3QsIHRoaW5raW5nIGFzIGFuIGV4cGVydCBpbiB0aGUgZmllbGQ6XG5cbioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmNpZXMgb2YgQ0ZHODAyMTFfV0VYVCoqXG5cbk9rYXksIHNvIHRoZSBwcm9tcHQgaXMgdG8gZXhwbG9yZSB0aGUgZGVwZW5kZW5jaWVzIHJlbGF0ZWQgdG8gYENGRzgwMjExX1dFWFRgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGlzIHNwZWNpZmljIG1vZHVsZSBvciBjb25maWd1cmF0aW9uIG9wdGlvbi4gV2h5IGFyZSB3ZSBpbnRlcmVzdGVkIGluIGl0cyBkZXBlbmRlbmNpZXM/IElzIHRoZXJlIGEgY29tcGlsYXRpb24gaXNzdWU/IFRyeWluZyB0byB1bmRlcnN0YW5kIHRoZSBidWlsZCBwcm9jZXNzPyBBcmUgd2UgYWltaW5nIGZvciBhIG1pbmltYWwgY29uZmlndXJhdGlvbiwgb3IgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgd2hhdCBlbmFibGluZyB0aGlzIG9wdGlvbiBlbnRhaWxzIGZvciBvdmVyYWxsIHN5c3RlbSBjYXBhYmlsaXRpZXM/IE15IG1pbmQgaXMgc3RhcnRpbmcgdG8gcmFjZSB0aHJvdWdoIHRoZSB2YXJpb3VzIHNjZW5hcmlvcy5cblxuYENGRzgwMjExX1dFWFRgLi4uIHJpZ2h0LCB0aGF0J3MgdGhlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGxheWVyIGZvciB3aXJlbGVzcyBleHRlbnNpb25zIHdpdGhpbiB0aGUgY2ZnODAyMTEgZnJhbWV3b3JrLiBTbywgbXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgaXQgcHJvdmlkZXMgYSBicmlkZ2Ugb3IgdHJhbnNsYXRpb24gZm9yIG9sZGVyIHdpcmVsZXNzIHRvb2xzIGFuZCBhcHBsaWNhdGlvbnMgdGhhdCByZWx5IG9uIHRoZSBkZXByZWNhdGVkIGB3aXJlbGVzcyBleHRlbnNpb25zYCBBUEkgdG8gd29yayB3aXRoIHRoZSBuZXdlciBjZmc4MDIxMSBkcml2ZXIgc3RhY2suIFRoYXQgZ2l2ZXMgbWUgYSBkaXJlY3Rpb24gZm9yIGFuYWx5c2lzLlxuXG5JJ2QgZXhwZWN0IHRoZSBpbW1lZGlhdGUgZGVwZW5kZW5jaWVzIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIGNvcmUgYGNmZzgwMjExYCBpbmZyYXN0cnVjdHVyZSBpdHNlbGYsIGFuZCBsaWtlbHkgc29tZXRoaW5nIHJlbGF0ZWQgdG8gYHdpcmVsZXNzIGV4dGVuc2lvbnNgIGFuZCB0aGVpciBsZWdhY3kgY29tcG9uZW50cy4gSSdkIGJlIGxvb2tpbmcgZm9yIHRoZSBpbmNsdXNpb24gb2Ygc3BlY2lmaWMgaGVhZGVycywgdGhlIGRlZmluaXRpb24gb2YgY2VydGFpbiBzeW1ib2xzIG9yIHN0cnVjdHVyZXMsIGFuZCBtYXliZSBldmVuIHNvbWUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmFzZWQgb24gdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgb2xkZXIgQVBJLlxuXG5Fc3NlbnRpYWxseSwgSSBuZWVkIHRvIHRyYWNlIHRoZSBjb25uZWN0aW9ucyBhbmQgZGV0ZXJtaW5lIHdoYXQgb3RoZXIgY29uZmlndXJhdGlvbnMgb3Iga2VybmVsIGZlYXR1cmVzIGFyZSBsaW5rZWQuIEkgYW0gZ29pbmcgdG8gbmVlZCB0byB0cmFjayB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gZmlsZXMsIG9yIHRoZSByZWxldmFudCBzb3VyY2UgY29kZSwgdG8gYmVnaW4gdG8gdW5kZXJzdGFuZCB0aGUgbGlua2FnZXMuIEkgd291bGQgYXNzdW1lIHRoYXQgdGhpcyBtb2R1bGUgYnJpZGdlcyB0byB0aGUgd2lyZWxlc3Mgc3RhY2sgYW5kIHRoZSB2YXJpb3VzIHN1cHBsaWNhbnQgaW1wbGVtZW50YXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTY0LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMDA6MzQ6MzYuODA3MTcyNzY1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTIwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxODcsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxODc6XFx0Y29uZmlnIENGRzgwMjExX1dFWFRcXG4gMTg4OlxcdFxcdGJvb2wgXFxcImNmZzgwMjExIHdpcmVsZXNzIGV4dGVuc2lvbnMgY29tcGF0aWJpbGl0eVxcXCJcXG4gMTg5OlxcdFxcdHNlbGVjdCBXRVhUX0NPUkVcXG4gMTkwOlxcdFxcdGhlbHBcXG4gMTkxOlxcdFxcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIGlmIHlvdSBuZWVkIG9sZCB1c2Vyc3BhY2UgZm9yIHdpcmVsZXNzXFxuIDE5MjpcXHRcXHQgIGV4dGVuc2lvbnMgd2l0aCBjZmc4MDIxMS1iYXNlZCBkcml2ZXJzLlxcbiAxOTM6XFx0XFxuIDE5NDpcXHRjb25maWcgQ0ZHODAyMTFfS1VOSVRfVEVTVFxcbiAxOTU6XFx0XFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3RzIGZvciBjZmc4MDIxMVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbiAxOTY6XFx0XFx0ZGVwZW5kcyBvbiBLVU5JVFxcbiAxOTc6XFx0XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbiAxOTg6XFx0XFx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcXG4gMTk5OlxcdFxcdGhlbHBcXG4gMjAwOlxcdFxcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIHRvIHRlc3QgY2ZnODAyMTEgZnVuY3Rpb25zIHdpdGgga3VuaXQuXFxuIDIwMTpcXHRcXG4gMjAyOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gMjAzOlxcdFxcbiAyMDQ6XFx0ZW5kaWYgIyBDRkc4MDIxMVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDozNi44MDcyOTcxMTZaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk0NzIyNDE4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIERlcGVuZGVuY2llcyBhbmQgU2NvcGUgb2YgYSBDb2RlIENoYW5nZSoqXG5cbk9rYXksIHNvIHRoaXMgY2hhbmdlIGhpbmdlcyBvbiBgQ0ZHODAyMTFgLCBnaXZlbiB0aGF0IHRoZSByZWxldmFudCBjb2RlIHNuaXBwZXQgaXMgd3JhcHBlZCBpbiBhbiBgaWYgQ0ZHODAyMTFgIGJsb2NrLiBUaGVyZWZvcmUsIHRoZSBjb25maWd1cmF0aW9ucyBJIG5lZWQgdG8gY29uc2lkZXIgYXJlIGBDRkc4MDIxMWAgYW5kIGBDRkc4MDIxMV9XRVhUYC4gVGhhdCdzIHRoZSBiYXNlbGluZS5cblxuTXkgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIHRoZSBmdW5jdGlvbnMgYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgIGFuZCBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYC4gVGhlIHBhdGNoIHNwZWNpZmljYWxseSBpbnRyb2R1Y2VzIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHdpdGhpbiBgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZWAuIE15IHByaW1hcnkgY29uY2VybiBub3cgaXMgd2hldGhlciBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCBpcyAqb25seSogY2FsbGVkIGZyb20gYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgIG9yIGlmIGl0J3MgdXNlZCBlbHNld2hlcmUgaW4gdGhlIGNvZGViYXNlLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIHRoZSBleHRlbnQgb2YgaXRzIHJlYWNoLiBUaGlzIHdpbGwgaW5mb3JtIHRoZSBvdmVyYWxsIGltcGFjdCBhbmQgcG90ZW50aWFsIHNpZGUgZWZmZWN0cyBvZiB0aGlzIGNoYW5nZS4gSSdsbCBjaGVjayBpdHMgdXNhZ2VzIHRob3JvdWdobHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NTUsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDo0MC43NTQ1MjYyNThaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMxNTUxNDc2MTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2ZnODAyMTFfdmFsaWRhdGVfaWVzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL25ldC9jZmc4MDIxMS5oPTEwOTkwPXZvaWQgY2ZnODAyMTFfaW5jdW1iZW50X3NpZ25hbF9ub3RpZnkoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbmluY2x1ZGUvbmV0L2NmZzgwMjExLmgtMTA5OTQtXFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaDoxMDk5NTpib29sIGNmZzgwMjExX3ZhbGlkYXRlX2llcyhjb25zdCB1OCAqaWVzLCBzaXplX3QgaWVzX2xlbik7XFxuaW5jbHVkZS9uZXQvY2ZnODAyMTEuaC0xMDk5Ni0jZW5kaWYgLyogX19ORVRfQ0ZHODAyMTFfSCAqL1xcbi0tXFxubmV0L3dpcmVsZXNzL3V0aWwuYz0zMDg1PUVYUE9SVF9TWU1CT0woY2ZnODAyMTFfd2Rldl9jaGFubmVsX2FsbG93ZWQpO1xcbm5ldC93aXJlbGVzcy91dGlsLmMtMzA4Ni1cXG5uZXQvd2lyZWxlc3MvdXRpbC5jOjMwODc6Ym9vbCBjZmc4MDIxMV92YWxpZGF0ZV9pZXMoY29uc3QgdTggKmllcywgc2l6ZV90IGllc19sZW4pXFxubmV0L3dpcmVsZXNzL3V0aWwuYy0zMDg4LXtcXG4tLVxcbm5ldC93aXJlbGVzcy91dGlsLmMtMzEwMC19XFxubmV0L3dpcmVsZXNzL3V0aWwuYzozMTAxOkVYUE9SVF9TWU1CT0woY2ZnODAyMTFfdmFsaWRhdGVfaWVzKTtcXG4tLVxcbm5ldC93aXJlbGVzcy93ZXh0LXNtZS5jPTI5OD1pbnQgY2ZnODAyMTFfd2V4dF9zaXdnZW5pZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMzIxLVxcdGlmIChpZV9sZW4pIHtcXG5uZXQvd2lyZWxlc3Mvd2V4dC1zbWUuYzozMjI6XFx0XFx0aWYgKCFjZmc4MDIxMV92YWxpZGF0ZV9pZXMoZXh0cmEsIGllX2xlbikpXFxubmV0L3dpcmVsZXNzL3dleHQtc21lLmMtMzIzLVxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQwMDozNDo0My45MDk2ODA1ODhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjYyMTE1OTUzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogSUVzIGFuZCBXRVhUIGlvY3RscyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBteSBhdHRlbnRpb24gaXMgZHJhd24gdG8gYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgIGFuZCBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYC4gVGhlc2UgYXJlIHRoZSBrZXkgc3ltYm9scyBoZXJlLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCwgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHNwZWNpZmljYWxseSBmb3IgSW5mb3JtYXRpb24gRWxlbWVudHMsIGFuZCB0aGVuICp1c2VzKiBpdCB3aXRoaW4gYGNmZzgwMjExX3dleHRfc2l3Z2VuaWVgLiBUaGF0J3MgaW1wb3J0YW50LiBUaGlzIGlzIGFsbCBmdW5jdGlvbmFsIGxvZ2ljLCByZWFjaGFibGUgdGhyb3VnaCB0aGUgV2lyZWxlc3MgRXh0ZW5zaW9uIChXRVhUKSBpb2N0bHMsIHNwZWNpZmljYWxseSwgSSBiZWxpZXZlLCBgU0lPQ1NJV0dFTklFYC5cblxuUmlnaHQsIHRpbWUgdG8gY29uc2lkZXIgdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBXZSBuZWVkIGBDRkc4MDIxMWAgb2J2aW91c2x5LCBhbmQgYENGRzgwMjExX1dFWFRgLiBMZXQgbWUgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhhdCBgQ0ZHODAyMTFfV0VYVGAgaXMgc3VmZmljaWVudC4gWWVzLCB0aGF0IHNlbGVjdHMgYFdFWFRfQ09SRWAsIHNvIHdlJ3JlIGdvb2QgdGhlcmUuIEFyZSB0aGVyZSBhbnkgb3RoZXIgcG90ZW50aWFsbHkgdXNlZnVsIGNvbmZpZ3VyYXRpb25zPyBGb3IgKmFjdHVhbCogd2lyZWxlc3MgZGV2aWNlIGludGVyYWN0aW9uLCBgTUFDODAyMTFfSFdTSU1gIGNvdWxkIGJlIGhhbmR5IHRvIHNpbXVsYXRlIGlvY3RsIGJlaGF2aW9yLCBidXQgYENGRzgwMjExX1dFWFRgIGlzIHRoZSBjcml0aWNhbCBvbmUgZm9yICp0aGlzKiBjb2RlLlxuXG5MZXQgbWUgc29saWRpZnkgbXkgcmF0aW9uYWxlLiBUaGUgcGF0Y2ggYWRkcyBgY2ZnODAyMTFfdmFsaWRhdGVfaWVzYCB0byB2YWxpZGF0ZSBJbmZvcm1hdGlvbiBFbGVtZW50cyBhbmQgdXRpbGl6ZXMgaXQgd2l0aGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYC4gVGhpcyBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgdXNlciBhcHBsaWNhdGlvbiBpcyBwcm92aWRpbmcgaW5wdXQgdG8gdGhlIHdpcmVsZXNzIGRldmljZSB0aHJvdWdoIGEgV0VYVCBpb2N0bCBsaWtlIGBTSU9DU0lXR0VOSUVgLiBUaGlzIGRpcmVjdCB1c2VyIGNvbnRyb2wgb3ZlciB0aGUgZGF0YSBiZWluZyBmZWQgaW50byB0aGUgc3lzdGVtIG1lYW5zIGl0J3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIGhhdmUgYW4gZW50cnkgcG9pbnQgdGhhdCB0YWtlcyBkYXRhIGZyb20gYSB1c2VyLCB2YWxpZGF0ZXMgaXQsIGFuZCB0aGVuIHVzZXMgdGhhdCB0byBjb25maWd1cmUgdGhlIHdpcmVsZXNzIGRldmljZS4gVGhpcyBpcyBhIGNsYXNzaWMgY2FzZSBmb3IgZnV6emluZy5cblxuVGltZSB0byBsb2cgdGhpcy4gSSdsbCBzZXQgdGhlIHJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU3MDAsIk91dHB1dFRva2VucyI6MTY5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDAwOjM0OjUwLjUzMDg0MzM2NVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2ODk4NzU1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIkNGRzgwMjExX1dFWFRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV93ZXh0X3Npd2dlbmllXCIsXG4gICAgXCJjZmc4MDIxMV92YWxpZGF0ZV9pZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHRvIHZhbGlkYXRlIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGFuZCB1c2VzIGl0IGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCB0byB2YWxpZGF0ZSBpbnB1dCBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBTSU9DU0lXR0VOSUVgIHdpcmVsZXNzIGV4dGVuc2lvbiBpb2N0bC4gVGhpcyBpcyByZWFjaGFibGUgZnVuY3Rpb25hbCBsb2dpYyB0aGF0IGhhbmRsZXMgdXNlci1jb250cm9sbGVkIGRhdGEsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0ZHODAyMTFcIixcbiAgICBcIkNGRzgwMjExX1dFWFRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV93ZXh0X3Npd2dlbmllXCIsXG4gICAgXCJjZmc4MDIxMV92YWxpZGF0ZV9pZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBjZmc4MDIxMV92YWxpZGF0ZV9pZXNgIHRvIHZhbGlkYXRlIEluZm9ybWF0aW9uIEVsZW1lbnRzIChJRXMpIGFuZCB1c2VzIGl0IGluIGBjZmc4MDIxMV93ZXh0X3Npd2dlbmllYCB0byB2YWxpZGF0ZSBpbnB1dCBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBTSU9DU0lXR0VOSUVgIHdpcmVsZXNzIGV4dGVuc2lvbiBpb2N0bC4gVGhpcyBpcyByZWFjaGFibGUgZnVuY3Rpb25hbCBsb2dpYyB0aGF0IGhhbmRsZXMgdXNlci1jb250cm9sbGVkIGRhdGEsIHNvIGl0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[1] Phase: Succeeded StartedAt: 2026-07-11 00:35:02 +0000 UTC FinishedAt: 2026-07-11 00:35:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-11 00:35:02 +0000 UTC FinishedAt: 2026-07-11 00:35:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2] Phase: Succeeded StartedAt: 2026-07-11 00:35:02 +0000 UTC FinishedAt: 2026-07-11 05:38:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-11 00:35:02 +0000 UTC FinishedAt: 2026-07-11 05:38:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-11 00:35:02 +0000 UTC FinishedAt: 2026-07-11 00:35:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-11 00:35:02 +0000 UTC FinishedAt: 2026-07-11 00:35:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowm5shq/series-workflowm5shq-convert-artifact-1004185217/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-11 00:35:54 +0000 UTC FinishedAt: 2026-07-11 01:24:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-11 00:35:54 +0000 UTC FinishedAt: 2026-07-11 01:24:12 +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:*3632508e-ff06-4c26-a5d8-7e316be8f367,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-workflowm5shq/series-workflowm5shq-convert-artifact-1004185217/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": "0db187f3-3bb5-48ba-9668-4d31bb963263", "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-workflowm5shq/series-workflowm5shq-build-action-2989622191/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-11 00:35:54 +0000 UTC FinishedAt: 2026-07-11 01:23:50 +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:*3632508e-ff06-4c26-a5d8-7e316be8f367,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-workflowm5shq/series-workflowm5shq-convert-artifact-1004185217/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": "0db187f3-3bb5-48ba-9668-4d31bb963263", "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-workflowm5shq/series-workflowm5shq-build-action-2989622191/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-11 01:24:12 +0000 UTC FinishedAt: 2026-07-11 01:24:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-11 01:24:12 +0000 UTC FinishedAt: 2026-07-11 01:24:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-11 01:24:12 +0000 UTC FinishedAt: 2026-07-11 01:24:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-11 01:24:12 +0000 UTC FinishedAt: 2026-07-11 01:24:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowm5shq/series-workflowm5shq-convert-artifact-3809177940/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-11 01:24:33 +0000 UTC FinishedAt: 2026-07-11 01:26:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-11 01:24:33 +0000 UTC FinishedAt: 2026-07-11 01:26:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0db187f3-3bb5-48ba-9668-4d31bb963263,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-workflowm5shq/series-workflowm5shq-build-action-2989622191/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-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-11 01:26:47 +0000 UTC FinishedAt: 2026-07-11 01:26:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-11 01:26:47 +0000 UTC FinishedAt: 2026-07-11 01:26:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-11 01:26:47 +0000 UTC FinishedAt: 2026-07-11 02:33:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-11 01:26:47 +0000 UTC FinishedAt: 2026-07-11 02:33:26 +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:*3632508e-ff06-4c26-a5d8-7e316be8f367,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-workflowm5shq/series-workflowm5shq-convert-artifact-3809177940/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": "4ea41871-18bc-4c08-b5cc-82ff01058015", "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-workflowm5shq/series-workflowm5shq-build-action-3433293088/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-11 01:26:47 +0000 UTC FinishedAt: 2026-07-11 02:32:12 +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:*3632508e-ff06-4c26-a5d8-7e316be8f367,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-workflowm5shq/series-workflowm5shq-convert-artifact-3809177940/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": "4ea41871-18bc-4c08-b5cc-82ff01058015", "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-workflowm5shq/series-workflowm5shq-build-action-3433293088/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-11 02:33:26 +0000 UTC FinishedAt: 2026-07-11 02:33:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-11 02:33:26 +0000 UTC FinishedAt: 2026-07-11 02:33:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-11 02:33:26 +0000 UTC FinishedAt: 2026-07-11 02:36:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-11 02:33:26 +0000 UTC FinishedAt: 2026-07-11 02:36:20 +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:*4ea41871-18bc-4c08-b5cc-82ff01058015,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-workflowm5shq/series-workflowm5shq-build-action-3433293088/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-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-11 02:36:30 +0000 UTC FinishedAt: 2026-07-11 05:38:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-11 02:36:30 +0000 UTC FinishedAt: 2026-07-11 05:38:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"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:*0db187f3-3bb5-48ba-9668-4d31bb963263,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4ea41871-18bc-4c08-b5cc-82ff01058015,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-workflowm5shq/series-workflowm5shq-build-action-2989622191/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-workflowm5shq/series-workflowm5shq-build-action-3433293088/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-11 02:36:30 +0000 UTC FinishedAt: 2026-07-11 02:37:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-11 02:36:30 +0000 UTC FinishedAt: 2026-07-11 02:36:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"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-workflowm5shq/series-workflowm5shq-convert-artifact-733494397/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-11 02:36:30 +0000 UTC FinishedAt: 2026-07-11 02:36:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-11 02:36:30 +0000 UTC FinishedAt: 2026-07-11 02:36:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-11 02:36:30 +0000 UTC FinishedAt: 2026-07-11 02:36:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-11 02:37:02 +0000 UTC FinishedAt: 2026-07-11 05:38:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm5shq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_wext_siwgenie","cfg80211_validate_ies"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a635d6748234582ea287c5ffeae28b9b23f91c7e","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","CFG80211_WEXT"],"series_id":"501e36bb-7c9f-4cca-b3d7-c9175526caa5","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-11 02:37:02 +0000 UTC FinishedAt: 2026-07-11 05:38:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0db187f3-3bb5-48ba-9668-4d31bb963263,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4ea41871-18bc-4c08-b5cc-82ff01058015,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-workflowm5shq/series-workflowm5shq-build-action-2989622191/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-workflowm5shq/series-workflowm5shq-build-action-3433293088/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-workflowm5shq/series-workflowm5shq-convert-artifact-733494397/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,}