Name: series-workflowmqw8p Phase: Succeeded StartedAt: 2026-08-01 09:47:29 +0000 UTC FinishedAt: 2026-08-01 10:43:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[0] Phase: Succeeded StartedAt: 2026-08-01 09:47:29 +0000 UTC FinishedAt: 2026-08-01 09:49:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[0].run-triage Phase: Succeeded StartedAt: 2026-08-01 09:47:29 +0000 UTC FinishedAt: 2026-08-01 09:49:13 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "863f3ddd0b8ac65abfb50d3be0869268ac0e277b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT", "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "863f3ddd0b8ac65abfb50d3be0869268ac0e277b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT", "BPF_SYSCALL" ], "series_id": "b682b27f-d045-4c27-ad7c-3fc7ec753de3" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_int_jit_compile" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OywKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfaW50X2ppdF9jb21waWxlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIgdG8gc3VwcG9ydCBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgdmlhIEJQRiBzeXNjYWxscyB3aGVuIEJQRiBKSVQgaXMgZW5hYmxlZCBvbiB4ODZfMzIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YmZmNzVhZTM3NTE4NmY1YTRkYWE4NDg1OTVjODNlYTBlMTE2ODMxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMSAwOTo0ODozNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5pbmRleCA4NTJiYWYyZTRkYjRkLi4wMTIxNjFkYTNlODJjIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5AQCAtNDMyLDExICYjNDM7NDMyLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfdG9fYmVfcjY0KGNvbnN0IHU4IGRzdFtdLCBzMzIgdmFsLFxuICAqIEFMVSBvcGVyYXRpb24gKDMyIGJpdClcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xuICAqL1xuLXN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbi1cdFx0XHRcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZylcbiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBjb25zdCB1OCBkc3QsXG4mIzQzO1x0XHRcdFx0ICAgICAgIGNvbnN0IHU4IHNyYywgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpXG4ge1xuIFx0dTggKnByb2cgPSAqcHByb2c7XG4gXHRpbnQgY250ID0gMDtcbiYjNDM7XHRjb25zdCB1OCBvcCA9IEJQRl9PUChpbnNuLVx1MDAzZWNvZGUpO1xuJiM0MztcdGNvbnN0IGJvb2wgaXNfc2lnbmVkID0gKGluc24tXHUwMDNlb2ZmID09IDEpO1xuIFxuIFx0aWYgKHNzdGspXG4gXHRcdC8qIG1vdiBlY3gsZHdvcmQgcHRyIFtlYnAmIzQzO29mZl0gKi9cbkBAIC00NTQsMTAgJiM0Mzs0NTYsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxuIFx0XHQvKiBtb3YgZWF4LGRzdCAqL1xuIFx0XHRFTUlUMigweDhCLCBhZGRfMnJlZygweEMwLCBkc3QsIElBMzJfRUFYKSk7XG4gXG4tXHQvKiB4b3IgZWR4LGVkeCAqL1xuLVx0RU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7XG4tXHQvKiBkaXYgZWN4ICovXG4tXHRFTUlUMigweEY3LCBhZGRfMXJlZygweEYwLCBJQTMyX0VDWCkpO1xuJiM0MztcdGlmIChpc19zaWduZWQpIHtcbiYjNDM7XHRcdC8qIGNkcSAqL1xuJiM0MztcdFx0RU1JVDEoMHg5OSk7XG4mIzQzO1x0XHQvKiBpZGl2IGVjeCAqL1xuJiM0MztcdFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGOCwgSUEzMl9FQ1gpKTtcbiYjNDM7XHR9IGVsc2Uge1xuJiM0MztcdFx0LyogeG9yIGVkeCxlZHggKi9cbiYjNDM7XHRcdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xuJiM0MztcdFx0LyogZGl2IGVjeCAqL1xuJiM0MztcdFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcbiYjNDM7XHR9XG4gXG4gXHRpZiAob3AgPT0gQlBGX01PRCkge1xuIFx0XHRpZiAoZHN0aylcbkBAIC0xNzk1LDE0ICYjNDM7MTgwNCwxNCBAQCBzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG4gXHRcdGNhc2UgQlBGX0FMVSB8IEJQRl9NT0QgfCBCUEZfWDpcbiBcdFx0XHRzd2l0Y2ggKEJQRl9TUkMoY29kZSkpIHtcbiBcdFx0XHRjYXNlIEJQRl9YOlxuLVx0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihCUEZfT1AoY29kZSksIGRzdF9sbyxcbiYjNDM7XHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKGluc24sIGRzdF9sbyxcbiBcdFx0XHRcdFx0XHQgICAgc3JjX2xvLCBkc3RrLCBzc3RrLCBcdTAwMjZwcm9nKTtcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGNhc2UgQlBGX0s6XG4gXHRcdFx0XHQvKiBtb3YgZWN4LGltbTMyKi9cbiBcdFx0XHRcdEVNSVQyX29mZjMyKDB4QzcsIGFkZF8xcmVnKDB4QzAsIElBMzJfRUNYKSxcbiBcdFx0XHRcdFx0ICAgIGltbTMyKTtcbi1cdFx0XHRcdGVtaXRfaWEzMl9kaXZfbW9kX3IoQlBGX09QKGNvZGUpLCBkc3RfbG8sXG4mIzQzO1x0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihpbnNuLCBkc3RfbG8sXG4gXHRcdFx0XHRcdFx0ICAgIElBMzJfRUNYLCBkc3RrLCBmYWxzZSxcbiBcdFx0XHRcdFx0XHQgICAgXHUwMDI2cHJvZyk7XG4gXHRcdFx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX0pJVCYjMzQ7LAogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIDMyLWJpdCB4ODYgQlBGIEpJVCBjb21waWxlciB0byBzdXBwb3J0IHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb2RlIHJlYWNoYWJsZSB2aWEgQlBGIHN5c2NhbGxzIHdoZW4gQlBGIEpJVCBpcyBlbmFibGVkIG9uIHg4Nl8zMi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDViZmY3NWFlMzc1MTg2ZjVhNGRhYTg0ODU5NWM4M2VhMGUxMTY4MzEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAxIDA5OjQ4OjM2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYwppbmRleCA4NTJiYWYyZTRkYjRkLi4wMTIxNjFkYTNlODJjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYwpAQCAtNDMyLDExICYjNDM7NDMyLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfdG9fYmVfcjY0KGNvbnN0IHU4IGRzdFtdLCBzMzIgdmFsLAogICogQUxVIG9wZXJhdGlvbiAoMzIgYml0KQogICogZHN0ID0gZHN0IChkaXZ8bW9kKSBzcmMKICAqLwotc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLAotCQkJCSAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZykKJiM0MztzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX2Rpdl9tb2Rfcihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIGNvbnN0IHU4IGRzdCwKJiM0MzsJCQkJICAgICAgIGNvbnN0IHU4IHNyYywgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpCiB7CiAJdTggKnByb2cgPSAqcHByb2c7CiAJaW50IGNudCA9IDA7CiYjNDM7CWNvbnN0IHU4IG9wID0gQlBGX09QKGluc24tJmd0O2NvZGUpOwomIzQzOwljb25zdCBib29sIGlzX3NpZ25lZCA9IChpbnNuLSZndDtvZmYgPT0gMSk7CiAKIAlpZiAoc3N0aykKIAkJLyogbW92IGVjeCxkd29yZCBwdHIgW2VicCYjNDM7b2ZmXSAqLwpAQCAtNDU0LDEwICYjNDM7NDU2LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYywKIAkJLyogbW92IGVheCxkc3QgKi8KIAkJRU1JVDIoMHg4QiwgYWRkXzJyZWcoMHhDMCwgZHN0LCBJQTMyX0VBWCkpOwogCi0JLyogeG9yIGVkeCxlZHggKi8KLQlFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTsKLQkvKiBkaXYgZWN4ICovCi0JRU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTsKJiM0MzsJaWYgKGlzX3NpZ25lZCkgewomIzQzOwkJLyogY2RxICovCiYjNDM7CQlFTUlUMSgweDk5KTsKJiM0MzsJCS8qIGlkaXYgZWN4ICovCiYjNDM7CQlFTUlUMigweEY3LCBhZGRfMXJlZygweEY4LCBJQTMyX0VDWCkpOwomIzQzOwl9IGVsc2UgewomIzQzOwkJLyogeG9yIGVkeCxlZHggKi8KJiM0MzsJCUVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpOwomIzQzOwkJLyogZGl2IGVjeCAqLwomIzQzOwkJRU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTsKJiM0MzsJfQogCiAJaWYgKG9wID09IEJQRl9NT0QpIHsKIAkJaWYgKGRzdGspCkBAIC0xNzk1LDE0ICYjNDM7MTgwNCwxNCBAQCBzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsCiAJCWNhc2UgQlBGX0FMVSB8IEJQRl9NT0QgfCBCUEZfWDoKIAkJCXN3aXRjaCAoQlBGX1NSQyhjb2RlKSkgewogCQkJY2FzZSBCUEZfWDoKLQkJCQllbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLAomIzQzOwkJCQllbWl0X2lhMzJfZGl2X21vZF9yKGluc24sIGRzdF9sbywKIAkJCQkJCSAgICBzcmNfbG8sIGRzdGssIHNzdGssICZhbXA7cHJvZyk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJQRl9LOgogCQkJCS8qIG1vdiBlY3gsaW1tMzIqLwogCQkJCUVNSVQyX29mZjMyKDB4QzcsIGFkZF8xcmVnKDB4QzAsIElBMzJfRUNYKSwKIAkJCQkJICAgIGltbTMyKTsKLQkJCQllbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLAomIzQzOwkJCQllbWl0X2lhMzJfZGl2X21vZF9yKGluc24sIGRzdF9sbywKIAkJCQkJCSAgICBJQTMyX0VDWCwgZHN0aywgZmFsc2UsCiAJCQkJCQkgICAgJmFtcDtwcm9nKTsKIAkJCQlicmVhazsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg3MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDIxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSB4ODYgMzItYml0IEJQRiBKSVQgRGl2aXNpb24vTW9kdWxvIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgdHdlYWtpbmcgYGFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgY29kZSBzZWVtcyB0byBiZSBjaGFuZ2luZyBgZW1pdF9pYTMyX2Rpdl9tb2RfcmAgdG8gZGVhbCB3aXRoIHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMgZm9yIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIuIEkgc2VlIHRoYXQgaXQmIzM5O3MgcmVseWluZyBvbiBgaW5zbi0mZ3Q7b2ZmID09IDFgIHRvIGZpZ3VyZSBvdXQgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIHNpZ25lZCBvcGVyYXRpb24uIEl0JiMzOTtzIGNvZGUgdGhhdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgdGhlIGZ1bmN0aW9uIG9mIHRoZSBCUEYgSklUIGNvbXBpbGVyIGZvciB0aGUgeDg2IDMyLWJpdCBhcmNoaXRlY3R1cmUuCgpNeSBmaXJzdCB0aG91Z2h0IGlzIGFsd2F5cyB0byBjb25zaWRlciByZWFjaGFiaWxpdHkuIElzIHRoaXMgZXZlbiB0b3VjaGVkPyBgYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNgIHdpbGwgb25seSBiZSBjb21waWxlZCBpZiBib3RoIGBDT05GSUdfWDg2XzMyYCBhbmQgYENPTkZJR19CUEZfSklUYCBhcmUgZW5hYmxlZC4gVGhlbiBJJiMzOTttIHRoaW5raW5nLCAmIzM0O3N5emthbGxlciB1c3VhbGx5IGhpdHMgeDg2XzY0LCByaWdodD8gQ291bGQgdGhpcyBhY3R1YWxseSBiZSB0ZXN0ZWQsIG9yIG1heWJlIGRvZXMgaXQgZ2V0IGNvbXBpbGVkIG9uIHg4Nl82NCBpbiBzb21lIHdlaXJkIHdheT8mIzM0Oy4gSSYjMzk7bGwgaGF2ZSB0byBnbyBsb29rIGF0IGBhcmNoL3g4Ni9uZXQvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhlIGNvbXBpbGF0aW9uIGNvbmRpdGlvbnMgYW5kIHBvdGVudGlhbCBjcm9zcy1hcmNoaXRlY3R1cmUgdGVzdGluZyBzY2VuYXJpb3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnBmX2ppdF9jb21wMzIubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGU6NzogICAgICAgIG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wMzIub1xuYXJjaC94ODYvbmV0L01ha2VmaWxlLTgtZWxzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MTkKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgQ09ORklHX1g4Nl8zMmAgRGVwZW5kZW5jeSoqCgpPa2F5LCBzbyB0aGlzIGNvZGUgaXMgb25seSBjb21waWxlZCBpZiBgQ09ORklHX1g4Nl8zMmAgaXMgZGVmaW5lZC4gTXkgZmlyc3QgdGhvdWdodCBpcywgY2FuIHdlIGFjdHVhbGx5IGVuYWJsZSBgQ09ORklHX1g4Nl8zMmAgZm9yIGZ1enppbmcgcHVycG9zZXM/IFN5emthbGxlciB0eXBpY2FsbHkgdGVzdHMgeDg2XzY0LCBidXQgSSBrbm93IGl0JiMzOTtzIGNhcGFibGUgb2YgdGVzdGluZyB4ODZfMzIgdG9vLiBNeSBpbml0aWFsIGluc3RpbmN0IHdhcyB0byBzaW1wbHkgc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAgYW5kIGVuYWJsZSBjb25maWd1cmF0aW9ucyBsaWtlICYjMzQ7WDg2XzMyJiMzNDsgYW5kICYjMzQ7QlBGX0pJVCYjMzQ7LiBCdXQgdGhlbiBJIHBhdXNlZCwgYFg4Nl8zMmAgaXMgYW4gKmFyY2hpdGVjdHVyZSogY29uZmlndXJhdGlvbiEgV2UgY2FuJiMzOTt0IGp1c3QgZmxpcCBpdCBvbiBpbiBhbiB4ODZfNjQga2VybmVsLiBUaGF0JiMzOTtzIGEgZnVuZGFtZW50YWwgYXJjaGl0ZWN0dXJhbCBkaWZmZXJlbmNlLiBXZSYjMzk7cmUgbm90IGp1c3QgZGVhbGluZyB3aXRoIGEgZmVhdHVyZSBmbGFnIGhlcmUuCgpIb3dldmVyLCBTeXprYWxsZXIgKmRvZXMqIGhhdmUgaW5zdGFuY2VzIHRoYXQgdGVzdCB4ODZfMzIsIGxpa2UgdGhlIGBzeXotY2x1c3RlcmAgc2V0dXAuIFNvLCB3ZSYjMzk7cmUgbm90IGRlYWQgaW4gdGhlIHdhdGVyLiBXZSBuZWVkIHRvIGZvY3VzIG9uIHdoYXQgU3l6a2FsbGVyIGNhbiBhY3R1YWxseSB3b3JrIHdpdGggaW4gdGhpcyBjb250ZXh0LiBSYXRoZXIgdGhhbiB0cnlpbmcgdG8gZm9yY2UgaXQgb250byB0aGUgeDg2XzY0IGNvbmZpZ3VyYXRpb24sIGxldCYjMzk7cyBqdXN0IG91dHB1dCBgWDg2XzMyYCBhbmQgZWl0aGVyIGBCUEZfSklUYCBvciBtYXliZSBgQlBGX1NZU0NBTExgIGFzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgc2luY2UgdGhvc2UgYXJlIHdoYXQgd2UmIzM5O3JlIHJlYWxseSBsb29raW5nIGZvci4gTm93LCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgYGFyY2gveDg2L0tjb25maWdgIGZpbGUgdG8gY29uZmlybSBob3cgYFg4Nl8zMmAgaXMgZGVmaW5lZCBhbmQgZW5zdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IGdvdGNoYXMgSSYjMzk7bSBtaXNzaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBYODZfMzImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L0tjb25maWc9Mz1jb25maWcgNjRCSVRcbi0tXG5hcmNoL3g4Ni9LY29uZmlnLTktXG5hcmNoL3g4Ni9LY29uZmlnOjEwOmNvbmZpZyBYODZfMzJcbmFyY2gveDg2L0tjb25maWctMTEtXHRkZWZfYm9vbCB5XG4tLVxuYXJjaC94ODYvS2NvbmZpZz03NDk9Y29uZmlnIFg4Nl9TVVBQT1JUU19NRU1PUllfRkFJTFVSRVxuLS1cbmFyY2gveDg2L0tjb25maWctNzU3LVxuYXJjaC94ODYvS2NvbmZpZzo3NTg6Y29uZmlnIFg4Nl8zMl9JUklTXG5hcmNoL3g4Ni9LY29uZmlnLTc1OS1cdHRyaXN0YXRlIFwmIzM0O0V1cm9icmFpbGxlL0lyaXMgcG93ZXJvZmYgbW9kdWxlXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMxOQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGFjdCBvZiBgWDg2XzMyYCBvbiB0aGUgQlBGIEpJVCBDb21waWxlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJdCBsb29rcyBsaWtlIHRoZSBkZWZpbml0aW9uIG9mIGBYODZfMzJgIGhpbmdlcyBvbiBhIGJvb2xlYW4sIGB5YCwgYW5kIGNydWNpYWxseSwgd2hldGhlciB3ZSYjMzk7cmUgKm5vdCogaW4gYSA2NC1iaXQgZW52aXJvbm1lbnQuIFRoYXQmIzM5O3Mgb3VyIGluaXRpYWwgdHJpZ2dlci4gTXkgZ3V0IHRlbGxzIG1lIHdlIHNob3VsZCBpbW1lZGlhdGVseSBjb25zaWRlciBpbmNsdWRpbmcgYm90aCBgQlBGX0pJVGAgYW5kIGBCUEZfU1lTQ0FMTGAgaW4gb3VyIHNjb3BlIG9mIGludGVyZXN0LiBMZXQmIzM5O3Mgc2VlLi4uIHRoZSBjb2RlIGFwcGVhcnMgdG8gYmUgaW1wYWN0aW5nIHRoZSBkaXZpc2lvbiBhbmQgbW9kdWx1cyBvcGVyYXRpb25zIHNwZWNpZmljYWxseSwgdXNpbmcgdGhlIGBlbWl0X2lhMzJfZGl2X21vZF9yYCBmdW5jdGlvbi4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBjb25maXJtIHRoYXQmIzM5O3MgdGhlICpvbmx5KiBmdW5jdGlvbiBkaXJlY3RseSBtb2RpZmllZCBieSB0aGlzIGBYODZfMzJgIGNvbmRpdGlvbmFsLiBZZXMsIGxvb2tzIGxpa2UgaXQmIzM5O3Mgb25seSB0aGF0IGZ1bmN0aW9uLiBBaCwgYW5kIGBkb19qaXRgIGlzIGFsc28gYWZmZWN0ZWQuIExvb2tzIGxpa2UgYGRvX2ppdGAgaXMgdGhlIGZ1bmN0aW9uIHdlIHNob3VsZCBmb2N1cyBvbiBmb3IgdGhpcyByZXZpZXcuCgpOb3csIGEgcXVpY2sgY29uZmlybWF0aW9uLi4uIEkmIzM5O20gcHJldHR5IGNlcnRhaW4gYGRvX2ppdGAgaXMgZGVmaW5lZCB3aXRoaW4gYGJwZl9qaXRfY29tcDMyLmNgLCByaWdodD8gTGV0JiMzOTtzIHF1aWNrbHkgbmF2aWdhdGUgdG8gdGhhdCBmaWxlIGFuZCBzZWUgaWYgbXkgaHVuY2ggaXMgY29ycmVjdCwgYW5kIGdldCBhIGJldHRlciBwaWN0dXJlIG9mIHRoZSBjb250ZXh0IG9mIHRoYXQgZnVuY3Rpb24sIGp1c3QgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkb19qaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0xNTc4PXN0YXRpYyBpbnQgZW1pdF9rZnVuY19jYWxsKGNvbnN0IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIHU4ICplbmRfYWRkcixcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0xNjY3LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MTY2ODpzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0xNjY5LVx0XHQgIGludCBvbGRwcm9nbGVuLCBzdHJ1Y3Qgaml0X2NvbnRleHQgKmN0eClcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0yNTMwPXN0cnVjdCBicGZfcHJvZyAqYnBmX2ludF9qaXRfY29tcGlsZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMjU2My1cdGZvciAocGFzcyA9IDA7IHBhc3MgXHUwMDNjIDIwIHx8IGltYWdlOyBwYXNzJiM0MzsmIzQzOykge1xuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjU2NDpcdFx0cHJvZ2xlbiA9IGRvX2ppdChwcm9nLCBhZGRycywgaW1hZ2UsIG9sZHByb2dsZW4sIFx1MDAyNmN0eCk7XG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTY1LVx0XHRpZiAocHJvZ2xlbiBcdTAwM2M9IDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTYyCgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBKSVQgQ29tcGlsYXRpb24gRW50cnlwb2ludCoqCgpPa2F5LCBzbyBgYnBmX2ludF9qaXRfY29tcGlsZWAgaXMgdGhlIGZ1bmN0aW9uIHdlJiMzOTtyZSBzdGFydGluZyB3aXRoIOKAkyB0aGF0JiMzOTtzIHRoZSBlbnRyeXBvaW50IGZvciB0aGUgaW50ZWdlciBKSVQgY29tcGlsYXRpb24gcHJvY2Vzcy4gVGhlIGZpcnN0IHRoaW5nIEkgbmVlZCB0byBjb25maXJtIGlzIGl0cyB2aXNpYmlsaXR5OiBpcyBpdCBleHBvcnRlZCwgbWVhbmluZyBpdCYjMzk7cyBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZSBpdHMgZGVmaW5pbmcgbW9kdWxlLCBvciBpcyBpdCBnbG9iYWwsIHdoaWNoIGltcGxpZXMgYW4gZXZlbiBicm9hZGVyIHNjb3BlIG9mIGFjY2Vzc2liaWxpdHk/IFVuZGVyc3RhbmRpbmcgaXRzIHNjb3BlIGlzIGZ1bmRhbWVudGFsLiBUaGlzIGRldGVybWluZXMgaG93IGl0JiMzOTtzIGxpbmtlZCBhbmQgdGhlIHBvc3NpYmxlIGltcGxpY2F0aW9ucyBvbiBleHRlcm5hbCBpbnRlcmFjdGlvbnMuIExldCYjMzk7cyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgaXRzIGNhbGxpbmcgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MjU9Ym9vbCBicGZfaml0X25lZWRzX3pleHQodm9pZClcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTI5LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjUzMDpzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMjUzMS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1NDMKCQkJCQkJCW91dHB1dDogMTA3CgkJCQkJCQl0aG91Z2h0czogNDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBCUEYgSklUIFBhdGNoIGZvciBTaWduZWQgRGl2aXNpb24vTW9kdWxvIG9uIHg4Nl8zMioqCgpPa2F5LCBzbyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgaXMgZGVmaW5pdGVseSBgYnBmX2ludF9qaXRfY29tcGlsZWAuIFRoYXQgc2VlbXMgbGlrZSB0aGUgcmlnaHQgcGxhY2UgdG8gc3RhcnQgbG9va2luZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnkgb3RoZXIga2V5IGZ1bmN0aW9ucywgYnV0IGBicGZfaW50X2ppdF9jb21waWxlYCBzZWVtcyBsaWtlIGEgc29saWQgZm9jdXMuCgpCYXNlZCBvbiB0aGUgcHJvbXB0LCBpdCBzb3VuZHMgbGlrZSB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyIHRvIGFkZCBzdXBwb3J0IGZvciBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgbGlrZWx5IGFjY2Vzc2VkIHRocm91Z2ggQlBGIHN5c3RlbSBjYWxscyB3aGVuIHRoZSBKSVQgaXMgdHVybmVkIG9uIGZvciB4ODZfMzIuCgpOb3csIHJlZ2FyZGluZyB0aGUgRW5hYmxlQ29uZmlncywgSSBuZWVkIHRvIGJlIHByZWNpc2UuIFRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IGFza3MgdG8gKm5vdCogaW5jbHVkZSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXhlcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgSSBoYXZlIHRvIGluY2x1ZGUgYFg4Nl8zMmAsIGl0ICppcyogYW4gYWNjdXJhdGUgY29uZmlnLCBidXQgaW5jbHVkaW5nIGl0IG1pZ2h0IGNhdXNlIHByb2JsZW1zIGlmIHRoZSBmdXp6ZXIgdHJpZXMgdG8gZW5hYmxlIGl0IG9uIGFuIHg4Nl82NCBzeXN0ZW0uIFNvLCBJIHRoaW5rIEkmIzM5O2xsIGp1c3Qgc3RpY2sgd2l0aCBgQlBGX0pJVGAgYW5kIGBCUEZfU1lTQ0FMTGAgYXMgdGhleSYjMzk7cmUgdGhlIGNvcmUgZGVwZW5kZW5jaWVzLgoKTGV0IG1lIHRha2UgYW5vdGhlciBxdWljayBsb29rIGF0IHRoZSBwYXRjaCBpdHNlbGYgdG8gcmVmcmVzaCBteSBtZW1vcnkuIEFoYSwgdGhlIGtleSBjaGFuZ2UgaXMgaW4gYGVtaXRfaWEzMl9kaXZfbW9kX3JgLiBJdCBub3cgdGFrZXMgYSBgc3RydWN0IGJwZl9pbnNuICppbnNuYCBpbnN0ZWFkIG9mIGp1c3QgdGhlIGBvcGAgY29kZSwgYW5kIGl0IG5vdyBjaGVja3MgYGluc24tJmd0O29mZiA9PSAxYCB0byBkZXRlcm1pbmUgaWYgaXQmIzM5O3MgYSBzaWduZWQgZGl2aXNpb24uCgpZZXAsIHRoaXMgbG9va3MgbGlrZSBmdW5jdGlvbmFsIGNvZGUgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBicGZfaW50X2ppdF9jb21waWxlYCBhcyB0aGUgYEZvY3VzU3ltYm9sc2AgYW5kIGBCUEZfSklUYCwgYEJQRl9TWVNDQUxMYCBmb3IgYEVuYWJsZUNvbmZpZ3NgLiBJIHRoaW5rIHRoYXQmIzM5O3MgaXQhIExldCYjMzk7cyBnZXQgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyIHRvIHN1cHBvcnQgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIHZpYSBCUEYgc3lzY2FsbHMgd2hlbiBCUEYgSklUIGlzIGVuYWJsZWQgb24geDg2XzMyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyIHRvIHN1cHBvcnQgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIHZpYSBCUEYgc3lzY2FsbHMgd2hlbiBCUEYgSklUIGlzIGVuYWJsZWQgb24geDg2XzMyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6MzcuNjIzMTI4NDI4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ4MjA3NzQwNjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX0pJVFwiLFxuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfaW50X2ppdF9jb21waWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIDMyLWJpdCB4ODYgQlBGIEpJVCBjb21waWxlciB0byBzdXBwb3J0IHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb2RlIHJlYWNoYWJsZSB2aWEgQlBGIHN5c2NhbGxzIHdoZW4gQlBGIEpJVCBpcyBlbmFibGVkIG9uIHg4Nl8zMi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6MzcuNjIzMTMzMTI4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODI0ODI4MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1YmZmNzVhZTM3NTE4NmY1YTRkYWE4NDg1OTVjODNlYTBlMTE2ODMxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDg6MzYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1xcbmluZGV4IDg1MmJhZjJlNGRiNGQuLjAxMjE2MWRhM2U4MmMgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcXG4rKysgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1xcbkBAIC00MzIsMTEgKzQzMiwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX3RvX2JlX3I2NChjb25zdCB1OCBkc3RbXSwgczMyIHZhbCxcXG4gICogQUxVIG9wZXJhdGlvbiAoMzIgYml0KVxcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xcbiAgKi9cXG4tc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxcbi1cXHRcXHRcXHRcXHQgICAgICAgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpXFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgY29uc3QgdTggZHN0LFxcbitcXHRcXHRcXHRcXHQgICAgICAgY29uc3QgdTggc3JjLCBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZylcXG4ge1xcbiBcXHR1OCAqcHJvZyA9ICpwcHJvZztcXG4gXFx0aW50IGNudCA9IDA7XFxuK1xcdGNvbnN0IHU4IG9wID0gQlBGX09QKGluc24tXFx1MDAzZWNvZGUpO1xcbitcXHRjb25zdCBib29sIGlzX3NpZ25lZCA9IChpbnNuLVxcdTAwM2VvZmYgPT0gMSk7XFxuIFxcbiBcXHRpZiAoc3N0aylcXG4gXFx0XFx0LyogbW92IGVjeCxkd29yZCBwdHIgW2VicCtvZmZdICovXFxuQEAgLTQ1NCwxMCArNDU2LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcXG4gXFx0XFx0LyogbW92IGVheCxkc3QgKi9cXG4gXFx0XFx0RU1JVDIoMHg4QiwgYWRkXzJyZWcoMHhDMCwgZHN0LCBJQTMyX0VBWCkpO1xcbiBcXG4tXFx0LyogeG9yIGVkeCxlZHggKi9cXG4tXFx0RU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7XFxuLVxcdC8qIGRpdiBlY3ggKi9cXG4tXFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcXG4rXFx0aWYgKGlzX3NpZ25lZCkge1xcbitcXHRcXHQvKiBjZHEgKi9cXG4rXFx0XFx0RU1JVDEoMHg5OSk7XFxuK1xcdFxcdC8qIGlkaXYgZWN4ICovXFxuK1xcdFxcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjgsIElBMzJfRUNYKSk7XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdC8qIHhvciBlZHgsZWR4ICovXFxuK1xcdFxcdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xcbitcXHRcXHQvKiBkaXYgZWN4ICovXFxuK1xcdFxcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7XFxuK1xcdH1cXG4gXFxuIFxcdGlmIChvcCA9PSBCUEZfTU9EKSB7XFxuIFxcdFxcdGlmIChkc3RrKVxcbkBAIC0xNzk1LDE0ICsxODA0LDE0IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcXG4gXFx0XFx0Y2FzZSBCUEZfQUxVIHwgQlBGX01PRCB8IEJQRl9YOlxcbiBcXHRcXHRcXHRzd2l0Y2ggKEJQRl9TUkMoY29kZSkpIHtcXG4gXFx0XFx0XFx0Y2FzZSBCUEZfWDpcXG4tXFx0XFx0XFx0XFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihCUEZfT1AoY29kZSksIGRzdF9sbyxcXG4rXFx0XFx0XFx0XFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihpbnNuLCBkc3RfbG8sXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgICBzcmNfbG8sIGRzdGssIHNzdGssIFxcdTAwMjZwcm9nKTtcXG4gXFx0XFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdFxcdGNhc2UgQlBGX0s6XFxuIFxcdFxcdFxcdFxcdC8qIG1vdiBlY3gsaW1tMzIqL1xcbiBcXHRcXHRcXHRcXHRFTUlUMl9vZmYzMigweEM3LCBhZGRfMXJlZygweEMwLCBJQTMyX0VDWCksXFxuIFxcdFxcdFxcdFxcdFxcdCAgICBpbW0zMik7XFxuLVxcdFxcdFxcdFxcdGVtaXRfaWEzMl9kaXZfbW9kX3IoQlBGX09QKGNvZGUpLCBkc3RfbG8sXFxuK1xcdFxcdFxcdFxcdGVtaXRfaWEzMl9kaXZfbW9kX3IoaW5zbiwgZHN0X2xvLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICAgSUEzMl9FQ1gsIGRzdGssIGZhbHNlLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnByb2cpO1xcbiBcXHRcXHRcXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6MzguMTA2MzQxNDg5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjQzMzc1NTE2NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX0pJVFwiLFxuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfaW50X2ppdF9jb21waWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIDMyLWJpdCB4ODYgQlBGIEpJVCBjb21waWxlciB0byBzdXBwb3J0IHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb2RlIHJlYWNoYWJsZSB2aWEgQlBGIHN5c2NhbGxzIHdoZW4gQlBGIEpJVCBpcyBlbmFibGVkIG9uIHg4Nl8zMi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWJmZjc1YWUzNzUxODZmNWE0ZGFhODQ4NTk1YzgzZWEwZTExNjgzMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDg6MzYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5pbmRleCA4NTJiYWYyZTRkYjRkLi4wMTIxNjFkYTNlODJjIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcbisrKyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5AQCAtNDMyLDExICs0MzIsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl90b19iZV9yNjQoY29uc3QgdTggZHN0W10sIHMzMiB2YWwsXG4gICogQUxVIG9wZXJhdGlvbiAoMzIgYml0KVxuICAqIGRzdCA9IGRzdCAoZGl2fG1vZCkgc3JjXG4gICovXG4tc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxuLVx0XHRcdFx0ICAgICAgIGJvb2wgZHN0aywgYm9vbCBzc3RrLCB1OCAqKnBwcm9nKVxuK3N0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgY29uc3QgdTggZHN0LFxuK1x0XHRcdFx0ICAgICAgIGNvbnN0IHU4IHNyYywgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpXG4ge1xuIFx0dTggKnByb2cgPSAqcHByb2c7XG4gXHRpbnQgY250ID0gMDtcbitcdGNvbnN0IHU4IG9wID0gQlBGX09QKGluc24tXHUwMDNlY29kZSk7XG4rXHRjb25zdCBib29sIGlzX3NpZ25lZCA9IChpbnNuLVx1MDAzZW9mZiA9PSAxKTtcbiBcbiBcdGlmIChzc3RrKVxuIFx0XHQvKiBtb3YgZWN4LGR3b3JkIHB0ciBbZWJwK29mZl0gKi9cbkBAIC00NTQsMTAgKzQ1NiwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX2Rpdl9tb2Rfcihjb25zdCB1OCBvcCwgY29uc3QgdTggZHN0LCBjb25zdCB1OCBzcmMsXG4gXHRcdC8qIG1vdiBlYXgsZHN0ICovXG4gXHRcdEVNSVQyKDB4OEIsIGFkZF8ycmVnKDB4QzAsIGRzdCwgSUEzMl9FQVgpKTtcbiBcbi1cdC8qIHhvciBlZHgsZWR4ICovXG4tXHRFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTtcbi1cdC8qIGRpdiBlY3ggKi9cbi1cdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7XG4rXHRpZiAoaXNfc2lnbmVkKSB7XG4rXHRcdC8qIGNkcSAqL1xuK1x0XHRFTUlUMSgweDk5KTtcbitcdFx0LyogaWRpdiBlY3ggKi9cbitcdFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGOCwgSUEzMl9FQ1gpKTtcbitcdH0gZWxzZSB7XG4rXHRcdC8qIHhvciBlZHgsZWR4ICovXG4rXHRcdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xuK1x0XHQvKiBkaXYgZWN4ICovXG4rXHRcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7XG4rXHR9XG4gXG4gXHRpZiAob3AgPT0gQlBGX01PRCkge1xuIFx0XHRpZiAoZHN0aylcbkBAIC0xNzk1LDE0ICsxODA0LDE0IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcbiBcdFx0Y2FzZSBCUEZfQUxVIHwgQlBGX01PRCB8IEJQRl9YOlxuIFx0XHRcdHN3aXRjaCAoQlBGX1NSQyhjb2RlKSkge1xuIFx0XHRcdGNhc2UgQlBGX1g6XG4tXHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxuK1x0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihpbnNuLCBkc3RfbG8sXG4gXHRcdFx0XHRcdFx0ICAgIHNyY19sbywgZHN0aywgc3N0aywgXHUwMDI2cHJvZyk7XG4gXHRcdFx0XHRicmVhaztcbiBcdFx0XHRjYXNlIEJQRl9LOlxuIFx0XHRcdFx0LyogbW92IGVjeCxpbW0zMiovXG4gXHRcdFx0XHRFTUlUMl9vZmYzMigweEM3LCBhZGRfMXJlZygweEMwLCBJQTMyX0VDWCksXG4gXHRcdFx0XHRcdCAgICBpbW0zMik7XG4tXHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxuK1x0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihpbnNuLCBkc3RfbG8sXG4gXHRcdFx0XHRcdFx0ICAgIElBMzJfRUNYLCBkc3RrLCBmYWxzZSxcbiBcdFx0XHRcdFx0XHQgICAgXHUwMDI2cHJvZyk7XG4gXHRcdFx0XHRicmVhaztcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ4OjM4LjEwNjM0MzExOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NTAzNTU3OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgeDg2IDMyLWJpdCBCUEYgSklUIERpdmlzaW9uL01vZHVsbyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIHR3ZWFraW5nIGBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY2AuIFNwZWNpZmljYWxseSwgdGhlIGNvZGUgc2VlbXMgdG8gYmUgY2hhbmdpbmcgYGVtaXRfaWEzMl9kaXZfbW9kX3JgIHRvIGRlYWwgd2l0aCBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zIGZvciB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBJIHNlZSB0aGF0IGl0J3MgcmVseWluZyBvbiBgaW5zbi1cdTAwM2VvZmYgPT0gMWAgdG8gZmlndXJlIG91dCBpZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgc2lnbmVkIG9wZXJhdGlvbi4gSXQncyBjb2RlIHRoYXQncyByZXNwb25zaWJsZSBmb3IgdGhlIGZ1bmN0aW9uIG9mIHRoZSBCUEYgSklUIGNvbXBpbGVyIGZvciB0aGUgeDg2IDMyLWJpdCBhcmNoaXRlY3R1cmUuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMgYWx3YXlzIHRvIGNvbnNpZGVyIHJlYWNoYWJpbGl0eS4gSXMgdGhpcyBldmVuIHRvdWNoZWQ/IGBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY2Agd2lsbCBvbmx5IGJlIGNvbXBpbGVkIGlmIGJvdGggYENPTkZJR19YODZfMzJgIGFuZCBgQ09ORklHX0JQRl9KSVRgIGFyZSBlbmFibGVkLiBUaGVuIEknbSB0aGlua2luZywgXCJzeXprYWxsZXIgdXN1YWxseSBoaXRzIHg4Nl82NCwgcmlnaHQ/IENvdWxkIHRoaXMgYWN0dWFsbHkgYmUgdGVzdGVkLCBvciBtYXliZSBkb2VzIGl0IGdldCBjb21waWxlZCBvbiB4ODZfNjQgaW4gc29tZSB3ZWlyZCB3YXk/XCIuIEknbGwgaGF2ZSB0byBnbyBsb29rIGF0IGBhcmNoL3g4Ni9uZXQvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhlIGNvbXBpbGF0aW9uIGNvbmRpdGlvbnMgYW5kIHBvdGVudGlhbCBjcm9zcy1hcmNoaXRlY3R1cmUgdGVzdGluZyBzY2VuYXJpb3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NzMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0ODo0Mi43NTY3MDI1NzFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcxMjE4MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX2ppdF9jb21wMzIub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9uZXQvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvbmV0L01ha2VmaWxlPTY9aWZlcSAoJChDT05GSUdfWDg2XzMyKSx5KVxcbmFyY2gveDg2L25ldC9NYWtlZmlsZTo3OiAgICAgICAgb2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXRfY29tcDMyLm9cXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGUtOC1lbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ4OjQyLjgwMzgyOTk5OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMzA1ODY3NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgQ09ORklHX1g4Nl8zMmAgRGVwZW5kZW5jeSoqXG5cbk9rYXksIHNvIHRoaXMgY29kZSBpcyBvbmx5IGNvbXBpbGVkIGlmIGBDT05GSUdfWDg2XzMyYCBpcyBkZWZpbmVkLiBNeSBmaXJzdCB0aG91Z2h0IGlzLCBjYW4gd2UgYWN0dWFsbHkgZW5hYmxlIGBDT05GSUdfWDg2XzMyYCBmb3IgZnV6emluZyBwdXJwb3Nlcz8gU3l6a2FsbGVyIHR5cGljYWxseSB0ZXN0cyB4ODZfNjQsIGJ1dCBJIGtub3cgaXQncyBjYXBhYmxlIG9mIHRlc3RpbmcgeDg2XzMyIHRvby4gTXkgaW5pdGlhbCBpbnN0aW5jdCB3YXMgdG8gc2ltcGx5IHNldCBgV29ydGhGdXp6aW5nPXRydWVgIGFuZCBlbmFibGUgY29uZmlndXJhdGlvbnMgbGlrZSBcIlg4Nl8zMlwiIGFuZCBcIkJQRl9KSVRcIi4gQnV0IHRoZW4gSSBwYXVzZWQsIGBYODZfMzJgIGlzIGFuICphcmNoaXRlY3R1cmUqIGNvbmZpZ3VyYXRpb24hIFdlIGNhbid0IGp1c3QgZmxpcCBpdCBvbiBpbiBhbiB4ODZfNjQga2VybmVsLiBUaGF0J3MgYSBmdW5kYW1lbnRhbCBhcmNoaXRlY3R1cmFsIGRpZmZlcmVuY2UuIFdlJ3JlIG5vdCBqdXN0IGRlYWxpbmcgd2l0aCBhIGZlYXR1cmUgZmxhZyBoZXJlLlxuXG5Ib3dldmVyLCBTeXprYWxsZXIgKmRvZXMqIGhhdmUgaW5zdGFuY2VzIHRoYXQgdGVzdCB4ODZfMzIsIGxpa2UgdGhlIGBzeXotY2x1c3RlcmAgc2V0dXAuIFNvLCB3ZSdyZSBub3QgZGVhZCBpbiB0aGUgd2F0ZXIuIFdlIG5lZWQgdG8gZm9jdXMgb24gd2hhdCBTeXprYWxsZXIgY2FuIGFjdHVhbGx5IHdvcmsgd2l0aCBpbiB0aGlzIGNvbnRleHQuIFJhdGhlciB0aGFuIHRyeWluZyB0byBmb3JjZSBpdCBvbnRvIHRoZSB4ODZfNjQgY29uZmlndXJhdGlvbiwgbGV0J3MganVzdCBvdXRwdXQgYFg4Nl8zMmAgYW5kIGVpdGhlciBgQlBGX0pJVGAgb3IgbWF5YmUgYEJQRl9TWVNDQUxMYCBhcyBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHNpbmNlIHRob3NlIGFyZSB3aGF0IHdlJ3JlIHJlYWxseSBsb29raW5nIGZvci4gTm93LCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSdsbCBxdWlja2x5IGNoZWNrIHRoZSBgYXJjaC94ODYvS2NvbmZpZ2AgZmlsZSB0byBjb25maXJtIGhvdyBgWDg2XzMyYCBpcyBkZWZpbmVkIGFuZCBlbnN1cmUgdGhlcmUgYXJlbid0IGFueSBnb3RjaGFzIEknbSBtaXNzaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTE5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ4OjQ3LjgzNDQxOTgzN1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQxNjA2NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgWDg2XzMyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvS2NvbmZpZz0zPWNvbmZpZyA2NEJJVFxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZy05LVxcbmFyY2gveDg2L0tjb25maWc6MTA6Y29uZmlnIFg4Nl8zMlxcbmFyY2gveDg2L0tjb25maWctMTEtXFx0ZGVmX2Jvb2wgeVxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz03NDk9Y29uZmlnIFg4Nl9TVVBQT1JUU19NRU1PUllfRkFJTFVSRVxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZy03NTctXFxuYXJjaC94ODYvS2NvbmZpZzo3NTg6Y29uZmlnIFg4Nl8zMl9JUklTXFxuYXJjaC94ODYvS2NvbmZpZy03NTktXFx0dHJpc3RhdGUgXFxcIkV1cm9icmFpbGxlL0lyaXMgcG93ZXJvZmYgbW9kdWxlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0ODo0Ny44Nzk4NDIyMzVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mzg2OTUyMzI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIGBYODZfMzJgIG9uIHRoZSBCUEYgSklUIENvbXBpbGVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJdCBsb29rcyBsaWtlIHRoZSBkZWZpbml0aW9uIG9mIGBYODZfMzJgIGhpbmdlcyBvbiBhIGJvb2xlYW4sIGB5YCwgYW5kIGNydWNpYWxseSwgd2hldGhlciB3ZSdyZSAqbm90KiBpbiBhIDY0LWJpdCBlbnZpcm9ubWVudC4gVGhhdCdzIG91ciBpbml0aWFsIHRyaWdnZXIuIE15IGd1dCB0ZWxscyBtZSB3ZSBzaG91bGQgaW1tZWRpYXRlbHkgY29uc2lkZXIgaW5jbHVkaW5nIGJvdGggYEJQRl9KSVRgIGFuZCBgQlBGX1NZU0NBTExgIGluIG91ciBzY29wZSBvZiBpbnRlcmVzdC4gTGV0J3Mgc2VlLi4uIHRoZSBjb2RlIGFwcGVhcnMgdG8gYmUgaW1wYWN0aW5nIHRoZSBkaXZpc2lvbiBhbmQgbW9kdWx1cyBvcGVyYXRpb25zIHNwZWNpZmljYWxseSwgdXNpbmcgdGhlIGBlbWl0X2lhMzJfZGl2X21vZF9yYCBmdW5jdGlvbi4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBjb25maXJtIHRoYXQncyB0aGUgKm9ubHkqIGZ1bmN0aW9uIGRpcmVjdGx5IG1vZGlmaWVkIGJ5IHRoaXMgYFg4Nl8zMmAgY29uZGl0aW9uYWwuIFllcywgbG9va3MgbGlrZSBpdCdzIG9ubHkgdGhhdCBmdW5jdGlvbi4gQWgsIGFuZCBgZG9faml0YCBpcyBhbHNvIGFmZmVjdGVkLiBMb29rcyBsaWtlIGBkb19qaXRgIGlzIHRoZSBmdW5jdGlvbiB3ZSBzaG91bGQgZm9jdXMgb24gZm9yIHRoaXMgcmV2aWV3LlxuXG5Ob3csIGEgcXVpY2sgY29uZmlybWF0aW9uLi4uIEknbSBwcmV0dHkgY2VydGFpbiBgZG9faml0YCBpcyBkZWZpbmVkIHdpdGhpbiBgYnBmX2ppdF9jb21wMzIuY2AsIHJpZ2h0PyBMZXQncyBxdWlja2x5IG5hdmlnYXRlIHRvIHRoYXQgZmlsZSBhbmQgc2VlIGlmIG15IGh1bmNoIGlzIGNvcnJlY3QsIGFuZCBnZXQgYSBiZXR0ZXIgcGljdHVyZSBvZiB0aGUgY29udGV4dCBvZiB0aGF0IGZ1bmN0aW9uLCBqdXN0IHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMTksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6NTIuMjY2ODAxNTcyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MTIxMzQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRvX2ppdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0xNTc4PXN0YXRpYyBpbnQgZW1pdF9rZnVuY19jYWxsKGNvbnN0IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIHU4ICplbmRfYWRkcixcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTE2NjctXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MTY2ODpzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMTY2OS1cXHRcXHQgIGludCBvbGRwcm9nbGVuLCBzdHJ1Y3Qgaml0X2NvbnRleHQgKmN0eClcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MzA9c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZylcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTI1NjMtXFx0Zm9yIChwYXNzID0gMDsgcGFzcyBcXHUwMDNjIDIwIHx8IGltYWdlOyBwYXNzKyspIHtcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYzoyNTY0OlxcdFxcdHByb2dsZW4gPSBkb19qaXQocHJvZywgYWRkcnMsIGltYWdlLCBvbGRwcm9nbGVuLCBcXHUwMDI2Y3R4KTtcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTY1LVxcdFxcdGlmIChwcm9nbGVuIFxcdTAwM2M9IDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6NTIuMzEwOTI5MTA5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkyMDc2MTQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIEpJVCBDb21waWxhdGlvbiBFbnRyeXBvaW50KipcblxuT2theSwgc28gYGJwZl9pbnRfaml0X2NvbXBpbGVgIGlzIHRoZSBmdW5jdGlvbiB3ZSdyZSBzdGFydGluZyB3aXRoIOKAkyB0aGF0J3MgdGhlIGVudHJ5cG9pbnQgZm9yIHRoZSBpbnRlZ2VyIEpJVCBjb21waWxhdGlvbiBwcm9jZXNzLiBUaGUgZmlyc3QgdGhpbmcgSSBuZWVkIHRvIGNvbmZpcm0gaXMgaXRzIHZpc2liaWxpdHk6IGlzIGl0IGV4cG9ydGVkLCBtZWFuaW5nIGl0J3MgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGUgaXRzIGRlZmluaW5nIG1vZHVsZSwgb3IgaXMgaXQgZ2xvYmFsLCB3aGljaCBpbXBsaWVzIGFuIGV2ZW4gYnJvYWRlciBzY29wZSBvZiBhY2Nlc3NpYmlsaXR5PyBVbmRlcnN0YW5kaW5nIGl0cyBzY29wZSBpcyBmdW5kYW1lbnRhbC4gVGhpcyBkZXRlcm1pbmVzIGhvdyBpdCdzIGxpbmtlZCBhbmQgdGhlIHBvc3NpYmxlIGltcGxpY2F0aW9ucyBvbiBleHRlcm5hbCBpbnRlcmFjdGlvbnMuIExldCdzIGRpZyBpbiBhbmQgZmlndXJlIG91dCBpdHMgY2FsbGluZyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTYyLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6NTUuMjMxNjkzMjg0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODczODExNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicGZfaW50X2ppdF9jb21waWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MjU9Ym9vbCBicGZfaml0X25lZWRzX3pleHQodm9pZClcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTI1MjktXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjUzMDpzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTI1MzEte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0ODo1NS4yODA0MzY4NzFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA4NDQ5ODMwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgQlBGIEpJVCBQYXRjaCBmb3IgU2lnbmVkIERpdmlzaW9uL01vZHVsbyBvbiB4ODZfMzIqKlxuXG5Pa2F5LCBzbyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgaXMgZGVmaW5pdGVseSBgYnBmX2ludF9qaXRfY29tcGlsZWAuIFRoYXQgc2VlbXMgbGlrZSB0aGUgcmlnaHQgcGxhY2UgdG8gc3RhcnQgbG9va2luZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueSBvdGhlciBrZXkgZnVuY3Rpb25zLCBidXQgYGJwZl9pbnRfaml0X2NvbXBpbGVgIHNlZW1zIGxpa2UgYSBzb2xpZCBmb2N1cy5cblxuQmFzZWQgb24gdGhlIHByb21wdCwgaXQgc291bmRzIGxpa2UgdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgdGhlIDMyLWJpdCB4ODYgQlBGIEpJVCBjb21waWxlciB0byBhZGQgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGxpa2VseSBhY2Nlc3NlZCB0aHJvdWdoIEJQRiBzeXN0ZW0gY2FsbHMgd2hlbiB0aGUgSklUIGlzIHR1cm5lZCBvbiBmb3IgeDg2XzMyLlxuXG5Ob3csIHJlZ2FyZGluZyB0aGUgRW5hYmxlQ29uZmlncywgSSBuZWVkIHRvIGJlIHByZWNpc2UuIFRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IGFza3MgdG8gKm5vdCogaW5jbHVkZSAnQ09ORklHXycgcHJlZml4ZXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIEkgaGF2ZSB0byBpbmNsdWRlIGBYODZfMzJgLCBpdCAqaXMqIGFuIGFjY3VyYXRlIGNvbmZpZywgYnV0IGluY2x1ZGluZyBpdCBtaWdodCBjYXVzZSBwcm9ibGVtcyBpZiB0aGUgZnV6emVyIHRyaWVzIHRvIGVuYWJsZSBpdCBvbiBhbiB4ODZfNjQgc3lzdGVtLiBTbywgSSB0aGluayBJJ2xsIGp1c3Qgc3RpY2sgd2l0aCBgQlBGX0pJVGAgYW5kIGBCUEZfU1lTQ0FMTGAgYXMgdGhleSdyZSB0aGUgY29yZSBkZXBlbmRlbmNpZXMuXG5cbkxldCBtZSB0YWtlIGFub3RoZXIgcXVpY2sgbG9vayBhdCB0aGUgcGF0Y2ggaXRzZWxmIHRvIHJlZnJlc2ggbXkgbWVtb3J5LiBBaGEsIHRoZSBrZXkgY2hhbmdlIGlzIGluIGBlbWl0X2lhMzJfZGl2X21vZF9yYC4gSXQgbm93IHRha2VzIGEgYHN0cnVjdCBicGZfaW5zbiAqaW5zbmAgaW5zdGVhZCBvZiBqdXN0IHRoZSBgb3BgIGNvZGUsIGFuZCBpdCBub3cgY2hlY2tzIGBpbnNuLVx1MDAzZW9mZiA9PSAxYCB0byBkZXRlcm1pbmUgaWYgaXQncyBhIHNpZ25lZCBkaXZpc2lvbi5cblxuWWVwLCB0aGlzIGxvb2tzIGxpa2UgZnVuY3Rpb25hbCBjb2RlIHRoYXQncyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIEknbSBnb2luZyB0byBzZXQgYGJwZl9pbnRfaml0X2NvbXBpbGVgIGFzIHRoZSBgRm9jdXNTeW1ib2xzYCBhbmQgYEJQRl9KSVRgLCBgQlBGX1NZU0NBTExgIGZvciBgRW5hYmxlQ29uZmlnc2AuIEkgdGhpbmsgdGhhdCdzIGl0ISBMZXQncyBnZXQgdGhlIHJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1NDMsIk91dHB1dFRva2VucyI6MTA3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ5OjAyLjM2NDkzODc2N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4OTUwNjU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCIsXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9pbnRfaml0X2NvbXBpbGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyIHRvIHN1cHBvcnQgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIHZpYSBCUEYgc3lzY2FsbHMgd2hlbiBCUEYgSklUIGlzIGVuYWJsZWQgb24geDg2XzMyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIixcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIgdG8gc3VwcG9ydCBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgdmlhIEJQRiBzeXNjYWxscyB3aGVuIEJQRiBKSVQgaXMgZW5hYmxlZCBvbiB4ODZfMzIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-01 09:47:29 +0000 UTC FinishedAt: 2026-08-01 09:49:03 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "863f3ddd0b8ac65abfb50d3be0869268ac0e277b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT", "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "863f3ddd0b8ac65abfb50d3be0869268ac0e277b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_JIT", "BPF_SYSCALL" ], "series_id": "b682b27f-d045-4c27-ad7c-3fc7ec753de3" }, "track": "KASAN", "fuzz": { "focus": [ "bpf" ], "focus_symbols": [ "bpf_int_jit_compile" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-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+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9KSVQmIzM0OywKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticGZfaW50X2ppdF9jb21waWxlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIgdG8gc3VwcG9ydCBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgdmlhIEJQRiBzeXNjYWxscyB3aGVuIEJQRiBKSVQgaXMgZW5hYmxlZCBvbiB4ODZfMzIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YmZmNzVhZTM3NTE4NmY1YTRkYWE4NDg1OTVjODNlYTBlMTE2ODMxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgMSAwOTo0ODozNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5pbmRleCA4NTJiYWYyZTRkYjRkLi4wMTIxNjFkYTNlODJjIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5AQCAtNDMyLDExICYjNDM7NDMyLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfdG9fYmVfcjY0KGNvbnN0IHU4IGRzdFtdLCBzMzIgdmFsLFxuICAqIEFMVSBvcGVyYXRpb24gKDMyIGJpdClcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xuICAqL1xuLXN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcbi1cdFx0XHRcdCAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZylcbiYjNDM7c3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3Qgc3RydWN0IGJwZl9pbnNuICppbnNuLCBjb25zdCB1OCBkc3QsXG4mIzQzO1x0XHRcdFx0ICAgICAgIGNvbnN0IHU4IHNyYywgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpXG4ge1xuIFx0dTggKnByb2cgPSAqcHByb2c7XG4gXHRpbnQgY250ID0gMDtcbiYjNDM7XHRjb25zdCB1OCBvcCA9IEJQRl9PUChpbnNuLVx1MDAzZWNvZGUpO1xuJiM0MztcdGNvbnN0IGJvb2wgaXNfc2lnbmVkID0gKGluc24tXHUwMDNlb2ZmID09IDEpO1xuIFxuIFx0aWYgKHNzdGspXG4gXHRcdC8qIG1vdiBlY3gsZHdvcmQgcHRyIFtlYnAmIzQzO29mZl0gKi9cbkBAIC00NTQsMTAgJiM0Mzs0NTYsMTcgQEAgc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxuIFx0XHQvKiBtb3YgZWF4LGRzdCAqL1xuIFx0XHRFTUlUMigweDhCLCBhZGRfMnJlZygweEMwLCBkc3QsIElBMzJfRUFYKSk7XG4gXG4tXHQvKiB4b3IgZWR4LGVkeCAqL1xuLVx0RU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7XG4tXHQvKiBkaXYgZWN4ICovXG4tXHRFTUlUMigweEY3LCBhZGRfMXJlZygweEYwLCBJQTMyX0VDWCkpO1xuJiM0MztcdGlmIChpc19zaWduZWQpIHtcbiYjNDM7XHRcdC8qIGNkcSAqL1xuJiM0MztcdFx0RU1JVDEoMHg5OSk7XG4mIzQzO1x0XHQvKiBpZGl2IGVjeCAqL1xuJiM0MztcdFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGOCwgSUEzMl9FQ1gpKTtcbiYjNDM7XHR9IGVsc2Uge1xuJiM0MztcdFx0LyogeG9yIGVkeCxlZHggKi9cbiYjNDM7XHRcdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xuJiM0MztcdFx0LyogZGl2IGVjeCAqL1xuJiM0MztcdFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcbiYjNDM7XHR9XG4gXG4gXHRpZiAob3AgPT0gQlBGX01PRCkge1xuIFx0XHRpZiAoZHN0aylcbkBAIC0xNzk1LDE0ICYjNDM7MTgwNCwxNCBAQCBzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG4gXHRcdGNhc2UgQlBGX0FMVSB8IEJQRl9NT0QgfCBCUEZfWDpcbiBcdFx0XHRzd2l0Y2ggKEJQRl9TUkMoY29kZSkpIHtcbiBcdFx0XHRjYXNlIEJQRl9YOlxuLVx0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihCUEZfT1AoY29kZSksIGRzdF9sbyxcbiYjNDM7XHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKGluc24sIGRzdF9sbyxcbiBcdFx0XHRcdFx0XHQgICAgc3JjX2xvLCBkc3RrLCBzc3RrLCBcdTAwMjZwcm9nKTtcbiBcdFx0XHRcdGJyZWFrO1xuIFx0XHRcdGNhc2UgQlBGX0s6XG4gXHRcdFx0XHQvKiBtb3YgZWN4LGltbTMyKi9cbiBcdFx0XHRcdEVNSVQyX29mZjMyKDB4QzcsIGFkZF8xcmVnKDB4QzAsIElBMzJfRUNYKSxcbiBcdFx0XHRcdFx0ICAgIGltbTMyKTtcbi1cdFx0XHRcdGVtaXRfaWEzMl9kaXZfbW9kX3IoQlBGX09QKGNvZGUpLCBkc3RfbG8sXG4mIzQzO1x0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihpbnNuLCBkc3RfbG8sXG4gXHRcdFx0XHRcdFx0ICAgIElBMzJfRUNYLCBkc3RrLCBmYWxzZSxcbiBcdFx0XHRcdFx0XHQgICAgXHUwMDI2cHJvZyk7XG4gXHRcdFx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX0pJVCYjMzQ7LAogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JwZl9pbnRfaml0X2NvbXBpbGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIDMyLWJpdCB4ODYgQlBGIEpJVCBjb21waWxlciB0byBzdXBwb3J0IHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb2RlIHJlYWNoYWJsZSB2aWEgQlBGIHN5c2NhbGxzIHdoZW4gQlBGIEpJVCBpcyBlbmFibGVkIG9uIHg4Nl8zMi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDViZmY3NWFlMzc1MTg2ZjVhNGRhYTg0ODU5NWM4M2VhMGUxMTY4MzEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAxIDA5OjQ4OjM2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYwppbmRleCA4NTJiYWYyZTRkYjRkLi4wMTIxNjFkYTNlODJjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYwpAQCAtNDMyLDExICYjNDM7NDMyLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfdG9fYmVfcjY0KGNvbnN0IHU4IGRzdFtdLCBzMzIgdmFsLAogICogQUxVIG9wZXJhdGlvbiAoMzIgYml0KQogICogZHN0ID0gZHN0IChkaXZ8bW9kKSBzcmMKICAqLwotc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLAotCQkJCSAgICAgICBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZykKJiM0MztzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX2Rpdl9tb2Rfcihjb25zdCBzdHJ1Y3QgYnBmX2luc24gKmluc24sIGNvbnN0IHU4IGRzdCwKJiM0MzsJCQkJICAgICAgIGNvbnN0IHU4IHNyYywgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpCiB7CiAJdTggKnByb2cgPSAqcHByb2c7CiAJaW50IGNudCA9IDA7CiYjNDM7CWNvbnN0IHU4IG9wID0gQlBGX09QKGluc24tJmd0O2NvZGUpOwomIzQzOwljb25zdCBib29sIGlzX3NpZ25lZCA9IChpbnNuLSZndDtvZmYgPT0gMSk7CiAKIAlpZiAoc3N0aykKIAkJLyogbW92IGVjeCxkd29yZCBwdHIgW2VicCYjNDM7b2ZmXSAqLwpAQCAtNDU0LDEwICYjNDM7NDU2LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYywKIAkJLyogbW92IGVheCxkc3QgKi8KIAkJRU1JVDIoMHg4QiwgYWRkXzJyZWcoMHhDMCwgZHN0LCBJQTMyX0VBWCkpOwogCi0JLyogeG9yIGVkeCxlZHggKi8KLQlFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTsKLQkvKiBkaXYgZWN4ICovCi0JRU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTsKJiM0MzsJaWYgKGlzX3NpZ25lZCkgewomIzQzOwkJLyogY2RxICovCiYjNDM7CQlFTUlUMSgweDk5KTsKJiM0MzsJCS8qIGlkaXYgZWN4ICovCiYjNDM7CQlFTUlUMigweEY3LCBhZGRfMXJlZygweEY4LCBJQTMyX0VDWCkpOwomIzQzOwl9IGVsc2UgewomIzQzOwkJLyogeG9yIGVkeCxlZHggKi8KJiM0MzsJCUVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpOwomIzQzOwkJLyogZGl2IGVjeCAqLwomIzQzOwkJRU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTsKJiM0MzsJfQogCiAJaWYgKG9wID09IEJQRl9NT0QpIHsKIAkJaWYgKGRzdGspCkBAIC0xNzk1LDE0ICYjNDM7MTgwNCwxNCBAQCBzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsCiAJCWNhc2UgQlBGX0FMVSB8IEJQRl9NT0QgfCBCUEZfWDoKIAkJCXN3aXRjaCAoQlBGX1NSQyhjb2RlKSkgewogCQkJY2FzZSBCUEZfWDoKLQkJCQllbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLAomIzQzOwkJCQllbWl0X2lhMzJfZGl2X21vZF9yKGluc24sIGRzdF9sbywKIAkJCQkJCSAgICBzcmNfbG8sIGRzdGssIHNzdGssICZhbXA7cHJvZyk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJQRl9LOgogCQkJCS8qIG1vdiBlY3gsaW1tMzIqLwogCQkJCUVNSVQyX29mZjMyKDB4QzcsIGFkZF8xcmVnKDB4QzAsIElBMzJfRUNYKSwKIAkJCQkJICAgIGltbTMyKTsKLQkJCQllbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLAomIzQzOwkJCQllbWl0X2lhMzJfZGl2X21vZF9yKGluc24sIGRzdF9sbywKIAkJCQkJCSAgICBJQTMyX0VDWCwgZHN0aywgZmFsc2UsCiAJCQkJCQkgICAgJmFtcDtwcm9nKTsKIAkJCQlicmVhazsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg3MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDIxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSB4ODYgMzItYml0IEJQRiBKSVQgRGl2aXNpb24vTW9kdWxvIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3MgdHdlYWtpbmcgYGFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgY29kZSBzZWVtcyB0byBiZSBjaGFuZ2luZyBgZW1pdF9pYTMyX2Rpdl9tb2RfcmAgdG8gZGVhbCB3aXRoIHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMgZm9yIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIuIEkgc2VlIHRoYXQgaXQmIzM5O3MgcmVseWluZyBvbiBgaW5zbi0mZ3Q7b2ZmID09IDFgIHRvIGZpZ3VyZSBvdXQgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIHNpZ25lZCBvcGVyYXRpb24uIEl0JiMzOTtzIGNvZGUgdGhhdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgdGhlIGZ1bmN0aW9uIG9mIHRoZSBCUEYgSklUIGNvbXBpbGVyIGZvciB0aGUgeDg2IDMyLWJpdCBhcmNoaXRlY3R1cmUuCgpNeSBmaXJzdCB0aG91Z2h0IGlzIGFsd2F5cyB0byBjb25zaWRlciByZWFjaGFiaWxpdHkuIElzIHRoaXMgZXZlbiB0b3VjaGVkPyBgYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNgIHdpbGwgb25seSBiZSBjb21waWxlZCBpZiBib3RoIGBDT05GSUdfWDg2XzMyYCBhbmQgYENPTkZJR19CUEZfSklUYCBhcmUgZW5hYmxlZC4gVGhlbiBJJiMzOTttIHRoaW5raW5nLCAmIzM0O3N5emthbGxlciB1c3VhbGx5IGhpdHMgeDg2XzY0LCByaWdodD8gQ291bGQgdGhpcyBhY3R1YWxseSBiZSB0ZXN0ZWQsIG9yIG1heWJlIGRvZXMgaXQgZ2V0IGNvbXBpbGVkIG9uIHg4Nl82NCBpbiBzb21lIHdlaXJkIHdheT8mIzM0Oy4gSSYjMzk7bGwgaGF2ZSB0byBnbyBsb29rIGF0IGBhcmNoL3g4Ni9uZXQvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhlIGNvbXBpbGF0aW9uIGNvbmRpdGlvbnMgYW5kIHBvdGVudGlhbCBjcm9zcy1hcmNoaXRlY3R1cmUgdGVzdGluZyBzY2VuYXJpb3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnBmX2ppdF9jb21wMzIubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvTWFrZWZpbGU9Nj1pZmVxICgkKENPTkZJR19YODZfMzIpLHkpXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGU6NzogICAgICAgIG9iai0kKENPTkZJR19CUEZfSklUKSAmIzQzOz0gYnBmX2ppdF9jb21wMzIub1xuYXJjaC94ODYvbmV0L01ha2VmaWxlLTgtZWxzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MTkKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgQ09ORklHX1g4Nl8zMmAgRGVwZW5kZW5jeSoqCgpPa2F5LCBzbyB0aGlzIGNvZGUgaXMgb25seSBjb21waWxlZCBpZiBgQ09ORklHX1g4Nl8zMmAgaXMgZGVmaW5lZC4gTXkgZmlyc3QgdGhvdWdodCBpcywgY2FuIHdlIGFjdHVhbGx5IGVuYWJsZSBgQ09ORklHX1g4Nl8zMmAgZm9yIGZ1enppbmcgcHVycG9zZXM/IFN5emthbGxlciB0eXBpY2FsbHkgdGVzdHMgeDg2XzY0LCBidXQgSSBrbm93IGl0JiMzOTtzIGNhcGFibGUgb2YgdGVzdGluZyB4ODZfMzIgdG9vLiBNeSBpbml0aWFsIGluc3RpbmN0IHdhcyB0byBzaW1wbHkgc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAgYW5kIGVuYWJsZSBjb25maWd1cmF0aW9ucyBsaWtlICYjMzQ7WDg2XzMyJiMzNDsgYW5kICYjMzQ7QlBGX0pJVCYjMzQ7LiBCdXQgdGhlbiBJIHBhdXNlZCwgYFg4Nl8zMmAgaXMgYW4gKmFyY2hpdGVjdHVyZSogY29uZmlndXJhdGlvbiEgV2UgY2FuJiMzOTt0IGp1c3QgZmxpcCBpdCBvbiBpbiBhbiB4ODZfNjQga2VybmVsLiBUaGF0JiMzOTtzIGEgZnVuZGFtZW50YWwgYXJjaGl0ZWN0dXJhbCBkaWZmZXJlbmNlLiBXZSYjMzk7cmUgbm90IGp1c3QgZGVhbGluZyB3aXRoIGEgZmVhdHVyZSBmbGFnIGhlcmUuCgpIb3dldmVyLCBTeXprYWxsZXIgKmRvZXMqIGhhdmUgaW5zdGFuY2VzIHRoYXQgdGVzdCB4ODZfMzIsIGxpa2UgdGhlIGBzeXotY2x1c3RlcmAgc2V0dXAuIFNvLCB3ZSYjMzk7cmUgbm90IGRlYWQgaW4gdGhlIHdhdGVyLiBXZSBuZWVkIHRvIGZvY3VzIG9uIHdoYXQgU3l6a2FsbGVyIGNhbiBhY3R1YWxseSB3b3JrIHdpdGggaW4gdGhpcyBjb250ZXh0LiBSYXRoZXIgdGhhbiB0cnlpbmcgdG8gZm9yY2UgaXQgb250byB0aGUgeDg2XzY0IGNvbmZpZ3VyYXRpb24sIGxldCYjMzk7cyBqdXN0IG91dHB1dCBgWDg2XzMyYCBhbmQgZWl0aGVyIGBCUEZfSklUYCBvciBtYXliZSBgQlBGX1NZU0NBTExgIGFzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgc2luY2UgdGhvc2UgYXJlIHdoYXQgd2UmIzM5O3JlIHJlYWxseSBsb29raW5nIGZvci4gTm93LCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgYGFyY2gveDg2L0tjb25maWdgIGZpbGUgdG8gY29uZmlybSBob3cgYFg4Nl8zMmAgaXMgZGVmaW5lZCBhbmQgZW5zdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IGdvdGNoYXMgSSYjMzk7bSBtaXNzaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBYODZfMzImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L0tjb25maWc9Mz1jb25maWcgNjRCSVRcbi0tXG5hcmNoL3g4Ni9LY29uZmlnLTktXG5hcmNoL3g4Ni9LY29uZmlnOjEwOmNvbmZpZyBYODZfMzJcbmFyY2gveDg2L0tjb25maWctMTEtXHRkZWZfYm9vbCB5XG4tLVxuYXJjaC94ODYvS2NvbmZpZz03NDk9Y29uZmlnIFg4Nl9TVVBQT1JUU19NRU1PUllfRkFJTFVSRVxuLS1cbmFyY2gveDg2L0tjb25maWctNzU3LVxuYXJjaC94ODYvS2NvbmZpZzo3NTg6Y29uZmlnIFg4Nl8zMl9JUklTXG5hcmNoL3g4Ni9LY29uZmlnLTc1OS1cdHRyaXN0YXRlIFwmIzM0O0V1cm9icmFpbGxlL0lyaXMgcG93ZXJvZmYgbW9kdWxlXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMxOQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGFjdCBvZiBgWDg2XzMyYCBvbiB0aGUgQlBGIEpJVCBDb21waWxlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJdCBsb29rcyBsaWtlIHRoZSBkZWZpbml0aW9uIG9mIGBYODZfMzJgIGhpbmdlcyBvbiBhIGJvb2xlYW4sIGB5YCwgYW5kIGNydWNpYWxseSwgd2hldGhlciB3ZSYjMzk7cmUgKm5vdCogaW4gYSA2NC1iaXQgZW52aXJvbm1lbnQuIFRoYXQmIzM5O3Mgb3VyIGluaXRpYWwgdHJpZ2dlci4gTXkgZ3V0IHRlbGxzIG1lIHdlIHNob3VsZCBpbW1lZGlhdGVseSBjb25zaWRlciBpbmNsdWRpbmcgYm90aCBgQlBGX0pJVGAgYW5kIGBCUEZfU1lTQ0FMTGAgaW4gb3VyIHNjb3BlIG9mIGludGVyZXN0LiBMZXQmIzM5O3Mgc2VlLi4uIHRoZSBjb2RlIGFwcGVhcnMgdG8gYmUgaW1wYWN0aW5nIHRoZSBkaXZpc2lvbiBhbmQgbW9kdWx1cyBvcGVyYXRpb25zIHNwZWNpZmljYWxseSwgdXNpbmcgdGhlIGBlbWl0X2lhMzJfZGl2X21vZF9yYCBmdW5jdGlvbi4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBjb25maXJtIHRoYXQmIzM5O3MgdGhlICpvbmx5KiBmdW5jdGlvbiBkaXJlY3RseSBtb2RpZmllZCBieSB0aGlzIGBYODZfMzJgIGNvbmRpdGlvbmFsLiBZZXMsIGxvb2tzIGxpa2UgaXQmIzM5O3Mgb25seSB0aGF0IGZ1bmN0aW9uLiBBaCwgYW5kIGBkb19qaXRgIGlzIGFsc28gYWZmZWN0ZWQuIExvb2tzIGxpa2UgYGRvX2ppdGAgaXMgdGhlIGZ1bmN0aW9uIHdlIHNob3VsZCBmb2N1cyBvbiBmb3IgdGhpcyByZXZpZXcuCgpOb3csIGEgcXVpY2sgY29uZmlybWF0aW9uLi4uIEkmIzM5O20gcHJldHR5IGNlcnRhaW4gYGRvX2ppdGAgaXMgZGVmaW5lZCB3aXRoaW4gYGJwZl9qaXRfY29tcDMyLmNgLCByaWdodD8gTGV0JiMzOTtzIHF1aWNrbHkgbmF2aWdhdGUgdG8gdGhhdCBmaWxlIGFuZCBzZWUgaWYgbXkgaHVuY2ggaXMgY29ycmVjdCwgYW5kIGdldCBhIGJldHRlciBwaWN0dXJlIG9mIHRoZSBjb250ZXh0IG9mIHRoYXQgZnVuY3Rpb24sIGp1c3QgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkb19qaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0xNTc4PXN0YXRpYyBpbnQgZW1pdF9rZnVuY19jYWxsKGNvbnN0IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIHU4ICplbmRfYWRkcixcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0xNjY3LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MTY2ODpzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0xNjY5LVx0XHQgIGludCBvbGRwcm9nbGVuLCBzdHJ1Y3Qgaml0X2NvbnRleHQgKmN0eClcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0yNTMwPXN0cnVjdCBicGZfcHJvZyAqYnBmX2ludF9qaXRfY29tcGlsZShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMjU2My1cdGZvciAocGFzcyA9IDA7IHBhc3MgXHUwMDNjIDIwIHx8IGltYWdlOyBwYXNzJiM0MzsmIzQzOykge1xuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjU2NDpcdFx0cHJvZ2xlbiA9IGRvX2ppdChwcm9nLCBhZGRycywgaW1hZ2UsIG9sZHByb2dsZW4sIFx1MDAyNmN0eCk7XG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTY1LVx0XHRpZiAocHJvZ2xlbiBcdTAwM2M9IDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwOTo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTYyCgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBKSVQgQ29tcGlsYXRpb24gRW50cnlwb2ludCoqCgpPa2F5LCBzbyBgYnBmX2ludF9qaXRfY29tcGlsZWAgaXMgdGhlIGZ1bmN0aW9uIHdlJiMzOTtyZSBzdGFydGluZyB3aXRoIOKAkyB0aGF0JiMzOTtzIHRoZSBlbnRyeXBvaW50IGZvciB0aGUgaW50ZWdlciBKSVQgY29tcGlsYXRpb24gcHJvY2Vzcy4gVGhlIGZpcnN0IHRoaW5nIEkgbmVlZCB0byBjb25maXJtIGlzIGl0cyB2aXNpYmlsaXR5OiBpcyBpdCBleHBvcnRlZCwgbWVhbmluZyBpdCYjMzk7cyBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZSBpdHMgZGVmaW5pbmcgbW9kdWxlLCBvciBpcyBpdCBnbG9iYWwsIHdoaWNoIGltcGxpZXMgYW4gZXZlbiBicm9hZGVyIHNjb3BlIG9mIGFjY2Vzc2liaWxpdHk/IFVuZGVyc3RhbmRpbmcgaXRzIHNjb3BlIGlzIGZ1bmRhbWVudGFsLiBUaGlzIGRldGVybWluZXMgaG93IGl0JiMzOTtzIGxpbmtlZCBhbmQgdGhlIHBvc3NpYmxlIGltcGxpY2F0aW9ucyBvbiBleHRlcm5hbCBpbnRlcmFjdGlvbnMuIExldCYjMzk7cyBkaWcgaW4gYW5kIGZpZ3VyZSBvdXQgaXRzIGNhbGxpbmcgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDk6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MjU9Ym9vbCBicGZfaml0X25lZWRzX3pleHQodm9pZClcbi0tXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTI5LVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjUzMDpzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMjUzMS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1NDMKCQkJCQkJCW91dHB1dDogMTA3CgkJCQkJCQl0aG91Z2h0czogNDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBCUEYgSklUIFBhdGNoIGZvciBTaWduZWQgRGl2aXNpb24vTW9kdWxvIG9uIHg4Nl8zMioqCgpPa2F5LCBzbyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgaXMgZGVmaW5pdGVseSBgYnBmX2ludF9qaXRfY29tcGlsZWAuIFRoYXQgc2VlbXMgbGlrZSB0aGUgcmlnaHQgcGxhY2UgdG8gc3RhcnQgbG9va2luZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnkgb3RoZXIga2V5IGZ1bmN0aW9ucywgYnV0IGBicGZfaW50X2ppdF9jb21waWxlYCBzZWVtcyBsaWtlIGEgc29saWQgZm9jdXMuCgpCYXNlZCBvbiB0aGUgcHJvbXB0LCBpdCBzb3VuZHMgbGlrZSB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyIHRvIGFkZCBzdXBwb3J0IGZvciBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgbGlrZWx5IGFjY2Vzc2VkIHRocm91Z2ggQlBGIHN5c3RlbSBjYWxscyB3aGVuIHRoZSBKSVQgaXMgdHVybmVkIG9uIGZvciB4ODZfMzIuCgpOb3csIHJlZ2FyZGluZyB0aGUgRW5hYmxlQ29uZmlncywgSSBuZWVkIHRvIGJlIHByZWNpc2UuIFRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IGFza3MgdG8gKm5vdCogaW5jbHVkZSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXhlcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgSSBoYXZlIHRvIGluY2x1ZGUgYFg4Nl8zMmAsIGl0ICppcyogYW4gYWNjdXJhdGUgY29uZmlnLCBidXQgaW5jbHVkaW5nIGl0IG1pZ2h0IGNhdXNlIHByb2JsZW1zIGlmIHRoZSBmdXp6ZXIgdHJpZXMgdG8gZW5hYmxlIGl0IG9uIGFuIHg4Nl82NCBzeXN0ZW0uIFNvLCBJIHRoaW5rIEkmIzM5O2xsIGp1c3Qgc3RpY2sgd2l0aCBgQlBGX0pJVGAgYW5kIGBCUEZfU1lTQ0FMTGAgYXMgdGhleSYjMzk7cmUgdGhlIGNvcmUgZGVwZW5kZW5jaWVzLgoKTGV0IG1lIHRha2UgYW5vdGhlciBxdWljayBsb29rIGF0IHRoZSBwYXRjaCBpdHNlbGYgdG8gcmVmcmVzaCBteSBtZW1vcnkuIEFoYSwgdGhlIGtleSBjaGFuZ2UgaXMgaW4gYGVtaXRfaWEzMl9kaXZfbW9kX3JgLiBJdCBub3cgdGFrZXMgYSBgc3RydWN0IGJwZl9pbnNuICppbnNuYCBpbnN0ZWFkIG9mIGp1c3QgdGhlIGBvcGAgY29kZSwgYW5kIGl0IG5vdyBjaGVja3MgYGluc24tJmd0O29mZiA9PSAxYCB0byBkZXRlcm1pbmUgaWYgaXQmIzM5O3MgYSBzaWduZWQgZGl2aXNpb24uCgpZZXAsIHRoaXMgbG9va3MgbGlrZSBmdW5jdGlvbmFsIGNvZGUgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBicGZfaW50X2ppdF9jb21waWxlYCBhcyB0aGUgYEZvY3VzU3ltYm9sc2AgYW5kIGBCUEZfSklUYCwgYEJQRl9TWVNDQUxMYCBmb3IgYEVuYWJsZUNvbmZpZ3NgLiBJIHRoaW5rIHRoYXQmIzM5O3MgaXQhIExldCYjMzk7cyBnZXQgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA5OjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyIHRvIHN1cHBvcnQgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIHZpYSBCUEYgc3lzY2FsbHMgd2hlbiBCUEYgSklUIGlzIGVuYWJsZWQgb24geDg2XzMyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfSklUJiMzNDssCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YnBmX2ludF9qaXRfY29tcGlsZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyIHRvIHN1cHBvcnQgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIHZpYSBCUEYgc3lzY2FsbHMgd2hlbiBCUEYgSklUIGlzIGVuYWJsZWQgb24geDg2XzMyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6MzcuNjIzMTI4NDI4WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ4MjA3NzQwNjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX0pJVFwiLFxuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfaW50X2ppdF9jb21waWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIDMyLWJpdCB4ODYgQlBGIEpJVCBjb21waWxlciB0byBzdXBwb3J0IHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb2RlIHJlYWNoYWJsZSB2aWEgQlBGIHN5c2NhbGxzIHdoZW4gQlBGIEpJVCBpcyBlbmFibGVkIG9uIHg4Nl8zMi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6MzcuNjIzMTMzMTI4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODI0ODI4MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1YmZmNzVhZTM3NTE4NmY1YTRkYWE4NDg1OTVjODNlYTBlMTE2ODMxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDg6MzYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1xcbmluZGV4IDg1MmJhZjJlNGRiNGQuLjAxMjE2MWRhM2U4MmMgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcXG4rKysgYi9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1xcbkBAIC00MzIsMTEgKzQzMiwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX3RvX2JlX3I2NChjb25zdCB1OCBkc3RbXSwgczMyIHZhbCxcXG4gICogQUxVIG9wZXJhdGlvbiAoMzIgYml0KVxcbiAgKiBkc3QgPSBkc3QgKGRpdnxtb2QpIHNyY1xcbiAgKi9cXG4tc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxcbi1cXHRcXHRcXHRcXHQgICAgICAgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpXFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgY29uc3QgdTggZHN0LFxcbitcXHRcXHRcXHRcXHQgICAgICAgY29uc3QgdTggc3JjLCBib29sIGRzdGssIGJvb2wgc3N0aywgdTggKipwcHJvZylcXG4ge1xcbiBcXHR1OCAqcHJvZyA9ICpwcHJvZztcXG4gXFx0aW50IGNudCA9IDA7XFxuK1xcdGNvbnN0IHU4IG9wID0gQlBGX09QKGluc24tXFx1MDAzZWNvZGUpO1xcbitcXHRjb25zdCBib29sIGlzX3NpZ25lZCA9IChpbnNuLVxcdTAwM2VvZmYgPT0gMSk7XFxuIFxcbiBcXHRpZiAoc3N0aylcXG4gXFx0XFx0LyogbW92IGVjeCxkd29yZCBwdHIgW2VicCtvZmZdICovXFxuQEAgLTQ1NCwxMCArNDU2LDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHU4IG9wLCBjb25zdCB1OCBkc3QsIGNvbnN0IHU4IHNyYyxcXG4gXFx0XFx0LyogbW92IGVheCxkc3QgKi9cXG4gXFx0XFx0RU1JVDIoMHg4QiwgYWRkXzJyZWcoMHhDMCwgZHN0LCBJQTMyX0VBWCkpO1xcbiBcXG4tXFx0LyogeG9yIGVkeCxlZHggKi9cXG4tXFx0RU1JVDIoMHgzMSwgYWRkXzJyZWcoMHhDMCwgSUEzMl9FRFgsIElBMzJfRURYKSk7XFxuLVxcdC8qIGRpdiBlY3ggKi9cXG4tXFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGMCwgSUEzMl9FQ1gpKTtcXG4rXFx0aWYgKGlzX3NpZ25lZCkge1xcbitcXHRcXHQvKiBjZHEgKi9cXG4rXFx0XFx0RU1JVDEoMHg5OSk7XFxuK1xcdFxcdC8qIGlkaXYgZWN4ICovXFxuK1xcdFxcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjgsIElBMzJfRUNYKSk7XFxuK1xcdH0gZWxzZSB7XFxuK1xcdFxcdC8qIHhvciBlZHgsZWR4ICovXFxuK1xcdFxcdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xcbitcXHRcXHQvKiBkaXYgZWN4ICovXFxuK1xcdFxcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7XFxuK1xcdH1cXG4gXFxuIFxcdGlmIChvcCA9PSBCUEZfTU9EKSB7XFxuIFxcdFxcdGlmIChkc3RrKVxcbkBAIC0xNzk1LDE0ICsxODA0LDE0IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcXG4gXFx0XFx0Y2FzZSBCUEZfQUxVIHwgQlBGX01PRCB8IEJQRl9YOlxcbiBcXHRcXHRcXHRzd2l0Y2ggKEJQRl9TUkMoY29kZSkpIHtcXG4gXFx0XFx0XFx0Y2FzZSBCUEZfWDpcXG4tXFx0XFx0XFx0XFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihCUEZfT1AoY29kZSksIGRzdF9sbyxcXG4rXFx0XFx0XFx0XFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihpbnNuLCBkc3RfbG8sXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgICBzcmNfbG8sIGRzdGssIHNzdGssIFxcdTAwMjZwcm9nKTtcXG4gXFx0XFx0XFx0XFx0YnJlYWs7XFxuIFxcdFxcdFxcdGNhc2UgQlBGX0s6XFxuIFxcdFxcdFxcdFxcdC8qIG1vdiBlY3gsaW1tMzIqL1xcbiBcXHRcXHRcXHRcXHRFTUlUMl9vZmYzMigweEM3LCBhZGRfMXJlZygweEMwLCBJQTMyX0VDWCksXFxuIFxcdFxcdFxcdFxcdFxcdCAgICBpbW0zMik7XFxuLVxcdFxcdFxcdFxcdGVtaXRfaWEzMl9kaXZfbW9kX3IoQlBGX09QKGNvZGUpLCBkc3RfbG8sXFxuK1xcdFxcdFxcdFxcdGVtaXRfaWEzMl9kaXZfbW9kX3IoaW5zbiwgZHN0X2xvLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICAgSUEzMl9FQ1gsIGRzdGssIGZhbHNlLFxcbiBcXHRcXHRcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnByb2cpO1xcbiBcXHRcXHRcXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6MzguMTA2MzQxNDg5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjQzMzc1NTE2NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlBGX0pJVFwiLFxuICAgIFwiQlBGX1NZU0NBTExcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicGZfaW50X2ppdF9jb21waWxlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIDMyLWJpdCB4ODYgQlBGIEpJVCBjb21waWxlciB0byBzdXBwb3J0IHNpZ25lZCBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdGlvbnMuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb2RlIHJlYWNoYWJsZSB2aWEgQlBGIHN5c2NhbGxzIHdoZW4gQlBGIEpJVCBpcyBlbmFibGVkIG9uIHg4Nl8zMi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNWJmZjc1YWUzNzUxODZmNWE0ZGFhODQ4NTk1YzgzZWEwZTExNjgzMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMDk6NDg6MzYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5pbmRleCA4NTJiYWYyZTRkYjRkLi4wMTIxNjFkYTNlODJjIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmNcbisrKyBiL2FyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXG5AQCAtNDMyLDExICs0MzIsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl90b19iZV9yNjQoY29uc3QgdTggZHN0W10sIHMzMiB2YWwsXG4gICogQUxVIG9wZXJhdGlvbiAoMzIgYml0KVxuICAqIGRzdCA9IGRzdCAoZGl2fG1vZCkgc3JjXG4gICovXG4tc3RhdGljIGlubGluZSB2b2lkIGVtaXRfaWEzMl9kaXZfbW9kX3IoY29uc3QgdTggb3AsIGNvbnN0IHU4IGRzdCwgY29uc3QgdTggc3JjLFxuLVx0XHRcdFx0ICAgICAgIGJvb2wgZHN0aywgYm9vbCBzc3RrLCB1OCAqKnBwcm9nKVxuK3N0YXRpYyBpbmxpbmUgdm9pZCBlbWl0X2lhMzJfZGl2X21vZF9yKGNvbnN0IHN0cnVjdCBicGZfaW5zbiAqaW5zbiwgY29uc3QgdTggZHN0LFxuK1x0XHRcdFx0ICAgICAgIGNvbnN0IHU4IHNyYywgYm9vbCBkc3RrLCBib29sIHNzdGssIHU4ICoqcHByb2cpXG4ge1xuIFx0dTggKnByb2cgPSAqcHByb2c7XG4gXHRpbnQgY250ID0gMDtcbitcdGNvbnN0IHU4IG9wID0gQlBGX09QKGluc24tXHUwMDNlY29kZSk7XG4rXHRjb25zdCBib29sIGlzX3NpZ25lZCA9IChpbnNuLVx1MDAzZW9mZiA9PSAxKTtcbiBcbiBcdGlmIChzc3RrKVxuIFx0XHQvKiBtb3YgZWN4LGR3b3JkIHB0ciBbZWJwK29mZl0gKi9cbkBAIC00NTQsMTAgKzQ1NiwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZW1pdF9pYTMyX2Rpdl9tb2Rfcihjb25zdCB1OCBvcCwgY29uc3QgdTggZHN0LCBjb25zdCB1OCBzcmMsXG4gXHRcdC8qIG1vdiBlYXgsZHN0ICovXG4gXHRcdEVNSVQyKDB4OEIsIGFkZF8ycmVnKDB4QzAsIGRzdCwgSUEzMl9FQVgpKTtcbiBcbi1cdC8qIHhvciBlZHgsZWR4ICovXG4tXHRFTUlUMigweDMxLCBhZGRfMnJlZygweEMwLCBJQTMyX0VEWCwgSUEzMl9FRFgpKTtcbi1cdC8qIGRpdiBlY3ggKi9cbi1cdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7XG4rXHRpZiAoaXNfc2lnbmVkKSB7XG4rXHRcdC8qIGNkcSAqL1xuK1x0XHRFTUlUMSgweDk5KTtcbitcdFx0LyogaWRpdiBlY3ggKi9cbitcdFx0RU1JVDIoMHhGNywgYWRkXzFyZWcoMHhGOCwgSUEzMl9FQ1gpKTtcbitcdH0gZWxzZSB7XG4rXHRcdC8qIHhvciBlZHgsZWR4ICovXG4rXHRcdEVNSVQyKDB4MzEsIGFkZF8ycmVnKDB4QzAsIElBMzJfRURYLCBJQTMyX0VEWCkpO1xuK1x0XHQvKiBkaXYgZWN4ICovXG4rXHRcdEVNSVQyKDB4RjcsIGFkZF8xcmVnKDB4RjAsIElBMzJfRUNYKSk7XG4rXHR9XG4gXG4gXHRpZiAob3AgPT0gQlBGX01PRCkge1xuIFx0XHRpZiAoZHN0aylcbkBAIC0xNzk1LDE0ICsxODA0LDE0IEBAIHN0YXRpYyBpbnQgZG9faml0KHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIGludCAqYWRkcnMsIHU4ICppbWFnZSxcbiBcdFx0Y2FzZSBCUEZfQUxVIHwgQlBGX01PRCB8IEJQRl9YOlxuIFx0XHRcdHN3aXRjaCAoQlBGX1NSQyhjb2RlKSkge1xuIFx0XHRcdGNhc2UgQlBGX1g6XG4tXHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxuK1x0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihpbnNuLCBkc3RfbG8sXG4gXHRcdFx0XHRcdFx0ICAgIHNyY19sbywgZHN0aywgc3N0aywgXHUwMDI2cHJvZyk7XG4gXHRcdFx0XHRicmVhaztcbiBcdFx0XHRjYXNlIEJQRl9LOlxuIFx0XHRcdFx0LyogbW92IGVjeCxpbW0zMiovXG4gXHRcdFx0XHRFTUlUMl9vZmYzMigweEM3LCBhZGRfMXJlZygweEMwLCBJQTMyX0VDWCksXG4gXHRcdFx0XHRcdCAgICBpbW0zMik7XG4tXHRcdFx0XHRlbWl0X2lhMzJfZGl2X21vZF9yKEJQRl9PUChjb2RlKSwgZHN0X2xvLFxuK1x0XHRcdFx0ZW1pdF9pYTMyX2Rpdl9tb2RfcihpbnNuLCBkc3RfbG8sXG4gXHRcdFx0XHRcdFx0ICAgIElBMzJfRUNYLCBkc3RrLCBmYWxzZSxcbiBcdFx0XHRcdFx0XHQgICAgXHUwMDI2cHJvZyk7XG4gXHRcdFx0XHRicmVhaztcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ4OjM4LjEwNjM0MzExOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NTAzNTU3OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgeDg2IDMyLWJpdCBCUEYgSklUIERpdmlzaW9uL01vZHVsbyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIHR3ZWFraW5nIGBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY2AuIFNwZWNpZmljYWxseSwgdGhlIGNvZGUgc2VlbXMgdG8gYmUgY2hhbmdpbmcgYGVtaXRfaWEzMl9kaXZfbW9kX3JgIHRvIGRlYWwgd2l0aCBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zIGZvciB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyLiBJIHNlZSB0aGF0IGl0J3MgcmVseWluZyBvbiBgaW5zbi1cdTAwM2VvZmYgPT0gMWAgdG8gZmlndXJlIG91dCBpZiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgc2lnbmVkIG9wZXJhdGlvbi4gSXQncyBjb2RlIHRoYXQncyByZXNwb25zaWJsZSBmb3IgdGhlIGZ1bmN0aW9uIG9mIHRoZSBCUEYgSklUIGNvbXBpbGVyIGZvciB0aGUgeDg2IDMyLWJpdCBhcmNoaXRlY3R1cmUuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMgYWx3YXlzIHRvIGNvbnNpZGVyIHJlYWNoYWJpbGl0eS4gSXMgdGhpcyBldmVuIHRvdWNoZWQ/IGBhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY2Agd2lsbCBvbmx5IGJlIGNvbXBpbGVkIGlmIGJvdGggYENPTkZJR19YODZfMzJgIGFuZCBgQ09ORklHX0JQRl9KSVRgIGFyZSBlbmFibGVkLiBUaGVuIEknbSB0aGlua2luZywgXCJzeXprYWxsZXIgdXN1YWxseSBoaXRzIHg4Nl82NCwgcmlnaHQ/IENvdWxkIHRoaXMgYWN0dWFsbHkgYmUgdGVzdGVkLCBvciBtYXliZSBkb2VzIGl0IGdldCBjb21waWxlZCBvbiB4ODZfNjQgaW4gc29tZSB3ZWlyZCB3YXk/XCIuIEknbGwgaGF2ZSB0byBnbyBsb29rIGF0IGBhcmNoL3g4Ni9uZXQvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhlIGNvbXBpbGF0aW9uIGNvbmRpdGlvbnMgYW5kIHBvdGVudGlhbCBjcm9zcy1hcmNoaXRlY3R1cmUgdGVzdGluZyBzY2VuYXJpb3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NzMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTYsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0ODo0Mi43NTY3MDI1NzFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcxMjE4MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnBmX2ppdF9jb21wMzIub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9uZXQvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvbmV0L01ha2VmaWxlPTY9aWZlcSAoJChDT05GSUdfWDg2XzMyKSx5KVxcbmFyY2gveDg2L25ldC9NYWtlZmlsZTo3OiAgICAgICAgb2JqLSQoQ09ORklHX0JQRl9KSVQpICs9IGJwZl9qaXRfY29tcDMyLm9cXG5hcmNoL3g4Ni9uZXQvTWFrZWZpbGUtOC1lbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ4OjQyLjgwMzgyOTk5OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwMzA1ODY3NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBgQ09ORklHX1g4Nl8zMmAgRGVwZW5kZW5jeSoqXG5cbk9rYXksIHNvIHRoaXMgY29kZSBpcyBvbmx5IGNvbXBpbGVkIGlmIGBDT05GSUdfWDg2XzMyYCBpcyBkZWZpbmVkLiBNeSBmaXJzdCB0aG91Z2h0IGlzLCBjYW4gd2UgYWN0dWFsbHkgZW5hYmxlIGBDT05GSUdfWDg2XzMyYCBmb3IgZnV6emluZyBwdXJwb3Nlcz8gU3l6a2FsbGVyIHR5cGljYWxseSB0ZXN0cyB4ODZfNjQsIGJ1dCBJIGtub3cgaXQncyBjYXBhYmxlIG9mIHRlc3RpbmcgeDg2XzMyIHRvby4gTXkgaW5pdGlhbCBpbnN0aW5jdCB3YXMgdG8gc2ltcGx5IHNldCBgV29ydGhGdXp6aW5nPXRydWVgIGFuZCBlbmFibGUgY29uZmlndXJhdGlvbnMgbGlrZSBcIlg4Nl8zMlwiIGFuZCBcIkJQRl9KSVRcIi4gQnV0IHRoZW4gSSBwYXVzZWQsIGBYODZfMzJgIGlzIGFuICphcmNoaXRlY3R1cmUqIGNvbmZpZ3VyYXRpb24hIFdlIGNhbid0IGp1c3QgZmxpcCBpdCBvbiBpbiBhbiB4ODZfNjQga2VybmVsLiBUaGF0J3MgYSBmdW5kYW1lbnRhbCBhcmNoaXRlY3R1cmFsIGRpZmZlcmVuY2UuIFdlJ3JlIG5vdCBqdXN0IGRlYWxpbmcgd2l0aCBhIGZlYXR1cmUgZmxhZyBoZXJlLlxuXG5Ib3dldmVyLCBTeXprYWxsZXIgKmRvZXMqIGhhdmUgaW5zdGFuY2VzIHRoYXQgdGVzdCB4ODZfMzIsIGxpa2UgdGhlIGBzeXotY2x1c3RlcmAgc2V0dXAuIFNvLCB3ZSdyZSBub3QgZGVhZCBpbiB0aGUgd2F0ZXIuIFdlIG5lZWQgdG8gZm9jdXMgb24gd2hhdCBTeXprYWxsZXIgY2FuIGFjdHVhbGx5IHdvcmsgd2l0aCBpbiB0aGlzIGNvbnRleHQuIFJhdGhlciB0aGFuIHRyeWluZyB0byBmb3JjZSBpdCBvbnRvIHRoZSB4ODZfNjQgY29uZmlndXJhdGlvbiwgbGV0J3MganVzdCBvdXRwdXQgYFg4Nl8zMmAgYW5kIGVpdGhlciBgQlBGX0pJVGAgb3IgbWF5YmUgYEJQRl9TWVNDQUxMYCBhcyBjb25maWd1cmF0aW9uIG9wdGlvbnMsIHNpbmNlIHRob3NlIGFyZSB3aGF0IHdlJ3JlIHJlYWxseSBsb29raW5nIGZvci4gTm93LCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSdsbCBxdWlja2x5IGNoZWNrIHRoZSBgYXJjaC94ODYvS2NvbmZpZ2AgZmlsZSB0byBjb25maXJtIGhvdyBgWDg2XzMyYCBpcyBkZWZpbmVkIGFuZCBlbnN1cmUgdGhlcmUgYXJlbid0IGFueSBnb3RjaGFzIEknbSBtaXNzaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTE5LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ4OjQ3LjgzNDQxOTgzN1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTQxNjA2NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgWDg2XzMyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYvS2NvbmZpZz0zPWNvbmZpZyA2NEJJVFxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZy05LVxcbmFyY2gveDg2L0tjb25maWc6MTA6Y29uZmlnIFg4Nl8zMlxcbmFyY2gveDg2L0tjb25maWctMTEtXFx0ZGVmX2Jvb2wgeVxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZz03NDk9Y29uZmlnIFg4Nl9TVVBQT1JUU19NRU1PUllfRkFJTFVSRVxcbi0tXFxuYXJjaC94ODYvS2NvbmZpZy03NTctXFxuYXJjaC94ODYvS2NvbmZpZzo3NTg6Y29uZmlnIFg4Nl8zMl9JUklTXFxuYXJjaC94ODYvS2NvbmZpZy03NTktXFx0dHJpc3RhdGUgXFxcIkV1cm9icmFpbGxlL0lyaXMgcG93ZXJvZmYgbW9kdWxlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0ODo0Ny44Nzk4NDIyMzVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0Mzg2OTUyMzI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIGBYODZfMzJgIG9uIHRoZSBCUEYgSklUIENvbXBpbGVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJdCBsb29rcyBsaWtlIHRoZSBkZWZpbml0aW9uIG9mIGBYODZfMzJgIGhpbmdlcyBvbiBhIGJvb2xlYW4sIGB5YCwgYW5kIGNydWNpYWxseSwgd2hldGhlciB3ZSdyZSAqbm90KiBpbiBhIDY0LWJpdCBlbnZpcm9ubWVudC4gVGhhdCdzIG91ciBpbml0aWFsIHRyaWdnZXIuIE15IGd1dCB0ZWxscyBtZSB3ZSBzaG91bGQgaW1tZWRpYXRlbHkgY29uc2lkZXIgaW5jbHVkaW5nIGJvdGggYEJQRl9KSVRgIGFuZCBgQlBGX1NZU0NBTExgIGluIG91ciBzY29wZSBvZiBpbnRlcmVzdC4gTGV0J3Mgc2VlLi4uIHRoZSBjb2RlIGFwcGVhcnMgdG8gYmUgaW1wYWN0aW5nIHRoZSBkaXZpc2lvbiBhbmQgbW9kdWx1cyBvcGVyYXRpb25zIHNwZWNpZmljYWxseSwgdXNpbmcgdGhlIGBlbWl0X2lhMzJfZGl2X21vZF9yYCBmdW5jdGlvbi4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBjb25maXJtIHRoYXQncyB0aGUgKm9ubHkqIGZ1bmN0aW9uIGRpcmVjdGx5IG1vZGlmaWVkIGJ5IHRoaXMgYFg4Nl8zMmAgY29uZGl0aW9uYWwuIFllcywgbG9va3MgbGlrZSBpdCdzIG9ubHkgdGhhdCBmdW5jdGlvbi4gQWgsIGFuZCBgZG9faml0YCBpcyBhbHNvIGFmZmVjdGVkLiBMb29rcyBsaWtlIGBkb19qaXRgIGlzIHRoZSBmdW5jdGlvbiB3ZSBzaG91bGQgZm9jdXMgb24gZm9yIHRoaXMgcmV2aWV3LlxuXG5Ob3csIGEgcXVpY2sgY29uZmlybWF0aW9uLi4uIEknbSBwcmV0dHkgY2VydGFpbiBgZG9faml0YCBpcyBkZWZpbmVkIHdpdGhpbiBgYnBmX2ppdF9jb21wMzIuY2AsIHJpZ2h0PyBMZXQncyBxdWlja2x5IG5hdmlnYXRlIHRvIHRoYXQgZmlsZSBhbmQgc2VlIGlmIG15IGh1bmNoIGlzIGNvcnJlY3QsIGFuZCBnZXQgYSBiZXR0ZXIgcGljdHVyZSBvZiB0aGUgY29udGV4dCBvZiB0aGF0IGZ1bmN0aW9uLCBqdXN0IHRvIGJlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMTksIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6NTIuMjY2ODAxNTcyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MTIxMzQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRvX2ppdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYz0xNTc4PXN0YXRpYyBpbnQgZW1pdF9rZnVuY19jYWxsKGNvbnN0IHN0cnVjdCBicGZfcHJvZyAqYnBmX3Byb2csIHU4ICplbmRfYWRkcixcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTE2NjctXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MTY2ODpzdGF0aWMgaW50IGRvX2ppdChzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9wcm9nLCBpbnQgKmFkZHJzLCB1OCAqaW1hZ2UsXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmMtMTY2OS1cXHRcXHQgIGludCBvbGRwcm9nbGVuLCBzdHJ1Y3Qgaml0X2NvbnRleHQgKmN0eClcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MzA9c3RydWN0IGJwZl9wcm9nICpicGZfaW50X2ppdF9jb21waWxlKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfcHJvZyAqcHJvZylcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTI1NjMtXFx0Zm9yIChwYXNzID0gMDsgcGFzcyBcXHUwMDNjIDIwIHx8IGltYWdlOyBwYXNzKyspIHtcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYzoyNTY0OlxcdFxcdHByb2dsZW4gPSBkb19qaXQocHJvZywgYWRkcnMsIGltYWdlLCBvbGRwcm9nbGVuLCBcXHUwMDI2Y3R4KTtcXG5hcmNoL3g4Ni9uZXQvYnBmX2ppdF9jb21wMzIuYy0yNTY1LVxcdFxcdGlmIChwcm9nbGVuIFxcdTAwM2M9IDApIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6NTIuMzEwOTI5MTA5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkyMDc2MTQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRob3VnaCBJJ20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIEpJVCBDb21waWxhdGlvbiBFbnRyeXBvaW50KipcblxuT2theSwgc28gYGJwZl9pbnRfaml0X2NvbXBpbGVgIGlzIHRoZSBmdW5jdGlvbiB3ZSdyZSBzdGFydGluZyB3aXRoIOKAkyB0aGF0J3MgdGhlIGVudHJ5cG9pbnQgZm9yIHRoZSBpbnRlZ2VyIEpJVCBjb21waWxhdGlvbiBwcm9jZXNzLiBUaGUgZmlyc3QgdGhpbmcgSSBuZWVkIHRvIGNvbmZpcm0gaXMgaXRzIHZpc2liaWxpdHk6IGlzIGl0IGV4cG9ydGVkLCBtZWFuaW5nIGl0J3MgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGUgaXRzIGRlZmluaW5nIG1vZHVsZSwgb3IgaXMgaXQgZ2xvYmFsLCB3aGljaCBpbXBsaWVzIGFuIGV2ZW4gYnJvYWRlciBzY29wZSBvZiBhY2Nlc3NpYmlsaXR5PyBVbmRlcnN0YW5kaW5nIGl0cyBzY29wZSBpcyBmdW5kYW1lbnRhbC4gVGhpcyBkZXRlcm1pbmVzIGhvdyBpdCdzIGxpbmtlZCBhbmQgdGhlIHBvc3NpYmxlIGltcGxpY2F0aW9ucyBvbiBleHRlcm5hbCBpbnRlcmFjdGlvbnMuIExldCdzIGRpZyBpbiBhbmQgZmlndXJlIG91dCBpdHMgY2FsbGluZyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTYyLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDk6NDg6NTUuMjMxNjkzMjg0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODczODExNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicGZfaW50X2ppdF9jb21waWxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jPTI1MjU9Ym9vbCBicGZfaml0X25lZWRzX3pleHQodm9pZClcXG4tLVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTI1MjktXFxuYXJjaC94ODYvbmV0L2JwZl9qaXRfY29tcDMyLmM6MjUzMDpzdHJ1Y3QgYnBmX3Byb2cgKmJwZl9pbnRfaml0X2NvbXBpbGUoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxcbmFyY2gveDg2L25ldC9icGZfaml0X2NvbXAzMi5jLTI1MzEte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwOTo0ODo1NS4yODA0MzY4NzFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA4NDQ5ODMwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgQlBGIEpJVCBQYXRjaCBmb3IgU2lnbmVkIERpdmlzaW9uL01vZHVsbyBvbiB4ODZfMzIqKlxuXG5Pa2F5LCBzbyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgaXMgZGVmaW5pdGVseSBgYnBmX2ludF9qaXRfY29tcGlsZWAuIFRoYXQgc2VlbXMgbGlrZSB0aGUgcmlnaHQgcGxhY2UgdG8gc3RhcnQgbG9va2luZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueSBvdGhlciBrZXkgZnVuY3Rpb25zLCBidXQgYGJwZl9pbnRfaml0X2NvbXBpbGVgIHNlZW1zIGxpa2UgYSBzb2xpZCBmb2N1cy5cblxuQmFzZWQgb24gdGhlIHByb21wdCwgaXQgc291bmRzIGxpa2UgdGhpcyBwYXRjaCBpcyBtb2RpZnlpbmcgdGhlIDMyLWJpdCB4ODYgQlBGIEpJVCBjb21waWxlciB0byBhZGQgc3VwcG9ydCBmb3Igc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGxpa2VseSBhY2Nlc3NlZCB0aHJvdWdoIEJQRiBzeXN0ZW0gY2FsbHMgd2hlbiB0aGUgSklUIGlzIHR1cm5lZCBvbiBmb3IgeDg2XzMyLlxuXG5Ob3csIHJlZ2FyZGluZyB0aGUgRW5hYmxlQ29uZmlncywgSSBuZWVkIHRvIGJlIHByZWNpc2UuIFRoZSBwcm9tcHQgc3BlY2lmaWNhbGx5IGFza3MgdG8gKm5vdCogaW5jbHVkZSAnQ09ORklHXycgcHJlZml4ZXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIEkgaGF2ZSB0byBpbmNsdWRlIGBYODZfMzJgLCBpdCAqaXMqIGFuIGFjY3VyYXRlIGNvbmZpZywgYnV0IGluY2x1ZGluZyBpdCBtaWdodCBjYXVzZSBwcm9ibGVtcyBpZiB0aGUgZnV6emVyIHRyaWVzIHRvIGVuYWJsZSBpdCBvbiBhbiB4ODZfNjQgc3lzdGVtLiBTbywgSSB0aGluayBJJ2xsIGp1c3Qgc3RpY2sgd2l0aCBgQlBGX0pJVGAgYW5kIGBCUEZfU1lTQ0FMTGAgYXMgdGhleSdyZSB0aGUgY29yZSBkZXBlbmRlbmNpZXMuXG5cbkxldCBtZSB0YWtlIGFub3RoZXIgcXVpY2sgbG9vayBhdCB0aGUgcGF0Y2ggaXRzZWxmIHRvIHJlZnJlc2ggbXkgbWVtb3J5LiBBaGEsIHRoZSBrZXkgY2hhbmdlIGlzIGluIGBlbWl0X2lhMzJfZGl2X21vZF9yYC4gSXQgbm93IHRha2VzIGEgYHN0cnVjdCBicGZfaW5zbiAqaW5zbmAgaW5zdGVhZCBvZiBqdXN0IHRoZSBgb3BgIGNvZGUsIGFuZCBpdCBub3cgY2hlY2tzIGBpbnNuLVx1MDAzZW9mZiA9PSAxYCB0byBkZXRlcm1pbmUgaWYgaXQncyBhIHNpZ25lZCBkaXZpc2lvbi5cblxuWWVwLCB0aGlzIGxvb2tzIGxpa2UgZnVuY3Rpb25hbCBjb2RlIHRoYXQncyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIEknbSBnb2luZyB0byBzZXQgYGJwZl9pbnRfaml0X2NvbXBpbGVgIGFzIHRoZSBgRm9jdXNTeW1ib2xzYCBhbmQgYEJQRl9KSVRgLCBgQlBGX1NZU0NBTExgIGZvciBgRW5hYmxlQ29uZmlnc2AuIEkgdGhpbmsgdGhhdCdzIGl0ISBMZXQncyBnZXQgdGhlIHJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU1NDMsIk91dHB1dFRva2VucyI6MTA3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA5OjQ5OjAyLjM2NDkzODc2N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4OTUwNjU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfSklUXCIsXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJwZl9pbnRfaml0X2NvbXBpbGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgMzItYml0IHg4NiBCUEYgSklUIGNvbXBpbGVyIHRvIHN1cHBvcnQgc2lnbmVkIGRpdmlzaW9uIGFuZCBtb2R1bG8gb3BlcmF0aW9ucy4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIHZpYSBCUEYgc3lzY2FsbHMgd2hlbiBCUEYgSklUIGlzIGVuYWJsZWQgb24geDg2XzMyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9KSVRcIixcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnBmX2ludF9qaXRfY29tcGlsZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSAzMi1iaXQgeDg2IEJQRiBKSVQgY29tcGlsZXIgdG8gc3VwcG9ydCBzaWduZWQgZGl2aXNpb24gYW5kIG1vZHVsbyBvcGVyYXRpb25zLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgdmlhIEJQRiBzeXNjYWxscyB3aGVuIEJQRiBKSVQgaXMgZW5hYmxlZCBvbiB4ODZfMzIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[1] Phase: Succeeded StartedAt: 2026-08-01 09:49:13 +0000 UTC FinishedAt: 2026-08-01 09:49:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-01 09:49:13 +0000 UTC FinishedAt: 2026-08-01 09:49:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2] Phase: Succeeded StartedAt: 2026-08-01 09:49:13 +0000 UTC FinishedAt: 2026-08-01 10:43:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-01 09:49:13 +0000 UTC FinishedAt: 2026-08-01 10:43:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-01 09:49:13 +0000 UTC FinishedAt: 2026-08-01 09:49:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-01 09:49:13 +0000 UTC FinishedAt: 2026-08-01 09:49:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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-workflowmqw8p/series-workflowmqw8p-convert-artifact-416786471/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-01 09:49:23 +0000 UTC FinishedAt: 2026-08-01 10:12:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-01 09:49:23 +0000 UTC FinishedAt: 2026-08-01 10:12:25 +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:*752eb13e-b20f-4cb0-bfa0-df5d4920f6a1,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-workflowmqw8p/series-workflowmqw8p-convert-artifact-416786471/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": "c080e93f-c185-45c7-ac6d-ac647a16c066", "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-workflowmqw8p/series-workflowmqw8p-build-action-3889166269/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-01 09:49:23 +0000 UTC FinishedAt: 2026-08-01 10:12:14 +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:*752eb13e-b20f-4cb0-bfa0-df5d4920f6a1,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-workflowmqw8p/series-workflowmqw8p-convert-artifact-416786471/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": "c080e93f-c185-45c7-ac6d-ac647a16c066", "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-workflowmqw8p/series-workflowmqw8p-build-action-3889166269/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-01 10:12:25 +0000 UTC FinishedAt: 2026-08-01 10:12:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-01 10:12:25 +0000 UTC FinishedAt: 2026-08-01 10:12:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-01 10:12:25 +0000 UTC FinishedAt: 2026-08-01 10:13:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-01 10:12:25 +0000 UTC FinishedAt: 2026-08-01 10:12:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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-workflowmqw8p/series-workflowmqw8p-convert-artifact-499533270/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-01 10:13:00 +0000 UTC FinishedAt: 2026-08-01 10:15:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-01 10:13:00 +0000 UTC FinishedAt: 2026-08-01 10:14:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c080e93f-c185-45c7-ac6d-ac647a16c066,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-workflowmqw8p/series-workflowmqw8p-build-action-3889166269/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-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-01 10:15:01 +0000 UTC FinishedAt: 2026-08-01 10:15:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-01 10:15:01 +0000 UTC FinishedAt: 2026-08-01 10:15:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-01 10:15:01 +0000 UTC FinishedAt: 2026-08-01 10:40:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-01 10:15:01 +0000 UTC FinishedAt: 2026-08-01 10:40:21 +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:*752eb13e-b20f-4cb0-bfa0-df5d4920f6a1,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-workflowmqw8p/series-workflowmqw8p-convert-artifact-499533270/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": "0019d531-45d6-4818-aeef-40031ea0a00a", "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-workflowmqw8p/series-workflowmqw8p-build-action-1316678618/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-01 10:15:01 +0000 UTC FinishedAt: 2026-08-01 10:40:11 +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:*752eb13e-b20f-4cb0-bfa0-df5d4920f6a1,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-workflowmqw8p/series-workflowmqw8p-convert-artifact-499533270/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": "0019d531-45d6-4818-aeef-40031ea0a00a", "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-workflowmqw8p/series-workflowmqw8p-build-action-1316678618/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-01 10:40:21 +0000 UTC FinishedAt: 2026-08-01 10:40:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-01 10:40:21 +0000 UTC FinishedAt: 2026-08-01 10:40:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-01 10:40:21 +0000 UTC FinishedAt: 2026-08-01 10:42:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-01 10:40:21 +0000 UTC FinishedAt: 2026-08-01 10:42:04 +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:*0019d531-45d6-4818-aeef-40031ea0a00a,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-workflowmqw8p/series-workflowmqw8p-build-action-1316678618/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-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-01 10:42:14 +0000 UTC FinishedAt: 2026-08-01 10:43:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-01 10:42:14 +0000 UTC FinishedAt: 2026-08-01 10:43:32 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"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:*c080e93f-c185-45c7-ac6d-ac647a16c066,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0019d531-45d6-4818-aeef-40031ea0a00a,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-workflowmqw8p/series-workflowmqw8p-build-action-3889166269/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-workflowmqw8p/series-workflowmqw8p-build-action-1316678618/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-01 10:42:14 +0000 UTC FinishedAt: 2026-08-01 10:42:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-01 10:42:14 +0000 UTC FinishedAt: 2026-08-01 10:42:19 +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-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"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-workflowmqw8p/series-workflowmqw8p-convert-artifact-1303080827/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-01 10:42:14 +0000 UTC FinishedAt: 2026-08-01 10:42:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-01 10:42:14 +0000 UTC FinishedAt: 2026-08-01 10:42:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-01 10:42:14 +0000 UTC FinishedAt: 2026-08-01 10:42:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-01 10:42:24 +0000 UTC FinishedAt: 2026-08-01 10:43:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmqw8p[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db"],"focus":["bpf"],"focus_symbols":["bpf_int_jit_compile"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"863f3ddd0b8ac65abfb50d3be0869268ac0e277b","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_JIT","BPF_SYSCALL"],"series_id":"b682b27f-d045-4c27-ad7c-3fc7ec753de3","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-01 10:42:24 +0000 UTC FinishedAt: 2026-08-01 10:43:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c080e93f-c185-45c7-ac6d-ac647a16c066,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0019d531-45d6-4818-aeef-40031ea0a00a,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-workflowmqw8p/series-workflowmqw8p-build-action-3889166269/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-workflowmqw8p/series-workflowmqw8p-build-action-1316678618/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-workflowmqw8p/series-workflowmqw8p-convert-artifact-1303080827/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,}