Name: series-workflowd48dd Phase: Succeeded StartedAt: 2026-07-03 05:32:14 +0000 UTC FinishedAt: 2026-07-03 10:01:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[0] Phase: Succeeded StartedAt: 2026-07-03 05:32:14 +0000 UTC FinishedAt: 2026-07-03 05:51:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[0].run-triage Phase: Succeeded StartedAt: 2026-07-03 05:32:14 +0000 UTC FinishedAt: 2026-07-03 05:51:27 +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": [ "HFS_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": [ "HFS_FS" ], "series_id": "78b17e4d-8f65-4419-a039-dc6dbfea0d6c" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "hfs_btree_open", "hfs_bmap_test_bit" ], "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+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0hGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2hmc19idHJlZV9vcGVuJiMzNDssCiAgICAmIzM0O2hmc19ibWFwX3Rlc3RfYml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSEZTIGJ0cmVlIG1hcCByZWNvcmRzIGR1cmluZyBtb3VudC4gSXQgaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBgaGZzX2JtYXBfdGVzdF9iaXRgIGFuZCBtb2RpZmllcyBgaGZzX2J0cmVlX29wZW5gLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgYnkgbW91bnRpbmcgYSBjcmFmdGVkIEhGUyBmaWxlc3lzdGVtIGltYWdlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjUwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDhjYjZkNDkzZWRhZTkwOWE1ZWVmYTQ0Yjc3ZmU0YTgxYjRkYjdkMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMgMDU6NTA6MTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmMgYi9mcy9oZnMvYnRyZWUuY1xuaW5kZXggMmViMzdhMmY2NGU4NjYuLjM2ZGM4NzM1ZDAxYTNjIDEwMDY0NFxuLS0tIGEvZnMvaGZzL2J0cmVlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9idHJlZS5jXG5AQCAtMjMsNiAmIzQzOzIzLDcgQEAgc3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2VcbiBcdHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nO1xuIFx0c3RydWN0IGZvbGlvICpmb2xpbztcbiBcdHN0cnVjdCBidWZmZXJfaGVhZCAqYmg7XG4mIzQzO1x0c3RydWN0IGhmc19ibm9kZSAqbm9kZTtcbiBcdHVuc2lnbmVkIGludCBzaXplO1xuIFx0dTE2IGRibG9jaztcbiBcdHNlY3Rvcl90IHN0YXJ0X2Jsb2NrO1xuQEAgLTE1NSw2ICYjNDM7MTU2LDIwIEBAIHN0cnVjdCBoZnNfYnRyZWUgKmhmc19idHJlZV9vcGVuKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpZCwgYnRyZWVfa2V5Y21wIGtlXG4gXHRrdW5tYXBfbG9jYWwoaGVhZCk7XG4gXHRmb2xpb191bmxvY2soZm9saW8pO1xuIFx0Zm9saW9fcHV0KGZvbGlvKTtcbiYjNDM7XG4mIzQzO1x0bm9kZSA9IGhmc19ibm9kZV9maW5kKHRyZWUsIDApO1xuJiM0MztcdGlmIChJU19FUlIobm9kZSkpXG4mIzQzO1x0XHRnb3RvIGZyZWVfaW5vZGU7XG4mIzQzO1xuJiM0MztcdGlmICghaGZzX2JtYXBfdGVzdF9iaXQobm9kZSwgMCkpIHtcbiYjNDM7XHRcdHByX3dhcm4oXCYjMzQ7KCVzKTogJXMgKGNuaWQgMHgleCkgbWFwIHJlY29yZCBpbnZhbGlkIG9yIGJpdG1hcCBjb3JydXB0aW9uIGRldGVjdGVkLCBmb3JjaW5nIHJlYWQtb25seS5cXG5cJiMzNDssXG4mIzQzO1x0XHRcdHNiLVx1MDAzZXNfaWQsIGlkID09IEhGU19FWFRfQ05JRCA/IFwmIzM0O2V4dGVudHNcJiMzNDsgOiBcJiMzNDtjYXRhbG9nXCYjMzQ7LCBpZCk7XG4mIzQzO1x0XHRwcl93YXJuKFwmIzM0O1J1biBmc2NrLmhmcyB0byByZXBhaXIuXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdHNiLVx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aGZzX2Jub2RlX3B1dChub2RlKTtcbiYjNDM7XG4gXHRyZXR1cm4gdHJlZTtcbiBcbiBmYWlsX2ZvbGlvOlxuQEAgLTM1Niw2ICYjNDM7MzcxLDg3IEBAIHN0cnVjdCBoZnNfYm5vZGUgKmhmc19ibWFwX2FsbG9jKHN0cnVjdCBoZnNfYnRyZWUgKnRyZWUpXG4gXHR9XG4gfVxuIFxuJiM0MztzdHJ1Y3QgaGZzX2JtYXBfY3R4IHtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgcGFnZV9pZHg7XG4mIzQzO1x0dW5zaWduZWQgaW50IG9mZjtcbiYjNDM7XHR1MTYgbGVuO1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7I2RlZmluZSBIRlNfQlRSRUVfSERSX01BUF9SRUNfSU5ERVhcdDJcbiYjNDM7I2RlZmluZSBIRlNfQlRSRUVfTUFQX05PREVfUkVDX0lOREVYXHQwXG4mIzQzO1xuJiM0MztzdGF0aWMgaW5saW5lIGJvb2wgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gb2ZmIFx1MDAzYyBub2RlLVx1MDAzZXRyZWUtXHUwMDNlbm9kZV9zaXplO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgaW5saW5lIHUzMiBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYsIHUzMiBsZW4pXG4mIzQzO3tcbiYjNDM7XHRpZiAob2ZmIFx1MDAzZT0gbm9kZS1cdTAwM2V0cmVlLVx1MDAzZW5vZGVfc2l6ZSlcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdGlmICgodTY0KW9mZiAmIzQzOyBsZW4gXHUwMDNlIG5vZGUtXHUwMDNldHJlZS1cdTAwM2Vub2RlX3NpemUpXG4mIzQzO1x0XHRyZXR1cm4gbm9kZS1cdTAwM2V0cmVlLVx1MDAzZW5vZGVfc2l6ZSAtIG9mZjtcbiYjNDM7XHRyZXR1cm4gbGVuO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgc3RydWN0IHBhZ2UgKmhmc19ibWFwX2dldF9tYXBfcGFnZShzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLFxuJiM0MztcdFx0XHRcdFx0ICBzdHJ1Y3QgaGZzX2JtYXBfY3R4ICpjdHgsXG4mIzQzO1x0XHRcdFx0XHQgIHUzMiBieXRlX29mZnNldClcbiYjNDM7e1xuJiM0MztcdHUxNiByZWNfaWR4LCBvZmYxNjtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgcGFnZV9vZmY7XG4mIzQzO1xuJiM0MztcdGlmIChub2RlLVx1MDAzZXRoaXMgPT0gMCkge1xuJiM0MztcdFx0aWYgKG5vZGUtXHUwMDNldHlwZSAhPSBIRlNfTk9ERV9IRUFERVIpIHtcbiYjNDM7XHRcdFx0cHJfZXJyKFwmIzM0O2hmczogaW52YWxpZCBidHJlZSBoZWFkZXIgbm9kZVxcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xuJiM0MztcdFx0fVxuJiM0MztcdFx0cmVjX2lkeCA9IEhGU19CVFJFRV9IRFJfTUFQX1JFQ19JTkRFWDtcbiYjNDM7XHR9IGVsc2Uge1xuJiM0MztcdFx0aWYgKG5vZGUtXHUwMDNldHlwZSAhPSBIRlNfTk9ERV9NQVApIHtcbiYjNDM7XHRcdFx0cHJfZXJyKFwmIzM0O2hmczogaW52YWxpZCBidHJlZSBtYXAgbm9kZVxcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xuJiM0MztcdFx0fVxuJiM0MztcdFx0cmVjX2lkeCA9IEhGU19CVFJFRV9NQVBfTk9ERV9SRUNfSU5ERVg7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRjdHgtXHUwMDNlbGVuID0gaGZzX2JyZWNfbGVub2ZmKG5vZGUsIHJlY19pZHgsIFx1MDAyNm9mZjE2KTtcbiYjNDM7XHRpZiAoIWN0eC1cdTAwM2VsZW4pXG4mIzQzO1x0XHRyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTtcbiYjNDM7XG4mIzQzO1x0aWYgKCFpc19ibm9kZV9vZmZzZXRfdmFsaWQobm9kZSwgb2ZmMTYpKVxuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTyk7XG4mIzQzO1xuJiM0MztcdGN0eC1cdTAwM2VsZW4gPSBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKG5vZGUsIG9mZjE2LCBjdHgtXHUwMDNlbGVuKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGJ5dGVfb2Zmc2V0IFx1MDAzZT0gY3R4LVx1MDAzZWxlbilcbiYjNDM7XHRcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xuJiM0MztcbiYjNDM7XHRwYWdlX29mZiA9ICh1MzIpb2ZmMTYgJiM0Mzsgbm9kZS1cdTAwM2VwYWdlX29mZnNldCAmIzQzOyBieXRlX29mZnNldDtcbiYjNDM7XHRjdHgtXHUwMDNlcGFnZV9pZHggPSBwYWdlX29mZiBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVDtcbiYjNDM7XHRjdHgtXHUwMDNlb2ZmID0gcGFnZV9vZmYgXHUwMDI2IH5QQUdFX01BU0s7XG4mIzQzO1xuJiM0MztcdHJldHVybiBub2RlLVx1MDAzZXBhZ2VbY3R4LVx1MDAzZXBhZ2VfaWR4XTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7Ym9vbCBoZnNfYm1hcF90ZXN0X2JpdChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB1MzIgbm9kZV9iaXRfaWR4KVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGhmc19ibWFwX2N0eCBjdHg7XG4mIzQzO1x0c3RydWN0IHBhZ2UgKnBhZ2U7XG4mIzQzO1x0dTggKmJtYXAsIGJ5dGUsIG1hc2s7XG4mIzQzO1xuJiM0MztcdHBhZ2UgPSBoZnNfYm1hcF9nZXRfbWFwX3BhZ2Uobm9kZSwgXHUwMDI2Y3R4LCBub2RlX2JpdF9pZHggLyBCSVRTX1BFUl9CWVRFKTtcbiYjNDM7XHRpZiAoSVNfRVJSKHBhZ2UpKVxuJiM0MztcdFx0cmV0dXJuIGZhbHNlO1xuJiM0MztcbiYjNDM7XHRibWFwID0ga21hcF9sb2NhbF9wYWdlKHBhZ2UpO1xuJiM0MztcdGJ5dGUgPSBibWFwW2N0eC5vZmZdO1xuJiM0MztcdGt1bm1hcF9sb2NhbChibWFwKTtcbiYjNDM7XG4mIzQzO1x0bWFzayA9IDEgXHUwMDNjXHUwMDNjICg3IC0gKG5vZGVfYml0X2lkeCAlIEJJVFNfUEVSX0JZVEUpKTtcbiYjNDM7XHRyZXR1cm4gKGJ5dGUgXHUwMDI2IG1hc2spICE9IDA7XG4mIzQzO31cbiYjNDM7XG4gdm9pZCBoZnNfYm1hcF9mcmVlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUpXG4ge1xuIFx0c3RydWN0IGhmc19idHJlZSAqdHJlZTtcbmRpZmYgLS1naXQgYS9mcy9oZnMvYnRyZWUuaCBiL2ZzL2hmcy9idHJlZS5oXG5pbmRleCA5OWJlODU4YjI0NDY1MC4uODYwMzZlMTgwOTVmNGUgMTAwNjQ0XG4tLS0gYS9mcy9oZnMvYnRyZWUuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZnMvaGZzL2J0cmVlLmhcbkBAIC05Myw2ICYjNDM7OTMsOCBAQCBleHRlcm4gdm9pZCBoZnNfYnRyZWVfd3JpdGUoc3RydWN0IGhmc19idHJlZSAqdHJlZSk7XG4gZXh0ZXJuIGludCBoZnNfYm1hcF9yZXNlcnZlKHN0cnVjdCBoZnNfYnRyZWUgKnRyZWUsIHUzMiByc3ZkX25vZGVzKTtcbiBleHRlcm4gc3RydWN0IGhmc19ibm9kZSAqaGZzX2JtYXBfYWxsb2Moc3RydWN0IGhmc19idHJlZSAqdHJlZSk7XG4gZXh0ZXJuIHZvaWQgaGZzX2JtYXBfZnJlZShzdHJ1Y3QgaGZzX2Jub2RlICpub2RlKTtcbiYjNDM7c3RydWN0IGhmc19ibWFwX2N0eDtcbiYjNDM7ZXh0ZXJuIGJvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeCk7XG4gXG4gLyogYm5vZGUuYyAqL1xuIGV4dGVybiB2b2lkIGhmc19ibm9kZV9yZWFkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHZvaWQgKmJ1ZiwgdTMyIG9mZiwgdTMyIGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aGZzX2J0cmVlX29wZW4mIzM0OywKICAgICYjMzQ7aGZzX2JtYXBfdGVzdF9iaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGxvZ2ljIGZvciBIRlMgYnRyZWUgbWFwIHJlY29yZHMgZHVyaW5nIG1vdW50LiBJdCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBoZnNfYm1hcF90ZXN0X2JpdGAgYW5kIG1vZGlmaWVzIGBoZnNfYnRyZWVfb3BlbmAuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb2RlIHJlYWNoYWJsZSBieSBtb3VudGluZyBhIGNyYWZ0ZWQgSEZTIGZpbGVzeXN0ZW0gaW1hZ2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDQ4Y2I2ZDQ5M2VkYWU5MDlhNWVlZmE0NGI3N2ZlNGE4MWI0ZGI3ZDAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzIDA1OjUwOjE4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmMgYi9mcy9oZnMvYnRyZWUuYwppbmRleCAyZWIzN2EyZjY0ZTg2Ni4uMzZkYzg3MzVkMDFhM2MgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9idHJlZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9idHJlZS5jCkBAIC0yMyw2ICYjNDM7MjMsNyBAQCBzdHJ1Y3QgaGZzX2J0cmVlICpoZnNfYnRyZWVfb3BlbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1MzIgaWQsIGJ0cmVlX2tleWNtcCBrZQogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOwogCXN0cnVjdCBmb2xpbyAqZm9saW87CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKJiM0MzsJc3RydWN0IGhmc19ibm9kZSAqbm9kZTsKIAl1bnNpZ25lZCBpbnQgc2l6ZTsKIAl1MTYgZGJsb2NrOwogCXNlY3Rvcl90IHN0YXJ0X2Jsb2NrOwpAQCAtMTU1LDYgJiM0MzsxNTYsMjAgQEAgc3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2UKIAlrdW5tYXBfbG9jYWwoaGVhZCk7CiAJZm9saW9fdW5sb2NrKGZvbGlvKTsKIAlmb2xpb19wdXQoZm9saW8pOwomIzQzOwomIzQzOwlub2RlID0gaGZzX2Jub2RlX2ZpbmQodHJlZSwgMCk7CiYjNDM7CWlmIChJU19FUlIobm9kZSkpCiYjNDM7CQlnb3RvIGZyZWVfaW5vZGU7CiYjNDM7CiYjNDM7CWlmICghaGZzX2JtYXBfdGVzdF9iaXQobm9kZSwgMCkpIHsKJiM0MzsJCXByX3dhcm4oJiMzNDsoJXMpOiAlcyAoY25pZCAweCV4KSBtYXAgcmVjb3JkIGludmFsaWQgb3IgYml0bWFwIGNvcnJ1cHRpb24gZGV0ZWN0ZWQsIGZvcmNpbmcgcmVhZC1vbmx5LlxuJiMzNDssCiYjNDM7CQkJc2ItJmd0O3NfaWQsIGlkID09IEhGU19FWFRfQ05JRCA/ICYjMzQ7ZXh0ZW50cyYjMzQ7IDogJiMzNDtjYXRhbG9nJiMzNDssIGlkKTsKJiM0MzsJCXByX3dhcm4oJiMzNDtSdW4gZnNjay5oZnMgdG8gcmVwYWlyLlxuJiMzNDspOwomIzQzOwkJc2ItJmd0O3NfZmxhZ3MgfD0gU0JfUkRPTkxZOwomIzQzOwl9CiYjNDM7CiYjNDM7CWhmc19ibm9kZV9wdXQobm9kZSk7CiYjNDM7CiAJcmV0dXJuIHRyZWU7CiAKIGZhaWxfZm9saW86CkBAIC0zNTYsNiAmIzQzOzM3MSw4NyBAQCBzdHJ1Y3QgaGZzX2Jub2RlICpoZnNfYm1hcF9hbGxvYyhzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKQogCX0KIH0KIAomIzQzO3N0cnVjdCBoZnNfYm1hcF9jdHggewomIzQzOwl1bnNpZ25lZCBpbnQgcGFnZV9pZHg7CiYjNDM7CXVuc2lnbmVkIGludCBvZmY7CiYjNDM7CXUxNiBsZW47CiYjNDM7fTsKJiM0MzsKJiM0MzsjZGVmaW5lIEhGU19CVFJFRV9IRFJfTUFQX1JFQ19JTkRFWAkyCiYjNDM7I2RlZmluZSBIRlNfQlRSRUVfTUFQX05PREVfUkVDX0lOREVYCTAKJiM0MzsKJiM0MztzdGF0aWMgaW5saW5lIGJvb2wgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYpCiYjNDM7ewomIzQzOwlyZXR1cm4gb2ZmICZsdDsgbm9kZS0mZ3Q7dHJlZS0mZ3Q7bm9kZV9zaXplOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgaW5saW5lIHUzMiBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYsIHUzMiBsZW4pCiYjNDM7ewomIzQzOwlpZiAob2ZmICZndDs9IG5vZGUtJmd0O3RyZWUtJmd0O25vZGVfc2l6ZSkKJiM0MzsJCXJldHVybiAwOwomIzQzOwlpZiAoKHU2NClvZmYgJiM0MzsgbGVuICZndDsgbm9kZS0mZ3Q7dHJlZS0mZ3Q7bm9kZV9zaXplKQomIzQzOwkJcmV0dXJuIG5vZGUtJmd0O3RyZWUtJmd0O25vZGVfc2l6ZSAtIG9mZjsKJiM0MzsJcmV0dXJuIGxlbjsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHN0cnVjdCBwYWdlICpoZnNfYm1hcF9nZXRfbWFwX3BhZ2Uoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwKJiM0MzsJCQkJCSAgc3RydWN0IGhmc19ibWFwX2N0eCAqY3R4LAomIzQzOwkJCQkJICB1MzIgYnl0ZV9vZmZzZXQpCiYjNDM7ewomIzQzOwl1MTYgcmVjX2lkeCwgb2ZmMTY7CiYjNDM7CXVuc2lnbmVkIGludCBwYWdlX29mZjsKJiM0MzsKJiM0MzsJaWYgKG5vZGUtJmd0O3RoaXMgPT0gMCkgewomIzQzOwkJaWYgKG5vZGUtJmd0O3R5cGUgIT0gSEZTX05PREVfSEVBREVSKSB7CiYjNDM7CQkJcHJfZXJyKCYjMzQ7aGZzOiBpbnZhbGlkIGJ0cmVlIGhlYWRlciBub2RlXG4mIzM0Oyk7CiYjNDM7CQkJcmV0dXJuIEVSUl9QVFIoLUVJTyk7CiYjNDM7CQl9CiYjNDM7CQlyZWNfaWR4ID0gSEZTX0JUUkVFX0hEUl9NQVBfUkVDX0lOREVYOwomIzQzOwl9IGVsc2UgewomIzQzOwkJaWYgKG5vZGUtJmd0O3R5cGUgIT0gSEZTX05PREVfTUFQKSB7CiYjNDM7CQkJcHJfZXJyKCYjMzQ7aGZzOiBpbnZhbGlkIGJ0cmVlIG1hcCBub2RlXG4mIzM0Oyk7CiYjNDM7CQkJcmV0dXJuIEVSUl9QVFIoLUVJTyk7CiYjNDM7CQl9CiYjNDM7CQlyZWNfaWR4ID0gSEZTX0JUUkVFX01BUF9OT0RFX1JFQ19JTkRFWDsKJiM0MzsJfQomIzQzOwomIzQzOwljdHgtJmd0O2xlbiA9IGhmc19icmVjX2xlbm9mZihub2RlLCByZWNfaWR4LCAmYW1wO29mZjE2KTsKJiM0MzsJaWYgKCFjdHgtJmd0O2xlbikKJiM0MzsJCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwomIzQzOwomIzQzOwlpZiAoIWlzX2Jub2RlX29mZnNldF92YWxpZChub2RlLCBvZmYxNikpCiYjNDM7CQlyZXR1cm4gRVJSX1BUUigtRUlPKTsKJiM0MzsKJiM0MzsJY3R4LSZndDtsZW4gPSBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKG5vZGUsIG9mZjE2LCBjdHgtJmd0O2xlbik7CiYjNDM7CiYjNDM7CWlmIChieXRlX29mZnNldCAmZ3Q7PSBjdHgtJmd0O2xlbikKJiM0MzsJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwomIzQzOwomIzQzOwlwYWdlX29mZiA9ICh1MzIpb2ZmMTYgJiM0Mzsgbm9kZS0mZ3Q7cGFnZV9vZmZzZXQgJiM0MzsgYnl0ZV9vZmZzZXQ7CiYjNDM7CWN0eC0mZ3Q7cGFnZV9pZHggPSBwYWdlX29mZiAmZ3Q7Jmd0OyBQQUdFX1NISUZUOwomIzQzOwljdHgtJmd0O29mZiA9IHBhZ2Vfb2ZmICZhbXA7IH5QQUdFX01BU0s7CiYjNDM7CiYjNDM7CXJldHVybiBub2RlLSZndDtwYWdlW2N0eC0mZ3Q7cGFnZV9pZHhdOwomIzQzO30KJiM0MzsKJiM0Mztib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgaGZzX2JtYXBfY3R4IGN0eDsKJiM0MzsJc3RydWN0IHBhZ2UgKnBhZ2U7CiYjNDM7CXU4ICpibWFwLCBieXRlLCBtYXNrOwomIzQzOwomIzQzOwlwYWdlID0gaGZzX2JtYXBfZ2V0X21hcF9wYWdlKG5vZGUsICZhbXA7Y3R4LCBub2RlX2JpdF9pZHggLyBCSVRTX1BFUl9CWVRFKTsKJiM0MzsJaWYgKElTX0VSUihwYWdlKSkKJiM0MzsJCXJldHVybiBmYWxzZTsKJiM0MzsKJiM0MzsJYm1hcCA9IGttYXBfbG9jYWxfcGFnZShwYWdlKTsKJiM0MzsJYnl0ZSA9IGJtYXBbY3R4Lm9mZl07CiYjNDM7CWt1bm1hcF9sb2NhbChibWFwKTsKJiM0MzsKJiM0MzsJbWFzayA9IDEgJmx0OyZsdDsgKDcgLSAobm9kZV9iaXRfaWR4ICUgQklUU19QRVJfQllURSkpOwomIzQzOwlyZXR1cm4gKGJ5dGUgJmFtcDsgbWFzaykgIT0gMDsKJiM0Mzt9CiYjNDM7CiB2b2lkIGhmc19ibWFwX2ZyZWUoc3RydWN0IGhmc19ibm9kZSAqbm9kZSkKIHsKIAlzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlOwpkaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmggYi9mcy9oZnMvYnRyZWUuaAppbmRleCA5OWJlODU4YjI0NDY1MC4uODYwMzZlMTgwOTVmNGUgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9idHJlZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9idHJlZS5oCkBAIC05Myw2ICYjNDM7OTMsOCBAQCBleHRlcm4gdm9pZCBoZnNfYnRyZWVfd3JpdGUoc3RydWN0IGhmc19idHJlZSAqdHJlZSk7CiBleHRlcm4gaW50IGhmc19ibWFwX3Jlc2VydmUoc3RydWN0IGhmc19idHJlZSAqdHJlZSwgdTMyIHJzdmRfbm9kZXMpOwogZXh0ZXJuIHN0cnVjdCBoZnNfYm5vZGUgKmhmc19ibWFwX2FsbG9jKHN0cnVjdCBoZnNfYnRyZWUgKnRyZWUpOwogZXh0ZXJuIHZvaWQgaGZzX2JtYXBfZnJlZShzdHJ1Y3QgaGZzX2Jub2RlICpub2RlKTsKJiM0MztzdHJ1Y3QgaGZzX2JtYXBfY3R4OwomIzQzO2V4dGVybiBib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpOwogCiAvKiBibm9kZS5jICovCiBleHRlcm4gdm9pZCBoZnNfYm5vZGVfcmVhZChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB2b2lkICpidWYsIHUzMiBvZmYsIHUzMiBsZW4pOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNTo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzM2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkhGUyBGaWxlc3lzdGVtIFBhdGNoIEFuYWx5c2lzICZhbXA7IEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIGxvb2tzIGxpa2UgaXQmIzM5O3MgdG91Y2hpbmcgYGZzL2hmcy9idHJlZS5jYCBhbmQgYGZzL2hmcy9idHJlZS5oYCwgc3BlY2lmaWNhbGx5LiBJIHNlZSBuZXcgZnVuY3Rpb25zIGFkZGVkOiBgaGZzX2JtYXBfdGVzdF9iaXRgLCB3aGljaCBnZXRzIGNhbGxlZCBpbiBgaGZzX2J0cmVlX29wZW5gLCBhbG9uZyB3aXRoIGBoZnNfYm1hcF9nZXRfbWFwX3BhZ2VgLCBgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkYCwgYW5kIGBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIHRoaXMgdGVsbHMgbWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBIRlMgZmlsZXN5c3RlbS4gVGhhdCBtZWFucyBwb3RlbnRpYWwgZm9yIHNvbWUgaW50ZXJlc3RpbmcgZWRnZSBjYXNlcyBhbmQgdnVsbmVyYWJpbGl0aWVzLCBzbyBmdXp6aW5nIGlzIGRlZmluaXRlbHkgaW4gb3JkZXIuCgpGaXJzdCBzdGVwOiBJIG5lZWQgdG8gdmVyaWZ5IHdoaWNoIGNvbmZpZyBvcHRpb25zIGFyZSByZWxldmFudCBmb3IgdGhlIEhGUyBmaWxlc3lzdGVtLiBTaW5jZSBpdCYjMzk7cyB0b3VjaGluZyBjb3JlIGZpbGVzeXN0ZW0gY29kZSwgYGZzL2hmcy9LY29uZmlnYCBpcyB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LiBJJiMzOTttIGJldHRpbmcgdGhhdCBgQ09ORklHX0hGU19GU2AgaXMgdGhlIGtleS4gT25jZSBJIGhhdmUgdGhlIGNvbmZpZyBvcHRpb25zIGRpYWxlZCBpbiwgSSBjYW4gZW5zdXJlIHRoYXQgdGhlIGZ1enppbmcgZW52aXJvbm1lbnQgaXMgYXBwcm9wcmlhdGVseSBjb25maWd1cmVkIHRvIHRyaWdnZXIgdGhlIGNvZGUgcGF0aHMgSSB3YW50IHRvIHRlc3QuIFRoYXQmIzM5O3MgdGhlIGtleSB0byBtYWtpbmcgc3VyZSB0aGF0IHRoZSBmdXp6aW5nIGVmZm9ydHMgYXJlIHRhcmdldGVkIGFuZCBlZmZlY3RpdmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEhGU19GUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2hmcy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2hmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5mcy9oZnMvS2NvbmZpZzoyOmNvbmZpZyBIRlNfRlNcbmZzL2hmcy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtBcHBsZSBNYWNpbnRvc2ggZmlsZSBzeXN0ZW0gc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NTUKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBIRlMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgdGhlIGtleSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGlzIGBIRlNfRlNgLiBSaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGNvcmUgY2hhbmdlcy4gTXkgaW5pdGlhbCBzY2FuIHBvaW50cyB0byBhIGZldyBmdW5jdGlvbiBtb2RpZmljYXRpb25zIGFuZCBhZGRpdGlvbnMuIEl0IGxvb2tzIGxpa2Ugd2UmIzM5O3JlIHRvdWNoaW5nIGBoZnNfYnRyZWVfb3BlbmAsIGBoZnNfYm1hcF9hbGxvY2AsIGFuZCBgaGZzX2JtYXBfZnJlZWAg4oCTIHRoYXQgZ2l2ZXMgbWUgc29tZSBjb250ZXh0IGltbWVkaWF0ZWx5LiBUaGVuIHRoZXJlIGFyZSBzb21lIG5ldyBmdW5jdGlvbnM6IGBoZnNfYm1hcF90ZXN0X2JpdGAsIGBoZnNfYm1hcF9nZXRfbWFwX3BhZ2VgLCBgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkYCwgYW5kIGBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoYC4KCkEgcXVpY2sgZ2xhbmNlIGF0IHRoZSBzaWduYXR1cmVzIHJldmVhbHMgc29tZSBpbnRlcmVzdGluZyBkZXRhaWxzLiBgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkYCBhbmQgYGNoZWNrX2FuZF9jb3JyZWN0X3JlcXVlc3RlZF9sZW5ndGhgIGFyZSBkZWNsYXJlZCBhcyBgc3RhdGljIGlubGluZWAsIHdoaWNoIHdpbGwgaGF2ZSBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMgZHVlIHRvIGlubGluaW5nLiBgaGZzX2JtYXBfZ2V0X21hcF9wYWdlYCBpcyBhbHNvIGRlY2xhcmVkIGBzdGF0aWNgLCBtYWtpbmcgaXQgbm9uLWV4cG9ydGVkLiBCdXQgYGhmc19ibWFwX3Rlc3RfYml0YCBpcyBnbG9iYWwvZXhwb3J0ZWQuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LgoKTm93LCBsZXQmIzM5O3MgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBtb2RpZmllZCBmdW5jdGlvbnMsIHN0YXJ0aW5nIHdpdGggYGhmc19idHJlZV9vcGVuYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQmIzM5O3MgYSBob3QtcGF0aCBmdW5jdGlvbi4gVGhpbmtpbmcgYWJvdXQgSEZTIGZpbGUgc3lzdGVtcywgb3BlbmluZyBhIGJ0cmVlIGhhcHBlbnMgZHVyaW5nIG1vdW50LCByaWdodD8gU28sIHRoaXMgY291bGQgYmUgcGVyZm9ybWFuY2UtY3JpdGljYWwuIFRoZW4sIGxldCYjMzk7cyBjaGVjayBgaGZzX2JtYXBfdGVzdF9iaXRgLiBMb29rcyBsaWtlIGl0IGlzIGNhbGxlZCBmcm9tIGBoZnNfYnRyZWVfb3BlbmAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aGZzX2J0cmVlX29wZW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9oZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2hmcy9idHJlZS5jLTE4LS8qIEdldCBhIHJlZmVyZW5jZSB0byBhIEIqVHJlZSBhbmQgZG8gc29tZSBpbml0aWFsIGNoZWNrcyAqL1xuZnMvaGZzL2J0cmVlLmM6MTk6c3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2V5Y21wKVxuZnMvaGZzL2J0cmVlLmMtMjAte1xuLS1cbmZzL2hmcy9idHJlZS5oPTc3PXN0cnVjdCBoZnNfZmluZF9kYXRhIHtcbi0tXG5mcy9oZnMvYnRyZWUuaC04OC0vKiBidHJlZS5jICovXG5mcy9oZnMvYnRyZWUuaDo4OTpleHRlcm4gc3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLFxuZnMvaGZzL2J0cmVlLmgtOTAtXHRcdFx0XHRcdGJ0cmVlX2tleWNtcCBrZXljbXApO1xuLS1cbmZzL2hmcy9tZGIuYz05ND1pbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbi0tXG5mcy9oZnMvbWRiLmMtMjI3LVxuZnMvaGZzL21kYi5jOjIyODpcdEhGU19TQihzYiktXHUwMDNlZXh0X3RyZWUgPSBoZnNfYnRyZWVfb3BlbihzYiwgSEZTX0VYVF9DTklELCBoZnNfZXh0X2tleWNtcCk7XG5mcy9oZnMvbWRiLmMtMjI5LVx0aWYgKCFIRlNfU0Ioc2IpLVx1MDAzZWV4dF90cmVlKSB7XG4tLVxuZnMvaGZzL21kYi5jLTIzMi1cdH1cbmZzL2hmcy9tZGIuYzoyMzM6XHRIRlNfU0Ioc2IpLVx1MDAzZWNhdF90cmVlID0gaGZzX2J0cmVlX29wZW4oc2IsIEhGU19DQVRfQ05JRCwgaGZzX2NhdF9rZXljbXApO1xuZnMvaGZzL21kYi5jLTIzNC1cdGlmICghSEZTX1NCKHNiKS1cdTAwM2VjYXRfdHJlZSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5NTYKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA2NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgdGhlIEhGUyYjNDM7IE1vdW50IFNlcXVlbmNlKioKCk9rYXksIHNvIEkmIzM5O20gdHJhY2luZyB0aHJvdWdoIHRoaXMgSEZTJiM0MzsgbW91bnQgcHJvY2VzcywgYW5kIGl0IHNlZW1zIGxpa2UgYGhmc19idHJlZV9vcGVuYCBpcyB0cmlnZ2VyZWQgZHVyaW5nIHRoZSBtb3VudCBvcGVyYXRpb24sIHNwZWNpZmljYWxseSB3aXRoaW4gYGhmc19tZGJfZ2V0YC4gVGhhdCBtYWtlcyBzZW5zZTsgd2UgbmVlZCB0byBhY2Nlc3MgdGhlIEItdHJlZSBmb3IgbWV0YWRhdGEuCgpOb3csIGhlcmUmIzM5O3MgdGhlIGludGVyZXN0aW5nIHBhcnQ6IGBoZnNfYm1hcF90ZXN0X2JpdGAgZ2V0cyBjYWxsZWQgZnJvbSAqd2l0aGluKiBgaGZzX2J0cmVlX29wZW5gLiBUaGF0IHN1Z2dlc3RzIHdlJiMzOTtyZSBkb2luZyBzb21lIGtpbmQgb2YgYml0LWxldmVsIGNoZWNrIHdpdGhpbiB0aGUgQi10cmVlIG9wZW5pbmcgc2VxdWVuY2UsIHByb2JhYmx5IHJlbGF0ZWQgdG8gdGhlIGFsbG9jYXRpb24gYml0bWFwLgoKTXkgbmV4dCBzdGVwPyBJIHdhbnQgdG8gZGV0ZXJtaW5lIGlmIGBoZnNfYm1hcF90ZXN0X2JpdGAgaXMgdXNlZCAqYW55d2hlcmUgZWxzZSogaW4gdGhlIGNvZGViYXNlLiBVbmRlcnN0YW5kaW5nIGFsbCBpdHMgY2FsbCBzaXRlcyB3aWxsIHJlYWxseSBzb2xpZGlmeSB0aGUgY29udGV4dCBoZXJlLiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgaWYgdGhhdCBmdW5jdGlvbiBoYXMgb3RoZXIgaW1wbGljYXRpb25zIHdpdGhpbiB0aGUgSEZTJiM0MzsgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aGZzX2JtYXBfdGVzdF9iaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9oZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2hmcy9idHJlZS5jPTE5PXN0cnVjdCBoZnNfYnRyZWUgKmhmc19idHJlZV9vcGVuKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpZCwgYnRyZWVfa2V5Y21wIGtleWNtcClcbi0tXG5mcy9oZnMvYnRyZWUuYy0xNjMtXG5mcy9oZnMvYnRyZWUuYzoxNjQ6XHRpZiAoIWhmc19ibWFwX3Rlc3RfYml0KG5vZGUsIDApKSB7XG5mcy9oZnMvYnRyZWUuYy0xNjUtXHRcdHByX3dhcm4oXCYjMzQ7KCVzKTogJXMgKGNuaWQgMHgleCkgbWFwIHJlY29yZCBpbnZhbGlkIG9yIGJpdG1hcCBjb3JydXB0aW9uIGRldGVjdGVkLCBmb3JjaW5nIHJlYWQtb25seS5cXG5cJiMzNDssXG4tLVxuZnMvaGZzL2J0cmVlLmM9Mzk3PXN0YXRpYyBzdHJ1Y3QgcGFnZSAqaGZzX2JtYXBfZ2V0X21hcF9wYWdlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsXG4tLVxuZnMvaGZzL2J0cmVlLmMtNDM2LVxuZnMvaGZzL2J0cmVlLmM6NDM3OmJvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeClcbmZzL2hmcy9idHJlZS5jLTQzOC17XG4tLVxuZnMvaGZzL2J0cmVlLmg9OTY9c3RydWN0IGhmc19ibWFwX2N0eDtcbmZzL2hmcy9idHJlZS5oOjk3OmV4dGVybiBib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpO1xuZnMvaGZzL2J0cmVlLmgtOTgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTYxNwoJCQkJCQkJb3V0cHV0OiAxMTIKCQkJCQkJCXRob3VnaHRzOiAxODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBIRlMgQi1UcmVlIFZhbGlkYXRpb24gUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHZhbGlkYXRpb24gY2hlY2tzIHdpdGhpbiB0aGUgSEZTIGItdHJlZSBvcGVuaW5nIHByb2Nlc3MuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgZm9jdXNlZCBvbiBjb25maXJtaW5nIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIG1hcCByZWNvcmQgYW5kIHZlcmlmeWluZyB0aGUgYWJzZW5jZSBvZiBiaXRtYXAgY29ycnVwdGlvbi4gSXQgbG9va3MgbGlrZSB0aGUgcmVsZXZhbnQgZnVuY3Rpb25zIGFyZSBgaGZzX2J0cmVlX29wZW5gIGFuZCBgaGZzX2JtYXBfdGVzdF9iaXRgLiBUaGUgY29uZmlnIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQgLSBgSEZTX0ZTYC4gVGhlIHJlYXNvbmluZyBpcyBzb3VuZDogdGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIHRyaWdnZXJlZCBkdXJpbmcgdGhlIG1vdW50aW5nIG9mIGEgY3JhZnRlZCBIRlMgaW1hZ2UsIGFuZCB0aGVyZWZvcmUgY291bGQgYmUgZXhwbG9pdGVkLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayBmb3IgYW55IG90aGVyIGZ1bmN0aW9ucyBpbnZvbHZlZC4uLiBSaWdodCwgYGhmc19ibWFwX2dldF9tYXBfcGFnZWAgaXMgc3RhdGljLCBzbyBpdCB3b24mIzM5O3QgYmUgZXhwb3NlZCBhcyBhIHN5bWJvbCBhbmQgaXMgbm90IHJlbGV2YW50IGZvciB0aGUgaW1tZWRpYXRlIHB1cnBvc2Ugb2YgaWRlbnRpZnlpbmcgdGhlIGZvY3VzIG9mIHRoZSBwYXRjaCwgaXQgc2VlbXMuIFdlIGFscmVhZHkgY29uZmlybWVkIGBoZnNfYnRyZWVfb3BlbmAgaXMgZ2xvYmFsIGFuZCBgaGZzX2JtYXBfdGVzdF9iaXRgIGlzIGFsc28gZ2xvYmFsLgoKQWxyaWdodCwgdGhhdCBjb3ZlcnMgaXQuIEkmIzM5O2xsIHNldCB0aGUgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0hGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2hmc19idHJlZV9vcGVuJiMzNDssCiAgICAmIzM0O2hmc19ibWFwX3Rlc3RfYml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSEZTIGJ0cmVlIG1hcCByZWNvcmRzIGR1cmluZyBtb3VudC4gSXQgaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBgaGZzX2JtYXBfdGVzdF9iaXRgIGFuZCBtb2RpZmllcyBgaGZzX2J0cmVlX29wZW5gLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgYnkgbW91bnRpbmcgYSBjcmFmdGVkIEhGUyBmaWxlc3lzdGVtIGltYWdlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtIRlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtoZnNfYnRyZWVfb3BlbiYjMzQ7LAogICAgJiMzNDtoZnNfYm1hcF90ZXN0X2JpdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgZm9yIEhGUyBidHJlZSBtYXAgcmVjb3JkcyBkdXJpbmcgbW91bnQuIEl0IGludHJvZHVjZXMgYSBuZXcgZnVuY3Rpb24gYGhmc19ibWFwX3Rlc3RfYml0YCBhbmQgbW9kaWZpZXMgYGhmc19idHJlZV9vcGVuYC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIGJ5IG1vdW50aW5nIGEgY3JhZnRlZCBIRlMgZmlsZXN5c3RlbSBpbWFnZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjUwOjIwLjM2MTUyOTI0OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5OTk3NDU4NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkhGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImhmc19idHJlZV9vcGVuXCIsXG4gICAgXCJoZnNfYm1hcF90ZXN0X2JpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSEZTIGJ0cmVlIG1hcCByZWNvcmRzIGR1cmluZyBtb3VudC4gSXQgaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBgaGZzX2JtYXBfdGVzdF9iaXRgIGFuZCBtb2RpZmllcyBgaGZzX2J0cmVlX29wZW5gLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgYnkgbW91bnRpbmcgYSBjcmFmdGVkIEhGUyBmaWxlc3lzdGVtIGltYWdlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDoyMC4zNjE1MzM0MzdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY1MzE2NzQzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ4Y2I2ZDQ5M2VkYWU5MDlhNWVlZmE0NGI3N2ZlNGE4MWI0ZGI3ZDBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMyAwNTo1MDoxOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9oZnMvYnRyZWUuYyBiL2ZzL2hmcy9idHJlZS5jXFxuaW5kZXggMmViMzdhMmY2NGU4NjYuLjM2ZGM4NzM1ZDAxYTNjIDEwMDY0NFxcbi0tLSBhL2ZzL2hmcy9idHJlZS5jXFxuKysrIGIvZnMvaGZzL2J0cmVlLmNcXG5AQCAtMjMsNiArMjMsNyBAQCBzdHJ1Y3QgaGZzX2J0cmVlICpoZnNfYnRyZWVfb3BlbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1MzIgaWQsIGJ0cmVlX2tleWNtcCBrZVxcbiBcXHRzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZztcXG4gXFx0c3RydWN0IGZvbGlvICpmb2xpbztcXG4gXFx0c3RydWN0IGJ1ZmZlcl9oZWFkICpiaDtcXG4rXFx0c3RydWN0IGhmc19ibm9kZSAqbm9kZTtcXG4gXFx0dW5zaWduZWQgaW50IHNpemU7XFxuIFxcdHUxNiBkYmxvY2s7XFxuIFxcdHNlY3Rvcl90IHN0YXJ0X2Jsb2NrO1xcbkBAIC0xNTUsNiArMTU2LDIwIEBAIHN0cnVjdCBoZnNfYnRyZWUgKmhmc19idHJlZV9vcGVuKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpZCwgYnRyZWVfa2V5Y21wIGtlXFxuIFxcdGt1bm1hcF9sb2NhbChoZWFkKTtcXG4gXFx0Zm9saW9fdW5sb2NrKGZvbGlvKTtcXG4gXFx0Zm9saW9fcHV0KGZvbGlvKTtcXG4rXFxuK1xcdG5vZGUgPSBoZnNfYm5vZGVfZmluZCh0cmVlLCAwKTtcXG4rXFx0aWYgKElTX0VSUihub2RlKSlcXG4rXFx0XFx0Z290byBmcmVlX2lub2RlO1xcbitcXG4rXFx0aWYgKCFoZnNfYm1hcF90ZXN0X2JpdChub2RlLCAwKSkge1xcbitcXHRcXHRwcl93YXJuKFxcXCIoJXMpOiAlcyAoY25pZCAweCV4KSBtYXAgcmVjb3JkIGludmFsaWQgb3IgYml0bWFwIGNvcnJ1cHRpb24gZGV0ZWN0ZWQsIGZvcmNpbmcgcmVhZC1vbmx5LlxcXFxuXFxcIixcXG4rXFx0XFx0XFx0c2ItXFx1MDAzZXNfaWQsIGlkID09IEhGU19FWFRfQ05JRCA/IFxcXCJleHRlbnRzXFxcIiA6IFxcXCJjYXRhbG9nXFxcIiwgaWQpO1xcbitcXHRcXHRwcl93YXJuKFxcXCJSdW4gZnNjay5oZnMgdG8gcmVwYWlyLlxcXFxuXFxcIik7XFxuK1xcdFxcdHNiLVxcdTAwM2VzX2ZsYWdzIHw9IFNCX1JET05MWTtcXG4rXFx0fVxcbitcXG4rXFx0aGZzX2Jub2RlX3B1dChub2RlKTtcXG4rXFxuIFxcdHJldHVybiB0cmVlO1xcbiBcXG4gZmFpbF9mb2xpbzpcXG5AQCAtMzU2LDYgKzM3MSw4NyBAQCBzdHJ1Y3QgaGZzX2Jub2RlICpoZnNfYm1hcF9hbGxvYyhzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKVxcbiBcXHR9XFxuIH1cXG4gXFxuK3N0cnVjdCBoZnNfYm1hcF9jdHgge1xcbitcXHR1bnNpZ25lZCBpbnQgcGFnZV9pZHg7XFxuK1xcdHVuc2lnbmVkIGludCBvZmY7XFxuK1xcdHUxNiBsZW47XFxuK307XFxuK1xcbisjZGVmaW5lIEhGU19CVFJFRV9IRFJfTUFQX1JFQ19JTkRFWFxcdDJcXG4rI2RlZmluZSBIRlNfQlRSRUVfTUFQX05PREVfUkVDX0lOREVYXFx0MFxcbitcXG4rc3RhdGljIGlubGluZSBib29sIGlzX2Jub2RlX29mZnNldF92YWxpZChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB1MzIgb2ZmKVxcbit7XFxuK1xcdHJldHVybiBvZmYgXFx1MDAzYyBub2RlLVxcdTAwM2V0cmVlLVxcdTAwM2Vub2RlX3NpemU7XFxuK31cXG4rXFxuK3N0YXRpYyBpbmxpbmUgdTMyIGNoZWNrX2FuZF9jb3JyZWN0X3JlcXVlc3RlZF9sZW5ndGgoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG9mZiwgdTMyIGxlbilcXG4re1xcbitcXHRpZiAob2ZmIFxcdTAwM2U9IG5vZGUtXFx1MDAzZXRyZWUtXFx1MDAzZW5vZGVfc2l6ZSlcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcdGlmICgodTY0KW9mZiArIGxlbiBcXHUwMDNlIG5vZGUtXFx1MDAzZXRyZWUtXFx1MDAzZW5vZGVfc2l6ZSlcXG4rXFx0XFx0cmV0dXJuIG5vZGUtXFx1MDAzZXRyZWUtXFx1MDAzZW5vZGVfc2l6ZSAtIG9mZjtcXG4rXFx0cmV0dXJuIGxlbjtcXG4rfVxcbitcXG4rc3RhdGljIHN0cnVjdCBwYWdlICpoZnNfYm1hcF9nZXRfbWFwX3BhZ2Uoc3RydWN0IGhmc19ibm9kZSAqbm9kZSxcXG4rXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaGZzX2JtYXBfY3R4ICpjdHgsXFxuK1xcdFxcdFxcdFxcdFxcdCAgdTMyIGJ5dGVfb2Zmc2V0KVxcbit7XFxuK1xcdHUxNiByZWNfaWR4LCBvZmYxNjtcXG4rXFx0dW5zaWduZWQgaW50IHBhZ2Vfb2ZmO1xcbitcXG4rXFx0aWYgKG5vZGUtXFx1MDAzZXRoaXMgPT0gMCkge1xcbitcXHRcXHRpZiAobm9kZS1cXHUwMDNldHlwZSAhPSBIRlNfTk9ERV9IRUFERVIpIHtcXG4rXFx0XFx0XFx0cHJfZXJyKFxcXCJoZnM6IGludmFsaWQgYnRyZWUgaGVhZGVyIG5vZGVcXFxcblxcXCIpO1xcbitcXHRcXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlPKTtcXG4rXFx0XFx0fVxcbitcXHRcXHRyZWNfaWR4ID0gSEZTX0JUUkVFX0hEUl9NQVBfUkVDX0lOREVYO1xcbitcXHR9IGVsc2Uge1xcbitcXHRcXHRpZiAobm9kZS1cXHUwMDNldHlwZSAhPSBIRlNfTk9ERV9NQVApIHtcXG4rXFx0XFx0XFx0cHJfZXJyKFxcXCJoZnM6IGludmFsaWQgYnRyZWUgbWFwIG5vZGVcXFxcblxcXCIpO1xcbitcXHRcXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlPKTtcXG4rXFx0XFx0fVxcbitcXHRcXHRyZWNfaWR4ID0gSEZTX0JUUkVFX01BUF9OT0RFX1JFQ19JTkRFWDtcXG4rXFx0fVxcbitcXG4rXFx0Y3R4LVxcdTAwM2VsZW4gPSBoZnNfYnJlY19sZW5vZmYobm9kZSwgcmVjX2lkeCwgXFx1MDAyNm9mZjE2KTtcXG4rXFx0aWYgKCFjdHgtXFx1MDAzZWxlbilcXG4rXFx0XFx0cmV0dXJuIEVSUl9QVFIoLUVOT0VOVCk7XFxuK1xcbitcXHRpZiAoIWlzX2Jub2RlX29mZnNldF92YWxpZChub2RlLCBvZmYxNikpXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xcbitcXG4rXFx0Y3R4LVxcdTAwM2VsZW4gPSBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKG5vZGUsIG9mZjE2LCBjdHgtXFx1MDAzZWxlbik7XFxuK1xcbitcXHRpZiAoYnl0ZV9vZmZzZXQgXFx1MDAzZT0gY3R4LVxcdTAwM2VsZW4pXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xcbitcXG4rXFx0cGFnZV9vZmYgPSAodTMyKW9mZjE2ICsgbm9kZS1cXHUwMDNlcGFnZV9vZmZzZXQgKyBieXRlX29mZnNldDtcXG4rXFx0Y3R4LVxcdTAwM2VwYWdlX2lkeCA9IHBhZ2Vfb2ZmIFxcdTAwM2VcXHUwMDNlIFBBR0VfU0hJRlQ7XFxuK1xcdGN0eC1cXHUwMDNlb2ZmID0gcGFnZV9vZmYgXFx1MDAyNiB+UEFHRV9NQVNLO1xcbitcXG4rXFx0cmV0dXJuIG5vZGUtXFx1MDAzZXBhZ2VbY3R4LVxcdTAwM2VwYWdlX2lkeF07XFxuK31cXG4rXFxuK2Jvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeClcXG4re1xcbitcXHRzdHJ1Y3QgaGZzX2JtYXBfY3R4IGN0eDtcXG4rXFx0c3RydWN0IHBhZ2UgKnBhZ2U7XFxuK1xcdHU4ICpibWFwLCBieXRlLCBtYXNrO1xcbitcXG4rXFx0cGFnZSA9IGhmc19ibWFwX2dldF9tYXBfcGFnZShub2RlLCBcXHUwMDI2Y3R4LCBub2RlX2JpdF9pZHggLyBCSVRTX1BFUl9CWVRFKTtcXG4rXFx0aWYgKElTX0VSUihwYWdlKSlcXG4rXFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXG4rXFx0Ym1hcCA9IGttYXBfbG9jYWxfcGFnZShwYWdlKTtcXG4rXFx0Ynl0ZSA9IGJtYXBbY3R4Lm9mZl07XFxuK1xcdGt1bm1hcF9sb2NhbChibWFwKTtcXG4rXFxuK1xcdG1hc2sgPSAxIFxcdTAwM2NcXHUwMDNjICg3IC0gKG5vZGVfYml0X2lkeCAlIEJJVFNfUEVSX0JZVEUpKTtcXG4rXFx0cmV0dXJuIChieXRlIFxcdTAwMjYgbWFzaykgIT0gMDtcXG4rfVxcbitcXG4gdm9pZCBoZnNfYm1hcF9mcmVlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUpXFxuIHtcXG4gXFx0c3RydWN0IGhmc19idHJlZSAqdHJlZTtcXG5kaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmggYi9mcy9oZnMvYnRyZWUuaFxcbmluZGV4IDk5YmU4NThiMjQ0NjUwLi44NjAzNmUxODA5NWY0ZSAxMDA2NDRcXG4tLS0gYS9mcy9oZnMvYnRyZWUuaFxcbisrKyBiL2ZzL2hmcy9idHJlZS5oXFxuQEAgLTkzLDYgKzkzLDggQEAgZXh0ZXJuIHZvaWQgaGZzX2J0cmVlX3dyaXRlKHN0cnVjdCBoZnNfYnRyZWUgKnRyZWUpO1xcbiBleHRlcm4gaW50IGhmc19ibWFwX3Jlc2VydmUoc3RydWN0IGhmc19idHJlZSAqdHJlZSwgdTMyIHJzdmRfbm9kZXMpO1xcbiBleHRlcm4gc3RydWN0IGhmc19ibm9kZSAqaGZzX2JtYXBfYWxsb2Moc3RydWN0IGhmc19idHJlZSAqdHJlZSk7XFxuIGV4dGVybiB2b2lkIGhmc19ibWFwX2ZyZWUoc3RydWN0IGhmc19ibm9kZSAqbm9kZSk7XFxuK3N0cnVjdCBoZnNfYm1hcF9jdHg7XFxuK2V4dGVybiBib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpO1xcbiBcXG4gLyogYm5vZGUuYyAqL1xcbiBleHRlcm4gdm9pZCBoZnNfYm5vZGVfcmVhZChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB2b2lkICpidWYsIHUzMiBvZmYsIHUzMiBsZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDoyMS4wMTU0NjMzOThaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MzQzNTA5MDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkhGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImhmc19idHJlZV9vcGVuXCIsXG4gICAgXCJoZnNfYm1hcF90ZXN0X2JpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSEZTIGJ0cmVlIG1hcCByZWNvcmRzIGR1cmluZyBtb3VudC4gSXQgaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBgaGZzX2JtYXBfdGVzdF9iaXRgIGFuZCBtb2RpZmllcyBgaGZzX2J0cmVlX29wZW5gLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgYnkgbW91bnRpbmcgYSBjcmFmdGVkIEhGUyBmaWxlc3lzdGVtIGltYWdlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ4Y2I2ZDQ5M2VkYWU5MDlhNWVlZmE0NGI3N2ZlNGE4MWI0ZGI3ZDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzIDA1OjUwOjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmMgYi9mcy9oZnMvYnRyZWUuY1xuaW5kZXggMmViMzdhMmY2NGU4NjYuLjM2ZGM4NzM1ZDAxYTNjIDEwMDY0NFxuLS0tIGEvZnMvaGZzL2J0cmVlLmNcbisrKyBiL2ZzL2hmcy9idHJlZS5jXG5AQCAtMjMsNiArMjMsNyBAQCBzdHJ1Y3QgaGZzX2J0cmVlICpoZnNfYnRyZWVfb3BlbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1MzIgaWQsIGJ0cmVlX2tleWNtcCBrZVxuIFx0c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7XG4gXHRzdHJ1Y3QgZm9saW8gKmZvbGlvO1xuIFx0c3RydWN0IGJ1ZmZlcl9oZWFkICpiaDtcbitcdHN0cnVjdCBoZnNfYm5vZGUgKm5vZGU7XG4gXHR1bnNpZ25lZCBpbnQgc2l6ZTtcbiBcdHUxNiBkYmxvY2s7XG4gXHRzZWN0b3JfdCBzdGFydF9ibG9jaztcbkBAIC0xNTUsNiArMTU2LDIwIEBAIHN0cnVjdCBoZnNfYnRyZWUgKmhmc19idHJlZV9vcGVuKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpZCwgYnRyZWVfa2V5Y21wIGtlXG4gXHRrdW5tYXBfbG9jYWwoaGVhZCk7XG4gXHRmb2xpb191bmxvY2soZm9saW8pO1xuIFx0Zm9saW9fcHV0KGZvbGlvKTtcbitcbitcdG5vZGUgPSBoZnNfYm5vZGVfZmluZCh0cmVlLCAwKTtcbitcdGlmIChJU19FUlIobm9kZSkpXG4rXHRcdGdvdG8gZnJlZV9pbm9kZTtcbitcbitcdGlmICghaGZzX2JtYXBfdGVzdF9iaXQobm9kZSwgMCkpIHtcbitcdFx0cHJfd2FybihcIiglcyk6ICVzIChjbmlkIDB4JXgpIG1hcCByZWNvcmQgaW52YWxpZCBvciBiaXRtYXAgY29ycnVwdGlvbiBkZXRlY3RlZCwgZm9yY2luZyByZWFkLW9ubHkuXFxuXCIsXG4rXHRcdFx0c2ItXHUwMDNlc19pZCwgaWQgPT0gSEZTX0VYVF9DTklEID8gXCJleHRlbnRzXCIgOiBcImNhdGFsb2dcIiwgaWQpO1xuK1x0XHRwcl93YXJuKFwiUnVuIGZzY2suaGZzIHRvIHJlcGFpci5cXG5cIik7XG4rXHRcdHNiLVx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xuK1x0fVxuK1xuK1x0aGZzX2Jub2RlX3B1dChub2RlKTtcbitcbiBcdHJldHVybiB0cmVlO1xuIFxuIGZhaWxfZm9saW86XG5AQCAtMzU2LDYgKzM3MSw4NyBAQCBzdHJ1Y3QgaGZzX2Jub2RlICpoZnNfYm1hcF9hbGxvYyhzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKVxuIFx0fVxuIH1cbiBcbitzdHJ1Y3QgaGZzX2JtYXBfY3R4IHtcbitcdHVuc2lnbmVkIGludCBwYWdlX2lkeDtcbitcdHVuc2lnbmVkIGludCBvZmY7XG4rXHR1MTYgbGVuO1xuK307XG4rXG4rI2RlZmluZSBIRlNfQlRSRUVfSERSX01BUF9SRUNfSU5ERVhcdDJcbisjZGVmaW5lIEhGU19CVFJFRV9NQVBfTk9ERV9SRUNfSU5ERVhcdDBcbitcbitzdGF0aWMgaW5saW5lIGJvb2wgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYpXG4re1xuK1x0cmV0dXJuIG9mZiBcdTAwM2Mgbm9kZS1cdTAwM2V0cmVlLVx1MDAzZW5vZGVfc2l6ZTtcbit9XG4rXG4rc3RhdGljIGlubGluZSB1MzIgY2hlY2tfYW5kX2NvcnJlY3RfcmVxdWVzdGVkX2xlbmd0aChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB1MzIgb2ZmLCB1MzIgbGVuKVxuK3tcbitcdGlmIChvZmYgXHUwMDNlPSBub2RlLVx1MDAzZXRyZWUtXHUwMDNlbm9kZV9zaXplKVxuK1x0XHRyZXR1cm4gMDtcbitcdGlmICgodTY0KW9mZiArIGxlbiBcdTAwM2Ugbm9kZS1cdTAwM2V0cmVlLVx1MDAzZW5vZGVfc2l6ZSlcbitcdFx0cmV0dXJuIG5vZGUtXHUwMDNldHJlZS1cdTAwM2Vub2RlX3NpemUgLSBvZmY7XG4rXHRyZXR1cm4gbGVuO1xuK31cbitcbitzdGF0aWMgc3RydWN0IHBhZ2UgKmhmc19ibWFwX2dldF9tYXBfcGFnZShzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLFxuK1x0XHRcdFx0XHQgIHN0cnVjdCBoZnNfYm1hcF9jdHggKmN0eCxcbitcdFx0XHRcdFx0ICB1MzIgYnl0ZV9vZmZzZXQpXG4re1xuK1x0dTE2IHJlY19pZHgsIG9mZjE2O1xuK1x0dW5zaWduZWQgaW50IHBhZ2Vfb2ZmO1xuK1xuK1x0aWYgKG5vZGUtXHUwMDNldGhpcyA9PSAwKSB7XG4rXHRcdGlmIChub2RlLVx1MDAzZXR5cGUgIT0gSEZTX05PREVfSEVBREVSKSB7XG4rXHRcdFx0cHJfZXJyKFwiaGZzOiBpbnZhbGlkIGJ0cmVlIGhlYWRlciBub2RlXFxuXCIpO1xuK1x0XHRcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xuK1x0XHR9XG4rXHRcdHJlY19pZHggPSBIRlNfQlRSRUVfSERSX01BUF9SRUNfSU5ERVg7XG4rXHR9IGVsc2Uge1xuK1x0XHRpZiAobm9kZS1cdTAwM2V0eXBlICE9IEhGU19OT0RFX01BUCkge1xuK1x0XHRcdHByX2VycihcImhmczogaW52YWxpZCBidHJlZSBtYXAgbm9kZVxcblwiKTtcbitcdFx0XHRyZXR1cm4gRVJSX1BUUigtRUlPKTtcbitcdFx0fVxuK1x0XHRyZWNfaWR4ID0gSEZTX0JUUkVFX01BUF9OT0RFX1JFQ19JTkRFWDtcbitcdH1cbitcbitcdGN0eC1cdTAwM2VsZW4gPSBoZnNfYnJlY19sZW5vZmYobm9kZSwgcmVjX2lkeCwgXHUwMDI2b2ZmMTYpO1xuK1x0aWYgKCFjdHgtXHUwMDNlbGVuKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTtcbitcbitcdGlmICghaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkKG5vZGUsIG9mZjE2KSlcbitcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTyk7XG4rXG4rXHRjdHgtXHUwMDNlbGVuID0gY2hlY2tfYW5kX2NvcnJlY3RfcmVxdWVzdGVkX2xlbmd0aChub2RlLCBvZmYxNiwgY3R4LVx1MDAzZWxlbik7XG4rXG4rXHRpZiAoYnl0ZV9vZmZzZXQgXHUwMDNlPSBjdHgtXHUwMDNlbGVuKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcbitcbitcdHBhZ2Vfb2ZmID0gKHUzMilvZmYxNiArIG5vZGUtXHUwMDNlcGFnZV9vZmZzZXQgKyBieXRlX29mZnNldDtcbitcdGN0eC1cdTAwM2VwYWdlX2lkeCA9IHBhZ2Vfb2ZmIFx1MDAzZVx1MDAzZSBQQUdFX1NISUZUO1xuK1x0Y3R4LVx1MDAzZW9mZiA9IHBhZ2Vfb2ZmIFx1MDAyNiB+UEFHRV9NQVNLO1xuK1xuK1x0cmV0dXJuIG5vZGUtXHUwMDNlcGFnZVtjdHgtXHUwMDNlcGFnZV9pZHhdO1xuK31cbitcbitib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpXG4re1xuK1x0c3RydWN0IGhmc19ibWFwX2N0eCBjdHg7XG4rXHRzdHJ1Y3QgcGFnZSAqcGFnZTtcbitcdHU4ICpibWFwLCBieXRlLCBtYXNrO1xuK1xuK1x0cGFnZSA9IGhmc19ibWFwX2dldF9tYXBfcGFnZShub2RlLCBcdTAwMjZjdHgsIG5vZGVfYml0X2lkeCAvIEJJVFNfUEVSX0JZVEUpO1xuK1x0aWYgKElTX0VSUihwYWdlKSlcbitcdFx0cmV0dXJuIGZhbHNlO1xuK1xuK1x0Ym1hcCA9IGttYXBfbG9jYWxfcGFnZShwYWdlKTtcbitcdGJ5dGUgPSBibWFwW2N0eC5vZmZdO1xuK1x0a3VubWFwX2xvY2FsKGJtYXApO1xuK1xuK1x0bWFzayA9IDEgXHUwMDNjXHUwMDNjICg3IC0gKG5vZGVfYml0X2lkeCAlIEJJVFNfUEVSX0JZVEUpKTtcbitcdHJldHVybiAoYnl0ZSBcdTAwMjYgbWFzaykgIT0gMDtcbit9XG4rXG4gdm9pZCBoZnNfYm1hcF9mcmVlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUpXG4ge1xuIFx0c3RydWN0IGhmc19idHJlZSAqdHJlZTtcbmRpZmYgLS1naXQgYS9mcy9oZnMvYnRyZWUuaCBiL2ZzL2hmcy9idHJlZS5oXG5pbmRleCA5OWJlODU4YjI0NDY1MC4uODYwMzZlMTgwOTVmNGUgMTAwNjQ0XG4tLS0gYS9mcy9oZnMvYnRyZWUuaFxuKysrIGIvZnMvaGZzL2J0cmVlLmhcbkBAIC05Myw2ICs5Myw4IEBAIGV4dGVybiB2b2lkIGhmc19idHJlZV93cml0ZShzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKTtcbiBleHRlcm4gaW50IGhmc19ibWFwX3Jlc2VydmUoc3RydWN0IGhmc19idHJlZSAqdHJlZSwgdTMyIHJzdmRfbm9kZXMpO1xuIGV4dGVybiBzdHJ1Y3QgaGZzX2Jub2RlICpoZnNfYm1hcF9hbGxvYyhzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKTtcbiBleHRlcm4gdm9pZCBoZnNfYm1hcF9mcmVlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUpO1xuK3N0cnVjdCBoZnNfYm1hcF9jdHg7XG4rZXh0ZXJuIGJvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeCk7XG4gXG4gLyogYm5vZGUuYyAqL1xuIGV4dGVybiB2b2lkIGhmc19ibm9kZV9yZWFkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHZvaWQgKmJ1ZiwgdTMyIG9mZiwgdTMyIGxlbik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDoyMS4wMTU0NjUwNDhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5Njg0NTUzNDcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkhGUyBGaWxlc3lzdGVtIFBhdGNoIEFuYWx5c2lzIFx1MDAyNiBGdXp6aW5nIFN0cmF0ZWd5KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgbG9va3MgbGlrZSBpdCdzIHRvdWNoaW5nIGBmcy9oZnMvYnRyZWUuY2AgYW5kIGBmcy9oZnMvYnRyZWUuaGAsIHNwZWNpZmljYWxseS4gSSBzZWUgbmV3IGZ1bmN0aW9ucyBhZGRlZDogYGhmc19ibWFwX3Rlc3RfYml0YCwgd2hpY2ggZ2V0cyBjYWxsZWQgaW4gYGhmc19idHJlZV9vcGVuYCwgYWxvbmcgd2l0aCBgaGZzX2JtYXBfZ2V0X21hcF9wYWdlYCwgYGlzX2Jub2RlX29mZnNldF92YWxpZGAsIGFuZCBgY2hlY2tfYW5kX2NvcnJlY3RfcmVxdWVzdGVkX2xlbmd0aGAuIFJpZ2h0IG9mZiB0aGUgYmF0LCB0aGlzIHRlbGxzIG1lIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBIRlMgZmlsZXN5c3RlbS4gVGhhdCBtZWFucyBwb3RlbnRpYWwgZm9yIHNvbWUgaW50ZXJlc3RpbmcgZWRnZSBjYXNlcyBhbmQgdnVsbmVyYWJpbGl0aWVzLCBzbyBmdXp6aW5nIGlzIGRlZmluaXRlbHkgaW4gb3JkZXIuXG5cbkZpcnN0IHN0ZXA6IEkgbmVlZCB0byB2ZXJpZnkgd2hpY2ggY29uZmlnIG9wdGlvbnMgYXJlIHJlbGV2YW50IGZvciB0aGUgSEZTIGZpbGVzeXN0ZW0uIFNpbmNlIGl0J3MgdG91Y2hpbmcgY29yZSBmaWxlc3lzdGVtIGNvZGUsIGBmcy9oZnMvS2NvbmZpZ2AgaXMgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSB0byBzdGFydC4gSSdtIGJldHRpbmcgdGhhdCBgQ09ORklHX0hGU19GU2AgaXMgdGhlIGtleS4gT25jZSBJIGhhdmUgdGhlIGNvbmZpZyBvcHRpb25zIGRpYWxlZCBpbiwgSSBjYW4gZW5zdXJlIHRoYXQgdGhlIGZ1enppbmcgZW52aXJvbm1lbnQgaXMgYXBwcm9wcmlhdGVseSBjb25maWd1cmVkIHRvIHRyaWdnZXIgdGhlIGNvZGUgcGF0aHMgSSB3YW50IHRvIHRlc3QuIFRoYXQncyB0aGUga2V5IHRvIG1ha2luZyBzdXJlIHRoYXQgdGhlIGZ1enppbmcgZWZmb3J0cyBhcmUgdGFyZ2V0ZWQgYW5kIGVmZmVjdGl2ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzMzNiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjUwOjMwLjcwMDAyMTA5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwODkwMTg3MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSEZTX0ZTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2hmcy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2hmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMvaGZzL0tjb25maWc6Mjpjb25maWcgSEZTX0ZTXFxuZnMvaGZzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiQXBwbGUgTWFjaW50b3NoIGZpbGUgc3lzdGVtIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjUwOjMxLjIwODkzNDY1MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNjMxNTQzNzAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSEZTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgbGlrZSB0aGUga2V5IGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgaXMgYEhGU19GU2AuIFJpZ2h0LCBsZXQncyB6ZXJvIGluIG9uIHRoZSBjb3JlIGNoYW5nZXMuIE15IGluaXRpYWwgc2NhbiBwb2ludHMgdG8gYSBmZXcgZnVuY3Rpb24gbW9kaWZpY2F0aW9ucyBhbmQgYWRkaXRpb25zLiBJdCBsb29rcyBsaWtlIHdlJ3JlIHRvdWNoaW5nIGBoZnNfYnRyZWVfb3BlbmAsIGBoZnNfYm1hcF9hbGxvY2AsIGFuZCBgaGZzX2JtYXBfZnJlZWAg4oCTIHRoYXQgZ2l2ZXMgbWUgc29tZSBjb250ZXh0IGltbWVkaWF0ZWx5LiBUaGVuIHRoZXJlIGFyZSBzb21lIG5ldyBmdW5jdGlvbnM6IGBoZnNfYm1hcF90ZXN0X2JpdGAsIGBoZnNfYm1hcF9nZXRfbWFwX3BhZ2VgLCBgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkYCwgYW5kIGBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoYC5cblxuQSBxdWljayBnbGFuY2UgYXQgdGhlIHNpZ25hdHVyZXMgcmV2ZWFscyBzb21lIGludGVyZXN0aW5nIGRldGFpbHMuIGBpc19ibm9kZV9vZmZzZXRfdmFsaWRgIGFuZCBgY2hlY2tfYW5kX2NvcnJlY3RfcmVxdWVzdGVkX2xlbmd0aGAgYXJlIGRlY2xhcmVkIGFzIGBzdGF0aWMgaW5saW5lYCwgd2hpY2ggd2lsbCBoYXZlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBkdWUgdG8gaW5saW5pbmcuIGBoZnNfYm1hcF9nZXRfbWFwX3BhZ2VgIGlzIGFsc28gZGVjbGFyZWQgYHN0YXRpY2AsIG1ha2luZyBpdCBub24tZXhwb3J0ZWQuIEJ1dCBgaGZzX2JtYXBfdGVzdF9iaXRgIGlzIGdsb2JhbC9leHBvcnRlZC4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC5cblxuTm93LCBsZXQncyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9ucywgc3RhcnRpbmcgd2l0aCBgaGZzX2J0cmVlX29wZW5gLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIGEgaG90LXBhdGggZnVuY3Rpb24uIFRoaW5raW5nIGFib3V0IEhGUyBmaWxlIHN5c3RlbXMsIG9wZW5pbmcgYSBidHJlZSBoYXBwZW5zIGR1cmluZyBtb3VudCwgcmlnaHQ/IFNvLCB0aGlzIGNvdWxkIGJlIHBlcmZvcm1hbmNlLWNyaXRpY2FsLiBUaGVuLCBsZXQncyBjaGVjayBgaGZzX2JtYXBfdGVzdF9iaXRgLiBMb29rcyBsaWtlIGl0IGlzIGNhbGxlZCBmcm9tIGBoZnNfYnRyZWVfb3BlbmAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTUsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NTA6NDEuODQwNDgxMDYyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNTk2MjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImhmc19idHJlZV9vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2hmcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvaGZzL2J0cmVlLmMtMTgtLyogR2V0IGEgcmVmZXJlbmNlIHRvIGEgQipUcmVlIGFuZCBkbyBzb21lIGluaXRpYWwgY2hlY2tzICovXFxuZnMvaGZzL2J0cmVlLmM6MTk6c3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2V5Y21wKVxcbmZzL2hmcy9idHJlZS5jLTIwLXtcXG4tLVxcbmZzL2hmcy9idHJlZS5oPTc3PXN0cnVjdCBoZnNfZmluZF9kYXRhIHtcXG4tLVxcbmZzL2hmcy9idHJlZS5oLTg4LS8qIGJ0cmVlLmMgKi9cXG5mcy9oZnMvYnRyZWUuaDo4OTpleHRlcm4gc3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLFxcbmZzL2hmcy9idHJlZS5oLTkwLVxcdFxcdFxcdFxcdFxcdGJ0cmVlX2tleWNtcCBrZXljbXApO1xcbi0tXFxuZnMvaGZzL21kYi5jPTk0PWludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbi0tXFxuZnMvaGZzL21kYi5jLTIyNy1cXG5mcy9oZnMvbWRiLmM6MjI4OlxcdEhGU19TQihzYiktXFx1MDAzZWV4dF90cmVlID0gaGZzX2J0cmVlX29wZW4oc2IsIEhGU19FWFRfQ05JRCwgaGZzX2V4dF9rZXljbXApO1xcbmZzL2hmcy9tZGIuYy0yMjktXFx0aWYgKCFIRlNfU0Ioc2IpLVxcdTAwM2VleHRfdHJlZSkge1xcbi0tXFxuZnMvaGZzL21kYi5jLTIzMi1cXHR9XFxuZnMvaGZzL21kYi5jOjIzMzpcXHRIRlNfU0Ioc2IpLVxcdTAwM2VjYXRfdHJlZSA9IGhmc19idHJlZV9vcGVuKHNiLCBIRlNfQ0FUX0NOSUQsIGhmc19jYXRfa2V5Y21wKTtcXG5mcy9oZnMvbWRiLmMtMjM0LVxcdGlmICghSEZTX1NCKHNiKS1cXHUwMDNlY2F0X3RyZWUpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NTA6NDEuOTExMTI1MTY3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwMzQzNTUzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRlY29uc3RydWN0aW5nIHRoZSBIRlMrIE1vdW50IFNlcXVlbmNlKipcblxuT2theSwgc28gSSdtIHRyYWNpbmcgdGhyb3VnaCB0aGlzIEhGUysgbW91bnQgcHJvY2VzcywgYW5kIGl0IHNlZW1zIGxpa2UgYGhmc19idHJlZV9vcGVuYCBpcyB0cmlnZ2VyZWQgZHVyaW5nIHRoZSBtb3VudCBvcGVyYXRpb24sIHNwZWNpZmljYWxseSB3aXRoaW4gYGhmc19tZGJfZ2V0YC4gVGhhdCBtYWtlcyBzZW5zZTsgd2UgbmVlZCB0byBhY2Nlc3MgdGhlIEItdHJlZSBmb3IgbWV0YWRhdGEuXG5cbk5vdywgaGVyZSdzIHRoZSBpbnRlcmVzdGluZyBwYXJ0OiBgaGZzX2JtYXBfdGVzdF9iaXRgIGdldHMgY2FsbGVkIGZyb20gKndpdGhpbiogYGhmc19idHJlZV9vcGVuYC4gVGhhdCBzdWdnZXN0cyB3ZSdyZSBkb2luZyBzb21lIGtpbmQgb2YgYml0LWxldmVsIGNoZWNrIHdpdGhpbiB0aGUgQi10cmVlIG9wZW5pbmcgc2VxdWVuY2UsIHByb2JhYmx5IHJlbGF0ZWQgdG8gdGhlIGFsbG9jYXRpb24gYml0bWFwLlxuXG5NeSBuZXh0IHN0ZXA/IEkgd2FudCB0byBkZXRlcm1pbmUgaWYgYGhmc19ibWFwX3Rlc3RfYml0YCBpcyB1c2VkICphbnl3aGVyZSBlbHNlKiBpbiB0aGUgY29kZWJhc2UuIFVuZGVyc3RhbmRpbmcgYWxsIGl0cyBjYWxsIHNpdGVzIHdpbGwgcmVhbGx5IHNvbGlkaWZ5IHRoZSBjb250ZXh0IGhlcmUuIEknbGwgbmVlZCB0byBrbm93IGlmIHRoYXQgZnVuY3Rpb24gaGFzIG90aGVyIGltcGxpY2F0aW9ucyB3aXRoaW4gdGhlIEhGUysgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ5NTYsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDo0NS4zMTQ1NjI5NzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM5MDY1MDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImhmc19ibWFwX3Rlc3RfYml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2hmcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvaGZzL2J0cmVlLmM9MTk9c3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2V5Y21wKVxcbi0tXFxuZnMvaGZzL2J0cmVlLmMtMTYzLVxcbmZzL2hmcy9idHJlZS5jOjE2NDpcXHRpZiAoIWhmc19ibWFwX3Rlc3RfYml0KG5vZGUsIDApKSB7XFxuZnMvaGZzL2J0cmVlLmMtMTY1LVxcdFxcdHByX3dhcm4oXFxcIiglcyk6ICVzIChjbmlkIDB4JXgpIG1hcCByZWNvcmQgaW52YWxpZCBvciBiaXRtYXAgY29ycnVwdGlvbiBkZXRlY3RlZCwgZm9yY2luZyByZWFkLW9ubHkuXFxcXG5cXFwiLFxcbi0tXFxuZnMvaGZzL2J0cmVlLmM9Mzk3PXN0YXRpYyBzdHJ1Y3QgcGFnZSAqaGZzX2JtYXBfZ2V0X21hcF9wYWdlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsXFxuLS1cXG5mcy9oZnMvYnRyZWUuYy00MzYtXFxuZnMvaGZzL2J0cmVlLmM6NDM3OmJvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeClcXG5mcy9oZnMvYnRyZWUuYy00Mzgte1xcbi0tXFxuZnMvaGZzL2J0cmVlLmg9OTY9c3RydWN0IGhmc19ibWFwX2N0eDtcXG5mcy9oZnMvYnRyZWUuaDo5NzpleHRlcm4gYm9vbCBoZnNfYm1hcF90ZXN0X2JpdChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB1MzIgbm9kZV9iaXRfaWR4KTtcXG5mcy9oZnMvYnRyZWUuaC05OC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NTA6NDUuNjUzNjMyOTEyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYxODk3OTI4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEhGUyBCLVRyZWUgVmFsaWRhdGlvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyB2YWxpZGF0aW9uIGNoZWNrcyB3aXRoaW4gdGhlIEhGUyBiLXRyZWUgb3BlbmluZyBwcm9jZXNzLiBTcGVjaWZpY2FsbHksIGl0J3MgZm9jdXNlZCBvbiBjb25maXJtaW5nIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIG1hcCByZWNvcmQgYW5kIHZlcmlmeWluZyB0aGUgYWJzZW5jZSBvZiBiaXRtYXAgY29ycnVwdGlvbi4gSXQgbG9va3MgbGlrZSB0aGUgcmVsZXZhbnQgZnVuY3Rpb25zIGFyZSBgaGZzX2J0cmVlX29wZW5gIGFuZCBgaGZzX2JtYXBfdGVzdF9iaXRgLiBUaGUgY29uZmlnIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQgLSBgSEZTX0ZTYC4gVGhlIHJlYXNvbmluZyBpcyBzb3VuZDogdGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIHRyaWdnZXJlZCBkdXJpbmcgdGhlIG1vdW50aW5nIG9mIGEgY3JhZnRlZCBIRlMgaW1hZ2UsIGFuZCB0aGVyZWZvcmUgY291bGQgYmUgZXhwbG9pdGVkLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIGZvciBhbnkgb3RoZXIgZnVuY3Rpb25zIGludm9sdmVkLi4uIFJpZ2h0LCBgaGZzX2JtYXBfZ2V0X21hcF9wYWdlYCBpcyBzdGF0aWMsIHNvIGl0IHdvbid0IGJlIGV4cG9zZWQgYXMgYSBzeW1ib2wgYW5kIGlzIG5vdCByZWxldmFudCBmb3IgdGhlIGltbWVkaWF0ZSBwdXJwb3NlIG9mIGlkZW50aWZ5aW5nIHRoZSBmb2N1cyBvZiB0aGUgcGF0Y2gsIGl0IHNlZW1zLiBXZSBhbHJlYWR5IGNvbmZpcm1lZCBgaGZzX2J0cmVlX29wZW5gIGlzIGdsb2JhbCBhbmQgYGhmc19ibWFwX3Rlc3RfYml0YCBpcyBhbHNvIGdsb2JhbC5cblxuQWxyaWdodCwgdGhhdCBjb3ZlcnMgaXQuIEknbGwgc2V0IHRoZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjE3LCJPdXRwdXRUb2tlbnMiOjExMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDo1MC4yNzI2MTQ1OFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2MzUxMTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJIRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJoZnNfYnRyZWVfb3BlblwiLFxuICAgIFwiaGZzX2JtYXBfdGVzdF9iaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgZm9yIEhGUyBidHJlZSBtYXAgcmVjb3JkcyBkdXJpbmcgbW91bnQuIEl0IGludHJvZHVjZXMgYSBuZXcgZnVuY3Rpb24gYGhmc19ibWFwX3Rlc3RfYml0YCBhbmQgbW9kaWZpZXMgYGhmc19idHJlZV9vcGVuYC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIGJ5IG1vdW50aW5nIGEgY3JhZnRlZCBIRlMgZmlsZXN5c3RlbSBpbWFnZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJIRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJoZnNfYnRyZWVfb3BlblwiLFxuICAgIFwiaGZzX2JtYXBfdGVzdF9iaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgZm9yIEhGUyBidHJlZSBtYXAgcmVjb3JkcyBkdXJpbmcgbW91bnQuIEl0IGludHJvZHVjZXMgYSBuZXcgZnVuY3Rpb24gYGhmc19ibWFwX3Rlc3RfYml0YCBhbmQgbW9kaWZpZXMgYGhmc19idHJlZV9vcGVuYC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIGJ5IG1vdW50aW5nIGEgY3JhZnRlZCBIRlMgZmlsZXN5c3RlbSBpbWFnZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowd48dd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-03 05:32:14 +0000 UTC FinishedAt: 2026-07-03 05:50:52 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "4a50a141f05a8d1737661b19ee22ff8455b94409", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "HFS_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": [ "HFS_FS" ], "series_id": "78b17e4d-8f65-4419-a039-dc6dbfea0d6c" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "hfs_btree_open", "hfs_bmap_test_bit" ], "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+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0hGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2hmc19idHJlZV9vcGVuJiMzNDssCiAgICAmIzM0O2hmc19ibWFwX3Rlc3RfYml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSEZTIGJ0cmVlIG1hcCByZWNvcmRzIGR1cmluZyBtb3VudC4gSXQgaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBgaGZzX2JtYXBfdGVzdF9iaXRgIGFuZCBtb2RpZmllcyBgaGZzX2J0cmVlX29wZW5gLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgYnkgbW91bnRpbmcgYSBjcmFmdGVkIEhGUyBmaWxlc3lzdGVtIGltYWdlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjUwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDhjYjZkNDkzZWRhZTkwOWE1ZWVmYTQ0Yjc3ZmU0YTgxYjRkYjdkMFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMgMDU6NTA6MTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmMgYi9mcy9oZnMvYnRyZWUuY1xuaW5kZXggMmViMzdhMmY2NGU4NjYuLjM2ZGM4NzM1ZDAxYTNjIDEwMDY0NFxuLS0tIGEvZnMvaGZzL2J0cmVlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9idHJlZS5jXG5AQCAtMjMsNiAmIzQzOzIzLDcgQEAgc3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2VcbiBcdHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nO1xuIFx0c3RydWN0IGZvbGlvICpmb2xpbztcbiBcdHN0cnVjdCBidWZmZXJfaGVhZCAqYmg7XG4mIzQzO1x0c3RydWN0IGhmc19ibm9kZSAqbm9kZTtcbiBcdHVuc2lnbmVkIGludCBzaXplO1xuIFx0dTE2IGRibG9jaztcbiBcdHNlY3Rvcl90IHN0YXJ0X2Jsb2NrO1xuQEAgLTE1NSw2ICYjNDM7MTU2LDIwIEBAIHN0cnVjdCBoZnNfYnRyZWUgKmhmc19idHJlZV9vcGVuKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpZCwgYnRyZWVfa2V5Y21wIGtlXG4gXHRrdW5tYXBfbG9jYWwoaGVhZCk7XG4gXHRmb2xpb191bmxvY2soZm9saW8pO1xuIFx0Zm9saW9fcHV0KGZvbGlvKTtcbiYjNDM7XG4mIzQzO1x0bm9kZSA9IGhmc19ibm9kZV9maW5kKHRyZWUsIDApO1xuJiM0MztcdGlmIChJU19FUlIobm9kZSkpXG4mIzQzO1x0XHRnb3RvIGZyZWVfaW5vZGU7XG4mIzQzO1xuJiM0MztcdGlmICghaGZzX2JtYXBfdGVzdF9iaXQobm9kZSwgMCkpIHtcbiYjNDM7XHRcdHByX3dhcm4oXCYjMzQ7KCVzKTogJXMgKGNuaWQgMHgleCkgbWFwIHJlY29yZCBpbnZhbGlkIG9yIGJpdG1hcCBjb3JydXB0aW9uIGRldGVjdGVkLCBmb3JjaW5nIHJlYWQtb25seS5cXG5cJiMzNDssXG4mIzQzO1x0XHRcdHNiLVx1MDAzZXNfaWQsIGlkID09IEhGU19FWFRfQ05JRCA/IFwmIzM0O2V4dGVudHNcJiMzNDsgOiBcJiMzNDtjYXRhbG9nXCYjMzQ7LCBpZCk7XG4mIzQzO1x0XHRwcl93YXJuKFwmIzM0O1J1biBmc2NrLmhmcyB0byByZXBhaXIuXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdHNiLVx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0aGZzX2Jub2RlX3B1dChub2RlKTtcbiYjNDM7XG4gXHRyZXR1cm4gdHJlZTtcbiBcbiBmYWlsX2ZvbGlvOlxuQEAgLTM1Niw2ICYjNDM7MzcxLDg3IEBAIHN0cnVjdCBoZnNfYm5vZGUgKmhmc19ibWFwX2FsbG9jKHN0cnVjdCBoZnNfYnRyZWUgKnRyZWUpXG4gXHR9XG4gfVxuIFxuJiM0MztzdHJ1Y3QgaGZzX2JtYXBfY3R4IHtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgcGFnZV9pZHg7XG4mIzQzO1x0dW5zaWduZWQgaW50IG9mZjtcbiYjNDM7XHR1MTYgbGVuO1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7I2RlZmluZSBIRlNfQlRSRUVfSERSX01BUF9SRUNfSU5ERVhcdDJcbiYjNDM7I2RlZmluZSBIRlNfQlRSRUVfTUFQX05PREVfUkVDX0lOREVYXHQwXG4mIzQzO1xuJiM0MztzdGF0aWMgaW5saW5lIGJvb2wgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYpXG4mIzQzO3tcbiYjNDM7XHRyZXR1cm4gb2ZmIFx1MDAzYyBub2RlLVx1MDAzZXRyZWUtXHUwMDNlbm9kZV9zaXplO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgaW5saW5lIHUzMiBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYsIHUzMiBsZW4pXG4mIzQzO3tcbiYjNDM7XHRpZiAob2ZmIFx1MDAzZT0gbm9kZS1cdTAwM2V0cmVlLVx1MDAzZW5vZGVfc2l6ZSlcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcdGlmICgodTY0KW9mZiAmIzQzOyBsZW4gXHUwMDNlIG5vZGUtXHUwMDNldHJlZS1cdTAwM2Vub2RlX3NpemUpXG4mIzQzO1x0XHRyZXR1cm4gbm9kZS1cdTAwM2V0cmVlLVx1MDAzZW5vZGVfc2l6ZSAtIG9mZjtcbiYjNDM7XHRyZXR1cm4gbGVuO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgc3RydWN0IHBhZ2UgKmhmc19ibWFwX2dldF9tYXBfcGFnZShzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLFxuJiM0MztcdFx0XHRcdFx0ICBzdHJ1Y3QgaGZzX2JtYXBfY3R4ICpjdHgsXG4mIzQzO1x0XHRcdFx0XHQgIHUzMiBieXRlX29mZnNldClcbiYjNDM7e1xuJiM0MztcdHUxNiByZWNfaWR4LCBvZmYxNjtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgcGFnZV9vZmY7XG4mIzQzO1xuJiM0MztcdGlmIChub2RlLVx1MDAzZXRoaXMgPT0gMCkge1xuJiM0MztcdFx0aWYgKG5vZGUtXHUwMDNldHlwZSAhPSBIRlNfTk9ERV9IRUFERVIpIHtcbiYjNDM7XHRcdFx0cHJfZXJyKFwmIzM0O2hmczogaW52YWxpZCBidHJlZSBoZWFkZXIgbm9kZVxcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xuJiM0MztcdFx0fVxuJiM0MztcdFx0cmVjX2lkeCA9IEhGU19CVFJFRV9IRFJfTUFQX1JFQ19JTkRFWDtcbiYjNDM7XHR9IGVsc2Uge1xuJiM0MztcdFx0aWYgKG5vZGUtXHUwMDNldHlwZSAhPSBIRlNfTk9ERV9NQVApIHtcbiYjNDM7XHRcdFx0cHJfZXJyKFwmIzM0O2hmczogaW52YWxpZCBidHJlZSBtYXAgbm9kZVxcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xuJiM0MztcdFx0fVxuJiM0MztcdFx0cmVjX2lkeCA9IEhGU19CVFJFRV9NQVBfTk9ERV9SRUNfSU5ERVg7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRjdHgtXHUwMDNlbGVuID0gaGZzX2JyZWNfbGVub2ZmKG5vZGUsIHJlY19pZHgsIFx1MDAyNm9mZjE2KTtcbiYjNDM7XHRpZiAoIWN0eC1cdTAwM2VsZW4pXG4mIzQzO1x0XHRyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTtcbiYjNDM7XG4mIzQzO1x0aWYgKCFpc19ibm9kZV9vZmZzZXRfdmFsaWQobm9kZSwgb2ZmMTYpKVxuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTyk7XG4mIzQzO1xuJiM0MztcdGN0eC1cdTAwM2VsZW4gPSBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKG5vZGUsIG9mZjE2LCBjdHgtXHUwMDNlbGVuKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGJ5dGVfb2Zmc2V0IFx1MDAzZT0gY3R4LVx1MDAzZWxlbilcbiYjNDM7XHRcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xuJiM0MztcbiYjNDM7XHRwYWdlX29mZiA9ICh1MzIpb2ZmMTYgJiM0Mzsgbm9kZS1cdTAwM2VwYWdlX29mZnNldCAmIzQzOyBieXRlX29mZnNldDtcbiYjNDM7XHRjdHgtXHUwMDNlcGFnZV9pZHggPSBwYWdlX29mZiBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVDtcbiYjNDM7XHRjdHgtXHUwMDNlb2ZmID0gcGFnZV9vZmYgXHUwMDI2IH5QQUdFX01BU0s7XG4mIzQzO1xuJiM0MztcdHJldHVybiBub2RlLVx1MDAzZXBhZ2VbY3R4LVx1MDAzZXBhZ2VfaWR4XTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7Ym9vbCBoZnNfYm1hcF90ZXN0X2JpdChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB1MzIgbm9kZV9iaXRfaWR4KVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGhmc19ibWFwX2N0eCBjdHg7XG4mIzQzO1x0c3RydWN0IHBhZ2UgKnBhZ2U7XG4mIzQzO1x0dTggKmJtYXAsIGJ5dGUsIG1hc2s7XG4mIzQzO1xuJiM0MztcdHBhZ2UgPSBoZnNfYm1hcF9nZXRfbWFwX3BhZ2Uobm9kZSwgXHUwMDI2Y3R4LCBub2RlX2JpdF9pZHggLyBCSVRTX1BFUl9CWVRFKTtcbiYjNDM7XHRpZiAoSVNfRVJSKHBhZ2UpKVxuJiM0MztcdFx0cmV0dXJuIGZhbHNlO1xuJiM0MztcbiYjNDM7XHRibWFwID0ga21hcF9sb2NhbF9wYWdlKHBhZ2UpO1xuJiM0MztcdGJ5dGUgPSBibWFwW2N0eC5vZmZdO1xuJiM0MztcdGt1bm1hcF9sb2NhbChibWFwKTtcbiYjNDM7XG4mIzQzO1x0bWFzayA9IDEgXHUwMDNjXHUwMDNjICg3IC0gKG5vZGVfYml0X2lkeCAlIEJJVFNfUEVSX0JZVEUpKTtcbiYjNDM7XHRyZXR1cm4gKGJ5dGUgXHUwMDI2IG1hc2spICE9IDA7XG4mIzQzO31cbiYjNDM7XG4gdm9pZCBoZnNfYm1hcF9mcmVlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUpXG4ge1xuIFx0c3RydWN0IGhmc19idHJlZSAqdHJlZTtcbmRpZmYgLS1naXQgYS9mcy9oZnMvYnRyZWUuaCBiL2ZzL2hmcy9idHJlZS5oXG5pbmRleCA5OWJlODU4YjI0NDY1MC4uODYwMzZlMTgwOTVmNGUgMTAwNjQ0XG4tLS0gYS9mcy9oZnMvYnRyZWUuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZnMvaGZzL2J0cmVlLmhcbkBAIC05Myw2ICYjNDM7OTMsOCBAQCBleHRlcm4gdm9pZCBoZnNfYnRyZWVfd3JpdGUoc3RydWN0IGhmc19idHJlZSAqdHJlZSk7XG4gZXh0ZXJuIGludCBoZnNfYm1hcF9yZXNlcnZlKHN0cnVjdCBoZnNfYnRyZWUgKnRyZWUsIHUzMiByc3ZkX25vZGVzKTtcbiBleHRlcm4gc3RydWN0IGhmc19ibm9kZSAqaGZzX2JtYXBfYWxsb2Moc3RydWN0IGhmc19idHJlZSAqdHJlZSk7XG4gZXh0ZXJuIHZvaWQgaGZzX2JtYXBfZnJlZShzdHJ1Y3QgaGZzX2Jub2RlICpub2RlKTtcbiYjNDM7c3RydWN0IGhmc19ibWFwX2N0eDtcbiYjNDM7ZXh0ZXJuIGJvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeCk7XG4gXG4gLyogYm5vZGUuYyAqL1xuIGV4dGVybiB2b2lkIGhmc19ibm9kZV9yZWFkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHZvaWQgKmJ1ZiwgdTMyIG9mZiwgdTMyIGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SEZTX0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aGZzX2J0cmVlX29wZW4mIzM0OywKICAgICYjMzQ7aGZzX2JtYXBfdGVzdF9iaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGxvZ2ljIGZvciBIRlMgYnRyZWUgbWFwIHJlY29yZHMgZHVyaW5nIG1vdW50LiBJdCBpbnRyb2R1Y2VzIGEgbmV3IGZ1bmN0aW9uIGBoZnNfYm1hcF90ZXN0X2JpdGAgYW5kIG1vZGlmaWVzIGBoZnNfYnRyZWVfb3BlbmAuIFRoaXMgaXMgZnVuY3Rpb25hbCBjb2RlIHJlYWNoYWJsZSBieSBtb3VudGluZyBhIGNyYWZ0ZWQgSEZTIGZpbGVzeXN0ZW0gaW1hZ2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDQ4Y2I2ZDQ5M2VkYWU5MDlhNWVlZmE0NGI3N2ZlNGE4MWI0ZGI3ZDAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzIDA1OjUwOjE4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmMgYi9mcy9oZnMvYnRyZWUuYwppbmRleCAyZWIzN2EyZjY0ZTg2Ni4uMzZkYzg3MzVkMDFhM2MgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9idHJlZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9idHJlZS5jCkBAIC0yMyw2ICYjNDM7MjMsNyBAQCBzdHJ1Y3QgaGZzX2J0cmVlICpoZnNfYnRyZWVfb3BlbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1MzIgaWQsIGJ0cmVlX2tleWNtcCBrZQogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOwogCXN0cnVjdCBmb2xpbyAqZm9saW87CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKJiM0MzsJc3RydWN0IGhmc19ibm9kZSAqbm9kZTsKIAl1bnNpZ25lZCBpbnQgc2l6ZTsKIAl1MTYgZGJsb2NrOwogCXNlY3Rvcl90IHN0YXJ0X2Jsb2NrOwpAQCAtMTU1LDYgJiM0MzsxNTYsMjAgQEAgc3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2UKIAlrdW5tYXBfbG9jYWwoaGVhZCk7CiAJZm9saW9fdW5sb2NrKGZvbGlvKTsKIAlmb2xpb19wdXQoZm9saW8pOwomIzQzOwomIzQzOwlub2RlID0gaGZzX2Jub2RlX2ZpbmQodHJlZSwgMCk7CiYjNDM7CWlmIChJU19FUlIobm9kZSkpCiYjNDM7CQlnb3RvIGZyZWVfaW5vZGU7CiYjNDM7CiYjNDM7CWlmICghaGZzX2JtYXBfdGVzdF9iaXQobm9kZSwgMCkpIHsKJiM0MzsJCXByX3dhcm4oJiMzNDsoJXMpOiAlcyAoY25pZCAweCV4KSBtYXAgcmVjb3JkIGludmFsaWQgb3IgYml0bWFwIGNvcnJ1cHRpb24gZGV0ZWN0ZWQsIGZvcmNpbmcgcmVhZC1vbmx5LlxuJiMzNDssCiYjNDM7CQkJc2ItJmd0O3NfaWQsIGlkID09IEhGU19FWFRfQ05JRCA/ICYjMzQ7ZXh0ZW50cyYjMzQ7IDogJiMzNDtjYXRhbG9nJiMzNDssIGlkKTsKJiM0MzsJCXByX3dhcm4oJiMzNDtSdW4gZnNjay5oZnMgdG8gcmVwYWlyLlxuJiMzNDspOwomIzQzOwkJc2ItJmd0O3NfZmxhZ3MgfD0gU0JfUkRPTkxZOwomIzQzOwl9CiYjNDM7CiYjNDM7CWhmc19ibm9kZV9wdXQobm9kZSk7CiYjNDM7CiAJcmV0dXJuIHRyZWU7CiAKIGZhaWxfZm9saW86CkBAIC0zNTYsNiAmIzQzOzM3MSw4NyBAQCBzdHJ1Y3QgaGZzX2Jub2RlICpoZnNfYm1hcF9hbGxvYyhzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKQogCX0KIH0KIAomIzQzO3N0cnVjdCBoZnNfYm1hcF9jdHggewomIzQzOwl1bnNpZ25lZCBpbnQgcGFnZV9pZHg7CiYjNDM7CXVuc2lnbmVkIGludCBvZmY7CiYjNDM7CXUxNiBsZW47CiYjNDM7fTsKJiM0MzsKJiM0MzsjZGVmaW5lIEhGU19CVFJFRV9IRFJfTUFQX1JFQ19JTkRFWAkyCiYjNDM7I2RlZmluZSBIRlNfQlRSRUVfTUFQX05PREVfUkVDX0lOREVYCTAKJiM0MzsKJiM0MztzdGF0aWMgaW5saW5lIGJvb2wgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYpCiYjNDM7ewomIzQzOwlyZXR1cm4gb2ZmICZsdDsgbm9kZS0mZ3Q7dHJlZS0mZ3Q7bm9kZV9zaXplOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgaW5saW5lIHUzMiBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYsIHUzMiBsZW4pCiYjNDM7ewomIzQzOwlpZiAob2ZmICZndDs9IG5vZGUtJmd0O3RyZWUtJmd0O25vZGVfc2l6ZSkKJiM0MzsJCXJldHVybiAwOwomIzQzOwlpZiAoKHU2NClvZmYgJiM0MzsgbGVuICZndDsgbm9kZS0mZ3Q7dHJlZS0mZ3Q7bm9kZV9zaXplKQomIzQzOwkJcmV0dXJuIG5vZGUtJmd0O3RyZWUtJmd0O25vZGVfc2l6ZSAtIG9mZjsKJiM0MzsJcmV0dXJuIGxlbjsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHN0cnVjdCBwYWdlICpoZnNfYm1hcF9nZXRfbWFwX3BhZ2Uoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwKJiM0MzsJCQkJCSAgc3RydWN0IGhmc19ibWFwX2N0eCAqY3R4LAomIzQzOwkJCQkJICB1MzIgYnl0ZV9vZmZzZXQpCiYjNDM7ewomIzQzOwl1MTYgcmVjX2lkeCwgb2ZmMTY7CiYjNDM7CXVuc2lnbmVkIGludCBwYWdlX29mZjsKJiM0MzsKJiM0MzsJaWYgKG5vZGUtJmd0O3RoaXMgPT0gMCkgewomIzQzOwkJaWYgKG5vZGUtJmd0O3R5cGUgIT0gSEZTX05PREVfSEVBREVSKSB7CiYjNDM7CQkJcHJfZXJyKCYjMzQ7aGZzOiBpbnZhbGlkIGJ0cmVlIGhlYWRlciBub2RlXG4mIzM0Oyk7CiYjNDM7CQkJcmV0dXJuIEVSUl9QVFIoLUVJTyk7CiYjNDM7CQl9CiYjNDM7CQlyZWNfaWR4ID0gSEZTX0JUUkVFX0hEUl9NQVBfUkVDX0lOREVYOwomIzQzOwl9IGVsc2UgewomIzQzOwkJaWYgKG5vZGUtJmd0O3R5cGUgIT0gSEZTX05PREVfTUFQKSB7CiYjNDM7CQkJcHJfZXJyKCYjMzQ7aGZzOiBpbnZhbGlkIGJ0cmVlIG1hcCBub2RlXG4mIzM0Oyk7CiYjNDM7CQkJcmV0dXJuIEVSUl9QVFIoLUVJTyk7CiYjNDM7CQl9CiYjNDM7CQlyZWNfaWR4ID0gSEZTX0JUUkVFX01BUF9OT0RFX1JFQ19JTkRFWDsKJiM0MzsJfQomIzQzOwomIzQzOwljdHgtJmd0O2xlbiA9IGhmc19icmVjX2xlbm9mZihub2RlLCByZWNfaWR4LCAmYW1wO29mZjE2KTsKJiM0MzsJaWYgKCFjdHgtJmd0O2xlbikKJiM0MzsJCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwomIzQzOwomIzQzOwlpZiAoIWlzX2Jub2RlX29mZnNldF92YWxpZChub2RlLCBvZmYxNikpCiYjNDM7CQlyZXR1cm4gRVJSX1BUUigtRUlPKTsKJiM0MzsKJiM0MzsJY3R4LSZndDtsZW4gPSBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKG5vZGUsIG9mZjE2LCBjdHgtJmd0O2xlbik7CiYjNDM7CiYjNDM7CWlmIChieXRlX29mZnNldCAmZ3Q7PSBjdHgtJmd0O2xlbikKJiM0MzsJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwomIzQzOwomIzQzOwlwYWdlX29mZiA9ICh1MzIpb2ZmMTYgJiM0Mzsgbm9kZS0mZ3Q7cGFnZV9vZmZzZXQgJiM0MzsgYnl0ZV9vZmZzZXQ7CiYjNDM7CWN0eC0mZ3Q7cGFnZV9pZHggPSBwYWdlX29mZiAmZ3Q7Jmd0OyBQQUdFX1NISUZUOwomIzQzOwljdHgtJmd0O29mZiA9IHBhZ2Vfb2ZmICZhbXA7IH5QQUdFX01BU0s7CiYjNDM7CiYjNDM7CXJldHVybiBub2RlLSZndDtwYWdlW2N0eC0mZ3Q7cGFnZV9pZHhdOwomIzQzO30KJiM0MzsKJiM0Mztib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgaGZzX2JtYXBfY3R4IGN0eDsKJiM0MzsJc3RydWN0IHBhZ2UgKnBhZ2U7CiYjNDM7CXU4ICpibWFwLCBieXRlLCBtYXNrOwomIzQzOwomIzQzOwlwYWdlID0gaGZzX2JtYXBfZ2V0X21hcF9wYWdlKG5vZGUsICZhbXA7Y3R4LCBub2RlX2JpdF9pZHggLyBCSVRTX1BFUl9CWVRFKTsKJiM0MzsJaWYgKElTX0VSUihwYWdlKSkKJiM0MzsJCXJldHVybiBmYWxzZTsKJiM0MzsKJiM0MzsJYm1hcCA9IGttYXBfbG9jYWxfcGFnZShwYWdlKTsKJiM0MzsJYnl0ZSA9IGJtYXBbY3R4Lm9mZl07CiYjNDM7CWt1bm1hcF9sb2NhbChibWFwKTsKJiM0MzsKJiM0MzsJbWFzayA9IDEgJmx0OyZsdDsgKDcgLSAobm9kZV9iaXRfaWR4ICUgQklUU19QRVJfQllURSkpOwomIzQzOwlyZXR1cm4gKGJ5dGUgJmFtcDsgbWFzaykgIT0gMDsKJiM0Mzt9CiYjNDM7CiB2b2lkIGhmc19ibWFwX2ZyZWUoc3RydWN0IGhmc19ibm9kZSAqbm9kZSkKIHsKIAlzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlOwpkaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmggYi9mcy9oZnMvYnRyZWUuaAppbmRleCA5OWJlODU4YjI0NDY1MC4uODYwMzZlMTgwOTVmNGUgMTAwNjQ0Ci0tLSBhL2ZzL2hmcy9idHJlZS5oCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2hmcy9idHJlZS5oCkBAIC05Myw2ICYjNDM7OTMsOCBAQCBleHRlcm4gdm9pZCBoZnNfYnRyZWVfd3JpdGUoc3RydWN0IGhmc19idHJlZSAqdHJlZSk7CiBleHRlcm4gaW50IGhmc19ibWFwX3Jlc2VydmUoc3RydWN0IGhmc19idHJlZSAqdHJlZSwgdTMyIHJzdmRfbm9kZXMpOwogZXh0ZXJuIHN0cnVjdCBoZnNfYm5vZGUgKmhmc19ibWFwX2FsbG9jKHN0cnVjdCBoZnNfYnRyZWUgKnRyZWUpOwogZXh0ZXJuIHZvaWQgaGZzX2JtYXBfZnJlZShzdHJ1Y3QgaGZzX2Jub2RlICpub2RlKTsKJiM0MztzdHJ1Y3QgaGZzX2JtYXBfY3R4OwomIzQzO2V4dGVybiBib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpOwogCiAvKiBibm9kZS5jICovCiBleHRlcm4gdm9pZCBoZnNfYm5vZGVfcmVhZChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB2b2lkICpidWYsIHUzMiBvZmYsIHUzMiBsZW4pOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwNTo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzM2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkhGUyBGaWxlc3lzdGVtIFBhdGNoIEFuYWx5c2lzICZhbXA7IEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIGxvb2tzIGxpa2UgaXQmIzM5O3MgdG91Y2hpbmcgYGZzL2hmcy9idHJlZS5jYCBhbmQgYGZzL2hmcy9idHJlZS5oYCwgc3BlY2lmaWNhbGx5LiBJIHNlZSBuZXcgZnVuY3Rpb25zIGFkZGVkOiBgaGZzX2JtYXBfdGVzdF9iaXRgLCB3aGljaCBnZXRzIGNhbGxlZCBpbiBgaGZzX2J0cmVlX29wZW5gLCBhbG9uZyB3aXRoIGBoZnNfYm1hcF9nZXRfbWFwX3BhZ2VgLCBgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkYCwgYW5kIGBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIHRoaXMgdGVsbHMgbWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBIRlMgZmlsZXN5c3RlbS4gVGhhdCBtZWFucyBwb3RlbnRpYWwgZm9yIHNvbWUgaW50ZXJlc3RpbmcgZWRnZSBjYXNlcyBhbmQgdnVsbmVyYWJpbGl0aWVzLCBzbyBmdXp6aW5nIGlzIGRlZmluaXRlbHkgaW4gb3JkZXIuCgpGaXJzdCBzdGVwOiBJIG5lZWQgdG8gdmVyaWZ5IHdoaWNoIGNvbmZpZyBvcHRpb25zIGFyZSByZWxldmFudCBmb3IgdGhlIEhGUyBmaWxlc3lzdGVtLiBTaW5jZSBpdCYjMzk7cyB0b3VjaGluZyBjb3JlIGZpbGVzeXN0ZW0gY29kZSwgYGZzL2hmcy9LY29uZmlnYCBpcyB0aGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LiBJJiMzOTttIGJldHRpbmcgdGhhdCBgQ09ORklHX0hGU19GU2AgaXMgdGhlIGtleS4gT25jZSBJIGhhdmUgdGhlIGNvbmZpZyBvcHRpb25zIGRpYWxlZCBpbiwgSSBjYW4gZW5zdXJlIHRoYXQgdGhlIGZ1enppbmcgZW52aXJvbm1lbnQgaXMgYXBwcm9wcmlhdGVseSBjb25maWd1cmVkIHRvIHRyaWdnZXIgdGhlIGNvZGUgcGF0aHMgSSB3YW50IHRvIHRlc3QuIFRoYXQmIzM5O3MgdGhlIGtleSB0byBtYWtpbmcgc3VyZSB0aGF0IHRoZSBmdXp6aW5nIGVmZm9ydHMgYXJlIHRhcmdldGVkIGFuZCBlZmZlY3RpdmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEhGU19GUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2hmcy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2hmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5mcy9oZnMvS2NvbmZpZzoyOmNvbmZpZyBIRlNfRlNcbmZzL2hmcy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtBcHBsZSBNYWNpbnRvc2ggZmlsZSBzeXN0ZW0gc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NTUKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyOTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBIRlMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIGxpa2UgdGhlIGtleSBjb25maWd1cmF0aW9uIHZhcmlhYmxlIGlzIGBIRlNfRlNgLiBSaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGNvcmUgY2hhbmdlcy4gTXkgaW5pdGlhbCBzY2FuIHBvaW50cyB0byBhIGZldyBmdW5jdGlvbiBtb2RpZmljYXRpb25zIGFuZCBhZGRpdGlvbnMuIEl0IGxvb2tzIGxpa2Ugd2UmIzM5O3JlIHRvdWNoaW5nIGBoZnNfYnRyZWVfb3BlbmAsIGBoZnNfYm1hcF9hbGxvY2AsIGFuZCBgaGZzX2JtYXBfZnJlZWAg4oCTIHRoYXQgZ2l2ZXMgbWUgc29tZSBjb250ZXh0IGltbWVkaWF0ZWx5LiBUaGVuIHRoZXJlIGFyZSBzb21lIG5ldyBmdW5jdGlvbnM6IGBoZnNfYm1hcF90ZXN0X2JpdGAsIGBoZnNfYm1hcF9nZXRfbWFwX3BhZ2VgLCBgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkYCwgYW5kIGBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoYC4KCkEgcXVpY2sgZ2xhbmNlIGF0IHRoZSBzaWduYXR1cmVzIHJldmVhbHMgc29tZSBpbnRlcmVzdGluZyBkZXRhaWxzLiBgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkYCBhbmQgYGNoZWNrX2FuZF9jb3JyZWN0X3JlcXVlc3RlZF9sZW5ndGhgIGFyZSBkZWNsYXJlZCBhcyBgc3RhdGljIGlubGluZWAsIHdoaWNoIHdpbGwgaGF2ZSBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMgZHVlIHRvIGlubGluaW5nLiBgaGZzX2JtYXBfZ2V0X21hcF9wYWdlYCBpcyBhbHNvIGRlY2xhcmVkIGBzdGF0aWNgLCBtYWtpbmcgaXQgbm9uLWV4cG9ydGVkLiBCdXQgYGhmc19ibWFwX3Rlc3RfYml0YCBpcyBnbG9iYWwvZXhwb3J0ZWQuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LgoKTm93LCBsZXQmIzM5O3MgdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBtb2RpZmllZCBmdW5jdGlvbnMsIHN0YXJ0aW5nIHdpdGggYGhmc19idHJlZV9vcGVuYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgaXQmIzM5O3MgYSBob3QtcGF0aCBmdW5jdGlvbi4gVGhpbmtpbmcgYWJvdXQgSEZTIGZpbGUgc3lzdGVtcywgb3BlbmluZyBhIGJ0cmVlIGhhcHBlbnMgZHVyaW5nIG1vdW50LCByaWdodD8gU28sIHRoaXMgY291bGQgYmUgcGVyZm9ybWFuY2UtY3JpdGljYWwuIFRoZW4sIGxldCYjMzk7cyBjaGVjayBgaGZzX2JtYXBfdGVzdF9iaXRgLiBMb29rcyBsaWtlIGl0IGlzIGNhbGxlZCBmcm9tIGBoZnNfYnRyZWVfb3BlbmAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aGZzX2J0cmVlX29wZW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9oZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2hmcy9idHJlZS5jLTE4LS8qIEdldCBhIHJlZmVyZW5jZSB0byBhIEIqVHJlZSBhbmQgZG8gc29tZSBpbml0aWFsIGNoZWNrcyAqL1xuZnMvaGZzL2J0cmVlLmM6MTk6c3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2V5Y21wKVxuZnMvaGZzL2J0cmVlLmMtMjAte1xuLS1cbmZzL2hmcy9idHJlZS5oPTc3PXN0cnVjdCBoZnNfZmluZF9kYXRhIHtcbi0tXG5mcy9oZnMvYnRyZWUuaC04OC0vKiBidHJlZS5jICovXG5mcy9oZnMvYnRyZWUuaDo4OTpleHRlcm4gc3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLFxuZnMvaGZzL2J0cmVlLmgtOTAtXHRcdFx0XHRcdGJ0cmVlX2tleWNtcCBrZXljbXApO1xuLS1cbmZzL2hmcy9tZGIuYz05ND1pbnQgaGZzX21kYl9nZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbi0tXG5mcy9oZnMvbWRiLmMtMjI3LVxuZnMvaGZzL21kYi5jOjIyODpcdEhGU19TQihzYiktXHUwMDNlZXh0X3RyZWUgPSBoZnNfYnRyZWVfb3BlbihzYiwgSEZTX0VYVF9DTklELCBoZnNfZXh0X2tleWNtcCk7XG5mcy9oZnMvbWRiLmMtMjI5LVx0aWYgKCFIRlNfU0Ioc2IpLVx1MDAzZWV4dF90cmVlKSB7XG4tLVxuZnMvaGZzL21kYi5jLTIzMi1cdH1cbmZzL2hmcy9tZGIuYzoyMzM6XHRIRlNfU0Ioc2IpLVx1MDAzZWNhdF90cmVlID0gaGZzX2J0cmVlX29wZW4oc2IsIEhGU19DQVRfQ05JRCwgaGZzX2NhdF9rZXljbXApO1xuZnMvaGZzL21kYi5jLTIzNC1cdGlmICghSEZTX1NCKHNiKS1cdTAwM2VjYXRfdHJlZSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDA1OjUwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ5NTYKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA2NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgdGhlIEhGUyYjNDM7IE1vdW50IFNlcXVlbmNlKioKCk9rYXksIHNvIEkmIzM5O20gdHJhY2luZyB0aHJvdWdoIHRoaXMgSEZTJiM0MzsgbW91bnQgcHJvY2VzcywgYW5kIGl0IHNlZW1zIGxpa2UgYGhmc19idHJlZV9vcGVuYCBpcyB0cmlnZ2VyZWQgZHVyaW5nIHRoZSBtb3VudCBvcGVyYXRpb24sIHNwZWNpZmljYWxseSB3aXRoaW4gYGhmc19tZGJfZ2V0YC4gVGhhdCBtYWtlcyBzZW5zZTsgd2UgbmVlZCB0byBhY2Nlc3MgdGhlIEItdHJlZSBmb3IgbWV0YWRhdGEuCgpOb3csIGhlcmUmIzM5O3MgdGhlIGludGVyZXN0aW5nIHBhcnQ6IGBoZnNfYm1hcF90ZXN0X2JpdGAgZ2V0cyBjYWxsZWQgZnJvbSAqd2l0aGluKiBgaGZzX2J0cmVlX29wZW5gLiBUaGF0IHN1Z2dlc3RzIHdlJiMzOTtyZSBkb2luZyBzb21lIGtpbmQgb2YgYml0LWxldmVsIGNoZWNrIHdpdGhpbiB0aGUgQi10cmVlIG9wZW5pbmcgc2VxdWVuY2UsIHByb2JhYmx5IHJlbGF0ZWQgdG8gdGhlIGFsbG9jYXRpb24gYml0bWFwLgoKTXkgbmV4dCBzdGVwPyBJIHdhbnQgdG8gZGV0ZXJtaW5lIGlmIGBoZnNfYm1hcF90ZXN0X2JpdGAgaXMgdXNlZCAqYW55d2hlcmUgZWxzZSogaW4gdGhlIGNvZGViYXNlLiBVbmRlcnN0YW5kaW5nIGFsbCBpdHMgY2FsbCBzaXRlcyB3aWxsIHJlYWxseSBzb2xpZGlmeSB0aGUgY29udGV4dCBoZXJlLiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgaWYgdGhhdCBmdW5jdGlvbiBoYXMgb3RoZXIgaW1wbGljYXRpb25zIHdpdGhpbiB0aGUgSEZTJiM0MzsgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aGZzX2JtYXBfdGVzdF9iaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9oZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2hmcy9idHJlZS5jPTE5PXN0cnVjdCBoZnNfYnRyZWUgKmhmc19idHJlZV9vcGVuKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpZCwgYnRyZWVfa2V5Y21wIGtleWNtcClcbi0tXG5mcy9oZnMvYnRyZWUuYy0xNjMtXG5mcy9oZnMvYnRyZWUuYzoxNjQ6XHRpZiAoIWhmc19ibWFwX3Rlc3RfYml0KG5vZGUsIDApKSB7XG5mcy9oZnMvYnRyZWUuYy0xNjUtXHRcdHByX3dhcm4oXCYjMzQ7KCVzKTogJXMgKGNuaWQgMHgleCkgbWFwIHJlY29yZCBpbnZhbGlkIG9yIGJpdG1hcCBjb3JydXB0aW9uIGRldGVjdGVkLCBmb3JjaW5nIHJlYWQtb25seS5cXG5cJiMzNDssXG4tLVxuZnMvaGZzL2J0cmVlLmM9Mzk3PXN0YXRpYyBzdHJ1Y3QgcGFnZSAqaGZzX2JtYXBfZ2V0X21hcF9wYWdlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsXG4tLVxuZnMvaGZzL2J0cmVlLmMtNDM2LVxuZnMvaGZzL2J0cmVlLmM6NDM3OmJvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeClcbmZzL2hmcy9idHJlZS5jLTQzOC17XG4tLVxuZnMvaGZzL2J0cmVlLmg9OTY9c3RydWN0IGhmc19ibWFwX2N0eDtcbmZzL2hmcy9idHJlZS5oOjk3OmV4dGVybiBib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpO1xuZnMvaGZzL2J0cmVlLmgtOTgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTYxNwoJCQkJCQkJb3V0cHV0OiAxMTIKCQkJCQkJCXRob3VnaHRzOiAxODIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBIRlMgQi1UcmVlIFZhbGlkYXRpb24gUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHZhbGlkYXRpb24gY2hlY2tzIHdpdGhpbiB0aGUgSEZTIGItdHJlZSBvcGVuaW5nIHByb2Nlc3MuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgZm9jdXNlZCBvbiBjb25maXJtaW5nIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIG1hcCByZWNvcmQgYW5kIHZlcmlmeWluZyB0aGUgYWJzZW5jZSBvZiBiaXRtYXAgY29ycnVwdGlvbi4gSXQgbG9va3MgbGlrZSB0aGUgcmVsZXZhbnQgZnVuY3Rpb25zIGFyZSBgaGZzX2J0cmVlX29wZW5gIGFuZCBgaGZzX2JtYXBfdGVzdF9iaXRgLiBUaGUgY29uZmlnIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQgLSBgSEZTX0ZTYC4gVGhlIHJlYXNvbmluZyBpcyBzb3VuZDogdGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIHRyaWdnZXJlZCBkdXJpbmcgdGhlIG1vdW50aW5nIG9mIGEgY3JhZnRlZCBIRlMgaW1hZ2UsIGFuZCB0aGVyZWZvcmUgY291bGQgYmUgZXhwbG9pdGVkLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayBmb3IgYW55IG90aGVyIGZ1bmN0aW9ucyBpbnZvbHZlZC4uLiBSaWdodCwgYGhmc19ibWFwX2dldF9tYXBfcGFnZWAgaXMgc3RhdGljLCBzbyBpdCB3b24mIzM5O3QgYmUgZXhwb3NlZCBhcyBhIHN5bWJvbCBhbmQgaXMgbm90IHJlbGV2YW50IGZvciB0aGUgaW1tZWRpYXRlIHB1cnBvc2Ugb2YgaWRlbnRpZnlpbmcgdGhlIGZvY3VzIG9mIHRoZSBwYXRjaCwgaXQgc2VlbXMuIFdlIGFscmVhZHkgY29uZmlybWVkIGBoZnNfYnRyZWVfb3BlbmAgaXMgZ2xvYmFsIGFuZCBgaGZzX2JtYXBfdGVzdF9iaXRgIGlzIGFsc28gZ2xvYmFsLgoKQWxyaWdodCwgdGhhdCBjb3ZlcnMgaXQuIEkmIzM5O2xsIHNldCB0aGUgcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDU6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0hGU19GUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2hmc19idHJlZV9vcGVuJiMzNDssCiAgICAmIzM0O2hmc19ibWFwX3Rlc3RfYml0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSEZTIGJ0cmVlIG1hcCByZWNvcmRzIGR1cmluZyBtb3VudC4gSXQgaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBgaGZzX2JtYXBfdGVzdF9iaXRgIGFuZCBtb2RpZmllcyBgaGZzX2J0cmVlX29wZW5gLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgYnkgbW91bnRpbmcgYSBjcmFmdGVkIEhGUyBmaWxlc3lzdGVtIGltYWdlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtIRlNfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtoZnNfYnRyZWVfb3BlbiYjMzQ7LAogICAgJiMzNDtoZnNfYm1hcF90ZXN0X2JpdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgZm9yIEhGUyBidHJlZSBtYXAgcmVjb3JkcyBkdXJpbmcgbW91bnQuIEl0IGludHJvZHVjZXMgYSBuZXcgZnVuY3Rpb24gYGhmc19ibWFwX3Rlc3RfYml0YCBhbmQgbW9kaWZpZXMgYGhmc19idHJlZV9vcGVuYC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIGJ5IG1vdW50aW5nIGEgY3JhZnRlZCBIRlMgZmlsZXN5c3RlbSBpbWFnZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjUwOjIwLjM2MTUyOTI0OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5OTk3NDU4NDc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkhGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImhmc19idHJlZV9vcGVuXCIsXG4gICAgXCJoZnNfYm1hcF90ZXN0X2JpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSEZTIGJ0cmVlIG1hcCByZWNvcmRzIGR1cmluZyBtb3VudC4gSXQgaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBgaGZzX2JtYXBfdGVzdF9iaXRgIGFuZCBtb2RpZmllcyBgaGZzX2J0cmVlX29wZW5gLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgYnkgbW91bnRpbmcgYSBjcmFmdGVkIEhGUyBmaWxlc3lzdGVtIGltYWdlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDoyMC4zNjE1MzM0MzdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY1MzE2NzQzMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ4Y2I2ZDQ5M2VkYWU5MDlhNWVlZmE0NGI3N2ZlNGE4MWI0ZGI3ZDBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMyAwNTo1MDoxOCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9oZnMvYnRyZWUuYyBiL2ZzL2hmcy9idHJlZS5jXFxuaW5kZXggMmViMzdhMmY2NGU4NjYuLjM2ZGM4NzM1ZDAxYTNjIDEwMDY0NFxcbi0tLSBhL2ZzL2hmcy9idHJlZS5jXFxuKysrIGIvZnMvaGZzL2J0cmVlLmNcXG5AQCAtMjMsNiArMjMsNyBAQCBzdHJ1Y3QgaGZzX2J0cmVlICpoZnNfYnRyZWVfb3BlbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1MzIgaWQsIGJ0cmVlX2tleWNtcCBrZVxcbiBcXHRzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZztcXG4gXFx0c3RydWN0IGZvbGlvICpmb2xpbztcXG4gXFx0c3RydWN0IGJ1ZmZlcl9oZWFkICpiaDtcXG4rXFx0c3RydWN0IGhmc19ibm9kZSAqbm9kZTtcXG4gXFx0dW5zaWduZWQgaW50IHNpemU7XFxuIFxcdHUxNiBkYmxvY2s7XFxuIFxcdHNlY3Rvcl90IHN0YXJ0X2Jsb2NrO1xcbkBAIC0xNTUsNiArMTU2LDIwIEBAIHN0cnVjdCBoZnNfYnRyZWUgKmhmc19idHJlZV9vcGVuKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpZCwgYnRyZWVfa2V5Y21wIGtlXFxuIFxcdGt1bm1hcF9sb2NhbChoZWFkKTtcXG4gXFx0Zm9saW9fdW5sb2NrKGZvbGlvKTtcXG4gXFx0Zm9saW9fcHV0KGZvbGlvKTtcXG4rXFxuK1xcdG5vZGUgPSBoZnNfYm5vZGVfZmluZCh0cmVlLCAwKTtcXG4rXFx0aWYgKElTX0VSUihub2RlKSlcXG4rXFx0XFx0Z290byBmcmVlX2lub2RlO1xcbitcXG4rXFx0aWYgKCFoZnNfYm1hcF90ZXN0X2JpdChub2RlLCAwKSkge1xcbitcXHRcXHRwcl93YXJuKFxcXCIoJXMpOiAlcyAoY25pZCAweCV4KSBtYXAgcmVjb3JkIGludmFsaWQgb3IgYml0bWFwIGNvcnJ1cHRpb24gZGV0ZWN0ZWQsIGZvcmNpbmcgcmVhZC1vbmx5LlxcXFxuXFxcIixcXG4rXFx0XFx0XFx0c2ItXFx1MDAzZXNfaWQsIGlkID09IEhGU19FWFRfQ05JRCA/IFxcXCJleHRlbnRzXFxcIiA6IFxcXCJjYXRhbG9nXFxcIiwgaWQpO1xcbitcXHRcXHRwcl93YXJuKFxcXCJSdW4gZnNjay5oZnMgdG8gcmVwYWlyLlxcXFxuXFxcIik7XFxuK1xcdFxcdHNiLVxcdTAwM2VzX2ZsYWdzIHw9IFNCX1JET05MWTtcXG4rXFx0fVxcbitcXG4rXFx0aGZzX2Jub2RlX3B1dChub2RlKTtcXG4rXFxuIFxcdHJldHVybiB0cmVlO1xcbiBcXG4gZmFpbF9mb2xpbzpcXG5AQCAtMzU2LDYgKzM3MSw4NyBAQCBzdHJ1Y3QgaGZzX2Jub2RlICpoZnNfYm1hcF9hbGxvYyhzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKVxcbiBcXHR9XFxuIH1cXG4gXFxuK3N0cnVjdCBoZnNfYm1hcF9jdHgge1xcbitcXHR1bnNpZ25lZCBpbnQgcGFnZV9pZHg7XFxuK1xcdHVuc2lnbmVkIGludCBvZmY7XFxuK1xcdHUxNiBsZW47XFxuK307XFxuK1xcbisjZGVmaW5lIEhGU19CVFJFRV9IRFJfTUFQX1JFQ19JTkRFWFxcdDJcXG4rI2RlZmluZSBIRlNfQlRSRUVfTUFQX05PREVfUkVDX0lOREVYXFx0MFxcbitcXG4rc3RhdGljIGlubGluZSBib29sIGlzX2Jub2RlX29mZnNldF92YWxpZChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB1MzIgb2ZmKVxcbit7XFxuK1xcdHJldHVybiBvZmYgXFx1MDAzYyBub2RlLVxcdTAwM2V0cmVlLVxcdTAwM2Vub2RlX3NpemU7XFxuK31cXG4rXFxuK3N0YXRpYyBpbmxpbmUgdTMyIGNoZWNrX2FuZF9jb3JyZWN0X3JlcXVlc3RlZF9sZW5ndGgoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG9mZiwgdTMyIGxlbilcXG4re1xcbitcXHRpZiAob2ZmIFxcdTAwM2U9IG5vZGUtXFx1MDAzZXRyZWUtXFx1MDAzZW5vZGVfc2l6ZSlcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcdGlmICgodTY0KW9mZiArIGxlbiBcXHUwMDNlIG5vZGUtXFx1MDAzZXRyZWUtXFx1MDAzZW5vZGVfc2l6ZSlcXG4rXFx0XFx0cmV0dXJuIG5vZGUtXFx1MDAzZXRyZWUtXFx1MDAzZW5vZGVfc2l6ZSAtIG9mZjtcXG4rXFx0cmV0dXJuIGxlbjtcXG4rfVxcbitcXG4rc3RhdGljIHN0cnVjdCBwYWdlICpoZnNfYm1hcF9nZXRfbWFwX3BhZ2Uoc3RydWN0IGhmc19ibm9kZSAqbm9kZSxcXG4rXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaGZzX2JtYXBfY3R4ICpjdHgsXFxuK1xcdFxcdFxcdFxcdFxcdCAgdTMyIGJ5dGVfb2Zmc2V0KVxcbit7XFxuK1xcdHUxNiByZWNfaWR4LCBvZmYxNjtcXG4rXFx0dW5zaWduZWQgaW50IHBhZ2Vfb2ZmO1xcbitcXG4rXFx0aWYgKG5vZGUtXFx1MDAzZXRoaXMgPT0gMCkge1xcbitcXHRcXHRpZiAobm9kZS1cXHUwMDNldHlwZSAhPSBIRlNfTk9ERV9IRUFERVIpIHtcXG4rXFx0XFx0XFx0cHJfZXJyKFxcXCJoZnM6IGludmFsaWQgYnRyZWUgaGVhZGVyIG5vZGVcXFxcblxcXCIpO1xcbitcXHRcXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlPKTtcXG4rXFx0XFx0fVxcbitcXHRcXHRyZWNfaWR4ID0gSEZTX0JUUkVFX0hEUl9NQVBfUkVDX0lOREVYO1xcbitcXHR9IGVsc2Uge1xcbitcXHRcXHRpZiAobm9kZS1cXHUwMDNldHlwZSAhPSBIRlNfTk9ERV9NQVApIHtcXG4rXFx0XFx0XFx0cHJfZXJyKFxcXCJoZnM6IGludmFsaWQgYnRyZWUgbWFwIG5vZGVcXFxcblxcXCIpO1xcbitcXHRcXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlPKTtcXG4rXFx0XFx0fVxcbitcXHRcXHRyZWNfaWR4ID0gSEZTX0JUUkVFX01BUF9OT0RFX1JFQ19JTkRFWDtcXG4rXFx0fVxcbitcXG4rXFx0Y3R4LVxcdTAwM2VsZW4gPSBoZnNfYnJlY19sZW5vZmYobm9kZSwgcmVjX2lkeCwgXFx1MDAyNm9mZjE2KTtcXG4rXFx0aWYgKCFjdHgtXFx1MDAzZWxlbilcXG4rXFx0XFx0cmV0dXJuIEVSUl9QVFIoLUVOT0VOVCk7XFxuK1xcbitcXHRpZiAoIWlzX2Jub2RlX29mZnNldF92YWxpZChub2RlLCBvZmYxNikpXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xcbitcXG4rXFx0Y3R4LVxcdTAwM2VsZW4gPSBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoKG5vZGUsIG9mZjE2LCBjdHgtXFx1MDAzZWxlbik7XFxuK1xcbitcXHRpZiAoYnl0ZV9vZmZzZXQgXFx1MDAzZT0gY3R4LVxcdTAwM2VsZW4pXFxuK1xcdFxcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xcbitcXG4rXFx0cGFnZV9vZmYgPSAodTMyKW9mZjE2ICsgbm9kZS1cXHUwMDNlcGFnZV9vZmZzZXQgKyBieXRlX29mZnNldDtcXG4rXFx0Y3R4LVxcdTAwM2VwYWdlX2lkeCA9IHBhZ2Vfb2ZmIFxcdTAwM2VcXHUwMDNlIFBBR0VfU0hJRlQ7XFxuK1xcdGN0eC1cXHUwMDNlb2ZmID0gcGFnZV9vZmYgXFx1MDAyNiB+UEFHRV9NQVNLO1xcbitcXG4rXFx0cmV0dXJuIG5vZGUtXFx1MDAzZXBhZ2VbY3R4LVxcdTAwM2VwYWdlX2lkeF07XFxuK31cXG4rXFxuK2Jvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeClcXG4re1xcbitcXHRzdHJ1Y3QgaGZzX2JtYXBfY3R4IGN0eDtcXG4rXFx0c3RydWN0IHBhZ2UgKnBhZ2U7XFxuK1xcdHU4ICpibWFwLCBieXRlLCBtYXNrO1xcbitcXG4rXFx0cGFnZSA9IGhmc19ibWFwX2dldF9tYXBfcGFnZShub2RlLCBcXHUwMDI2Y3R4LCBub2RlX2JpdF9pZHggLyBCSVRTX1BFUl9CWVRFKTtcXG4rXFx0aWYgKElTX0VSUihwYWdlKSlcXG4rXFx0XFx0cmV0dXJuIGZhbHNlO1xcbitcXG4rXFx0Ym1hcCA9IGttYXBfbG9jYWxfcGFnZShwYWdlKTtcXG4rXFx0Ynl0ZSA9IGJtYXBbY3R4Lm9mZl07XFxuK1xcdGt1bm1hcF9sb2NhbChibWFwKTtcXG4rXFxuK1xcdG1hc2sgPSAxIFxcdTAwM2NcXHUwMDNjICg3IC0gKG5vZGVfYml0X2lkeCAlIEJJVFNfUEVSX0JZVEUpKTtcXG4rXFx0cmV0dXJuIChieXRlIFxcdTAwMjYgbWFzaykgIT0gMDtcXG4rfVxcbitcXG4gdm9pZCBoZnNfYm1hcF9mcmVlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUpXFxuIHtcXG4gXFx0c3RydWN0IGhmc19idHJlZSAqdHJlZTtcXG5kaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmggYi9mcy9oZnMvYnRyZWUuaFxcbmluZGV4IDk5YmU4NThiMjQ0NjUwLi44NjAzNmUxODA5NWY0ZSAxMDA2NDRcXG4tLS0gYS9mcy9oZnMvYnRyZWUuaFxcbisrKyBiL2ZzL2hmcy9idHJlZS5oXFxuQEAgLTkzLDYgKzkzLDggQEAgZXh0ZXJuIHZvaWQgaGZzX2J0cmVlX3dyaXRlKHN0cnVjdCBoZnNfYnRyZWUgKnRyZWUpO1xcbiBleHRlcm4gaW50IGhmc19ibWFwX3Jlc2VydmUoc3RydWN0IGhmc19idHJlZSAqdHJlZSwgdTMyIHJzdmRfbm9kZXMpO1xcbiBleHRlcm4gc3RydWN0IGhmc19ibm9kZSAqaGZzX2JtYXBfYWxsb2Moc3RydWN0IGhmc19idHJlZSAqdHJlZSk7XFxuIGV4dGVybiB2b2lkIGhmc19ibWFwX2ZyZWUoc3RydWN0IGhmc19ibm9kZSAqbm9kZSk7XFxuK3N0cnVjdCBoZnNfYm1hcF9jdHg7XFxuK2V4dGVybiBib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpO1xcbiBcXG4gLyogYm5vZGUuYyAqL1xcbiBleHRlcm4gdm9pZCBoZnNfYm5vZGVfcmVhZChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB2b2lkICpidWYsIHUzMiBvZmYsIHUzMiBsZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDoyMS4wMTU0NjMzOThaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MzQzNTA5MDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkhGU19GU1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImhmc19idHJlZV9vcGVuXCIsXG4gICAgXCJoZnNfYm1hcF90ZXN0X2JpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyBmb3IgSEZTIGJ0cmVlIG1hcCByZWNvcmRzIGR1cmluZyBtb3VudC4gSXQgaW50cm9kdWNlcyBhIG5ldyBmdW5jdGlvbiBgaGZzX2JtYXBfdGVzdF9iaXRgIGFuZCBtb2RpZmllcyBgaGZzX2J0cmVlX29wZW5gLiBUaGlzIGlzIGZ1bmN0aW9uYWwgY29kZSByZWFjaGFibGUgYnkgbW91bnRpbmcgYSBjcmFmdGVkIEhGUyBmaWxlc3lzdGVtIGltYWdlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDQ4Y2I2ZDQ5M2VkYWU5MDlhNWVlZmE0NGI3N2ZlNGE4MWI0ZGI3ZDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzIDA1OjUwOjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvaGZzL2J0cmVlLmMgYi9mcy9oZnMvYnRyZWUuY1xuaW5kZXggMmViMzdhMmY2NGU4NjYuLjM2ZGM4NzM1ZDAxYTNjIDEwMDY0NFxuLS0tIGEvZnMvaGZzL2J0cmVlLmNcbisrKyBiL2ZzL2hmcy9idHJlZS5jXG5AQCAtMjMsNiArMjMsNyBAQCBzdHJ1Y3QgaGZzX2J0cmVlICpoZnNfYnRyZWVfb3BlbihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1MzIgaWQsIGJ0cmVlX2tleWNtcCBrZVxuIFx0c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7XG4gXHRzdHJ1Y3QgZm9saW8gKmZvbGlvO1xuIFx0c3RydWN0IGJ1ZmZlcl9oZWFkICpiaDtcbitcdHN0cnVjdCBoZnNfYm5vZGUgKm5vZGU7XG4gXHR1bnNpZ25lZCBpbnQgc2l6ZTtcbiBcdHUxNiBkYmxvY2s7XG4gXHRzZWN0b3JfdCBzdGFydF9ibG9jaztcbkBAIC0xNTUsNiArMTU2LDIwIEBAIHN0cnVjdCBoZnNfYnRyZWUgKmhmc19idHJlZV9vcGVuKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHUzMiBpZCwgYnRyZWVfa2V5Y21wIGtlXG4gXHRrdW5tYXBfbG9jYWwoaGVhZCk7XG4gXHRmb2xpb191bmxvY2soZm9saW8pO1xuIFx0Zm9saW9fcHV0KGZvbGlvKTtcbitcbitcdG5vZGUgPSBoZnNfYm5vZGVfZmluZCh0cmVlLCAwKTtcbitcdGlmIChJU19FUlIobm9kZSkpXG4rXHRcdGdvdG8gZnJlZV9pbm9kZTtcbitcbitcdGlmICghaGZzX2JtYXBfdGVzdF9iaXQobm9kZSwgMCkpIHtcbitcdFx0cHJfd2FybihcIiglcyk6ICVzIChjbmlkIDB4JXgpIG1hcCByZWNvcmQgaW52YWxpZCBvciBiaXRtYXAgY29ycnVwdGlvbiBkZXRlY3RlZCwgZm9yY2luZyByZWFkLW9ubHkuXFxuXCIsXG4rXHRcdFx0c2ItXHUwMDNlc19pZCwgaWQgPT0gSEZTX0VYVF9DTklEID8gXCJleHRlbnRzXCIgOiBcImNhdGFsb2dcIiwgaWQpO1xuK1x0XHRwcl93YXJuKFwiUnVuIGZzY2suaGZzIHRvIHJlcGFpci5cXG5cIik7XG4rXHRcdHNiLVx1MDAzZXNfZmxhZ3MgfD0gU0JfUkRPTkxZO1xuK1x0fVxuK1xuK1x0aGZzX2Jub2RlX3B1dChub2RlKTtcbitcbiBcdHJldHVybiB0cmVlO1xuIFxuIGZhaWxfZm9saW86XG5AQCAtMzU2LDYgKzM3MSw4NyBAQCBzdHJ1Y3QgaGZzX2Jub2RlICpoZnNfYm1hcF9hbGxvYyhzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKVxuIFx0fVxuIH1cbiBcbitzdHJ1Y3QgaGZzX2JtYXBfY3R4IHtcbitcdHVuc2lnbmVkIGludCBwYWdlX2lkeDtcbitcdHVuc2lnbmVkIGludCBvZmY7XG4rXHR1MTYgbGVuO1xuK307XG4rXG4rI2RlZmluZSBIRlNfQlRSRUVfSERSX01BUF9SRUNfSU5ERVhcdDJcbisjZGVmaW5lIEhGU19CVFJFRV9NQVBfTk9ERV9SRUNfSU5ERVhcdDBcbitcbitzdGF0aWMgaW5saW5lIGJvb2wgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBvZmYpXG4re1xuK1x0cmV0dXJuIG9mZiBcdTAwM2Mgbm9kZS1cdTAwM2V0cmVlLVx1MDAzZW5vZGVfc2l6ZTtcbit9XG4rXG4rc3RhdGljIGlubGluZSB1MzIgY2hlY2tfYW5kX2NvcnJlY3RfcmVxdWVzdGVkX2xlbmd0aChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB1MzIgb2ZmLCB1MzIgbGVuKVxuK3tcbitcdGlmIChvZmYgXHUwMDNlPSBub2RlLVx1MDAzZXRyZWUtXHUwMDNlbm9kZV9zaXplKVxuK1x0XHRyZXR1cm4gMDtcbitcdGlmICgodTY0KW9mZiArIGxlbiBcdTAwM2Ugbm9kZS1cdTAwM2V0cmVlLVx1MDAzZW5vZGVfc2l6ZSlcbitcdFx0cmV0dXJuIG5vZGUtXHUwMDNldHJlZS1cdTAwM2Vub2RlX3NpemUgLSBvZmY7XG4rXHRyZXR1cm4gbGVuO1xuK31cbitcbitzdGF0aWMgc3RydWN0IHBhZ2UgKmhmc19ibWFwX2dldF9tYXBfcGFnZShzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLFxuK1x0XHRcdFx0XHQgIHN0cnVjdCBoZnNfYm1hcF9jdHggKmN0eCxcbitcdFx0XHRcdFx0ICB1MzIgYnl0ZV9vZmZzZXQpXG4re1xuK1x0dTE2IHJlY19pZHgsIG9mZjE2O1xuK1x0dW5zaWduZWQgaW50IHBhZ2Vfb2ZmO1xuK1xuK1x0aWYgKG5vZGUtXHUwMDNldGhpcyA9PSAwKSB7XG4rXHRcdGlmIChub2RlLVx1MDAzZXR5cGUgIT0gSEZTX05PREVfSEVBREVSKSB7XG4rXHRcdFx0cHJfZXJyKFwiaGZzOiBpbnZhbGlkIGJ0cmVlIGhlYWRlciBub2RlXFxuXCIpO1xuK1x0XHRcdHJldHVybiBFUlJfUFRSKC1FSU8pO1xuK1x0XHR9XG4rXHRcdHJlY19pZHggPSBIRlNfQlRSRUVfSERSX01BUF9SRUNfSU5ERVg7XG4rXHR9IGVsc2Uge1xuK1x0XHRpZiAobm9kZS1cdTAwM2V0eXBlICE9IEhGU19OT0RFX01BUCkge1xuK1x0XHRcdHByX2VycihcImhmczogaW52YWxpZCBidHJlZSBtYXAgbm9kZVxcblwiKTtcbitcdFx0XHRyZXR1cm4gRVJSX1BUUigtRUlPKTtcbitcdFx0fVxuK1x0XHRyZWNfaWR4ID0gSEZTX0JUUkVFX01BUF9OT0RFX1JFQ19JTkRFWDtcbitcdH1cbitcbitcdGN0eC1cdTAwM2VsZW4gPSBoZnNfYnJlY19sZW5vZmYobm9kZSwgcmVjX2lkeCwgXHUwMDI2b2ZmMTYpO1xuK1x0aWYgKCFjdHgtXHUwMDNlbGVuKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRU5PRU5UKTtcbitcbitcdGlmICghaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkKG5vZGUsIG9mZjE2KSlcbitcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTyk7XG4rXG4rXHRjdHgtXHUwMDNlbGVuID0gY2hlY2tfYW5kX2NvcnJlY3RfcmVxdWVzdGVkX2xlbmd0aChub2RlLCBvZmYxNiwgY3R4LVx1MDAzZWxlbik7XG4rXG4rXHRpZiAoYnl0ZV9vZmZzZXQgXHUwMDNlPSBjdHgtXHUwMDNlbGVuKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcbitcbitcdHBhZ2Vfb2ZmID0gKHUzMilvZmYxNiArIG5vZGUtXHUwMDNlcGFnZV9vZmZzZXQgKyBieXRlX29mZnNldDtcbitcdGN0eC1cdTAwM2VwYWdlX2lkeCA9IHBhZ2Vfb2ZmIFx1MDAzZVx1MDAzZSBQQUdFX1NISUZUO1xuK1x0Y3R4LVx1MDAzZW9mZiA9IHBhZ2Vfb2ZmIFx1MDAyNiB+UEFHRV9NQVNLO1xuK1xuK1x0cmV0dXJuIG5vZGUtXHUwMDNlcGFnZVtjdHgtXHUwMDNlcGFnZV9pZHhdO1xuK31cbitcbitib29sIGhmc19ibWFwX3Rlc3RfYml0KHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHUzMiBub2RlX2JpdF9pZHgpXG4re1xuK1x0c3RydWN0IGhmc19ibWFwX2N0eCBjdHg7XG4rXHRzdHJ1Y3QgcGFnZSAqcGFnZTtcbitcdHU4ICpibWFwLCBieXRlLCBtYXNrO1xuK1xuK1x0cGFnZSA9IGhmc19ibWFwX2dldF9tYXBfcGFnZShub2RlLCBcdTAwMjZjdHgsIG5vZGVfYml0X2lkeCAvIEJJVFNfUEVSX0JZVEUpO1xuK1x0aWYgKElTX0VSUihwYWdlKSlcbitcdFx0cmV0dXJuIGZhbHNlO1xuK1xuK1x0Ym1hcCA9IGttYXBfbG9jYWxfcGFnZShwYWdlKTtcbitcdGJ5dGUgPSBibWFwW2N0eC5vZmZdO1xuK1x0a3VubWFwX2xvY2FsKGJtYXApO1xuK1xuK1x0bWFzayA9IDEgXHUwMDNjXHUwMDNjICg3IC0gKG5vZGVfYml0X2lkeCAlIEJJVFNfUEVSX0JZVEUpKTtcbitcdHJldHVybiAoYnl0ZSBcdTAwMjYgbWFzaykgIT0gMDtcbit9XG4rXG4gdm9pZCBoZnNfYm1hcF9mcmVlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUpXG4ge1xuIFx0c3RydWN0IGhmc19idHJlZSAqdHJlZTtcbmRpZmYgLS1naXQgYS9mcy9oZnMvYnRyZWUuaCBiL2ZzL2hmcy9idHJlZS5oXG5pbmRleCA5OWJlODU4YjI0NDY1MC4uODYwMzZlMTgwOTVmNGUgMTAwNjQ0XG4tLS0gYS9mcy9oZnMvYnRyZWUuaFxuKysrIGIvZnMvaGZzL2J0cmVlLmhcbkBAIC05Myw2ICs5Myw4IEBAIGV4dGVybiB2b2lkIGhmc19idHJlZV93cml0ZShzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKTtcbiBleHRlcm4gaW50IGhmc19ibWFwX3Jlc2VydmUoc3RydWN0IGhmc19idHJlZSAqdHJlZSwgdTMyIHJzdmRfbm9kZXMpO1xuIGV4dGVybiBzdHJ1Y3QgaGZzX2Jub2RlICpoZnNfYm1hcF9hbGxvYyhzdHJ1Y3QgaGZzX2J0cmVlICp0cmVlKTtcbiBleHRlcm4gdm9pZCBoZnNfYm1hcF9mcmVlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUpO1xuK3N0cnVjdCBoZnNfYm1hcF9jdHg7XG4rZXh0ZXJuIGJvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeCk7XG4gXG4gLyogYm5vZGUuYyAqL1xuIGV4dGVybiB2b2lkIGhmc19ibm9kZV9yZWFkKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsIHZvaWQgKmJ1ZiwgdTMyIG9mZiwgdTMyIGxlbik7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDoyMS4wMTU0NjUwNDhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5Njg0NTUzNDcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkhGUyBGaWxlc3lzdGVtIFBhdGNoIEFuYWx5c2lzIFx1MDAyNiBGdXp6aW5nIFN0cmF0ZWd5KipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCDigJMgbG9va3MgbGlrZSBpdCdzIHRvdWNoaW5nIGBmcy9oZnMvYnRyZWUuY2AgYW5kIGBmcy9oZnMvYnRyZWUuaGAsIHNwZWNpZmljYWxseS4gSSBzZWUgbmV3IGZ1bmN0aW9ucyBhZGRlZDogYGhmc19ibWFwX3Rlc3RfYml0YCwgd2hpY2ggZ2V0cyBjYWxsZWQgaW4gYGhmc19idHJlZV9vcGVuYCwgYWxvbmcgd2l0aCBgaGZzX2JtYXBfZ2V0X21hcF9wYWdlYCwgYGlzX2Jub2RlX29mZnNldF92YWxpZGAsIGFuZCBgY2hlY2tfYW5kX2NvcnJlY3RfcmVxdWVzdGVkX2xlbmd0aGAuIFJpZ2h0IG9mZiB0aGUgYmF0LCB0aGlzIHRlbGxzIG1lIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSBIRlMgZmlsZXN5c3RlbS4gVGhhdCBtZWFucyBwb3RlbnRpYWwgZm9yIHNvbWUgaW50ZXJlc3RpbmcgZWRnZSBjYXNlcyBhbmQgdnVsbmVyYWJpbGl0aWVzLCBzbyBmdXp6aW5nIGlzIGRlZmluaXRlbHkgaW4gb3JkZXIuXG5cbkZpcnN0IHN0ZXA6IEkgbmVlZCB0byB2ZXJpZnkgd2hpY2ggY29uZmlnIG9wdGlvbnMgYXJlIHJlbGV2YW50IGZvciB0aGUgSEZTIGZpbGVzeXN0ZW0uIFNpbmNlIGl0J3MgdG91Y2hpbmcgY29yZSBmaWxlc3lzdGVtIGNvZGUsIGBmcy9oZnMvS2NvbmZpZ2AgaXMgdGhlIG1vc3QgbG9naWNhbCBwbGFjZSB0byBzdGFydC4gSSdtIGJldHRpbmcgdGhhdCBgQ09ORklHX0hGU19GU2AgaXMgdGhlIGtleS4gT25jZSBJIGhhdmUgdGhlIGNvbmZpZyBvcHRpb25zIGRpYWxlZCBpbiwgSSBjYW4gZW5zdXJlIHRoYXQgdGhlIGZ1enppbmcgZW52aXJvbm1lbnQgaXMgYXBwcm9wcmlhdGVseSBjb25maWd1cmVkIHRvIHRyaWdnZXIgdGhlIGNvZGUgcGF0aHMgSSB3YW50IHRvIHRlc3QuIFRoYXQncyB0aGUga2V5IHRvIG1ha2luZyBzdXJlIHRoYXQgdGhlIGZ1enppbmcgZWZmb3J0cyBhcmUgdGFyZ2V0ZWQgYW5kIGVmZmVjdGl2ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzMzNiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjUwOjMwLjcwMDAyMTA5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwODkwMTg3MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSEZTX0ZTXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2hmcy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2hmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMvaGZzL0tjb25maWc6Mjpjb25maWcgSEZTX0ZTXFxuZnMvaGZzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiQXBwbGUgTWFjaW50b3NoIGZpbGUgc3lzdGVtIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDA1OjUwOjMxLjIwODkzNDY1MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwNjMxNTQzNzAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSEZTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgc2VlbXMgbGlrZSB0aGUga2V5IGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgaXMgYEhGU19GU2AuIFJpZ2h0LCBsZXQncyB6ZXJvIGluIG9uIHRoZSBjb3JlIGNoYW5nZXMuIE15IGluaXRpYWwgc2NhbiBwb2ludHMgdG8gYSBmZXcgZnVuY3Rpb24gbW9kaWZpY2F0aW9ucyBhbmQgYWRkaXRpb25zLiBJdCBsb29rcyBsaWtlIHdlJ3JlIHRvdWNoaW5nIGBoZnNfYnRyZWVfb3BlbmAsIGBoZnNfYm1hcF9hbGxvY2AsIGFuZCBgaGZzX2JtYXBfZnJlZWAg4oCTIHRoYXQgZ2l2ZXMgbWUgc29tZSBjb250ZXh0IGltbWVkaWF0ZWx5LiBUaGVuIHRoZXJlIGFyZSBzb21lIG5ldyBmdW5jdGlvbnM6IGBoZnNfYm1hcF90ZXN0X2JpdGAsIGBoZnNfYm1hcF9nZXRfbWFwX3BhZ2VgLCBgaXNfYm5vZGVfb2Zmc2V0X3ZhbGlkYCwgYW5kIGBjaGVja19hbmRfY29ycmVjdF9yZXF1ZXN0ZWRfbGVuZ3RoYC5cblxuQSBxdWljayBnbGFuY2UgYXQgdGhlIHNpZ25hdHVyZXMgcmV2ZWFscyBzb21lIGludGVyZXN0aW5nIGRldGFpbHMuIGBpc19ibm9kZV9vZmZzZXRfdmFsaWRgIGFuZCBgY2hlY2tfYW5kX2NvcnJlY3RfcmVxdWVzdGVkX2xlbmd0aGAgYXJlIGRlY2xhcmVkIGFzIGBzdGF0aWMgaW5saW5lYCwgd2hpY2ggd2lsbCBoYXZlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBkdWUgdG8gaW5saW5pbmcuIGBoZnNfYm1hcF9nZXRfbWFwX3BhZ2VgIGlzIGFsc28gZGVjbGFyZWQgYHN0YXRpY2AsIG1ha2luZyBpdCBub24tZXhwb3J0ZWQuIEJ1dCBgaGZzX2JtYXBfdGVzdF9iaXRgIGlzIGdsb2JhbC9leHBvcnRlZC4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC5cblxuTm93LCBsZXQncyB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhlIG1vZGlmaWVkIGZ1bmN0aW9ucywgc3RhcnRpbmcgd2l0aCBgaGZzX2J0cmVlX29wZW5gLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIGEgaG90LXBhdGggZnVuY3Rpb24uIFRoaW5raW5nIGFib3V0IEhGUyBmaWxlIHN5c3RlbXMsIG9wZW5pbmcgYSBidHJlZSBoYXBwZW5zIGR1cmluZyBtb3VudCwgcmlnaHQ/IFNvLCB0aGlzIGNvdWxkIGJlIHBlcmZvcm1hbmNlLWNyaXRpY2FsLiBUaGVuLCBsZXQncyBjaGVjayBgaGZzX2JtYXBfdGVzdF9iaXRgLiBMb29rcyBsaWtlIGl0IGlzIGNhbGxlZCBmcm9tIGBoZnNfYnRyZWVfb3BlbmAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NTUsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NTA6NDEuODQwNDgxMDYyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNTk2MjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImhmc19idHJlZV9vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2hmcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvaGZzL2J0cmVlLmMtMTgtLyogR2V0IGEgcmVmZXJlbmNlIHRvIGEgQipUcmVlIGFuZCBkbyBzb21lIGluaXRpYWwgY2hlY2tzICovXFxuZnMvaGZzL2J0cmVlLmM6MTk6c3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2V5Y21wKVxcbmZzL2hmcy9idHJlZS5jLTIwLXtcXG4tLVxcbmZzL2hmcy9idHJlZS5oPTc3PXN0cnVjdCBoZnNfZmluZF9kYXRhIHtcXG4tLVxcbmZzL2hmcy9idHJlZS5oLTg4LS8qIGJ0cmVlLmMgKi9cXG5mcy9oZnMvYnRyZWUuaDo4OTpleHRlcm4gc3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLFxcbmZzL2hmcy9idHJlZS5oLTkwLVxcdFxcdFxcdFxcdFxcdGJ0cmVlX2tleWNtcCBrZXljbXApO1xcbi0tXFxuZnMvaGZzL21kYi5jPTk0PWludCBoZnNfbWRiX2dldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbi0tXFxuZnMvaGZzL21kYi5jLTIyNy1cXG5mcy9oZnMvbWRiLmM6MjI4OlxcdEhGU19TQihzYiktXFx1MDAzZWV4dF90cmVlID0gaGZzX2J0cmVlX29wZW4oc2IsIEhGU19FWFRfQ05JRCwgaGZzX2V4dF9rZXljbXApO1xcbmZzL2hmcy9tZGIuYy0yMjktXFx0aWYgKCFIRlNfU0Ioc2IpLVxcdTAwM2VleHRfdHJlZSkge1xcbi0tXFxuZnMvaGZzL21kYi5jLTIzMi1cXHR9XFxuZnMvaGZzL21kYi5jOjIzMzpcXHRIRlNfU0Ioc2IpLVxcdTAwM2VjYXRfdHJlZSA9IGhmc19idHJlZV9vcGVuKHNiLCBIRlNfQ0FUX0NOSUQsIGhmc19jYXRfa2V5Y21wKTtcXG5mcy9oZnMvbWRiLmMtMjM0LVxcdGlmICghSEZTX1NCKHNiKS1cXHUwMDNlY2F0X3RyZWUpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NTA6NDEuOTExMTI1MTY3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQwMzQzNTUzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRlY29uc3RydWN0aW5nIHRoZSBIRlMrIE1vdW50IFNlcXVlbmNlKipcblxuT2theSwgc28gSSdtIHRyYWNpbmcgdGhyb3VnaCB0aGlzIEhGUysgbW91bnQgcHJvY2VzcywgYW5kIGl0IHNlZW1zIGxpa2UgYGhmc19idHJlZV9vcGVuYCBpcyB0cmlnZ2VyZWQgZHVyaW5nIHRoZSBtb3VudCBvcGVyYXRpb24sIHNwZWNpZmljYWxseSB3aXRoaW4gYGhmc19tZGJfZ2V0YC4gVGhhdCBtYWtlcyBzZW5zZTsgd2UgbmVlZCB0byBhY2Nlc3MgdGhlIEItdHJlZSBmb3IgbWV0YWRhdGEuXG5cbk5vdywgaGVyZSdzIHRoZSBpbnRlcmVzdGluZyBwYXJ0OiBgaGZzX2JtYXBfdGVzdF9iaXRgIGdldHMgY2FsbGVkIGZyb20gKndpdGhpbiogYGhmc19idHJlZV9vcGVuYC4gVGhhdCBzdWdnZXN0cyB3ZSdyZSBkb2luZyBzb21lIGtpbmQgb2YgYml0LWxldmVsIGNoZWNrIHdpdGhpbiB0aGUgQi10cmVlIG9wZW5pbmcgc2VxdWVuY2UsIHByb2JhYmx5IHJlbGF0ZWQgdG8gdGhlIGFsbG9jYXRpb24gYml0bWFwLlxuXG5NeSBuZXh0IHN0ZXA/IEkgd2FudCB0byBkZXRlcm1pbmUgaWYgYGhmc19ibWFwX3Rlc3RfYml0YCBpcyB1c2VkICphbnl3aGVyZSBlbHNlKiBpbiB0aGUgY29kZWJhc2UuIFVuZGVyc3RhbmRpbmcgYWxsIGl0cyBjYWxsIHNpdGVzIHdpbGwgcmVhbGx5IHNvbGlkaWZ5IHRoZSBjb250ZXh0IGhlcmUuIEknbGwgbmVlZCB0byBrbm93IGlmIHRoYXQgZnVuY3Rpb24gaGFzIG90aGVyIGltcGxpY2F0aW9ucyB3aXRoaW4gdGhlIEhGUysgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ5NTYsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDo0NS4zMTQ1NjI5NzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM5MDY1MDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImhmc19ibWFwX3Rlc3RfYml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2hmcy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvaGZzL2J0cmVlLmM9MTk9c3RydWN0IGhmc19idHJlZSAqaGZzX2J0cmVlX29wZW4oc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdTMyIGlkLCBidHJlZV9rZXljbXAga2V5Y21wKVxcbi0tXFxuZnMvaGZzL2J0cmVlLmMtMTYzLVxcbmZzL2hmcy9idHJlZS5jOjE2NDpcXHRpZiAoIWhmc19ibWFwX3Rlc3RfYml0KG5vZGUsIDApKSB7XFxuZnMvaGZzL2J0cmVlLmMtMTY1LVxcdFxcdHByX3dhcm4oXFxcIiglcyk6ICVzIChjbmlkIDB4JXgpIG1hcCByZWNvcmQgaW52YWxpZCBvciBiaXRtYXAgY29ycnVwdGlvbiBkZXRlY3RlZCwgZm9yY2luZyByZWFkLW9ubHkuXFxcXG5cXFwiLFxcbi0tXFxuZnMvaGZzL2J0cmVlLmM9Mzk3PXN0YXRpYyBzdHJ1Y3QgcGFnZSAqaGZzX2JtYXBfZ2V0X21hcF9wYWdlKHN0cnVjdCBoZnNfYm5vZGUgKm5vZGUsXFxuLS1cXG5mcy9oZnMvYnRyZWUuYy00MzYtXFxuZnMvaGZzL2J0cmVlLmM6NDM3OmJvb2wgaGZzX2JtYXBfdGVzdF9iaXQoc3RydWN0IGhmc19ibm9kZSAqbm9kZSwgdTMyIG5vZGVfYml0X2lkeClcXG5mcy9oZnMvYnRyZWUuYy00Mzgte1xcbi0tXFxuZnMvaGZzL2J0cmVlLmg9OTY9c3RydWN0IGhmc19ibWFwX2N0eDtcXG5mcy9oZnMvYnRyZWUuaDo5NzpleHRlcm4gYm9vbCBoZnNfYm1hcF90ZXN0X2JpdChzdHJ1Y3QgaGZzX2Jub2RlICpub2RlLCB1MzIgbm9kZV9iaXRfaWR4KTtcXG5mcy9oZnMvYnRyZWUuaC05OC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDU6NTA6NDUuNjUzNjMyOTEyWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYxODk3OTI4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEhGUyBCLVRyZWUgVmFsaWRhdGlvbiBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyB2YWxpZGF0aW9uIGNoZWNrcyB3aXRoaW4gdGhlIEhGUyBiLXRyZWUgb3BlbmluZyBwcm9jZXNzLiBTcGVjaWZpY2FsbHksIGl0J3MgZm9jdXNlZCBvbiBjb25maXJtaW5nIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIG1hcCByZWNvcmQgYW5kIHZlcmlmeWluZyB0aGUgYWJzZW5jZSBvZiBiaXRtYXAgY29ycnVwdGlvbi4gSXQgbG9va3MgbGlrZSB0aGUgcmVsZXZhbnQgZnVuY3Rpb25zIGFyZSBgaGZzX2J0cmVlX29wZW5gIGFuZCBgaGZzX2JtYXBfdGVzdF9iaXRgLiBUaGUgY29uZmlnIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQgLSBgSEZTX0ZTYC4gVGhlIHJlYXNvbmluZyBpcyBzb3VuZDogdGhpcyBpcyBmdW5jdGlvbmFsIGxvZ2ljIHRyaWdnZXJlZCBkdXJpbmcgdGhlIG1vdW50aW5nIG9mIGEgY3JhZnRlZCBIRlMgaW1hZ2UsIGFuZCB0aGVyZWZvcmUgY291bGQgYmUgZXhwbG9pdGVkLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIGZvciBhbnkgb3RoZXIgZnVuY3Rpb25zIGludm9sdmVkLi4uIFJpZ2h0LCBgaGZzX2JtYXBfZ2V0X21hcF9wYWdlYCBpcyBzdGF0aWMsIHNvIGl0IHdvbid0IGJlIGV4cG9zZWQgYXMgYSBzeW1ib2wgYW5kIGlzIG5vdCByZWxldmFudCBmb3IgdGhlIGltbWVkaWF0ZSBwdXJwb3NlIG9mIGlkZW50aWZ5aW5nIHRoZSBmb2N1cyBvZiB0aGUgcGF0Y2gsIGl0IHNlZW1zLiBXZSBhbHJlYWR5IGNvbmZpcm1lZCBgaGZzX2J0cmVlX29wZW5gIGlzIGdsb2JhbCBhbmQgYGhmc19ibWFwX3Rlc3RfYml0YCBpcyBhbHNvIGdsb2JhbC5cblxuQWxyaWdodCwgdGhhdCBjb3ZlcnMgaXQuIEknbGwgc2V0IHRoZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjE3LCJPdXRwdXRUb2tlbnMiOjExMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwNTo1MDo1MC4yNzI2MTQ1OFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2MzUxMTg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJIRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJoZnNfYnRyZWVfb3BlblwiLFxuICAgIFwiaGZzX2JtYXBfdGVzdF9iaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgZm9yIEhGUyBidHJlZSBtYXAgcmVjb3JkcyBkdXJpbmcgbW91bnQuIEl0IGludHJvZHVjZXMgYSBuZXcgZnVuY3Rpb24gYGhmc19ibWFwX3Rlc3RfYml0YCBhbmQgbW9kaWZpZXMgYGhmc19idHJlZV9vcGVuYC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIGJ5IG1vdW50aW5nIGEgY3JhZnRlZCBIRlMgZmlsZXN5c3RlbSBpbWFnZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJIRlNfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJoZnNfYnRyZWVfb3BlblwiLFxuICAgIFwiaGZzX2JtYXBfdGVzdF9iaXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgZm9yIEhGUyBidHJlZSBtYXAgcmVjb3JkcyBkdXJpbmcgbW91bnQuIEl0IGludHJvZHVjZXMgYSBuZXcgZnVuY3Rpb24gYGhmc19ibWFwX3Rlc3RfYml0YCBhbmQgbW9kaWZpZXMgYGhmc19idHJlZV9vcGVuYC4gVGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgcmVhY2hhYmxlIGJ5IG1vdW50aW5nIGEgY3JhZnRlZCBIRlMgZmlsZXN5c3RlbSBpbWFnZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowd48dd[1] Phase: Succeeded StartedAt: 2026-07-03 05:51:27 +0000 UTC FinishedAt: 2026-07-03 05:51:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-03 05:51:27 +0000 UTC FinishedAt: 2026-07-03 05:51:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2] Phase: Succeeded StartedAt: 2026-07-03 05:51:27 +0000 UTC FinishedAt: 2026-07-03 10:01:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 05:51:27 +0000 UTC FinishedAt: 2026-07-03 10:01: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":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 05:51:27 +0000 UTC FinishedAt: 2026-07-03 05:53:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 05:51:27 +0000 UTC FinishedAt: 2026-07-03 05:53:08 +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":["HFS_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-workflowd48dd/series-workflowd48dd-convert-artifact-3488564984/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 05:53:30 +0000 UTC FinishedAt: 2026-07-03 06:18:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 05:53:30 +0000 UTC FinishedAt: 2026-07-03 06:18:08 +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:*25fd00c1-88a5-4abb-b2a3-f2e2c847c052,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-workflowd48dd/series-workflowd48dd-convert-artifact-3488564984/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": "7c60f203-fb30-4702-a3a3-cf2c3721b09b", "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-workflowd48dd/series-workflowd48dd-build-action-2825194414/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 05:53:30 +0000 UTC FinishedAt: 2026-07-03 06:17:58 +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:*25fd00c1-88a5-4abb-b2a3-f2e2c847c052,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-workflowd48dd/series-workflowd48dd-convert-artifact-3488564984/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": "7c60f203-fb30-4702-a3a3-cf2c3721b09b", "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-workflowd48dd/series-workflowd48dd-build-action-2825194414/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:18:08 +0000 UTC FinishedAt: 2026-07-03 06:18:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:18:08 +0000 UTC FinishedAt: 2026-07-03 06:18:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:18:08 +0000 UTC FinishedAt: 2026-07-03 06:18:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:18:08 +0000 UTC FinishedAt: 2026-07-03 06:18:15 +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":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-workflowd48dd/series-workflowd48dd-convert-artifact-3018142559/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:18:18 +0000 UTC FinishedAt: 2026-07-03 06:20:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:18:18 +0000 UTC FinishedAt: 2026-07-03 06:20:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7c60f203-fb30-4702-a3a3-cf2c3721b09b,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-workflowd48dd/series-workflowd48dd-build-action-2825194414/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-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:20:37 +0000 UTC FinishedAt: 2026-07-03 06:20:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:20:37 +0000 UTC FinishedAt: 2026-07-03 06:20:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:20:37 +0000 UTC FinishedAt: 2026-07-03 06:55:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:20:37 +0000 UTC FinishedAt: 2026-07-03 06:55:02 +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:*25fd00c1-88a5-4abb-b2a3-f2e2c847c052,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-workflowd48dd/series-workflowd48dd-convert-artifact-3018142559/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": "79caaa72-1916-4438-8035-cce645797c8e", "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-workflowd48dd/series-workflowd48dd-build-action-62243059/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:20:37 +0000 UTC FinishedAt: 2026-07-03 06:54:52 +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:*25fd00c1-88a5-4abb-b2a3-f2e2c847c052,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-workflowd48dd/series-workflowd48dd-convert-artifact-3018142559/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": "79caaa72-1916-4438-8035-cce645797c8e", "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-workflowd48dd/series-workflowd48dd-build-action-62243059/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:55:02 +0000 UTC FinishedAt: 2026-07-03 06:55:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:55:02 +0000 UTC FinishedAt: 2026-07-03 06:55:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:55:02 +0000 UTC FinishedAt: 2026-07-03 06:57:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:55:02 +0000 UTC FinishedAt: 2026-07-03 06:57:08 +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:*79caaa72-1916-4438-8035-cce645797c8e,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-workflowd48dd/series-workflowd48dd-build-action-62243059/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-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:57:18 +0000 UTC FinishedAt: 2026-07-03 10:01:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:57:18 +0000 UTC FinishedAt: 2026-07-03 10:01: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":["hfs_btree_open","hfs_bmap_test_bit"],"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:*7c60f203-fb30-4702-a3a3-cf2c3721b09b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*79caaa72-1916-4438-8035-cce645797c8e,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-workflowd48dd/series-workflowd48dd-build-action-2825194414/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-workflowd48dd/series-workflowd48dd-build-action-62243059/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:57:18 +0000 UTC FinishedAt: 2026-07-03 06:58:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:57:18 +0000 UTC FinishedAt: 2026-07-03 06:57:58 +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":["hfs_btree_open","hfs_bmap_test_bit"],"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-workflowd48dd/series-workflowd48dd-convert-artifact-719895928/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:57:18 +0000 UTC FinishedAt: 2026-07-03 06:57:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:57:18 +0000 UTC FinishedAt: 2026-07-03 06:57:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:57:18 +0000 UTC FinishedAt: 2026-07-03 06:57:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:58:03 +0000 UTC FinishedAt: 2026-07-03 10:01:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd48dd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_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":["hfs_btree_open","hfs_bmap_test_bit"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"4a50a141f05a8d1737661b19ee22ff8455b94409","config_name":"upstream-apparmor-kasan.config","enable_configs":["HFS_FS"],"series_id":"78b17e4d-8f65-4419-a039-dc6dbfea0d6c","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-03 06:58:03 +0000 UTC FinishedAt: 2026-07-03 10:01:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7c60f203-fb30-4702-a3a3-cf2c3721b09b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*79caaa72-1916-4438-8035-cce645797c8e,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-workflowd48dd/series-workflowd48dd-build-action-2825194414/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-workflowd48dd/series-workflowd48dd-build-action-62243059/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-workflowd48dd/series-workflowd48dd-convert-artifact-719895928/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,}