Name: series-workflowkmczw Phase: Succeeded StartedAt: 2026-07-02 13:12:18 +0000 UTC FinishedAt: 2026-07-02 17:41:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[0] Phase: Succeeded StartedAt: 2026-07-02 13:12:18 +0000 UTC FinishedAt: 2026-07-02 13:27:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[0].run-triage Phase: Succeeded StartedAt: 2026-07-02 13:12:18 +0000 UTC FinishedAt: 2026-07-02 13:27:25 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "4a50a141f05a8d1737661b19ee22ff8455b94409", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "4a50a141f05a8d1737661b19ee22ff8455b94409", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "d5b7fbee-d494-48c8-88fc-19f476a02a61" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "ext4_convert_inline_data" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEzOjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBjb252ZXJ0aW5nIGlubGluZSBkYXRhIGluIHRoZSBleHQ0IGZpbGVzeXN0ZW0sIHNwZWNpZmljYWxseSB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YSgpYC4gSXQgY2hhbmdlcyBob3cgdGhlIGBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQWAgc3RhdGUgaXMgY2hlY2tlZCBhbmQgY2xlYXJlZCwgYW5kIHJlbW92ZXMgYSBmb3JjZWQgd3JpdGVvdXQgdmlhIGBmaWxlbWFwX2ZsdXNoKClgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBleHQ0IGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIHZhcmlvdXMgZmlsZSBvcGVyYXRpb25zIChlLmcuLCBmYWxsb2NhdGUsIHNldGF0dHIsIHBhZ2VfbWt3cml0ZSkgb24gZmlsZXMgd2l0aCBpbmxpbmUgZGF0YS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBzdGF0ZSBoYW5kbGluZyBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEzOjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDJkNjlmZjQ4Y2JlZTM1YjM5ZGFiYzYwOGYxYWMxYmNlZmJiMDE3YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIgMTM6MjM6NTUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmNcbmluZGV4IDgwNDVlNGZmMjcwYzdmLi44N2ZlZTExN2RjYzFmZCAxMDA2NDRcbi0tLSBhL2ZzL2V4dDQvaW5saW5lLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4dDQvaW5saW5lLmNcbkBAIC0xOTU5LDIyICYjNDM7MTk1OSw4IEBAIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSlcbiBcdGhhbmRsZV90ICpoYW5kbGU7XG4gXHRzdHJ1Y3QgZXh0NF9pbG9jIGlsb2M7XG4gXG4tXHRpZiAoIWV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkge1xuLVx0XHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XG4mIzQzO1x0aWYgKCFleHQ0X2hhc19mZWF0dXJlX2lubGluZV9kYXRhKGlub2RlLVx1MDAzZWlfc2IpKVxuIFx0XHRyZXR1cm4gMDtcbi1cdH0gZWxzZSBpZiAoIWV4dDRfdGVzdF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpKSB7XG4tXHRcdC8qXG4tXHRcdCAqIElub2RlIGhhcyBpbmxpbmUgZGF0YSBidXQgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEgaXNcbi1cdFx0ICogY2xlYXJlZC4gVGhpcyBtZWFucyB3ZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBtb3Zpbmcgb2Zcbi1cdFx0ICogaW5saW5lIGRhdGEgdG8gZGVsYXkgYWxsb2NhdGVkIGJsb2NrLiBKdXN0IGZvcmNlIHdyaXRlb3V0XG4tXHRcdCAqIGhlcmUgdG8gZmluaXNoIGNvbnZlcnNpb24uXG4tXHRcdCAqL1xuLVx0XHRlcnJvciA9IGZpbGVtYXBfZmx1c2goaW5vZGUtXHUwMDNlaV9tYXBwaW5nKTtcbi1cdFx0aWYgKGVycm9yKVxuLVx0XHRcdHJldHVybiBlcnJvcjtcbi1cdFx0aWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXG4tXHRcdFx0cmV0dXJuIDA7XG4tXHR9XG4gXG4gXHRuZWVkZWRfYmxvY2tzID0gZXh0NF9jaHVua190cmFuc19leHRlbnQoaW5vZGUsIDEpO1xuIFxuQEAgLTE5OTAsOCAmIzQzOzE5NzYsMjIgQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuIFx0fVxuIFxuIFx0ZXh0NF93cml0ZV9sb2NrX3hhdHRyKGlub2RlLCBcdTAwMjZub19leHBhbmQpO1xuLVx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSlcbiYjNDM7XHRpZiAoZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSlcbiBcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlsb2MpO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogSWYgaGFzX2lubGluZV9kYXRhIGlzIHNldCBidXQgTUFZX0lOTElORV9EQVRBIGlzIGNsZWFyLCBhXG4mIzQzO1x0ICogY29uY3VycmVudCBleHQ0X2RhX2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KCkgaGFzIGFscmVhZHlcbiYjNDM7XHQgKiBjb3BpZWQgdGhlIGRhdGEgdG8gcGFnZSBjYWNoZSBhbmQgd2lsbCBmaW5pc2ggY29udmVyc2lvbiB2aWFcbiYjNDM7XHQgKiB3cml0ZWJhY2sgLS0gc2tpcCBjb252ZXJ0X25vbG9jayB0byBhdm9pZCBkZXN0cm95JiM0MztyZXN0b3JlXG4mIzQzO1x0ICogcmUtc2V0dGluZyBNQVlfSU5MSU5FX0RBVEEgYmVoaW5kIGl0cyBiYWNrLlxuJiM0MztcdCAqXG4mIzQzO1x0ICogQ2xlYXIgTUFZX0lOTElORV9EQVRBIGlmIGlubGluZSBkYXRhIGlzIGdvbmUgKGNvbnZlcnQgc3VjY2VlZGVkXG4mIzQzO1x0ICogb3Igd2FzIGFscmVhZHkgY29tcGxldGVkKS4gIERvIG5vdCBjbGVhciBpdCBpZiBjb252ZXJ0IGZhaWxlZFxuJiM0MztcdCAqIGFuZCBpbmxpbmUgZGF0YSB3YXMgcmVzdG9yZWQuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXG4mIzQzO1x0XHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XG4gXHRleHQ0X3dyaXRlX3VubG9ja194YXR0cihpbm9kZSwgXHUwMDI2bm9fZXhwYW5kKTtcbiBcdGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7XG4gb3V0X2ZyZWU6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTM6MjM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RVhUNF9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2V4dDRfY29udmVydF9pbmxpbmVfZGF0YSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGNvbnZlcnRpbmcgaW5saW5lIGRhdGEgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKClgLiBJdCBjaGFuZ2VzIGhvdyB0aGUgYEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBYCBzdGF0ZSBpcyBjaGVja2VkIGFuZCBjbGVhcmVkLCBhbmQgcmVtb3ZlcyBhIGZvcmNlZCB3cml0ZW91dCB2aWEgYGZpbGVtYXBfZmx1c2goKWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGV4dDQgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgdmFyaW91cyBmaWxlIG9wZXJhdGlvbnMgKGUuZy4sIGZhbGxvY2F0ZSwgc2V0YXR0ciwgcGFnZV9ta3dyaXRlKSBvbiBmaWxlcyB3aXRoIGlubGluZSBkYXRhLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IHN0YXRlIGhhbmRsaW5nIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDQyZDY5ZmY0OGNiZWUzNWIzOWRhYmM2MDhmMWFjMWJjZWZiYjAxN2EKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyIDEzOjIzOjU1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmMKaW5kZXggODA0NWU0ZmYyNzBjN2YuLjg3ZmVlMTE3ZGNjMWZkIDEwMDY0NAotLS0gYS9mcy9leHQ0L2lubGluZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4dDQvaW5saW5lLmMKQEAgLTE5NTksMjIgJiM0MzsxOTU5LDggQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCWhhbmRsZV90ICpoYW5kbGU7CiAJc3RydWN0IGV4dDRfaWxvYyBpbG9jOwogCi0JaWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpIHsKLQkJZXh0NF9jbGVhcl9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpOwomIzQzOwlpZiAoIWV4dDRfaGFzX2ZlYXR1cmVfaW5saW5lX2RhdGEoaW5vZGUtJmd0O2lfc2IpKQogCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKCFleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSkgewotCQkvKgotCQkgKiBJbm9kZSBoYXMgaW5saW5lIGRhdGEgYnV0IEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBIGlzCi0JCSAqIGNsZWFyZWQuIFRoaXMgbWVhbnMgd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgbW92aW5nIG9mCi0JCSAqIGlubGluZSBkYXRhIHRvIGRlbGF5IGFsbG9jYXRlZCBibG9jay4gSnVzdCBmb3JjZSB3cml0ZW91dAotCQkgKiBoZXJlIHRvIGZpbmlzaCBjb252ZXJzaW9uLgotCQkgKi8KLQkJZXJyb3IgPSBmaWxlbWFwX2ZsdXNoKGlub2RlLSZndDtpX21hcHBpbmcpOwotCQlpZiAoZXJyb3IpCi0JCQlyZXR1cm4gZXJyb3I7Ci0JCWlmICghZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKQotCQkJcmV0dXJuIDA7Ci0JfQogCiAJbmVlZGVkX2Jsb2NrcyA9IGV4dDRfY2h1bmtfdHJhbnNfZXh0ZW50KGlub2RlLCAxKTsKIApAQCAtMTk5MCw4ICYjNDM7MTk3NiwyMiBAQCBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJfQogCiAJZXh0NF93cml0ZV9sb2NrX3hhdHRyKGlub2RlLCAmYW1wO25vX2V4cGFuZCk7Ci0JaWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkKJiM0MzsJaWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSAmYW1wOyZhbXA7CiYjNDM7CSAgICBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSkKIAkJZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsICZhbXA7aWxvYyk7CiYjNDM7CS8qCiYjNDM7CSAqIElmIGhhc19pbmxpbmVfZGF0YSBpcyBzZXQgYnV0IE1BWV9JTkxJTkVfREFUQSBpcyBjbGVhciwgYQomIzQzOwkgKiBjb25jdXJyZW50IGV4dDRfZGFfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQoKSBoYXMgYWxyZWFkeQomIzQzOwkgKiBjb3BpZWQgdGhlIGRhdGEgdG8gcGFnZSBjYWNoZSBhbmQgd2lsbCBmaW5pc2ggY29udmVyc2lvbiB2aWEKJiM0MzsJICogd3JpdGViYWNrIC0tIHNraXAgY29udmVydF9ub2xvY2sgdG8gYXZvaWQgZGVzdHJveSYjNDM7cmVzdG9yZQomIzQzOwkgKiByZS1zZXR0aW5nIE1BWV9JTkxJTkVfREFUQSBiZWhpbmQgaXRzIGJhY2suCiYjNDM7CSAqCiYjNDM7CSAqIENsZWFyIE1BWV9JTkxJTkVfREFUQSBpZiBpbmxpbmUgZGF0YSBpcyBnb25lIChjb252ZXJ0IHN1Y2NlZWRlZAomIzQzOwkgKiBvciB3YXMgYWxyZWFkeSBjb21wbGV0ZWQpLiAgRG8gbm90IGNsZWFyIGl0IGlmIGNvbnZlcnQgZmFpbGVkCiYjNDM7CSAqIGFuZCBpbmxpbmUgZGF0YSB3YXMgcmVzdG9yZWQuCiYjNDM7CSAqLwomIzQzOwlpZiAoIWV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkKJiM0MzsJCWV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTsKIAlleHQ0X3dyaXRlX3VubG9ja194YXR0cihpbm9kZSwgJmFtcDtub19leHBhbmQpOwogCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CiBvdXRfZnJlZToKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTM6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM4MwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDMxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBDcml0aWNhbCBFeHQ0IElubGluZSBEYXRhIENvbnZlcnNpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCYjMzk7cyB0d2Vha2luZyBgZnMvZXh0NC9pbmxpbmUuY2AsIHNwZWNpZmljYWxseSB0aGUgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgZnVuY3Rpb24uIFRoZSBrZXkgY2hhbmdlIGhlcmUgaXMgdGhlIHJld29ya2luZyBvZiBob3cgdGhlIGNvZGUgaGFuZGxlcyB0aGUgdHJhbnNpdGlvbiBmcm9tIGlubGluZSBkYXRhIHRvIGEgcmVndWxhciBleHRlbnQtYmFzZWQgc3RydWN0dXJlLCBvciB2aWNlIHZlcnNhLiBUaGV5JiMzOTtyZSB0b3VjaGluZyB0aGUgY29uZGl0aW9uYWwgbG9naWMgc3Vycm91bmRpbmcgYGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKWAgYW5kIGBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKWAuCgpXaGF0IHRoZXkmIzM5O3ZlIGRvbmUgaXMgcmVtb3ZlIHRoZSBlYXJseSBleGl0IGFuZCB0aGUgYGZpbGVtYXBfZmx1c2hgIGNhbGwgdW5kZXIgc3BlY2lmaWMgY29uZGl0aW9ucy4gSW5zdGVhZCwgd2Ugc2VlIGFuIGVhcmx5IGNoZWNrIGZvciBgZXh0NF9oYXNfZmVhdHVyZV9pbmxpbmVfZGF0YShpbm9kZS0mZ3Q7aV9zYilgLiBJbnNpZGUgdGhlIGxvY2ssIHdoaWNoIGlzIHRoZSBpbnRlcmVzdGluZyBwYXJ0LCB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhIG1vcmUgZ3JhbnVsYXIgY2hlY2s6IHRoZXkgc3BlY2lmaWNhbGx5IGNoZWNrIGBleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkgJmFtcDsmYW1wOyBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKWAgKmJlZm9yZSogY2FsbGluZyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AuIEZ1cnRoZXJtb3JlLCBgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEFgIGdldHMgY2xlYXJlZCBpZiB0aGUgaW5saW5lIGRhdGEgZmVhdHVyZSBpcyBubyBsb25nZXIgcHJlc2VudC4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZGVmaW5pdGVseS4gSXQgaW1wYWN0cyBob3cgaW5saW5lIGRhdGEgY29udmVyc2lvbiBiZWhhdmVzIHdpdGhpbiBleHQ0LiBUaGUgcG90ZW50aWFsIGZvciBzdWJ0bGUgaW50ZXJhY3Rpb25zIGFuZCBlZGdlIGNhc2VzIGlzIHRoZXJlLCB0aGVyZWZvcmUsIHRoaXMgbmVlZHMgdG8gYmUgZnV6emVkIHRob3JvdWdobHkuIFRoYXQmIzM5O3MgcGFyYW1vdW50LgoKUmlnaHQsIGxldCYjMzk7cyBtYWtlIHN1cmUgb3VyIGV4dDQgY29uZmlndXJhdGlvbnMgYXJlIHNvbGlkLiBUaGUgcHJpbWFyeSBvbmUgSSYjMzk7bSBjb25jZXJuZWQgd2l0aCBpcyBgQ09ORklHX0VYVDRfRlNgLCBuYXR1cmFsbHkuCgpOb3csIGxldCBtZSBnbyBhaGVhZCBhbmQgZmluZCB0aGUgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgZnVuY3Rpb24gZGlyZWN0bHkgd2l0aGluIGBmcy9leHQ0L2lubGluZS5jYCBhbmQgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMzoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L2NyeXB0by5jPTEzMj1zdGF0aWMgaW50IGV4dDRfc2V0X2NvbnRleHQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgdm9pZCAqY3R4LCBzaXplX3QgbGVuLFxuLS1cbmZzL2V4dDQvY3J5cHRvLmMtMTUyLVxuZnMvZXh0NC9jcnlwdG8uYzoxNTM6XHRyZXMgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xuZnMvZXh0NC9jcnlwdG8uYy0xNTQtXHRpZiAocmVzKVxuLS1cbmZzL2V4dDQvZXh0NC5oPTM3ODQ9ZXh0ZXJuIGludCBleHQ0X2lubGluZV9kYXRhX3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCAqaGFzX2lubGluZSk7XG5mcy9leHQ0L2V4dDQuaC0zNzg1LVxuZnMvZXh0NC9leHQ0Lmg6Mzc4NjpleHRlcm4gaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKTtcbmZzL2V4dDQvZXh0NC5oLTM3ODctXG4tLVxuZnMvZXh0NC9leHRlbnRzLmM9NDg1ND1sb25nIGV4dDRfZmFsbG9jYXRlKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbilcbi0tXG5mcy9leHQ0L2V4dGVudHMuYy00ODgzLVx0aW5vZGVfbG9jayhpbm9kZSk7XG5mcy9leHQ0L2V4dGVudHMuYzo0ODg0Olx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTQ4ODUtXHRpZiAocmV0KVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9NTQ1PWludCBleHQ0X3JlYWRwYWdlX2lubGluZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZm9saW8gKmZvbGlvKVxuLS1cbmZzL2V4dDQvaW5saW5lLmMtNTcxLVxuZnMvZXh0NC9pbmxpbmUuYzo1NzI6c3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuZnMvZXh0NC9pbmxpbmUuYy01NzMtXHRcdFx0XHRcdCAgICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz02OTY9aW50IGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTcyNy1cdFx0XHQvKiBSZXRyeSBpbnNpZGUgKi9cbmZzL2V4dDQvaW5saW5lLmM6NzI4Olx0XHRcdHJldHVybiBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KG1hcHBpbmcsIGlub2RlKTtcbmZzL2V4dDQvaW5saW5lLmMtNzI5LVx0XHR9XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz03ODM9aW50IGV4dDRfdHJ5X3RvX3dyaXRlX2lubGluZV9kYXRhKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtNzg4LVx0aWYgKHBvcyAmIzQzOyBsZW4gXHUwMDNlIGV4dDRfZ2V0X21heF9pbmxpbmVfc2l6ZShpbm9kZSkpXG5mcy9leHQ0L2lubGluZS5jOjc4OTpcdFx0cmV0dXJuIGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQobWFwcGluZywgaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy03OTAtXHRyZXR1cm4gZXh0NF9nZW5lcmljX3dyaXRlX2lubGluZV9kYXRhKG1hcHBpbmcsIGlub2RlLCBwb3MsIGxlbixcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEwNzM9c3RhdGljIHZvaWQgZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xMDg5LVxuZnMvZXh0NC9pbmxpbmUuYzoxMDkwOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuZnMvZXh0NC9pbmxpbmUuYy0xMDkxLVx0XHRcdFx0XHQgICBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTE4OT1pbnQgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZXh0NF9maWxlbmFtZSAqZm5hbWUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xMjQxLVx0ICovXG5mcy9leHQ0L2lubGluZS5jOjEyNDI6XHRyZXQgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgZGlyLCBcdTAwMjZpbG9jKTtcbmZzL2V4dDQvaW5saW5lLmMtMTI0My1cbi0tXG5mcy9leHQ0L2lubGluZS5jPTE4NDQ9aW50IGV4dDRfaW5saW5lX2RhdGFfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50ICpoYXNfaW5saW5lKVxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTk1NS1cbmZzL2V4dDQvaW5saW5lLmM6MTk1NjppbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5mcy9leHQ0L2lubGluZS5jLTE5NTcte1xuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTk4MC1cdCAgICBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSlcbmZzL2V4dDQvaW5saW5lLmM6MTk4MTpcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYy0xOTgyLVx0Lypcbi0tXG5mcy9leHQ0L2lub2RlLmM9NTkzND1pbnQgZXh0NF9zZXRhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksXG4tLVxuZnMvZXh0NC9pbm9kZS5jLTYwMzEtXHRcdCAgICBhdHRyLVx1MDAzZWlhX3NpemUgXHUwMDNlIEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfc2l6ZSkge1xuZnMvZXh0NC9pbm9kZS5jOjYwMzI6XHRcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xuZnMvZXh0NC9pbm9kZS5jLTYwMzMtXHRcdFx0aWYgKGVycm9yKVxuLS1cbmZzL2V4dDQvaW5vZGUuYz02Nzg3PXZtX2ZhdWx0X3QgZXh0NF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXG4tLVxuZnMvZXh0NC9pbm9kZS5jLTY4MDgtXG5mcy9leHQ0L2lub2RlLmM6NjgwOTpcdGVyciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L2lub2RlLmMtNjgxMC1cdGlmIChlcnIpXG4tLVxuZnMvZXh0NC92ZXJpdHkuYz0xMDI9c3RhdGljIGludCBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHkoc3RydWN0IGZpbGUgKmZpbHApXG4tLVxuZnMvZXh0NC92ZXJpdHkuYy0xMjgtXG5mcy9leHQ0L3Zlcml0eS5jOjEyOTpcdGVyciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L3Zlcml0eS5jLTEzMC1cdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTM6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU4MwoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDE1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNjb3BlIG9mIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBhbmQgd2hlcmUgaXQmIzM5O3MgY2FsbGVkLiBUaGUgY29kZSBzaG93cyBpdCBnZXRzIGludm9rZWQgZnJvbSBgZXh0NF9zZXRfY29udGV4dGAgKHdoaWNoIGlzIGNyeXB0by1yZWxhdGVkLCBpbnRlcmVzdGluZyksIGBleHQ0X2ZhbGxvY2F0ZWAsIGBleHQ0X3NldGF0dHJgLCBgZXh0NF9wYWdlX21rd3JpdGVgLCBhbmQgYGV4dDRfYmVnaW5fZW5hYmxlX3Zlcml0eWAuIFRoaXMgaXMgY2xlYXJseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCBpbXBhY3Rpbmcgc2V2ZXJhbCBrZXkgb3BlcmF0aW9ucy4KClRoZSBpbXBsaWNhdGlvbiBoZXJlIGlzIHRoYXQgd2UgbmVlZCB0byBlbmFibGUgYEVYVDRfRlNgLiBUaGF0IG1ha2VzIHNlbnNlIGFzIGEgYmFzZSByZXF1aXJlbWVudC4gTXkgcHJpbWFyeSBmb2N1cyBpcyBvbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpdHNlbGYuCgpOb3csIGJlZm9yZSBJIHNpZ24gb2ZmIG9uIHRoaXMsIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHdlIHNob3VsZCBiZSBhd2FyZSBvZi4gRG91YmxlLWNoZWNraW5nLi4uIE5vcGUsIGBFWFQ0X0ZTYCBzZWVtcyB0byBjb3ZlciBpdC4KCkhvbGQgb24uLi4gSXMgdGhlcmUgYSAqc3BlY2lmaWMqIGNvbmZpZyBmb3IgaW5saW5lIGRhdGEgaGFuZGxpbmcgd2l0aGluIGV4dDQ/IEkmIzM5O2xsIHF1aWNrbHkgY2hlY2sgdGhlIGBmcy9leHQ0L0tjb25maWdgIGZpbGUgdG8gY29uZmlybS4gTmVlZCB0byBiZSB0aG9yb3VnaCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEzOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aW5saW5lJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZXh0NC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMzoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDMzCgkJCQkJCQlvdXRwdXQ6IDE3MgoJCQkJCQkJdGhvdWdodHM6IDMxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgZXh0NCBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoKioKCk9rYXksIHNvIHRoZXJlIGlzbiYjMzk7dCBhIGRlZGljYXRlZCBjb25maWcgc3BlY2lmaWNhbGx5IGZvciBpbmxpbmUgZGF0YTsgaXQmIzM5O3MgbWFuYWdlZCB2aWEgYSBmZWF0dXJlIGZsYWcgd2l0aGluIGV4dDQuIFRoYXQgc2ltcGxpZmllcyB0aGluZ3M7IGBFWFQ0X0ZTYCBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IgZW5hYmxpbmcgdGhlIHJlbGV2YW50IGNvZGUuCgpOb3csIGxldCYjMzk7cyBkaWcgaW50byB0aGUgY29kZSBpdHNlbGYuIFRoZSBwYXRjaCBpcyBjZW50ZXJlZCBhcm91bmQgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgaW4gYGZzL2V4dDQvaW5saW5lLmNgLiBJIG5lZWQgdG8gdmVyaWZ5IHdoZXRoZXIgYW55IG90aGVyIGZ1bmN0aW9ucyBhcmUgYWxzbyBtb2RpZmllZCwgb3IgaWYgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgaXMgdGhlIHNvbGUgcG9pbnQgb2YgaW50ZXJlc3QuIEEgcXVpY2sgY2hlY2sgcmV2ZWFscyB0aGF0IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYCBpcyAqY2FsbGVkKiBieSB0aGUgbWFpbiBmdW5jdGlvbiBidXQgbm90IGRpcmVjdGx5IG1vZGlmaWVkLiBUaHVzLCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpcyBkZWZpbml0ZWx5IHRoZSBrZXkgc3ltYm9sIGhlcmUuCgpBbHJpZ2h0LCB0aW1lIHRvIHN5bnRoZXNpemUgbXkgcmVhc29uaW5nLiBUaGUgcGF0Y2ggaXMgZnVuZGFtZW50YWxseSBhbHRlcmluZyB0aGUgbWVjaGFuaXNtIGJ5IHdoaWNoIGlubGluZSBkYXRhIGlzIGNvbnZlcnRlZCB3aXRoaW4gZXh0NC4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggY2hhbmdlcyB0aGUgd2F5IHRoZSBgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEFgIHN0YXRlIGlzIGNoZWNrZWQgYW5kIGNsZWFyZWQsIGFuZCB0aGV5IHJlbW92ZWQgdGhlIGV4cGxpY2l0IGBmaWxlbWFwX2ZsdXNoKClgIGNhbGwuIFRoaXMgY29yZSBleHQ0IGxvZ2ljIGlzIHZ1bG5lcmFibGUgdG8gY2FsbHMgZnJvbSBzZXZlcmFsIGZpbGUgb3BlcmF0aW9ucy4gRXNzZW50aWFsbHksIGl0IGNoYW5nZXMgdGhlIGludGVybmFsIGJlaGF2aW9yIG9mIHNldmVyYWwgZmlsZSBvcGVyYXRpb25zIChlLmcuLCBmYWxsb2NhdGUsIHNldGF0dHIsIHBhZ2VfbWt3cml0ZSkgb24gZmlsZXMgdGhhdCBoYXZlIGlubGluZSBkYXRhLiBUaGUgc3RhdGUgbWFjaGluZSBjaGFuZ2VzIG5lY2Vzc2l0YXRlIGZ1enppbmcuIEl0JiMzOTtzIGNydWNpYWwgdG8gc3RyZXNzLXRlc3QgdGhpcyBuZXcgc3RhdGUgaGFuZGxpbmcgdG8gaWRlbnRpZnkgcG90ZW50aWFsIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IGFyaXNlIGZyb20gdGhlc2UgbW9kaWZpY2F0aW9ucy4KCkluIHN1bW1hcnk6CgoqICAgKipFbmFibGVDb25maWdzOioqIGBFWFQ0X0ZTYAoqICAgKipGb2N1c1N5bWJvbHM6KiogYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAKKiAgICoqV29ydGhGdXp6aW5nOioqIEFic29sdXRlbHksIHllcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMzoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RVhUNF9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2V4dDRfY29udmVydF9pbmxpbmVfZGF0YSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGNvbnZlcnRpbmcgaW5saW5lIGRhdGEgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKClgLiBJdCBjaGFuZ2VzIGhvdyB0aGUgYEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBYCBzdGF0ZSBpcyBjaGVja2VkIGFuZCBjbGVhcmVkLCBhbmQgcmVtb3ZlcyBhIGZvcmNlZCB3cml0ZW91dCB2aWEgYGZpbGVtYXBfZmx1c2goKWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGV4dDQgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgdmFyaW91cyBmaWxlIG9wZXJhdGlvbnMgKGUuZy4sIGZhbGxvY2F0ZSwgc2V0YXR0ciwgcGFnZV9ta3dyaXRlKSBvbiBmaWxlcyB3aXRoIGlubGluZSBkYXRhLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IHN0YXRlIGhhbmRsaW5nIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBjb252ZXJ0aW5nIGlubGluZSBkYXRhIGluIHRoZSBleHQ0IGZpbGVzeXN0ZW0sIHNwZWNpZmljYWxseSB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YSgpYC4gSXQgY2hhbmdlcyBob3cgdGhlIGBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQWAgc3RhdGUgaXMgY2hlY2tlZCBhbmQgY2xlYXJlZCwgYW5kIHJlbW92ZXMgYSBmb3JjZWQgd3JpdGVvdXQgdmlhIGBmaWxlbWFwX2ZsdXNoKClgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBleHQ0IGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIHZhcmlvdXMgZmlsZSBvcGVyYXRpb25zIChlLmcuLCBmYWxsb2NhdGUsIHNldGF0dHIsIHBhZ2VfbWt3cml0ZSkgb24gZmlsZXMgd2l0aCBpbmxpbmUgZGF0YS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBzdGF0ZSBoYW5kbGluZyBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDJUMTM6MjM6NTYuOTc3NDgwNDYxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIzNTE4NjQwODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVhUNF9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgY29udmVydGluZyBpbmxpbmUgZGF0YSBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoKWAuIEl0IGNoYW5nZXMgaG93IHRoZSBgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEFgIHN0YXRlIGlzIGNoZWNrZWQgYW5kIGNsZWFyZWQsIGFuZCByZW1vdmVzIGEgZm9yY2VkIHdyaXRlb3V0IHZpYSBgZmlsZW1hcF9mbHVzaCgpYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZXh0NCBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSB2YXJpb3VzIGZpbGUgb3BlcmF0aW9ucyAoZS5nLiwgZmFsbG9jYXRlLCBzZXRhdHRyLCBwYWdlX21rd3JpdGUpIG9uIGZpbGVzIHdpdGggaW5saW5lIGRhdGEuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgc3RhdGUgaGFuZGxpbmcgZG9lc24ndCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMzoyMzo1Ni45Nzc0ODU1MDFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MzE1MjM4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQyZDY5ZmY0OGNiZWUzNWIzOWRhYmM2MDhmMWFjMWJjZWZiYjAxN2FcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMiAxMzoyMzo1NSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9leHQ0L2lubGluZS5jIGIvZnMvZXh0NC9pbmxpbmUuY1xcbmluZGV4IDgwNDVlNGZmMjcwYzdmLi44N2ZlZTExN2RjYzFmZCAxMDA2NDRcXG4tLS0gYS9mcy9leHQ0L2lubGluZS5jXFxuKysrIGIvZnMvZXh0NC9pbmxpbmUuY1xcbkBAIC0xOTU5LDIyICsxOTU5LDggQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbiBcXHRoYW5kbGVfdCAqaGFuZGxlO1xcbiBcXHRzdHJ1Y3QgZXh0NF9pbG9jIGlsb2M7XFxuIFxcbi1cXHRpZiAoIWV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkge1xcbi1cXHRcXHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XFxuK1xcdGlmICghZXh0NF9oYXNfZmVhdHVyZV9pbmxpbmVfZGF0YShpbm9kZS1cXHUwMDNlaV9zYikpXFxuIFxcdFxcdHJldHVybiAwO1xcbi1cXHR9IGVsc2UgaWYgKCFleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSkge1xcbi1cXHRcXHQvKlxcbi1cXHRcXHQgKiBJbm9kZSBoYXMgaW5saW5lIGRhdGEgYnV0IEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBIGlzXFxuLVxcdFxcdCAqIGNsZWFyZWQuIFRoaXMgbWVhbnMgd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgbW92aW5nIG9mXFxuLVxcdFxcdCAqIGlubGluZSBkYXRhIHRvIGRlbGF5IGFsbG9jYXRlZCBibG9jay4gSnVzdCBmb3JjZSB3cml0ZW91dFxcbi1cXHRcXHQgKiBoZXJlIHRvIGZpbmlzaCBjb252ZXJzaW9uLlxcbi1cXHRcXHQgKi9cXG4tXFx0XFx0ZXJyb3IgPSBmaWxlbWFwX2ZsdXNoKGlub2RlLVxcdTAwM2VpX21hcHBpbmcpO1xcbi1cXHRcXHRpZiAoZXJyb3IpXFxuLVxcdFxcdFxcdHJldHVybiBlcnJvcjtcXG4tXFx0XFx0aWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXFxuLVxcdFxcdFxcdHJldHVybiAwO1xcbi1cXHR9XFxuIFxcbiBcXHRuZWVkZWRfYmxvY2tzID0gZXh0NF9jaHVua190cmFuc19leHRlbnQoaW5vZGUsIDEpO1xcbiBcXG5AQCAtMTk5MCw4ICsxOTc2LDIyIEBAIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSlcXG4gXFx0fVxcbiBcXG4gXFx0ZXh0NF93cml0ZV9sb2NrX3hhdHRyKGlub2RlLCBcXHUwMDI2bm9fZXhwYW5kKTtcXG4tXFx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSlcXG4rXFx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSBcXHUwMDI2XFx1MDAyNlxcbitcXHQgICAgZXh0NF90ZXN0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSkpXFxuIFxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlLCBcXHUwMDI2aWxvYyk7XFxuK1xcdC8qXFxuK1xcdCAqIElmIGhhc19pbmxpbmVfZGF0YSBpcyBzZXQgYnV0IE1BWV9JTkxJTkVfREFUQSBpcyBjbGVhciwgYVxcbitcXHQgKiBjb25jdXJyZW50IGV4dDRfZGFfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQoKSBoYXMgYWxyZWFkeVxcbitcXHQgKiBjb3BpZWQgdGhlIGRhdGEgdG8gcGFnZSBjYWNoZSBhbmQgd2lsbCBmaW5pc2ggY29udmVyc2lvbiB2aWFcXG4rXFx0ICogd3JpdGViYWNrIC0tIHNraXAgY29udmVydF9ub2xvY2sgdG8gYXZvaWQgZGVzdHJveStyZXN0b3JlXFxuK1xcdCAqIHJlLXNldHRpbmcgTUFZX0lOTElORV9EQVRBIGJlaGluZCBpdHMgYmFjay5cXG4rXFx0ICpcXG4rXFx0ICogQ2xlYXIgTUFZX0lOTElORV9EQVRBIGlmIGlubGluZSBkYXRhIGlzIGdvbmUgKGNvbnZlcnQgc3VjY2VlZGVkXFxuK1xcdCAqIG9yIHdhcyBhbHJlYWR5IGNvbXBsZXRlZCkuICBEbyBub3QgY2xlYXIgaXQgaWYgY29udmVydCBmYWlsZWRcXG4rXFx0ICogYW5kIGlubGluZSBkYXRhIHdhcyByZXN0b3JlZC5cXG4rXFx0ICovXFxuK1xcdGlmICghZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKVxcbitcXHRcXHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XFxuIFxcdGV4dDRfd3JpdGVfdW5sb2NrX3hhdHRyKGlub2RlLCBcXHUwMDI2bm9fZXhwYW5kKTtcXG4gXFx0ZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTtcXG4gb3V0X2ZyZWU6XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEzOjIzOjU3LjQ3MTMxNTgxNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjE4NTgwMTYyNTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVhUNF9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgY29udmVydGluZyBpbmxpbmUgZGF0YSBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoKWAuIEl0IGNoYW5nZXMgaG93IHRoZSBgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEFgIHN0YXRlIGlzIGNoZWNrZWQgYW5kIGNsZWFyZWQsIGFuZCByZW1vdmVzIGEgZm9yY2VkIHdyaXRlb3V0IHZpYSBgZmlsZW1hcF9mbHVzaCgpYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZXh0NCBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSB2YXJpb3VzIGZpbGUgb3BlcmF0aW9ucyAoZS5nLiwgZmFsbG9jYXRlLCBzZXRhdHRyLCBwYWdlX21rd3JpdGUpIG9uIGZpbGVzIHdpdGggaW5saW5lIGRhdGEuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgc3RhdGUgaGFuZGxpbmcgZG9lc24ndCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQyZDY5ZmY0OGNiZWUzNWIzOWRhYmM2MDhmMWFjMWJjZWZiYjAxN2FcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDEzOjIzOjU1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmNcbmluZGV4IDgwNDVlNGZmMjcwYzdmLi44N2ZlZTExN2RjYzFmZCAxMDA2NDRcbi0tLSBhL2ZzL2V4dDQvaW5saW5lLmNcbisrKyBiL2ZzL2V4dDQvaW5saW5lLmNcbkBAIC0xOTU5LDIyICsxOTU5LDggQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuIFx0aGFuZGxlX3QgKmhhbmRsZTtcbiBcdHN0cnVjdCBleHQ0X2lsb2MgaWxvYztcbiBcbi1cdGlmICghZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKSB7XG4tXHRcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbitcdGlmICghZXh0NF9oYXNfZmVhdHVyZV9pbmxpbmVfZGF0YShpbm9kZS1cdTAwM2VpX3NiKSlcbiBcdFx0cmV0dXJuIDA7XG4tXHR9IGVsc2UgaWYgKCFleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSkge1xuLVx0XHQvKlxuLVx0XHQgKiBJbm9kZSBoYXMgaW5saW5lIGRhdGEgYnV0IEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBIGlzXG4tXHRcdCAqIGNsZWFyZWQuIFRoaXMgbWVhbnMgd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgbW92aW5nIG9mXG4tXHRcdCAqIGlubGluZSBkYXRhIHRvIGRlbGF5IGFsbG9jYXRlZCBibG9jay4gSnVzdCBmb3JjZSB3cml0ZW91dFxuLVx0XHQgKiBoZXJlIHRvIGZpbmlzaCBjb252ZXJzaW9uLlxuLVx0XHQgKi9cbi1cdFx0ZXJyb3IgPSBmaWxlbWFwX2ZsdXNoKGlub2RlLVx1MDAzZWlfbWFwcGluZyk7XG4tXHRcdGlmIChlcnJvcilcbi1cdFx0XHRyZXR1cm4gZXJyb3I7XG4tXHRcdGlmICghZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKVxuLVx0XHRcdHJldHVybiAwO1xuLVx0fVxuIFxuIFx0bmVlZGVkX2Jsb2NrcyA9IGV4dDRfY2h1bmtfdHJhbnNfZXh0ZW50KGlub2RlLCAxKTtcbiBcbkBAIC0xOTkwLDggKzE5NzYsMjIgQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuIFx0fVxuIFxuIFx0ZXh0NF93cml0ZV9sb2NrX3hhdHRyKGlub2RlLCBcdTAwMjZub19leHBhbmQpO1xuLVx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSlcbitcdGlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkgXHUwMDI2XHUwMDI2XG4rXHQgICAgZXh0NF90ZXN0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSkpXG4gXHRcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlLCBcdTAwMjZpbG9jKTtcbitcdC8qXG4rXHQgKiBJZiBoYXNfaW5saW5lX2RhdGEgaXMgc2V0IGJ1dCBNQVlfSU5MSU5FX0RBVEEgaXMgY2xlYXIsIGFcbitcdCAqIGNvbmN1cnJlbnQgZXh0NF9kYV9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudCgpIGhhcyBhbHJlYWR5XG4rXHQgKiBjb3BpZWQgdGhlIGRhdGEgdG8gcGFnZSBjYWNoZSBhbmQgd2lsbCBmaW5pc2ggY29udmVyc2lvbiB2aWFcbitcdCAqIHdyaXRlYmFjayAtLSBza2lwIGNvbnZlcnRfbm9sb2NrIHRvIGF2b2lkIGRlc3Ryb3krcmVzdG9yZVxuK1x0ICogcmUtc2V0dGluZyBNQVlfSU5MSU5FX0RBVEEgYmVoaW5kIGl0cyBiYWNrLlxuK1x0ICpcbitcdCAqIENsZWFyIE1BWV9JTkxJTkVfREFUQSBpZiBpbmxpbmUgZGF0YSBpcyBnb25lIChjb252ZXJ0IHN1Y2NlZWRlZFxuK1x0ICogb3Igd2FzIGFscmVhZHkgY29tcGxldGVkKS4gIERvIG5vdCBjbGVhciBpdCBpZiBjb252ZXJ0IGZhaWxlZFxuK1x0ICogYW5kIGlubGluZSBkYXRhIHdhcyByZXN0b3JlZC5cbitcdCAqL1xuK1x0aWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXG4rXHRcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbiBcdGV4dDRfd3JpdGVfdW5sb2NrX3hhdHRyKGlub2RlLCBcdTAwMjZub19leHBhbmQpO1xuIFx0ZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTtcbiBvdXRfZnJlZTpcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEzOjIzOjU3LjQ3MTMxNzE3NFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU5MTI4ODQyNzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQ3JpdGljYWwgRXh0NCBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0J3MgdHdlYWtpbmcgYGZzL2V4dDQvaW5saW5lLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBoZXJlIGlzIHRoZSByZXdvcmtpbmcgb2YgaG93IHRoZSBjb2RlIGhhbmRsZXMgdGhlIHRyYW5zaXRpb24gZnJvbSBpbmxpbmUgZGF0YSB0byBhIHJlZ3VsYXIgZXh0ZW50LWJhc2VkIHN0cnVjdHVyZSwgb3IgdmljZSB2ZXJzYS4gVGhleSdyZSB0b3VjaGluZyB0aGUgY29uZGl0aW9uYWwgbG9naWMgc3Vycm91bmRpbmcgYGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKWAgYW5kIGBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKWAuXG5cbldoYXQgdGhleSd2ZSBkb25lIGlzIHJlbW92ZSB0aGUgZWFybHkgZXhpdCBhbmQgdGhlIGBmaWxlbWFwX2ZsdXNoYCBjYWxsIHVuZGVyIHNwZWNpZmljIGNvbmRpdGlvbnMuIEluc3RlYWQsIHdlIHNlZSBhbiBlYXJseSBjaGVjayBmb3IgYGV4dDRfaGFzX2ZlYXR1cmVfaW5saW5lX2RhdGEoaW5vZGUtXHUwMDNlaV9zYilgLiBJbnNpZGUgdGhlIGxvY2ssIHdoaWNoIGlzIHRoZSBpbnRlcmVzdGluZyBwYXJ0LCB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhIG1vcmUgZ3JhbnVsYXIgY2hlY2s6IHRoZXkgc3BlY2lmaWNhbGx5IGNoZWNrIGBleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkgXHUwMDI2XHUwMDI2IGV4dDRfdGVzdF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpYCAqYmVmb3JlKiBjYWxsaW5nIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYC4gRnVydGhlcm1vcmUsIGBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQWAgZ2V0cyBjbGVhcmVkIGlmIHRoZSBpbmxpbmUgZGF0YSBmZWF0dXJlIGlzIG5vIGxvbmdlciBwcmVzZW50LlxuXG5UaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGRlZmluaXRlbHkuIEl0IGltcGFjdHMgaG93IGlubGluZSBkYXRhIGNvbnZlcnNpb24gYmVoYXZlcyB3aXRoaW4gZXh0NC4gVGhlIHBvdGVudGlhbCBmb3Igc3VidGxlIGludGVyYWN0aW9ucyBhbmQgZWRnZSBjYXNlcyBpcyB0aGVyZSwgdGhlcmVmb3JlLCB0aGlzIG5lZWRzIHRvIGJlIGZ1enplZCB0aG9yb3VnaGx5LiBUaGF0J3MgcGFyYW1vdW50LlxuXG5SaWdodCwgbGV0J3MgbWFrZSBzdXJlIG91ciBleHQ0IGNvbmZpZ3VyYXRpb25zIGFyZSBzb2xpZC4gVGhlIHByaW1hcnkgb25lIEknbSBjb25jZXJuZWQgd2l0aCBpcyBgQ09ORklHX0VYVDRfRlNgLCBuYXR1cmFsbHkuXG5cbk5vdywgbGV0IG1lIGdvIGFoZWFkIGFuZCBmaW5kIHRoZSBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBmdW5jdGlvbiBkaXJlY3RseSB3aXRoaW4gYGZzL2V4dDQvaW5saW5lLmNgIGFuZCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzgzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzExLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTM6MjQ6MDMuMzg0MjA0MTIxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY1OTIyNDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2NyeXB0by5jPTEzMj1zdGF0aWMgaW50IGV4dDRfc2V0X2NvbnRleHQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgdm9pZCAqY3R4LCBzaXplX3QgbGVuLFxcbi0tXFxuZnMvZXh0NC9jcnlwdG8uYy0xNTItXFxuZnMvZXh0NC9jcnlwdG8uYzoxNTM6XFx0cmVzID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2NyeXB0by5jLTE1NC1cXHRpZiAocmVzKVxcbi0tXFxuZnMvZXh0NC9leHQ0Lmg9Mzc4ND1leHRlcm4gaW50IGV4dDRfaW5saW5lX2RhdGFfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50ICpoYXNfaW5saW5lKTtcXG5mcy9leHQ0L2V4dDQuaC0zNzg1LVxcbmZzL2V4dDQvZXh0NC5oOjM3ODY6ZXh0ZXJuIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSk7XFxuZnMvZXh0NC9leHQ0LmgtMzc4Ny1cXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jPTQ4NTQ9bG9uZyBleHQ0X2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4pXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy00ODgzLVxcdGlub2RlX2xvY2soaW5vZGUpO1xcbmZzL2V4dDQvZXh0ZW50cy5jOjQ4ODQ6XFx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2V4dGVudHMuYy00ODg1LVxcdGlmIChyZXQpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTU0NT1pbnQgZXh0NF9yZWFkcGFnZV9pbmxpbmUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNTcxLVxcbmZzL2V4dDQvaW5saW5lLmM6NTcyOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG5mcy9leHQ0L2lubGluZS5jLTU3My1cXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz02OTY9aW50IGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNzI3LVxcdFxcdFxcdC8qIFJldHJ5IGluc2lkZSAqL1xcbmZzL2V4dDQvaW5saW5lLmM6NzI4OlxcdFxcdFxcdHJldHVybiBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KG1hcHBpbmcsIGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTcyOS1cXHRcXHR9XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTc4Mz1pbnQgZXh0NF90cnlfdG9fd3JpdGVfaW5saW5lX2RhdGEoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTc4OC1cXHRpZiAocG9zICsgbGVuIFxcdTAwM2UgZXh0NF9nZXRfbWF4X2lubGluZV9zaXplKGlub2RlKSlcXG5mcy9leHQ0L2lubGluZS5jOjc4OTpcXHRcXHRyZXR1cm4gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChtYXBwaW5nLCBpbm9kZSk7XFxuZnMvZXh0NC9pbmxpbmUuYy03OTAtXFx0cmV0dXJuIGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShtYXBwaW5nLCBpbm9kZSwgcG9zLCBsZW4sXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEwNzM9c3RhdGljIHZvaWQgZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTEwODktXFxuZnMvZXh0NC9pbmxpbmUuYzoxMDkwOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbmZzL2V4dDQvaW5saW5lLmMtMTA5MS1cXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMTg5PWludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTI0MS1cXHQgKi9cXG5mcy9leHQ0L2lubGluZS5jOjEyNDI6XFx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGRpciwgXFx1MDAyNmlsb2MpO1xcbmZzL2V4dDQvaW5saW5lLmMtMTI0My1cXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTg0ND1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE5NTUtXFxuZnMvZXh0NC9pbmxpbmUuYzoxOTU2OmludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSlcXG5mcy9leHQ0L2lubGluZS5jLTE5NTcte1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xOTgwLVxcdCAgICBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSlcXG5mcy9leHQ0L2lubGluZS5jOjE5ODE6XFx0XFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsIFxcdTAwMjZpbG9jKTtcXG5mcy9leHQ0L2lubGluZS5jLTE5ODItXFx0LypcXG4tLVxcbmZzL2V4dDQvaW5vZGUuYz01OTM0PWludCBleHQ0X3NldGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSxcXG4tLVxcbmZzL2V4dDQvaW5vZGUuYy02MDMxLVxcdFxcdCAgICBhdHRyLVxcdTAwM2VpYV9zaXplIFxcdTAwM2UgRVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSkge1xcbmZzL2V4dDQvaW5vZGUuYzo2MDMyOlxcdFxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2lub2RlLmMtNjAzMy1cXHRcXHRcXHRpZiAoZXJyb3IpXFxuLS1cXG5mcy9leHQ0L2lub2RlLmM9Njc4Nz12bV9mYXVsdF90IGV4dDRfcGFnZV9ta3dyaXRlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKVxcbi0tXFxuZnMvZXh0NC9pbm9kZS5jLTY4MDgtXFxuZnMvZXh0NC9pbm9kZS5jOjY4MDk6XFx0ZXJyID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2lub2RlLmMtNjgxMC1cXHRpZiAoZXJyKVxcbi0tXFxuZnMvZXh0NC92ZXJpdHkuYz0xMDI9c3RhdGljIGludCBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHkoc3RydWN0IGZpbGUgKmZpbHApXFxuLS1cXG5mcy9leHQ0L3Zlcml0eS5jLTEyOC1cXG5mcy9leHQ0L3Zlcml0eS5jOjEyOTpcXHRlcnIgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xcbmZzL2V4dDQvdmVyaXR5LmMtMTMwLVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEzOjI0OjAzLjQ1MDEzMzI1OVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1ODY4MTc0MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTY29wZSBvZiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCB3aGVyZSBpdCdzIGNhbGxlZC4gVGhlIGNvZGUgc2hvd3MgaXQgZ2V0cyBpbnZva2VkIGZyb20gYGV4dDRfc2V0X2NvbnRleHRgICh3aGljaCBpcyBjcnlwdG8tcmVsYXRlZCwgaW50ZXJlc3RpbmcpLCBgZXh0NF9mYWxsb2NhdGVgLCBgZXh0NF9zZXRhdHRyYCwgYGV4dDRfcGFnZV9ta3dyaXRlYCwgYW5kIGBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHlgLiBUaGlzIGlzIGNsZWFybHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgaW1wYWN0aW5nIHNldmVyYWwga2V5IG9wZXJhdGlvbnMuXG5cblRoZSBpbXBsaWNhdGlvbiBoZXJlIGlzIHRoYXQgd2UgbmVlZCB0byBlbmFibGUgYEVYVDRfRlNgLiBUaGF0IG1ha2VzIHNlbnNlIGFzIGEgYmFzZSByZXF1aXJlbWVudC4gTXkgcHJpbWFyeSBmb2N1cyBpcyBvbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpdHNlbGYuXG5cbk5vdywgYmVmb3JlIEkgc2lnbiBvZmYgb24gdGhpcywgbGV0J3MganVzdCBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHdlIHNob3VsZCBiZSBhd2FyZSBvZi4gRG91YmxlLWNoZWNraW5nLi4uIE5vcGUsIGBFWFQ0X0ZTYCBzZWVtcyB0byBjb3ZlciBpdC5cblxuSG9sZCBvbi4uLiBJcyB0aGVyZSBhICpzcGVjaWZpYyogY29uZmlnIGZvciBpbmxpbmUgZGF0YSBoYW5kbGluZyB3aXRoaW4gZXh0ND8gSSdsbCBxdWlja2x5IGNoZWNrIHRoZSBgZnMvZXh0NC9LY29uZmlnYCBmaWxlIHRvIGNvbmZpcm0uIE5lZWQgdG8gYmUgdGhvcm91Z2ggaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU4MywiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMzoyNDoxMi4wMzY5NTM2NzFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc2MzUyMDcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImlubGluZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEzOjI0OjEyLjA5NDU5ODA2OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcxMTk0MzMwNjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIGV4dDQgSW5saW5lIERhdGEgQ29udmVyc2lvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoZXJlIGlzbid0IGEgZGVkaWNhdGVkIGNvbmZpZyBzcGVjaWZpY2FsbHkgZm9yIGlubGluZSBkYXRhOyBpdCdzIG1hbmFnZWQgdmlhIGEgZmVhdHVyZSBmbGFnIHdpdGhpbiBleHQ0LiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzOyBgRVhUNF9GU2Agc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGVuYWJsaW5nIHRoZSByZWxldmFudCBjb2RlLlxuXG5Ob3csIGxldCdzIGRpZyBpbnRvIHRoZSBjb2RlIGl0c2VsZi4gVGhlIHBhdGNoIGlzIGNlbnRlcmVkIGFyb3VuZCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpbiBgZnMvZXh0NC9pbmxpbmUuY2AuIEkgbmVlZCB0byB2ZXJpZnkgd2hldGhlciBhbnkgb3RoZXIgZnVuY3Rpb25zIGFyZSBhbHNvIG1vZGlmaWVkLCBvciBpZiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpcyB0aGUgc29sZSBwb2ludCBvZiBpbnRlcmVzdC4gQSBxdWljayBjaGVjayByZXZlYWxzIHRoYXQgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgIGlzICpjYWxsZWQqIGJ5IHRoZSBtYWluIGZ1bmN0aW9uIGJ1dCBub3QgZGlyZWN0bHkgbW9kaWZpZWQuIFRodXMsIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGlzIGRlZmluaXRlbHkgdGhlIGtleSBzeW1ib2wgaGVyZS5cblxuQWxyaWdodCwgdGltZSB0byBzeW50aGVzaXplIG15IHJlYXNvbmluZy4gVGhlIHBhdGNoIGlzIGZ1bmRhbWVudGFsbHkgYWx0ZXJpbmcgdGhlIG1lY2hhbmlzbSBieSB3aGljaCBpbmxpbmUgZGF0YSBpcyBjb252ZXJ0ZWQgd2l0aGluIGV4dDQuIFNwZWNpZmljYWxseSwgdGhlIHBhdGNoIGNoYW5nZXMgdGhlIHdheSB0aGUgYEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBYCBzdGF0ZSBpcyBjaGVja2VkIGFuZCBjbGVhcmVkLCBhbmQgdGhleSByZW1vdmVkIHRoZSBleHBsaWNpdCBgZmlsZW1hcF9mbHVzaCgpYCBjYWxsLiBUaGlzIGNvcmUgZXh0NCBsb2dpYyBpcyB2dWxuZXJhYmxlIHRvIGNhbGxzIGZyb20gc2V2ZXJhbCBmaWxlIG9wZXJhdGlvbnMuIEVzc2VudGlhbGx5LCBpdCBjaGFuZ2VzIHRoZSBpbnRlcm5hbCBiZWhhdmlvciBvZiBzZXZlcmFsIGZpbGUgb3BlcmF0aW9ucyAoZS5nLiwgZmFsbG9jYXRlLCBzZXRhdHRyLCBwYWdlX21rd3JpdGUpIG9uIGZpbGVzIHRoYXQgaGF2ZSBpbmxpbmUgZGF0YS4gVGhlIHN0YXRlIG1hY2hpbmUgY2hhbmdlcyBuZWNlc3NpdGF0ZSBmdXp6aW5nLiBJdCdzIGNydWNpYWwgdG8gc3RyZXNzLXRlc3QgdGhpcyBuZXcgc3RhdGUgaGFuZGxpbmcgdG8gaWRlbnRpZnkgcG90ZW50aWFsIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IGFyaXNlIGZyb20gdGhlc2UgbW9kaWZpY2F0aW9ucy5cblxuSW4gc3VtbWFyeTpcblxuKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgRVhUNF9GU2BcbiogICAqKkZvY3VzU3ltYm9sczoqKiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYFxuKiAgICoqV29ydGhGdXp6aW5nOioqIEFic29sdXRlbHksIHllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAzMywiT3V0cHV0VG9rZW5zIjoxNzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTM6MjQ6MTkuMjE0MDM0NTQyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTUyODk5NzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVYVDRfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGNvbnZlcnRpbmcgaW5saW5lIGRhdGEgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKClgLiBJdCBjaGFuZ2VzIGhvdyB0aGUgYEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBYCBzdGF0ZSBpcyBjaGVja2VkIGFuZCBjbGVhcmVkLCBhbmQgcmVtb3ZlcyBhIGZvcmNlZCB3cml0ZW91dCB2aWEgYGZpbGVtYXBfZmx1c2goKWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGV4dDQgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgdmFyaW91cyBmaWxlIG9wZXJhdGlvbnMgKGUuZy4sIGZhbGxvY2F0ZSwgc2V0YXR0ciwgcGFnZV9ta3dyaXRlKSBvbiBmaWxlcyB3aXRoIGlubGluZSBkYXRhLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IHN0YXRlIGhhbmRsaW5nIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBjb252ZXJ0aW5nIGlubGluZSBkYXRhIGluIHRoZSBleHQ0IGZpbGVzeXN0ZW0sIHNwZWNpZmljYWxseSB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YSgpYC4gSXQgY2hhbmdlcyBob3cgdGhlIGBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQWAgc3RhdGUgaXMgY2hlY2tlZCBhbmQgY2xlYXJlZCwgYW5kIHJlbW92ZXMgYSBmb3JjZWQgd3JpdGVvdXQgdmlhIGBmaWxlbWFwX2ZsdXNoKClgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBleHQ0IGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIHZhcmlvdXMgZmlsZSBvcGVyYXRpb25zIChlLmcuLCBmYWxsb2NhdGUsIHNldGF0dHIsIHBhZ2VfbWt3cml0ZSkgb24gZmlsZXMgd2l0aCBpbmxpbmUgZGF0YS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBzdGF0ZSBoYW5kbGluZyBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowkmczw[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-02 13:12:18 +0000 UTC FinishedAt: 2026-07-02 13:24:21 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "4a50a141f05a8d1737661b19ee22ff8455b94409", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "4a50a141f05a8d1737661b19ee22ff8455b94409", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "d5b7fbee-d494-48c8-88fc-19f476a02a61" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "ext4_convert_inline_data" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEzOjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBjb252ZXJ0aW5nIGlubGluZSBkYXRhIGluIHRoZSBleHQ0IGZpbGVzeXN0ZW0sIHNwZWNpZmljYWxseSB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YSgpYC4gSXQgY2hhbmdlcyBob3cgdGhlIGBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQWAgc3RhdGUgaXMgY2hlY2tlZCBhbmQgY2xlYXJlZCwgYW5kIHJlbW92ZXMgYSBmb3JjZWQgd3JpdGVvdXQgdmlhIGBmaWxlbWFwX2ZsdXNoKClgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBleHQ0IGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIHZhcmlvdXMgZmlsZSBvcGVyYXRpb25zIChlLmcuLCBmYWxsb2NhdGUsIHNldGF0dHIsIHBhZ2VfbWt3cml0ZSkgb24gZmlsZXMgd2l0aCBpbmxpbmUgZGF0YS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBzdGF0ZSBoYW5kbGluZyBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEzOjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDJkNjlmZjQ4Y2JlZTM1YjM5ZGFiYzYwOGYxYWMxYmNlZmJiMDE3YVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIgMTM6MjM6NTUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmNcbmluZGV4IDgwNDVlNGZmMjcwYzdmLi44N2ZlZTExN2RjYzFmZCAxMDA2NDRcbi0tLSBhL2ZzL2V4dDQvaW5saW5lLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4dDQvaW5saW5lLmNcbkBAIC0xOTU5LDIyICYjNDM7MTk1OSw4IEBAIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSlcbiBcdGhhbmRsZV90ICpoYW5kbGU7XG4gXHRzdHJ1Y3QgZXh0NF9pbG9jIGlsb2M7XG4gXG4tXHRpZiAoIWV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkge1xuLVx0XHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XG4mIzQzO1x0aWYgKCFleHQ0X2hhc19mZWF0dXJlX2lubGluZV9kYXRhKGlub2RlLVx1MDAzZWlfc2IpKVxuIFx0XHRyZXR1cm4gMDtcbi1cdH0gZWxzZSBpZiAoIWV4dDRfdGVzdF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpKSB7XG4tXHRcdC8qXG4tXHRcdCAqIElub2RlIGhhcyBpbmxpbmUgZGF0YSBidXQgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEgaXNcbi1cdFx0ICogY2xlYXJlZC4gVGhpcyBtZWFucyB3ZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBtb3Zpbmcgb2Zcbi1cdFx0ICogaW5saW5lIGRhdGEgdG8gZGVsYXkgYWxsb2NhdGVkIGJsb2NrLiBKdXN0IGZvcmNlIHdyaXRlb3V0XG4tXHRcdCAqIGhlcmUgdG8gZmluaXNoIGNvbnZlcnNpb24uXG4tXHRcdCAqL1xuLVx0XHRlcnJvciA9IGZpbGVtYXBfZmx1c2goaW5vZGUtXHUwMDNlaV9tYXBwaW5nKTtcbi1cdFx0aWYgKGVycm9yKVxuLVx0XHRcdHJldHVybiBlcnJvcjtcbi1cdFx0aWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXG4tXHRcdFx0cmV0dXJuIDA7XG4tXHR9XG4gXG4gXHRuZWVkZWRfYmxvY2tzID0gZXh0NF9jaHVua190cmFuc19leHRlbnQoaW5vZGUsIDEpO1xuIFxuQEAgLTE5OTAsOCAmIzQzOzE5NzYsMjIgQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuIFx0fVxuIFxuIFx0ZXh0NF93cml0ZV9sb2NrX3hhdHRyKGlub2RlLCBcdTAwMjZub19leHBhbmQpO1xuLVx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSlcbiYjNDM7XHRpZiAoZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSlcbiBcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlsb2MpO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogSWYgaGFzX2lubGluZV9kYXRhIGlzIHNldCBidXQgTUFZX0lOTElORV9EQVRBIGlzIGNsZWFyLCBhXG4mIzQzO1x0ICogY29uY3VycmVudCBleHQ0X2RhX2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KCkgaGFzIGFscmVhZHlcbiYjNDM7XHQgKiBjb3BpZWQgdGhlIGRhdGEgdG8gcGFnZSBjYWNoZSBhbmQgd2lsbCBmaW5pc2ggY29udmVyc2lvbiB2aWFcbiYjNDM7XHQgKiB3cml0ZWJhY2sgLS0gc2tpcCBjb252ZXJ0X25vbG9jayB0byBhdm9pZCBkZXN0cm95JiM0MztyZXN0b3JlXG4mIzQzO1x0ICogcmUtc2V0dGluZyBNQVlfSU5MSU5FX0RBVEEgYmVoaW5kIGl0cyBiYWNrLlxuJiM0MztcdCAqXG4mIzQzO1x0ICogQ2xlYXIgTUFZX0lOTElORV9EQVRBIGlmIGlubGluZSBkYXRhIGlzIGdvbmUgKGNvbnZlcnQgc3VjY2VlZGVkXG4mIzQzO1x0ICogb3Igd2FzIGFscmVhZHkgY29tcGxldGVkKS4gIERvIG5vdCBjbGVhciBpdCBpZiBjb252ZXJ0IGZhaWxlZFxuJiM0MztcdCAqIGFuZCBpbmxpbmUgZGF0YSB3YXMgcmVzdG9yZWQuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXG4mIzQzO1x0XHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XG4gXHRleHQ0X3dyaXRlX3VubG9ja194YXR0cihpbm9kZSwgXHUwMDI2bm9fZXhwYW5kKTtcbiBcdGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7XG4gb3V0X2ZyZWU6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTM6MjM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RVhUNF9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2V4dDRfY29udmVydF9pbmxpbmVfZGF0YSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGNvbnZlcnRpbmcgaW5saW5lIGRhdGEgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKClgLiBJdCBjaGFuZ2VzIGhvdyB0aGUgYEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBYCBzdGF0ZSBpcyBjaGVja2VkIGFuZCBjbGVhcmVkLCBhbmQgcmVtb3ZlcyBhIGZvcmNlZCB3cml0ZW91dCB2aWEgYGZpbGVtYXBfZmx1c2goKWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGV4dDQgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgdmFyaW91cyBmaWxlIG9wZXJhdGlvbnMgKGUuZy4sIGZhbGxvY2F0ZSwgc2V0YXR0ciwgcGFnZV9ta3dyaXRlKSBvbiBmaWxlcyB3aXRoIGlubGluZSBkYXRhLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IHN0YXRlIGhhbmRsaW5nIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDQyZDY5ZmY0OGNiZWUzNWIzOWRhYmM2MDhmMWFjMWJjZWZiYjAxN2EKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyIDEzOjIzOjU1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmMKaW5kZXggODA0NWU0ZmYyNzBjN2YuLjg3ZmVlMTE3ZGNjMWZkIDEwMDY0NAotLS0gYS9mcy9leHQ0L2lubGluZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4dDQvaW5saW5lLmMKQEAgLTE5NTksMjIgJiM0MzsxOTU5LDggQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCWhhbmRsZV90ICpoYW5kbGU7CiAJc3RydWN0IGV4dDRfaWxvYyBpbG9jOwogCi0JaWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpIHsKLQkJZXh0NF9jbGVhcl9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpOwomIzQzOwlpZiAoIWV4dDRfaGFzX2ZlYXR1cmVfaW5saW5lX2RhdGEoaW5vZGUtJmd0O2lfc2IpKQogCQlyZXR1cm4gMDsKLQl9IGVsc2UgaWYgKCFleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSkgewotCQkvKgotCQkgKiBJbm9kZSBoYXMgaW5saW5lIGRhdGEgYnV0IEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBIGlzCi0JCSAqIGNsZWFyZWQuIFRoaXMgbWVhbnMgd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgbW92aW5nIG9mCi0JCSAqIGlubGluZSBkYXRhIHRvIGRlbGF5IGFsbG9jYXRlZCBibG9jay4gSnVzdCBmb3JjZSB3cml0ZW91dAotCQkgKiBoZXJlIHRvIGZpbmlzaCBjb252ZXJzaW9uLgotCQkgKi8KLQkJZXJyb3IgPSBmaWxlbWFwX2ZsdXNoKGlub2RlLSZndDtpX21hcHBpbmcpOwotCQlpZiAoZXJyb3IpCi0JCQlyZXR1cm4gZXJyb3I7Ci0JCWlmICghZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKQotCQkJcmV0dXJuIDA7Ci0JfQogCiAJbmVlZGVkX2Jsb2NrcyA9IGV4dDRfY2h1bmtfdHJhbnNfZXh0ZW50KGlub2RlLCAxKTsKIApAQCAtMTk5MCw4ICYjNDM7MTk3NiwyMiBAQCBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiAJfQogCiAJZXh0NF93cml0ZV9sb2NrX3hhdHRyKGlub2RlLCAmYW1wO25vX2V4cGFuZCk7Ci0JaWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkKJiM0MzsJaWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSAmYW1wOyZhbXA7CiYjNDM7CSAgICBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSkKIAkJZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsICZhbXA7aWxvYyk7CiYjNDM7CS8qCiYjNDM7CSAqIElmIGhhc19pbmxpbmVfZGF0YSBpcyBzZXQgYnV0IE1BWV9JTkxJTkVfREFUQSBpcyBjbGVhciwgYQomIzQzOwkgKiBjb25jdXJyZW50IGV4dDRfZGFfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQoKSBoYXMgYWxyZWFkeQomIzQzOwkgKiBjb3BpZWQgdGhlIGRhdGEgdG8gcGFnZSBjYWNoZSBhbmQgd2lsbCBmaW5pc2ggY29udmVyc2lvbiB2aWEKJiM0MzsJICogd3JpdGViYWNrIC0tIHNraXAgY29udmVydF9ub2xvY2sgdG8gYXZvaWQgZGVzdHJveSYjNDM7cmVzdG9yZQomIzQzOwkgKiByZS1zZXR0aW5nIE1BWV9JTkxJTkVfREFUQSBiZWhpbmQgaXRzIGJhY2suCiYjNDM7CSAqCiYjNDM7CSAqIENsZWFyIE1BWV9JTkxJTkVfREFUQSBpZiBpbmxpbmUgZGF0YSBpcyBnb25lIChjb252ZXJ0IHN1Y2NlZWRlZAomIzQzOwkgKiBvciB3YXMgYWxyZWFkeSBjb21wbGV0ZWQpLiAgRG8gbm90IGNsZWFyIGl0IGlmIGNvbnZlcnQgZmFpbGVkCiYjNDM7CSAqIGFuZCBpbmxpbmUgZGF0YSB3YXMgcmVzdG9yZWQuCiYjNDM7CSAqLwomIzQzOwlpZiAoIWV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkKJiM0MzsJCWV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTsKIAlleHQ0X3dyaXRlX3VubG9ja194YXR0cihpbm9kZSwgJmFtcDtub19leHBhbmQpOwogCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CiBvdXRfZnJlZToKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTM6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM4MwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDMxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBDcml0aWNhbCBFeHQ0IElubGluZSBEYXRhIENvbnZlcnNpb24gUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCYjMzk7cyB0d2Vha2luZyBgZnMvZXh0NC9pbmxpbmUuY2AsIHNwZWNpZmljYWxseSB0aGUgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgZnVuY3Rpb24uIFRoZSBrZXkgY2hhbmdlIGhlcmUgaXMgdGhlIHJld29ya2luZyBvZiBob3cgdGhlIGNvZGUgaGFuZGxlcyB0aGUgdHJhbnNpdGlvbiBmcm9tIGlubGluZSBkYXRhIHRvIGEgcmVndWxhciBleHRlbnQtYmFzZWQgc3RydWN0dXJlLCBvciB2aWNlIHZlcnNhLiBUaGV5JiMzOTtyZSB0b3VjaGluZyB0aGUgY29uZGl0aW9uYWwgbG9naWMgc3Vycm91bmRpbmcgYGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKWAgYW5kIGBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKWAuCgpXaGF0IHRoZXkmIzM5O3ZlIGRvbmUgaXMgcmVtb3ZlIHRoZSBlYXJseSBleGl0IGFuZCB0aGUgYGZpbGVtYXBfZmx1c2hgIGNhbGwgdW5kZXIgc3BlY2lmaWMgY29uZGl0aW9ucy4gSW5zdGVhZCwgd2Ugc2VlIGFuIGVhcmx5IGNoZWNrIGZvciBgZXh0NF9oYXNfZmVhdHVyZV9pbmxpbmVfZGF0YShpbm9kZS0mZ3Q7aV9zYilgLiBJbnNpZGUgdGhlIGxvY2ssIHdoaWNoIGlzIHRoZSBpbnRlcmVzdGluZyBwYXJ0LCB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhIG1vcmUgZ3JhbnVsYXIgY2hlY2s6IHRoZXkgc3BlY2lmaWNhbGx5IGNoZWNrIGBleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkgJmFtcDsmYW1wOyBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKWAgKmJlZm9yZSogY2FsbGluZyBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9ja2AuIEZ1cnRoZXJtb3JlLCBgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEFgIGdldHMgY2xlYXJlZCBpZiB0aGUgaW5saW5lIGRhdGEgZmVhdHVyZSBpcyBubyBsb25nZXIgcHJlc2VudC4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZGVmaW5pdGVseS4gSXQgaW1wYWN0cyBob3cgaW5saW5lIGRhdGEgY29udmVyc2lvbiBiZWhhdmVzIHdpdGhpbiBleHQ0LiBUaGUgcG90ZW50aWFsIGZvciBzdWJ0bGUgaW50ZXJhY3Rpb25zIGFuZCBlZGdlIGNhc2VzIGlzIHRoZXJlLCB0aGVyZWZvcmUsIHRoaXMgbmVlZHMgdG8gYmUgZnV6emVkIHRob3JvdWdobHkuIFRoYXQmIzM5O3MgcGFyYW1vdW50LgoKUmlnaHQsIGxldCYjMzk7cyBtYWtlIHN1cmUgb3VyIGV4dDQgY29uZmlndXJhdGlvbnMgYXJlIHNvbGlkLiBUaGUgcHJpbWFyeSBvbmUgSSYjMzk7bSBjb25jZXJuZWQgd2l0aCBpcyBgQ09ORklHX0VYVDRfRlNgLCBuYXR1cmFsbHkuCgpOb3csIGxldCBtZSBnbyBhaGVhZCBhbmQgZmluZCB0aGUgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgZnVuY3Rpb24gZGlyZWN0bHkgd2l0aGluIGBmcy9leHQ0L2lubGluZS5jYCBhbmQgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMzoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L2NyeXB0by5jPTEzMj1zdGF0aWMgaW50IGV4dDRfc2V0X2NvbnRleHQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgdm9pZCAqY3R4LCBzaXplX3QgbGVuLFxuLS1cbmZzL2V4dDQvY3J5cHRvLmMtMTUyLVxuZnMvZXh0NC9jcnlwdG8uYzoxNTM6XHRyZXMgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xuZnMvZXh0NC9jcnlwdG8uYy0xNTQtXHRpZiAocmVzKVxuLS1cbmZzL2V4dDQvZXh0NC5oPTM3ODQ9ZXh0ZXJuIGludCBleHQ0X2lubGluZV9kYXRhX3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCAqaGFzX2lubGluZSk7XG5mcy9leHQ0L2V4dDQuaC0zNzg1LVxuZnMvZXh0NC9leHQ0Lmg6Mzc4NjpleHRlcm4gaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKTtcbmZzL2V4dDQvZXh0NC5oLTM3ODctXG4tLVxuZnMvZXh0NC9leHRlbnRzLmM9NDg1ND1sb25nIGV4dDRfZmFsbG9jYXRlKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwgbG9mZl90IG9mZnNldCwgbG9mZl90IGxlbilcbi0tXG5mcy9leHQ0L2V4dGVudHMuYy00ODgzLVx0aW5vZGVfbG9jayhpbm9kZSk7XG5mcy9leHQ0L2V4dGVudHMuYzo0ODg0Olx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcbmZzL2V4dDQvZXh0ZW50cy5jLTQ4ODUtXHRpZiAocmV0KVxuLS1cbmZzL2V4dDQvaW5saW5lLmM9NTQ1PWludCBleHQ0X3JlYWRwYWdlX2lubGluZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZm9saW8gKmZvbGlvKVxuLS1cbmZzL2V4dDQvaW5saW5lLmMtNTcxLVxuZnMvZXh0NC9pbmxpbmUuYzo1NzI6c3RhdGljIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuZnMvZXh0NC9pbmxpbmUuYy01NzMtXHRcdFx0XHRcdCAgICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvZXh0NC9pbmxpbmUuYz02OTY9aW50IGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcbi0tXG5mcy9leHQ0L2lubGluZS5jLTcyNy1cdFx0XHQvKiBSZXRyeSBpbnNpZGUgKi9cbmZzL2V4dDQvaW5saW5lLmM6NzI4Olx0XHRcdHJldHVybiBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KG1hcHBpbmcsIGlub2RlKTtcbmZzL2V4dDQvaW5saW5lLmMtNzI5LVx0XHR9XG4tLVxuZnMvZXh0NC9pbmxpbmUuYz03ODM9aW50IGV4dDRfdHJ5X3RvX3dyaXRlX2lubGluZV9kYXRhKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLFxuLS1cbmZzL2V4dDQvaW5saW5lLmMtNzg4LVx0aWYgKHBvcyAmIzQzOyBsZW4gXHUwMDNlIGV4dDRfZ2V0X21heF9pbmxpbmVfc2l6ZShpbm9kZSkpXG5mcy9leHQ0L2lubGluZS5jOjc4OTpcdFx0cmV0dXJuIGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQobWFwcGluZywgaW5vZGUpO1xuZnMvZXh0NC9pbmxpbmUuYy03OTAtXHRyZXR1cm4gZXh0NF9nZW5lcmljX3dyaXRlX2lubGluZV9kYXRhKG1hcHBpbmcsIGlub2RlLCBwb3MsIGxlbixcbi0tXG5mcy9leHQ0L2lubGluZS5jPTEwNzM9c3RhdGljIHZvaWQgZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xMDg5LVxuZnMvZXh0NC9pbmxpbmUuYzoxMDkwOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxuZnMvZXh0NC9pbmxpbmUuYy0xMDkxLVx0XHRcdFx0XHQgICBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbmZzL2V4dDQvaW5saW5lLmM9MTE4OT1pbnQgZXh0NF90cnlfYWRkX2lubGluZV9lbnRyeShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZXh0NF9maWxlbmFtZSAqZm5hbWUsXG4tLVxuZnMvZXh0NC9pbmxpbmUuYy0xMjQxLVx0ICovXG5mcy9leHQ0L2lubGluZS5jOjEyNDI6XHRyZXQgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgZGlyLCBcdTAwMjZpbG9jKTtcbmZzL2V4dDQvaW5saW5lLmMtMTI0My1cbi0tXG5mcy9leHQ0L2lubGluZS5jPTE4NDQ9aW50IGV4dDRfaW5saW5lX2RhdGFfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50ICpoYXNfaW5saW5lKVxuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTk1NS1cbmZzL2V4dDQvaW5saW5lLmM6MTk1NjppbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5mcy9leHQ0L2lubGluZS5jLTE5NTcte1xuLS1cbmZzL2V4dDQvaW5saW5lLmMtMTk4MC1cdCAgICBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSlcbmZzL2V4dDQvaW5saW5lLmM6MTk4MTpcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsIFx1MDAyNmlsb2MpO1xuZnMvZXh0NC9pbmxpbmUuYy0xOTgyLVx0Lypcbi0tXG5mcy9leHQ0L2lub2RlLmM9NTkzND1pbnQgZXh0NF9zZXRhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksXG4tLVxuZnMvZXh0NC9pbm9kZS5jLTYwMzEtXHRcdCAgICBhdHRyLVx1MDAzZWlhX3NpemUgXHUwMDNlIEVYVDRfSShpbm9kZSktXHUwMDNlaV9pbmxpbmVfc2l6ZSkge1xuZnMvZXh0NC9pbm9kZS5jOjYwMzI6XHRcdFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xuZnMvZXh0NC9pbm9kZS5jLTYwMzMtXHRcdFx0aWYgKGVycm9yKVxuLS1cbmZzL2V4dDQvaW5vZGUuYz02Nzg3PXZtX2ZhdWx0X3QgZXh0NF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXG4tLVxuZnMvZXh0NC9pbm9kZS5jLTY4MDgtXG5mcy9leHQ0L2lub2RlLmM6NjgwOTpcdGVyciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L2lub2RlLmMtNjgxMC1cdGlmIChlcnIpXG4tLVxuZnMvZXh0NC92ZXJpdHkuYz0xMDI9c3RhdGljIGludCBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHkoc3RydWN0IGZpbGUgKmZpbHApXG4tLVxuZnMvZXh0NC92ZXJpdHkuYy0xMjgtXG5mcy9leHQ0L3Zlcml0eS5jOjEyOTpcdGVyciA9IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShpbm9kZSk7XG5mcy9leHQ0L3Zlcml0eS5jLTEzMC1cdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDIgMTM6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU4MwoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDE1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNjb3BlIG9mIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBhbmQgd2hlcmUgaXQmIzM5O3MgY2FsbGVkLiBUaGUgY29kZSBzaG93cyBpdCBnZXRzIGludm9rZWQgZnJvbSBgZXh0NF9zZXRfY29udGV4dGAgKHdoaWNoIGlzIGNyeXB0by1yZWxhdGVkLCBpbnRlcmVzdGluZyksIGBleHQ0X2ZhbGxvY2F0ZWAsIGBleHQ0X3NldGF0dHJgLCBgZXh0NF9wYWdlX21rd3JpdGVgLCBhbmQgYGV4dDRfYmVnaW5fZW5hYmxlX3Zlcml0eWAuIFRoaXMgaXMgY2xlYXJseSBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCBpbXBhY3Rpbmcgc2V2ZXJhbCBrZXkgb3BlcmF0aW9ucy4KClRoZSBpbXBsaWNhdGlvbiBoZXJlIGlzIHRoYXQgd2UgbmVlZCB0byBlbmFibGUgYEVYVDRfRlNgLiBUaGF0IG1ha2VzIHNlbnNlIGFzIGEgYmFzZSByZXF1aXJlbWVudC4gTXkgcHJpbWFyeSBmb2N1cyBpcyBvbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpdHNlbGYuCgpOb3csIGJlZm9yZSBJIHNpZ24gb2ZmIG9uIHRoaXMsIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHdlIHNob3VsZCBiZSBhd2FyZSBvZi4gRG91YmxlLWNoZWNraW5nLi4uIE5vcGUsIGBFWFQ0X0ZTYCBzZWVtcyB0byBjb3ZlciBpdC4KCkhvbGQgb24uLi4gSXMgdGhlcmUgYSAqc3BlY2lmaWMqIGNvbmZpZyBmb3IgaW5saW5lIGRhdGEgaGFuZGxpbmcgd2l0aGluIGV4dDQ/IEkmIzM5O2xsIHF1aWNrbHkgY2hlY2sgdGhlIGBmcy9leHQ0L0tjb25maWdgIGZpbGUgdG8gY29uZmlybS4gTmVlZCB0byBiZSB0aG9yb3VnaCBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAyIDEzOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aW5saW5lJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZXh0NC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMzoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDMzCgkJCQkJCQlvdXRwdXQ6IDE3MgoJCQkJCQkJdGhvdWdodHM6IDMxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgZXh0NCBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoKioKCk9rYXksIHNvIHRoZXJlIGlzbiYjMzk7dCBhIGRlZGljYXRlZCBjb25maWcgc3BlY2lmaWNhbGx5IGZvciBpbmxpbmUgZGF0YTsgaXQmIzM5O3MgbWFuYWdlZCB2aWEgYSBmZWF0dXJlIGZsYWcgd2l0aGluIGV4dDQuIFRoYXQgc2ltcGxpZmllcyB0aGluZ3M7IGBFWFQ0X0ZTYCBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IgZW5hYmxpbmcgdGhlIHJlbGV2YW50IGNvZGUuCgpOb3csIGxldCYjMzk7cyBkaWcgaW50byB0aGUgY29kZSBpdHNlbGYuIFRoZSBwYXRjaCBpcyBjZW50ZXJlZCBhcm91bmQgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgaW4gYGZzL2V4dDQvaW5saW5lLmNgLiBJIG5lZWQgdG8gdmVyaWZ5IHdoZXRoZXIgYW55IG90aGVyIGZ1bmN0aW9ucyBhcmUgYWxzbyBtb2RpZmllZCwgb3IgaWYgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAgaXMgdGhlIHNvbGUgcG9pbnQgb2YgaW50ZXJlc3QuIEEgcXVpY2sgY2hlY2sgcmV2ZWFscyB0aGF0IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYCBpcyAqY2FsbGVkKiBieSB0aGUgbWFpbiBmdW5jdGlvbiBidXQgbm90IGRpcmVjdGx5IG1vZGlmaWVkLiBUaHVzLCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpcyBkZWZpbml0ZWx5IHRoZSBrZXkgc3ltYm9sIGhlcmUuCgpBbHJpZ2h0LCB0aW1lIHRvIHN5bnRoZXNpemUgbXkgcmVhc29uaW5nLiBUaGUgcGF0Y2ggaXMgZnVuZGFtZW50YWxseSBhbHRlcmluZyB0aGUgbWVjaGFuaXNtIGJ5IHdoaWNoIGlubGluZSBkYXRhIGlzIGNvbnZlcnRlZCB3aXRoaW4gZXh0NC4gU3BlY2lmaWNhbGx5LCB0aGUgcGF0Y2ggY2hhbmdlcyB0aGUgd2F5IHRoZSBgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEFgIHN0YXRlIGlzIGNoZWNrZWQgYW5kIGNsZWFyZWQsIGFuZCB0aGV5IHJlbW92ZWQgdGhlIGV4cGxpY2l0IGBmaWxlbWFwX2ZsdXNoKClgIGNhbGwuIFRoaXMgY29yZSBleHQ0IGxvZ2ljIGlzIHZ1bG5lcmFibGUgdG8gY2FsbHMgZnJvbSBzZXZlcmFsIGZpbGUgb3BlcmF0aW9ucy4gRXNzZW50aWFsbHksIGl0IGNoYW5nZXMgdGhlIGludGVybmFsIGJlaGF2aW9yIG9mIHNldmVyYWwgZmlsZSBvcGVyYXRpb25zIChlLmcuLCBmYWxsb2NhdGUsIHNldGF0dHIsIHBhZ2VfbWt3cml0ZSkgb24gZmlsZXMgdGhhdCBoYXZlIGlubGluZSBkYXRhLiBUaGUgc3RhdGUgbWFjaGluZSBjaGFuZ2VzIG5lY2Vzc2l0YXRlIGZ1enppbmcuIEl0JiMzOTtzIGNydWNpYWwgdG8gc3RyZXNzLXRlc3QgdGhpcyBuZXcgc3RhdGUgaGFuZGxpbmcgdG8gaWRlbnRpZnkgcG90ZW50aWFsIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IGFyaXNlIGZyb20gdGhlc2UgbW9kaWZpY2F0aW9ucy4KCkluIHN1bW1hcnk6CgoqICAgKipFbmFibGVDb25maWdzOioqIGBFWFQ0X0ZTYAoqICAgKipGb2N1c1N5bWJvbHM6KiogYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YWAKKiAgICoqV29ydGhGdXp6aW5nOioqIEFic29sdXRlbHksIHllcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMiAxMzoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RVhUNF9GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2V4dDRfY29udmVydF9pbmxpbmVfZGF0YSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGNvbnZlcnRpbmcgaW5saW5lIGRhdGEgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKClgLiBJdCBjaGFuZ2VzIGhvdyB0aGUgYEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBYCBzdGF0ZSBpcyBjaGVja2VkIGFuZCBjbGVhcmVkLCBhbmQgcmVtb3ZlcyBhIGZvcmNlZCB3cml0ZW91dCB2aWEgYGZpbGVtYXBfZmx1c2goKWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGV4dDQgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgdmFyaW91cyBmaWxlIG9wZXJhdGlvbnMgKGUuZy4sIGZhbGxvY2F0ZSwgc2V0YXR0ciwgcGFnZV9ta3dyaXRlKSBvbiBmaWxlcyB3aXRoIGlubGluZSBkYXRhLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IHN0YXRlIGhhbmRsaW5nIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBjb252ZXJ0aW5nIGlubGluZSBkYXRhIGluIHRoZSBleHQ0IGZpbGVzeXN0ZW0sIHNwZWNpZmljYWxseSB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YSgpYC4gSXQgY2hhbmdlcyBob3cgdGhlIGBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQWAgc3RhdGUgaXMgY2hlY2tlZCBhbmQgY2xlYXJlZCwgYW5kIHJlbW92ZXMgYSBmb3JjZWQgd3JpdGVvdXQgdmlhIGBmaWxlbWFwX2ZsdXNoKClgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBleHQ0IGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIHZhcmlvdXMgZmlsZSBvcGVyYXRpb25zIChlLmcuLCBmYWxsb2NhdGUsIHNldGF0dHIsIHBhZ2VfbWt3cml0ZSkgb24gZmlsZXMgd2l0aCBpbmxpbmUgZGF0YS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBzdGF0ZSBoYW5kbGluZyBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDJUMTM6MjM6NTYuOTc3NDgwNDYxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIzNTE4NjQwODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVhUNF9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgY29udmVydGluZyBpbmxpbmUgZGF0YSBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoKWAuIEl0IGNoYW5nZXMgaG93IHRoZSBgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEFgIHN0YXRlIGlzIGNoZWNrZWQgYW5kIGNsZWFyZWQsIGFuZCByZW1vdmVzIGEgZm9yY2VkIHdyaXRlb3V0IHZpYSBgZmlsZW1hcF9mbHVzaCgpYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZXh0NCBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSB2YXJpb3VzIGZpbGUgb3BlcmF0aW9ucyAoZS5nLiwgZmFsbG9jYXRlLCBzZXRhdHRyLCBwYWdlX21rd3JpdGUpIG9uIGZpbGVzIHdpdGggaW5saW5lIGRhdGEuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgc3RhdGUgaGFuZGxpbmcgZG9lc24ndCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMzoyMzo1Ni45Nzc0ODU1MDFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MzE1MjM4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQyZDY5ZmY0OGNiZWUzNWIzOWRhYmM2MDhmMWFjMWJjZWZiYjAxN2FcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMiAxMzoyMzo1NSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9leHQ0L2lubGluZS5jIGIvZnMvZXh0NC9pbmxpbmUuY1xcbmluZGV4IDgwNDVlNGZmMjcwYzdmLi44N2ZlZTExN2RjYzFmZCAxMDA2NDRcXG4tLS0gYS9mcy9leHQ0L2lubGluZS5jXFxuKysrIGIvZnMvZXh0NC9pbmxpbmUuY1xcbkBAIC0xOTU5LDIyICsxOTU5LDggQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbiBcXHRoYW5kbGVfdCAqaGFuZGxlO1xcbiBcXHRzdHJ1Y3QgZXh0NF9pbG9jIGlsb2M7XFxuIFxcbi1cXHRpZiAoIWV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSkge1xcbi1cXHRcXHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XFxuK1xcdGlmICghZXh0NF9oYXNfZmVhdHVyZV9pbmxpbmVfZGF0YShpbm9kZS1cXHUwMDNlaV9zYikpXFxuIFxcdFxcdHJldHVybiAwO1xcbi1cXHR9IGVsc2UgaWYgKCFleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSkge1xcbi1cXHRcXHQvKlxcbi1cXHRcXHQgKiBJbm9kZSBoYXMgaW5saW5lIGRhdGEgYnV0IEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBIGlzXFxuLVxcdFxcdCAqIGNsZWFyZWQuIFRoaXMgbWVhbnMgd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgbW92aW5nIG9mXFxuLVxcdFxcdCAqIGlubGluZSBkYXRhIHRvIGRlbGF5IGFsbG9jYXRlZCBibG9jay4gSnVzdCBmb3JjZSB3cml0ZW91dFxcbi1cXHRcXHQgKiBoZXJlIHRvIGZpbmlzaCBjb252ZXJzaW9uLlxcbi1cXHRcXHQgKi9cXG4tXFx0XFx0ZXJyb3IgPSBmaWxlbWFwX2ZsdXNoKGlub2RlLVxcdTAwM2VpX21hcHBpbmcpO1xcbi1cXHRcXHRpZiAoZXJyb3IpXFxuLVxcdFxcdFxcdHJldHVybiBlcnJvcjtcXG4tXFx0XFx0aWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXFxuLVxcdFxcdFxcdHJldHVybiAwO1xcbi1cXHR9XFxuIFxcbiBcXHRuZWVkZWRfYmxvY2tzID0gZXh0NF9jaHVua190cmFuc19leHRlbnQoaW5vZGUsIDEpO1xcbiBcXG5AQCAtMTk5MCw4ICsxOTc2LDIyIEBAIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSlcXG4gXFx0fVxcbiBcXG4gXFx0ZXh0NF93cml0ZV9sb2NrX3hhdHRyKGlub2RlLCBcXHUwMDI2bm9fZXhwYW5kKTtcXG4tXFx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSlcXG4rXFx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSBcXHUwMDI2XFx1MDAyNlxcbitcXHQgICAgZXh0NF90ZXN0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSkpXFxuIFxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlLCBcXHUwMDI2aWxvYyk7XFxuK1xcdC8qXFxuK1xcdCAqIElmIGhhc19pbmxpbmVfZGF0YSBpcyBzZXQgYnV0IE1BWV9JTkxJTkVfREFUQSBpcyBjbGVhciwgYVxcbitcXHQgKiBjb25jdXJyZW50IGV4dDRfZGFfY29udmVydF9pbmxpbmVfZGF0YV90b19leHRlbnQoKSBoYXMgYWxyZWFkeVxcbitcXHQgKiBjb3BpZWQgdGhlIGRhdGEgdG8gcGFnZSBjYWNoZSBhbmQgd2lsbCBmaW5pc2ggY29udmVyc2lvbiB2aWFcXG4rXFx0ICogd3JpdGViYWNrIC0tIHNraXAgY29udmVydF9ub2xvY2sgdG8gYXZvaWQgZGVzdHJveStyZXN0b3JlXFxuK1xcdCAqIHJlLXNldHRpbmcgTUFZX0lOTElORV9EQVRBIGJlaGluZCBpdHMgYmFjay5cXG4rXFx0ICpcXG4rXFx0ICogQ2xlYXIgTUFZX0lOTElORV9EQVRBIGlmIGlubGluZSBkYXRhIGlzIGdvbmUgKGNvbnZlcnQgc3VjY2VlZGVkXFxuK1xcdCAqIG9yIHdhcyBhbHJlYWR5IGNvbXBsZXRlZCkuICBEbyBub3QgY2xlYXIgaXQgaWYgY29udmVydCBmYWlsZWRcXG4rXFx0ICogYW5kIGlubGluZSBkYXRhIHdhcyByZXN0b3JlZC5cXG4rXFx0ICovXFxuK1xcdGlmICghZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKVxcbitcXHRcXHRleHQ0X2NsZWFyX2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSk7XFxuIFxcdGV4dDRfd3JpdGVfdW5sb2NrX3hhdHRyKGlub2RlLCBcXHUwMDI2bm9fZXhwYW5kKTtcXG4gXFx0ZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTtcXG4gb3V0X2ZyZWU6XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEzOjIzOjU3LjQ3MTMxNTgxNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjE4NTgwMTYyNTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiRVhUNF9GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgY29udmVydGluZyBpbmxpbmUgZGF0YSBpbiB0aGUgZXh0NCBmaWxlc3lzdGVtLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoKWAuIEl0IGNoYW5nZXMgaG93IHRoZSBgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEFgIHN0YXRlIGlzIGNoZWNrZWQgYW5kIGNsZWFyZWQsIGFuZCByZW1vdmVzIGEgZm9yY2VkIHdyaXRlb3V0IHZpYSBgZmlsZW1hcF9mbHVzaCgpYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgZXh0NCBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSB2YXJpb3VzIGZpbGUgb3BlcmF0aW9ucyAoZS5nLiwgZmFsbG9jYXRlLCBzZXRhdHRyLCBwYWdlX21rd3JpdGUpIG9uIGZpbGVzIHdpdGggaW5saW5lIGRhdGEuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgc3RhdGUgaGFuZGxpbmcgZG9lc24ndCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQyZDY5ZmY0OGNiZWUzNWIzOWRhYmM2MDhmMWFjMWJjZWZiYjAxN2FcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyIDEzOjIzOjU1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbmxpbmUuYyBiL2ZzL2V4dDQvaW5saW5lLmNcbmluZGV4IDgwNDVlNGZmMjcwYzdmLi44N2ZlZTExN2RjYzFmZCAxMDA2NDRcbi0tLSBhL2ZzL2V4dDQvaW5saW5lLmNcbisrKyBiL2ZzL2V4dDQvaW5saW5lLmNcbkBAIC0xOTU5LDIyICsxOTU5LDggQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuIFx0aGFuZGxlX3QgKmhhbmRsZTtcbiBcdHN0cnVjdCBleHQ0X2lsb2MgaWxvYztcbiBcbi1cdGlmICghZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKSB7XG4tXHRcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbitcdGlmICghZXh0NF9oYXNfZmVhdHVyZV9pbmxpbmVfZGF0YShpbm9kZS1cdTAwM2VpX3NiKSlcbiBcdFx0cmV0dXJuIDA7XG4tXHR9IGVsc2UgaWYgKCFleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSkge1xuLVx0XHQvKlxuLVx0XHQgKiBJbm9kZSBoYXMgaW5saW5lIGRhdGEgYnV0IEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBIGlzXG4tXHRcdCAqIGNsZWFyZWQuIFRoaXMgbWVhbnMgd2UgYXJlIGluIHRoZSBtaWRkbGUgb2YgbW92aW5nIG9mXG4tXHRcdCAqIGlubGluZSBkYXRhIHRvIGRlbGF5IGFsbG9jYXRlZCBibG9jay4gSnVzdCBmb3JjZSB3cml0ZW91dFxuLVx0XHQgKiBoZXJlIHRvIGZpbmlzaCBjb252ZXJzaW9uLlxuLVx0XHQgKi9cbi1cdFx0ZXJyb3IgPSBmaWxlbWFwX2ZsdXNoKGlub2RlLVx1MDAzZWlfbWFwcGluZyk7XG4tXHRcdGlmIChlcnJvcilcbi1cdFx0XHRyZXR1cm4gZXJyb3I7XG4tXHRcdGlmICghZXh0NF9oYXNfaW5saW5lX2RhdGEoaW5vZGUpKVxuLVx0XHRcdHJldHVybiAwO1xuLVx0fVxuIFxuIFx0bmVlZGVkX2Jsb2NrcyA9IGV4dDRfY2h1bmtfdHJhbnNfZXh0ZW50KGlub2RlLCAxKTtcbiBcbkBAIC0xOTkwLDggKzE5NzYsMjIgQEAgaW50IGV4dDRfY29udmVydF9pbmxpbmVfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuIFx0fVxuIFxuIFx0ZXh0NF93cml0ZV9sb2NrX3hhdHRyKGlub2RlLCBcdTAwMjZub19leHBhbmQpO1xuLVx0aWYgKGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKSlcbitcdGlmIChleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkgXHUwMDI2XHUwMDI2XG4rXHQgICAgZXh0NF90ZXN0X2lub2RlX3N0YXRlKGlub2RlLCBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQSkpXG4gXHRcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGlub2RlLCBcdTAwMjZpbG9jKTtcbitcdC8qXG4rXHQgKiBJZiBoYXNfaW5saW5lX2RhdGEgaXMgc2V0IGJ1dCBNQVlfSU5MSU5FX0RBVEEgaXMgY2xlYXIsIGFcbitcdCAqIGNvbmN1cnJlbnQgZXh0NF9kYV9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudCgpIGhhcyBhbHJlYWR5XG4rXHQgKiBjb3BpZWQgdGhlIGRhdGEgdG8gcGFnZSBjYWNoZSBhbmQgd2lsbCBmaW5pc2ggY29udmVyc2lvbiB2aWFcbitcdCAqIHdyaXRlYmFjayAtLSBza2lwIGNvbnZlcnRfbm9sb2NrIHRvIGF2b2lkIGRlc3Ryb3krcmVzdG9yZVxuK1x0ICogcmUtc2V0dGluZyBNQVlfSU5MSU5FX0RBVEEgYmVoaW5kIGl0cyBiYWNrLlxuK1x0ICpcbitcdCAqIENsZWFyIE1BWV9JTkxJTkVfREFUQSBpZiBpbmxpbmUgZGF0YSBpcyBnb25lIChjb252ZXJ0IHN1Y2NlZWRlZFxuK1x0ICogb3Igd2FzIGFscmVhZHkgY29tcGxldGVkKS4gIERvIG5vdCBjbGVhciBpdCBpZiBjb252ZXJ0IGZhaWxlZFxuK1x0ICogYW5kIGlubGluZSBkYXRhIHdhcyByZXN0b3JlZC5cbitcdCAqL1xuK1x0aWYgKCFleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkpXG4rXHRcdGV4dDRfY2xlYXJfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKTtcbiBcdGV4dDRfd3JpdGVfdW5sb2NrX3hhdHRyKGlub2RlLCBcdTAwMjZub19leHBhbmQpO1xuIFx0ZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTtcbiBvdXRfZnJlZTpcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEzOjIzOjU3LjQ3MTMxNzE3NFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU5MTI4ODQyNzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQ3JpdGljYWwgRXh0NCBJbmxpbmUgRGF0YSBDb252ZXJzaW9uIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0J3MgdHdlYWtpbmcgYGZzL2V4dDQvaW5saW5lLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBoZXJlIGlzIHRoZSByZXdvcmtpbmcgb2YgaG93IHRoZSBjb2RlIGhhbmRsZXMgdGhlIHRyYW5zaXRpb24gZnJvbSBpbmxpbmUgZGF0YSB0byBhIHJlZ3VsYXIgZXh0ZW50LWJhc2VkIHN0cnVjdHVyZSwgb3IgdmljZSB2ZXJzYS4gVGhleSdyZSB0b3VjaGluZyB0aGUgY29uZGl0aW9uYWwgbG9naWMgc3Vycm91bmRpbmcgYGV4dDRfaGFzX2lubGluZV9kYXRhKGlub2RlKWAgYW5kIGBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKWAuXG5cbldoYXQgdGhleSd2ZSBkb25lIGlzIHJlbW92ZSB0aGUgZWFybHkgZXhpdCBhbmQgdGhlIGBmaWxlbWFwX2ZsdXNoYCBjYWxsIHVuZGVyIHNwZWNpZmljIGNvbmRpdGlvbnMuIEluc3RlYWQsIHdlIHNlZSBhbiBlYXJseSBjaGVjayBmb3IgYGV4dDRfaGFzX2ZlYXR1cmVfaW5saW5lX2RhdGEoaW5vZGUtXHUwMDNlaV9zYilgLiBJbnNpZGUgdGhlIGxvY2ssIHdoaWNoIGlzIHRoZSBpbnRlcmVzdGluZyBwYXJ0LCB0aGUgcGF0Y2ggaW50cm9kdWNlcyBhIG1vcmUgZ3JhbnVsYXIgY2hlY2s6IHRoZXkgc3BlY2lmaWNhbGx5IGNoZWNrIGBleHQ0X2hhc19pbmxpbmVfZGF0YShpbm9kZSkgXHUwMDI2XHUwMDI2IGV4dDRfdGVzdF9pbm9kZV9zdGF0ZShpbm9kZSwgRVhUNF9TVEFURV9NQVlfSU5MSU5FX0RBVEEpYCAqYmVmb3JlKiBjYWxsaW5nIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrYC4gRnVydGhlcm1vcmUsIGBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQWAgZ2V0cyBjbGVhcmVkIGlmIHRoZSBpbmxpbmUgZGF0YSBmZWF0dXJlIGlzIG5vIGxvbmdlciBwcmVzZW50LlxuXG5UaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGRlZmluaXRlbHkuIEl0IGltcGFjdHMgaG93IGlubGluZSBkYXRhIGNvbnZlcnNpb24gYmVoYXZlcyB3aXRoaW4gZXh0NC4gVGhlIHBvdGVudGlhbCBmb3Igc3VidGxlIGludGVyYWN0aW9ucyBhbmQgZWRnZSBjYXNlcyBpcyB0aGVyZSwgdGhlcmVmb3JlLCB0aGlzIG5lZWRzIHRvIGJlIGZ1enplZCB0aG9yb3VnaGx5LiBUaGF0J3MgcGFyYW1vdW50LlxuXG5SaWdodCwgbGV0J3MgbWFrZSBzdXJlIG91ciBleHQ0IGNvbmZpZ3VyYXRpb25zIGFyZSBzb2xpZC4gVGhlIHByaW1hcnkgb25lIEknbSBjb25jZXJuZWQgd2l0aCBpcyBgQ09ORklHX0VYVDRfRlNgLCBuYXR1cmFsbHkuXG5cbk5vdywgbGV0IG1lIGdvIGFoZWFkIGFuZCBmaW5kIHRoZSBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBmdW5jdGlvbiBkaXJlY3RseSB3aXRoaW4gYGZzL2V4dDQvaW5saW5lLmNgIGFuZCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzgzLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzExLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTM6MjQ6MDMuMzg0MjA0MTIxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY1OTIyNDM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfY29udmVydF9pbmxpbmVfZGF0YVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2NyeXB0by5jPTEzMj1zdGF0aWMgaW50IGV4dDRfc2V0X2NvbnRleHQoc3RydWN0IGlub2RlICppbm9kZSwgY29uc3Qgdm9pZCAqY3R4LCBzaXplX3QgbGVuLFxcbi0tXFxuZnMvZXh0NC9jcnlwdG8uYy0xNTItXFxuZnMvZXh0NC9jcnlwdG8uYzoxNTM6XFx0cmVzID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2NyeXB0by5jLTE1NC1cXHRpZiAocmVzKVxcbi0tXFxuZnMvZXh0NC9leHQ0Lmg9Mzc4ND1leHRlcm4gaW50IGV4dDRfaW5saW5lX2RhdGFfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwgaW50ICpoYXNfaW5saW5lKTtcXG5mcy9leHQ0L2V4dDQuaC0zNzg1LVxcbmZzL2V4dDQvZXh0NC5oOjM3ODY6ZXh0ZXJuIGludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSk7XFxuZnMvZXh0NC9leHQ0LmgtMzc4Ny1cXG4tLVxcbmZzL2V4dDQvZXh0ZW50cy5jPTQ4NTQ9bG9uZyBleHQ0X2ZhbGxvY2F0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1vZGUsIGxvZmZfdCBvZmZzZXQsIGxvZmZfdCBsZW4pXFxuLS1cXG5mcy9leHQ0L2V4dGVudHMuYy00ODgzLVxcdGlub2RlX2xvY2soaW5vZGUpO1xcbmZzL2V4dDQvZXh0ZW50cy5jOjQ4ODQ6XFx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2V4dGVudHMuYy00ODg1LVxcdGlmIChyZXQpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTU0NT1pbnQgZXh0NF9yZWFkcGFnZV9pbmxpbmUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZvbGlvICpmb2xpbylcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNTcxLVxcbmZzL2V4dDQvaW5saW5lLmM6NTcyOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG5mcy9leHQ0L2lubGluZS5jLTU3My1cXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz02OTY9aW50IGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtNzI3LVxcdFxcdFxcdC8qIFJldHJ5IGluc2lkZSAqL1xcbmZzL2V4dDQvaW5saW5lLmM6NzI4OlxcdFxcdFxcdHJldHVybiBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfdG9fZXh0ZW50KG1hcHBpbmcsIGlub2RlKTtcXG5mcy9leHQ0L2lubGluZS5jLTcyOS1cXHRcXHR9XFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTc4Mz1pbnQgZXh0NF90cnlfdG9fd3JpdGVfaW5saW5lX2RhdGEoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTc4OC1cXHRpZiAocG9zICsgbGVuIFxcdTAwM2UgZXh0NF9nZXRfbWF4X2lubGluZV9zaXplKGlub2RlKSlcXG5mcy9leHQ0L2lubGluZS5jOjc4OTpcXHRcXHRyZXR1cm4gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX3RvX2V4dGVudChtYXBwaW5nLCBpbm9kZSk7XFxuZnMvZXh0NC9pbmxpbmUuYy03OTAtXFx0cmV0dXJuIGV4dDRfZ2VuZXJpY193cml0ZV9pbmxpbmVfZGF0YShtYXBwaW5nLCBpbm9kZSwgcG9zLCBsZW4sXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jPTEwNzM9c3RhdGljIHZvaWQgZXh0NF9yZXN0b3JlX2lubGluZV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTEwODktXFxuZnMvZXh0NC9pbmxpbmUuYzoxMDkwOnN0YXRpYyBpbnQgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGVfdCAqaGFuZGxlLFxcbmZzL2V4dDQvaW5saW5lLmMtMTA5MS1cXHRcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgaW5vZGUgKmlub2RlLFxcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYz0xMTg5PWludCBleHQ0X3RyeV9hZGRfaW5saW5lX2VudHJ5KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBleHQ0X2ZpbGVuYW1lICpmbmFtZSxcXG4tLVxcbmZzL2V4dDQvaW5saW5lLmMtMTI0MS1cXHQgKi9cXG5mcy9leHQ0L2lubGluZS5jOjEyNDI6XFx0cmV0ID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhX25vbG9jayhoYW5kbGUsIGRpciwgXFx1MDAyNmlsb2MpO1xcbmZzL2V4dDQvaW5saW5lLmMtMTI0My1cXG4tLVxcbmZzL2V4dDQvaW5saW5lLmM9MTg0ND1pbnQgZXh0NF9pbmxpbmVfZGF0YV90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgKmhhc19pbmxpbmUpXFxuLS1cXG5mcy9leHQ0L2lubGluZS5jLTE5NTUtXFxuZnMvZXh0NC9pbmxpbmUuYzoxOTU2OmludCBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoc3RydWN0IGlub2RlICppbm9kZSlcXG5mcy9leHQ0L2lubGluZS5jLTE5NTcte1xcbi0tXFxuZnMvZXh0NC9pbmxpbmUuYy0xOTgwLVxcdCAgICBleHQ0X3Rlc3RfaW5vZGVfc3RhdGUoaW5vZGUsIEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBKSlcXG5mcy9leHQ0L2lubGluZS5jOjE5ODE6XFx0XFx0ZXJyb3IgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFfbm9sb2NrKGhhbmRsZSwgaW5vZGUsIFxcdTAwMjZpbG9jKTtcXG5mcy9leHQ0L2lubGluZS5jLTE5ODItXFx0LypcXG4tLVxcbmZzL2V4dDQvaW5vZGUuYz01OTM0PWludCBleHQ0X3NldGF0dHIoc3RydWN0IG1udF9pZG1hcCAqaWRtYXAsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSxcXG4tLVxcbmZzL2V4dDQvaW5vZGUuYy02MDMxLVxcdFxcdCAgICBhdHRyLVxcdTAwM2VpYV9zaXplIFxcdTAwM2UgRVhUNF9JKGlub2RlKS1cXHUwMDNlaV9pbmxpbmVfc2l6ZSkge1xcbmZzL2V4dDQvaW5vZGUuYzo2MDMyOlxcdFxcdFxcdGVycm9yID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2lub2RlLmMtNjAzMy1cXHRcXHRcXHRpZiAoZXJyb3IpXFxuLS1cXG5mcy9leHQ0L2lub2RlLmM9Njc4Nz12bV9mYXVsdF90IGV4dDRfcGFnZV9ta3dyaXRlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKVxcbi0tXFxuZnMvZXh0NC9pbm9kZS5jLTY4MDgtXFxuZnMvZXh0NC9pbm9kZS5jOjY4MDk6XFx0ZXJyID0gZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKGlub2RlKTtcXG5mcy9leHQ0L2lub2RlLmMtNjgxMC1cXHRpZiAoZXJyKVxcbi0tXFxuZnMvZXh0NC92ZXJpdHkuYz0xMDI9c3RhdGljIGludCBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHkoc3RydWN0IGZpbGUgKmZpbHApXFxuLS1cXG5mcy9leHQ0L3Zlcml0eS5jLTEyOC1cXG5mcy9leHQ0L3Zlcml0eS5jOjEyOTpcXHRlcnIgPSBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGEoaW5vZGUpO1xcbmZzL2V4dDQvdmVyaXR5LmMtMTMwLVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEzOjI0OjAzLjQ1MDEzMzI1OVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1ODY4MTc0MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTY29wZSBvZiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGFuZCB3aGVyZSBpdCdzIGNhbGxlZC4gVGhlIGNvZGUgc2hvd3MgaXQgZ2V0cyBpbnZva2VkIGZyb20gYGV4dDRfc2V0X2NvbnRleHRgICh3aGljaCBpcyBjcnlwdG8tcmVsYXRlZCwgaW50ZXJlc3RpbmcpLCBgZXh0NF9mYWxsb2NhdGVgLCBgZXh0NF9zZXRhdHRyYCwgYGV4dDRfcGFnZV9ta3dyaXRlYCwgYW5kIGBleHQ0X2JlZ2luX2VuYWJsZV92ZXJpdHlgLiBUaGlzIGlzIGNsZWFybHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgaW1wYWN0aW5nIHNldmVyYWwga2V5IG9wZXJhdGlvbnMuXG5cblRoZSBpbXBsaWNhdGlvbiBoZXJlIGlzIHRoYXQgd2UgbmVlZCB0byBlbmFibGUgYEVYVDRfRlNgLiBUaGF0IG1ha2VzIHNlbnNlIGFzIGEgYmFzZSByZXF1aXJlbWVudC4gTXkgcHJpbWFyeSBmb2N1cyBpcyBvbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpdHNlbGYuXG5cbk5vdywgYmVmb3JlIEkgc2lnbiBvZmYgb24gdGhpcywgbGV0J3MganVzdCBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHdlIHNob3VsZCBiZSBhd2FyZSBvZi4gRG91YmxlLWNoZWNraW5nLi4uIE5vcGUsIGBFWFQ0X0ZTYCBzZWVtcyB0byBjb3ZlciBpdC5cblxuSG9sZCBvbi4uLiBJcyB0aGVyZSBhICpzcGVjaWZpYyogY29uZmlnIGZvciBpbmxpbmUgZGF0YSBoYW5kbGluZyB3aXRoaW4gZXh0ND8gSSdsbCBxdWlja2x5IGNoZWNrIHRoZSBgZnMvZXh0NC9LY29uZmlnYCBmaWxlIHRvIGNvbmZpcm0uIE5lZWQgdG8gYmUgdGhvcm91Z2ggaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU4MywiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wMlQxMzoyNDoxMi4wMzY5NTM2NzFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc2MzUyMDcsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImlubGluZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAyVDEzOjI0OjEyLjA5NDU5ODA2OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcxMTk0MzMwNjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIGV4dDQgSW5saW5lIERhdGEgQ29udmVyc2lvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoZXJlIGlzbid0IGEgZGVkaWNhdGVkIGNvbmZpZyBzcGVjaWZpY2FsbHkgZm9yIGlubGluZSBkYXRhOyBpdCdzIG1hbmFnZWQgdmlhIGEgZmVhdHVyZSBmbGFnIHdpdGhpbiBleHQ0LiBUaGF0IHNpbXBsaWZpZXMgdGhpbmdzOyBgRVhUNF9GU2Agc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGVuYWJsaW5nIHRoZSByZWxldmFudCBjb2RlLlxuXG5Ob3csIGxldCdzIGRpZyBpbnRvIHRoZSBjb2RlIGl0c2VsZi4gVGhlIHBhdGNoIGlzIGNlbnRlcmVkIGFyb3VuZCBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpbiBgZnMvZXh0NC9pbmxpbmUuY2AuIEkgbmVlZCB0byB2ZXJpZnkgd2hldGhlciBhbnkgb3RoZXIgZnVuY3Rpb25zIGFyZSBhbHNvIG1vZGlmaWVkLCBvciBpZiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYCBpcyB0aGUgc29sZSBwb2ludCBvZiBpbnRlcmVzdC4gQSBxdWljayBjaGVjayByZXZlYWxzIHRoYXQgYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YV9ub2xvY2tgIGlzICpjYWxsZWQqIGJ5IHRoZSBtYWluIGZ1bmN0aW9uIGJ1dCBub3QgZGlyZWN0bHkgbW9kaWZpZWQuIFRodXMsIGBleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFgIGlzIGRlZmluaXRlbHkgdGhlIGtleSBzeW1ib2wgaGVyZS5cblxuQWxyaWdodCwgdGltZSB0byBzeW50aGVzaXplIG15IHJlYXNvbmluZy4gVGhlIHBhdGNoIGlzIGZ1bmRhbWVudGFsbHkgYWx0ZXJpbmcgdGhlIG1lY2hhbmlzbSBieSB3aGljaCBpbmxpbmUgZGF0YSBpcyBjb252ZXJ0ZWQgd2l0aGluIGV4dDQuIFNwZWNpZmljYWxseSwgdGhlIHBhdGNoIGNoYW5nZXMgdGhlIHdheSB0aGUgYEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBYCBzdGF0ZSBpcyBjaGVja2VkIGFuZCBjbGVhcmVkLCBhbmQgdGhleSByZW1vdmVkIHRoZSBleHBsaWNpdCBgZmlsZW1hcF9mbHVzaCgpYCBjYWxsLiBUaGlzIGNvcmUgZXh0NCBsb2dpYyBpcyB2dWxuZXJhYmxlIHRvIGNhbGxzIGZyb20gc2V2ZXJhbCBmaWxlIG9wZXJhdGlvbnMuIEVzc2VudGlhbGx5LCBpdCBjaGFuZ2VzIHRoZSBpbnRlcm5hbCBiZWhhdmlvciBvZiBzZXZlcmFsIGZpbGUgb3BlcmF0aW9ucyAoZS5nLiwgZmFsbG9jYXRlLCBzZXRhdHRyLCBwYWdlX21rd3JpdGUpIG9uIGZpbGVzIHRoYXQgaGF2ZSBpbmxpbmUgZGF0YS4gVGhlIHN0YXRlIG1hY2hpbmUgY2hhbmdlcyBuZWNlc3NpdGF0ZSBmdXp6aW5nLiBJdCdzIGNydWNpYWwgdG8gc3RyZXNzLXRlc3QgdGhpcyBuZXcgc3RhdGUgaGFuZGxpbmcgdG8gaWRlbnRpZnkgcG90ZW50aWFsIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucyB0aGF0IG1pZ2h0IGFyaXNlIGZyb20gdGhlc2UgbW9kaWZpY2F0aW9ucy5cblxuSW4gc3VtbWFyeTpcblxuKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgRVhUNF9GU2BcbiogICAqKkZvY3VzU3ltYm9sczoqKiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhYFxuKiAgICoqV29ydGhGdXp6aW5nOioqIEFic29sdXRlbHksIHllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTAzMywiT3V0cHV0VG9rZW5zIjoxNzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDJUMTM6MjQ6MTkuMjE0MDM0NTQyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTUyODk5NzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVYVDRfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJleHQ0X2NvbnZlcnRfaW5saW5lX2RhdGFcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGNvbnZlcnRpbmcgaW5saW5lIGRhdGEgaW4gdGhlIGV4dDQgZmlsZXN5c3RlbSwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhKClgLiBJdCBjaGFuZ2VzIGhvdyB0aGUgYEVYVDRfU1RBVEVfTUFZX0lOTElORV9EQVRBYCBzdGF0ZSBpcyBjaGVja2VkIGFuZCBjbGVhcmVkLCBhbmQgcmVtb3ZlcyBhIGZvcmNlZCB3cml0ZW91dCB2aWEgYGZpbGVtYXBfZmx1c2goKWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGV4dDQgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgdmFyaW91cyBmaWxlIG9wZXJhdGlvbnMgKGUuZy4sIGZhbGxvY2F0ZSwgc2V0YXR0ciwgcGFnZV9ta3dyaXRlKSBvbiBmaWxlcyB3aXRoIGlubGluZSBkYXRhLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IHN0YXRlIGhhbmRsaW5nIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9jb252ZXJ0X2lubGluZV9kYXRhXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBjb252ZXJ0aW5nIGlubGluZSBkYXRhIGluIHRoZSBleHQ0IGZpbGVzeXN0ZW0sIHNwZWNpZmljYWxseSB3aXRoaW4gYGV4dDRfY29udmVydF9pbmxpbmVfZGF0YSgpYC4gSXQgY2hhbmdlcyBob3cgdGhlIGBFWFQ0X1NUQVRFX01BWV9JTkxJTkVfREFUQWAgc3RhdGUgaXMgY2hlY2tlZCBhbmQgY2xlYXJlZCwgYW5kIHJlbW92ZXMgYSBmb3JjZWQgd3JpdGVvdXQgdmlhIGBmaWxlbWFwX2ZsdXNoKClgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBleHQ0IGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIHZhcmlvdXMgZmlsZSBvcGVyYXRpb25zIChlLmcuLCBmYWxsb2NhdGUsIHNldGF0dHIsIHBhZ2VfbWt3cml0ZSkgb24gZmlsZXMgd2l0aCBpbmxpbmUgZGF0YS4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBzdGF0ZSBoYW5kbGluZyBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowkmczw[1] Phase: Succeeded StartedAt: 2026-07-02 13:27:25 +0000 UTC FinishedAt: 2026-07-02 13:27:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-02 13:27:25 +0000 UTC FinishedAt: 2026-07-02 13:27:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2] Phase: Succeeded StartedAt: 2026-07-02 13:27:25 +0000 UTC FinishedAt: 2026-07-02 17:41:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-02 13:27:26 +0000 UTC FinishedAt: 2026-07-02 17:41:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-02 13:27:26 +0000 UTC FinishedAt: 2026-07-02 13:28:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-02 13:27:26 +0000 UTC FinishedAt: 2026-07-02 13:27:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowkmczw/series-workflowkmczw-convert-artifact-3597212801/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-02 13:28:10 +0000 UTC FinishedAt: 2026-07-02 13:57:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-02 13:28:10 +0000 UTC FinishedAt: 2026-07-02 13:57:47 +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:*a83083f5-849e-4b9a-9895-e088963f0e7d,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-workflowkmczw/series-workflowkmczw-convert-artifact-3597212801/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": "686588da-c177-4ba9-9ecd-359b01ff3bef", "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-workflowkmczw/series-workflowkmczw-build-action-1287682479/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-02 13:28:11 +0000 UTC FinishedAt: 2026-07-02 13:57:37 +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:*a83083f5-849e-4b9a-9895-e088963f0e7d,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-workflowkmczw/series-workflowkmczw-convert-artifact-3597212801/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": "686588da-c177-4ba9-9ecd-359b01ff3bef", "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-workflowkmczw/series-workflowkmczw-build-action-1287682479/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-02 13:57:47 +0000 UTC FinishedAt: 2026-07-02 13:57:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-02 13:57:47 +0000 UTC FinishedAt: 2026-07-02 13:57:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-02 13:57:47 +0000 UTC FinishedAt: 2026-07-02 13:57:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-02 13:57:47 +0000 UTC FinishedAt: 2026-07-02 13:57:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowkmczw/series-workflowkmczw-convert-artifact-3410625364/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-02 13:57:57 +0000 UTC FinishedAt: 2026-07-02 14:00:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-02 13:57:57 +0000 UTC FinishedAt: 2026-07-02 14:00:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*686588da-c177-4ba9-9ecd-359b01ff3bef,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-workflowkmczw/series-workflowkmczw-build-action-1287682479/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-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-02 14:00:30 +0000 UTC FinishedAt: 2026-07-02 14:00:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-02 14:00:31 +0000 UTC FinishedAt: 2026-07-02 14:00:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-02 14:00:32 +0000 UTC FinishedAt: 2026-07-02 14:36:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-02 14:00:32 +0000 UTC FinishedAt: 2026-07-02 14:36:28 +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:*a83083f5-849e-4b9a-9895-e088963f0e7d,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-workflowkmczw/series-workflowkmczw-convert-artifact-3410625364/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": "a1ea9cc6-6c62-4614-9fdb-8f1522dbbe3d", "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-workflowkmczw/series-workflowkmczw-build-action-3034740512/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-02 14:00:32 +0000 UTC FinishedAt: 2026-07-02 14:36:18 +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:*a83083f5-849e-4b9a-9895-e088963f0e7d,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-workflowkmczw/series-workflowkmczw-convert-artifact-3410625364/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": "a1ea9cc6-6c62-4614-9fdb-8f1522dbbe3d", "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-workflowkmczw/series-workflowkmczw-build-action-3034740512/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-02 14:36:28 +0000 UTC FinishedAt: 2026-07-02 14:36:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-02 14:36:28 +0000 UTC FinishedAt: 2026-07-02 14:36:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-02 14:36:28 +0000 UTC FinishedAt: 2026-07-02 14:38:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-02 14:36:28 +0000 UTC FinishedAt: 2026-07-02 14:38:37 +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:*a1ea9cc6-6c62-4614-9fdb-8f1522dbbe3d,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-workflowkmczw/series-workflowkmczw-build-action-3034740512/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-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-02 14:38:47 +0000 UTC FinishedAt: 2026-07-02 17:41:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-02 14:38:47 +0000 UTC FinishedAt: 2026-07-02 17:41:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"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:*686588da-c177-4ba9-9ecd-359b01ff3bef,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a1ea9cc6-6c62-4614-9fdb-8f1522dbbe3d,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-workflowkmczw/series-workflowkmczw-build-action-1287682479/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-workflowkmczw/series-workflowkmczw-build-action-3034740512/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-02 14:38:47 +0000 UTC FinishedAt: 2026-07-02 14:39:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-02 14:38:47 +0000 UTC FinishedAt: 2026-07-02 14:39:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"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-workflowkmczw/series-workflowkmczw-convert-artifact-3016766077/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-02 14:38:47 +0000 UTC FinishedAt: 2026-07-02 14:38:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-02 14:38:47 +0000 UTC FinishedAt: 2026-07-02 14:38:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-02 14:38:47 +0000 UTC FinishedAt: 2026-07-02 14:38:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-02 14:39:44 +0000 UTC FinishedAt: 2026-07-02 17:41:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkmczw[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_convert_inline_data"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"d5b7fbee-d494-48c8-88fc-19f476a02a61","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-02 14:39:44 +0000 UTC FinishedAt: 2026-07-02 17:41:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*686588da-c177-4ba9-9ecd-359b01ff3bef,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a1ea9cc6-6c62-4614-9fdb-8f1522dbbe3d,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-workflowkmczw/series-workflowkmczw-build-action-1287682479/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-workflowkmczw/series-workflowkmczw-build-action-3034740512/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-workflowkmczw/series-workflowkmczw-convert-artifact-3016766077/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,}