Name: series-workflow455h5 Phase: Succeeded StartedAt: 2026-07-28 18:31:22 +0000 UTC FinishedAt: 2026-07-28 20:56:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[0] Phase: Succeeded StartedAt: 2026-07-28 18:31:22 +0000 UTC FinishedAt: 2026-07-28 19:04:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[0].run-triage Phase: Succeeded StartedAt: 2026-07-28 18:31:22 +0000 UTC FinishedAt: 2026-07-28 19:04:51 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "2354e975932dabb06fad239f07a3b68fd1809737", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MOTORCOMM_PHY" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "2354e975932dabb06fad239f07a3b68fd1809737", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MOTORCOMM_PHY" ], "series_id": "93cccba5-9be0-461d-820b-007d780aa178" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "yt8521_probe", "yt8531_probe" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01PVE9SQ09NTV9QSFkmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt5dDg1MjFfcHJvYmUmIzM0OywKICAgICYjMzQ7eXQ4NTMxX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgbG9naWMgdG8gZ2V0IGFuZCBlbmFibGUgYSByZWZlcmVuY2UgY2xvY2sgZHVyaW5nIHRoZSBwcm9iZSBvZiBNb3RvcmNvbW0gUEhZIGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyIHByb2JlIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIE1ESU8gYnVzIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDk2N2IwYWUxNzI0YzFiYzZlNmE2OWMwODQ3YmVmMGM2OWE4NTUzOThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAxOTowMzo1OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcbmluZGV4IDcwODQ5MWJjMTk4YTcuLjMyZWI1Y2U5M2E0ZTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xuQEAgLTYsNiAmIzQzOzYsNyBAQFxuICAqIEF1dGhvcjogRnJhbmsgXHUwMDNjRnJhbmsuU2FlQG1vdG9yLWNvbW0uY29tXHUwMDNlXG4gICovXG4gXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2Nsay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2tlcm5lbC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbkBAIC0xMDQzLDYgJiM0MzsxMDQ0LDI5IEBAIHN0YXRpYyBpbnQgeXQ4NTMxX3NldF9kcyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiM0MzsvKipcbiYjNDM7ICogeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKCkgLSBnZXQgYW5kIGVuYWJsZSB0aGUgUEhZIHJlZmVyZW5jZSBjbG9ja1xuJiM0MzsgKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSBcdTAwMjZzdHJ1Y3QgcGh5X2RldmljZVxuJiM0MzsgKlxuJiM0MzsgKiBBIGNyeXN0YWwtbGVzcyBZVDg1MjEvWVQ4NTMxIHRha2VzIGl0cyAyNSBNSHogcmVmZXJlbmNlIGZyb20gdGhlIFNvQy4gV2hlblxuJiM0MzsgKiB0aGF0IHJlZmVyZW5jZSBpcyBkZXNjcmliZWQgYXMgYSBjbG9jaywgZW5hYmxlIGl0IGZvciB0aGUgbGlmZSBvZiB0aGVcbiYjNDM7ICogZGV2aWNlLiBJdCBpcyBvcHRpb25hbCwgc28gY3J5c3RhbC1jbG9ja2VkIGJvYXJkcyBhcmUgdW5hZmZlY3RlZC5cbiYjNDM7ICpcbiYjNDM7ICogcmV0dXJucyAwIG9yIG5lZ2F0aXZlIGVycm5vIGNvZGVcbiYjNDM7ICovXG4mIzQzO3N0YXRpYyBpbnQgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwaHlkZXYtXHUwMDNlbWRpby5kZXY7XG4mIzQzO1x0c3RydWN0IGNsayAqY2xrO1xuJiM0MztcbiYjNDM7XHRjbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWxfZW5hYmxlZChkZXYsIE5VTEwpO1xuJiM0MztcdGlmIChJU19FUlIoY2xrKSlcbiYjNDM7XHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihjbGspLFxuJiM0MztcdFx0XHRcdCAgICAgXCYjMzQ7ZmFpbGVkIHRvIGdldCBhbmQgZW5hYmxlIHRoZSByZWZlcmVuY2UgY2xvY2tcXG5cJiMzNDspO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiAvKipcbiAgKiB5dDg1MjFfcHJvYmUoKSAtIHJlYWQgY2hpcCBjb25maWcgdGhlbiBzZXQgc3VpdGFibGUgcG9sbGluZ19tb2RlXG4gICogQHBoeWRldjogYSBwb2ludGVyIHRvIGEgXHUwMDI2c3RydWN0IHBoeV9kZXZpY2VcbkBAIC0xMDY0LDYgJiM0MzsxMDg4LDEwIEBAIHN0YXRpYyBpbnQgeXQ4NTIxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXG4gXHRwaHlkZXYtXHUwMDNlcHJpdiA9IHByaXY7XG4gXG4mIzQzO1x0cmV0ID0geXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHBoeWRldik7XG4mIzQzO1x0aWYgKHJldClcbiYjNDM7XHRcdHJldHVybiByZXQ7XG4mIzQzO1xuIFx0Y2hpcF9jb25maWcgPSB5dHBoeV9yZWFkX2V4dF93aXRoX2xvY2socGh5ZGV2LCBZVDg1MjFfQ0hJUF9DT05GSUdfUkVHKTtcbiBcdGlmIChjaGlwX2NvbmZpZyBcdTAwM2MgMClcbiBcdFx0cmV0dXJuIGNoaXBfY29uZmlnO1xuQEAgLTExNzEsNiAmIzQzOzExOTksMTEgQEAgc3RhdGljIGludCB5dDg1MzFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbiBcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnBoeWRldi1cdTAwM2VtZGlvLmRldjtcbiBcdHUxNiBtYXNrLCB2YWw7XG4gXHR1MzIgZnJlcTtcbiYjNDM7XHRpbnQgcmV0O1xuJiM0MztcbiYjNDM7XHRyZXQgPSB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsocGh5ZGV2KTtcbiYjNDM7XHRpZiAocmV0KVxuJiM0MztcdFx0cmV0dXJuIHJldDtcbiBcbiBcdGlmIChkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCBcJiMzNDttb3RvcmNvbW0sY2xrLW91dC1mcmVxdWVuY3ktaHpcJiMzNDssIFx1MDAyNmZyZXEpKVxuIFx0XHRmcmVxID0gWVRQSFlfRFRTX09VVFBVVF9DTEtfRElTO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNT1RPUkNPTU1fUEhZJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7eXQ4NTIxX3Byb2JlJiMzNDssCiAgICAmIzM0O3l0ODUzMV9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5NjdiMGFlMTcyNGMxYmM2ZTZhNjljMDg0N2JlZjBjNjlhODU1Mzk4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMTk6MDM6NTkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKaW5kZXggNzA4NDkxYmMxOThhNy4uMzJlYjVjZTkzYTRlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwpAQCAtNiw2ICYjNDM7Niw3IEBACiAgKiBBdXRob3I6IEZyYW5rICZsdDtGcmFuay5TYWVAbW90b3ItY29tbS5jb20mZ3Q7CiAgKi8KIAomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9jbGsuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9ldGhlcmRldmljZS5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2tlcm5lbC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L21vZHVsZS5oJmd0OwpAQCAtMTA0Myw2ICYjNDM7MTA0NCwyOSBAQCBzdGF0aWMgaW50IHl0ODUzMV9zZXRfZHMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gMDsKIH0KIAomIzQzOy8qKgomIzQzOyAqIHl0cGh5X2dldF9hbmRfZW5hYmxlX3JlZmNsaygpIC0gZ2V0IGFuZCBlbmFibGUgdGhlIFBIWSByZWZlcmVuY2UgY2xvY2sKJiM0MzsgKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSAmYW1wO3N0cnVjdCBwaHlfZGV2aWNlCiYjNDM7ICoKJiM0MzsgKiBBIGNyeXN0YWwtbGVzcyBZVDg1MjEvWVQ4NTMxIHRha2VzIGl0cyAyNSBNSHogcmVmZXJlbmNlIGZyb20gdGhlIFNvQy4gV2hlbgomIzQzOyAqIHRoYXQgcmVmZXJlbmNlIGlzIGRlc2NyaWJlZCBhcyBhIGNsb2NrLCBlbmFibGUgaXQgZm9yIHRoZSBsaWZlIG9mIHRoZQomIzQzOyAqIGRldmljZS4gSXQgaXMgb3B0aW9uYWwsIHNvIGNyeXN0YWwtY2xvY2tlZCBib2FyZHMgYXJlIHVuYWZmZWN0ZWQuCiYjNDM7ICoKJiM0MzsgKiByZXR1cm5zIDAgb3IgbmVnYXRpdmUgZXJybm8gY29kZQomIzQzOyAqLwomIzQzO3N0YXRpYyBpbnQgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3BoeWRldi0mZ3Q7bWRpby5kZXY7CiYjNDM7CXN0cnVjdCBjbGsgKmNsazsKJiM0MzsKJiM0MzsJY2xrID0gZGV2bV9jbGtfZ2V0X29wdGlvbmFsX2VuYWJsZWQoZGV2LCBOVUxMKTsKJiM0MzsJaWYgKElTX0VSUihjbGspKQomIzQzOwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGNsayksCiYjNDM7CQkJCSAgICAgJiMzNDtmYWlsZWQgdG8gZ2V0IGFuZCBlbmFibGUgdGhlIHJlZmVyZW5jZSBjbG9ja1xuJiMzNDspOwomIzQzOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiAvKioKICAqIHl0ODUyMV9wcm9iZSgpIC0gcmVhZCBjaGlwIGNvbmZpZyB0aGVuIHNldCBzdWl0YWJsZSBwb2xsaW5nX21vZGUKICAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhICZhbXA7c3RydWN0IHBoeV9kZXZpY2UKQEAgLTEwNjQsNiAmIzQzOzEwODgsMTAgQEAgc3RhdGljIGludCB5dDg1MjFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAogCXBoeWRldi0mZ3Q7cHJpdiA9IHByaXY7CiAKJiM0MzsJcmV0ID0geXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHBoeWRldik7CiYjNDM7CWlmIChyZXQpCiYjNDM7CQlyZXR1cm4gcmV0OwomIzQzOwogCWNoaXBfY29uZmlnID0geXRwaHlfcmVhZF9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVQ4NTIxX0NISVBfQ09ORklHX1JFRyk7CiAJaWYgKGNoaXBfY29uZmlnICZsdDsgMCkKIAkJcmV0dXJuIGNoaXBfY29uZmlnOwpAQCAtMTE3MSw2ICYjNDM7MTE5OSwxMSBAQCBzdGF0aWMgaW50IHl0ODUzMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cGh5ZGV2LSZndDttZGlvLmRldjsKIAl1MTYgbWFzaywgdmFsOwogCXUzMiBmcmVxOwomIzQzOwlpbnQgcmV0OwomIzQzOwomIzQzOwlyZXQgPSB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsocGh5ZGV2KTsKJiM0MzsJaWYgKHJldCkKJiM0MzsJCXJldHVybiByZXQ7CiAKIAlpZiAoZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgJiMzNDttb3RvcmNvbW0sY2xrLW91dC1mcmVxdWVuY3ktaHomIzM0OywgJmFtcDtmcmVxKSkKIAkJZnJlcSA9IFlUUEhZX0RUU19PVVRQVVRfQ0xLX0RJUzsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTk6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDI0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQSFkgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY2AuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgaW50cm9kdWNpbmcgYSBuZXcgZnVuY3Rpb24gY2FsbGVkIGB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGtgLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgZGVhbHMgd2l0aCBnZXR0aW5nIGFuZCBlbmFibGluZyBhIHJlZmVyZW5jZSBjbG9jaywgYW5kIGl0JiMzOTtzIGJlaW5nIGNhbGxlZCBmcm9tIHRoZSBwcm9iZSBmdW5jdGlvbnMgZm9yIHRoZSB5dDg1MjEgYW5kIHl0ODUzMSBQSFlzLgoKTXkgZmlyc3QgdGhvdWdodCBpcyBhbHdheXMsICYjMzQ7Q2FuIEkgcmVhY2ggdGhpcyBpbiBRRU1VPyYjMzQ7IEl0JiMzOTtzIGEgTW90b3Jjb21tIFBIWSBkcml2ZXIsIHNvIHR5cGljYWxseSBQSFkgZHJpdmVycyBhcmUgYnJvdWdodCB1cCB3aGVuIGEgbmV0d29yayBpbnRlcmZhY2Ugd2l0aCB0aGF0IFBIWSBpcyByZWdpc3RlcmVkLiBJbiBhIHZpcnR1YWxpemVkIHNldHRpbmcsIEkmIzM5O2QgdXN1YWxseSB0cmlnZ2VyIHRoaXMgdmlhIGEgdmlydHVhbCBNRElPIGJ1cyBvciBzb21ldGhpbmcgc2ltaWxhci4gUmVtZW1iZXIsIG1vc3Qgb2YgdGhlIHRpbWUsIHRoZSBkcml2ZXIgcHJvYmUgaXMgdHJpZ2dlcmVkIHRocm91Z2ggTURJTyBidXMgc2Nhbm5pbmcuCgpXYWl0IGEgc2Vjb25kLCB0aGlzIGlzIGlkZWFsIGZvciBmdXp6aW5nLiBTeXprYWxsZXIgY2FuIGluamVjdCBNRElPIGRldmljZXMsIG9yIGV2ZW4gdXNlIGR1bW15IG5ldHdvcmsgZGV2aWNlcyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBNRElPIGJ1c2VzLiBTaW5jZSB0aGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBkcml2ZXImIzM5O3MgcHJvYmUgZnVuY3Rpb24sIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy4KCk5vdywgbGV0JiMzOTtzIGZpbmQgdGhlIGNvbmZpZyBmb3IgdGhpcyBkcml2ZXIuIEkmIzM5O20gZ29pbmcgdG8ganVtcCB0byBgZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jYCBhbmQgZmlndXJlIG91dCB0aGUgYENPTkZJR19gIG9wdGlvbi4gQWgsIGBDT05GSUdfTU9UT1JDT01NX1BIWWAuIFBlcmZlY3QuIE5vdywgSSBzaG91bGQgZG91YmxlIGNoZWNrIGBkcml2ZXJzL25ldC9waHkvS2NvbmZpZ2AgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGFueSBvdGhlciBwb3RlbnRpYWwgY29uZmlndXJhdGlvbnMgcmVsYXRlZCB0byBgTU9UT1JDT01NX1BIWWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTk6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TU9UT1JDT01NX1BIWSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnPTMzOD1jb25maWcgTUlDUk9TRU1JX1BIWVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTM0Ni1cbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjM0Nzpjb25maWcgTU9UT1JDT01NX1BIWVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMzQ4LVx0dHJpc3RhdGUgXCYjMzQ7TW90b3Jjb21tIFBIWXNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzM2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhlIGRlcGVuZGVuY2llcyBvZiBgTU9UT1JDT01NX1BIWWA6CgoqKkFuYWx5emluZyBEZXBlbmRlbmNpZXM6IE1PVE9SQ09NTV9QSFkqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYC4gVGhpcyBpcyBhIGNyaXRpY2FsIHN0ZXA7IEkgbmVlZCBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGlzIG1vZHVsZSByZWxpZXMgb24gdG8gZnVuY3Rpb24gY29ycmVjdGx5LiBGaXJzdCwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgbG93LWhhbmdpbmcgZnJ1aXQ6IFdoYXQgYXJlIHRoZSBvYnZpb3VzLCBpbW1lZGlhdGUgZGVwZW5kZW5jaWVzPyBBcmUgd2UgdGFsa2luZyBhYm91dCBzcGVjaWZpYyBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllcnMgKEhBTHMpLCBwb3RlbnRpYWxseSBkcml2ZXIgbW9kdWxlcyBmb3Igc3BlY2lmaWMgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzIChsaWtlIENBTiBvciBFdGhlcm5ldCk/IEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHRoZSBiYXNlbGluZSBjb21wb25lbnRzLgoKTmV4dCwgSSYjMzk7bGwgbmVlZCB0byBnbyBkZWVwZXIuIEFyZSB0aGVyZSBhbnkgaW5kaXJlY3QgZGVwZW5kZW5jaWVzPyBQZXJoYXBzIGBNT1RPUkNPTU1fUEhZYCBjYWxscyBhIGZ1bmN0aW9uIGZyb20gYSBtb2R1bGUgdGhhdCwgaW4gdHVybiwgZGVwZW5kcyBvbiBhbm90aGVyIG1vZHVsZS4gSSBuZWVkIHRvIHRyYWNlIHRoZSBjYWxsIGdyYXBoIHRvIGVuc3VyZSBJIGhhdmUgdGhlIGNvbXBsZXRlIHBpY3R1cmUuIEkmIzM5O20gbG9va2luZyBmb3IgYW55IGhpZGRlbiBjb25uZWN0aW9ucyB0aGF0IGNvdWxkIGNhdXNlIGlzc3VlcyBsYXRlciBvbiBkdXJpbmcgaW50ZWdyYXRpb24gb3IgdGVzdGluZy4KCkZ1cnRoZXJtb3JlLCBJIGhhdmUgdG8gY29uc2lkZXIgdGhlIHZlcnNpb25zIG9mIHRob3NlIGRlcGVuZGVuY2llcy4gSXMgdGhlcmUgYSBzcGVjaWZpYyB2ZXJzaW9uIHJlcXVpcmVtZW50LCBvciBjYW4gaXQgd29yayB3aXRoIG11bHRpcGxlIHZlcnNpb25zPyBUaGlzIGlzIGNydWNpYWwgZm9yIGF2b2lkaW5nIHVuZXhwZWN0ZWQgYmVoYXZpb3IgZHVlIHRvIEFQSSBjaGFuZ2VzIG9yIGtub3duIGJ1Z3MgaW4gb2xkZXIgdmVyc2lvbnMuIElmIHRoZXJlIGFyZSB2ZXJzaW9uIGNvbnN0cmFpbnRzLCBJJiMzOTtsbCBoYXZlIHRvIGRvY3VtZW50IHRoZW0gbWV0aWN1bG91c2x5LgoKSSBhbHNvIG5lZWQgdG8gY2hlY2sgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGRlcGVuZGVuY2llcy4gSXMgYE1PVE9SQ09NTV9QSFlgIGRlc2lnbmVkIHRvIHJ1biBvbiBhIHNwZWNpZmljIHByb2Nlc3NvciBhcmNoaXRlY3R1cmUgb3Igb3BlcmF0aW5nIHN5c3RlbT8gSWYgc28sIHRob3NlIGRlcGVuZGVuY2llcyBuZWVkIHRvIGJlIGV4cGxpY2l0bHkgbGlzdGVkLiBJIG5lZWQgdG8gbWFrZSBhIG5vdGUgb2YgdGhpcywgaW4gY2FzZSB3ZSB3YW50IHRvIHBvcnQgdG8gYSBkaWZmZXJlbnQgcGxhdGZvcm0sIG9yIGhhdmUgZnV0dXJlIGV4cGFuc2lvbiBuZWVkcy4KCkZpbmFsbHksIEkmIzM5O2xsIHdhbnQgdG8gdmVyaWZ5IHRoYXQgYWxsIG9mIHRoZXNlIGRlcGVuZGVuY2llcyBhcmUgZG9jdW1lbnRlZCBhbmQgZWFzaWx5IGFjY2Vzc2libGUuIEFyZSB0aGV5IGRvY3VtZW50ZWQgaW4gYSBjZW50cmFsIHJlcG9zaXRvcnksIHdpdGggYXBwcm9wcmlhdGUgZG9jdW1lbnRhdGlvbiwgb3IgYXJlIHRoZXkgc2NhdHRlcmVkIGFjcm9zcyB2YXJpb3VzIGZpbGVzIGFuZCBkaXJlY3Rvcmllcz8gTXkgZ29hbCBpcyB0byBjcmVhdGUgYSBjbGVhciwgY29uY2lzZSBkZXBlbmRlbmN5IG1hcC4gSSYjMzk7bGwgbmVlZCB0byB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBjcmVhdGUgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG1vZHVsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzQ3LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzNDc6XHRjb25maWcgTU9UT1JDT01NX1BIWVxuIDM0ODpcdFx0dHJpc3RhdGUgXCYjMzQ7TW90b3Jjb21tIFBIWXNcJiMzNDtcbiAzNDk6XHRcdGhlbHBcbiAzNTA6XHRcdCAgRW5hYmxlcyBzdXBwb3J0IGZvciBNb3RvcmNvbW0gbmV0d29yayBQSFlzLlxuIDM1MTpcdFx0ICBDdXJyZW50bHkgc3VwcG9ydHMgWVQ4NXh4IEdpZ2FiaXQgRXRoZXJuZXQgUEhZcy5cbiAzNTI6XHRcbiAzNTM6XHRjb25maWcgTkFUSU9OQUxfUEhZXG4gMzU0Olx0XHR0cmlzdGF0ZSBcJiMzNDtOYXRpb25hbCBTZW1pY29uZHVjdG9yIFBIWXNcJiMzNDtcbiAzNTU6XHRcdGhlbHBcbiAzNTY6XHRcdCAgQ3VycmVudGx5IHN1cHBvcnRzIHRoZSBEUDgzODY1IFBIWS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTMxCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJlY2VudCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgYW5kIHRoZSBrZXkgY29uZmlnIGlzIGBNT1RPUkNPTU1fUEhZYC4gQWxyaWdodCwgdGhlIGZ1bmN0aW9ucyB0aGV5JiMzOTt2ZSBjaGFuZ2VkIGFyZSBgeXQ4NTIxX3Byb2JlYCBhbmQgYHl0ODUzMV9wcm9iZWAuIEhtbW0sIGhvbGQgb24uLi4gaXQgbG9va3MgbGlrZSB0aGV5JiMzOTt2ZSBhZGRlZCBgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrYC4gVGhhdCBmdW5jdGlvbi4uLiBvaCB5ZWFoLCB0aGF0JiMzOTtzIGNhbGxpbmcgYGRldm1fY2xrX2dldF9vcHRpb25hbF9lbmFibGVkYC4gUmlnaHQsIHNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIHByb2JlIGZ1bmN0aW9uIGZvciBhbiBNRElPIGRldmljZS4KCk5vdyB0aGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgc29tZXRoaW5nIHdvcnRoIGZ1enppbmc/IFllYWgsIGFic29sdXRlbHkuIFRoaXMgaXNuJiMzOTt0IGp1c3QgYSBtaW5vciB0d2VhazsgaXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSAqd2l0aGluKiB0aGUgcHJvYmUgaXRzZWxmLiBUaGF0JiMzOTtzIGEgZ29vZCBwbGFjZSB0byBzdGFydC4KCkxldCBtZSBqdXN0IHF1aWNrbHkgY2hlY2sgaWYgdGhvc2UgYHl0ODUyMV9wcm9iZWAgYW5kIGB5dDg1MzFfcHJvYmVgIGZ1bmN0aW9ucyBhcmUgc3RhdGljLiBZZXAsIHRoZXkgYXJlLiBPa2F5LCB0aGF0IG1lYW5zIHRoZXkmIzM5O3JlIGxvY2FsIHRvIHRoaXMgZmlsZSwgd2hpY2ggbmFycm93cyBkb3duIHRoZSBzY29wZSBhIGJpdCwgYnV0IGl0JiMzOTtzIHN0aWxsIGdvb2QgdG8ga25vdy4gTm93IEkgbmVlZCB0byBmaW5kIHRoZSBzdHJ1Y3QgdGhhdCBhY3R1YWxseSByZWZlcmVuY2VzIHRoZXNlIGZ1bmN0aW9ucy4gVGhhdCB3aWxsIHRlbGwgbWUgd2hlcmUgdGhlIGVudHJ5IHBvaW50cyBhcmUsIGFuZCB3aGF0IGRhdGEgc3RydWN0dXJlcyBhcmUgaW52b2x2ZWQuIFRoYXQmIzM5O3MgdGhlIG5leHQgc3RlcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt5dDg1MjFfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jPTEwNTc9c3RhdGljIGludCB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbi0tXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMTA3MC0vKipcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYzoxMDcxOiAqIHl0ODUyMV9wcm9iZSgpIC0gcmVhZCBjaGlwIGNvbmZpZyB0aGVuIHNldCBzdWl0YWJsZSBwb2xsaW5nX21vZGVcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMDcyLSAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlfZGV2aWNlXG4tLVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTEwNzUtICovXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MTA3NjpzdGF0aWMgaW50IHl0ODUyMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTEwNzcte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYz0zMDQ3PXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBtb3RvcmNvbW1fcGh5X2RydnNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA2MC1cdFx0LmdldF9mZWF0dXJlc1x0PSB5dDg1MjFfZ2V0X2ZlYXR1cmVzLFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jOjMwNjE6XHRcdC5wcm9iZVx0XHQ9IHl0ODUyMV9wcm9iZSxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0zMDYyLVx0XHQucmVhZF9wYWdlXHQ9IHl0ODUyMV9yZWFkX3BhZ2UsXG4tLVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwOTQtXHRcdC5nZXRfZmVhdHVyZXNcdD0geXQ4NTIxX2dldF9mZWF0dXJlcyxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYzozMDk1Olx0XHQucHJvYmVcdFx0PSB5dDg1MjFfcHJvYmUsXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA5Ni1cdFx0LnJlYWRfcGFnZVx0PSB5dDg1MjFfcmVhZF9wYWdlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4MjUKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUEhZIFByb2JlIEZ1bmN0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgZnVuY3Rpb25zLCBgeXQ4NTIxX3Byb2JlYCBhbmQgYHl0ODUzMV9wcm9iZWAuIFRoZXkgc2VlbSBsaWtlIHRoZSBrZXkgcGxheWVycyBoZXJlLiBCdXQgd2FpdCwgdGhleSYjMzk7cmUgZGVjbGFyZWQgYXMgYHN0YXRpY2AuIEhtbSwgdGhhdCBtYWtlcyBtZSBhIGxpdHRsZSB1bmVhc3kuIFN0YXRpYyBmdW5jdGlvbnMgYXJlLCBieSB0aGVpciBuYXR1cmUsIGxlc3MgbGlrZWx5IHRvIGJlIGdvb2QgZm9jdXMgc3ltYm9scy4gVGhleSYjMzk7cmUgaW50ZXJuYWwgdG8gdGhlIGNvbXBpbGF0aW9uIHVuaXQuIEJ1dCB0aGVuIEkgcmVtZW1iZXIgdGhleSYjMzk7cmUgYXNzaWduZWQgdG8gdGhlIGAucHJvYmVgIG1lbWJlciB3aXRoaW4gdGhlIGBzdHJ1Y3QgcGh5X2RyaXZlcmAuLi4gYWgsIHRoYXQgbWFrZXMgbW9yZSBzZW5zZS4gU28gdGhleSAqYXJlKiBiZWluZyB1c2VkIGFzIHRoZSBQSFkgcHJvYmUgZnVuY3Rpb25zLgoKTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHdhbnQgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcG90ZW50aWFsIHByb2JlIGZ1bmN0aW9ucyBmbG9hdGluZyBhcm91bmQuIExldCYjMzk7cyBjYXN0IGEgcXVpY2sgZ2xhbmNlIG92ZXIgYG1vdG9yY29tbS5jYC4gSXQmIzM5O3MgYSB1c2VmdWwgZmlsZSwgYW5kIEkgd2FudCB0byBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhbnl0aGluZyBvYnZpb3VzLiBCZXR0ZXIgdG8gYmUgY29tcGxldGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3l0ODUzMV9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM9MTA3Nj1zdGF0aWMgaW50IHl0ODUyMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMTk2LVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jOjExOTc6c3RhdGljIGludCB5dDg1MzFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMTk4LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM9MzA0Nz1zdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbW90b3Jjb21tX3BoeV9kcnZzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwNzktXHRcdC5uYW1lXHRcdD0gXCYjMzQ7WVQ4NTMxIEdpZ2FiaXQgRXRoZXJuZXRcJiMzNDssXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MzA4MDpcdFx0LnByb2JlXHRcdD0geXQ4NTMxX3Byb2JlLFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwODEtXHRcdC5jb25maWdfaW5pdFx0PSB5dDg1MzFfY29uZmlnX2luaXQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzODIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzaW5nIGFzIGFuIGV4cGVydDoKCioqTmF2aWdhdGluZyBQSFkgUHJvYmUgRnVuY3Rpb25hbGl0eSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLCB0aGUgUEhZIGNvcmUgdHJpZ2dlcnMgdGhlIHByb2JlIGZ1bmN0aW9ucywgc3BlY2lmaWNhbGx5IHdoZW4gYSBQSFkgZGV2aWNlIGdldHMgcmVnaXN0ZXJlZC4gVGhlIGtleSBlbnRyeSBwb2ludCBoZXJlIGlzLCBhcyBJIHJlY2FsbCwgdGhlIGBwaHlfcHJvYmVgIGZ1bmN0aW9uIHdpdGhpbiB0aGUgY29yZS4gTm93LCBJIG5lZWQgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIGhvdyB0aGluZ3MgYXJlIHN0cnVjdHVyZWQuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgaXMgYW55IGludGVyZXN0aW5nLCBub24tc3RhdGljIHN0dWZmIGdvaW5nIG9uIGluIHRoYXQgYG1vdG9yY29tbS5jYCBmaWxlLiBJJiMzOTttIGhvcGluZyBJIGRvbiYjMzk7dCBuZWVkIHRvIGRpdmUgdGhyb3VnaCBhIGJ1bmNoIG9mIHN0YXRpYyBmdW5jdGlvbnMgdG8gdW5kZXJzdGFuZCB0aGUgZmxvdy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB3aGF0IG1pZ2h0IGJlIGV4dGVybmFsbHkgYWNjZXNzaWJsZSBvciBtb2RpZmlhYmxlIGZyb20gdGhhdCBtb2R1bGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2MzUKCQkJCQkJCW91dHB1dDogNTMKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkFuYWx5emluZyB0aGUgU3ltYm9sIFRhYmxlKioKCkFscmlnaHQsIHRoZSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgY2xlYXI6IG5vIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHByZXNlbnQuIFRoYXQmIzM5O3MgYSBrZXkgb2JzZXJ2YXRpb24sIGJ1dCBpdCYjMzk7cyBub3QgdGhlIGZ1bGwgcGljdHVyZS4gVGhlIGFic2VuY2Ugb2YgZXhwbGljaXRseSBleHBvcnRlZCBzeW1ib2xzIGRvZXNuJiMzOTt0IG5lY2Vzc2FyaWx5IG1lYW4gdGhlIGVudGlyZSBjb2RlIGJhc2UgaXMgcHJpdmF0ZS4gTXkgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb25zIHRoZW1zZWx2ZXMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYW55ICpub24tc3RhdGljKiBmdW5jdGlvbnMgZXhpc3QuIFRob3NlLCBldmVuIGlmIG5vdCBleHBsaWNpdGx5IGV4cG9ydGVkLCBtaWdodCBiZSBpbXBsaWNpdGx5IHZpc2libGUgd2l0aGluIGEgbGFyZ2VyIGNvbXBpbGF0aW9uIHVuaXQgb3IgcG90ZW50aWFsbHkgbGlua2VkIGluIG90aGVyIHdheXMsIGNyZWF0aW5nIHRoZSBwb3NzaWJpbGl0eSBvZiBvdXRzaWRlIHVzZS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBpbnZlc3RpZ2F0aW9uIGJlZ2lucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTk6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDteW2EtekEtWjAtOV9dJiM0MzsgW2EtekEtWjAtOV9dJiM0MztcXCgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODY0CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTYyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUEhZIERyaXZlciBQcm9iZSBGdW5jdGlvbnMqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCB0aGF0IGBtb2R1bGVfcGh5X2RyaXZlcihtb3RvcmNvbW1fcGh5X2RydnMpO2AgY2FsbCBpcyBhbG1vc3QgY2VydGFpbmx5IGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgbW9kdWxlLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciByZWdpc3RlcnMgaXRzZWxmLgoKUmlnaHQsIHRoZSBwcm9iZSBmdW5jdGlvbnMuLi4gbGV0JiMzOTtzIHNlZS4gVGhleSYjMzk7cmUgYHl0ODUyMV9wcm9iZWAgYW5kIGB5dDg1MzFfcHJvYmVgLiBTdGF0aWMsIGVoPyBEb2VzbiYjMzk7dCBtYXR0ZXIgdG9vIG11Y2g7IHRoZXkmIzM5O3JlIGFzc2lnbmVkIHRvIGZ1bmN0aW9uIHBvaW50ZXJzIGFuZCBjYWxsZWQgaW5kaXJlY3RseSwgc28gdGhlIGNvbXBpbGVyIHdvbiYjMzk7dCBpbmxpbmUgdGhlbSwgbWFraW5nIHRoZW0gZ29vZCBmb2N1cyBzeW1ib2xzIGZvciByZXZlcnNlLWVuZ2luZWVyaW5nLgoKTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYC4gSXMgaXQgc2VsZi1jb250YWluZWQsIG9yIGRvZXMgaXQgbGVhbiBvbiBvdGhlciBtb2R1bGVzPyBJJiMzOTttIHByZXR0eSBzdXJlIGl0IGRlcGVuZHMgb24gYFBIWUxJQmAgYmVjYXVzZSBpdCBsaXZlcyB1bmRlciB0aGUgYGRyaXZlcnMvbmV0L3BoeS9gIG1lbnUgaW4gYEtjb25maWdgLCBhbmQgdGhhdCBpbXBsaWVzIGBQSFlMSUJgLiBUaW1lIHRvIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyBvdXQgYGRyaXZlcnMvbmV0L3BoeS9LY29uZmlnYC4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIHdoYXQgaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21lbnVjb25maWcgUEhZTElCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L0tjb25maWc9Nj1jb25maWcgUEhZTElOS1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTE0LVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc6MTU6bWVudWNvbmZpZyBQSFlMSUJcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTE2LVx0dHJpc3RhdGUgXCYjMzQ7UEhZIERldmljZSBzdXBwb3J0IGFuZCBpbmZyYXN0cnVjdHVyZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2Mzc0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDb25maWd1cmF0aW9uIGFuZCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjaGFuZ2UgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtSaWdodCwgYFBIWUxJQmAgYW5kIGBNT1RPUkNPTU1fUEhZYCBhcmUgdGhlIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkIGhlcmUuJiMzNDsgR290IGl0LiBNYWtlcyBzZW5zZS4gTm93LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjYWxsIHRvIGBkZXZtX2Nsa19nZXRfb3B0aW9uYWxfZW5hYmxlZGAgd2l0aGluIHRoZSBwcm9iZSBmdW5jdGlvbi4gSG1tLCBmdW5jdGlvbmFsbHkgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgYWRkaXRpb24gdG8gc2VjdXJlIHRoZSBmdW5jdGlvbmFsaXR5IGlzIGF2YWlsYWJsZS4KCkxldCBtZSBqdXN0IHF1aWNrbHkgdmVyaWZ5IHRoZSBkZXBlbmRlbmNpZXMgb2YgYE1PVE9SQ09NTV9QSFlgLCBqdXN0IHRvIGJlIGNlcnRhaW4gdGhlcmUgYXJlIG5vIHVuc2VlbiBzaWRlIGVmZmVjdHMuIE5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgZG9lc24mIzM5O3QgYnJlYWsgYW55dGhpbmcgZWxzZSwgeW91IGtub3cgaG93IGl0IGlzLiBKdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJlZm9yZSBJIG1vdmUgb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBQSFkgTGF5ZXIgQ29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRjb25maWcgUEhZTElOS1xuICAgNzpcdFx0dHJpc3RhdGVcbiAgIDg6XHRcdHNlbGVjdCBQSFlMSUJcbiAgIDk6XHRcdHNlbGVjdCBTV1BIWVxuICAxMDpcdFx0aGVscFxuICAxMTpcdFx0ICBQSFlsaW5rIG1vZGVscyB0aGUgbGluayBiZXR3ZWVuIHRoZSBQSFkgYW5kIE1BQywgYWxsb3dpbmcgZml4ZWRcbiAgMTI6XHRcdCAgY29uZmlndXJhdGlvbiBsaW5rcywgUEhZcywgYW5kIFNlcmRlcyBsaW5rcyB3aXRoIE1BQyBsZXZlbFxuICAxMzpcdFx0ICBhdXRvbmVnb3RpYXRpb24gbW9kZXMuXG4gIDE0Olx0XG4gIDE1Olx0bWVudWNvbmZpZyBQSFlMSUJcbiAgMTY6XHRcdHRyaXN0YXRlIFwmIzM0O1BIWSBEZXZpY2Ugc3VwcG9ydCBhbmQgaW5mcmFzdHJ1Y3R1cmVcJiMzNDtcbiAgMTc6XHRcdGhlbHBcbiAgMTg6XHRcdCAgRXRoZXJuZXQgY29udHJvbGxlcnMgYXJlIHVzdWFsbHkgYXR0YWNoZWQgdG8gUEhZXG4gIDE5Olx0XHQgIGRldmljZXMuICBUaGlzIG9wdGlvbiBwcm92aWRlcyBpbmZyYXN0cnVjdHVyZSBmb3JcbiAgMjA6XHRcdCAgbWFuYWdpbmcgUEhZIGRldmljZXMuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY4NDcKCQkJCQkJCW91dHB1dDogMTAwCgkJCQkJCQl0aG91Z2h0czogMTk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1vdG9yY29tbSBQSFkgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBpdCBsb29rcyBsaWtlIGBNT1RPUkNPTU1fUEhZYCBpcyB0aGUgb25seSBjb25maWd1cmF0aW9uIG9wdGlvbiBJIHJlYWxseSBuZWVkIHRvIGJlIGNvbmNlcm5lZCB3aXRoIGhlcmUuIEV4Y2VsbGVudCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncy4gTXkgcHJpbWFyeSBhcmVhcyBvZiBmb2N1cyBhcmUgZGVmaW5pdGVseSBgeXQ4NTIxX3Byb2JlYCBhbmQgYHl0ODUzMV9wcm9iZWDigJR0aG9zZSBzZWVtIHRvIGJlIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgYmVpbmcgdG91Y2hlZC4KCkhtbSwgd2FpdCwgSSBzZWUgYHl0cGh5X2dldF9hbmRfZW5hYmxlX3JlZmNsa2AgaXMgYWxzbyBtZW50aW9uZWQgYXMgYSBjaGFuZ2UuIEl0JiMzOTtzIG1hcmtlZCBhcyBzdGF0aWMgc28gSSBuZWVkIHRvIGtlZXAgaW4gbWluZCB0aGF0IGl0IGlzIHN1YmplY3QgdG8gaW5saW5pbmcsIGFuZCB0aGVyZWZvcmUsIGNvdWxkIGNvbXBsaWNhdGUgdGhpbmdzLiBCZXN0IHRvIGluY2x1ZGUgaXQgaW4gdGhlIGFuYWx5c2lzLCBidXQgdW5kZXJzdGFuZCB0aGF0IGl0cyBpbXBhY3QgbWlnaHQgYmUgaW50ZWdyYXRlZCB3aXRoaW4gdGhlIHByb2JlIGZ1bmN0aW9ucy4KClJpZ2h0LCBsZXQgbWUgZG91YmxlLWNoZWNrLiBJJiMzOTttIHNhdGlzZmllZCB0aGF0IGBDT05GSUdfTU9UT1JDT01NX1BIWWAgaXMgdGhlIG9ubHkgY29uZmlnIHRvIHRyYWNrLgoKRXNzZW50aWFsbHksIHRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgbmV3IGxvZ2ljIHdpdGhpbiB0aGUgcHJvYmUgcm91dGluZXMgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBTcGVjaWZpY2FsbHksIHRoaXMgaXMgdG8gaGFuZGxlIGdldHRpbmcgYW5kIGVuYWJsaW5nIGEgcmVmZXJlbmNlIGNsb2NrLiBBIGZ1bmN0aW9uYWwgY2hhbmdlIHN1Y2ggYXMgdGhpcyBpbXBhY3RzIHRoZSBwcm9iZSBwYXRoLCBhbmQgdGhpcyBpcyBhcHBsaWNhYmxlIHRvIE1ESU8gYnVzIGVtdWxhdGlvbiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TU9UT1JDT01NX1BIWSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3l0ODUyMV9wcm9iZSYjMzQ7LAogICAgJiMzNDt5dDg1MzFfcHJvYmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBsb2dpYyB0byBnZXQgYW5kIGVuYWJsZSBhIHJlZmVyZW5jZSBjbG9jayBkdXJpbmcgdGhlIHByb2JlIG9mIE1vdG9yY29tbSBQSFkgZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIgcHJvYmUgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgTURJTyBidXMgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNT1RPUkNPTU1fUEhZJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7eXQ4NTIxX3Byb2JlJiMzNDssCiAgICAmIzM0O3l0ODUzMV9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDowMC4zMzMwOTIzMjFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTg1MDk3ODA3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNT1RPUkNPTU1fUEhZXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieXQ4NTIxX3Byb2JlXCIsXG4gICAgXCJ5dDg1MzFfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjAwLjMzMzEwNjg1MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njk5NzY5MjE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTY3YjBhZTE3MjRjMWJjNmU2YTY5YzA4NDdiZWYwYzY5YTg1NTM5OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAyOCAxOTowMzo1OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcXG5pbmRleCA3MDg0OTFiYzE5OGE3Li4zMmViNWNlOTNhNGUzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xcbkBAIC02LDYgKzYsNyBAQFxcbiAgKiBBdXRob3I6IEZyYW5rIFxcdTAwM2NGcmFuay5TYWVAbW90b3ItY29tbS5jb21cXHUwMDNlXFxuICAqL1xcbiBcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nsay5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuQEAgLTEwNDMsNiArMTA0NCwyOSBAQCBzdGF0aWMgaW50IHl0ODUzMV9zZXRfZHMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuKy8qKlxcbisgKiB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsoKSAtIGdldCBhbmQgZW5hYmxlIHRoZSBQSFkgcmVmZXJlbmNlIGNsb2NrXFxuKyAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5X2RldmljZVxcbisgKlxcbisgKiBBIGNyeXN0YWwtbGVzcyBZVDg1MjEvWVQ4NTMxIHRha2VzIGl0cyAyNSBNSHogcmVmZXJlbmNlIGZyb20gdGhlIFNvQy4gV2hlblxcbisgKiB0aGF0IHJlZmVyZW5jZSBpcyBkZXNjcmliZWQgYXMgYSBjbG9jaywgZW5hYmxlIGl0IGZvciB0aGUgbGlmZSBvZiB0aGVcXG4rICogZGV2aWNlLiBJdCBpcyBvcHRpb25hbCwgc28gY3J5c3RhbC1jbG9ja2VkIGJvYXJkcyBhcmUgdW5hZmZlY3RlZC5cXG4rICpcXG4rICogcmV0dXJucyAwIG9yIG5lZ2F0aXZlIGVycm5vIGNvZGVcXG4rICovXFxuK3N0YXRpYyBpbnQgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuK3tcXG4rXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnBoeWRldi1cXHUwMDNlbWRpby5kZXY7XFxuK1xcdHN0cnVjdCBjbGsgKmNsaztcXG4rXFxuK1xcdGNsayA9IGRldm1fY2xrX2dldF9vcHRpb25hbF9lbmFibGVkKGRldiwgTlVMTCk7XFxuK1xcdGlmIChJU19FUlIoY2xrKSlcXG4rXFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGNsayksXFxuK1xcdFxcdFxcdFxcdCAgICAgXFxcImZhaWxlZCB0byBnZXQgYW5kIGVuYWJsZSB0aGUgcmVmZXJlbmNlIGNsb2NrXFxcXG5cXFwiKTtcXG4rXFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbiAvKipcXG4gICogeXQ4NTIxX3Byb2JlKCkgLSByZWFkIGNoaXAgY29uZmlnIHRoZW4gc2V0IHN1aXRhYmxlIHBvbGxpbmdfbW9kZVxcbiAgKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSBcXHUwMDI2c3RydWN0IHBoeV9kZXZpY2VcXG5AQCAtMTA2NCw2ICsxMDg4LDEwIEBAIHN0YXRpYyBpbnQgeXQ4NTIxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuIFxcbiBcXHRwaHlkZXYtXFx1MDAzZXByaXYgPSBwcml2O1xcbiBcXG4rXFx0cmV0ID0geXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHBoeWRldik7XFxuK1xcdGlmIChyZXQpXFxuK1xcdFxcdHJldHVybiByZXQ7XFxuK1xcbiBcXHRjaGlwX2NvbmZpZyA9IHl0cGh5X3JlYWRfZXh0X3dpdGhfbG9jayhwaHlkZXYsIFlUODUyMV9DSElQX0NPTkZJR19SRUcpO1xcbiBcXHRpZiAoY2hpcF9jb25maWcgXFx1MDAzYyAwKVxcbiBcXHRcXHRyZXR1cm4gY2hpcF9jb25maWc7XFxuQEAgLTExNzEsNiArMTE5OSwxMSBAQCBzdGF0aWMgaW50IHl0ODUzMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbiBcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cGh5ZGV2LVxcdTAwM2VtZGlvLmRldjtcXG4gXFx0dTE2IG1hc2ssIHZhbDtcXG4gXFx0dTMyIGZyZXE7XFxuK1xcdGludCByZXQ7XFxuK1xcbitcXHRyZXQgPSB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsocGh5ZGV2KTtcXG4rXFx0aWYgKHJldClcXG4rXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuIFxcdGlmIChkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCBcXFwibW90b3Jjb21tLGNsay1vdXQtZnJlcXVlbmN5LWh6XFxcIiwgXFx1MDAyNmZyZXEpKVxcbiBcXHRcXHRmcmVxID0gWVRQSFlfRFRTX09VVFBVVF9DTEtfRElTO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDowMS4wMzM3MjI5ODdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozOTE1MDMyMjI3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNT1RPUkNPTU1fUEhZXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieXQ4NTIxX3Byb2JlXCIsXG4gICAgXCJ5dDg1MzFfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDk2N2IwYWUxNzI0YzFiYzZlNmE2OWMwODQ3YmVmMGM2OWE4NTUzOThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAxOTowMzo1OSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xuaW5kZXggNzA4NDkxYmMxOThhNy4uMzJlYjVjZTkzYTRlMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xuKysrIGIvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jXG5AQCAtNiw2ICs2LDcgQEBcbiAgKiBBdXRob3I6IEZyYW5rIFx1MDAzY0ZyYW5rLlNhZUBtb3Rvci1jb21tLmNvbVx1MDAzZVxuICAqL1xuIFxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2Nsay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2tlcm5lbC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbkBAIC0xMDQzLDYgKzEwNDQsMjkgQEAgc3RhdGljIGludCB5dDg1MzFfc2V0X2RzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4rLyoqXG4rICogeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKCkgLSBnZXQgYW5kIGVuYWJsZSB0aGUgUEhZIHJlZmVyZW5jZSBjbG9ja1xuKyAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlfZGV2aWNlXG4rICpcbisgKiBBIGNyeXN0YWwtbGVzcyBZVDg1MjEvWVQ4NTMxIHRha2VzIGl0cyAyNSBNSHogcmVmZXJlbmNlIGZyb20gdGhlIFNvQy4gV2hlblxuKyAqIHRoYXQgcmVmZXJlbmNlIGlzIGRlc2NyaWJlZCBhcyBhIGNsb2NrLCBlbmFibGUgaXQgZm9yIHRoZSBsaWZlIG9mIHRoZVxuKyAqIGRldmljZS4gSXQgaXMgb3B0aW9uYWwsIHNvIGNyeXN0YWwtY2xvY2tlZCBib2FyZHMgYXJlIHVuYWZmZWN0ZWQuXG4rICpcbisgKiByZXR1cm5zIDAgb3IgbmVnYXRpdmUgZXJybm8gY29kZVxuKyAqL1xuK3N0YXRpYyBpbnQgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4re1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cGh5ZGV2LVx1MDAzZW1kaW8uZGV2O1xuK1x0c3RydWN0IGNsayAqY2xrO1xuK1xuK1x0Y2xrID0gZGV2bV9jbGtfZ2V0X29wdGlvbmFsX2VuYWJsZWQoZGV2LCBOVUxMKTtcbitcdGlmIChJU19FUlIoY2xrKSlcbitcdFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGNsayksXG4rXHRcdFx0XHQgICAgIFwiZmFpbGVkIHRvIGdldCBhbmQgZW5hYmxlIHRoZSByZWZlcmVuY2UgY2xvY2tcXG5cIik7XG4rXG4rXHRyZXR1cm4gMDtcbit9XG4rXG4gLyoqXG4gICogeXQ4NTIxX3Byb2JlKCkgLSByZWFkIGNoaXAgY29uZmlnIHRoZW4gc2V0IHN1aXRhYmxlIHBvbGxpbmdfbW9kZVxuICAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlfZGV2aWNlXG5AQCAtMTA2NCw2ICsxMDg4LDEwIEBAIHN0YXRpYyBpbnQgeXQ4NTIxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXG4gXHRwaHlkZXYtXHUwMDNlcHJpdiA9IHByaXY7XG4gXG4rXHRyZXQgPSB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsocGh5ZGV2KTtcbitcdGlmIChyZXQpXG4rXHRcdHJldHVybiByZXQ7XG4rXG4gXHRjaGlwX2NvbmZpZyA9IHl0cGh5X3JlYWRfZXh0X3dpdGhfbG9jayhwaHlkZXYsIFlUODUyMV9DSElQX0NPTkZJR19SRUcpO1xuIFx0aWYgKGNoaXBfY29uZmlnIFx1MDAzYyAwKVxuIFx0XHRyZXR1cm4gY2hpcF9jb25maWc7XG5AQCAtMTE3MSw2ICsxMTk5LDExIEBAIHN0YXRpYyBpbnQgeXQ4NTMxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwaHlkZXYtXHUwMDNlbWRpby5kZXY7XG4gXHR1MTYgbWFzaywgdmFsO1xuIFx0dTMyIGZyZXE7XG4rXHRpbnQgcmV0O1xuK1xuK1x0cmV0ID0geXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHBoeWRldik7XG4rXHRpZiAocmV0KVxuK1x0XHRyZXR1cm4gcmV0O1xuIFxuIFx0aWYgKGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihkZXYsIFwibW90b3Jjb21tLGNsay1vdXQtZnJlcXVlbmN5LWh6XCIsIFx1MDAyNmZyZXEpKVxuIFx0XHRmcmVxID0gWVRQSFlfRFRTX09VVFBVVF9DTEtfRElTO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6MDEuMDMzNzI0NTU3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTgzNjgwNzI4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQSFkgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jYC4gSXQgbG9va3MgbGlrZSBpdCdzIGludHJvZHVjaW5nIGEgbmV3IGZ1bmN0aW9uIGNhbGxlZCBgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrYC4gVGhpcyBpcyBpbnRlcmVzdGluZyBiZWNhdXNlIGl0IGRlYWxzIHdpdGggZ2V0dGluZyBhbmQgZW5hYmxpbmcgYSByZWZlcmVuY2UgY2xvY2ssIGFuZCBpdCdzIGJlaW5nIGNhbGxlZCBmcm9tIHRoZSBwcm9iZSBmdW5jdGlvbnMgZm9yIHRoZSB5dDg1MjEgYW5kIHl0ODUzMSBQSFlzLlxuXG5NeSBmaXJzdCB0aG91Z2h0IGlzIGFsd2F5cywgXCJDYW4gSSByZWFjaCB0aGlzIGluIFFFTVU/XCIgSXQncyBhIE1vdG9yY29tbSBQSFkgZHJpdmVyLCBzbyB0eXBpY2FsbHkgUEhZIGRyaXZlcnMgYXJlIGJyb3VnaHQgdXAgd2hlbiBhIG5ldHdvcmsgaW50ZXJmYWNlIHdpdGggdGhhdCBQSFkgaXMgcmVnaXN0ZXJlZC4gSW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLCBJJ2QgdXN1YWxseSB0cmlnZ2VyIHRoaXMgdmlhIGEgdmlydHVhbCBNRElPIGJ1cyBvciBzb21ldGhpbmcgc2ltaWxhci4gUmVtZW1iZXIsIG1vc3Qgb2YgdGhlIHRpbWUsIHRoZSBkcml2ZXIgcHJvYmUgaXMgdHJpZ2dlcmVkIHRocm91Z2ggTURJTyBidXMgc2Nhbm5pbmcuXG5cbldhaXQgYSBzZWNvbmQsIHRoaXMgaXMgaWRlYWwgZm9yIGZ1enppbmcuIFN5emthbGxlciBjYW4gaW5qZWN0IE1ESU8gZGV2aWNlcywgb3IgZXZlbiB1c2UgZHVtbXkgbmV0d29yayBkZXZpY2VzIHRoYXQgaGF2ZSBhc3NvY2lhdGVkIE1ESU8gYnVzZXMuIFNpbmNlIHRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIGRyaXZlcidzIHByb2JlIGZ1bmN0aW9uLCBpdCdzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy5cblxuTm93LCBsZXQncyBmaW5kIHRoZSBjb25maWcgZm9yIHRoaXMgZHJpdmVyLiBJJ20gZ29pbmcgdG8ganVtcCB0byBgZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jYCBhbmQgZmlndXJlIG91dCB0aGUgYENPTkZJR19gIG9wdGlvbi4gQWgsIGBDT05GSUdfTU9UT1JDT01NX1BIWWAuIFBlcmZlY3QuIE5vdywgSSBzaG91bGQgZG91YmxlIGNoZWNrIGBkcml2ZXJzL25ldC9waHkvS2NvbmZpZ2AgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGFueSBvdGhlciBwb3RlbnRpYWwgY29uZmlndXJhdGlvbnMgcmVsYXRlZCB0byBgTU9UT1JDT01NX1BIWWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTUsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDowNi44NzA1MzcyODJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzgxNzE0NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9UT1JDT01NX1BIWVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvS2NvbmZpZz0zMzg9Y29uZmlnIE1JQ1JPU0VNSV9QSFlcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTM0Ni1cXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZzozNDc6Y29uZmlnIE1PVE9SQ09NTV9QSFlcXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0zNDgtXFx0dHJpc3RhdGUgXFxcIk1vdG9yY29tbSBQSFlzXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDowNi45NDg3MjA1OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0NTE3NzgzODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYDpcblxuKipBbmFseXppbmcgRGVwZW5kZW5jaWVzOiBNT1RPUkNPTU1fUEhZKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMgb2YgYE1PVE9SQ09NTV9QSFlgLiBUaGlzIGlzIGEgY3JpdGljYWwgc3RlcDsgSSBuZWVkIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB3aGF0IHRoaXMgbW9kdWxlIHJlbGllcyBvbiB0byBmdW5jdGlvbiBjb3JyZWN0bHkuIEZpcnN0LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGxvdy1oYW5naW5nIGZydWl0OiBXaGF0IGFyZSB0aGUgb2J2aW91cywgaW1tZWRpYXRlIGRlcGVuZGVuY2llcz8gQXJlIHdlIHRhbGtpbmcgYWJvdXQgc3BlY2lmaWMgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXJzIChIQUxzKSwgcG90ZW50aWFsbHkgZHJpdmVyIG1vZHVsZXMgZm9yIHNwZWNpZmljIGNvbW11bmljYXRpb24gaW50ZXJmYWNlcyAobGlrZSBDQU4gb3IgRXRoZXJuZXQpPyBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgYmFzZWxpbmUgY29tcG9uZW50cy5cblxuTmV4dCwgSSdsbCBuZWVkIHRvIGdvIGRlZXBlci4gQXJlIHRoZXJlIGFueSBpbmRpcmVjdCBkZXBlbmRlbmNpZXM/IFBlcmhhcHMgYE1PVE9SQ09NTV9QSFlgIGNhbGxzIGEgZnVuY3Rpb24gZnJvbSBhIG1vZHVsZSB0aGF0LCBpbiB0dXJuLCBkZXBlbmRzIG9uIGFub3RoZXIgbW9kdWxlLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgZ3JhcGggdG8gZW5zdXJlIEkgaGF2ZSB0aGUgY29tcGxldGUgcGljdHVyZS4gSSdtIGxvb2tpbmcgZm9yIGFueSBoaWRkZW4gY29ubmVjdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSBpc3N1ZXMgbGF0ZXIgb24gZHVyaW5nIGludGVncmF0aW9uIG9yIHRlc3RpbmcuXG5cbkZ1cnRoZXJtb3JlLCBJIGhhdmUgdG8gY29uc2lkZXIgdGhlIHZlcnNpb25zIG9mIHRob3NlIGRlcGVuZGVuY2llcy4gSXMgdGhlcmUgYSBzcGVjaWZpYyB2ZXJzaW9uIHJlcXVpcmVtZW50LCBvciBjYW4gaXQgd29yayB3aXRoIG11bHRpcGxlIHZlcnNpb25zPyBUaGlzIGlzIGNydWNpYWwgZm9yIGF2b2lkaW5nIHVuZXhwZWN0ZWQgYmVoYXZpb3IgZHVlIHRvIEFQSSBjaGFuZ2VzIG9yIGtub3duIGJ1Z3MgaW4gb2xkZXIgdmVyc2lvbnMuIElmIHRoZXJlIGFyZSB2ZXJzaW9uIGNvbnN0cmFpbnRzLCBJJ2xsIGhhdmUgdG8gZG9jdW1lbnQgdGhlbSBtZXRpY3Vsb3VzbHkuXG5cbkkgYWxzbyBuZWVkIHRvIGNoZWNrIGZvciBwbGF0Zm9ybS1zcGVjaWZpYyBkZXBlbmRlbmNpZXMuIElzIGBNT1RPUkNPTU1fUEhZYCBkZXNpZ25lZCB0byBydW4gb24gYSBzcGVjaWZpYyBwcm9jZXNzb3IgYXJjaGl0ZWN0dXJlIG9yIG9wZXJhdGluZyBzeXN0ZW0/IElmIHNvLCB0aG9zZSBkZXBlbmRlbmNpZXMgbmVlZCB0byBiZSBleHBsaWNpdGx5IGxpc3RlZC4gSSBuZWVkIHRvIG1ha2UgYSBub3RlIG9mIHRoaXMsIGluIGNhc2Ugd2Ugd2FudCB0byBwb3J0IHRvIGEgZGlmZmVyZW50IHBsYXRmb3JtLCBvciBoYXZlIGZ1dHVyZSBleHBhbnNpb24gbmVlZHMuXG5cbkZpbmFsbHksIEknbGwgd2FudCB0byB2ZXJpZnkgdGhhdCBhbGwgb2YgdGhlc2UgZGVwZW5kZW5jaWVzIGFyZSBkb2N1bWVudGVkIGFuZCBlYXNpbHkgYWNjZXNzaWJsZS4gQXJlIHRoZXkgZG9jdW1lbnRlZCBpbiBhIGNlbnRyYWwgcmVwb3NpdG9yeSwgd2l0aCBhcHByb3ByaWF0ZSBkb2N1bWVudGF0aW9uLCBvciBhcmUgdGhleSBzY2F0dGVyZWQgYWNyb3NzIHZhcmlvdXMgZmlsZXMgYW5kIGRpcmVjdG9yaWVzPyBNeSBnb2FsIGlzIHRvIGNyZWF0ZSBhIGNsZWFyLCBjb25jaXNlIGRlcGVuZGVuY3kgbWFwLiBJJ2xsIG5lZWQgdG8gdXNlIHRoaXMgaW5mb3JtYXRpb24gdG8gY3JlYXRlIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBtb2R1bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMzYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDoxMS40MDA1MTQwMzFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzA4MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvcGh5L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMzQ3LFxuICBcIkxpbmVDb3VudFwiOiAxMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMzQ3OlxcdGNvbmZpZyBNT1RPUkNPTU1fUEhZXFxuIDM0ODpcXHRcXHR0cmlzdGF0ZSBcXFwiTW90b3Jjb21tIFBIWXNcXFwiXFxuIDM0OTpcXHRcXHRoZWxwXFxuIDM1MDpcXHRcXHQgIEVuYWJsZXMgc3VwcG9ydCBmb3IgTW90b3Jjb21tIG5ldHdvcmsgUEhZcy5cXG4gMzUxOlxcdFxcdCAgQ3VycmVudGx5IHN1cHBvcnRzIFlUODV4eCBHaWdhYml0IEV0aGVybmV0IFBIWXMuXFxuIDM1MjpcXHRcXG4gMzUzOlxcdGNvbmZpZyBOQVRJT05BTF9QSFlcXG4gMzU0OlxcdFxcdHRyaXN0YXRlIFxcXCJOYXRpb25hbCBTZW1pY29uZHVjdG9yIFBIWXNcXFwiXFxuIDM1NTpcXHRcXHRoZWxwXFxuIDM1NjpcXHRcXHQgIEN1cnJlbnRseSBzdXBwb3J0cyB0aGUgRFA4Mzg2NSBQSFkuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjExLjQwMDY1MTkzMVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzMDM3MTU4MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUmVjZW50IFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgYW5kIHRoZSBrZXkgY29uZmlnIGlzIGBNT1RPUkNPTU1fUEhZYC4gQWxyaWdodCwgdGhlIGZ1bmN0aW9ucyB0aGV5J3ZlIGNoYW5nZWQgYXJlIGB5dDg1MjFfcHJvYmVgIGFuZCBgeXQ4NTMxX3Byb2JlYC4gSG1tbSwgaG9sZCBvbi4uLiBpdCBsb29rcyBsaWtlIHRoZXkndmUgYWRkZWQgYHl0cGh5X2dldF9hbmRfZW5hYmxlX3JlZmNsa2AuIFRoYXQgZnVuY3Rpb24uLi4gb2ggeWVhaCwgdGhhdCdzIGNhbGxpbmcgYGRldm1fY2xrX2dldF9vcHRpb25hbF9lbmFibGVkYC4gUmlnaHQsIHNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIHByb2JlIGZ1bmN0aW9uIGZvciBhbiBNRElPIGRldmljZS5cblxuTm93IHRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBzb21ldGhpbmcgd29ydGggZnV6emluZz8gWWVhaCwgYWJzb2x1dGVseS4gVGhpcyBpc24ndCBqdXN0IGEgbWlub3IgdHdlYWs7IGl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSAqd2l0aGluKiB0aGUgcHJvYmUgaXRzZWxmLiBUaGF0J3MgYSBnb29kIHBsYWNlIHRvIHN0YXJ0LlxuXG5MZXQgbWUganVzdCBxdWlja2x5IGNoZWNrIGlmIHRob3NlIGB5dDg1MjFfcHJvYmVgIGFuZCBgeXQ4NTMxX3Byb2JlYCBmdW5jdGlvbnMgYXJlIHN0YXRpYy4gWWVwLCB0aGV5IGFyZS4gT2theSwgdGhhdCBtZWFucyB0aGV5J3JlIGxvY2FsIHRvIHRoaXMgZmlsZSwgd2hpY2ggbmFycm93cyBkb3duIHRoZSBzY29wZSBhIGJpdCwgYnV0IGl0J3Mgc3RpbGwgZ29vZCB0byBrbm93LiBOb3cgSSBuZWVkIHRvIGZpbmQgdGhlIHN0cnVjdCB0aGF0IGFjdHVhbGx5IHJlZmVyZW5jZXMgdGhlc2UgZnVuY3Rpb25zLiBUaGF0IHdpbGwgdGVsbCBtZSB3aGVyZSB0aGUgZW50cnkgcG9pbnRzIGFyZSwgYW5kIHdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBpbnZvbHZlZC4gVGhhdCdzIHRoZSBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MzEsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDoxNS43MDQzODQwMzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMwNTQxMzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInl0ODUyMV9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jPTEwNTc9c3RhdGljIGludCB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMDcwLS8qKlxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYzoxMDcxOiAqIHl0ODUyMV9wcm9iZSgpIC0gcmVhZCBjaGlwIGNvbmZpZyB0aGVuIHNldCBzdWl0YWJsZSBwb2xsaW5nX21vZGVcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMTA3Mi0gKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSBcXHUwMDI2c3RydWN0IHBoeV9kZXZpY2VcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMDc1LSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYzoxMDc2OnN0YXRpYyBpbnQgeXQ4NTIxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTEwNzcte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jPTMwNDc9c3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIG1vdG9yY29tbV9waHlfZHJ2c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwNjAtXFx0XFx0LmdldF9mZWF0dXJlc1xcdD0geXQ4NTIxX2dldF9mZWF0dXJlcyxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MzA2MTpcXHRcXHQucHJvYmVcXHRcXHQ9IHl0ODUyMV9wcm9iZSxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA2Mi1cXHRcXHQucmVhZF9wYWdlXFx0PSB5dDg1MjFfcmVhZF9wYWdlLFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwOTQtXFx0XFx0LmdldF9mZWF0dXJlc1xcdD0geXQ4NTIxX2dldF9mZWF0dXJlcyxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MzA5NTpcXHRcXHQucHJvYmVcXHRcXHQ9IHl0ODUyMV9wcm9iZSxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA5Ni1cXHRcXHQucmVhZF9wYWdlXFx0PSB5dDg1MjFfcmVhZF9wYWdlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDoxNS44MzQ5NzU0NTRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDY3MjcxNzE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBQSFkgUHJvYmUgRnVuY3Rpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgZnVuY3Rpb25zLCBgeXQ4NTIxX3Byb2JlYCBhbmQgYHl0ODUzMV9wcm9iZWAuIFRoZXkgc2VlbSBsaWtlIHRoZSBrZXkgcGxheWVycyBoZXJlLiBCdXQgd2FpdCwgdGhleSdyZSBkZWNsYXJlZCBhcyBgc3RhdGljYC4gSG1tLCB0aGF0IG1ha2VzIG1lIGEgbGl0dGxlIHVuZWFzeS4gU3RhdGljIGZ1bmN0aW9ucyBhcmUsIGJ5IHRoZWlyIG5hdHVyZSwgbGVzcyBsaWtlbHkgdG8gYmUgZ29vZCBmb2N1cyBzeW1ib2xzLiBUaGV5J3JlIGludGVybmFsIHRvIHRoZSBjb21waWxhdGlvbiB1bml0LiBCdXQgdGhlbiBJIHJlbWVtYmVyIHRoZXkncmUgYXNzaWduZWQgdG8gdGhlIGAucHJvYmVgIG1lbWJlciB3aXRoaW4gdGhlIGBzdHJ1Y3QgcGh5X2RyaXZlcmAuLi4gYWgsIHRoYXQgbWFrZXMgbW9yZSBzZW5zZS4gU28gdGhleSAqYXJlKiBiZWluZyB1c2VkIGFzIHRoZSBQSFkgcHJvYmUgZnVuY3Rpb25zLlxuXG5Ob3csIGp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgd2FudCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBwb3RlbnRpYWwgcHJvYmUgZnVuY3Rpb25zIGZsb2F0aW5nIGFyb3VuZC4gTGV0J3MgY2FzdCBhIHF1aWNrIGdsYW5jZSBvdmVyIGBtb3RvcmNvbW0uY2AuIEl0J3MgYSB1c2VmdWwgZmlsZSwgYW5kIEkgd2FudCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIG9idmlvdXMuIEJldHRlciB0byBiZSBjb21wbGV0ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgyNSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjE5LjkwMjI1Mzg0OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc1ODIyNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieXQ4NTMxX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM9MTA3Nj1zdGF0aWMgaW50IHl0ODUyMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTExOTYtXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jOjExOTc6c3RhdGljIGludCB5dDg1MzFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMTE5OC17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM9MzA0Nz1zdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbW90b3Jjb21tX3BoeV9kcnZzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA3OS1cXHRcXHQubmFtZVxcdFxcdD0gXFxcIllUODUzMSBHaWdhYml0IEV0aGVybmV0XFxcIixcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MzA4MDpcXHRcXHQucHJvYmVcXHRcXHQ9IHl0ODUzMV9wcm9iZSxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA4MS1cXHRcXHQuY29uZmlnX2luaXRcXHQ9IHl0ODUzMV9jb25maWdfaW5pdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6MTkuOTc5ODQ0OTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5MjYzMTk1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3NpbmcgYXMgYW4gZXhwZXJ0OlxuXG4qKk5hdmlnYXRpbmcgUEhZIFByb2JlIEZ1bmN0aW9uYWxpdHkqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIHRoZSBQSFkgY29yZSB0cmlnZ2VycyB0aGUgcHJvYmUgZnVuY3Rpb25zLCBzcGVjaWZpY2FsbHkgd2hlbiBhIFBIWSBkZXZpY2UgZ2V0cyByZWdpc3RlcmVkLiBUaGUga2V5IGVudHJ5IHBvaW50IGhlcmUgaXMsIGFzIEkgcmVjYWxsLCB0aGUgYHBoeV9wcm9iZWAgZnVuY3Rpb24gd2l0aGluIHRoZSBjb3JlLiBOb3csIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgaG93IHRoaW5ncyBhcmUgc3RydWN0dXJlZC4gTGV0J3Mgc2VlIGlmIHRoZXJlIGlzIGFueSBpbnRlcmVzdGluZywgbm9uLXN0YXRpYyBzdHVmZiBnb2luZyBvbiBpbiB0aGF0IGBtb3RvcmNvbW0uY2AgZmlsZS4gSSdtIGhvcGluZyBJIGRvbid0IG5lZWQgdG8gZGl2ZSB0aHJvdWdoIGEgYnVuY2ggb2Ygc3RhdGljIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIHRoZSBmbG93LiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQgbWlnaHQgYmUgZXh0ZXJuYWxseSBhY2Nlc3NpYmxlIG9yIG1vZGlmaWFibGUgZnJvbSB0aGF0IG1vZHVsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTM4MiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjIzLjI3MjQ4MjYzNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTE2MTk5NDAsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkVYUE9SVF9TWU1CT0xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDoyMy4zNjQxMTgyNjVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU4MzE0MzY2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipBbmFseXppbmcgdGhlIFN5bWJvbCBUYWJsZSoqXG5cbkFscmlnaHQsIHRoZSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgY2xlYXI6IG5vIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHByZXNlbnQuIFRoYXQncyBhIGtleSBvYnNlcnZhdGlvbiwgYnV0IGl0J3Mgbm90IHRoZSBmdWxsIHBpY3R1cmUuIFRoZSBhYnNlbmNlIG9mIGV4cGxpY2l0bHkgZXhwb3J0ZWQgc3ltYm9scyBkb2Vzbid0IG5lY2Vzc2FyaWx5IG1lYW4gdGhlIGVudGlyZSBjb2RlIGJhc2UgaXMgcHJpdmF0ZS4gTXkgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb25zIHRoZW1zZWx2ZXMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYW55ICpub24tc3RhdGljKiBmdW5jdGlvbnMgZXhpc3QuIFRob3NlLCBldmVuIGlmIG5vdCBleHBsaWNpdGx5IGV4cG9ydGVkLCBtaWdodCBiZSBpbXBsaWNpdGx5IHZpc2libGUgd2l0aGluIGEgbGFyZ2VyIGNvbXBpbGF0aW9uIHVuaXQgb3IgcG90ZW50aWFsbHkgbGlua2VkIGluIG90aGVyIHdheXMsIGNyZWF0aW5nIHRoZSBwb3NzaWJpbGl0eSBvZiBvdXRzaWRlIHVzZS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBpbnZlc3RpZ2F0aW9uIGJlZ2lucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYzNSwiT3V0cHV0VG9rZW5zIjo1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjI2Ljk0NzI2NTA3MloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTQyMzYwOTMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5bYS16QS1aMC05X10rIFthLXpBLVowLTlfXStcXFxcKFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjI3LjA0MTUxMDQ0NVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTU3OTQ4NDQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUEhZIERyaXZlciBQcm9iZSBGdW5jdGlvbnMqKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIHRoYXQgYG1vZHVsZV9waHlfZHJpdmVyKG1vdG9yY29tbV9waHlfZHJ2cyk7YCBjYWxsIGlzIGFsbW9zdCBjZXJ0YWlubHkgYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBtb2R1bGUuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgcmVnaXN0ZXJzIGl0c2VsZi5cblxuUmlnaHQsIHRoZSBwcm9iZSBmdW5jdGlvbnMuLi4gbGV0J3Mgc2VlLiBUaGV5J3JlIGB5dDg1MjFfcHJvYmVgIGFuZCBgeXQ4NTMxX3Byb2JlYC4gU3RhdGljLCBlaD8gRG9lc24ndCBtYXR0ZXIgdG9vIG11Y2g7IHRoZXkncmUgYXNzaWduZWQgdG8gZnVuY3Rpb24gcG9pbnRlcnMgYW5kIGNhbGxlZCBpbmRpcmVjdGx5LCBzbyB0aGUgY29tcGlsZXIgd29uJ3QgaW5saW5lIHRoZW0sIG1ha2luZyB0aGVtIGdvb2QgZm9jdXMgc3ltYm9scyBmb3IgcmV2ZXJzZS1lbmdpbmVlcmluZy5cblxuTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYC4gSXMgaXQgc2VsZi1jb250YWluZWQsIG9yIGRvZXMgaXQgbGVhbiBvbiBvdGhlciBtb2R1bGVzPyBJJ20gcHJldHR5IHN1cmUgaXQgZGVwZW5kcyBvbiBgUEhZTElCYCBiZWNhdXNlIGl0IGxpdmVzIHVuZGVyIHRoZSBgZHJpdmVycy9uZXQvcGh5L2AgbWVudSBpbiBgS2NvbmZpZ2AsIGFuZCB0aGF0IGltcGxpZXMgYFBIWUxJQmAuIFRpbWUgdG8gY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIG91dCBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgLiBMZXQncyBzZWUgd2hhdCdzIHdoYXQgaW4gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NjQsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6MzEuNTk5NDY1NjRaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg1NjcyODM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1lbnVjb25maWcgUEhZTElCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9LY29uZmlnPTY9Y29uZmlnIFBIWUxJTktcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTE0LVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjE1Om1lbnVjb25maWcgUEhZTElCXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTYtXFx0dHJpc3RhdGUgXFxcIlBIWSBEZXZpY2Ugc3VwcG9ydCBhbmQgaW5mcmFzdHJ1Y3R1cmVcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjMxLjY4NTE0NzgyNFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzM4NDA3NDEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ29uZmlndXJhdGlvbiBhbmQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNoYW5nZSBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIlJpZ2h0LCBgUEhZTElCYCBhbmQgYE1PVE9SQ09NTV9QSFlgIGFyZSB0aGUgY29uZmlndXJhdGlvbnMgaW52b2x2ZWQgaGVyZS5cIiBHb3QgaXQuIE1ha2VzIHNlbnNlLiBOb3csIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNhbGwgdG8gYGRldm1fY2xrX2dldF9vcHRpb25hbF9lbmFibGVkYCB3aXRoaW4gdGhlIHByb2JlIGZ1bmN0aW9uLiBIbW0sIGZ1bmN0aW9uYWxseSB0aGlzIHNlZW1zIGxpa2UgYSBzb2xpZCBhZGRpdGlvbiB0byBzZWN1cmUgdGhlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlLlxuXG5MZXQgbWUganVzdCBxdWlja2x5IHZlcmlmeSB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYCwganVzdCB0byBiZSBjZXJ0YWluIHRoZXJlIGFyZSBubyB1bnNlZW4gc2lkZSBlZmZlY3RzLiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGRvZXNuJ3QgYnJlYWsgYW55dGhpbmcgZWxzZSwgeW91IGtub3cgaG93IGl0IGlzLiBKdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJlZm9yZSBJIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYzNzQsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDozNS4wMjM1NTg5MjVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYyMjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BoeS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIFBIWSBMYXllciBDb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdGNvbmZpZyBQSFlMSU5LXFxuICAgNzpcXHRcXHR0cmlzdGF0ZVxcbiAgIDg6XFx0XFx0c2VsZWN0IFBIWUxJQlxcbiAgIDk6XFx0XFx0c2VsZWN0IFNXUEhZXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIFBIWWxpbmsgbW9kZWxzIHRoZSBsaW5rIGJldHdlZW4gdGhlIFBIWSBhbmQgTUFDLCBhbGxvd2luZyBmaXhlZFxcbiAgMTI6XFx0XFx0ICBjb25maWd1cmF0aW9uIGxpbmtzLCBQSFlzLCBhbmQgU2VyZGVzIGxpbmtzIHdpdGggTUFDIGxldmVsXFxuICAxMzpcXHRcXHQgIGF1dG9uZWdvdGlhdGlvbiBtb2Rlcy5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0bWVudWNvbmZpZyBQSFlMSUJcXG4gIDE2OlxcdFxcdHRyaXN0YXRlIFxcXCJQSFkgRGV2aWNlIHN1cHBvcnQgYW5kIGluZnJhc3RydWN0dXJlXFxcIlxcbiAgMTc6XFx0XFx0aGVscFxcbiAgMTg6XFx0XFx0ICBFdGhlcm5ldCBjb250cm9sbGVycyBhcmUgdXN1YWxseSBhdHRhY2hlZCB0byBQSFlcXG4gIDE5OlxcdFxcdCAgZGV2aWNlcy4gIFRoaXMgb3B0aW9uIHByb3ZpZGVzIGluZnJhc3RydWN0dXJlIGZvclxcbiAgMjA6XFx0XFx0ICBtYW5hZ2luZyBQSFkgZGV2aWNlcy5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6MzUuMDIzNzI1MTE0WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMDA2Nzk2MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTW90b3Jjb21tIFBIWSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gaXQgbG9va3MgbGlrZSBgTU9UT1JDT01NX1BIWWAgaXMgdGhlIG9ubHkgY29uZmlndXJhdGlvbiBvcHRpb24gSSByZWFsbHkgbmVlZCB0byBiZSBjb25jZXJuZWQgd2l0aCBoZXJlLiBFeGNlbGxlbnQsIHRoYXQgc2ltcGxpZmllcyB0aGluZ3MuIE15IHByaW1hcnkgYXJlYXMgb2YgZm9jdXMgYXJlIGRlZmluaXRlbHkgYHl0ODUyMV9wcm9iZWAgYW5kIGB5dDg1MzFfcHJvYmVg4oCUdGhvc2Ugc2VlbSB0byBiZSB0aGUgY3JpdGljYWwgZnVuY3Rpb25zIGJlaW5nIHRvdWNoZWQuXG5cbkhtbSwgd2FpdCwgSSBzZWUgYHl0cGh5X2dldF9hbmRfZW5hYmxlX3JlZmNsa2AgaXMgYWxzbyBtZW50aW9uZWQgYXMgYSBjaGFuZ2UuIEl0J3MgbWFya2VkIGFzIHN0YXRpYyBzbyBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoYXQgaXQgaXMgc3ViamVjdCB0byBpbmxpbmluZywgYW5kIHRoZXJlZm9yZSwgY291bGQgY29tcGxpY2F0ZSB0aGluZ3MuIEJlc3QgdG8gaW5jbHVkZSBpdCBpbiB0aGUgYW5hbHlzaXMsIGJ1dCB1bmRlcnN0YW5kIHRoYXQgaXRzIGltcGFjdCBtaWdodCBiZSBpbnRlZ3JhdGVkIHdpdGhpbiB0aGUgcHJvYmUgZnVuY3Rpb25zLlxuXG5SaWdodCwgbGV0IG1lIGRvdWJsZS1jaGVjay4gSSdtIHNhdGlzZmllZCB0aGF0IGBDT05GSUdfTU9UT1JDT01NX1BIWWAgaXMgdGhlIG9ubHkgY29uZmlnIHRvIHRyYWNrLlxuXG5Fc3NlbnRpYWxseSwgdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBuZXcgbG9naWMgd2l0aGluIHRoZSBwcm9iZSByb3V0aW5lcyBvZiBNb3RvcmNvbW0gUEhZIGRldmljZXMuIFNwZWNpZmljYWxseSwgdGhpcyBpcyB0byBoYW5kbGUgZ2V0dGluZyBhbmQgZW5hYmxpbmcgYSByZWZlcmVuY2UgY2xvY2suIEEgZnVuY3Rpb25hbCBjaGFuZ2Ugc3VjaCBhcyB0aGlzIGltcGFjdHMgdGhlIHByb2JlIHBhdGgsIGFuZCB0aGlzIGlzIGFwcGxpY2FibGUgdG8gTURJTyBidXMgZW11bGF0aW9uIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY4NDcsIk91dHB1dFRva2VucyI6MTAwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6NDAuMDI0NDA4OTAxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU5NjI4NTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNT1RPUkNPTU1fUEhZXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieXQ4NTIxX3Byb2JlXCIsXG4gICAgXCJ5dDg1MzFfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTU9UT1JDT01NX1BIWVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInl0ODUyMV9wcm9iZVwiLFxuICAgIFwieXQ4NTMxX3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBsb2dpYyB0byBnZXQgYW5kIGVuYWJsZSBhIHJlZmVyZW5jZSBjbG9jayBkdXJpbmcgdGhlIHByb2JlIG9mIE1vdG9yY29tbSBQSFkgZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIgcHJvYmUgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgTURJTyBidXMgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-28 18:31:22 +0000 UTC FinishedAt: 2026-07-28 19:04:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "2354e975932dabb06fad239f07a3b68fd1809737", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MOTORCOMM_PHY" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "2354e975932dabb06fad239f07a3b68fd1809737", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MOTORCOMM_PHY" ], "series_id": "93cccba5-9be0-461d-820b-007d780aa178" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "yt8521_probe", "yt8531_probe" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01PVE9SQ09NTV9QSFkmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt5dDg1MjFfcHJvYmUmIzM0OywKICAgICYjMzQ7eXQ4NTMxX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgbG9naWMgdG8gZ2V0IGFuZCBlbmFibGUgYSByZWZlcmVuY2UgY2xvY2sgZHVyaW5nIHRoZSBwcm9iZSBvZiBNb3RvcmNvbW0gUEhZIGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyIHByb2JlIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIE1ESU8gYnVzIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDk2N2IwYWUxNzI0YzFiYzZlNmE2OWMwODQ3YmVmMGM2OWE4NTUzOThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAxOTowMzo1OSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcbmluZGV4IDcwODQ5MWJjMTk4YTcuLjMyZWI1Y2U5M2E0ZTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xuQEAgLTYsNiAmIzQzOzYsNyBAQFxuICAqIEF1dGhvcjogRnJhbmsgXHUwMDNjRnJhbmsuU2FlQG1vdG9yLWNvbW0uY29tXHUwMDNlXG4gICovXG4gXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2Nsay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2tlcm5lbC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbkBAIC0xMDQzLDYgJiM0MzsxMDQ0LDI5IEBAIHN0YXRpYyBpbnQgeXQ4NTMxX3NldF9kcyhzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiM0MzsvKipcbiYjNDM7ICogeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKCkgLSBnZXQgYW5kIGVuYWJsZSB0aGUgUEhZIHJlZmVyZW5jZSBjbG9ja1xuJiM0MzsgKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSBcdTAwMjZzdHJ1Y3QgcGh5X2RldmljZVxuJiM0MzsgKlxuJiM0MzsgKiBBIGNyeXN0YWwtbGVzcyBZVDg1MjEvWVQ4NTMxIHRha2VzIGl0cyAyNSBNSHogcmVmZXJlbmNlIGZyb20gdGhlIFNvQy4gV2hlblxuJiM0MzsgKiB0aGF0IHJlZmVyZW5jZSBpcyBkZXNjcmliZWQgYXMgYSBjbG9jaywgZW5hYmxlIGl0IGZvciB0aGUgbGlmZSBvZiB0aGVcbiYjNDM7ICogZGV2aWNlLiBJdCBpcyBvcHRpb25hbCwgc28gY3J5c3RhbC1jbG9ja2VkIGJvYXJkcyBhcmUgdW5hZmZlY3RlZC5cbiYjNDM7ICpcbiYjNDM7ICogcmV0dXJucyAwIG9yIG5lZ2F0aXZlIGVycm5vIGNvZGVcbiYjNDM7ICovXG4mIzQzO3N0YXRpYyBpbnQgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwaHlkZXYtXHUwMDNlbWRpby5kZXY7XG4mIzQzO1x0c3RydWN0IGNsayAqY2xrO1xuJiM0MztcbiYjNDM7XHRjbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWxfZW5hYmxlZChkZXYsIE5VTEwpO1xuJiM0MztcdGlmIChJU19FUlIoY2xrKSlcbiYjNDM7XHRcdHJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihjbGspLFxuJiM0MztcdFx0XHRcdCAgICAgXCYjMzQ7ZmFpbGVkIHRvIGdldCBhbmQgZW5hYmxlIHRoZSByZWZlcmVuY2UgY2xvY2tcXG5cJiMzNDspO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gMDtcbiYjNDM7fVxuJiM0MztcbiAvKipcbiAgKiB5dDg1MjFfcHJvYmUoKSAtIHJlYWQgY2hpcCBjb25maWcgdGhlbiBzZXQgc3VpdGFibGUgcG9sbGluZ19tb2RlXG4gICogQHBoeWRldjogYSBwb2ludGVyIHRvIGEgXHUwMDI2c3RydWN0IHBoeV9kZXZpY2VcbkBAIC0xMDY0LDYgJiM0MzsxMDg4LDEwIEBAIHN0YXRpYyBpbnQgeXQ4NTIxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXG4gXHRwaHlkZXYtXHUwMDNlcHJpdiA9IHByaXY7XG4gXG4mIzQzO1x0cmV0ID0geXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHBoeWRldik7XG4mIzQzO1x0aWYgKHJldClcbiYjNDM7XHRcdHJldHVybiByZXQ7XG4mIzQzO1xuIFx0Y2hpcF9jb25maWcgPSB5dHBoeV9yZWFkX2V4dF93aXRoX2xvY2socGh5ZGV2LCBZVDg1MjFfQ0hJUF9DT05GSUdfUkVHKTtcbiBcdGlmIChjaGlwX2NvbmZpZyBcdTAwM2MgMClcbiBcdFx0cmV0dXJuIGNoaXBfY29uZmlnO1xuQEAgLTExNzEsNiAmIzQzOzExOTksMTEgQEAgc3RhdGljIGludCB5dDg1MzFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbiBcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNnBoeWRldi1cdTAwM2VtZGlvLmRldjtcbiBcdHUxNiBtYXNrLCB2YWw7XG4gXHR1MzIgZnJlcTtcbiYjNDM7XHRpbnQgcmV0O1xuJiM0MztcbiYjNDM7XHRyZXQgPSB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsocGh5ZGV2KTtcbiYjNDM7XHRpZiAocmV0KVxuJiM0MztcdFx0cmV0dXJuIHJldDtcbiBcbiBcdGlmIChkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCBcJiMzNDttb3RvcmNvbW0sY2xrLW91dC1mcmVxdWVuY3ktaHpcJiMzNDssIFx1MDAyNmZyZXEpKVxuIFx0XHRmcmVxID0gWVRQSFlfRFRTX09VVFBVVF9DTEtfRElTO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNT1RPUkNPTU1fUEhZJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7eXQ4NTIxX3Byb2JlJiMzNDssCiAgICAmIzM0O3l0ODUzMV9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5NjdiMGFlMTcyNGMxYmM2ZTZhNjljMDg0N2JlZjBjNjlhODU1Mzk4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMTk6MDM6NTkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMKaW5kZXggNzA4NDkxYmMxOThhNy4uMzJlYjVjZTkzYTRlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYwpAQCAtNiw2ICYjNDM7Niw3IEBACiAgKiBBdXRob3I6IEZyYW5rICZsdDtGcmFuay5TYWVAbW90b3ItY29tbS5jb20mZ3Q7CiAgKi8KIAomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9jbGsuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9ldGhlcmRldmljZS5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2tlcm5lbC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L21vZHVsZS5oJmd0OwpAQCAtMTA0Myw2ICYjNDM7MTA0NCwyOSBAQCBzdGF0aWMgaW50IHl0ODUzMV9zZXRfZHMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gMDsKIH0KIAomIzQzOy8qKgomIzQzOyAqIHl0cGh5X2dldF9hbmRfZW5hYmxlX3JlZmNsaygpIC0gZ2V0IGFuZCBlbmFibGUgdGhlIFBIWSByZWZlcmVuY2UgY2xvY2sKJiM0MzsgKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSAmYW1wO3N0cnVjdCBwaHlfZGV2aWNlCiYjNDM7ICoKJiM0MzsgKiBBIGNyeXN0YWwtbGVzcyBZVDg1MjEvWVQ4NTMxIHRha2VzIGl0cyAyNSBNSHogcmVmZXJlbmNlIGZyb20gdGhlIFNvQy4gV2hlbgomIzQzOyAqIHRoYXQgcmVmZXJlbmNlIGlzIGRlc2NyaWJlZCBhcyBhIGNsb2NrLCBlbmFibGUgaXQgZm9yIHRoZSBsaWZlIG9mIHRoZQomIzQzOyAqIGRldmljZS4gSXQgaXMgb3B0aW9uYWwsIHNvIGNyeXN0YWwtY2xvY2tlZCBib2FyZHMgYXJlIHVuYWZmZWN0ZWQuCiYjNDM7ICoKJiM0MzsgKiByZXR1cm5zIDAgb3IgbmVnYXRpdmUgZXJybm8gY29kZQomIzQzOyAqLwomIzQzO3N0YXRpYyBpbnQgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYW1wO3BoeWRldi0mZ3Q7bWRpby5kZXY7CiYjNDM7CXN0cnVjdCBjbGsgKmNsazsKJiM0MzsKJiM0MzsJY2xrID0gZGV2bV9jbGtfZ2V0X29wdGlvbmFsX2VuYWJsZWQoZGV2LCBOVUxMKTsKJiM0MzsJaWYgKElTX0VSUihjbGspKQomIzQzOwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGNsayksCiYjNDM7CQkJCSAgICAgJiMzNDtmYWlsZWQgdG8gZ2V0IGFuZCBlbmFibGUgdGhlIHJlZmVyZW5jZSBjbG9ja1xuJiMzNDspOwomIzQzOwomIzQzOwlyZXR1cm4gMDsKJiM0Mzt9CiYjNDM7CiAvKioKICAqIHl0ODUyMV9wcm9iZSgpIC0gcmVhZCBjaGlwIGNvbmZpZyB0aGVuIHNldCBzdWl0YWJsZSBwb2xsaW5nX21vZGUKICAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhICZhbXA7c3RydWN0IHBoeV9kZXZpY2UKQEAgLTEwNjQsNiAmIzQzOzEwODgsMTAgQEAgc3RhdGljIGludCB5dDg1MjFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAogCXBoeWRldi0mZ3Q7cHJpdiA9IHByaXY7CiAKJiM0MzsJcmV0ID0geXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHBoeWRldik7CiYjNDM7CWlmIChyZXQpCiYjNDM7CQlyZXR1cm4gcmV0OwomIzQzOwogCWNoaXBfY29uZmlnID0geXRwaHlfcmVhZF9leHRfd2l0aF9sb2NrKHBoeWRldiwgWVQ4NTIxX0NISVBfQ09ORklHX1JFRyk7CiAJaWYgKGNoaXBfY29uZmlnICZsdDsgMCkKIAkJcmV0dXJuIGNoaXBfY29uZmlnOwpAQCAtMTE3MSw2ICYjNDM7MTE5OSwxMSBAQCBzdGF0aWMgaW50IHl0ODUzMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KQogCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZhbXA7cGh5ZGV2LSZndDttZGlvLmRldjsKIAl1MTYgbWFzaywgdmFsOwogCXUzMiBmcmVxOwomIzQzOwlpbnQgcmV0OwomIzQzOwomIzQzOwlyZXQgPSB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsocGh5ZGV2KTsKJiM0MzsJaWYgKHJldCkKJiM0MzsJCXJldHVybiByZXQ7CiAKIAlpZiAoZGV2aWNlX3Byb3BlcnR5X3JlYWRfdTMyKGRldiwgJiMzNDttb3RvcmNvbW0sY2xrLW91dC1mcmVxdWVuY3ktaHomIzM0OywgJmFtcDtmcmVxKSkKIAkJZnJlcSA9IFlUUEhZX0RUU19PVVRQVVRfQ0xLX0RJUzsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTk6MDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDI0NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQSFkgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY2AuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgaW50cm9kdWNpbmcgYSBuZXcgZnVuY3Rpb24gY2FsbGVkIGB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGtgLiBUaGlzIGlzIGludGVyZXN0aW5nIGJlY2F1c2UgaXQgZGVhbHMgd2l0aCBnZXR0aW5nIGFuZCBlbmFibGluZyBhIHJlZmVyZW5jZSBjbG9jaywgYW5kIGl0JiMzOTtzIGJlaW5nIGNhbGxlZCBmcm9tIHRoZSBwcm9iZSBmdW5jdGlvbnMgZm9yIHRoZSB5dDg1MjEgYW5kIHl0ODUzMSBQSFlzLgoKTXkgZmlyc3QgdGhvdWdodCBpcyBhbHdheXMsICYjMzQ7Q2FuIEkgcmVhY2ggdGhpcyBpbiBRRU1VPyYjMzQ7IEl0JiMzOTtzIGEgTW90b3Jjb21tIFBIWSBkcml2ZXIsIHNvIHR5cGljYWxseSBQSFkgZHJpdmVycyBhcmUgYnJvdWdodCB1cCB3aGVuIGEgbmV0d29yayBpbnRlcmZhY2Ugd2l0aCB0aGF0IFBIWSBpcyByZWdpc3RlcmVkLiBJbiBhIHZpcnR1YWxpemVkIHNldHRpbmcsIEkmIzM5O2QgdXN1YWxseSB0cmlnZ2VyIHRoaXMgdmlhIGEgdmlydHVhbCBNRElPIGJ1cyBvciBzb21ldGhpbmcgc2ltaWxhci4gUmVtZW1iZXIsIG1vc3Qgb2YgdGhlIHRpbWUsIHRoZSBkcml2ZXIgcHJvYmUgaXMgdHJpZ2dlcmVkIHRocm91Z2ggTURJTyBidXMgc2Nhbm5pbmcuCgpXYWl0IGEgc2Vjb25kLCB0aGlzIGlzIGlkZWFsIGZvciBmdXp6aW5nLiBTeXprYWxsZXIgY2FuIGluamVjdCBNRElPIGRldmljZXMsIG9yIGV2ZW4gdXNlIGR1bW15IG5ldHdvcmsgZGV2aWNlcyB0aGF0IGhhdmUgYXNzb2NpYXRlZCBNRElPIGJ1c2VzLiBTaW5jZSB0aGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBkcml2ZXImIzM5O3MgcHJvYmUgZnVuY3Rpb24sIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy4KCk5vdywgbGV0JiMzOTtzIGZpbmQgdGhlIGNvbmZpZyBmb3IgdGhpcyBkcml2ZXIuIEkmIzM5O20gZ29pbmcgdG8ganVtcCB0byBgZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jYCBhbmQgZmlndXJlIG91dCB0aGUgYENPTkZJR19gIG9wdGlvbi4gQWgsIGBDT05GSUdfTU9UT1JDT01NX1BIWWAuIFBlcmZlY3QuIE5vdywgSSBzaG91bGQgZG91YmxlIGNoZWNrIGBkcml2ZXJzL25ldC9waHkvS2NvbmZpZ2AgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGFueSBvdGhlciBwb3RlbnRpYWwgY29uZmlndXJhdGlvbnMgcmVsYXRlZCB0byBgTU9UT1JDT01NX1BIWWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTk6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TU9UT1JDT01NX1BIWSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnPTMzOD1jb25maWcgTUlDUk9TRU1JX1BIWVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTM0Ni1cbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjM0Nzpjb25maWcgTU9UT1JDT01NX1BIWVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMzQ4LVx0dHJpc3RhdGUgXCYjMzQ7TW90b3Jjb21tIFBIWXNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzM2CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhlIGRlcGVuZGVuY2llcyBvZiBgTU9UT1JDT01NX1BIWWA6CgoqKkFuYWx5emluZyBEZXBlbmRlbmNpZXM6IE1PVE9SQ09NTV9QSFkqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYC4gVGhpcyBpcyBhIGNyaXRpY2FsIHN0ZXA7IEkgbmVlZCBhIGNsZWFyIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGlzIG1vZHVsZSByZWxpZXMgb24gdG8gZnVuY3Rpb24gY29ycmVjdGx5LiBGaXJzdCwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgbG93LWhhbmdpbmcgZnJ1aXQ6IFdoYXQgYXJlIHRoZSBvYnZpb3VzLCBpbW1lZGlhdGUgZGVwZW5kZW5jaWVzPyBBcmUgd2UgdGFsa2luZyBhYm91dCBzcGVjaWZpYyBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllcnMgKEhBTHMpLCBwb3RlbnRpYWxseSBkcml2ZXIgbW9kdWxlcyBmb3Igc3BlY2lmaWMgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2VzIChsaWtlIENBTiBvciBFdGhlcm5ldCk/IEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHRoZSBiYXNlbGluZSBjb21wb25lbnRzLgoKTmV4dCwgSSYjMzk7bGwgbmVlZCB0byBnbyBkZWVwZXIuIEFyZSB0aGVyZSBhbnkgaW5kaXJlY3QgZGVwZW5kZW5jaWVzPyBQZXJoYXBzIGBNT1RPUkNPTU1fUEhZYCBjYWxscyBhIGZ1bmN0aW9uIGZyb20gYSBtb2R1bGUgdGhhdCwgaW4gdHVybiwgZGVwZW5kcyBvbiBhbm90aGVyIG1vZHVsZS4gSSBuZWVkIHRvIHRyYWNlIHRoZSBjYWxsIGdyYXBoIHRvIGVuc3VyZSBJIGhhdmUgdGhlIGNvbXBsZXRlIHBpY3R1cmUuIEkmIzM5O20gbG9va2luZyBmb3IgYW55IGhpZGRlbiBjb25uZWN0aW9ucyB0aGF0IGNvdWxkIGNhdXNlIGlzc3VlcyBsYXRlciBvbiBkdXJpbmcgaW50ZWdyYXRpb24gb3IgdGVzdGluZy4KCkZ1cnRoZXJtb3JlLCBJIGhhdmUgdG8gY29uc2lkZXIgdGhlIHZlcnNpb25zIG9mIHRob3NlIGRlcGVuZGVuY2llcy4gSXMgdGhlcmUgYSBzcGVjaWZpYyB2ZXJzaW9uIHJlcXVpcmVtZW50LCBvciBjYW4gaXQgd29yayB3aXRoIG11bHRpcGxlIHZlcnNpb25zPyBUaGlzIGlzIGNydWNpYWwgZm9yIGF2b2lkaW5nIHVuZXhwZWN0ZWQgYmVoYXZpb3IgZHVlIHRvIEFQSSBjaGFuZ2VzIG9yIGtub3duIGJ1Z3MgaW4gb2xkZXIgdmVyc2lvbnMuIElmIHRoZXJlIGFyZSB2ZXJzaW9uIGNvbnN0cmFpbnRzLCBJJiMzOTtsbCBoYXZlIHRvIGRvY3VtZW50IHRoZW0gbWV0aWN1bG91c2x5LgoKSSBhbHNvIG5lZWQgdG8gY2hlY2sgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGRlcGVuZGVuY2llcy4gSXMgYE1PVE9SQ09NTV9QSFlgIGRlc2lnbmVkIHRvIHJ1biBvbiBhIHNwZWNpZmljIHByb2Nlc3NvciBhcmNoaXRlY3R1cmUgb3Igb3BlcmF0aW5nIHN5c3RlbT8gSWYgc28sIHRob3NlIGRlcGVuZGVuY2llcyBuZWVkIHRvIGJlIGV4cGxpY2l0bHkgbGlzdGVkLiBJIG5lZWQgdG8gbWFrZSBhIG5vdGUgb2YgdGhpcywgaW4gY2FzZSB3ZSB3YW50IHRvIHBvcnQgdG8gYSBkaWZmZXJlbnQgcGxhdGZvcm0sIG9yIGhhdmUgZnV0dXJlIGV4cGFuc2lvbiBuZWVkcy4KCkZpbmFsbHksIEkmIzM5O2xsIHdhbnQgdG8gdmVyaWZ5IHRoYXQgYWxsIG9mIHRoZXNlIGRlcGVuZGVuY2llcyBhcmUgZG9jdW1lbnRlZCBhbmQgZWFzaWx5IGFjY2Vzc2libGUuIEFyZSB0aGV5IGRvY3VtZW50ZWQgaW4gYSBjZW50cmFsIHJlcG9zaXRvcnksIHdpdGggYXBwcm9wcmlhdGUgZG9jdW1lbnRhdGlvbiwgb3IgYXJlIHRoZXkgc2NhdHRlcmVkIGFjcm9zcyB2YXJpb3VzIGZpbGVzIGFuZCBkaXJlY3Rvcmllcz8gTXkgZ29hbCBpcyB0byBjcmVhdGUgYSBjbGVhciwgY29uY2lzZSBkZXBlbmRlbmN5IG1hcC4gSSYjMzk7bGwgbmVlZCB0byB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBjcmVhdGUgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG1vZHVsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzQ3LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzNDc6XHRjb25maWcgTU9UT1JDT01NX1BIWVxuIDM0ODpcdFx0dHJpc3RhdGUgXCYjMzQ7TW90b3Jjb21tIFBIWXNcJiMzNDtcbiAzNDk6XHRcdGhlbHBcbiAzNTA6XHRcdCAgRW5hYmxlcyBzdXBwb3J0IGZvciBNb3RvcmNvbW0gbmV0d29yayBQSFlzLlxuIDM1MTpcdFx0ICBDdXJyZW50bHkgc3VwcG9ydHMgWVQ4NXh4IEdpZ2FiaXQgRXRoZXJuZXQgUEhZcy5cbiAzNTI6XHRcbiAzNTM6XHRjb25maWcgTkFUSU9OQUxfUEhZXG4gMzU0Olx0XHR0cmlzdGF0ZSBcJiMzNDtOYXRpb25hbCBTZW1pY29uZHVjdG9yIFBIWXNcJiMzNDtcbiAzNTU6XHRcdGhlbHBcbiAzNTY6XHRcdCAgQ3VycmVudGx5IHN1cHBvcnRzIHRoZSBEUDgzODY1IFBIWS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTMxCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJlY2VudCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgYW5kIHRoZSBrZXkgY29uZmlnIGlzIGBNT1RPUkNPTU1fUEhZYC4gQWxyaWdodCwgdGhlIGZ1bmN0aW9ucyB0aGV5JiMzOTt2ZSBjaGFuZ2VkIGFyZSBgeXQ4NTIxX3Byb2JlYCBhbmQgYHl0ODUzMV9wcm9iZWAuIEhtbW0sIGhvbGQgb24uLi4gaXQgbG9va3MgbGlrZSB0aGV5JiMzOTt2ZSBhZGRlZCBgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrYC4gVGhhdCBmdW5jdGlvbi4uLiBvaCB5ZWFoLCB0aGF0JiMzOTtzIGNhbGxpbmcgYGRldm1fY2xrX2dldF9vcHRpb25hbF9lbmFibGVkYC4gUmlnaHQsIHNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIHByb2JlIGZ1bmN0aW9uIGZvciBhbiBNRElPIGRldmljZS4KCk5vdyB0aGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgc29tZXRoaW5nIHdvcnRoIGZ1enppbmc/IFllYWgsIGFic29sdXRlbHkuIFRoaXMgaXNuJiMzOTt0IGp1c3QgYSBtaW5vciB0d2VhazsgaXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSAqd2l0aGluKiB0aGUgcHJvYmUgaXRzZWxmLiBUaGF0JiMzOTtzIGEgZ29vZCBwbGFjZSB0byBzdGFydC4KCkxldCBtZSBqdXN0IHF1aWNrbHkgY2hlY2sgaWYgdGhvc2UgYHl0ODUyMV9wcm9iZWAgYW5kIGB5dDg1MzFfcHJvYmVgIGZ1bmN0aW9ucyBhcmUgc3RhdGljLiBZZXAsIHRoZXkgYXJlLiBPa2F5LCB0aGF0IG1lYW5zIHRoZXkmIzM5O3JlIGxvY2FsIHRvIHRoaXMgZmlsZSwgd2hpY2ggbmFycm93cyBkb3duIHRoZSBzY29wZSBhIGJpdCwgYnV0IGl0JiMzOTtzIHN0aWxsIGdvb2QgdG8ga25vdy4gTm93IEkgbmVlZCB0byBmaW5kIHRoZSBzdHJ1Y3QgdGhhdCBhY3R1YWxseSByZWZlcmVuY2VzIHRoZXNlIGZ1bmN0aW9ucy4gVGhhdCB3aWxsIHRlbGwgbWUgd2hlcmUgdGhlIGVudHJ5IHBvaW50cyBhcmUsIGFuZCB3aGF0IGRhdGEgc3RydWN0dXJlcyBhcmUgaW52b2x2ZWQuIFRoYXQmIzM5O3MgdGhlIG5leHQgc3RlcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt5dDg1MjFfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jPTEwNTc9c3RhdGljIGludCB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbi0tXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMTA3MC0vKipcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYzoxMDcxOiAqIHl0ODUyMV9wcm9iZSgpIC0gcmVhZCBjaGlwIGNvbmZpZyB0aGVuIHNldCBzdWl0YWJsZSBwb2xsaW5nX21vZGVcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMDcyLSAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlfZGV2aWNlXG4tLVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTEwNzUtICovXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MTA3NjpzdGF0aWMgaW50IHl0ODUyMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTEwNzcte1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYz0zMDQ3PXN0YXRpYyBzdHJ1Y3QgcGh5X2RyaXZlciBtb3RvcmNvbW1fcGh5X2RydnNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA2MC1cdFx0LmdldF9mZWF0dXJlc1x0PSB5dDg1MjFfZ2V0X2ZlYXR1cmVzLFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jOjMwNjE6XHRcdC5wcm9iZVx0XHQ9IHl0ODUyMV9wcm9iZSxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0zMDYyLVx0XHQucmVhZF9wYWdlXHQ9IHl0ODUyMV9yZWFkX3BhZ2UsXG4tLVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwOTQtXHRcdC5nZXRfZmVhdHVyZXNcdD0geXQ4NTIxX2dldF9mZWF0dXJlcyxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYzozMDk1Olx0XHQucHJvYmVcdFx0PSB5dDg1MjFfcHJvYmUsXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA5Ni1cdFx0LnJlYWRfcGFnZVx0PSB5dDg1MjFfcmVhZF9wYWdlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ4MjUKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUEhZIFByb2JlIEZ1bmN0aW9ucyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgZnVuY3Rpb25zLCBgeXQ4NTIxX3Byb2JlYCBhbmQgYHl0ODUzMV9wcm9iZWAuIFRoZXkgc2VlbSBsaWtlIHRoZSBrZXkgcGxheWVycyBoZXJlLiBCdXQgd2FpdCwgdGhleSYjMzk7cmUgZGVjbGFyZWQgYXMgYHN0YXRpY2AuIEhtbSwgdGhhdCBtYWtlcyBtZSBhIGxpdHRsZSB1bmVhc3kuIFN0YXRpYyBmdW5jdGlvbnMgYXJlLCBieSB0aGVpciBuYXR1cmUsIGxlc3MgbGlrZWx5IHRvIGJlIGdvb2QgZm9jdXMgc3ltYm9scy4gVGhleSYjMzk7cmUgaW50ZXJuYWwgdG8gdGhlIGNvbXBpbGF0aW9uIHVuaXQuIEJ1dCB0aGVuIEkgcmVtZW1iZXIgdGhleSYjMzk7cmUgYXNzaWduZWQgdG8gdGhlIGAucHJvYmVgIG1lbWJlciB3aXRoaW4gdGhlIGBzdHJ1Y3QgcGh5X2RyaXZlcmAuLi4gYWgsIHRoYXQgbWFrZXMgbW9yZSBzZW5zZS4gU28gdGhleSAqYXJlKiBiZWluZyB1c2VkIGFzIHRoZSBQSFkgcHJvYmUgZnVuY3Rpb25zLgoKTm93LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHdhbnQgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcG90ZW50aWFsIHByb2JlIGZ1bmN0aW9ucyBmbG9hdGluZyBhcm91bmQuIExldCYjMzk7cyBjYXN0IGEgcXVpY2sgZ2xhbmNlIG92ZXIgYG1vdG9yY29tbS5jYC4gSXQmIzM5O3MgYSB1c2VmdWwgZmlsZSwgYW5kIEkgd2FudCB0byBtYWtlIHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhbnl0aGluZyBvYnZpb3VzLiBCZXR0ZXIgdG8gYmUgY29tcGxldGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3l0ODUzMV9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM9MTA3Nj1zdGF0aWMgaW50IHl0ODUyMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMTk2LVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jOjExOTc6c3RhdGljIGludCB5dDg1MzFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMTk4LXtcbi0tXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM9MzA0Nz1zdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbW90b3Jjb21tX3BoeV9kcnZzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwNzktXHRcdC5uYW1lXHRcdD0gXCYjMzQ7WVQ4NTMxIEdpZ2FiaXQgRXRoZXJuZXRcJiMzNDssXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MzA4MDpcdFx0LnByb2JlXHRcdD0geXQ4NTMxX3Byb2JlLFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwODEtXHRcdC5jb25maWdfaW5pdFx0PSB5dDg1MzFfY29uZmlnX2luaXQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzODIKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzaW5nIGFzIGFuIGV4cGVydDoKCioqTmF2aWdhdGluZyBQSFkgUHJvYmUgRnVuY3Rpb25hbGl0eSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLCB0aGUgUEhZIGNvcmUgdHJpZ2dlcnMgdGhlIHByb2JlIGZ1bmN0aW9ucywgc3BlY2lmaWNhbGx5IHdoZW4gYSBQSFkgZGV2aWNlIGdldHMgcmVnaXN0ZXJlZC4gVGhlIGtleSBlbnRyeSBwb2ludCBoZXJlIGlzLCBhcyBJIHJlY2FsbCwgdGhlIGBwaHlfcHJvYmVgIGZ1bmN0aW9uIHdpdGhpbiB0aGUgY29yZS4gTm93LCBJIG5lZWQgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIGhvdyB0aGluZ3MgYXJlIHN0cnVjdHVyZWQuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgaXMgYW55IGludGVyZXN0aW5nLCBub24tc3RhdGljIHN0dWZmIGdvaW5nIG9uIGluIHRoYXQgYG1vdG9yY29tbS5jYCBmaWxlLiBJJiMzOTttIGhvcGluZyBJIGRvbiYjMzk7dCBuZWVkIHRvIGRpdmUgdGhyb3VnaCBhIGJ1bmNoIG9mIHN0YXRpYyBmdW5jdGlvbnMgdG8gdW5kZXJzdGFuZCB0aGUgZmxvdy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB3aGF0IG1pZ2h0IGJlIGV4dGVybmFsbHkgYWNjZXNzaWJsZSBvciBtb2RpZmlhYmxlIGZyb20gdGhhdCBtb2R1bGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2MzUKCQkJCQkJCW91dHB1dDogNTMKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkFuYWx5emluZyB0aGUgU3ltYm9sIFRhYmxlKioKCkFscmlnaHQsIHRoZSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgY2xlYXI6IG5vIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHByZXNlbnQuIFRoYXQmIzM5O3MgYSBrZXkgb2JzZXJ2YXRpb24sIGJ1dCBpdCYjMzk7cyBub3QgdGhlIGZ1bGwgcGljdHVyZS4gVGhlIGFic2VuY2Ugb2YgZXhwbGljaXRseSBleHBvcnRlZCBzeW1ib2xzIGRvZXNuJiMzOTt0IG5lY2Vzc2FyaWx5IG1lYW4gdGhlIGVudGlyZSBjb2RlIGJhc2UgaXMgcHJpdmF0ZS4gTXkgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb25zIHRoZW1zZWx2ZXMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYW55ICpub24tc3RhdGljKiBmdW5jdGlvbnMgZXhpc3QuIFRob3NlLCBldmVuIGlmIG5vdCBleHBsaWNpdGx5IGV4cG9ydGVkLCBtaWdodCBiZSBpbXBsaWNpdGx5IHZpc2libGUgd2l0aGluIGEgbGFyZ2VyIGNvbXBpbGF0aW9uIHVuaXQgb3IgcG90ZW50aWFsbHkgbGlua2VkIGluIG90aGVyIHdheXMsIGNyZWF0aW5nIHRoZSBwb3NzaWJpbGl0eSBvZiBvdXRzaWRlIHVzZS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBpbnZlc3RpZ2F0aW9uIGJlZ2lucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTk6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDteW2EtekEtWjAtOV9dJiM0MzsgW2EtekEtWjAtOV9dJiM0MztcXCgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODY0CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTYyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUEhZIERyaXZlciBQcm9iZSBGdW5jdGlvbnMqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCB0aGF0IGBtb2R1bGVfcGh5X2RyaXZlcihtb3RvcmNvbW1fcGh5X2RydnMpO2AgY2FsbCBpcyBhbG1vc3QgY2VydGFpbmx5IGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgbW9kdWxlLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgdW5kZXJzdGFuZGluZyBob3cgdGhlIGRyaXZlciByZWdpc3RlcnMgaXRzZWxmLgoKUmlnaHQsIHRoZSBwcm9iZSBmdW5jdGlvbnMuLi4gbGV0JiMzOTtzIHNlZS4gVGhleSYjMzk7cmUgYHl0ODUyMV9wcm9iZWAgYW5kIGB5dDg1MzFfcHJvYmVgLiBTdGF0aWMsIGVoPyBEb2VzbiYjMzk7dCBtYXR0ZXIgdG9vIG11Y2g7IHRoZXkmIzM5O3JlIGFzc2lnbmVkIHRvIGZ1bmN0aW9uIHBvaW50ZXJzIGFuZCBjYWxsZWQgaW5kaXJlY3RseSwgc28gdGhlIGNvbXBpbGVyIHdvbiYjMzk7dCBpbmxpbmUgdGhlbSwgbWFraW5nIHRoZW0gZ29vZCBmb2N1cyBzeW1ib2xzIGZvciByZXZlcnNlLWVuZ2luZWVyaW5nLgoKTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYC4gSXMgaXQgc2VsZi1jb250YWluZWQsIG9yIGRvZXMgaXQgbGVhbiBvbiBvdGhlciBtb2R1bGVzPyBJJiMzOTttIHByZXR0eSBzdXJlIGl0IGRlcGVuZHMgb24gYFBIWUxJQmAgYmVjYXVzZSBpdCBsaXZlcyB1bmRlciB0aGUgYGRyaXZlcnMvbmV0L3BoeS9gIG1lbnUgaW4gYEtjb25maWdgLCBhbmQgdGhhdCBpbXBsaWVzIGBQSFlMSUJgLiBUaW1lIHRvIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyBvdXQgYGRyaXZlcnMvbmV0L3BoeS9LY29uZmlnYC4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIHdoYXQgaW4gdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21lbnVjb25maWcgUEhZTElCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L0tjb25maWc9Nj1jb25maWcgUEhZTElOS1xuLS1cbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTE0LVxuZHJpdmVycy9uZXQvcGh5L0tjb25maWc6MTU6bWVudWNvbmZpZyBQSFlMSUJcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTE2LVx0dHJpc3RhdGUgXCYjMzQ7UEhZIERldmljZSBzdXBwb3J0IGFuZCBpbmZyYXN0cnVjdHVyZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2Mzc0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDb25maWd1cmF0aW9uIGFuZCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBjaGFuZ2UgYW5kIG15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtSaWdodCwgYFBIWUxJQmAgYW5kIGBNT1RPUkNPTU1fUEhZYCBhcmUgdGhlIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkIGhlcmUuJiMzNDsgR290IGl0LiBNYWtlcyBzZW5zZS4gTm93LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjYWxsIHRvIGBkZXZtX2Nsa19nZXRfb3B0aW9uYWxfZW5hYmxlZGAgd2l0aGluIHRoZSBwcm9iZSBmdW5jdGlvbi4gSG1tLCBmdW5jdGlvbmFsbHkgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgYWRkaXRpb24gdG8gc2VjdXJlIHRoZSBmdW5jdGlvbmFsaXR5IGlzIGF2YWlsYWJsZS4KCkxldCBtZSBqdXN0IHF1aWNrbHkgdmVyaWZ5IHRoZSBkZXBlbmRlbmNpZXMgb2YgYE1PVE9SQ09NTV9QSFlgLCBqdXN0IHRvIGJlIGNlcnRhaW4gdGhlcmUgYXJlIG5vIHVuc2VlbiBzaWRlIGVmZmVjdHMuIE5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgZG9lc24mIzM5O3QgYnJlYWsgYW55dGhpbmcgZWxzZSwgeW91IGtub3cgaG93IGl0IGlzLiBKdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJlZm9yZSBJIG1vdmUgb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcGh5L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBQSFkgTGF5ZXIgQ29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRjb25maWcgUEhZTElOS1xuICAgNzpcdFx0dHJpc3RhdGVcbiAgIDg6XHRcdHNlbGVjdCBQSFlMSUJcbiAgIDk6XHRcdHNlbGVjdCBTV1BIWVxuICAxMDpcdFx0aGVscFxuICAxMTpcdFx0ICBQSFlsaW5rIG1vZGVscyB0aGUgbGluayBiZXR3ZWVuIHRoZSBQSFkgYW5kIE1BQywgYWxsb3dpbmcgZml4ZWRcbiAgMTI6XHRcdCAgY29uZmlndXJhdGlvbiBsaW5rcywgUEhZcywgYW5kIFNlcmRlcyBsaW5rcyB3aXRoIE1BQyBsZXZlbFxuICAxMzpcdFx0ICBhdXRvbmVnb3RpYXRpb24gbW9kZXMuXG4gIDE0Olx0XG4gIDE1Olx0bWVudWNvbmZpZyBQSFlMSUJcbiAgMTY6XHRcdHRyaXN0YXRlIFwmIzM0O1BIWSBEZXZpY2Ugc3VwcG9ydCBhbmQgaW5mcmFzdHJ1Y3R1cmVcJiMzNDtcbiAgMTc6XHRcdGhlbHBcbiAgMTg6XHRcdCAgRXRoZXJuZXQgY29udHJvbGxlcnMgYXJlIHVzdWFsbHkgYXR0YWNoZWQgdG8gUEhZXG4gIDE5Olx0XHQgIGRldmljZXMuICBUaGlzIG9wdGlvbiBwcm92aWRlcyBpbmZyYXN0cnVjdHVyZSBmb3JcbiAgMjA6XHRcdCAgbWFuYWdpbmcgUEhZIGRldmljZXMuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE5OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY4NDcKCQkJCQkJCW91dHB1dDogMTAwCgkJCQkJCQl0aG91Z2h0czogMTk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1vdG9yY29tbSBQSFkgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBpdCBsb29rcyBsaWtlIGBNT1RPUkNPTU1fUEhZYCBpcyB0aGUgb25seSBjb25maWd1cmF0aW9uIG9wdGlvbiBJIHJlYWxseSBuZWVkIHRvIGJlIGNvbmNlcm5lZCB3aXRoIGhlcmUuIEV4Y2VsbGVudCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncy4gTXkgcHJpbWFyeSBhcmVhcyBvZiBmb2N1cyBhcmUgZGVmaW5pdGVseSBgeXQ4NTIxX3Byb2JlYCBhbmQgYHl0ODUzMV9wcm9iZWDigJR0aG9zZSBzZWVtIHRvIGJlIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgYmVpbmcgdG91Y2hlZC4KCkhtbSwgd2FpdCwgSSBzZWUgYHl0cGh5X2dldF9hbmRfZW5hYmxlX3JlZmNsa2AgaXMgYWxzbyBtZW50aW9uZWQgYXMgYSBjaGFuZ2UuIEl0JiMzOTtzIG1hcmtlZCBhcyBzdGF0aWMgc28gSSBuZWVkIHRvIGtlZXAgaW4gbWluZCB0aGF0IGl0IGlzIHN1YmplY3QgdG8gaW5saW5pbmcsIGFuZCB0aGVyZWZvcmUsIGNvdWxkIGNvbXBsaWNhdGUgdGhpbmdzLiBCZXN0IHRvIGluY2x1ZGUgaXQgaW4gdGhlIGFuYWx5c2lzLCBidXQgdW5kZXJzdGFuZCB0aGF0IGl0cyBpbXBhY3QgbWlnaHQgYmUgaW50ZWdyYXRlZCB3aXRoaW4gdGhlIHByb2JlIGZ1bmN0aW9ucy4KClJpZ2h0LCBsZXQgbWUgZG91YmxlLWNoZWNrLiBJJiMzOTttIHNhdGlzZmllZCB0aGF0IGBDT05GSUdfTU9UT1JDT01NX1BIWWAgaXMgdGhlIG9ubHkgY29uZmlnIHRvIHRyYWNrLgoKRXNzZW50aWFsbHksIHRoaXMgcGF0Y2ggaXMgaW50cm9kdWNpbmcgbmV3IGxvZ2ljIHdpdGhpbiB0aGUgcHJvYmUgcm91dGluZXMgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBTcGVjaWZpY2FsbHksIHRoaXMgaXMgdG8gaGFuZGxlIGdldHRpbmcgYW5kIGVuYWJsaW5nIGEgcmVmZXJlbmNlIGNsb2NrLiBBIGZ1bmN0aW9uYWwgY2hhbmdlIHN1Y2ggYXMgdGhpcyBpbXBhY3RzIHRoZSBwcm9iZSBwYXRoLCBhbmQgdGhpcyBpcyBhcHBsaWNhYmxlIHRvIE1ESU8gYnVzIGVtdWxhdGlvbiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxOTowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TU9UT1JDT01NX1BIWSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3l0ODUyMV9wcm9iZSYjMzQ7LAogICAgJiMzNDt5dDg1MzFfcHJvYmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBsb2dpYyB0byBnZXQgYW5kIGVuYWJsZSBhIHJlZmVyZW5jZSBjbG9jayBkdXJpbmcgdGhlIHByb2JlIG9mIE1vdG9yY29tbSBQSFkgZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIgcHJvYmUgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgTURJTyBidXMgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNT1RPUkNPTU1fUEhZJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7eXQ4NTIxX3Byb2JlJiMzNDssCiAgICAmIzM0O3l0ODUzMV9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDowMC4zMzMwOTIzMjFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozOTg1MDk3ODA3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNT1RPUkNPTU1fUEhZXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieXQ4NTIxX3Byb2JlXCIsXG4gICAgXCJ5dDg1MzFfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjAwLjMzMzEwNjg1MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njk5NzY5MjE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTY3YjBhZTE3MjRjMWJjNmU2YTY5YzA4NDdiZWYwYzY5YTg1NTM5OFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAyOCAxOTowMzo1OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMgYi9kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcXG5pbmRleCA3MDg0OTFiYzE5OGE3Li4zMmViNWNlOTNhNGUzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xcbkBAIC02LDYgKzYsNyBAQFxcbiAgKiBBdXRob3I6IEZyYW5rIFxcdTAwM2NGcmFuay5TYWVAbW90b3ItY29tbS5jb21cXHUwMDNlXFxuICAqL1xcbiBcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nsay5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuQEAgLTEwNDMsNiArMTA0NCwyOSBAQCBzdGF0aWMgaW50IHl0ODUzMV9zZXRfZHMoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuKy8qKlxcbisgKiB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsoKSAtIGdldCBhbmQgZW5hYmxlIHRoZSBQSFkgcmVmZXJlbmNlIGNsb2NrXFxuKyAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhIFxcdTAwMjZzdHJ1Y3QgcGh5X2RldmljZVxcbisgKlxcbisgKiBBIGNyeXN0YWwtbGVzcyBZVDg1MjEvWVQ4NTMxIHRha2VzIGl0cyAyNSBNSHogcmVmZXJlbmNlIGZyb20gdGhlIFNvQy4gV2hlblxcbisgKiB0aGF0IHJlZmVyZW5jZSBpcyBkZXNjcmliZWQgYXMgYSBjbG9jaywgZW5hYmxlIGl0IGZvciB0aGUgbGlmZSBvZiB0aGVcXG4rICogZGV2aWNlLiBJdCBpcyBvcHRpb25hbCwgc28gY3J5c3RhbC1jbG9ja2VkIGJvYXJkcyBhcmUgdW5hZmZlY3RlZC5cXG4rICpcXG4rICogcmV0dXJucyAwIG9yIG5lZ2F0aXZlIGVycm5vIGNvZGVcXG4rICovXFxuK3N0YXRpYyBpbnQgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuK3tcXG4rXFx0c3RydWN0IGRldmljZSAqZGV2ID0gXFx1MDAyNnBoeWRldi1cXHUwMDNlbWRpby5kZXY7XFxuK1xcdHN0cnVjdCBjbGsgKmNsaztcXG4rXFxuK1xcdGNsayA9IGRldm1fY2xrX2dldF9vcHRpb25hbF9lbmFibGVkKGRldiwgTlVMTCk7XFxuK1xcdGlmIChJU19FUlIoY2xrKSlcXG4rXFx0XFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGNsayksXFxuK1xcdFxcdFxcdFxcdCAgICAgXFxcImZhaWxlZCB0byBnZXQgYW5kIGVuYWJsZSB0aGUgcmVmZXJlbmNlIGNsb2NrXFxcXG5cXFwiKTtcXG4rXFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbiAvKipcXG4gICogeXQ4NTIxX3Byb2JlKCkgLSByZWFkIGNoaXAgY29uZmlnIHRoZW4gc2V0IHN1aXRhYmxlIHBvbGxpbmdfbW9kZVxcbiAgKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSBcXHUwMDI2c3RydWN0IHBoeV9kZXZpY2VcXG5AQCAtMTA2NCw2ICsxMDg4LDEwIEBAIHN0YXRpYyBpbnQgeXQ4NTIxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuIFxcbiBcXHRwaHlkZXYtXFx1MDAzZXByaXYgPSBwcml2O1xcbiBcXG4rXFx0cmV0ID0geXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHBoeWRldik7XFxuK1xcdGlmIChyZXQpXFxuK1xcdFxcdHJldHVybiByZXQ7XFxuK1xcbiBcXHRjaGlwX2NvbmZpZyA9IHl0cGh5X3JlYWRfZXh0X3dpdGhfbG9jayhwaHlkZXYsIFlUODUyMV9DSElQX0NPTkZJR19SRUcpO1xcbiBcXHRpZiAoY2hpcF9jb25maWcgXFx1MDAzYyAwKVxcbiBcXHRcXHRyZXR1cm4gY2hpcF9jb25maWc7XFxuQEAgLTExNzEsNiArMTE5OSwxMSBAQCBzdGF0aWMgaW50IHl0ODUzMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbiBcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2cGh5ZGV2LVxcdTAwM2VtZGlvLmRldjtcXG4gXFx0dTE2IG1hc2ssIHZhbDtcXG4gXFx0dTMyIGZyZXE7XFxuK1xcdGludCByZXQ7XFxuK1xcbitcXHRyZXQgPSB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsocGh5ZGV2KTtcXG4rXFx0aWYgKHJldClcXG4rXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuIFxcdGlmIChkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCBcXFwibW90b3Jjb21tLGNsay1vdXQtZnJlcXVlbmN5LWh6XFxcIiwgXFx1MDAyNmZyZXEpKVxcbiBcXHRcXHRmcmVxID0gWVRQSFlfRFRTX09VVFBVVF9DTEtfRElTO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDowMS4wMzM3MjI5ODdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozOTE1MDMyMjI3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNT1RPUkNPTU1fUEhZXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieXQ4NTIxX3Byb2JlXCIsXG4gICAgXCJ5dDg1MzFfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDk2N2IwYWUxNzI0YzFiYzZlNmE2OWMwODQ3YmVmMGM2OWE4NTUzOThcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAxOTowMzo1OSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYyBiL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xuaW5kZXggNzA4NDkxYmMxOThhNy4uMzJlYjVjZTkzYTRlMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1xuKysrIGIvZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jXG5AQCAtNiw2ICs2LDcgQEBcbiAgKiBBdXRob3I6IEZyYW5rIFx1MDAzY0ZyYW5rLlNhZUBtb3Rvci1jb21tLmNvbVx1MDAzZVxuICAqL1xuIFxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2Nsay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2tlcm5lbC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbkBAIC0xMDQzLDYgKzEwNDQsMjkgQEAgc3RhdGljIGludCB5dDg1MzFfc2V0X2RzKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4rLyoqXG4rICogeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKCkgLSBnZXQgYW5kIGVuYWJsZSB0aGUgUEhZIHJlZmVyZW5jZSBjbG9ja1xuKyAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlfZGV2aWNlXG4rICpcbisgKiBBIGNyeXN0YWwtbGVzcyBZVDg1MjEvWVQ4NTMxIHRha2VzIGl0cyAyNSBNSHogcmVmZXJlbmNlIGZyb20gdGhlIFNvQy4gV2hlblxuKyAqIHRoYXQgcmVmZXJlbmNlIGlzIGRlc2NyaWJlZCBhcyBhIGNsb2NrLCBlbmFibGUgaXQgZm9yIHRoZSBsaWZlIG9mIHRoZVxuKyAqIGRldmljZS4gSXQgaXMgb3B0aW9uYWwsIHNvIGNyeXN0YWwtY2xvY2tlZCBib2FyZHMgYXJlIHVuYWZmZWN0ZWQuXG4rICpcbisgKiByZXR1cm5zIDAgb3IgbmVnYXRpdmUgZXJybm8gY29kZVxuKyAqL1xuK3N0YXRpYyBpbnQgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4re1xuK1x0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cGh5ZGV2LVx1MDAzZW1kaW8uZGV2O1xuK1x0c3RydWN0IGNsayAqY2xrO1xuK1xuK1x0Y2xrID0gZGV2bV9jbGtfZ2V0X29wdGlvbmFsX2VuYWJsZWQoZGV2LCBOVUxMKTtcbitcdGlmIChJU19FUlIoY2xrKSlcbitcdFx0cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGNsayksXG4rXHRcdFx0XHQgICAgIFwiZmFpbGVkIHRvIGdldCBhbmQgZW5hYmxlIHRoZSByZWZlcmVuY2UgY2xvY2tcXG5cIik7XG4rXG4rXHRyZXR1cm4gMDtcbit9XG4rXG4gLyoqXG4gICogeXQ4NTIxX3Byb2JlKCkgLSByZWFkIGNoaXAgY29uZmlnIHRoZW4gc2V0IHN1aXRhYmxlIHBvbGxpbmdfbW9kZVxuICAqIEBwaHlkZXY6IGEgcG9pbnRlciB0byBhIFx1MDAyNnN0cnVjdCBwaHlfZGV2aWNlXG5AQCAtMTA2NCw2ICsxMDg4LDEwIEBAIHN0YXRpYyBpbnQgeXQ4NTIxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXG4gXHRwaHlkZXYtXHUwMDNlcHJpdiA9IHByaXY7XG4gXG4rXHRyZXQgPSB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsocGh5ZGV2KTtcbitcdGlmIChyZXQpXG4rXHRcdHJldHVybiByZXQ7XG4rXG4gXHRjaGlwX2NvbmZpZyA9IHl0cGh5X3JlYWRfZXh0X3dpdGhfbG9jayhwaHlkZXYsIFlUODUyMV9DSElQX0NPTkZJR19SRUcpO1xuIFx0aWYgKGNoaXBfY29uZmlnIFx1MDAzYyAwKVxuIFx0XHRyZXR1cm4gY2hpcF9jb25maWc7XG5AQCAtMTE3MSw2ICsxMTk5LDExIEBAIHN0YXRpYyBpbnQgeXQ4NTMxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXG4gXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwaHlkZXYtXHUwMDNlbWRpby5kZXY7XG4gXHR1MTYgbWFzaywgdmFsO1xuIFx0dTMyIGZyZXE7XG4rXHRpbnQgcmV0O1xuK1xuK1x0cmV0ID0geXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrKHBoeWRldik7XG4rXHRpZiAocmV0KVxuK1x0XHRyZXR1cm4gcmV0O1xuIFxuIFx0aWYgKGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihkZXYsIFwibW90b3Jjb21tLGNsay1vdXQtZnJlcXVlbmN5LWh6XCIsIFx1MDAyNmZyZXEpKVxuIFx0XHRmcmVxID0gWVRQSFlfRFRTX09VVFBVVF9DTEtfRElTO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6MDEuMDMzNzI0NTU3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTgzNjgwNzI4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQSFkgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jYC4gSXQgbG9va3MgbGlrZSBpdCdzIGludHJvZHVjaW5nIGEgbmV3IGZ1bmN0aW9uIGNhbGxlZCBgeXRwaHlfZ2V0X2FuZF9lbmFibGVfcmVmY2xrYC4gVGhpcyBpcyBpbnRlcmVzdGluZyBiZWNhdXNlIGl0IGRlYWxzIHdpdGggZ2V0dGluZyBhbmQgZW5hYmxpbmcgYSByZWZlcmVuY2UgY2xvY2ssIGFuZCBpdCdzIGJlaW5nIGNhbGxlZCBmcm9tIHRoZSBwcm9iZSBmdW5jdGlvbnMgZm9yIHRoZSB5dDg1MjEgYW5kIHl0ODUzMSBQSFlzLlxuXG5NeSBmaXJzdCB0aG91Z2h0IGlzIGFsd2F5cywgXCJDYW4gSSByZWFjaCB0aGlzIGluIFFFTVU/XCIgSXQncyBhIE1vdG9yY29tbSBQSFkgZHJpdmVyLCBzbyB0eXBpY2FsbHkgUEhZIGRyaXZlcnMgYXJlIGJyb3VnaHQgdXAgd2hlbiBhIG5ldHdvcmsgaW50ZXJmYWNlIHdpdGggdGhhdCBQSFkgaXMgcmVnaXN0ZXJlZC4gSW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLCBJJ2QgdXN1YWxseSB0cmlnZ2VyIHRoaXMgdmlhIGEgdmlydHVhbCBNRElPIGJ1cyBvciBzb21ldGhpbmcgc2ltaWxhci4gUmVtZW1iZXIsIG1vc3Qgb2YgdGhlIHRpbWUsIHRoZSBkcml2ZXIgcHJvYmUgaXMgdHJpZ2dlcmVkIHRocm91Z2ggTURJTyBidXMgc2Nhbm5pbmcuXG5cbldhaXQgYSBzZWNvbmQsIHRoaXMgaXMgaWRlYWwgZm9yIGZ1enppbmcuIFN5emthbGxlciBjYW4gaW5qZWN0IE1ESU8gZGV2aWNlcywgb3IgZXZlbiB1c2UgZHVtbXkgbmV0d29yayBkZXZpY2VzIHRoYXQgaGF2ZSBhc3NvY2lhdGVkIE1ESU8gYnVzZXMuIFNpbmNlIHRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIGRyaXZlcidzIHByb2JlIGZ1bmN0aW9uLCBpdCdzIGRlZmluaXRlbHkgd29ydGggaW52ZXN0aWdhdGluZy5cblxuTm93LCBsZXQncyBmaW5kIHRoZSBjb25maWcgZm9yIHRoaXMgZHJpdmVyLiBJJ20gZ29pbmcgdG8ganVtcCB0byBgZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jYCBhbmQgZmlndXJlIG91dCB0aGUgYENPTkZJR19gIG9wdGlvbi4gQWgsIGBDT05GSUdfTU9UT1JDT01NX1BIWWAuIFBlcmZlY3QuIE5vdywgSSBzaG91bGQgZG91YmxlIGNoZWNrIGBkcml2ZXJzL25ldC9waHkvS2NvbmZpZ2AgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGFueSBvdGhlciBwb3RlbnRpYWwgY29uZmlndXJhdGlvbnMgcmVsYXRlZCB0byBgTU9UT1JDT01NX1BIWWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2NTUsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDowNi44NzA1MzcyODJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzgxNzE0NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9UT1JDT01NX1BIWVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvS2NvbmZpZz0zMzg9Y29uZmlnIE1JQ1JPU0VNSV9QSFlcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTM0Ni1cXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZzozNDc6Y29uZmlnIE1PVE9SQ09NTV9QSFlcXG5kcml2ZXJzL25ldC9waHkvS2NvbmZpZy0zNDgtXFx0dHJpc3RhdGUgXFxcIk1vdG9yY29tbSBQSFlzXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDowNi45NDg3MjA1OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0NTE3NzgzODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYDpcblxuKipBbmFseXppbmcgRGVwZW5kZW5jaWVzOiBNT1RPUkNPTU1fUEhZKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMgb2YgYE1PVE9SQ09NTV9QSFlgLiBUaGlzIGlzIGEgY3JpdGljYWwgc3RlcDsgSSBuZWVkIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB3aGF0IHRoaXMgbW9kdWxlIHJlbGllcyBvbiB0byBmdW5jdGlvbiBjb3JyZWN0bHkuIEZpcnN0LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGxvdy1oYW5naW5nIGZydWl0OiBXaGF0IGFyZSB0aGUgb2J2aW91cywgaW1tZWRpYXRlIGRlcGVuZGVuY2llcz8gQXJlIHdlIHRhbGtpbmcgYWJvdXQgc3BlY2lmaWMgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXJzIChIQUxzKSwgcG90ZW50aWFsbHkgZHJpdmVyIG1vZHVsZXMgZm9yIHNwZWNpZmljIGNvbW11bmljYXRpb24gaW50ZXJmYWNlcyAobGlrZSBDQU4gb3IgRXRoZXJuZXQpPyBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgYmFzZWxpbmUgY29tcG9uZW50cy5cblxuTmV4dCwgSSdsbCBuZWVkIHRvIGdvIGRlZXBlci4gQXJlIHRoZXJlIGFueSBpbmRpcmVjdCBkZXBlbmRlbmNpZXM/IFBlcmhhcHMgYE1PVE9SQ09NTV9QSFlgIGNhbGxzIGEgZnVuY3Rpb24gZnJvbSBhIG1vZHVsZSB0aGF0LCBpbiB0dXJuLCBkZXBlbmRzIG9uIGFub3RoZXIgbW9kdWxlLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgZ3JhcGggdG8gZW5zdXJlIEkgaGF2ZSB0aGUgY29tcGxldGUgcGljdHVyZS4gSSdtIGxvb2tpbmcgZm9yIGFueSBoaWRkZW4gY29ubmVjdGlvbnMgdGhhdCBjb3VsZCBjYXVzZSBpc3N1ZXMgbGF0ZXIgb24gZHVyaW5nIGludGVncmF0aW9uIG9yIHRlc3RpbmcuXG5cbkZ1cnRoZXJtb3JlLCBJIGhhdmUgdG8gY29uc2lkZXIgdGhlIHZlcnNpb25zIG9mIHRob3NlIGRlcGVuZGVuY2llcy4gSXMgdGhlcmUgYSBzcGVjaWZpYyB2ZXJzaW9uIHJlcXVpcmVtZW50LCBvciBjYW4gaXQgd29yayB3aXRoIG11bHRpcGxlIHZlcnNpb25zPyBUaGlzIGlzIGNydWNpYWwgZm9yIGF2b2lkaW5nIHVuZXhwZWN0ZWQgYmVoYXZpb3IgZHVlIHRvIEFQSSBjaGFuZ2VzIG9yIGtub3duIGJ1Z3MgaW4gb2xkZXIgdmVyc2lvbnMuIElmIHRoZXJlIGFyZSB2ZXJzaW9uIGNvbnN0cmFpbnRzLCBJJ2xsIGhhdmUgdG8gZG9jdW1lbnQgdGhlbSBtZXRpY3Vsb3VzbHkuXG5cbkkgYWxzbyBuZWVkIHRvIGNoZWNrIGZvciBwbGF0Zm9ybS1zcGVjaWZpYyBkZXBlbmRlbmNpZXMuIElzIGBNT1RPUkNPTU1fUEhZYCBkZXNpZ25lZCB0byBydW4gb24gYSBzcGVjaWZpYyBwcm9jZXNzb3IgYXJjaGl0ZWN0dXJlIG9yIG9wZXJhdGluZyBzeXN0ZW0/IElmIHNvLCB0aG9zZSBkZXBlbmRlbmNpZXMgbmVlZCB0byBiZSBleHBsaWNpdGx5IGxpc3RlZC4gSSBuZWVkIHRvIG1ha2UgYSBub3RlIG9mIHRoaXMsIGluIGNhc2Ugd2Ugd2FudCB0byBwb3J0IHRvIGEgZGlmZmVyZW50IHBsYXRmb3JtLCBvciBoYXZlIGZ1dHVyZSBleHBhbnNpb24gbmVlZHMuXG5cbkZpbmFsbHksIEknbGwgd2FudCB0byB2ZXJpZnkgdGhhdCBhbGwgb2YgdGhlc2UgZGVwZW5kZW5jaWVzIGFyZSBkb2N1bWVudGVkIGFuZCBlYXNpbHkgYWNjZXNzaWJsZS4gQXJlIHRoZXkgZG9jdW1lbnRlZCBpbiBhIGNlbnRyYWwgcmVwb3NpdG9yeSwgd2l0aCBhcHByb3ByaWF0ZSBkb2N1bWVudGF0aW9uLCBvciBhcmUgdGhleSBzY2F0dGVyZWQgYWNyb3NzIHZhcmlvdXMgZmlsZXMgYW5kIGRpcmVjdG9yaWVzPyBNeSBnb2FsIGlzIHRvIGNyZWF0ZSBhIGNsZWFyLCBjb25jaXNlIGRlcGVuZGVuY3kgbWFwLiBJJ2xsIG5lZWQgdG8gdXNlIHRoaXMgaW5mb3JtYXRpb24gdG8gY3JlYXRlIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBtb2R1bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMzYsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDoxMS40MDA1MTQwMzFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzA4MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvcGh5L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMzQ3LFxuICBcIkxpbmVDb3VudFwiOiAxMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMzQ3OlxcdGNvbmZpZyBNT1RPUkNPTU1fUEhZXFxuIDM0ODpcXHRcXHR0cmlzdGF0ZSBcXFwiTW90b3Jjb21tIFBIWXNcXFwiXFxuIDM0OTpcXHRcXHRoZWxwXFxuIDM1MDpcXHRcXHQgIEVuYWJsZXMgc3VwcG9ydCBmb3IgTW90b3Jjb21tIG5ldHdvcmsgUEhZcy5cXG4gMzUxOlxcdFxcdCAgQ3VycmVudGx5IHN1cHBvcnRzIFlUODV4eCBHaWdhYml0IEV0aGVybmV0IFBIWXMuXFxuIDM1MjpcXHRcXG4gMzUzOlxcdGNvbmZpZyBOQVRJT05BTF9QSFlcXG4gMzU0OlxcdFxcdHRyaXN0YXRlIFxcXCJOYXRpb25hbCBTZW1pY29uZHVjdG9yIFBIWXNcXFwiXFxuIDM1NTpcXHRcXHRoZWxwXFxuIDM1NjpcXHRcXHQgIEN1cnJlbnRseSBzdXBwb3J0cyB0aGUgRFA4Mzg2NSBQSFkuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjExLjQwMDY1MTkzMVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzMDM3MTU4MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUmVjZW50IFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgYW5kIHRoZSBrZXkgY29uZmlnIGlzIGBNT1RPUkNPTU1fUEhZYC4gQWxyaWdodCwgdGhlIGZ1bmN0aW9ucyB0aGV5J3ZlIGNoYW5nZWQgYXJlIGB5dDg1MjFfcHJvYmVgIGFuZCBgeXQ4NTMxX3Byb2JlYC4gSG1tbSwgaG9sZCBvbi4uLiBpdCBsb29rcyBsaWtlIHRoZXkndmUgYWRkZWQgYHl0cGh5X2dldF9hbmRfZW5hYmxlX3JlZmNsa2AuIFRoYXQgZnVuY3Rpb24uLi4gb2ggeWVhaCwgdGhhdCdzIGNhbGxpbmcgYGRldm1fY2xrX2dldF9vcHRpb25hbF9lbmFibGVkYC4gUmlnaHQsIHNvIHRoaXMgaXMgZGVmaW5pdGVseSBhIHByb2JlIGZ1bmN0aW9uIGZvciBhbiBNRElPIGRldmljZS5cblxuTm93IHRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBzb21ldGhpbmcgd29ydGggZnV6emluZz8gWWVhaCwgYWJzb2x1dGVseS4gVGhpcyBpc24ndCBqdXN0IGEgbWlub3IgdHdlYWs7IGl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSAqd2l0aGluKiB0aGUgcHJvYmUgaXRzZWxmLiBUaGF0J3MgYSBnb29kIHBsYWNlIHRvIHN0YXJ0LlxuXG5MZXQgbWUganVzdCBxdWlja2x5IGNoZWNrIGlmIHRob3NlIGB5dDg1MjFfcHJvYmVgIGFuZCBgeXQ4NTMxX3Byb2JlYCBmdW5jdGlvbnMgYXJlIHN0YXRpYy4gWWVwLCB0aGV5IGFyZS4gT2theSwgdGhhdCBtZWFucyB0aGV5J3JlIGxvY2FsIHRvIHRoaXMgZmlsZSwgd2hpY2ggbmFycm93cyBkb3duIHRoZSBzY29wZSBhIGJpdCwgYnV0IGl0J3Mgc3RpbGwgZ29vZCB0byBrbm93LiBOb3cgSSBuZWVkIHRvIGZpbmQgdGhlIHN0cnVjdCB0aGF0IGFjdHVhbGx5IHJlZmVyZW5jZXMgdGhlc2UgZnVuY3Rpb25zLiBUaGF0IHdpbGwgdGVsbCBtZSB3aGVyZSB0aGUgZW50cnkgcG9pbnRzIGFyZSwgYW5kIHdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBpbnZvbHZlZC4gVGhhdCdzIHRoZSBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MzEsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDoxNS43MDQzODQwMzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMwNTQxMzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInl0ODUyMV9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jPTEwNTc9c3RhdGljIGludCB5dHBoeV9nZXRfYW5kX2VuYWJsZV9yZWZjbGsoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMDcwLS8qKlxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYzoxMDcxOiAqIHl0ODUyMV9wcm9iZSgpIC0gcmVhZCBjaGlwIGNvbmZpZyB0aGVuIHNldCBzdWl0YWJsZSBwb2xsaW5nX21vZGVcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMTA3Mi0gKiBAcGh5ZGV2OiBhIHBvaW50ZXIgdG8gYSBcXHUwMDI2c3RydWN0IHBoeV9kZXZpY2VcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYy0xMDc1LSAqL1xcbmRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uYzoxMDc2OnN0YXRpYyBpbnQgeXQ4NTIxX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTEwNzcte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jPTMwNDc9c3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIG1vdG9yY29tbV9waHlfZHJ2c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwNjAtXFx0XFx0LmdldF9mZWF0dXJlc1xcdD0geXQ4NTIxX2dldF9mZWF0dXJlcyxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MzA2MTpcXHRcXHQucHJvYmVcXHRcXHQ9IHl0ODUyMV9wcm9iZSxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA2Mi1cXHRcXHQucmVhZF9wYWdlXFx0PSB5dDg1MjFfcmVhZF9wYWdlLFxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTMwOTQtXFx0XFx0LmdldF9mZWF0dXJlc1xcdD0geXQ4NTIxX2dldF9mZWF0dXJlcyxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MzA5NTpcXHRcXHQucHJvYmVcXHRcXHQ9IHl0ODUyMV9wcm9iZSxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA5Ni1cXHRcXHQucmVhZF9wYWdlXFx0PSB5dDg1MjFfcmVhZF9wYWdlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDoxNS44MzQ5NzU0NTRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDY3MjcxNzE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBQSFkgUHJvYmUgRnVuY3Rpb25zKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlc2UgZnVuY3Rpb25zLCBgeXQ4NTIxX3Byb2JlYCBhbmQgYHl0ODUzMV9wcm9iZWAuIFRoZXkgc2VlbSBsaWtlIHRoZSBrZXkgcGxheWVycyBoZXJlLiBCdXQgd2FpdCwgdGhleSdyZSBkZWNsYXJlZCBhcyBgc3RhdGljYC4gSG1tLCB0aGF0IG1ha2VzIG1lIGEgbGl0dGxlIHVuZWFzeS4gU3RhdGljIGZ1bmN0aW9ucyBhcmUsIGJ5IHRoZWlyIG5hdHVyZSwgbGVzcyBsaWtlbHkgdG8gYmUgZ29vZCBmb2N1cyBzeW1ib2xzLiBUaGV5J3JlIGludGVybmFsIHRvIHRoZSBjb21waWxhdGlvbiB1bml0LiBCdXQgdGhlbiBJIHJlbWVtYmVyIHRoZXkncmUgYXNzaWduZWQgdG8gdGhlIGAucHJvYmVgIG1lbWJlciB3aXRoaW4gdGhlIGBzdHJ1Y3QgcGh5X2RyaXZlcmAuLi4gYWgsIHRoYXQgbWFrZXMgbW9yZSBzZW5zZS4gU28gdGhleSAqYXJlKiBiZWluZyB1c2VkIGFzIHRoZSBQSFkgcHJvYmUgZnVuY3Rpb25zLlxuXG5Ob3csIGp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgd2FudCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBwb3RlbnRpYWwgcHJvYmUgZnVuY3Rpb25zIGZsb2F0aW5nIGFyb3VuZC4gTGV0J3MgY2FzdCBhIHF1aWNrIGdsYW5jZSBvdmVyIGBtb3RvcmNvbW0uY2AuIEl0J3MgYSB1c2VmdWwgZmlsZSwgYW5kIEkgd2FudCB0byBtYWtlIHN1cmUgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIG9idmlvdXMuIEJldHRlciB0byBiZSBjb21wbGV0ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDgyNSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjE5LjkwMjI1Mzg0OVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzc1ODIyNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieXQ4NTMxX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9tb3RvcmNvbW0uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM9MTA3Nj1zdGF0aWMgaW50IHl0ODUyMV9wcm9iZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jLTExOTYtXFxuZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jOjExOTc6c3RhdGljIGludCB5dDg1MzFfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMTE5OC17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM9MzA0Nz1zdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIgbW90b3Jjb21tX3BoeV9kcnZzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA3OS1cXHRcXHQubmFtZVxcdFxcdD0gXFxcIllUODUzMSBHaWdhYml0IEV0aGVybmV0XFxcIixcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmM6MzA4MDpcXHRcXHQucHJvYmVcXHRcXHQ9IHl0ODUzMV9wcm9iZSxcXG5kcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmMtMzA4MS1cXHRcXHQuY29uZmlnX2luaXRcXHQ9IHl0ODUzMV9jb25maWdfaW5pdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6MTkuOTc5ODQ0OTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5MjYzMTk1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3NpbmcgYXMgYW4gZXhwZXJ0OlxuXG4qKk5hdmlnYXRpbmcgUEhZIFByb2JlIEZ1bmN0aW9uYWxpdHkqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIHRoZSBQSFkgY29yZSB0cmlnZ2VycyB0aGUgcHJvYmUgZnVuY3Rpb25zLCBzcGVjaWZpY2FsbHkgd2hlbiBhIFBIWSBkZXZpY2UgZ2V0cyByZWdpc3RlcmVkLiBUaGUga2V5IGVudHJ5IHBvaW50IGhlcmUgaXMsIGFzIEkgcmVjYWxsLCB0aGUgYHBoeV9wcm9iZWAgZnVuY3Rpb24gd2l0aGluIHRoZSBjb3JlLiBOb3csIEkgbmVlZCB0byBnZXQgYSBiZXR0ZXIgc2Vuc2Ugb2YgaG93IHRoaW5ncyBhcmUgc3RydWN0dXJlZC4gTGV0J3Mgc2VlIGlmIHRoZXJlIGlzIGFueSBpbnRlcmVzdGluZywgbm9uLXN0YXRpYyBzdHVmZiBnb2luZyBvbiBpbiB0aGF0IGBtb3RvcmNvbW0uY2AgZmlsZS4gSSdtIGhvcGluZyBJIGRvbid0IG5lZWQgdG8gZGl2ZSB0aHJvdWdoIGEgYnVuY2ggb2Ygc3RhdGljIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIHRoZSBmbG93LiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQgbWlnaHQgYmUgZXh0ZXJuYWxseSBhY2Nlc3NpYmxlIG9yIG1vZGlmaWFibGUgZnJvbSB0aGF0IG1vZHVsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTM4MiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjIzLjI3MjQ4MjYzNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTE2MTk5NDAsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkVYUE9SVF9TWU1CT0xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcGh5L21vdG9yY29tbS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDoyMy4zNjQxMTgyNjVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU4MzE0MzY2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipBbmFseXppbmcgdGhlIFN5bWJvbCBUYWJsZSoqXG5cbkFscmlnaHQsIHRoZSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgY2xlYXI6IG5vIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHByZXNlbnQuIFRoYXQncyBhIGtleSBvYnNlcnZhdGlvbiwgYnV0IGl0J3Mgbm90IHRoZSBmdWxsIHBpY3R1cmUuIFRoZSBhYnNlbmNlIG9mIGV4cGxpY2l0bHkgZXhwb3J0ZWQgc3ltYm9scyBkb2Vzbid0IG5lY2Vzc2FyaWx5IG1lYW4gdGhlIGVudGlyZSBjb2RlIGJhc2UgaXMgcHJpdmF0ZS4gTXkgbmV4dCBzdGVwIGlzIHRvIGV4YW1pbmUgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb25zIHRoZW1zZWx2ZXMuIEkgbmVlZCB0byBkZXRlcm1pbmUgaWYgYW55ICpub24tc3RhdGljKiBmdW5jdGlvbnMgZXhpc3QuIFRob3NlLCBldmVuIGlmIG5vdCBleHBsaWNpdGx5IGV4cG9ydGVkLCBtaWdodCBiZSBpbXBsaWNpdGx5IHZpc2libGUgd2l0aGluIGEgbGFyZ2VyIGNvbXBpbGF0aW9uIHVuaXQgb3IgcG90ZW50aWFsbHkgbGlua2VkIGluIG90aGVyIHdheXMsIGNyZWF0aW5nIHRoZSBwb3NzaWJpbGl0eSBvZiBvdXRzaWRlIHVzZS4gVGhpcyBpcyB3aGVyZSB0aGUgcmVhbCBpbnZlc3RpZ2F0aW9uIGJlZ2lucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYzNSwiT3V0cHV0VG9rZW5zIjo1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjI2Ljk0NzI2NTA3MloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTQyMzYwOTMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl5bYS16QS1aMC05X10rIFthLXpBLVowLTlfXStcXFxcKFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9waHkvbW90b3Jjb21tLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjI3LjA0MTUxMDQ0NVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTU3OTQ4NDQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUEhZIERyaXZlciBQcm9iZSBGdW5jdGlvbnMqKlxuXG5Pa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QsIHRoYXQgYG1vZHVsZV9waHlfZHJpdmVyKG1vdG9yY29tbV9waHlfZHJ2cyk7YCBjYWxsIGlzIGFsbW9zdCBjZXJ0YWlubHkgYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBtb2R1bGUuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgcmVnaXN0ZXJzIGl0c2VsZi5cblxuUmlnaHQsIHRoZSBwcm9iZSBmdW5jdGlvbnMuLi4gbGV0J3Mgc2VlLiBUaGV5J3JlIGB5dDg1MjFfcHJvYmVgIGFuZCBgeXQ4NTMxX3Byb2JlYC4gU3RhdGljLCBlaD8gRG9lc24ndCBtYXR0ZXIgdG9vIG11Y2g7IHRoZXkncmUgYXNzaWduZWQgdG8gZnVuY3Rpb24gcG9pbnRlcnMgYW5kIGNhbGxlZCBpbmRpcmVjdGx5LCBzbyB0aGUgY29tcGlsZXIgd29uJ3QgaW5saW5lIHRoZW0sIG1ha2luZyB0aGVtIGdvb2QgZm9jdXMgc3ltYm9scyBmb3IgcmV2ZXJzZS1lbmdpbmVlcmluZy5cblxuTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYC4gSXMgaXQgc2VsZi1jb250YWluZWQsIG9yIGRvZXMgaXQgbGVhbiBvbiBvdGhlciBtb2R1bGVzPyBJJ20gcHJldHR5IHN1cmUgaXQgZGVwZW5kcyBvbiBgUEhZTElCYCBiZWNhdXNlIGl0IGxpdmVzIHVuZGVyIHRoZSBgZHJpdmVycy9uZXQvcGh5L2AgbWVudSBpbiBgS2NvbmZpZ2AsIGFuZCB0aGF0IGltcGxpZXMgYFBIWUxJQmAuIFRpbWUgdG8gY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIG91dCBgZHJpdmVycy9uZXQvcGh5L0tjb25maWdgLiBMZXQncyBzZWUgd2hhdCdzIHdoYXQgaW4gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NjQsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6MzEuNTk5NDY1NjRaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg1NjcyODM0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1lbnVjb25maWcgUEhZTElCXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3BoeS9LY29uZmlnPTY9Y29uZmlnIFBIWUxJTktcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnLTE0LVxcbmRyaXZlcnMvbmV0L3BoeS9LY29uZmlnOjE1Om1lbnVjb25maWcgUEhZTElCXFxuZHJpdmVycy9uZXQvcGh5L0tjb25maWctMTYtXFx0dHJpc3RhdGUgXFxcIlBIWSBEZXZpY2Ugc3VwcG9ydCBhbmQgaW5mcmFzdHJ1Y3R1cmVcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE5OjA0OjMxLjY4NTE0NzgyNFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzM4NDA3NDEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ29uZmlndXJhdGlvbiBhbmQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNoYW5nZSBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIlJpZ2h0LCBgUEhZTElCYCBhbmQgYE1PVE9SQ09NTV9QSFlgIGFyZSB0aGUgY29uZmlndXJhdGlvbnMgaW52b2x2ZWQgaGVyZS5cIiBHb3QgaXQuIE1ha2VzIHNlbnNlLiBOb3csIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNhbGwgdG8gYGRldm1fY2xrX2dldF9vcHRpb25hbF9lbmFibGVkYCB3aXRoaW4gdGhlIHByb2JlIGZ1bmN0aW9uLiBIbW0sIGZ1bmN0aW9uYWxseSB0aGlzIHNlZW1zIGxpa2UgYSBzb2xpZCBhZGRpdGlvbiB0byBzZWN1cmUgdGhlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlLlxuXG5MZXQgbWUganVzdCBxdWlja2x5IHZlcmlmeSB0aGUgZGVwZW5kZW5jaWVzIG9mIGBNT1RPUkNPTU1fUEhZYCwganVzdCB0byBiZSBjZXJ0YWluIHRoZXJlIGFyZSBubyB1bnNlZW4gc2lkZSBlZmZlY3RzLiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGRvZXNuJ3QgYnJlYWsgYW55dGhpbmcgZWxzZSwgeW91IGtub3cgaG93IGl0IGlzLiBKdXN0IGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJlZm9yZSBJIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYzNzQsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxOTowNDozNS4wMjM1NTg5MjVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYyMjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BoeS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIFBIWSBMYXllciBDb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdGNvbmZpZyBQSFlMSU5LXFxuICAgNzpcXHRcXHR0cmlzdGF0ZVxcbiAgIDg6XFx0XFx0c2VsZWN0IFBIWUxJQlxcbiAgIDk6XFx0XFx0c2VsZWN0IFNXUEhZXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIFBIWWxpbmsgbW9kZWxzIHRoZSBsaW5rIGJldHdlZW4gdGhlIFBIWSBhbmQgTUFDLCBhbGxvd2luZyBmaXhlZFxcbiAgMTI6XFx0XFx0ICBjb25maWd1cmF0aW9uIGxpbmtzLCBQSFlzLCBhbmQgU2VyZGVzIGxpbmtzIHdpdGggTUFDIGxldmVsXFxuICAxMzpcXHRcXHQgIGF1dG9uZWdvdGlhdGlvbiBtb2Rlcy5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0bWVudWNvbmZpZyBQSFlMSUJcXG4gIDE2OlxcdFxcdHRyaXN0YXRlIFxcXCJQSFkgRGV2aWNlIHN1cHBvcnQgYW5kIGluZnJhc3RydWN0dXJlXFxcIlxcbiAgMTc6XFx0XFx0aGVscFxcbiAgMTg6XFx0XFx0ICBFdGhlcm5ldCBjb250cm9sbGVycyBhcmUgdXN1YWxseSBhdHRhY2hlZCB0byBQSFlcXG4gIDE5OlxcdFxcdCAgZGV2aWNlcy4gIFRoaXMgb3B0aW9uIHByb3ZpZGVzIGluZnJhc3RydWN0dXJlIGZvclxcbiAgMjA6XFx0XFx0ICBtYW5hZ2luZyBQSFkgZGV2aWNlcy5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6MzUuMDIzNzI1MTE0WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMDA2Nzk2MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTW90b3Jjb21tIFBIWSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gaXQgbG9va3MgbGlrZSBgTU9UT1JDT01NX1BIWWAgaXMgdGhlIG9ubHkgY29uZmlndXJhdGlvbiBvcHRpb24gSSByZWFsbHkgbmVlZCB0byBiZSBjb25jZXJuZWQgd2l0aCBoZXJlLiBFeGNlbGxlbnQsIHRoYXQgc2ltcGxpZmllcyB0aGluZ3MuIE15IHByaW1hcnkgYXJlYXMgb2YgZm9jdXMgYXJlIGRlZmluaXRlbHkgYHl0ODUyMV9wcm9iZWAgYW5kIGB5dDg1MzFfcHJvYmVg4oCUdGhvc2Ugc2VlbSB0byBiZSB0aGUgY3JpdGljYWwgZnVuY3Rpb25zIGJlaW5nIHRvdWNoZWQuXG5cbkhtbSwgd2FpdCwgSSBzZWUgYHl0cGh5X2dldF9hbmRfZW5hYmxlX3JlZmNsa2AgaXMgYWxzbyBtZW50aW9uZWQgYXMgYSBjaGFuZ2UuIEl0J3MgbWFya2VkIGFzIHN0YXRpYyBzbyBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoYXQgaXQgaXMgc3ViamVjdCB0byBpbmxpbmluZywgYW5kIHRoZXJlZm9yZSwgY291bGQgY29tcGxpY2F0ZSB0aGluZ3MuIEJlc3QgdG8gaW5jbHVkZSBpdCBpbiB0aGUgYW5hbHlzaXMsIGJ1dCB1bmRlcnN0YW5kIHRoYXQgaXRzIGltcGFjdCBtaWdodCBiZSBpbnRlZ3JhdGVkIHdpdGhpbiB0aGUgcHJvYmUgZnVuY3Rpb25zLlxuXG5SaWdodCwgbGV0IG1lIGRvdWJsZS1jaGVjay4gSSdtIHNhdGlzZmllZCB0aGF0IGBDT05GSUdfTU9UT1JDT01NX1BIWWAgaXMgdGhlIG9ubHkgY29uZmlnIHRvIHRyYWNrLlxuXG5Fc3NlbnRpYWxseSwgdGhpcyBwYXRjaCBpcyBpbnRyb2R1Y2luZyBuZXcgbG9naWMgd2l0aGluIHRoZSBwcm9iZSByb3V0aW5lcyBvZiBNb3RvcmNvbW0gUEhZIGRldmljZXMuIFNwZWNpZmljYWxseSwgdGhpcyBpcyB0byBoYW5kbGUgZ2V0dGluZyBhbmQgZW5hYmxpbmcgYSByZWZlcmVuY2UgY2xvY2suIEEgZnVuY3Rpb25hbCBjaGFuZ2Ugc3VjaCBhcyB0aGlzIGltcGFjdHMgdGhlIHByb2JlIHBhdGgsIGFuZCB0aGlzIGlzIGFwcGxpY2FibGUgdG8gTURJTyBidXMgZW11bGF0aW9uIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY4NDcsIk91dHB1dFRva2VucyI6MTAwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTk6MDQ6NDAuMDI0NDA4OTAxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU5NjI4NTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNT1RPUkNPTU1fUEhZXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieXQ4NTIxX3Byb2JlXCIsXG4gICAgXCJ5dDg1MzFfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGxvZ2ljIHRvIGdldCBhbmQgZW5hYmxlIGEgcmVmZXJlbmNlIGNsb2NrIGR1cmluZyB0aGUgcHJvYmUgb2YgTW90b3Jjb21tIFBIWSBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciBwcm9iZSBwYXRoIHRoYXQgY2FuIGJlIHJlYWNoZWQgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBNRElPIGJ1cyBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTU9UT1JDT01NX1BIWVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInl0ODUyMV9wcm9iZVwiLFxuICAgIFwieXQ4NTMxX3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBsb2dpYyB0byBnZXQgYW5kIGVuYWJsZSBhIHJlZmVyZW5jZSBjbG9jayBkdXJpbmcgdGhlIHByb2JlIG9mIE1vdG9yY29tbSBQSFkgZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIgcHJvYmUgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgTURJTyBidXMgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[1] Phase: Succeeded StartedAt: 2026-07-28 19:04:51 +0000 UTC FinishedAt: 2026-07-28 19:04:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-28 19:04:51 +0000 UTC FinishedAt: 2026-07-28 19:04:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2] Phase: Succeeded StartedAt: 2026-07-28 19:04:51 +0000 UTC FinishedAt: 2026-07-28 20:56:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-28 19:04:51 +0000 UTC FinishedAt: 2026-07-28 20:56:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-28 19:04:51 +0000 UTC FinishedAt: 2026-07-28 19:05:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-28 19:04:51 +0000 UTC FinishedAt: 2026-07-28 19:04:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow455h5/series-workflow455h5-convert-artifact-2860122403/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-28 19:05:13 +0000 UTC FinishedAt: 2026-07-28 19:32:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-28 19:05:13 +0000 UTC FinishedAt: 2026-07-28 19:32:09 +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:*c8381dc5-59f4-42fe-b49c-35053c862a66,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-workflow455h5/series-workflow455h5-convert-artifact-2860122403/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": "fbda973f-cf6c-4766-80dc-bc9285b103ff", "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-workflow455h5/series-workflow455h5-build-action-1244951953/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-28 19:05:13 +0000 UTC FinishedAt: 2026-07-28 19:31:57 +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:*c8381dc5-59f4-42fe-b49c-35053c862a66,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-workflow455h5/series-workflow455h5-convert-artifact-2860122403/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": "fbda973f-cf6c-4766-80dc-bc9285b103ff", "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-workflow455h5/series-workflow455h5-build-action-1244951953/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-28 19:32:09 +0000 UTC FinishedAt: 2026-07-28 19:32:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-28 19:32:09 +0000 UTC FinishedAt: 2026-07-28 19:32:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-28 19:32:09 +0000 UTC FinishedAt: 2026-07-28 19:32:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-28 19:32:09 +0000 UTC FinishedAt: 2026-07-28 19:32:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow455h5/series-workflow455h5-convert-artifact-3466537306/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-28 19:32:30 +0000 UTC FinishedAt: 2026-07-28 19:34:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-28 19:32:30 +0000 UTC FinishedAt: 2026-07-28 19:34:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fbda973f-cf6c-4766-80dc-bc9285b103ff,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-workflow455h5/series-workflow455h5-build-action-1244951953/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-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-28 19:34:43 +0000 UTC FinishedAt: 2026-07-28 19:34:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-28 19:34:43 +0000 UTC FinishedAt: 2026-07-28 19:34:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-28 19:34:43 +0000 UTC FinishedAt: 2026-07-28 20:01:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-28 19:34:43 +0000 UTC FinishedAt: 2026-07-28 20:01:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*c8381dc5-59f4-42fe-b49c-35053c862a66,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-workflow455h5/series-workflow455h5-convert-artifact-3466537306/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": "7b68cdbf-2627-47f0-9095-30cfb4eef349", "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-workflow455h5/series-workflow455h5-build-action-1139963454/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-28 19:34:43 +0000 UTC FinishedAt: 2026-07-28 20:00:55 +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:*c8381dc5-59f4-42fe-b49c-35053c862a66,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-workflow455h5/series-workflow455h5-convert-artifact-3466537306/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": "7b68cdbf-2627-47f0-9095-30cfb4eef349", "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-workflow455h5/series-workflow455h5-build-action-1139963454/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-28 20:01:04 +0000 UTC FinishedAt: 2026-07-28 20:01:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-28 20:01:04 +0000 UTC FinishedAt: 2026-07-28 20:01:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-28 20:01:04 +0000 UTC FinishedAt: 2026-07-28 20:03:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-28 20:01:04 +0000 UTC FinishedAt: 2026-07-28 20:03:09 +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:*7b68cdbf-2627-47f0-9095-30cfb4eef349,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-workflow455h5/series-workflow455h5-build-action-1139963454/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-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-28 20:03:19 +0000 UTC FinishedAt: 2026-07-28 20:56:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-28 20:03:19 +0000 UTC FinishedAt: 2026-07-28 20:56:39 +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":["yt8521_probe","yt8531_probe"],"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:*fbda973f-cf6c-4766-80dc-bc9285b103ff,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7b68cdbf-2627-47f0-9095-30cfb4eef349,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-workflow455h5/series-workflow455h5-build-action-1244951953/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-workflow455h5/series-workflow455h5-build-action-1139963454/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-28 20:03:19 +0000 UTC FinishedAt: 2026-07-28 20:03:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-28 20:03:19 +0000 UTC FinishedAt: 2026-07-28 20:03:32 +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":["yt8521_probe","yt8531_probe"],"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-workflow455h5/series-workflow455h5-convert-artifact-998466063/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-28 20:03:19 +0000 UTC FinishedAt: 2026-07-28 20:03:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-28 20:03:19 +0000 UTC FinishedAt: 2026-07-28 20:03:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-28 20:03:19 +0000 UTC FinishedAt: 2026-07-28 20:03:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-28 20:03:39 +0000 UTC FinishedAt: 2026-07-28 20:56:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow455h5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["yt8521_probe","yt8531_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2354e975932dabb06fad239f07a3b68fd1809737","config_name":"upstream-apparmor-kasan.config","enable_configs":["MOTORCOMM_PHY"],"series_id":"93cccba5-9be0-461d-820b-007d780aa178","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-28 20:03:39 +0000 UTC FinishedAt: 2026-07-28 20:56:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fbda973f-cf6c-4766-80dc-bc9285b103ff,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7b68cdbf-2627-47f0-9095-30cfb4eef349,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-workflow455h5/series-workflow455h5-build-action-1244951953/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-workflow455h5/series-workflow455h5-build-action-1139963454/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-workflow455h5/series-workflow455h5-convert-artifact-998466063/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,}