Name: series-workflowwkb9q Phase: Succeeded StartedAt: 2026-08-07 03:25:39 +0000 UTC FinishedAt: 2026-08-07 07:35:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[0] Phase: Succeeded StartedAt: 2026-08-07 03:25:39 +0000 UTC FinishedAt: 2026-08-07 03:53:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[0].run-triage Phase: Succeeded StartedAt: 2026-08-07 03:25:39 +0000 UTC FinishedAt: 2026-08-07 03:53:16 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "594d905195024b228c962627ae5ae7c17bd582a4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TLS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "594d905195024b228c962627ae5ae7c17bd582a4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TLS" ], "series_id": "8f816f1f-0062-45be-bd74-56d7b85f39a0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tls_sw_splice_read" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAzOjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MjZtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUTFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0bHNfc3dfc3BsaWNlX3JlYWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRMUyBzdWJzeXN0ZW0gdG8gY2hlY2sgZm9yIGFzeW5jaHJvbm91cyBjcnlwdG8gZXJyb3JzIGR1cmluZyBzcGxpY2VfcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYyAoVExTIHNvY2tldCBvcGVyYXRpb25zKSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzoyNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDcyMmRlMjFhZDg4YzVkMzQ4OGNiMWViZGQyODUxYmEwY2Q5YmI1Y2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDAzOjI2OjU2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jXG5pbmRleCA2MmQ0NjczNmUyNGI3Li5kMWFkMzE5ODZjZjJjIDEwMDY0NFxuLS0tIGEvbmV0L3Rscy90bHNfc3cuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3Rscy90bHNfc3cuY1xuQEAgLTIwMTQsNiAmIzQzOzIwMTQsMTEgQEAgc3NpemVfdCB0bHNfc3dfc3BsaWNlX3JlYWQoc3RydWN0IHNvY2tldCAqc29jaywgIGxvZmZfdCAqcHBvcyxcbiBcdGlmIChlcnIgXHUwMDNjIDApXG4gXHRcdHJldHVybiBlcnI7XG4gXG4mIzQzO1x0LyogSWYgY3J5cHRvIGZhaWxlZCB0aGUgY29ubmVjdGlvbiBpcyBicm9rZW4gKi9cbiYjNDM7XHRlcnIgPSBjdHgtXHUwMDNlYXN5bmNfd2FpdC5lcnI7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdGdvdG8gc3BsaWNlX3JlYWRfZW5kO1xuJiM0MztcbiBcdGlmICghc2tiX3F1ZXVlX2VtcHR5KFx1MDAyNmN0eC1cdTAwM2VyeF9saXN0KSkge1xuIFx0XHRza2IgPSBfX3NrYl9kZXF1ZXVlKFx1MDAyNmN0eC1cdTAwM2VyeF9saXN0KTtcbiBcdH0gZWxzZSB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXG5pbmRleCBhMGU3MmU0MDI3NDhmLi45ZDNjZDRmZmYwNjJiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNcbkBAIC0yNCw2ICYjNDM7MjQsNyBAQFxuICNpbmNsdWRlIFwmIzM0O2tzZWxmdGVzdF9oYXJuZXNzLmhcJiMzNDtcbiBcbiAjZGVmaW5lIFRMU19QQVlMT0FEX01BWF9MRU4gMTYzODRcbiYjNDM7I2RlZmluZSBUTFNfSERSX0xFTiA1XG4gI2RlZmluZSBTT0xfVExTIDI4MlxuIFxuIHN0YXRpYyBpbnQgZmlwc19lbmFibGVkO1xuQEAgLTI3MzIsMjggJiM0MzsyNzMzLDgzIEBAIFRFU1RfRih0bHNfZXJyLCBiYWRfcmVjKVxuIFx0RVhQRUNUX0VRKGVycm5vLCBFQUdBSU4pO1xuIH1cbiBcbiYjNDM7LyogY2ZkIGNhcnJpZXMgYSBieXRlIHN0cmVhbSwgc28gb25lIHJlY3YoKSBjYW4gcmV0dXJuIHBhcnQgb2YgYVxuJiM0MzsgKiByZWNvcmQuIFRha2UgdGhlIGZyYWdtZW50IGxlbmd0aCBmcm9tIHRoZSByZWNvcmQgaGVhZGVyIGFuZCB3YWl0XG4mIzQzOyAqIGZvciB0aGUgcmVtYWluZGVyLlxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIHZvaWQgdGxzX3NlbmRfYmFkX2F1dGgoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxuJiM0MztcdFx0XHQgICAgICBpbnQgZmQsIGludCBjZmQsIGludCBmZDIpXG4mIzQzO3tcbiYjNDM7XHRjaGFyIGJ1ZlsxMjhdO1xuJiM0MztcdGludCBsZW47XG4mIzQzO1xuJiM0MztcdG1lbXJuZChidWYsIHNpemVvZihidWYpIC8gMik7XG4mIzQzO1x0QVNTRVJUX0VRKHNlbmQoZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikgLyAyLCAwKSwgc2l6ZW9mKGJ1ZikgLyAyKTtcbiYjNDM7XG4mIzQzO1x0QVNTRVJUX0VRKHJlY3YoY2ZkLCBidWYsIFRMU19IRFJfTEVOLCBNU0dfV0FJVEFMTCksIFRMU19IRFJfTEVOKTtcbiYjNDM7XG4mIzQzO1x0bGVuID0gKCh1bnNpZ25lZCBjaGFyKWJ1ZlszXSBcdTAwM2NcdTAwM2MgOCkgfCAodW5zaWduZWQgY2hhcilidWZbNF07XG4mIzQzO1x0QVNTRVJUX0dUKGxlbiwgMCk7XG4mIzQzO1x0QVNTRVJUX0xFKGxlbiwgKGludClzaXplb2YoYnVmKSAtIFRMU19IRFJfTEVOKTtcbiYjNDM7XG4mIzQzO1x0QVNTRVJUX0VRKHJlY3YoY2ZkLCBidWYgJiM0MzsgVExTX0hEUl9MRU4sIGxlbiwgTVNHX1dBSVRBTEwpLCBsZW4pO1xuJiM0MztcbiYjNDM7XHRidWZbVExTX0hEUl9MRU4gJiM0MzsgbGVuIC0gMV0mIzQzOyYjNDM7O1xuJiM0MztcbiYjNDM7XHRBU1NFUlRfRVEoc2VuZChmZDIsIGJ1ZiwgVExTX0hEUl9MRU4gJiM0MzsgbGVuLCAwKSwgVExTX0hEUl9MRU4gJiM0MzsgbGVuKTtcbiYjNDM7fVxuJiM0MztcbiBURVNUX0YodGxzX2VyciwgYmFkX2F1dGgpXG4ge1xuIFx0Y2hhciBidWZbMTI4XTtcbi1cdGludCBuO1xuIFxuIFx0aWYgKHNlbGYtXHUwMDNlbm90bHMpXG4gXHRcdFNLSVAocmV0dXJuLCBcJiMzNDtubyBUTFMgc3VwcG9ydFwmIzM0Oyk7XG4gXG4tXHRtZW1ybmQoYnVmLCBzaXplb2YoYnVmKSAvIDIpO1xuLVx0RVhQRUNUX0VRKHNlbmQoc2VsZi1cdTAwM2VmZCwgYnVmLCBzaXplb2YoYnVmKSAvIDIsIDApLCBzaXplb2YoYnVmKSAvIDIpO1xuLVx0biA9IHJlY3Yoc2VsZi1cdTAwM2VjZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApO1xuLVx0RVhQRUNUX0dUKG4sIHNpemVvZihidWYpIC8gMik7XG4mIzQzO1x0dGxzX3NlbmRfYmFkX2F1dGgoX21ldGFkYXRhLCBzZWxmLVx1MDAzZWZkLCBzZWxmLVx1MDAzZWNmZCwgc2VsZi1cdTAwM2VmZDIpO1xuIFxuLVx0YnVmW24gLSAxXSYjNDM7JiM0Mzs7XG4tXG4tXHRFWFBFQ1RfRVEoc2VuZChzZWxmLVx1MDAzZWZkMiwgYnVmLCBuLCAwKSwgbik7XG4gXHRFWFBFQ1RfRVEocmVjdihzZWxmLVx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XG4gXHRFWFBFQ1RfRVEoZXJybm8sIEVCQURNU0cpO1xuIFx0RVhQRUNUX0VRKHJlY3Yoc2VsZi1cdTAwM2VjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpO1xuIFx0RVhQRUNUX0VRKGVycm5vLCBFQkFETVNHKTtcbiB9XG4gXG4mIzQzOy8qIEEgcmVjb3JkIHRoYXQgZGlkIG5vdCBhdXRoZW50aWNhdGUgYnJlYWtzIHRoZSBjb25uZWN0aW9uIGZvciBldmVyeVxuJiM0MzsgKiByZWFkZXIsIHNwbGljZSBpbmNsdWRlZC5cbiYjNDM7ICpcbiYjNDM7ICogVGhlIHR3byBkZWNyeXB0IHBhdGhzIHJlYWNoIHRoYXQgcmVzdWx0IGRpZmZlcmVudGx5LiBBIHN5bmNocm9ub3VzXG4mIzQzOyAqIGRlY3J5cHQgbGVhdmVzIHRoZSByZWNvcmQgcGFyc2VkLCBzbyB0aGUgc3BsaWNlIHJlLXJ1bnMgdGhlIGRlY3J5cHRcbiYjNDM7ICogYW5kIGZhaWxzIG9uIHRoZSByZWNvcmQgaXRzZWxmOyB0aGUgY3R4LVx1MDAzZWFzeW5jX3dhaXQuZXJyIGNoZWNrIGluXG4mIzQzOyAqIHRsc19zd19zcGxpY2VfcmVhZCgpIGlzIG5vdCB3aGF0IHN0b3BzIGl0LiBPbmx5IGFuIGFzeW5jaHJvbm91c1xuJiM0MzsgKiBkZWNyeXB0LCB3aGljaCBuZWVkcyBhIFRMUyAxLjIgc29ja2V0IGFuZCBhbiBBRUFEIGFkdmVydGlzaW5nXG4mIzQzOyAqIENSWVBUT19BTEdfQVNZTkMsIGNvbnN1bWVzIHRoZSByZWNvcmQgYmVmb3JlIHRoZSBmYWlsdXJlIGlzXG4mIzQzOyAqIHJlY29yZGVkLCBsZWF2aW5nIHRoYXQgY2hlY2sgdGhlIHNvbGUgcmVhc29uIHRoZSBzcGxpY2UgZmFpbHMuXG4mIzQzOyAqL1xuJiM0MztURVNUX0YodGxzX2VyciwgYmFkX2F1dGhfc3BsaWNlKVxuJiM0Mzt7XG4mIzQzO1x0Y2hhciBidWZbMTI4XTtcbiYjNDM7XHRzc2l6ZV90IHJldDtcbiYjNDM7XHRpbnQgcFsyXTtcbiYjNDM7XG4mIzQzO1x0aWYgKHNlbGYtXHUwMDNlbm90bHMpXG4mIzQzO1x0XHRTS0lQKHJldHVybiwgXCYjMzQ7bm8gVExTIHN1cHBvcnRcJiMzNDspO1xuJiM0MztcbiYjNDM7XHR0bHNfc2VuZF9iYWRfYXV0aChfbWV0YWRhdGEsIHNlbGYtXHUwMDNlZmQsIHNlbGYtXHUwMDNlY2ZkLCBzZWxmLVx1MDAzZWZkMik7XG4mIzQzO1xuJiM0MztcdEVYUEVDVF9FUShyZWN2KHNlbGYtXHUwMDNlY2ZkMiwgYnVmLCBzaXplb2YoYnVmKSwgMCksIC0xKTtcbiYjNDM7XHRFWFBFQ1RfRVEoZXJybm8sIEVCQURNU0cpO1xuJiM0MztcbiYjNDM7XHRBU1NFUlRfR0UocGlwZShwKSwgMCk7XG4mIzQzO1xuJiM0MztcdHJldCA9IHNwbGljZShzZWxmLVx1MDAzZWNmZDIsIE5VTEwsIHBbMV0sIE5VTEwsIHNpemVvZihidWYpLFxuJiM0MztcdFx0ICAgICBTUExJQ0VfRl9OT05CTE9DSyk7XG4mIzQzO1x0RVhQRUNUX0VRKHJldCwgLTEpO1xuJiM0MztcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XG4mIzQzO1xuJiM0MztcdGNsb3NlKHBbMF0pO1xuJiM0MztcdGNsb3NlKHBbMV0pO1xuJiM0Mzt9XG4mIzQzO1xuIFRFU1RfRih0bHNfZXJyLCBiYWRfaW5fbGFyZ2VfcmVhZClcbiB7XG4gXHRjaGFyIHR4dFszXVs2NF07XG5AQCAtMzAwOSw3ICYjNDM7MzA2NSw2IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxuIHtcbiBcdGNvbnN0IF9fdTggKnJlYyA9IHJ4X2J1ZjtcbiBcdHNpemVfdCB0b3RhbF9wbGFpbnRleHRfcnggPSAwO1xuLVx0Y29uc3QgX191OCByZWNfaGVhZGVyX2xlbiA9IDU7XG4gXG4gXHR3aGlsZSAocmVjIFx1MDAzYyByeF9idWYgJiM0MzsgcnhfbGVuKSB7XG4gXHRcdF9fdTE2IHJlY29yZF9wYXlsb2FkX2xlbjtcbkBAIC0zMDI5LDcgJiM0MzszMDg0LDcgQEAgc3RhdGljIHNpemVfdCBwYXJzZV90bHNfcmVjb3JkcyhzdHJ1Y3QgX190ZXN0X21ldGFkYXRhICpfbWV0YWRhdGEsXG4gXG4gXHRcdC8qIFBsYWludGV4dCBtdXN0IG5vdCBleGNlZWQgdGhlIHNwZWNpZmllZCBsaW1pdCAqL1xuIFx0XHRBU1NFUlRfTEUocGxhaW50ZXh0X2xlbiwgbWF4X3BheWxvYWRfbGVuKTtcbi1cdFx0cmVjICYjNDM7PSByZWNfaGVhZGVyX2xlbiAmIzQzOyByZWNvcmRfcGF5bG9hZF9sZW47XG4mIzQzO1x0XHRyZWMgJiM0Mzs9IFRMU19IRFJfTEVOICYjNDM7IHJlY29yZF9wYXlsb2FkX2xlbjtcbiBcdH1cbiBcbiBcdHJldHVybiB0b3RhbF9wbGFpbnRleHRfcng7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDM6Mjc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MjZtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUTFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0bHNfc3dfc3BsaWNlX3JlYWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRMUyBzdWJzeXN0ZW0gdG8gY2hlY2sgZm9yIGFzeW5jaHJvbm91cyBjcnlwdG8gZXJyb3JzIGR1cmluZyBzcGxpY2VfcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYyAoVExTIHNvY2tldCBvcGVyYXRpb25zKSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDcyMmRlMjFhZDg4YzVkMzQ4OGNiMWViZGQyODUxYmEwY2Q5YmI1Y2MKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEF1ZyA3IDAzOjI2OjU2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggNjJkNDY3MzZlMjRiNy4uZDFhZDMxOTg2Y2YyYyAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfc3cuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC0yMDE0LDYgJiM0MzsyMDE0LDExIEBAIHNzaXplX3QgdGxzX3N3X3NwbGljZV9yZWFkKHN0cnVjdCBzb2NrZXQgKnNvY2ssICBsb2ZmX3QgKnBwb3MsCiAJaWYgKGVyciAmbHQ7IDApCiAJCXJldHVybiBlcnI7CiAKJiM0MzsJLyogSWYgY3J5cHRvIGZhaWxlZCB0aGUgY29ubmVjdGlvbiBpcyBicm9rZW4gKi8KJiM0MzsJZXJyID0gY3R4LSZndDthc3luY193YWl0LmVycjsKJiM0MzsJaWYgKGVycikKJiM0MzsJCWdvdG8gc3BsaWNlX3JlYWRfZW5kOwomIzQzOwogCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZhbXA7Y3R4LSZndDtyeF9saXN0KSkgewogCQlza2IgPSBfX3NrYl9kZXF1ZXVlKCZhbXA7Y3R4LSZndDtyeF9saXN0KTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jCmluZGV4IGEwZTcyZTQwMjc0OGYuLjlkM2NkNGZmZjA2MmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmMKQEAgLTI0LDYgJiM0MzsyNCw3IEBACiAjaW5jbHVkZSAmIzM0O2tzZWxmdGVzdF9oYXJuZXNzLmgmIzM0OwogCiAjZGVmaW5lIFRMU19QQVlMT0FEX01BWF9MRU4gMTYzODQKJiM0MzsjZGVmaW5lIFRMU19IRFJfTEVOIDUKICNkZWZpbmUgU09MX1RMUyAyODIKIAogc3RhdGljIGludCBmaXBzX2VuYWJsZWQ7CkBAIC0yNzMyLDI4ICYjNDM7MjczMyw4MyBAQCBURVNUX0YodGxzX2VyciwgYmFkX3JlYykKIAlFWFBFQ1RfRVEoZXJybm8sIEVBR0FJTik7CiB9CiAKJiM0MzsvKiBjZmQgY2FycmllcyBhIGJ5dGUgc3RyZWFtLCBzbyBvbmUgcmVjdigpIGNhbiByZXR1cm4gcGFydCBvZiBhCiYjNDM7ICogcmVjb3JkLiBUYWtlIHRoZSBmcmFnbWVudCBsZW5ndGggZnJvbSB0aGUgcmVjb3JkIGhlYWRlciBhbmQgd2FpdAomIzQzOyAqIGZvciB0aGUgcmVtYWluZGVyLgomIzQzOyAqLwomIzQzO3N0YXRpYyB2b2lkIHRsc19zZW5kX2JhZF9hdXRoKHN0cnVjdCBfX3Rlc3RfbWV0YWRhdGEgKl9tZXRhZGF0YSwKJiM0MzsJCQkgICAgICBpbnQgZmQsIGludCBjZmQsIGludCBmZDIpCiYjNDM7ewomIzQzOwljaGFyIGJ1ZlsxMjhdOwomIzQzOwlpbnQgbGVuOwomIzQzOwomIzQzOwltZW1ybmQoYnVmLCBzaXplb2YoYnVmKSAvIDIpOwomIzQzOwlBU1NFUlRfRVEoc2VuZChmZCwgYnVmLCBzaXplb2YoYnVmKSAvIDIsIDApLCBzaXplb2YoYnVmKSAvIDIpOwomIzQzOwomIzQzOwlBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiwgVExTX0hEUl9MRU4sIE1TR19XQUlUQUxMKSwgVExTX0hEUl9MRU4pOwomIzQzOwomIzQzOwlsZW4gPSAoKHVuc2lnbmVkIGNoYXIpYnVmWzNdICZsdDsmbHQ7IDgpIHwgKHVuc2lnbmVkIGNoYXIpYnVmWzRdOwomIzQzOwlBU1NFUlRfR1QobGVuLCAwKTsKJiM0MzsJQVNTRVJUX0xFKGxlbiwgKGludClzaXplb2YoYnVmKSAtIFRMU19IRFJfTEVOKTsKJiM0MzsKJiM0MzsJQVNTRVJUX0VRKHJlY3YoY2ZkLCBidWYgJiM0MzsgVExTX0hEUl9MRU4sIGxlbiwgTVNHX1dBSVRBTEwpLCBsZW4pOwomIzQzOwomIzQzOwlidWZbVExTX0hEUl9MRU4gJiM0MzsgbGVuIC0gMV0mIzQzOyYjNDM7OwomIzQzOwomIzQzOwlBU1NFUlRfRVEoc2VuZChmZDIsIGJ1ZiwgVExTX0hEUl9MRU4gJiM0MzsgbGVuLCAwKSwgVExTX0hEUl9MRU4gJiM0MzsgbGVuKTsKJiM0Mzt9CiYjNDM7CiBURVNUX0YodGxzX2VyciwgYmFkX2F1dGgpCiB7CiAJY2hhciBidWZbMTI4XTsKLQlpbnQgbjsKIAogCWlmIChzZWxmLSZndDtub3RscykKIAkJU0tJUChyZXR1cm4sICYjMzQ7bm8gVExTIHN1cHBvcnQmIzM0Oyk7CiAKLQltZW1ybmQoYnVmLCBzaXplb2YoYnVmKSAvIDIpOwotCUVYUEVDVF9FUShzZW5kKHNlbGYtJmd0O2ZkLCBidWYsIHNpemVvZihidWYpIC8gMiwgMCksIHNpemVvZihidWYpIC8gMik7Ci0JbiA9IHJlY3Yoc2VsZi0mZ3Q7Y2ZkLCBidWYsIHNpemVvZihidWYpLCAwKTsKLQlFWFBFQ1RfR1Qobiwgc2l6ZW9mKGJ1ZikgLyAyKTsKJiM0MzsJdGxzX3NlbmRfYmFkX2F1dGgoX21ldGFkYXRhLCBzZWxmLSZndDtmZCwgc2VsZi0mZ3Q7Y2ZkLCBzZWxmLSZndDtmZDIpOwogCi0JYnVmW24gLSAxXSYjNDM7JiM0Mzs7Ci0KLQlFWFBFQ1RfRVEoc2VuZChzZWxmLSZndDtmZDIsIGJ1ZiwgbiwgMCksIG4pOwogCUVYUEVDVF9FUShyZWN2KHNlbGYtJmd0O2NmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7CiAJRVhQRUNUX0VRKGVycm5vLCBFQkFETVNHKTsKIAlFWFBFQ1RfRVEocmVjdihzZWxmLSZndDtjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpOwogCUVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7CiB9CiAKJiM0MzsvKiBBIHJlY29yZCB0aGF0IGRpZCBub3QgYXV0aGVudGljYXRlIGJyZWFrcyB0aGUgY29ubmVjdGlvbiBmb3IgZXZlcnkKJiM0MzsgKiByZWFkZXIsIHNwbGljZSBpbmNsdWRlZC4KJiM0MzsgKgomIzQzOyAqIFRoZSB0d28gZGVjcnlwdCBwYXRocyByZWFjaCB0aGF0IHJlc3VsdCBkaWZmZXJlbnRseS4gQSBzeW5jaHJvbm91cwomIzQzOyAqIGRlY3J5cHQgbGVhdmVzIHRoZSByZWNvcmQgcGFyc2VkLCBzbyB0aGUgc3BsaWNlIHJlLXJ1bnMgdGhlIGRlY3J5cHQKJiM0MzsgKiBhbmQgZmFpbHMgb24gdGhlIHJlY29yZCBpdHNlbGY7IHRoZSBjdHgtJmd0O2FzeW5jX3dhaXQuZXJyIGNoZWNrIGluCiYjNDM7ICogdGxzX3N3X3NwbGljZV9yZWFkKCkgaXMgbm90IHdoYXQgc3RvcHMgaXQuIE9ubHkgYW4gYXN5bmNocm9ub3VzCiYjNDM7ICogZGVjcnlwdCwgd2hpY2ggbmVlZHMgYSBUTFMgMS4yIHNvY2tldCBhbmQgYW4gQUVBRCBhZHZlcnRpc2luZwomIzQzOyAqIENSWVBUT19BTEdfQVNZTkMsIGNvbnN1bWVzIHRoZSByZWNvcmQgYmVmb3JlIHRoZSBmYWlsdXJlIGlzCiYjNDM7ICogcmVjb3JkZWQsIGxlYXZpbmcgdGhhdCBjaGVjayB0aGUgc29sZSByZWFzb24gdGhlIHNwbGljZSBmYWlscy4KJiM0MzsgKi8KJiM0MztURVNUX0YodGxzX2VyciwgYmFkX2F1dGhfc3BsaWNlKQomIzQzO3sKJiM0MzsJY2hhciBidWZbMTI4XTsKJiM0MzsJc3NpemVfdCByZXQ7CiYjNDM7CWludCBwWzJdOwomIzQzOwomIzQzOwlpZiAoc2VsZi0mZ3Q7bm90bHMpCiYjNDM7CQlTS0lQKHJldHVybiwgJiMzNDtubyBUTFMgc3VwcG9ydCYjMzQ7KTsKJiM0MzsKJiM0MzsJdGxzX3NlbmRfYmFkX2F1dGgoX21ldGFkYXRhLCBzZWxmLSZndDtmZCwgc2VsZi0mZ3Q7Y2ZkLCBzZWxmLSZndDtmZDIpOwomIzQzOwomIzQzOwlFWFBFQ1RfRVEocmVjdihzZWxmLSZndDtjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpOwomIzQzOwlFWFBFQ1RfRVEoZXJybm8sIEVCQURNU0cpOwomIzQzOwomIzQzOwlBU1NFUlRfR0UocGlwZShwKSwgMCk7CiYjNDM7CiYjNDM7CXJldCA9IHNwbGljZShzZWxmLSZndDtjZmQyLCBOVUxMLCBwWzFdLCBOVUxMLCBzaXplb2YoYnVmKSwKJiM0MzsJCSAgICAgU1BMSUNFX0ZfTk9OQkxPQ0spOwomIzQzOwlFWFBFQ1RfRVEocmV0LCAtMSk7CiYjNDM7CUVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7CiYjNDM7CiYjNDM7CWNsb3NlKHBbMF0pOwomIzQzOwljbG9zZShwWzFdKTsKJiM0Mzt9CiYjNDM7CiBURVNUX0YodGxzX2VyciwgYmFkX2luX2xhcmdlX3JlYWQpCiB7CiAJY2hhciB0eHRbM11bNjRdOwpAQCAtMzAwOSw3ICYjNDM7MzA2NSw2IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLAogewogCWNvbnN0IF9fdTggKnJlYyA9IHJ4X2J1ZjsKIAlzaXplX3QgdG90YWxfcGxhaW50ZXh0X3J4ID0gMDsKLQljb25zdCBfX3U4IHJlY19oZWFkZXJfbGVuID0gNTsKIAogCXdoaWxlIChyZWMgJmx0OyByeF9idWYgJiM0MzsgcnhfbGVuKSB7CiAJCV9fdTE2IHJlY29yZF9wYXlsb2FkX2xlbjsKQEAgLTMwMjksNyAmIzQzOzMwODQsNyBAQCBzdGF0aWMgc2l6ZV90IHBhcnNlX3Rsc19yZWNvcmRzKHN0cnVjdCBfX3Rlc3RfbWV0YWRhdGEgKl9tZXRhZGF0YSwKIAogCQkvKiBQbGFpbnRleHQgbXVzdCBub3QgZXhjZWVkIHRoZSBzcGVjaWZpZWQgbGltaXQgKi8KIAkJQVNTRVJUX0xFKHBsYWludGV4dF9sZW4sIG1heF9wYXlsb2FkX2xlbik7Ci0JCXJlYyAmIzQzOz0gcmVjX2hlYWRlcl9sZW4gJiM0MzsgcmVjb3JkX3BheWxvYWRfbGVuOwomIzQzOwkJcmVjICYjNDM7PSBUTFNfSERSX0xFTiAmIzQzOyByZWNvcmRfcGF5bG9hZF9sZW47CiAJfQogCiAJcmV0dXJuIHRvdGFsX3BsYWludGV4dF9yeDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDM6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU3NgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDI5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVExTIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgbmV0L3Rscy90bHNfc3cuY2AgYW5kIGEgc2VsZnRlc3QgZmlsZS4gVGhlIG1lYXQgb2YgdGhlIGNoYW5nZSBpcyBpbnNpZGUgYHRsc19zd19zcGxpY2VfcmVhZGAuIEl0IGFwcGVhcnMgdGhleSYjMzk7cmUgYWRkaW5nIGEgY3J1Y2lhbCBjaGVjay4gIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgZXhhbWluaW5nIGBjdHgtJmd0O2FzeW5jX3dhaXQuZXJyYCBhbmQgYmFpbGluZyBvdXQgaWYgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiwgd2hpY2ggbWFrZXMgcGVyZmVjdCBzZW5zZS4gIElmIHRoZSBjcnlwdG8gZmFpbHMsIHRoZSBjb25uZWN0aW9uIGlzIGZ1bmRhbWVudGFsbHkgYnJva2VuLCBzbyBhYm9ydGluZyB0aGUgcmVhZCBpcyB0aGUgY29ycmVjdCBiZWhhdmlvci4gIFRoaXMgaXMgYSBjbGVhbiwgbG9naWNhbCBhZGRpdGlvbiwgZnVuY3Rpb25hbGx5IHNpZ25pZmljYW50IGZvciB0aGUgVExTIHN1YnN5c3RlbS4KClNpbmNlIHRoaXMgbmV3IGVycm9yIHBhdGggaXMgaW50cm9kdWNlZCBpbiBgdGxzX3N3X3NwbGljZV9yZWFkYCwgdGhpcyBjbGVhcmx5IGludHJvZHVjZXMgYSBuZXcgY29kZSBwYXRoIHRoYXQmIzM5O3Mgbm93IHJlYWNoYWJsZSwgbWVhbmluZyBpdCYjMzk7cyB3b3J0aCBhIGZ1enppbmcgcnVuLiAgSSYjMzk7bSBnb2luZyB0byB3YW50IHRvIHZlcmlmeSB0aGUgaW1wbGVtZW50YXRpb24gdG8ga25vdyBpZiBhbGwgZWRnZSBjYXNlcyBhcmUgaGFuZGxlZC4KCk5vdywgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLiAgSSYjMzk7bGwgc3RhcnQgYnkgY2hlY2tpbmcgYG5ldC90bHMvS2NvbmZpZ2AgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGB0bHNfc3dgIGRyaXZlci4gRnJvbSB0aGVyZSwgSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGhvdyB0byBnZXQgdGhhdCBgYXN5bmNfd2FpdC5lcnJgIHRvIGJlIHNldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVExTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3Rscy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90bHMvS2NvbmZpZy00LSNcbm5ldC90bHMvS2NvbmZpZzo1OmNvbmZpZyBUTFNcbm5ldC90bHMvS2NvbmZpZy02LVx0dHJpc3RhdGUgXCYjMzQ7VHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGxzL0tjb25maWctMTgtXG5uZXQvdGxzL0tjb25maWc6MTk6Y29uZmlnIFRMU19ERVZJQ0Vcbm5ldC90bHMvS2NvbmZpZy0yMC1cdGJvb2wgXCYjMzQ7VHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IEhXIG9mZmxvYWRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjcyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBDb25maWd1cmF0aW9uIGFuZCBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5pdGVseSBsZWFuaW5nIHRvd2FyZHMgYFRMU2AuIE15IGltbWVkaWF0ZSByZWFjdGlvbiBpcyB0byBkZWx2ZSBkZWVwZXIuIEkmIzM5O20gbm90IGp1c3QgZ29pbmcgdG8gdGFrZSB0aGlzIGF0IGZhY2UgdmFsdWUuIFdoYXQgYXJlIHRoZSBzdXBwb3J0aW5nIGxpYnJhcmllcyBhbmQgb3RoZXIgY29tcG9uZW50cyB0aGlzIGNvbmZpZ3VyYXRpb24gaXMgY29udGluZ2VudCBvbj8gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgYWxsIHRoZSByZWxhdGVkIGRlcGVuZGVuY2llcyDigJMgbm90IGp1c3QgdGhlIG9idmlvdXMgb25lcywgYnV0IHRoZSBwb3RlbnRpYWxseSBzdWJ0bGUgb25lcyB0aGF0IG1pZ2h0IGJlIGx1cmtpbmcuIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQgdmVyaWZ5aW5nIHRoZSBvYnZpb3VzOyBpdOKAmXMgYWJvdXQgYSBjb21wcmVoZW5zaXZlIGFzc2Vzc21lbnQuIEkgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB2ZXJzaW9uIGNvbXBhdGliaWxpdHksIHBvdGVudGlhbCBjb25mbGljdHMsIGFuZCBhbnkga25vd24gc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzIGFzc29jaWF0ZWQgd2l0aCAqYW55KiBkZXBlbmRlbmN5IGluIHRoZSBjaGFpbi4gVGhpcyBpbml0aWFsIGFzc2Vzc21lbnQgY291bGQgYmUgY3JpdGljYWwsIHNvIGxldOKAmXMgZ2V0IGRpZ2dpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDM6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvdGxzL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBUTFMgY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRjb25maWcgVExTXG4gICA2Olx0XHR0cmlzdGF0ZSBcJiMzNDtUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgc3VwcG9ydFwmIzM0O1xuICAgNzpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4gICA4Olx0XHRzZWxlY3QgQ1JZUFRPXG4gICA5Olx0XHRzZWxlY3QgQ1JZUFRPX0FFU1xuICAxMDpcdFx0c2VsZWN0IENSWVBUT19HQ01cbiAgMTE6XHRcdHNlbGVjdCBORVRfU09DS19NU0dcbiAgMTI6XHRcdGRlZmF1bHQgblxuICAxMzpcdFx0aGVscFxuICAxNDpcdFx0RW5hYmxlIGtlcm5lbCBzdXBwb3J0IGZvciBUTFMgcHJvdG9jb2wuIFRoaXMgYWxsb3dzIHN5bW1ldHJpY1xuICAxNTpcdFx0ZW5jcnlwdGlvbiBoYW5kbGluZyBvZiB0aGUgVExTIHByb3RvY29sIHRvIGJlIGRvbmUgaW4ta2VybmVsLlxuICAxNjpcdFxuICAxNzpcdFx0SWYgdW5zdXJlLCBzYXkgTi5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgVExTX0RFVklDRVxuICAyMDpcdFx0Ym9vbCBcJiMzNDtUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgSFcgb2ZmbG9hZFwmIzM0O1xuICAyMTpcdFx0ZGVwZW5kcyBvbiBUTFNcbiAgMjI6XHRcdHNlbGVjdCBTS0JfREVDUllQVEVEXG4gIDIzOlx0XHRzZWxlY3QgU09DS19WQUxJREFURV9YTUlUXG4gIDI0Olx0XHRzZWxlY3QgU09DS19SWF9RVUVVRV9NQVBQSU5HXG4gIDI1Olx0XHRkZWZhdWx0IG5cbiAgMjY6XHRcdGhlbHBcbiAgMjc6XHRcdEVuYWJsZSBrZXJuZWwgc3VwcG9ydCBmb3IgSFcgb2ZmbG9hZCBvZiB0aGUgVExTIHByb3RvY29sLlxuICAyODpcdFxuICAyOTpcdFx0SWYgdW5zdXJlLCBzYXkgTi5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODA0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgbmV0d29yayBzdGFjayBjb25maWd1cmF0aW9uOgoKKipEaXZpbmcgaW50byBUTFMgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIHdvcmtpbmcgb24gdGhlIFRMUyBjb25maWd1cmF0aW9uIOKAkyBpdCYjMzk7cyBjcnVjaWFsLCBvYnZpb3VzbHkuIE15IG1pbmQgaW1tZWRpYXRlbHkgZmxhZ3MgdGhhdCB0aGUgVExTIHNldHRpbmdzIGFyZSByZWxpYW50IG9uIHRoZSBJTkVUIHN0YWNrOyB0aGUgZGVwZW5kZW5jeSBpcyBpbXBvcnRhbnQgdG8gYmVhciBpbiBtaW5kLiBMZXQmIzM5O3MgZGlnIGludG8gdGhlIGRldGFpbHM6IFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHRyYWNlIHRoZSBkYXRhIGZsb3cuIFRoZSBwbGFjZSB0byBzdGFydCBpcyB0aGUgYHRsc19zd19zcGxpY2VfcmVhZGAgZnVuY3Rpb24gd2l0aGluIGBuZXQvdGxzL3Rsc19zdy5jYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBzcGxpY2luZyBoYXBwZW5zIGluIHNvZnR3YXJlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBtYWdpYyBzdGFydHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGxzX3N3X3NwbGljZV9yZWFkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3Rscy90bHNfc3cuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdGxzL3Rsc19zdy5jPTE4MDY9aW50IHRsc19zd19yZWN2bXNnKHN0cnVjdCBzb2NrICpzayxcbi0tXG5uZXQvdGxzL3Rsc19zdy5jLTE5OTgtXG5uZXQvdGxzL3Rsc19zdy5jOjE5OTk6c3NpemVfdCB0bHNfc3dfc3BsaWNlX3JlYWQoc3RydWN0IHNvY2tldCAqc29jaywgIGxvZmZfdCAqcHBvcyxcbm5ldC90bHMvdGxzX3N3LmMtMjAwMC1cdFx0XHQgICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNTEKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAxOTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCYjMzk7cyBTY29wZSoqCgpPa2F5LCBzbyB0aGUgcHJpbWFyeSBmdW5jdGlvbiBvZiBpbnRlcmVzdCBoZXJlIGlzIGB0bHNfc3dfc3BsaWNlX3JlYWRgLiBJcyB0aGVyZSBhbnl0aGluZyBlbHNlIEkgbmVlZCB0byBjb25zaWRlcj8gVGhlIHBhdGNoLCBhcyBmYXIgYXMgSSBjYW4gc2VlLCBkaXJlY3RseSBtb2RpZmllcyBgdGxzX3N3X3NwbGljZV9yZWFkYC4gTGV0JiMzOTtzIGp1c3QgY29uZmlybSB0aGF0IHRoaXMgaXMgdGhlIHNvbGUgZnVuY3Rpb24gaW1wYWN0ZWQgd2l0aGluIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuIENoZWNraW5nLi4uIHllcCwgaXQmIzM5O3MganVzdCBgdGxzX3N3X3NwbGljZV9yZWFkYCBpbiBgbmV0L3Rscy90bHNfc3cuY2AuIFRoZSByZW1haW5pbmcgY2hhbmdlcyBzZWVtIGNvbmZpbmVkIHRvIHRoZSBzZWxmLXRlc3RzIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNgLiBUaGF0JiMzOTtzIGdvb2Q7IGl0IGtlZXBzIHRoZSBhbmFseXNpcyBmb2N1c2VkLgoKTm93LCBsZXQmIzM5O3MgbmFpbCBkb3duIHRoZSBzcGVjaWZpY3Mgb2YgYHRsc19zd19zcGxpY2VfcmVhZGAuIEkgbmVlZCB0byByZXZpZXcgaXRzIHNpZ25hdHVyZSBhbmQgZGV0ZXJtaW5lIGlmIGl0IGhhcyBhbnkgdW51c3VhbCBwcm9wZXJ0aWVzLCBsaWtlIGJlaW5nIGRlY2xhcmVkIGFzIHN0YXRpYy4gTGV0JiMzOTtzIHNlZS4uLiBgc3NpemVfdCB0bHNfc3dfc3BsaWNlX3JlYWQoc3RydWN0IHNvY2tldCAqc29jaywgbG9mZl90ICpwcG9zLCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLCBzaXplX3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpYC4gR290IGl0LiBBbmQgbm8sIGl0JiMzOTtzICpub3QqIHN0YXRpYywgc28gaXQmIzM5O3MgbGlrZWx5IGVpdGhlciBleHBvcnRlZCBvciB1c2VkIGFzIGEgY2FsbGJhY2sgZnVuY3Rpb24uIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBvZiB0aG9zZSBpdCBpcyBzb29uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0bHNfc3dfc3BsaWNlX3JlYWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGxzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdGxzL3Rscy5oPTE2NT1ib29sIHRsc19zd19zb2NrX2lzX3JlYWRhYmxlKHN0cnVjdCBzb2NrICpzayk7XG5uZXQvdGxzL3Rscy5oOjE2Njpzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBsb2ZmX3QgKnBwb3MsXG5uZXQvdGxzL3Rscy5oLTE2Ny1cdFx0XHQgICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxuLS1cbm5ldC90bHMvdGxzX21haW4uYz05NDA9c3RhdGljIHZvaWQgYnVpbGRfcHJvdG9fb3BzKHN0cnVjdCBwcm90b19vcHMgb3BzW1RMU19OVU1fQ09ORklHXVtUTFNfTlVNX0NPTkZJR10sXG4tLVxubmV0L3Rscy90bHNfbWFpbi5jLTk0OC1cdG9wc1tUTFNfQkFTRV1bVExTX1NXICBdID0gb3BzW1RMU19CQVNFXVtUTFNfQkFTRV07XG5uZXQvdGxzL3Rsc19tYWluLmM6OTQ5Olx0b3BzW1RMU19CQVNFXVtUTFNfU1cgIF0uc3BsaWNlX3JlYWRcdD0gdGxzX3N3X3NwbGljZV9yZWFkO1xubmV0L3Rscy90bHNfbWFpbi5jLTk1MC1cdG9wc1tUTFNfQkFTRV1bVExTX1NXICBdLnBvbGxcdFx0PSB0bHNfc2tfcG9sbDtcbi0tXG5uZXQvdGxzL3Rsc19tYWluLmMtOTUzLVx0b3BzW1RMU19TVyAgXVtUTFNfU1cgIF0gPSBvcHNbVExTX1NXICBdW1RMU19CQVNFXTtcbm5ldC90bHMvdGxzX21haW4uYzo5NTQ6XHRvcHNbVExTX1NXICBdW1RMU19TVyAgXS5zcGxpY2VfcmVhZFx0PSB0bHNfc3dfc3BsaWNlX3JlYWQ7XG5uZXQvdGxzL3Rsc19tYWluLmMtOTU1LVx0b3BzW1RMU19TVyAgXVtUTFNfU1cgIF0ucG9sbFx0XHQ9IHRsc19za19wb2xsO1xuLS1cbm5ldC90bHMvdGxzX3N3LmM9MTgwNj1pbnQgdGxzX3N3X3JlY3Ztc2coc3RydWN0IHNvY2sgKnNrLFxuLS1cbm5ldC90bHMvdGxzX3N3LmMtMTk5OC1cbm5ldC90bHMvdGxzX3N3LmM6MTk5OTpzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAgbG9mZl90ICpwcG9zLFxubmV0L3Rscy90bHNfc3cuYy0yMDAwLVx0XHRcdCAgIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAzOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xMG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTUwCgkJCQkJCQlvdXRwdXQ6IDgyCgkJCQkJCQl0aG91Z2h0czogMzk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgQ2FuZGlkYXRlIEFzc2Vzc21lbnQ6IFRMUyBgc3BsaWNlX3JlYWRgIEZpeCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYHRsc19zd19zcGxpY2VfcmVhZGAsIHdoaWNoIGlzIHVzZWQgYXMgYSBjYWxsYmFjayBpbiBgcHJvdG9fb3BzYCBmb3IgdGhlIGBzcGxpY2VfcmVhZGAgb3BlcmF0aW9uLiBUaGF0JiMzOTtzIHRoZSBrZXkgc3ltYm9sIGhlcmUsIHRoZSBvbmUgSSBuZWVkIHRvIGZvY3VzIG9uLgoKTGV0IG1lIHF1aWNrbHkgbWFrZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGNvbmZpZ3MgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQuIGBUTFNgIGlzIGRlZmluaXRlbHkgYSBnaXZlbiwgYW5kIGBJTkVUYCBpcyBsaWtlbHkgZW5hYmxlZCBhcyB3ZWxsLCBidXQgd2hhdCBhYm91dCBjcnlwdG8tcmVsYXRlZCBjb25maWdzPyBUaGUgS2NvbmZpZyBmaWxlIGhhcyBzb21lIHNlbGVjdCBzdGF0ZW1lbnRzOiBgc2VsZWN0IENSWVBUT2AsIGBzZWxlY3QgQ1JZUFRPX0FFU2AsIGFuZCBgc2VsZWN0IENSWVBUT19HQ01gLiBTbyB0aG9zZSBhcmUgYXV0b21hdGljYWxseSBzZWxlY3RlZC4gR29vZCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncy4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBzZWVtcyB0byBhZGRyZXNzIGEgc2l0dWF0aW9uIHdoZXJlIGEgY3J5cHRvIGZhaWx1cmUgZHVyaW5nIFRMUyBhdXRoZW50aWNhdGlvbiBsZWF2ZXMgdGhlIGNvbm5lY3Rpb24gaW4gYSBicm9rZW4gc3RhdGUsIGJ1dCBgc3BsaWNlX3JlYWRgIGRvZXNuJiMzOTt0IGRldGVjdCB0aGUgZXJyb3IuIFRoZSB0ZXN0IGNhc2UgdXRpbGl6ZXMgYHNwbGljZWAgb24gYSBUTFMgc29ja2V0IGFmdGVyIGEgYmFkIGF1dGhlbnRpY2F0aW9uLCBzaG93aW5nIHRoZSBidWcuIFRoZSBwcm9wb3NlZCBmaXggaW52b2x2ZXMgY2hlY2tpbmcgYGN0eC0mZ3Q7YXN5bmNfd2FpdC5lcnJgIHdpdGhpbiBgdGxzX3N3X3NwbGljZV9yZWFkYC4KClNvLCBpdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzcGVjaWZpY2FsbHkgaW4gdGhlIFRMUyBzb2NrZXQgb3BlcmF0aW9ucywgd2hpY2ggYXJlIHJlYWNoYWJsZSBrZXJuZWwgbG9naWMuIEkgc2hvdWxkIGRlZmluaXRlbHkgZnV6eiB0aGlzLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkmIzM5O2xsIGRvdWJsZS1jaGVjayBpZiB0aGUgcGF0Y2ggdG91Y2hlcyBhbnkgb3RoZXIgZnVuY3Rpb25zLiBOb3BlLCBpdCYjMzk7cyBqdXN0IHRoZSBvbmUgZnVuY3Rpb24sIGB0bHNfc3dfc3BsaWNlX3JlYWRgIHdpdGhpbiBgbmV0L3Rscy90bHNfc3cuY2AuCgpCYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50OgoKYGBganNvbgp7CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Rsc19zd19zcGxpY2VfcmVhZCYjMzQ7CiAgXSwKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUTFMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRMUyBzdWJzeXN0ZW0gdG8gY2hlY2sgZm9yIGFzeW5jaHJvbm91cyBjcnlwdG8gZXJyb3JzIGR1cmluZyBzcGxpY2VfcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYyAoVExTIHNvY2tldCBvcGVyYXRpb25zKSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0Owp9CmBgYAoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VExTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGxzX3N3X3NwbGljZV9yZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUTFMgc3Vic3lzdGVtIHRvIGNoZWNrIGZvciBhc3luY2hyb25vdXMgY3J5cHRvIGVycm9ycyBkdXJpbmcgc3BsaWNlX3JlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMgKFRMUyBzb2NrZXQgb3BlcmF0aW9ucykgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RMUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Rsc19zd19zcGxpY2VfcmVhZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVExTIHN1YnN5c3RlbSB0byBjaGVjayBmb3IgYXN5bmNocm9ub3VzIGNyeXB0byBlcnJvcnMgZHVyaW5nIHNwbGljZV9yZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljIChUTFMgc29ja2V0IG9wZXJhdGlvbnMpIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDM6MjY6NTguNjYxMjUzMjU1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU2NzUxOTEwNzIwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUTFNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0bHNfc3dfc3BsaWNlX3JlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVExTIHN1YnN5c3RlbSB0byBjaGVjayBmb3IgYXN5bmNocm9ub3VzIGNyeXB0byBlcnJvcnMgZHVyaW5nIHNwbGljZV9yZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljIChUTFMgc29ja2V0IG9wZXJhdGlvbnMpIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMzoyNjo1OC42NjEyNjAxMzVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNDY1NTk4MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3MjJkZTIxYWQ4OGM1ZDM0ODhjYjFlYmRkMjg1MWJhMGNkOWJiNWNjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgQXVnIDcgMDM6MjY6NTYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmNcXG5pbmRleCA2MmQ0NjczNmUyNGI3Li5kMWFkMzE5ODZjZjJjIDEwMDY0NFxcbi0tLSBhL25ldC90bHMvdGxzX3N3LmNcXG4rKysgYi9uZXQvdGxzL3Rsc19zdy5jXFxuQEAgLTIwMTQsNiArMjAxNCwxMSBAQCBzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAgbG9mZl90ICpwcG9zLFxcbiBcXHRpZiAoZXJyIFxcdTAwM2MgMClcXG4gXFx0XFx0cmV0dXJuIGVycjtcXG4gXFxuK1xcdC8qIElmIGNyeXB0byBmYWlsZWQgdGhlIGNvbm5lY3Rpb24gaXMgYnJva2VuICovXFxuK1xcdGVyciA9IGN0eC1cXHUwMDNlYXN5bmNfd2FpdC5lcnI7XFxuK1xcdGlmIChlcnIpXFxuK1xcdFxcdGdvdG8gc3BsaWNlX3JlYWRfZW5kO1xcbitcXG4gXFx0aWYgKCFza2JfcXVldWVfZW1wdHkoXFx1MDAyNmN0eC1cXHUwMDNlcnhfbGlzdCkpIHtcXG4gXFx0XFx0c2tiID0gX19za2JfZGVxdWV1ZShcXHUwMDI2Y3R4LVxcdTAwM2VyeF9saXN0KTtcXG4gXFx0fSBlbHNlIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXFxuaW5kZXggYTBlNzJlNDAyNzQ4Zi4uOWQzY2Q0ZmZmMDYyYiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNcXG5AQCAtMjQsNiArMjQsNyBAQFxcbiAjaW5jbHVkZSBcXFwia3NlbGZ0ZXN0X2hhcm5lc3MuaFxcXCJcXG4gXFxuICNkZWZpbmUgVExTX1BBWUxPQURfTUFYX0xFTiAxNjM4NFxcbisjZGVmaW5lIFRMU19IRFJfTEVOIDVcXG4gI2RlZmluZSBTT0xfVExTIDI4MlxcbiBcXG4gc3RhdGljIGludCBmaXBzX2VuYWJsZWQ7XFxuQEAgLTI3MzIsMjggKzI3MzMsODMgQEAgVEVTVF9GKHRsc19lcnIsIGJhZF9yZWMpXFxuIFxcdEVYUEVDVF9FUShlcnJubywgRUFHQUlOKTtcXG4gfVxcbiBcXG4rLyogY2ZkIGNhcnJpZXMgYSBieXRlIHN0cmVhbSwgc28gb25lIHJlY3YoKSBjYW4gcmV0dXJuIHBhcnQgb2YgYVxcbisgKiByZWNvcmQuIFRha2UgdGhlIGZyYWdtZW50IGxlbmd0aCBmcm9tIHRoZSByZWNvcmQgaGVhZGVyIGFuZCB3YWl0XFxuKyAqIGZvciB0aGUgcmVtYWluZGVyLlxcbisgKi9cXG4rc3RhdGljIHZvaWQgdGxzX3NlbmRfYmFkX2F1dGgoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxcbitcXHRcXHRcXHQgICAgICBpbnQgZmQsIGludCBjZmQsIGludCBmZDIpXFxuK3tcXG4rXFx0Y2hhciBidWZbMTI4XTtcXG4rXFx0aW50IGxlbjtcXG4rXFxuK1xcdG1lbXJuZChidWYsIHNpemVvZihidWYpIC8gMik7XFxuK1xcdEFTU0VSVF9FUShzZW5kKGZkLCBidWYsIHNpemVvZihidWYpIC8gMiwgMCksIHNpemVvZihidWYpIC8gMik7XFxuK1xcbitcXHRBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiwgVExTX0hEUl9MRU4sIE1TR19XQUlUQUxMKSwgVExTX0hEUl9MRU4pO1xcbitcXG4rXFx0bGVuID0gKCh1bnNpZ25lZCBjaGFyKWJ1ZlszXSBcXHUwMDNjXFx1MDAzYyA4KSB8ICh1bnNpZ25lZCBjaGFyKWJ1Zls0XTtcXG4rXFx0QVNTRVJUX0dUKGxlbiwgMCk7XFxuK1xcdEFTU0VSVF9MRShsZW4sIChpbnQpc2l6ZW9mKGJ1ZikgLSBUTFNfSERSX0xFTik7XFxuK1xcbitcXHRBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiArIFRMU19IRFJfTEVOLCBsZW4sIE1TR19XQUlUQUxMKSwgbGVuKTtcXG4rXFxuK1xcdGJ1ZltUTFNfSERSX0xFTiArIGxlbiAtIDFdKys7XFxuK1xcbitcXHRBU1NFUlRfRVEoc2VuZChmZDIsIGJ1ZiwgVExTX0hEUl9MRU4gKyBsZW4sIDApLCBUTFNfSERSX0xFTiArIGxlbik7XFxuK31cXG4rXFxuIFRFU1RfRih0bHNfZXJyLCBiYWRfYXV0aClcXG4ge1xcbiBcXHRjaGFyIGJ1ZlsxMjhdO1xcbi1cXHRpbnQgbjtcXG4gXFxuIFxcdGlmIChzZWxmLVxcdTAwM2Vub3RscylcXG4gXFx0XFx0U0tJUChyZXR1cm4sIFxcXCJubyBUTFMgc3VwcG9ydFxcXCIpO1xcbiBcXG4tXFx0bWVtcm5kKGJ1Ziwgc2l6ZW9mKGJ1ZikgLyAyKTtcXG4tXFx0RVhQRUNUX0VRKHNlbmQoc2VsZi1cXHUwMDNlZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikgLyAyLCAwKSwgc2l6ZW9mKGJ1ZikgLyAyKTtcXG4tXFx0biA9IHJlY3Yoc2VsZi1cXHUwMDNlY2ZkLCBidWYsIHNpemVvZihidWYpLCAwKTtcXG4tXFx0RVhQRUNUX0dUKG4sIHNpemVvZihidWYpIC8gMik7XFxuK1xcdHRsc19zZW5kX2JhZF9hdXRoKF9tZXRhZGF0YSwgc2VsZi1cXHUwMDNlZmQsIHNlbGYtXFx1MDAzZWNmZCwgc2VsZi1cXHUwMDNlZmQyKTtcXG4gXFxuLVxcdGJ1ZltuIC0gMV0rKztcXG4tXFxuLVxcdEVYUEVDVF9FUShzZW5kKHNlbGYtXFx1MDAzZWZkMiwgYnVmLCBuLCAwKSwgbik7XFxuIFxcdEVYUEVDVF9FUShyZWN2KHNlbGYtXFx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XFxuIFxcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XFxuIFxcdEVYUEVDVF9FUShyZWN2KHNlbGYtXFx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XFxuIFxcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XFxuIH1cXG4gXFxuKy8qIEEgcmVjb3JkIHRoYXQgZGlkIG5vdCBhdXRoZW50aWNhdGUgYnJlYWtzIHRoZSBjb25uZWN0aW9uIGZvciBldmVyeVxcbisgKiByZWFkZXIsIHNwbGljZSBpbmNsdWRlZC5cXG4rICpcXG4rICogVGhlIHR3byBkZWNyeXB0IHBhdGhzIHJlYWNoIHRoYXQgcmVzdWx0IGRpZmZlcmVudGx5LiBBIHN5bmNocm9ub3VzXFxuKyAqIGRlY3J5cHQgbGVhdmVzIHRoZSByZWNvcmQgcGFyc2VkLCBzbyB0aGUgc3BsaWNlIHJlLXJ1bnMgdGhlIGRlY3J5cHRcXG4rICogYW5kIGZhaWxzIG9uIHRoZSByZWNvcmQgaXRzZWxmOyB0aGUgY3R4LVxcdTAwM2Vhc3luY193YWl0LmVyciBjaGVjayBpblxcbisgKiB0bHNfc3dfc3BsaWNlX3JlYWQoKSBpcyBub3Qgd2hhdCBzdG9wcyBpdC4gT25seSBhbiBhc3luY2hyb25vdXNcXG4rICogZGVjcnlwdCwgd2hpY2ggbmVlZHMgYSBUTFMgMS4yIHNvY2tldCBhbmQgYW4gQUVBRCBhZHZlcnRpc2luZ1xcbisgKiBDUllQVE9fQUxHX0FTWU5DLCBjb25zdW1lcyB0aGUgcmVjb3JkIGJlZm9yZSB0aGUgZmFpbHVyZSBpc1xcbisgKiByZWNvcmRlZCwgbGVhdmluZyB0aGF0IGNoZWNrIHRoZSBzb2xlIHJlYXNvbiB0aGUgc3BsaWNlIGZhaWxzLlxcbisgKi9cXG4rVEVTVF9GKHRsc19lcnIsIGJhZF9hdXRoX3NwbGljZSlcXG4re1xcbitcXHRjaGFyIGJ1ZlsxMjhdO1xcbitcXHRzc2l6ZV90IHJldDtcXG4rXFx0aW50IHBbMl07XFxuK1xcbitcXHRpZiAoc2VsZi1cXHUwMDNlbm90bHMpXFxuK1xcdFxcdFNLSVAocmV0dXJuLCBcXFwibm8gVExTIHN1cHBvcnRcXFwiKTtcXG4rXFxuK1xcdHRsc19zZW5kX2JhZF9hdXRoKF9tZXRhZGF0YSwgc2VsZi1cXHUwMDNlZmQsIHNlbGYtXFx1MDAzZWNmZCwgc2VsZi1cXHUwMDNlZmQyKTtcXG4rXFxuK1xcdEVYUEVDVF9FUShyZWN2KHNlbGYtXFx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XFxuK1xcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XFxuK1xcbitcXHRBU1NFUlRfR0UocGlwZShwKSwgMCk7XFxuK1xcbitcXHRyZXQgPSBzcGxpY2Uoc2VsZi1cXHUwMDNlY2ZkMiwgTlVMTCwgcFsxXSwgTlVMTCwgc2l6ZW9mKGJ1ZiksXFxuK1xcdFxcdCAgICAgU1BMSUNFX0ZfTk9OQkxPQ0spO1xcbitcXHRFWFBFQ1RfRVEocmV0LCAtMSk7XFxuK1xcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XFxuK1xcbitcXHRjbG9zZShwWzBdKTtcXG4rXFx0Y2xvc2UocFsxXSk7XFxuK31cXG4rXFxuIFRFU1RfRih0bHNfZXJyLCBiYWRfaW5fbGFyZ2VfcmVhZClcXG4ge1xcbiBcXHRjaGFyIHR4dFszXVs2NF07XFxuQEAgLTMwMDksNyArMzA2NSw2IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxcbiB7XFxuIFxcdGNvbnN0IF9fdTggKnJlYyA9IHJ4X2J1ZjtcXG4gXFx0c2l6ZV90IHRvdGFsX3BsYWludGV4dF9yeCA9IDA7XFxuLVxcdGNvbnN0IF9fdTggcmVjX2hlYWRlcl9sZW4gPSA1O1xcbiBcXG4gXFx0d2hpbGUgKHJlYyBcXHUwMDNjIHJ4X2J1ZiArIHJ4X2xlbikge1xcbiBcXHRcXHRfX3UxNiByZWNvcmRfcGF5bG9hZF9sZW47XFxuQEAgLTMwMjksNyArMzA4NCw3IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxcbiBcXG4gXFx0XFx0LyogUGxhaW50ZXh0IG11c3Qgbm90IGV4Y2VlZCB0aGUgc3BlY2lmaWVkIGxpbWl0ICovXFxuIFxcdFxcdEFTU0VSVF9MRShwbGFpbnRleHRfbGVuLCBtYXhfcGF5bG9hZF9sZW4pO1xcbi1cXHRcXHRyZWMgKz0gcmVjX2hlYWRlcl9sZW4gKyByZWNvcmRfcGF5bG9hZF9sZW47XFxuK1xcdFxcdHJlYyArPSBUTFNfSERSX0xFTiArIHJlY29yZF9wYXlsb2FkX2xlbjtcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIHRvdGFsX3BsYWludGV4dF9yeDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDM6Mjc6MDAuMDA4OTE2NjM5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTU2NjE3MTQzNTEwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUTFNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0bHNfc3dfc3BsaWNlX3JlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVExTIHN1YnN5c3RlbSB0byBjaGVjayBmb3IgYXN5bmNocm9ub3VzIGNyeXB0byBlcnJvcnMgZHVyaW5nIHNwbGljZV9yZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljIChUTFMgc29ja2V0IG9wZXJhdGlvbnMpIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3MjJkZTIxYWQ4OGM1ZDM0ODhjYjFlYmRkMjg1MWJhMGNkOWJiNWNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAwMzoyNjo1NiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jXG5pbmRleCA2MmQ0NjczNmUyNGI3Li5kMWFkMzE5ODZjZjJjIDEwMDY0NFxuLS0tIGEvbmV0L3Rscy90bHNfc3cuY1xuKysrIGIvbmV0L3Rscy90bHNfc3cuY1xuQEAgLTIwMTQsNiArMjAxNCwxMSBAQCBzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAgbG9mZl90ICpwcG9zLFxuIFx0aWYgKGVyciBcdTAwM2MgMClcbiBcdFx0cmV0dXJuIGVycjtcbiBcbitcdC8qIElmIGNyeXB0byBmYWlsZWQgdGhlIGNvbm5lY3Rpb24gaXMgYnJva2VuICovXG4rXHRlcnIgPSBjdHgtXHUwMDNlYXN5bmNfd2FpdC5lcnI7XG4rXHRpZiAoZXJyKVxuK1x0XHRnb3RvIHNwbGljZV9yZWFkX2VuZDtcbitcbiBcdGlmICghc2tiX3F1ZXVlX2VtcHR5KFx1MDAyNmN0eC1cdTAwM2VyeF9saXN0KSkge1xuIFx0XHRza2IgPSBfX3NrYl9kZXF1ZXVlKFx1MDAyNmN0eC1cdTAwM2VyeF9saXN0KTtcbiBcdH0gZWxzZSB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXG5pbmRleCBhMGU3MmU0MDI3NDhmLi45ZDNjZDRmZmYwNjJiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNcbkBAIC0yNCw2ICsyNCw3IEBAXG4gI2luY2x1ZGUgXCJrc2VsZnRlc3RfaGFybmVzcy5oXCJcbiBcbiAjZGVmaW5lIFRMU19QQVlMT0FEX01BWF9MRU4gMTYzODRcbisjZGVmaW5lIFRMU19IRFJfTEVOIDVcbiAjZGVmaW5lIFNPTF9UTFMgMjgyXG4gXG4gc3RhdGljIGludCBmaXBzX2VuYWJsZWQ7XG5AQCAtMjczMiwyOCArMjczMyw4MyBAQCBURVNUX0YodGxzX2VyciwgYmFkX3JlYylcbiBcdEVYUEVDVF9FUShlcnJubywgRUFHQUlOKTtcbiB9XG4gXG4rLyogY2ZkIGNhcnJpZXMgYSBieXRlIHN0cmVhbSwgc28gb25lIHJlY3YoKSBjYW4gcmV0dXJuIHBhcnQgb2YgYVxuKyAqIHJlY29yZC4gVGFrZSB0aGUgZnJhZ21lbnQgbGVuZ3RoIGZyb20gdGhlIHJlY29yZCBoZWFkZXIgYW5kIHdhaXRcbisgKiBmb3IgdGhlIHJlbWFpbmRlci5cbisgKi9cbitzdGF0aWMgdm9pZCB0bHNfc2VuZF9iYWRfYXV0aChzdHJ1Y3QgX190ZXN0X21ldGFkYXRhICpfbWV0YWRhdGEsXG4rXHRcdFx0ICAgICAgaW50IGZkLCBpbnQgY2ZkLCBpbnQgZmQyKVxuK3tcbitcdGNoYXIgYnVmWzEyOF07XG4rXHRpbnQgbGVuO1xuK1xuK1x0bWVtcm5kKGJ1Ziwgc2l6ZW9mKGJ1ZikgLyAyKTtcbitcdEFTU0VSVF9FUShzZW5kKGZkLCBidWYsIHNpemVvZihidWYpIC8gMiwgMCksIHNpemVvZihidWYpIC8gMik7XG4rXG4rXHRBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiwgVExTX0hEUl9MRU4sIE1TR19XQUlUQUxMKSwgVExTX0hEUl9MRU4pO1xuK1xuK1x0bGVuID0gKCh1bnNpZ25lZCBjaGFyKWJ1ZlszXSBcdTAwM2NcdTAwM2MgOCkgfCAodW5zaWduZWQgY2hhcilidWZbNF07XG4rXHRBU1NFUlRfR1QobGVuLCAwKTtcbitcdEFTU0VSVF9MRShsZW4sIChpbnQpc2l6ZW9mKGJ1ZikgLSBUTFNfSERSX0xFTik7XG4rXG4rXHRBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiArIFRMU19IRFJfTEVOLCBsZW4sIE1TR19XQUlUQUxMKSwgbGVuKTtcbitcbitcdGJ1ZltUTFNfSERSX0xFTiArIGxlbiAtIDFdKys7XG4rXG4rXHRBU1NFUlRfRVEoc2VuZChmZDIsIGJ1ZiwgVExTX0hEUl9MRU4gKyBsZW4sIDApLCBUTFNfSERSX0xFTiArIGxlbik7XG4rfVxuK1xuIFRFU1RfRih0bHNfZXJyLCBiYWRfYXV0aClcbiB7XG4gXHRjaGFyIGJ1ZlsxMjhdO1xuLVx0aW50IG47XG4gXG4gXHRpZiAoc2VsZi1cdTAwM2Vub3RscylcbiBcdFx0U0tJUChyZXR1cm4sIFwibm8gVExTIHN1cHBvcnRcIik7XG4gXG4tXHRtZW1ybmQoYnVmLCBzaXplb2YoYnVmKSAvIDIpO1xuLVx0RVhQRUNUX0VRKHNlbmQoc2VsZi1cdTAwM2VmZCwgYnVmLCBzaXplb2YoYnVmKSAvIDIsIDApLCBzaXplb2YoYnVmKSAvIDIpO1xuLVx0biA9IHJlY3Yoc2VsZi1cdTAwM2VjZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApO1xuLVx0RVhQRUNUX0dUKG4sIHNpemVvZihidWYpIC8gMik7XG4rXHR0bHNfc2VuZF9iYWRfYXV0aChfbWV0YWRhdGEsIHNlbGYtXHUwMDNlZmQsIHNlbGYtXHUwMDNlY2ZkLCBzZWxmLVx1MDAzZWZkMik7XG4gXG4tXHRidWZbbiAtIDFdKys7XG4tXG4tXHRFWFBFQ1RfRVEoc2VuZChzZWxmLVx1MDAzZWZkMiwgYnVmLCBuLCAwKSwgbik7XG4gXHRFWFBFQ1RfRVEocmVjdihzZWxmLVx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XG4gXHRFWFBFQ1RfRVEoZXJybm8sIEVCQURNU0cpO1xuIFx0RVhQRUNUX0VRKHJlY3Yoc2VsZi1cdTAwM2VjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpO1xuIFx0RVhQRUNUX0VRKGVycm5vLCBFQkFETVNHKTtcbiB9XG4gXG4rLyogQSByZWNvcmQgdGhhdCBkaWQgbm90IGF1dGhlbnRpY2F0ZSBicmVha3MgdGhlIGNvbm5lY3Rpb24gZm9yIGV2ZXJ5XG4rICogcmVhZGVyLCBzcGxpY2UgaW5jbHVkZWQuXG4rICpcbisgKiBUaGUgdHdvIGRlY3J5cHQgcGF0aHMgcmVhY2ggdGhhdCByZXN1bHQgZGlmZmVyZW50bHkuIEEgc3luY2hyb25vdXNcbisgKiBkZWNyeXB0IGxlYXZlcyB0aGUgcmVjb3JkIHBhcnNlZCwgc28gdGhlIHNwbGljZSByZS1ydW5zIHRoZSBkZWNyeXB0XG4rICogYW5kIGZhaWxzIG9uIHRoZSByZWNvcmQgaXRzZWxmOyB0aGUgY3R4LVx1MDAzZWFzeW5jX3dhaXQuZXJyIGNoZWNrIGluXG4rICogdGxzX3N3X3NwbGljZV9yZWFkKCkgaXMgbm90IHdoYXQgc3RvcHMgaXQuIE9ubHkgYW4gYXN5bmNocm9ub3VzXG4rICogZGVjcnlwdCwgd2hpY2ggbmVlZHMgYSBUTFMgMS4yIHNvY2tldCBhbmQgYW4gQUVBRCBhZHZlcnRpc2luZ1xuKyAqIENSWVBUT19BTEdfQVNZTkMsIGNvbnN1bWVzIHRoZSByZWNvcmQgYmVmb3JlIHRoZSBmYWlsdXJlIGlzXG4rICogcmVjb3JkZWQsIGxlYXZpbmcgdGhhdCBjaGVjayB0aGUgc29sZSByZWFzb24gdGhlIHNwbGljZSBmYWlscy5cbisgKi9cbitURVNUX0YodGxzX2VyciwgYmFkX2F1dGhfc3BsaWNlKVxuK3tcbitcdGNoYXIgYnVmWzEyOF07XG4rXHRzc2l6ZV90IHJldDtcbitcdGludCBwWzJdO1xuK1xuK1x0aWYgKHNlbGYtXHUwMDNlbm90bHMpXG4rXHRcdFNLSVAocmV0dXJuLCBcIm5vIFRMUyBzdXBwb3J0XCIpO1xuK1xuK1x0dGxzX3NlbmRfYmFkX2F1dGgoX21ldGFkYXRhLCBzZWxmLVx1MDAzZWZkLCBzZWxmLVx1MDAzZWNmZCwgc2VsZi1cdTAwM2VmZDIpO1xuK1xuK1x0RVhQRUNUX0VRKHJlY3Yoc2VsZi1cdTAwM2VjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpO1xuK1x0RVhQRUNUX0VRKGVycm5vLCBFQkFETVNHKTtcbitcbitcdEFTU0VSVF9HRShwaXBlKHApLCAwKTtcbitcbitcdHJldCA9IHNwbGljZShzZWxmLVx1MDAzZWNmZDIsIE5VTEwsIHBbMV0sIE5VTEwsIHNpemVvZihidWYpLFxuK1x0XHQgICAgIFNQTElDRV9GX05PTkJMT0NLKTtcbitcdEVYUEVDVF9FUShyZXQsIC0xKTtcbitcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XG4rXG4rXHRjbG9zZShwWzBdKTtcbitcdGNsb3NlKHBbMV0pO1xuK31cbitcbiBURVNUX0YodGxzX2VyciwgYmFkX2luX2xhcmdlX3JlYWQpXG4ge1xuIFx0Y2hhciB0eHRbM11bNjRdO1xuQEAgLTMwMDksNyArMzA2NSw2IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxuIHtcbiBcdGNvbnN0IF9fdTggKnJlYyA9IHJ4X2J1ZjtcbiBcdHNpemVfdCB0b3RhbF9wbGFpbnRleHRfcnggPSAwO1xuLVx0Y29uc3QgX191OCByZWNfaGVhZGVyX2xlbiA9IDU7XG4gXG4gXHR3aGlsZSAocmVjIFx1MDAzYyByeF9idWYgKyByeF9sZW4pIHtcbiBcdFx0X191MTYgcmVjb3JkX3BheWxvYWRfbGVuO1xuQEAgLTMwMjksNyArMzA4NCw3IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxuIFxuIFx0XHQvKiBQbGFpbnRleHQgbXVzdCBub3QgZXhjZWVkIHRoZSBzcGVjaWZpZWQgbGltaXQgKi9cbiBcdFx0QVNTRVJUX0xFKHBsYWludGV4dF9sZW4sIG1heF9wYXlsb2FkX2xlbik7XG4tXHRcdHJlYyArPSByZWNfaGVhZGVyX2xlbiArIHJlY29yZF9wYXlsb2FkX2xlbjtcbitcdFx0cmVjICs9IFRMU19IRFJfTEVOICsgcmVjb3JkX3BheWxvYWRfbGVuO1xuIFx0fVxuIFxuIFx0cmV0dXJuIHRvdGFsX3BsYWludGV4dF9yeDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjI3OjAwLjAwODkxODY2OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMTMyMTM5ODgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgVExTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHRvdWNoZXMgYG5ldC90bHMvdGxzX3N3LmNgIGFuZCBhIHNlbGZ0ZXN0IGZpbGUuIFRoZSBtZWF0IG9mIHRoZSBjaGFuZ2UgaXMgaW5zaWRlIGB0bHNfc3dfc3BsaWNlX3JlYWRgLiBJdCBhcHBlYXJzIHRoZXkncmUgYWRkaW5nIGEgY3J1Y2lhbCBjaGVjay4gIFNwZWNpZmljYWxseSwgdGhleSdyZSBleGFtaW5pbmcgYGN0eC1cdTAwM2Vhc3luY193YWl0LmVycmAgYW5kIGJhaWxpbmcgb3V0IGlmIGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb24sIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UuICBJZiB0aGUgY3J5cHRvIGZhaWxzLCB0aGUgY29ubmVjdGlvbiBpcyBmdW5kYW1lbnRhbGx5IGJyb2tlbiwgc28gYWJvcnRpbmcgdGhlIHJlYWQgaXMgdGhlIGNvcnJlY3QgYmVoYXZpb3IuICBUaGlzIGlzIGEgY2xlYW4sIGxvZ2ljYWwgYWRkaXRpb24sIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudCBmb3IgdGhlIFRMUyBzdWJzeXN0ZW0uXG5cblNpbmNlIHRoaXMgbmV3IGVycm9yIHBhdGggaXMgaW50cm9kdWNlZCBpbiBgdGxzX3N3X3NwbGljZV9yZWFkYCwgdGhpcyBjbGVhcmx5IGludHJvZHVjZXMgYSBuZXcgY29kZSBwYXRoIHRoYXQncyBub3cgcmVhY2hhYmxlLCBtZWFuaW5nIGl0J3Mgd29ydGggYSBmdXp6aW5nIHJ1bi4gIEknbSBnb2luZyB0byB3YW50IHRvIHZlcmlmeSB0aGUgaW1wbGVtZW50YXRpb24gdG8ga25vdyBpZiBhbGwgZWRnZSBjYXNlcyBhcmUgaGFuZGxlZC5cblxuTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIHRyaWdnZXIgdGhpcyBjb2RlIHBhdGguICBJJ2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGBuZXQvdGxzL0tjb25maWdgIHRvIHNlZSB0aGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBgdGxzX3N3YCBkcml2ZXIuIEZyb20gdGhlcmUsIEknbGwgbmVlZCB0byBsb29rIGF0IGhvdyB0byBnZXQgdGhhdCBgYXN5bmNfd2FpdC5lcnJgIHRvIGJlIHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU3NiwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjI5OjExLjMzMDMyMDYyNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjYzNzQwNzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUTFNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3Rscy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90bHMvS2NvbmZpZy00LSNcXG5uZXQvdGxzL0tjb25maWc6NTpjb25maWcgVExTXFxubmV0L3Rscy9LY29uZmlnLTYtXFx0dHJpc3RhdGUgXFxcIlRyYW5zcG9ydCBMYXllciBTZWN1cml0eSBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3Rscy9LY29uZmlnLTE4LVxcbm5ldC90bHMvS2NvbmZpZzoxOTpjb25maWcgVExTX0RFVklDRVxcbm5ldC90bHMvS2NvbmZpZy0yMC1cXHRib29sIFxcXCJUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgSFcgb2ZmbG9hZFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDM6Mjk6MTIuNTk0MDY3NzM3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIyNzExNjk1NDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHRoZSBjb25maWd1cmF0aW9uIGlzIGRlZmluaXRlbHkgbGVhbmluZyB0b3dhcmRzIGBUTFNgLiBNeSBpbW1lZGlhdGUgcmVhY3Rpb24gaXMgdG8gZGVsdmUgZGVlcGVyLiBJJ20gbm90IGp1c3QgZ29pbmcgdG8gdGFrZSB0aGlzIGF0IGZhY2UgdmFsdWUuIFdoYXQgYXJlIHRoZSBzdXBwb3J0aW5nIGxpYnJhcmllcyBhbmQgb3RoZXIgY29tcG9uZW50cyB0aGlzIGNvbmZpZ3VyYXRpb24gaXMgY29udGluZ2VudCBvbj8gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgYWxsIHRoZSByZWxhdGVkIGRlcGVuZGVuY2llcyDigJMgbm90IGp1c3QgdGhlIG9idmlvdXMgb25lcywgYnV0IHRoZSBwb3RlbnRpYWxseSBzdWJ0bGUgb25lcyB0aGF0IG1pZ2h0IGJlIGx1cmtpbmcuIFRoaXMgaXNuJ3QganVzdCBhYm91dCB2ZXJpZnlpbmcgdGhlIG9idmlvdXM7IGl04oCZcyBhYm91dCBhIGNvbXByZWhlbnNpdmUgYXNzZXNzbWVudC4gSSBuZWVkIHRvIGJlIHRoaW5raW5nIGFib3V0IHZlcnNpb24gY29tcGF0aWJpbGl0eSwgcG90ZW50aWFsIGNvbmZsaWN0cywgYW5kIGFueSBrbm93biBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMgYXNzb2NpYXRlZCB3aXRoICphbnkqIGRlcGVuZGVuY3kgaW4gdGhlIGNoYWluLiBUaGlzIGluaXRpYWwgYXNzZXNzbWVudCBjb3VsZCBiZSBjcml0aWNhbCwgc28gbGV04oCZcyBnZXQgZGlnZ2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI3MiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjM2OjE1LjMwNTc2NTc2N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1NzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC90bHMvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBUTFMgY29uZmlndXJhdGlvblxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0Y29uZmlnIFRMU1xcbiAgIDY6XFx0XFx0dHJpc3RhdGUgXFxcIlRyYW5zcG9ydCBMYXllciBTZWN1cml0eSBzdXBwb3J0XFxcIlxcbiAgIDc6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuICAgODpcXHRcXHRzZWxlY3QgQ1JZUFRPXFxuICAgOTpcXHRcXHRzZWxlY3QgQ1JZUFRPX0FFU1xcbiAgMTA6XFx0XFx0c2VsZWN0IENSWVBUT19HQ01cXG4gIDExOlxcdFxcdHNlbGVjdCBORVRfU09DS19NU0dcXG4gIDEyOlxcdFxcdGRlZmF1bHQgblxcbiAgMTM6XFx0XFx0aGVscFxcbiAgMTQ6XFx0XFx0RW5hYmxlIGtlcm5lbCBzdXBwb3J0IGZvciBUTFMgcHJvdG9jb2wuIFRoaXMgYWxsb3dzIHN5bW1ldHJpY1xcbiAgMTU6XFx0XFx0ZW5jcnlwdGlvbiBoYW5kbGluZyBvZiB0aGUgVExTIHByb3RvY29sIHRvIGJlIGRvbmUgaW4ta2VybmVsLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRcXHRJZiB1bnN1cmUsIHNheSBOLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgVExTX0RFVklDRVxcbiAgMjA6XFx0XFx0Ym9vbCBcXFwiVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IEhXIG9mZmxvYWRcXFwiXFxuICAyMTpcXHRcXHRkZXBlbmRzIG9uIFRMU1xcbiAgMjI6XFx0XFx0c2VsZWN0IFNLQl9ERUNSWVBURURcXG4gIDIzOlxcdFxcdHNlbGVjdCBTT0NLX1ZBTElEQVRFX1hNSVRcXG4gIDI0OlxcdFxcdHNlbGVjdCBTT0NLX1JYX1FVRVVFX01BUFBJTkdcXG4gIDI1OlxcdFxcdGRlZmF1bHQgblxcbiAgMjY6XFx0XFx0aGVscFxcbiAgMjc6XFx0XFx0RW5hYmxlIGtlcm5lbCBzdXBwb3J0IGZvciBIVyBvZmZsb2FkIG9mIHRoZSBUTFMgcHJvdG9jb2wuXFxuICAyODpcXHRcXG4gIDI5OlxcdFxcdElmIHVuc3VyZSwgc2F5IE4uXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjM2OjE1LjMwNTgyMzExN1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxNDE4MzA2MDMxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgbmV0d29yayBzdGFjayBjb25maWd1cmF0aW9uOlxuXG4qKkRpdmluZyBpbnRvIFRMUyBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgc28gSSdtIHdvcmtpbmcgb24gdGhlIFRMUyBjb25maWd1cmF0aW9uIOKAkyBpdCdzIGNydWNpYWwsIG9idmlvdXNseS4gTXkgbWluZCBpbW1lZGlhdGVseSBmbGFncyB0aGF0IHRoZSBUTFMgc2V0dGluZ3MgYXJlIHJlbGlhbnQgb24gdGhlIElORVQgc3RhY2s7IHRoZSBkZXBlbmRlbmN5IGlzIGltcG9ydGFudCB0byBiZWFyIGluIG1pbmQuIExldCdzIGRpZyBpbnRvIHRoZSBkZXRhaWxzOiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byB0cmFjZSB0aGUgZGF0YSBmbG93LiBUaGUgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGB0bHNfc3dfc3BsaWNlX3JlYWRgIGZ1bmN0aW9uIHdpdGhpbiBgbmV0L3Rscy90bHNfc3cuY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3BsaWNpbmcgaGFwcGVucyBpbiBzb2Z0d2FyZS4gVGhhdCdzIHdoZXJlIHRoZSBtYWdpYyBzdGFydHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4MDQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjM5OjQ5LjQ4ODg4NjQ2M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjQxNTA2NzEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInRsc19zd19zcGxpY2VfcmVhZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdGxzL3Rsc19zdy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90bHMvdGxzX3N3LmM9MTgwNj1pbnQgdGxzX3N3X3JlY3Ztc2coc3RydWN0IHNvY2sgKnNrLFxcbi0tXFxubmV0L3Rscy90bHNfc3cuYy0xOTk4LVxcbm5ldC90bHMvdGxzX3N3LmM6MTk5OTpzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAgbG9mZl90ICpwcG9zLFxcbm5ldC90bHMvdGxzX3N3LmMtMjAwMC1cXHRcXHRcXHQgICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMzozOTo1MC43MzAzOTcwNDVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxODcxMzEzNjc2NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCdzIFNjb3BlKipcblxuT2theSwgc28gdGhlIHByaW1hcnkgZnVuY3Rpb24gb2YgaW50ZXJlc3QgaGVyZSBpcyBgdGxzX3N3X3NwbGljZV9yZWFkYC4gSXMgdGhlcmUgYW55dGhpbmcgZWxzZSBJIG5lZWQgdG8gY29uc2lkZXI/IFRoZSBwYXRjaCwgYXMgZmFyIGFzIEkgY2FuIHNlZSwgZGlyZWN0bHkgbW9kaWZpZXMgYHRsc19zd19zcGxpY2VfcmVhZGAuIExldCdzIGp1c3QgY29uZmlybSB0aGF0IHRoaXMgaXMgdGhlIHNvbGUgZnVuY3Rpb24gaW1wYWN0ZWQgd2l0aGluIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuIENoZWNraW5nLi4uIHllcCwgaXQncyBqdXN0IGB0bHNfc3dfc3BsaWNlX3JlYWRgIGluIGBuZXQvdGxzL3Rsc19zdy5jYC4gVGhlIHJlbWFpbmluZyBjaGFuZ2VzIHNlZW0gY29uZmluZWQgdG8gdGhlIHNlbGYtdGVzdHMgaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuY2AuIFRoYXQncyBnb29kOyBpdCBrZWVwcyB0aGUgYW5hbHlzaXMgZm9jdXNlZC5cblxuTm93LCBsZXQncyBuYWlsIGRvd24gdGhlIHNwZWNpZmljcyBvZiBgdGxzX3N3X3NwbGljZV9yZWFkYC4gSSBuZWVkIHRvIHJldmlldyBpdHMgc2lnbmF0dXJlIGFuZCBkZXRlcm1pbmUgaWYgaXQgaGFzIGFueSB1bnVzdWFsIHByb3BlcnRpZXMsIGxpa2UgYmVpbmcgZGVjbGFyZWQgYXMgc3RhdGljLiBMZXQncyBzZWUuLi4gYHNzaXplX3QgdGxzX3N3X3NwbGljZV9yZWFkKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGxvZmZfdCAqcHBvcywgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwgc2l6ZV90IGxlbiwgdW5zaWduZWQgaW50IGZsYWdzKWAuIEdvdCBpdC4gQW5kIG5vLCBpdCdzICpub3QqIHN0YXRpYywgc28gaXQncyBsaWtlbHkgZWl0aGVyIGV4cG9ydGVkIG9yIHVzZWQgYXMgYSBjYWxsYmFjayBmdW5jdGlvbi4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggb2YgdGhvc2UgaXQgaXMgc29vbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE1MSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMzo0Mjo1Ny44NjE3Njc3MjJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMDY1MTE5OTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGxzX3N3X3NwbGljZV9yZWFkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90bHMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90bHMvdGxzLmg9MTY1PWJvb2wgdGxzX3N3X3NvY2tfaXNfcmVhZGFibGUoc3RydWN0IHNvY2sgKnNrKTtcXG5uZXQvdGxzL3Rscy5oOjE2Njpzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBsb2ZmX3QgKnBwb3MsXFxubmV0L3Rscy90bHMuaC0xNjctXFx0XFx0XFx0ICAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSxcXG4tLVxcbm5ldC90bHMvdGxzX21haW4uYz05NDA9c3RhdGljIHZvaWQgYnVpbGRfcHJvdG9fb3BzKHN0cnVjdCBwcm90b19vcHMgb3BzW1RMU19OVU1fQ09ORklHXVtUTFNfTlVNX0NPTkZJR10sXFxuLS1cXG5uZXQvdGxzL3Rsc19tYWluLmMtOTQ4LVxcdG9wc1tUTFNfQkFTRV1bVExTX1NXICBdID0gb3BzW1RMU19CQVNFXVtUTFNfQkFTRV07XFxubmV0L3Rscy90bHNfbWFpbi5jOjk0OTpcXHRvcHNbVExTX0JBU0VdW1RMU19TVyAgXS5zcGxpY2VfcmVhZFxcdD0gdGxzX3N3X3NwbGljZV9yZWFkO1xcbm5ldC90bHMvdGxzX21haW4uYy05NTAtXFx0b3BzW1RMU19CQVNFXVtUTFNfU1cgIF0ucG9sbFxcdFxcdD0gdGxzX3NrX3BvbGw7XFxuLS1cXG5uZXQvdGxzL3Rsc19tYWluLmMtOTUzLVxcdG9wc1tUTFNfU1cgIF1bVExTX1NXICBdID0gb3BzW1RMU19TVyAgXVtUTFNfQkFTRV07XFxubmV0L3Rscy90bHNfbWFpbi5jOjk1NDpcXHRvcHNbVExTX1NXICBdW1RMU19TVyAgXS5zcGxpY2VfcmVhZFxcdD0gdGxzX3N3X3NwbGljZV9yZWFkO1xcbm5ldC90bHMvdGxzX21haW4uYy05NTUtXFx0b3BzW1RMU19TVyAgXVtUTFNfU1cgIF0ucG9sbFxcdFxcdD0gdGxzX3NrX3BvbGw7XFxuLS1cXG5uZXQvdGxzL3Rsc19zdy5jPTE4MDY9aW50IHRsc19zd19yZWN2bXNnKHN0cnVjdCBzb2NrICpzayxcXG4tLVxcbm5ldC90bHMvdGxzX3N3LmMtMTk5OC1cXG5uZXQvdGxzL3Rsc19zdy5jOjE5OTk6c3NpemVfdCB0bHNfc3dfc3BsaWNlX3JlYWQoc3RydWN0IHNvY2tldCAqc29jaywgIGxvZmZfdCAqcHBvcyxcXG5uZXQvdGxzL3Rsc19zdy5jLTIwMDAtXFx0XFx0XFx0ICAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDM6NDI6NTkuMDY4Mjg3NTI2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwNjk1MzQ4MjM0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIENhbmRpZGF0ZSBBc3Nlc3NtZW50OiBUTFMgYHNwbGljZV9yZWFkYCBGaXgqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYHRsc19zd19zcGxpY2VfcmVhZGAsIHdoaWNoIGlzIHVzZWQgYXMgYSBjYWxsYmFjayBpbiBgcHJvdG9fb3BzYCBmb3IgdGhlIGBzcGxpY2VfcmVhZGAgb3BlcmF0aW9uLiBUaGF0J3MgdGhlIGtleSBzeW1ib2wgaGVyZSwgdGhlIG9uZSBJIG5lZWQgdG8gZm9jdXMgb24uXG5cbkxldCBtZSBxdWlja2x5IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGNvbmZpZ3MgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQuIGBUTFNgIGlzIGRlZmluaXRlbHkgYSBnaXZlbiwgYW5kIGBJTkVUYCBpcyBsaWtlbHkgZW5hYmxlZCBhcyB3ZWxsLCBidXQgd2hhdCBhYm91dCBjcnlwdG8tcmVsYXRlZCBjb25maWdzPyBUaGUgS2NvbmZpZyBmaWxlIGhhcyBzb21lIHNlbGVjdCBzdGF0ZW1lbnRzOiBgc2VsZWN0IENSWVBUT2AsIGBzZWxlY3QgQ1JZUFRPX0FFU2AsIGFuZCBgc2VsZWN0IENSWVBUT19HQ01gLiBTbyB0aG9zZSBhcmUgYXV0b21hdGljYWxseSBzZWxlY3RlZC4gR29vZCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncy5cblxuVGhlIGNvcmUgb2YgdGhlIHBhdGNoIHNlZW1zIHRvIGFkZHJlc3MgYSBzaXR1YXRpb24gd2hlcmUgYSBjcnlwdG8gZmFpbHVyZSBkdXJpbmcgVExTIGF1dGhlbnRpY2F0aW9uIGxlYXZlcyB0aGUgY29ubmVjdGlvbiBpbiBhIGJyb2tlbiBzdGF0ZSwgYnV0IGBzcGxpY2VfcmVhZGAgZG9lc24ndCBkZXRlY3QgdGhlIGVycm9yLiBUaGUgdGVzdCBjYXNlIHV0aWxpemVzIGBzcGxpY2VgIG9uIGEgVExTIHNvY2tldCBhZnRlciBhIGJhZCBhdXRoZW50aWNhdGlvbiwgc2hvd2luZyB0aGUgYnVnLiBUaGUgcHJvcG9zZWQgZml4IGludm9sdmVzIGNoZWNraW5nIGBjdHgtXHUwMDNlYXN5bmNfd2FpdC5lcnJgIHdpdGhpbiBgdGxzX3N3X3NwbGljZV9yZWFkYC5cblxuU28sIGl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc3BlY2lmaWNhbGx5IGluIHRoZSBUTFMgc29ja2V0IG9wZXJhdGlvbnMsIHdoaWNoIGFyZSByZWFjaGFibGUga2VybmVsIGxvZ2ljLiBJIHNob3VsZCBkZWZpbml0ZWx5IGZ1enogdGhpcy5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbGwgZG91YmxlLWNoZWNrIGlmIHRoZSBwYXRjaCB0b3VjaGVzIGFueSBvdGhlciBmdW5jdGlvbnMuIE5vcGUsIGl0J3MganVzdCB0aGUgb25lIGZ1bmN0aW9uLCBgdGxzX3N3X3NwbGljZV9yZWFkYCB3aXRoaW4gYG5ldC90bHMvdGxzX3N3LmNgLlxuXG5CYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJJ20gY29uZmlkZW50IGluIG15IGFzc2Vzc21lbnQ6XG5cbmBgYGpzb25cbntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGxzX3N3X3NwbGljZV9yZWFkXCJcbiAgXSxcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRMU1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUTFMgc3Vic3lzdGVtIHRvIGNoZWNrIGZvciBhc3luY2hyb25vdXMgY3J5cHRvIGVycm9ycyBkdXJpbmcgc3BsaWNlX3JlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMgKFRMUyBzb2NrZXQgb3BlcmF0aW9ucykgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCJcbn1cbmBgYFxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTUwLCJPdXRwdXRUb2tlbnMiOjgyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjUzOjA2LjAyMTc3MzYzNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1ODU3NDY5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVExTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGxzX3N3X3NwbGljZV9yZWFkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRMUyBzdWJzeXN0ZW0gdG8gY2hlY2sgZm9yIGFzeW5jaHJvbm91cyBjcnlwdG8gZXJyb3JzIGR1cmluZyBzcGxpY2VfcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYyAoVExTIHNvY2tldCBvcGVyYXRpb25zKSBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUTFNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0bHNfc3dfc3BsaWNlX3JlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVExTIHN1YnN5c3RlbSB0byBjaGVjayBmb3IgYXN5bmNocm9ub3VzIGNyeXB0byBlcnJvcnMgZHVyaW5nIHNwbGljZV9yZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljIChUTFMgc29ja2V0IG9wZXJhdGlvbnMpIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-07 03:25:39 +0000 UTC FinishedAt: 2026-08-07 03:53:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "594d905195024b228c962627ae5ae7c17bd582a4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TLS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "594d905195024b228c962627ae5ae7c17bd582a4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TLS" ], "series_id": "8f816f1f-0062-45be-bd74-56d7b85f39a0" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tls_sw_splice_read" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAzOjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MjZtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUTFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0bHNfc3dfc3BsaWNlX3JlYWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRMUyBzdWJzeXN0ZW0gdG8gY2hlY2sgZm9yIGFzeW5jaHJvbm91cyBjcnlwdG8gZXJyb3JzIGR1cmluZyBzcGxpY2VfcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYyAoVExTIHNvY2tldCBvcGVyYXRpb25zKSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzoyNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDcyMmRlMjFhZDg4YzVkMzQ4OGNiMWViZGQyODUxYmEwY2Q5YmI1Y2NcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDAzOjI2OjU2IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jXG5pbmRleCA2MmQ0NjczNmUyNGI3Li5kMWFkMzE5ODZjZjJjIDEwMDY0NFxuLS0tIGEvbmV0L3Rscy90bHNfc3cuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3Rscy90bHNfc3cuY1xuQEAgLTIwMTQsNiAmIzQzOzIwMTQsMTEgQEAgc3NpemVfdCB0bHNfc3dfc3BsaWNlX3JlYWQoc3RydWN0IHNvY2tldCAqc29jaywgIGxvZmZfdCAqcHBvcyxcbiBcdGlmIChlcnIgXHUwMDNjIDApXG4gXHRcdHJldHVybiBlcnI7XG4gXG4mIzQzO1x0LyogSWYgY3J5cHRvIGZhaWxlZCB0aGUgY29ubmVjdGlvbiBpcyBicm9rZW4gKi9cbiYjNDM7XHRlcnIgPSBjdHgtXHUwMDNlYXN5bmNfd2FpdC5lcnI7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdGdvdG8gc3BsaWNlX3JlYWRfZW5kO1xuJiM0MztcbiBcdGlmICghc2tiX3F1ZXVlX2VtcHR5KFx1MDAyNmN0eC1cdTAwM2VyeF9saXN0KSkge1xuIFx0XHRza2IgPSBfX3NrYl9kZXF1ZXVlKFx1MDAyNmN0eC1cdTAwM2VyeF9saXN0KTtcbiBcdH0gZWxzZSB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXG5pbmRleCBhMGU3MmU0MDI3NDhmLi45ZDNjZDRmZmYwNjJiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXG4mIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNcbkBAIC0yNCw2ICYjNDM7MjQsNyBAQFxuICNpbmNsdWRlIFwmIzM0O2tzZWxmdGVzdF9oYXJuZXNzLmhcJiMzNDtcbiBcbiAjZGVmaW5lIFRMU19QQVlMT0FEX01BWF9MRU4gMTYzODRcbiYjNDM7I2RlZmluZSBUTFNfSERSX0xFTiA1XG4gI2RlZmluZSBTT0xfVExTIDI4MlxuIFxuIHN0YXRpYyBpbnQgZmlwc19lbmFibGVkO1xuQEAgLTI3MzIsMjggJiM0MzsyNzMzLDgzIEBAIFRFU1RfRih0bHNfZXJyLCBiYWRfcmVjKVxuIFx0RVhQRUNUX0VRKGVycm5vLCBFQUdBSU4pO1xuIH1cbiBcbiYjNDM7LyogY2ZkIGNhcnJpZXMgYSBieXRlIHN0cmVhbSwgc28gb25lIHJlY3YoKSBjYW4gcmV0dXJuIHBhcnQgb2YgYVxuJiM0MzsgKiByZWNvcmQuIFRha2UgdGhlIGZyYWdtZW50IGxlbmd0aCBmcm9tIHRoZSByZWNvcmQgaGVhZGVyIGFuZCB3YWl0XG4mIzQzOyAqIGZvciB0aGUgcmVtYWluZGVyLlxuJiM0MzsgKi9cbiYjNDM7c3RhdGljIHZvaWQgdGxzX3NlbmRfYmFkX2F1dGgoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxuJiM0MztcdFx0XHQgICAgICBpbnQgZmQsIGludCBjZmQsIGludCBmZDIpXG4mIzQzO3tcbiYjNDM7XHRjaGFyIGJ1ZlsxMjhdO1xuJiM0MztcdGludCBsZW47XG4mIzQzO1xuJiM0MztcdG1lbXJuZChidWYsIHNpemVvZihidWYpIC8gMik7XG4mIzQzO1x0QVNTRVJUX0VRKHNlbmQoZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikgLyAyLCAwKSwgc2l6ZW9mKGJ1ZikgLyAyKTtcbiYjNDM7XG4mIzQzO1x0QVNTRVJUX0VRKHJlY3YoY2ZkLCBidWYsIFRMU19IRFJfTEVOLCBNU0dfV0FJVEFMTCksIFRMU19IRFJfTEVOKTtcbiYjNDM7XG4mIzQzO1x0bGVuID0gKCh1bnNpZ25lZCBjaGFyKWJ1ZlszXSBcdTAwM2NcdTAwM2MgOCkgfCAodW5zaWduZWQgY2hhcilidWZbNF07XG4mIzQzO1x0QVNTRVJUX0dUKGxlbiwgMCk7XG4mIzQzO1x0QVNTRVJUX0xFKGxlbiwgKGludClzaXplb2YoYnVmKSAtIFRMU19IRFJfTEVOKTtcbiYjNDM7XG4mIzQzO1x0QVNTRVJUX0VRKHJlY3YoY2ZkLCBidWYgJiM0MzsgVExTX0hEUl9MRU4sIGxlbiwgTVNHX1dBSVRBTEwpLCBsZW4pO1xuJiM0MztcbiYjNDM7XHRidWZbVExTX0hEUl9MRU4gJiM0MzsgbGVuIC0gMV0mIzQzOyYjNDM7O1xuJiM0MztcbiYjNDM7XHRBU1NFUlRfRVEoc2VuZChmZDIsIGJ1ZiwgVExTX0hEUl9MRU4gJiM0MzsgbGVuLCAwKSwgVExTX0hEUl9MRU4gJiM0MzsgbGVuKTtcbiYjNDM7fVxuJiM0MztcbiBURVNUX0YodGxzX2VyciwgYmFkX2F1dGgpXG4ge1xuIFx0Y2hhciBidWZbMTI4XTtcbi1cdGludCBuO1xuIFxuIFx0aWYgKHNlbGYtXHUwMDNlbm90bHMpXG4gXHRcdFNLSVAocmV0dXJuLCBcJiMzNDtubyBUTFMgc3VwcG9ydFwmIzM0Oyk7XG4gXG4tXHRtZW1ybmQoYnVmLCBzaXplb2YoYnVmKSAvIDIpO1xuLVx0RVhQRUNUX0VRKHNlbmQoc2VsZi1cdTAwM2VmZCwgYnVmLCBzaXplb2YoYnVmKSAvIDIsIDApLCBzaXplb2YoYnVmKSAvIDIpO1xuLVx0biA9IHJlY3Yoc2VsZi1cdTAwM2VjZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApO1xuLVx0RVhQRUNUX0dUKG4sIHNpemVvZihidWYpIC8gMik7XG4mIzQzO1x0dGxzX3NlbmRfYmFkX2F1dGgoX21ldGFkYXRhLCBzZWxmLVx1MDAzZWZkLCBzZWxmLVx1MDAzZWNmZCwgc2VsZi1cdTAwM2VmZDIpO1xuIFxuLVx0YnVmW24gLSAxXSYjNDM7JiM0Mzs7XG4tXG4tXHRFWFBFQ1RfRVEoc2VuZChzZWxmLVx1MDAzZWZkMiwgYnVmLCBuLCAwKSwgbik7XG4gXHRFWFBFQ1RfRVEocmVjdihzZWxmLVx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XG4gXHRFWFBFQ1RfRVEoZXJybm8sIEVCQURNU0cpO1xuIFx0RVhQRUNUX0VRKHJlY3Yoc2VsZi1cdTAwM2VjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpO1xuIFx0RVhQRUNUX0VRKGVycm5vLCBFQkFETVNHKTtcbiB9XG4gXG4mIzQzOy8qIEEgcmVjb3JkIHRoYXQgZGlkIG5vdCBhdXRoZW50aWNhdGUgYnJlYWtzIHRoZSBjb25uZWN0aW9uIGZvciBldmVyeVxuJiM0MzsgKiByZWFkZXIsIHNwbGljZSBpbmNsdWRlZC5cbiYjNDM7ICpcbiYjNDM7ICogVGhlIHR3byBkZWNyeXB0IHBhdGhzIHJlYWNoIHRoYXQgcmVzdWx0IGRpZmZlcmVudGx5LiBBIHN5bmNocm9ub3VzXG4mIzQzOyAqIGRlY3J5cHQgbGVhdmVzIHRoZSByZWNvcmQgcGFyc2VkLCBzbyB0aGUgc3BsaWNlIHJlLXJ1bnMgdGhlIGRlY3J5cHRcbiYjNDM7ICogYW5kIGZhaWxzIG9uIHRoZSByZWNvcmQgaXRzZWxmOyB0aGUgY3R4LVx1MDAzZWFzeW5jX3dhaXQuZXJyIGNoZWNrIGluXG4mIzQzOyAqIHRsc19zd19zcGxpY2VfcmVhZCgpIGlzIG5vdCB3aGF0IHN0b3BzIGl0LiBPbmx5IGFuIGFzeW5jaHJvbm91c1xuJiM0MzsgKiBkZWNyeXB0LCB3aGljaCBuZWVkcyBhIFRMUyAxLjIgc29ja2V0IGFuZCBhbiBBRUFEIGFkdmVydGlzaW5nXG4mIzQzOyAqIENSWVBUT19BTEdfQVNZTkMsIGNvbnN1bWVzIHRoZSByZWNvcmQgYmVmb3JlIHRoZSBmYWlsdXJlIGlzXG4mIzQzOyAqIHJlY29yZGVkLCBsZWF2aW5nIHRoYXQgY2hlY2sgdGhlIHNvbGUgcmVhc29uIHRoZSBzcGxpY2UgZmFpbHMuXG4mIzQzOyAqL1xuJiM0MztURVNUX0YodGxzX2VyciwgYmFkX2F1dGhfc3BsaWNlKVxuJiM0Mzt7XG4mIzQzO1x0Y2hhciBidWZbMTI4XTtcbiYjNDM7XHRzc2l6ZV90IHJldDtcbiYjNDM7XHRpbnQgcFsyXTtcbiYjNDM7XG4mIzQzO1x0aWYgKHNlbGYtXHUwMDNlbm90bHMpXG4mIzQzO1x0XHRTS0lQKHJldHVybiwgXCYjMzQ7bm8gVExTIHN1cHBvcnRcJiMzNDspO1xuJiM0MztcbiYjNDM7XHR0bHNfc2VuZF9iYWRfYXV0aChfbWV0YWRhdGEsIHNlbGYtXHUwMDNlZmQsIHNlbGYtXHUwMDNlY2ZkLCBzZWxmLVx1MDAzZWZkMik7XG4mIzQzO1xuJiM0MztcdEVYUEVDVF9FUShyZWN2KHNlbGYtXHUwMDNlY2ZkMiwgYnVmLCBzaXplb2YoYnVmKSwgMCksIC0xKTtcbiYjNDM7XHRFWFBFQ1RfRVEoZXJybm8sIEVCQURNU0cpO1xuJiM0MztcbiYjNDM7XHRBU1NFUlRfR0UocGlwZShwKSwgMCk7XG4mIzQzO1xuJiM0MztcdHJldCA9IHNwbGljZShzZWxmLVx1MDAzZWNmZDIsIE5VTEwsIHBbMV0sIE5VTEwsIHNpemVvZihidWYpLFxuJiM0MztcdFx0ICAgICBTUExJQ0VfRl9OT05CTE9DSyk7XG4mIzQzO1x0RVhQRUNUX0VRKHJldCwgLTEpO1xuJiM0MztcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XG4mIzQzO1xuJiM0MztcdGNsb3NlKHBbMF0pO1xuJiM0MztcdGNsb3NlKHBbMV0pO1xuJiM0Mzt9XG4mIzQzO1xuIFRFU1RfRih0bHNfZXJyLCBiYWRfaW5fbGFyZ2VfcmVhZClcbiB7XG4gXHRjaGFyIHR4dFszXVs2NF07XG5AQCAtMzAwOSw3ICYjNDM7MzA2NSw2IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxuIHtcbiBcdGNvbnN0IF9fdTggKnJlYyA9IHJ4X2J1ZjtcbiBcdHNpemVfdCB0b3RhbF9wbGFpbnRleHRfcnggPSAwO1xuLVx0Y29uc3QgX191OCByZWNfaGVhZGVyX2xlbiA9IDU7XG4gXG4gXHR3aGlsZSAocmVjIFx1MDAzYyByeF9idWYgJiM0MzsgcnhfbGVuKSB7XG4gXHRcdF9fdTE2IHJlY29yZF9wYXlsb2FkX2xlbjtcbkBAIC0zMDI5LDcgJiM0MzszMDg0LDcgQEAgc3RhdGljIHNpemVfdCBwYXJzZV90bHNfcmVjb3JkcyhzdHJ1Y3QgX190ZXN0X21ldGFkYXRhICpfbWV0YWRhdGEsXG4gXG4gXHRcdC8qIFBsYWludGV4dCBtdXN0IG5vdCBleGNlZWQgdGhlIHNwZWNpZmllZCBsaW1pdCAqL1xuIFx0XHRBU1NFUlRfTEUocGxhaW50ZXh0X2xlbiwgbWF4X3BheWxvYWRfbGVuKTtcbi1cdFx0cmVjICYjNDM7PSByZWNfaGVhZGVyX2xlbiAmIzQzOyByZWNvcmRfcGF5bG9hZF9sZW47XG4mIzQzO1x0XHRyZWMgJiM0Mzs9IFRMU19IRFJfTEVOICYjNDM7IHJlY29yZF9wYXlsb2FkX2xlbjtcbiBcdH1cbiBcbiBcdHJldHVybiB0b3RhbF9wbGFpbnRleHRfcng7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDM6Mjc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MjZtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUTFMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0bHNfc3dfc3BsaWNlX3JlYWQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRMUyBzdWJzeXN0ZW0gdG8gY2hlY2sgZm9yIGFzeW5jaHJvbm91cyBjcnlwdG8gZXJyb3JzIGR1cmluZyBzcGxpY2VfcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYyAoVExTIHNvY2tldCBvcGVyYXRpb25zKSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDcyMmRlMjFhZDg4YzVkMzQ4OGNiMWViZGQyODUxYmEwY2Q5YmI1Y2MKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEF1ZyA3IDAzOjI2OjU2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggNjJkNDY3MzZlMjRiNy4uZDFhZDMxOTg2Y2YyYyAxMDA2NDQKLS0tIGEvbmV0L3Rscy90bHNfc3cuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC0yMDE0LDYgJiM0MzsyMDE0LDExIEBAIHNzaXplX3QgdGxzX3N3X3NwbGljZV9yZWFkKHN0cnVjdCBzb2NrZXQgKnNvY2ssICBsb2ZmX3QgKnBwb3MsCiAJaWYgKGVyciAmbHQ7IDApCiAJCXJldHVybiBlcnI7CiAKJiM0MzsJLyogSWYgY3J5cHRvIGZhaWxlZCB0aGUgY29ubmVjdGlvbiBpcyBicm9rZW4gKi8KJiM0MzsJZXJyID0gY3R4LSZndDthc3luY193YWl0LmVycjsKJiM0MzsJaWYgKGVycikKJiM0MzsJCWdvdG8gc3BsaWNlX3JlYWRfZW5kOwomIzQzOwogCWlmICghc2tiX3F1ZXVlX2VtcHR5KCZhbXA7Y3R4LSZndDtyeF9saXN0KSkgewogCQlza2IgPSBfX3NrYl9kZXF1ZXVlKCZhbXA7Y3R4LSZndDtyeF9saXN0KTsKIAl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jCmluZGV4IGEwZTcyZTQwMjc0OGYuLjlkM2NkNGZmZjA2MmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYwomIzQzOyYjNDM7JiM0MzsgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmMKQEAgLTI0LDYgJiM0MzsyNCw3IEBACiAjaW5jbHVkZSAmIzM0O2tzZWxmdGVzdF9oYXJuZXNzLmgmIzM0OwogCiAjZGVmaW5lIFRMU19QQVlMT0FEX01BWF9MRU4gMTYzODQKJiM0MzsjZGVmaW5lIFRMU19IRFJfTEVOIDUKICNkZWZpbmUgU09MX1RMUyAyODIKIAogc3RhdGljIGludCBmaXBzX2VuYWJsZWQ7CkBAIC0yNzMyLDI4ICYjNDM7MjczMyw4MyBAQCBURVNUX0YodGxzX2VyciwgYmFkX3JlYykKIAlFWFBFQ1RfRVEoZXJybm8sIEVBR0FJTik7CiB9CiAKJiM0MzsvKiBjZmQgY2FycmllcyBhIGJ5dGUgc3RyZWFtLCBzbyBvbmUgcmVjdigpIGNhbiByZXR1cm4gcGFydCBvZiBhCiYjNDM7ICogcmVjb3JkLiBUYWtlIHRoZSBmcmFnbWVudCBsZW5ndGggZnJvbSB0aGUgcmVjb3JkIGhlYWRlciBhbmQgd2FpdAomIzQzOyAqIGZvciB0aGUgcmVtYWluZGVyLgomIzQzOyAqLwomIzQzO3N0YXRpYyB2b2lkIHRsc19zZW5kX2JhZF9hdXRoKHN0cnVjdCBfX3Rlc3RfbWV0YWRhdGEgKl9tZXRhZGF0YSwKJiM0MzsJCQkgICAgICBpbnQgZmQsIGludCBjZmQsIGludCBmZDIpCiYjNDM7ewomIzQzOwljaGFyIGJ1ZlsxMjhdOwomIzQzOwlpbnQgbGVuOwomIzQzOwomIzQzOwltZW1ybmQoYnVmLCBzaXplb2YoYnVmKSAvIDIpOwomIzQzOwlBU1NFUlRfRVEoc2VuZChmZCwgYnVmLCBzaXplb2YoYnVmKSAvIDIsIDApLCBzaXplb2YoYnVmKSAvIDIpOwomIzQzOwomIzQzOwlBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiwgVExTX0hEUl9MRU4sIE1TR19XQUlUQUxMKSwgVExTX0hEUl9MRU4pOwomIzQzOwomIzQzOwlsZW4gPSAoKHVuc2lnbmVkIGNoYXIpYnVmWzNdICZsdDsmbHQ7IDgpIHwgKHVuc2lnbmVkIGNoYXIpYnVmWzRdOwomIzQzOwlBU1NFUlRfR1QobGVuLCAwKTsKJiM0MzsJQVNTRVJUX0xFKGxlbiwgKGludClzaXplb2YoYnVmKSAtIFRMU19IRFJfTEVOKTsKJiM0MzsKJiM0MzsJQVNTRVJUX0VRKHJlY3YoY2ZkLCBidWYgJiM0MzsgVExTX0hEUl9MRU4sIGxlbiwgTVNHX1dBSVRBTEwpLCBsZW4pOwomIzQzOwomIzQzOwlidWZbVExTX0hEUl9MRU4gJiM0MzsgbGVuIC0gMV0mIzQzOyYjNDM7OwomIzQzOwomIzQzOwlBU1NFUlRfRVEoc2VuZChmZDIsIGJ1ZiwgVExTX0hEUl9MRU4gJiM0MzsgbGVuLCAwKSwgVExTX0hEUl9MRU4gJiM0MzsgbGVuKTsKJiM0Mzt9CiYjNDM7CiBURVNUX0YodGxzX2VyciwgYmFkX2F1dGgpCiB7CiAJY2hhciBidWZbMTI4XTsKLQlpbnQgbjsKIAogCWlmIChzZWxmLSZndDtub3RscykKIAkJU0tJUChyZXR1cm4sICYjMzQ7bm8gVExTIHN1cHBvcnQmIzM0Oyk7CiAKLQltZW1ybmQoYnVmLCBzaXplb2YoYnVmKSAvIDIpOwotCUVYUEVDVF9FUShzZW5kKHNlbGYtJmd0O2ZkLCBidWYsIHNpemVvZihidWYpIC8gMiwgMCksIHNpemVvZihidWYpIC8gMik7Ci0JbiA9IHJlY3Yoc2VsZi0mZ3Q7Y2ZkLCBidWYsIHNpemVvZihidWYpLCAwKTsKLQlFWFBFQ1RfR1Qobiwgc2l6ZW9mKGJ1ZikgLyAyKTsKJiM0MzsJdGxzX3NlbmRfYmFkX2F1dGgoX21ldGFkYXRhLCBzZWxmLSZndDtmZCwgc2VsZi0mZ3Q7Y2ZkLCBzZWxmLSZndDtmZDIpOwogCi0JYnVmW24gLSAxXSYjNDM7JiM0Mzs7Ci0KLQlFWFBFQ1RfRVEoc2VuZChzZWxmLSZndDtmZDIsIGJ1ZiwgbiwgMCksIG4pOwogCUVYUEVDVF9FUShyZWN2KHNlbGYtJmd0O2NmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7CiAJRVhQRUNUX0VRKGVycm5vLCBFQkFETVNHKTsKIAlFWFBFQ1RfRVEocmVjdihzZWxmLSZndDtjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpOwogCUVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7CiB9CiAKJiM0MzsvKiBBIHJlY29yZCB0aGF0IGRpZCBub3QgYXV0aGVudGljYXRlIGJyZWFrcyB0aGUgY29ubmVjdGlvbiBmb3IgZXZlcnkKJiM0MzsgKiByZWFkZXIsIHNwbGljZSBpbmNsdWRlZC4KJiM0MzsgKgomIzQzOyAqIFRoZSB0d28gZGVjcnlwdCBwYXRocyByZWFjaCB0aGF0IHJlc3VsdCBkaWZmZXJlbnRseS4gQSBzeW5jaHJvbm91cwomIzQzOyAqIGRlY3J5cHQgbGVhdmVzIHRoZSByZWNvcmQgcGFyc2VkLCBzbyB0aGUgc3BsaWNlIHJlLXJ1bnMgdGhlIGRlY3J5cHQKJiM0MzsgKiBhbmQgZmFpbHMgb24gdGhlIHJlY29yZCBpdHNlbGY7IHRoZSBjdHgtJmd0O2FzeW5jX3dhaXQuZXJyIGNoZWNrIGluCiYjNDM7ICogdGxzX3N3X3NwbGljZV9yZWFkKCkgaXMgbm90IHdoYXQgc3RvcHMgaXQuIE9ubHkgYW4gYXN5bmNocm9ub3VzCiYjNDM7ICogZGVjcnlwdCwgd2hpY2ggbmVlZHMgYSBUTFMgMS4yIHNvY2tldCBhbmQgYW4gQUVBRCBhZHZlcnRpc2luZwomIzQzOyAqIENSWVBUT19BTEdfQVNZTkMsIGNvbnN1bWVzIHRoZSByZWNvcmQgYmVmb3JlIHRoZSBmYWlsdXJlIGlzCiYjNDM7ICogcmVjb3JkZWQsIGxlYXZpbmcgdGhhdCBjaGVjayB0aGUgc29sZSByZWFzb24gdGhlIHNwbGljZSBmYWlscy4KJiM0MzsgKi8KJiM0MztURVNUX0YodGxzX2VyciwgYmFkX2F1dGhfc3BsaWNlKQomIzQzO3sKJiM0MzsJY2hhciBidWZbMTI4XTsKJiM0MzsJc3NpemVfdCByZXQ7CiYjNDM7CWludCBwWzJdOwomIzQzOwomIzQzOwlpZiAoc2VsZi0mZ3Q7bm90bHMpCiYjNDM7CQlTS0lQKHJldHVybiwgJiMzNDtubyBUTFMgc3VwcG9ydCYjMzQ7KTsKJiM0MzsKJiM0MzsJdGxzX3NlbmRfYmFkX2F1dGgoX21ldGFkYXRhLCBzZWxmLSZndDtmZCwgc2VsZi0mZ3Q7Y2ZkLCBzZWxmLSZndDtmZDIpOwomIzQzOwomIzQzOwlFWFBFQ1RfRVEocmVjdihzZWxmLSZndDtjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpOwomIzQzOwlFWFBFQ1RfRVEoZXJybm8sIEVCQURNU0cpOwomIzQzOwomIzQzOwlBU1NFUlRfR0UocGlwZShwKSwgMCk7CiYjNDM7CiYjNDM7CXJldCA9IHNwbGljZShzZWxmLSZndDtjZmQyLCBOVUxMLCBwWzFdLCBOVUxMLCBzaXplb2YoYnVmKSwKJiM0MzsJCSAgICAgU1BMSUNFX0ZfTk9OQkxPQ0spOwomIzQzOwlFWFBFQ1RfRVEocmV0LCAtMSk7CiYjNDM7CUVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7CiYjNDM7CiYjNDM7CWNsb3NlKHBbMF0pOwomIzQzOwljbG9zZShwWzFdKTsKJiM0Mzt9CiYjNDM7CiBURVNUX0YodGxzX2VyciwgYmFkX2luX2xhcmdlX3JlYWQpCiB7CiAJY2hhciB0eHRbM11bNjRdOwpAQCAtMzAwOSw3ICYjNDM7MzA2NSw2IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLAogewogCWNvbnN0IF9fdTggKnJlYyA9IHJ4X2J1ZjsKIAlzaXplX3QgdG90YWxfcGxhaW50ZXh0X3J4ID0gMDsKLQljb25zdCBfX3U4IHJlY19oZWFkZXJfbGVuID0gNTsKIAogCXdoaWxlIChyZWMgJmx0OyByeF9idWYgJiM0MzsgcnhfbGVuKSB7CiAJCV9fdTE2IHJlY29yZF9wYXlsb2FkX2xlbjsKQEAgLTMwMjksNyAmIzQzOzMwODQsNyBAQCBzdGF0aWMgc2l6ZV90IHBhcnNlX3Rsc19yZWNvcmRzKHN0cnVjdCBfX3Rlc3RfbWV0YWRhdGEgKl9tZXRhZGF0YSwKIAogCQkvKiBQbGFpbnRleHQgbXVzdCBub3QgZXhjZWVkIHRoZSBzcGVjaWZpZWQgbGltaXQgKi8KIAkJQVNTRVJUX0xFKHBsYWludGV4dF9sZW4sIG1heF9wYXlsb2FkX2xlbik7Ci0JCXJlYyAmIzQzOz0gcmVjX2hlYWRlcl9sZW4gJiM0MzsgcmVjb3JkX3BheWxvYWRfbGVuOwomIzQzOwkJcmVjICYjNDM7PSBUTFNfSERSX0xFTiAmIzQzOyByZWNvcmRfcGF5bG9hZF9sZW47CiAJfQogCiAJcmV0dXJuIHRvdGFsX3BsYWludGV4dF9yeDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDM6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU3NgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDI5NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgVExTIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdG91Y2hlcyBgbmV0L3Rscy90bHNfc3cuY2AgYW5kIGEgc2VsZnRlc3QgZmlsZS4gVGhlIG1lYXQgb2YgdGhlIGNoYW5nZSBpcyBpbnNpZGUgYHRsc19zd19zcGxpY2VfcmVhZGAuIEl0IGFwcGVhcnMgdGhleSYjMzk7cmUgYWRkaW5nIGEgY3J1Y2lhbCBjaGVjay4gIFNwZWNpZmljYWxseSwgdGhleSYjMzk7cmUgZXhhbWluaW5nIGBjdHgtJmd0O2FzeW5jX3dhaXQuZXJyYCBhbmQgYmFpbGluZyBvdXQgaWYgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiwgd2hpY2ggbWFrZXMgcGVyZmVjdCBzZW5zZS4gIElmIHRoZSBjcnlwdG8gZmFpbHMsIHRoZSBjb25uZWN0aW9uIGlzIGZ1bmRhbWVudGFsbHkgYnJva2VuLCBzbyBhYm9ydGluZyB0aGUgcmVhZCBpcyB0aGUgY29ycmVjdCBiZWhhdmlvci4gIFRoaXMgaXMgYSBjbGVhbiwgbG9naWNhbCBhZGRpdGlvbiwgZnVuY3Rpb25hbGx5IHNpZ25pZmljYW50IGZvciB0aGUgVExTIHN1YnN5c3RlbS4KClNpbmNlIHRoaXMgbmV3IGVycm9yIHBhdGggaXMgaW50cm9kdWNlZCBpbiBgdGxzX3N3X3NwbGljZV9yZWFkYCwgdGhpcyBjbGVhcmx5IGludHJvZHVjZXMgYSBuZXcgY29kZSBwYXRoIHRoYXQmIzM5O3Mgbm93IHJlYWNoYWJsZSwgbWVhbmluZyBpdCYjMzk7cyB3b3J0aCBhIGZ1enppbmcgcnVuLiAgSSYjMzk7bSBnb2luZyB0byB3YW50IHRvIHZlcmlmeSB0aGUgaW1wbGVtZW50YXRpb24gdG8ga25vdyBpZiBhbGwgZWRnZSBjYXNlcyBhcmUgaGFuZGxlZC4KCk5vdywgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoLiAgSSYjMzk7bGwgc3RhcnQgYnkgY2hlY2tpbmcgYG5ldC90bHMvS2NvbmZpZ2AgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGB0bHNfc3dgIGRyaXZlci4gRnJvbSB0aGVyZSwgSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGhvdyB0byBnZXQgdGhhdCBgYXN5bmNfd2FpdC5lcnJgIHRvIGJlIHNldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzoyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVExTJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3Rscy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90bHMvS2NvbmZpZy00LSNcbm5ldC90bHMvS2NvbmZpZzo1OmNvbmZpZyBUTFNcbm5ldC90bHMvS2NvbmZpZy02LVx0dHJpc3RhdGUgXCYjMzQ7VHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGxzL0tjb25maWctMTgtXG5uZXQvdGxzL0tjb25maWc6MTk6Y29uZmlnIFRMU19ERVZJQ0Vcbm5ldC90bHMvS2NvbmZpZy0yMC1cdGJvb2wgXCYjMzQ7VHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IEhXIG9mZmxvYWRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzoyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjcyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBDb25maWd1cmF0aW9uIGFuZCBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgdGhlIGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5pdGVseSBsZWFuaW5nIHRvd2FyZHMgYFRMU2AuIE15IGltbWVkaWF0ZSByZWFjdGlvbiBpcyB0byBkZWx2ZSBkZWVwZXIuIEkmIzM5O20gbm90IGp1c3QgZ29pbmcgdG8gdGFrZSB0aGlzIGF0IGZhY2UgdmFsdWUuIFdoYXQgYXJlIHRoZSBzdXBwb3J0aW5nIGxpYnJhcmllcyBhbmQgb3RoZXIgY29tcG9uZW50cyB0aGlzIGNvbmZpZ3VyYXRpb24gaXMgY29udGluZ2VudCBvbj8gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgYWxsIHRoZSByZWxhdGVkIGRlcGVuZGVuY2llcyDigJMgbm90IGp1c3QgdGhlIG9idmlvdXMgb25lcywgYnV0IHRoZSBwb3RlbnRpYWxseSBzdWJ0bGUgb25lcyB0aGF0IG1pZ2h0IGJlIGx1cmtpbmcuIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQgdmVyaWZ5aW5nIHRoZSBvYnZpb3VzOyBpdOKAmXMgYWJvdXQgYSBjb21wcmVoZW5zaXZlIGFzc2Vzc21lbnQuIEkgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB2ZXJzaW9uIGNvbXBhdGliaWxpdHksIHBvdGVudGlhbCBjb25mbGljdHMsIGFuZCBhbnkga25vd24gc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzIGFzc29jaWF0ZWQgd2l0aCAqYW55KiBkZXBlbmRlbmN5IGluIHRoZSBjaGFpbi4gVGhpcyBpbml0aWFsIGFzc2Vzc21lbnQgY291bGQgYmUgY3JpdGljYWwsIHNvIGxldOKAmXMgZ2V0IGRpZ2dpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDM6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvdGxzL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHQjXG4gICAzOlx0IyBUTFMgY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRjb25maWcgVExTXG4gICA2Olx0XHR0cmlzdGF0ZSBcJiMzNDtUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgc3VwcG9ydFwmIzM0O1xuICAgNzpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4gICA4Olx0XHRzZWxlY3QgQ1JZUFRPXG4gICA5Olx0XHRzZWxlY3QgQ1JZUFRPX0FFU1xuICAxMDpcdFx0c2VsZWN0IENSWVBUT19HQ01cbiAgMTE6XHRcdHNlbGVjdCBORVRfU09DS19NU0dcbiAgMTI6XHRcdGRlZmF1bHQgblxuICAxMzpcdFx0aGVscFxuICAxNDpcdFx0RW5hYmxlIGtlcm5lbCBzdXBwb3J0IGZvciBUTFMgcHJvdG9jb2wuIFRoaXMgYWxsb3dzIHN5bW1ldHJpY1xuICAxNTpcdFx0ZW5jcnlwdGlvbiBoYW5kbGluZyBvZiB0aGUgVExTIHByb3RvY29sIHRvIGJlIGRvbmUgaW4ta2VybmVsLlxuICAxNjpcdFxuICAxNzpcdFx0SWYgdW5zdXJlLCBzYXkgTi5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgVExTX0RFVklDRVxuICAyMDpcdFx0Ym9vbCBcJiMzNDtUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgSFcgb2ZmbG9hZFwmIzM0O1xuICAyMTpcdFx0ZGVwZW5kcyBvbiBUTFNcbiAgMjI6XHRcdHNlbGVjdCBTS0JfREVDUllQVEVEXG4gIDIzOlx0XHRzZWxlY3QgU09DS19WQUxJREFURV9YTUlUXG4gIDI0Olx0XHRzZWxlY3QgU09DS19SWF9RVUVVRV9NQVBQSU5HXG4gIDI1Olx0XHRkZWZhdWx0IG5cbiAgMjY6XHRcdGhlbHBcbiAgMjc6XHRcdEVuYWJsZSBrZXJuZWwgc3VwcG9ydCBmb3IgSFcgb2ZmbG9hZCBvZiB0aGUgVExTIHByb3RvY29sLlxuICAyODpcdFxuICAyOTpcdFx0SWYgdW5zdXJlLCBzYXkgTi5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODA0CgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgbmV0d29yayBzdGFjayBjb25maWd1cmF0aW9uOgoKKipEaXZpbmcgaW50byBUTFMgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIHdvcmtpbmcgb24gdGhlIFRMUyBjb25maWd1cmF0aW9uIOKAkyBpdCYjMzk7cyBjcnVjaWFsLCBvYnZpb3VzbHkuIE15IG1pbmQgaW1tZWRpYXRlbHkgZmxhZ3MgdGhhdCB0aGUgVExTIHNldHRpbmdzIGFyZSByZWxpYW50IG9uIHRoZSBJTkVUIHN0YWNrOyB0aGUgZGVwZW5kZW5jeSBpcyBpbXBvcnRhbnQgdG8gYmVhciBpbiBtaW5kLiBMZXQmIzM5O3MgZGlnIGludG8gdGhlIGRldGFpbHM6IFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHRyYWNlIHRoZSBkYXRhIGZsb3cuIFRoZSBwbGFjZSB0byBzdGFydCBpcyB0aGUgYHRsc19zd19zcGxpY2VfcmVhZGAgZnVuY3Rpb24gd2l0aGluIGBuZXQvdGxzL3Rsc19zdy5jYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBzcGxpY2luZyBoYXBwZW5zIGluIHNvZnR3YXJlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBtYWdpYyBzdGFydHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGxzX3N3X3NwbGljZV9yZWFkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3Rscy90bHNfc3cuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdGxzL3Rsc19zdy5jPTE4MDY9aW50IHRsc19zd19yZWN2bXNnKHN0cnVjdCBzb2NrICpzayxcbi0tXG5uZXQvdGxzL3Rsc19zdy5jLTE5OTgtXG5uZXQvdGxzL3Rsc19zdy5jOjE5OTk6c3NpemVfdCB0bHNfc3dfc3BsaWNlX3JlYWQoc3RydWN0IHNvY2tldCAqc29jaywgIGxvZmZfdCAqcHBvcyxcbm5ldC90bHMvdGxzX3N3LmMtMjAwMC1cdFx0XHQgICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNTEKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAxOTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQYXRjaCYjMzk7cyBTY29wZSoqCgpPa2F5LCBzbyB0aGUgcHJpbWFyeSBmdW5jdGlvbiBvZiBpbnRlcmVzdCBoZXJlIGlzIGB0bHNfc3dfc3BsaWNlX3JlYWRgLiBJcyB0aGVyZSBhbnl0aGluZyBlbHNlIEkgbmVlZCB0byBjb25zaWRlcj8gVGhlIHBhdGNoLCBhcyBmYXIgYXMgSSBjYW4gc2VlLCBkaXJlY3RseSBtb2RpZmllcyBgdGxzX3N3X3NwbGljZV9yZWFkYC4gTGV0JiMzOTtzIGp1c3QgY29uZmlybSB0aGF0IHRoaXMgaXMgdGhlIHNvbGUgZnVuY3Rpb24gaW1wYWN0ZWQgd2l0aGluIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuIENoZWNraW5nLi4uIHllcCwgaXQmIzM5O3MganVzdCBgdGxzX3N3X3NwbGljZV9yZWFkYCBpbiBgbmV0L3Rscy90bHNfc3cuY2AuIFRoZSByZW1haW5pbmcgY2hhbmdlcyBzZWVtIGNvbmZpbmVkIHRvIHRoZSBzZWxmLXRlc3RzIGluIGB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNgLiBUaGF0JiMzOTtzIGdvb2Q7IGl0IGtlZXBzIHRoZSBhbmFseXNpcyBmb2N1c2VkLgoKTm93LCBsZXQmIzM5O3MgbmFpbCBkb3duIHRoZSBzcGVjaWZpY3Mgb2YgYHRsc19zd19zcGxpY2VfcmVhZGAuIEkgbmVlZCB0byByZXZpZXcgaXRzIHNpZ25hdHVyZSBhbmQgZGV0ZXJtaW5lIGlmIGl0IGhhcyBhbnkgdW51c3VhbCBwcm9wZXJ0aWVzLCBsaWtlIGJlaW5nIGRlY2xhcmVkIGFzIHN0YXRpYy4gTGV0JiMzOTtzIHNlZS4uLiBgc3NpemVfdCB0bHNfc3dfc3BsaWNlX3JlYWQoc3RydWN0IHNvY2tldCAqc29jaywgbG9mZl90ICpwcG9zLCBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLCBzaXplX3QgbGVuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpYC4gR290IGl0LiBBbmQgbm8sIGl0JiMzOTtzICpub3QqIHN0YXRpYywgc28gaXQmIzM5O3MgbGlrZWx5IGVpdGhlciBleHBvcnRlZCBvciB1c2VkIGFzIGEgY2FsbGJhY2sgZnVuY3Rpb24uIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBvZiB0aG9zZSBpdCBpcyBzb29uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0bHNfc3dfc3BsaWNlX3JlYWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGxzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvdGxzL3Rscy5oPTE2NT1ib29sIHRsc19zd19zb2NrX2lzX3JlYWRhYmxlKHN0cnVjdCBzb2NrICpzayk7XG5uZXQvdGxzL3Rscy5oOjE2Njpzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBsb2ZmX3QgKnBwb3MsXG5uZXQvdGxzL3Rscy5oLTE2Ny1cdFx0XHQgICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxuLS1cbm5ldC90bHMvdGxzX21haW4uYz05NDA9c3RhdGljIHZvaWQgYnVpbGRfcHJvdG9fb3BzKHN0cnVjdCBwcm90b19vcHMgb3BzW1RMU19OVU1fQ09ORklHXVtUTFNfTlVNX0NPTkZJR10sXG4tLVxubmV0L3Rscy90bHNfbWFpbi5jLTk0OC1cdG9wc1tUTFNfQkFTRV1bVExTX1NXICBdID0gb3BzW1RMU19CQVNFXVtUTFNfQkFTRV07XG5uZXQvdGxzL3Rsc19tYWluLmM6OTQ5Olx0b3BzW1RMU19CQVNFXVtUTFNfU1cgIF0uc3BsaWNlX3JlYWRcdD0gdGxzX3N3X3NwbGljZV9yZWFkO1xubmV0L3Rscy90bHNfbWFpbi5jLTk1MC1cdG9wc1tUTFNfQkFTRV1bVExTX1NXICBdLnBvbGxcdFx0PSB0bHNfc2tfcG9sbDtcbi0tXG5uZXQvdGxzL3Rsc19tYWluLmMtOTUzLVx0b3BzW1RMU19TVyAgXVtUTFNfU1cgIF0gPSBvcHNbVExTX1NXICBdW1RMU19CQVNFXTtcbm5ldC90bHMvdGxzX21haW4uYzo5NTQ6XHRvcHNbVExTX1NXICBdW1RMU19TVyAgXS5zcGxpY2VfcmVhZFx0PSB0bHNfc3dfc3BsaWNlX3JlYWQ7XG5uZXQvdGxzL3Rsc19tYWluLmMtOTU1LVx0b3BzW1RMU19TVyAgXVtUTFNfU1cgIF0ucG9sbFx0XHQ9IHRsc19za19wb2xsO1xuLS1cbm5ldC90bHMvdGxzX3N3LmM9MTgwNj1pbnQgdGxzX3N3X3JlY3Ztc2coc3RydWN0IHNvY2sgKnNrLFxuLS1cbm5ldC90bHMvdGxzX3N3LmMtMTk5OC1cbm5ldC90bHMvdGxzX3N3LmM6MTk5OTpzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAgbG9mZl90ICpwcG9zLFxubmV0L3Rscy90bHNfc3cuYy0yMDAwLVx0XHRcdCAgIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDAzOjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xMG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTUwCgkJCQkJCQlvdXRwdXQ6IDgyCgkJCQkJCQl0aG91Z2h0czogMzk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgQ2FuZGlkYXRlIEFzc2Vzc21lbnQ6IFRMUyBgc3BsaWNlX3JlYWRgIEZpeCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYHRsc19zd19zcGxpY2VfcmVhZGAsIHdoaWNoIGlzIHVzZWQgYXMgYSBjYWxsYmFjayBpbiBgcHJvdG9fb3BzYCBmb3IgdGhlIGBzcGxpY2VfcmVhZGAgb3BlcmF0aW9uLiBUaGF0JiMzOTtzIHRoZSBrZXkgc3ltYm9sIGhlcmUsIHRoZSBvbmUgSSBuZWVkIHRvIGZvY3VzIG9uLgoKTGV0IG1lIHF1aWNrbHkgbWFrZSBzdXJlIHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIGNvbmZpZ3MgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQuIGBUTFNgIGlzIGRlZmluaXRlbHkgYSBnaXZlbiwgYW5kIGBJTkVUYCBpcyBsaWtlbHkgZW5hYmxlZCBhcyB3ZWxsLCBidXQgd2hhdCBhYm91dCBjcnlwdG8tcmVsYXRlZCBjb25maWdzPyBUaGUgS2NvbmZpZyBmaWxlIGhhcyBzb21lIHNlbGVjdCBzdGF0ZW1lbnRzOiBgc2VsZWN0IENSWVBUT2AsIGBzZWxlY3QgQ1JZUFRPX0FFU2AsIGFuZCBgc2VsZWN0IENSWVBUT19HQ01gLiBTbyB0aG9zZSBhcmUgYXV0b21hdGljYWxseSBzZWxlY3RlZC4gR29vZCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncy4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBzZWVtcyB0byBhZGRyZXNzIGEgc2l0dWF0aW9uIHdoZXJlIGEgY3J5cHRvIGZhaWx1cmUgZHVyaW5nIFRMUyBhdXRoZW50aWNhdGlvbiBsZWF2ZXMgdGhlIGNvbm5lY3Rpb24gaW4gYSBicm9rZW4gc3RhdGUsIGJ1dCBgc3BsaWNlX3JlYWRgIGRvZXNuJiMzOTt0IGRldGVjdCB0aGUgZXJyb3IuIFRoZSB0ZXN0IGNhc2UgdXRpbGl6ZXMgYHNwbGljZWAgb24gYSBUTFMgc29ja2V0IGFmdGVyIGEgYmFkIGF1dGhlbnRpY2F0aW9uLCBzaG93aW5nIHRoZSBidWcuIFRoZSBwcm9wb3NlZCBmaXggaW52b2x2ZXMgY2hlY2tpbmcgYGN0eC0mZ3Q7YXN5bmNfd2FpdC5lcnJgIHdpdGhpbiBgdGxzX3N3X3NwbGljZV9yZWFkYC4KClNvLCBpdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzcGVjaWZpY2FsbHkgaW4gdGhlIFRMUyBzb2NrZXQgb3BlcmF0aW9ucywgd2hpY2ggYXJlIHJlYWNoYWJsZSBrZXJuZWwgbG9naWMuIEkgc2hvdWxkIGRlZmluaXRlbHkgZnV6eiB0aGlzLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkmIzM5O2xsIGRvdWJsZS1jaGVjayBpZiB0aGUgcGF0Y2ggdG91Y2hlcyBhbnkgb3RoZXIgZnVuY3Rpb25zLiBOb3BlLCBpdCYjMzk7cyBqdXN0IHRoZSBvbmUgZnVuY3Rpb24sIGB0bHNfc3dfc3BsaWNlX3JlYWRgIHdpdGhpbiBgbmV0L3Rscy90bHNfc3cuY2AuCgpCYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50OgoKYGBganNvbgp7CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Rsc19zd19zcGxpY2VfcmVhZCYjMzQ7CiAgXSwKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUTFMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRMUyBzdWJzeXN0ZW0gdG8gY2hlY2sgZm9yIGFzeW5jaHJvbm91cyBjcnlwdG8gZXJyb3JzIGR1cmluZyBzcGxpY2VfcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYyAoVExTIHNvY2tldCBvcGVyYXRpb25zKSBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0Owp9CmBgYAoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwMzo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VExTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGxzX3N3X3NwbGljZV9yZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUTFMgc3Vic3lzdGVtIHRvIGNoZWNrIGZvciBhc3luY2hyb25vdXMgY3J5cHRvIGVycm9ycyBkdXJpbmcgc3BsaWNlX3JlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMgKFRMUyBzb2NrZXQgb3BlcmF0aW9ucykgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RMUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Rsc19zd19zcGxpY2VfcmVhZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVExTIHN1YnN5c3RlbSB0byBjaGVjayBmb3IgYXN5bmNocm9ub3VzIGNyeXB0byBlcnJvcnMgZHVyaW5nIHNwbGljZV9yZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljIChUTFMgc29ja2V0IG9wZXJhdGlvbnMpIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDM6MjY6NTguNjYxMjUzMjU1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU2NzUxOTEwNzIwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUTFNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0bHNfc3dfc3BsaWNlX3JlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVExTIHN1YnN5c3RlbSB0byBjaGVjayBmb3IgYXN5bmNocm9ub3VzIGNyeXB0byBlcnJvcnMgZHVyaW5nIHNwbGljZV9yZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljIChUTFMgc29ja2V0IG9wZXJhdGlvbnMpIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMzoyNjo1OC42NjEyNjAxMzVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNDY1NTk4MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA3MjJkZTIxYWQ4OGM1ZDM0ODhjYjFlYmRkMjg1MWJhMGNkOWJiNWNjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgQXVnIDcgMDM6MjY6NTYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmNcXG5pbmRleCA2MmQ0NjczNmUyNGI3Li5kMWFkMzE5ODZjZjJjIDEwMDY0NFxcbi0tLSBhL25ldC90bHMvdGxzX3N3LmNcXG4rKysgYi9uZXQvdGxzL3Rsc19zdy5jXFxuQEAgLTIwMTQsNiArMjAxNCwxMSBAQCBzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAgbG9mZl90ICpwcG9zLFxcbiBcXHRpZiAoZXJyIFxcdTAwM2MgMClcXG4gXFx0XFx0cmV0dXJuIGVycjtcXG4gXFxuK1xcdC8qIElmIGNyeXB0byBmYWlsZWQgdGhlIGNvbm5lY3Rpb24gaXMgYnJva2VuICovXFxuK1xcdGVyciA9IGN0eC1cXHUwMDNlYXN5bmNfd2FpdC5lcnI7XFxuK1xcdGlmIChlcnIpXFxuK1xcdFxcdGdvdG8gc3BsaWNlX3JlYWRfZW5kO1xcbitcXG4gXFx0aWYgKCFza2JfcXVldWVfZW1wdHkoXFx1MDAyNmN0eC1cXHUwMDNlcnhfbGlzdCkpIHtcXG4gXFx0XFx0c2tiID0gX19za2JfZGVxdWV1ZShcXHUwMDI2Y3R4LVxcdTAwM2VyeF9saXN0KTtcXG4gXFx0fSBlbHNlIHtcXG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXFxuaW5kZXggYTBlNzJlNDAyNzQ4Zi4uOWQzY2Q0ZmZmMDYyYiAxMDA2NDRcXG4tLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNcXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNcXG5AQCAtMjQsNiArMjQsNyBAQFxcbiAjaW5jbHVkZSBcXFwia3NlbGZ0ZXN0X2hhcm5lc3MuaFxcXCJcXG4gXFxuICNkZWZpbmUgVExTX1BBWUxPQURfTUFYX0xFTiAxNjM4NFxcbisjZGVmaW5lIFRMU19IRFJfTEVOIDVcXG4gI2RlZmluZSBTT0xfVExTIDI4MlxcbiBcXG4gc3RhdGljIGludCBmaXBzX2VuYWJsZWQ7XFxuQEAgLTI3MzIsMjggKzI3MzMsODMgQEAgVEVTVF9GKHRsc19lcnIsIGJhZF9yZWMpXFxuIFxcdEVYUEVDVF9FUShlcnJubywgRUFHQUlOKTtcXG4gfVxcbiBcXG4rLyogY2ZkIGNhcnJpZXMgYSBieXRlIHN0cmVhbSwgc28gb25lIHJlY3YoKSBjYW4gcmV0dXJuIHBhcnQgb2YgYVxcbisgKiByZWNvcmQuIFRha2UgdGhlIGZyYWdtZW50IGxlbmd0aCBmcm9tIHRoZSByZWNvcmQgaGVhZGVyIGFuZCB3YWl0XFxuKyAqIGZvciB0aGUgcmVtYWluZGVyLlxcbisgKi9cXG4rc3RhdGljIHZvaWQgdGxzX3NlbmRfYmFkX2F1dGgoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxcbitcXHRcXHRcXHQgICAgICBpbnQgZmQsIGludCBjZmQsIGludCBmZDIpXFxuK3tcXG4rXFx0Y2hhciBidWZbMTI4XTtcXG4rXFx0aW50IGxlbjtcXG4rXFxuK1xcdG1lbXJuZChidWYsIHNpemVvZihidWYpIC8gMik7XFxuK1xcdEFTU0VSVF9FUShzZW5kKGZkLCBidWYsIHNpemVvZihidWYpIC8gMiwgMCksIHNpemVvZihidWYpIC8gMik7XFxuK1xcbitcXHRBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiwgVExTX0hEUl9MRU4sIE1TR19XQUlUQUxMKSwgVExTX0hEUl9MRU4pO1xcbitcXG4rXFx0bGVuID0gKCh1bnNpZ25lZCBjaGFyKWJ1ZlszXSBcXHUwMDNjXFx1MDAzYyA4KSB8ICh1bnNpZ25lZCBjaGFyKWJ1Zls0XTtcXG4rXFx0QVNTRVJUX0dUKGxlbiwgMCk7XFxuK1xcdEFTU0VSVF9MRShsZW4sIChpbnQpc2l6ZW9mKGJ1ZikgLSBUTFNfSERSX0xFTik7XFxuK1xcbitcXHRBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiArIFRMU19IRFJfTEVOLCBsZW4sIE1TR19XQUlUQUxMKSwgbGVuKTtcXG4rXFxuK1xcdGJ1ZltUTFNfSERSX0xFTiArIGxlbiAtIDFdKys7XFxuK1xcbitcXHRBU1NFUlRfRVEoc2VuZChmZDIsIGJ1ZiwgVExTX0hEUl9MRU4gKyBsZW4sIDApLCBUTFNfSERSX0xFTiArIGxlbik7XFxuK31cXG4rXFxuIFRFU1RfRih0bHNfZXJyLCBiYWRfYXV0aClcXG4ge1xcbiBcXHRjaGFyIGJ1ZlsxMjhdO1xcbi1cXHRpbnQgbjtcXG4gXFxuIFxcdGlmIChzZWxmLVxcdTAwM2Vub3RscylcXG4gXFx0XFx0U0tJUChyZXR1cm4sIFxcXCJubyBUTFMgc3VwcG9ydFxcXCIpO1xcbiBcXG4tXFx0bWVtcm5kKGJ1Ziwgc2l6ZW9mKGJ1ZikgLyAyKTtcXG4tXFx0RVhQRUNUX0VRKHNlbmQoc2VsZi1cXHUwMDNlZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikgLyAyLCAwKSwgc2l6ZW9mKGJ1ZikgLyAyKTtcXG4tXFx0biA9IHJlY3Yoc2VsZi1cXHUwMDNlY2ZkLCBidWYsIHNpemVvZihidWYpLCAwKTtcXG4tXFx0RVhQRUNUX0dUKG4sIHNpemVvZihidWYpIC8gMik7XFxuK1xcdHRsc19zZW5kX2JhZF9hdXRoKF9tZXRhZGF0YSwgc2VsZi1cXHUwMDNlZmQsIHNlbGYtXFx1MDAzZWNmZCwgc2VsZi1cXHUwMDNlZmQyKTtcXG4gXFxuLVxcdGJ1ZltuIC0gMV0rKztcXG4tXFxuLVxcdEVYUEVDVF9FUShzZW5kKHNlbGYtXFx1MDAzZWZkMiwgYnVmLCBuLCAwKSwgbik7XFxuIFxcdEVYUEVDVF9FUShyZWN2KHNlbGYtXFx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XFxuIFxcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XFxuIFxcdEVYUEVDVF9FUShyZWN2KHNlbGYtXFx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XFxuIFxcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XFxuIH1cXG4gXFxuKy8qIEEgcmVjb3JkIHRoYXQgZGlkIG5vdCBhdXRoZW50aWNhdGUgYnJlYWtzIHRoZSBjb25uZWN0aW9uIGZvciBldmVyeVxcbisgKiByZWFkZXIsIHNwbGljZSBpbmNsdWRlZC5cXG4rICpcXG4rICogVGhlIHR3byBkZWNyeXB0IHBhdGhzIHJlYWNoIHRoYXQgcmVzdWx0IGRpZmZlcmVudGx5LiBBIHN5bmNocm9ub3VzXFxuKyAqIGRlY3J5cHQgbGVhdmVzIHRoZSByZWNvcmQgcGFyc2VkLCBzbyB0aGUgc3BsaWNlIHJlLXJ1bnMgdGhlIGRlY3J5cHRcXG4rICogYW5kIGZhaWxzIG9uIHRoZSByZWNvcmQgaXRzZWxmOyB0aGUgY3R4LVxcdTAwM2Vhc3luY193YWl0LmVyciBjaGVjayBpblxcbisgKiB0bHNfc3dfc3BsaWNlX3JlYWQoKSBpcyBub3Qgd2hhdCBzdG9wcyBpdC4gT25seSBhbiBhc3luY2hyb25vdXNcXG4rICogZGVjcnlwdCwgd2hpY2ggbmVlZHMgYSBUTFMgMS4yIHNvY2tldCBhbmQgYW4gQUVBRCBhZHZlcnRpc2luZ1xcbisgKiBDUllQVE9fQUxHX0FTWU5DLCBjb25zdW1lcyB0aGUgcmVjb3JkIGJlZm9yZSB0aGUgZmFpbHVyZSBpc1xcbisgKiByZWNvcmRlZCwgbGVhdmluZyB0aGF0IGNoZWNrIHRoZSBzb2xlIHJlYXNvbiB0aGUgc3BsaWNlIGZhaWxzLlxcbisgKi9cXG4rVEVTVF9GKHRsc19lcnIsIGJhZF9hdXRoX3NwbGljZSlcXG4re1xcbitcXHRjaGFyIGJ1ZlsxMjhdO1xcbitcXHRzc2l6ZV90IHJldDtcXG4rXFx0aW50IHBbMl07XFxuK1xcbitcXHRpZiAoc2VsZi1cXHUwMDNlbm90bHMpXFxuK1xcdFxcdFNLSVAocmV0dXJuLCBcXFwibm8gVExTIHN1cHBvcnRcXFwiKTtcXG4rXFxuK1xcdHRsc19zZW5kX2JhZF9hdXRoKF9tZXRhZGF0YSwgc2VsZi1cXHUwMDNlZmQsIHNlbGYtXFx1MDAzZWNmZCwgc2VsZi1cXHUwMDNlZmQyKTtcXG4rXFxuK1xcdEVYUEVDVF9FUShyZWN2KHNlbGYtXFx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XFxuK1xcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XFxuK1xcbitcXHRBU1NFUlRfR0UocGlwZShwKSwgMCk7XFxuK1xcbitcXHRyZXQgPSBzcGxpY2Uoc2VsZi1cXHUwMDNlY2ZkMiwgTlVMTCwgcFsxXSwgTlVMTCwgc2l6ZW9mKGJ1ZiksXFxuK1xcdFxcdCAgICAgU1BMSUNFX0ZfTk9OQkxPQ0spO1xcbitcXHRFWFBFQ1RfRVEocmV0LCAtMSk7XFxuK1xcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XFxuK1xcbitcXHRjbG9zZShwWzBdKTtcXG4rXFx0Y2xvc2UocFsxXSk7XFxuK31cXG4rXFxuIFRFU1RfRih0bHNfZXJyLCBiYWRfaW5fbGFyZ2VfcmVhZClcXG4ge1xcbiBcXHRjaGFyIHR4dFszXVs2NF07XFxuQEAgLTMwMDksNyArMzA2NSw2IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxcbiB7XFxuIFxcdGNvbnN0IF9fdTggKnJlYyA9IHJ4X2J1ZjtcXG4gXFx0c2l6ZV90IHRvdGFsX3BsYWludGV4dF9yeCA9IDA7XFxuLVxcdGNvbnN0IF9fdTggcmVjX2hlYWRlcl9sZW4gPSA1O1xcbiBcXG4gXFx0d2hpbGUgKHJlYyBcXHUwMDNjIHJ4X2J1ZiArIHJ4X2xlbikge1xcbiBcXHRcXHRfX3UxNiByZWNvcmRfcGF5bG9hZF9sZW47XFxuQEAgLTMwMjksNyArMzA4NCw3IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxcbiBcXG4gXFx0XFx0LyogUGxhaW50ZXh0IG11c3Qgbm90IGV4Y2VlZCB0aGUgc3BlY2lmaWVkIGxpbWl0ICovXFxuIFxcdFxcdEFTU0VSVF9MRShwbGFpbnRleHRfbGVuLCBtYXhfcGF5bG9hZF9sZW4pO1xcbi1cXHRcXHRyZWMgKz0gcmVjX2hlYWRlcl9sZW4gKyByZWNvcmRfcGF5bG9hZF9sZW47XFxuK1xcdFxcdHJlYyArPSBUTFNfSERSX0xFTiArIHJlY29yZF9wYXlsb2FkX2xlbjtcXG4gXFx0fVxcbiBcXG4gXFx0cmV0dXJuIHRvdGFsX3BsYWludGV4dF9yeDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDM6Mjc6MDAuMDA4OTE2NjM5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTU2NjE3MTQzNTEwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUTFNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0bHNfc3dfc3BsaWNlX3JlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVExTIHN1YnN5c3RlbSB0byBjaGVjayBmb3IgYXN5bmNocm9ub3VzIGNyeXB0byBlcnJvcnMgZHVyaW5nIHNwbGljZV9yZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljIChUTFMgc29ja2V0IG9wZXJhdGlvbnMpIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA3MjJkZTIxYWQ4OGM1ZDM0ODhjYjFlYmRkMjg1MWJhMGNkOWJiNWNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAwMzoyNjo1NiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX3N3LmMgYi9uZXQvdGxzL3Rsc19zdy5jXG5pbmRleCA2MmQ0NjczNmUyNGI3Li5kMWFkMzE5ODZjZjJjIDEwMDY0NFxuLS0tIGEvbmV0L3Rscy90bHNfc3cuY1xuKysrIGIvbmV0L3Rscy90bHNfc3cuY1xuQEAgLTIwMTQsNiArMjAxNCwxMSBAQCBzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAgbG9mZl90ICpwcG9zLFxuIFx0aWYgKGVyciBcdTAwM2MgMClcbiBcdFx0cmV0dXJuIGVycjtcbiBcbitcdC8qIElmIGNyeXB0byBmYWlsZWQgdGhlIGNvbm5lY3Rpb24gaXMgYnJva2VuICovXG4rXHRlcnIgPSBjdHgtXHUwMDNlYXN5bmNfd2FpdC5lcnI7XG4rXHRpZiAoZXJyKVxuK1x0XHRnb3RvIHNwbGljZV9yZWFkX2VuZDtcbitcbiBcdGlmICghc2tiX3F1ZXVlX2VtcHR5KFx1MDAyNmN0eC1cdTAwM2VyeF9saXN0KSkge1xuIFx0XHRza2IgPSBfX3NrYl9kZXF1ZXVlKFx1MDAyNmN0eC1cdTAwM2VyeF9saXN0KTtcbiBcdH0gZWxzZSB7XG5kaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXG5pbmRleCBhMGU3MmU0MDI3NDhmLi45ZDNjZDRmZmYwNjJiIDEwMDY0NFxuLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jXG4rKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmNcbkBAIC0yNCw2ICsyNCw3IEBAXG4gI2luY2x1ZGUgXCJrc2VsZnRlc3RfaGFybmVzcy5oXCJcbiBcbiAjZGVmaW5lIFRMU19QQVlMT0FEX01BWF9MRU4gMTYzODRcbisjZGVmaW5lIFRMU19IRFJfTEVOIDVcbiAjZGVmaW5lIFNPTF9UTFMgMjgyXG4gXG4gc3RhdGljIGludCBmaXBzX2VuYWJsZWQ7XG5AQCAtMjczMiwyOCArMjczMyw4MyBAQCBURVNUX0YodGxzX2VyciwgYmFkX3JlYylcbiBcdEVYUEVDVF9FUShlcnJubywgRUFHQUlOKTtcbiB9XG4gXG4rLyogY2ZkIGNhcnJpZXMgYSBieXRlIHN0cmVhbSwgc28gb25lIHJlY3YoKSBjYW4gcmV0dXJuIHBhcnQgb2YgYVxuKyAqIHJlY29yZC4gVGFrZSB0aGUgZnJhZ21lbnQgbGVuZ3RoIGZyb20gdGhlIHJlY29yZCBoZWFkZXIgYW5kIHdhaXRcbisgKiBmb3IgdGhlIHJlbWFpbmRlci5cbisgKi9cbitzdGF0aWMgdm9pZCB0bHNfc2VuZF9iYWRfYXV0aChzdHJ1Y3QgX190ZXN0X21ldGFkYXRhICpfbWV0YWRhdGEsXG4rXHRcdFx0ICAgICAgaW50IGZkLCBpbnQgY2ZkLCBpbnQgZmQyKVxuK3tcbitcdGNoYXIgYnVmWzEyOF07XG4rXHRpbnQgbGVuO1xuK1xuK1x0bWVtcm5kKGJ1Ziwgc2l6ZW9mKGJ1ZikgLyAyKTtcbitcdEFTU0VSVF9FUShzZW5kKGZkLCBidWYsIHNpemVvZihidWYpIC8gMiwgMCksIHNpemVvZihidWYpIC8gMik7XG4rXG4rXHRBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiwgVExTX0hEUl9MRU4sIE1TR19XQUlUQUxMKSwgVExTX0hEUl9MRU4pO1xuK1xuK1x0bGVuID0gKCh1bnNpZ25lZCBjaGFyKWJ1ZlszXSBcdTAwM2NcdTAwM2MgOCkgfCAodW5zaWduZWQgY2hhcilidWZbNF07XG4rXHRBU1NFUlRfR1QobGVuLCAwKTtcbitcdEFTU0VSVF9MRShsZW4sIChpbnQpc2l6ZW9mKGJ1ZikgLSBUTFNfSERSX0xFTik7XG4rXG4rXHRBU1NFUlRfRVEocmVjdihjZmQsIGJ1ZiArIFRMU19IRFJfTEVOLCBsZW4sIE1TR19XQUlUQUxMKSwgbGVuKTtcbitcbitcdGJ1ZltUTFNfSERSX0xFTiArIGxlbiAtIDFdKys7XG4rXG4rXHRBU1NFUlRfRVEoc2VuZChmZDIsIGJ1ZiwgVExTX0hEUl9MRU4gKyBsZW4sIDApLCBUTFNfSERSX0xFTiArIGxlbik7XG4rfVxuK1xuIFRFU1RfRih0bHNfZXJyLCBiYWRfYXV0aClcbiB7XG4gXHRjaGFyIGJ1ZlsxMjhdO1xuLVx0aW50IG47XG4gXG4gXHRpZiAoc2VsZi1cdTAwM2Vub3RscylcbiBcdFx0U0tJUChyZXR1cm4sIFwibm8gVExTIHN1cHBvcnRcIik7XG4gXG4tXHRtZW1ybmQoYnVmLCBzaXplb2YoYnVmKSAvIDIpO1xuLVx0RVhQRUNUX0VRKHNlbmQoc2VsZi1cdTAwM2VmZCwgYnVmLCBzaXplb2YoYnVmKSAvIDIsIDApLCBzaXplb2YoYnVmKSAvIDIpO1xuLVx0biA9IHJlY3Yoc2VsZi1cdTAwM2VjZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApO1xuLVx0RVhQRUNUX0dUKG4sIHNpemVvZihidWYpIC8gMik7XG4rXHR0bHNfc2VuZF9iYWRfYXV0aChfbWV0YWRhdGEsIHNlbGYtXHUwMDNlZmQsIHNlbGYtXHUwMDNlY2ZkLCBzZWxmLVx1MDAzZWZkMik7XG4gXG4tXHRidWZbbiAtIDFdKys7XG4tXG4tXHRFWFBFQ1RfRVEoc2VuZChzZWxmLVx1MDAzZWZkMiwgYnVmLCBuLCAwKSwgbik7XG4gXHRFWFBFQ1RfRVEocmVjdihzZWxmLVx1MDAzZWNmZDIsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApLCAtMSk7XG4gXHRFWFBFQ1RfRVEoZXJybm8sIEVCQURNU0cpO1xuIFx0RVhQRUNUX0VRKHJlY3Yoc2VsZi1cdTAwM2VjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpO1xuIFx0RVhQRUNUX0VRKGVycm5vLCBFQkFETVNHKTtcbiB9XG4gXG4rLyogQSByZWNvcmQgdGhhdCBkaWQgbm90IGF1dGhlbnRpY2F0ZSBicmVha3MgdGhlIGNvbm5lY3Rpb24gZm9yIGV2ZXJ5XG4rICogcmVhZGVyLCBzcGxpY2UgaW5jbHVkZWQuXG4rICpcbisgKiBUaGUgdHdvIGRlY3J5cHQgcGF0aHMgcmVhY2ggdGhhdCByZXN1bHQgZGlmZmVyZW50bHkuIEEgc3luY2hyb25vdXNcbisgKiBkZWNyeXB0IGxlYXZlcyB0aGUgcmVjb3JkIHBhcnNlZCwgc28gdGhlIHNwbGljZSByZS1ydW5zIHRoZSBkZWNyeXB0XG4rICogYW5kIGZhaWxzIG9uIHRoZSByZWNvcmQgaXRzZWxmOyB0aGUgY3R4LVx1MDAzZWFzeW5jX3dhaXQuZXJyIGNoZWNrIGluXG4rICogdGxzX3N3X3NwbGljZV9yZWFkKCkgaXMgbm90IHdoYXQgc3RvcHMgaXQuIE9ubHkgYW4gYXN5bmNocm9ub3VzXG4rICogZGVjcnlwdCwgd2hpY2ggbmVlZHMgYSBUTFMgMS4yIHNvY2tldCBhbmQgYW4gQUVBRCBhZHZlcnRpc2luZ1xuKyAqIENSWVBUT19BTEdfQVNZTkMsIGNvbnN1bWVzIHRoZSByZWNvcmQgYmVmb3JlIHRoZSBmYWlsdXJlIGlzXG4rICogcmVjb3JkZWQsIGxlYXZpbmcgdGhhdCBjaGVjayB0aGUgc29sZSByZWFzb24gdGhlIHNwbGljZSBmYWlscy5cbisgKi9cbitURVNUX0YodGxzX2VyciwgYmFkX2F1dGhfc3BsaWNlKVxuK3tcbitcdGNoYXIgYnVmWzEyOF07XG4rXHRzc2l6ZV90IHJldDtcbitcdGludCBwWzJdO1xuK1xuK1x0aWYgKHNlbGYtXHUwMDNlbm90bHMpXG4rXHRcdFNLSVAocmV0dXJuLCBcIm5vIFRMUyBzdXBwb3J0XCIpO1xuK1xuK1x0dGxzX3NlbmRfYmFkX2F1dGgoX21ldGFkYXRhLCBzZWxmLVx1MDAzZWZkLCBzZWxmLVx1MDAzZWNmZCwgc2VsZi1cdTAwM2VmZDIpO1xuK1xuK1x0RVhQRUNUX0VRKHJlY3Yoc2VsZi1cdTAwM2VjZmQyLCBidWYsIHNpemVvZihidWYpLCAwKSwgLTEpO1xuK1x0RVhQRUNUX0VRKGVycm5vLCBFQkFETVNHKTtcbitcbitcdEFTU0VSVF9HRShwaXBlKHApLCAwKTtcbitcbitcdHJldCA9IHNwbGljZShzZWxmLVx1MDAzZWNmZDIsIE5VTEwsIHBbMV0sIE5VTEwsIHNpemVvZihidWYpLFxuK1x0XHQgICAgIFNQTElDRV9GX05PTkJMT0NLKTtcbitcdEVYUEVDVF9FUShyZXQsIC0xKTtcbitcdEVYUEVDVF9FUShlcnJubywgRUJBRE1TRyk7XG4rXG4rXHRjbG9zZShwWzBdKTtcbitcdGNsb3NlKHBbMV0pO1xuK31cbitcbiBURVNUX0YodGxzX2VyciwgYmFkX2luX2xhcmdlX3JlYWQpXG4ge1xuIFx0Y2hhciB0eHRbM11bNjRdO1xuQEAgLTMwMDksNyArMzA2NSw2IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxuIHtcbiBcdGNvbnN0IF9fdTggKnJlYyA9IHJ4X2J1ZjtcbiBcdHNpemVfdCB0b3RhbF9wbGFpbnRleHRfcnggPSAwO1xuLVx0Y29uc3QgX191OCByZWNfaGVhZGVyX2xlbiA9IDU7XG4gXG4gXHR3aGlsZSAocmVjIFx1MDAzYyByeF9idWYgKyByeF9sZW4pIHtcbiBcdFx0X191MTYgcmVjb3JkX3BheWxvYWRfbGVuO1xuQEAgLTMwMjksNyArMzA4NCw3IEBAIHN0YXRpYyBzaXplX3QgcGFyc2VfdGxzX3JlY29yZHMoc3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLFxuIFxuIFx0XHQvKiBQbGFpbnRleHQgbXVzdCBub3QgZXhjZWVkIHRoZSBzcGVjaWZpZWQgbGltaXQgKi9cbiBcdFx0QVNTRVJUX0xFKHBsYWludGV4dF9sZW4sIG1heF9wYXlsb2FkX2xlbik7XG4tXHRcdHJlYyArPSByZWNfaGVhZGVyX2xlbiArIHJlY29yZF9wYXlsb2FkX2xlbjtcbitcdFx0cmVjICs9IFRMU19IRFJfTEVOICsgcmVjb3JkX3BheWxvYWRfbGVuO1xuIFx0fVxuIFxuIFx0cmV0dXJuIHRvdGFsX3BsYWludGV4dF9yeDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjI3OjAwLjAwODkxODY2OVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMTMyMTM5ODgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgVExTIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHRvdWNoZXMgYG5ldC90bHMvdGxzX3N3LmNgIGFuZCBhIHNlbGZ0ZXN0IGZpbGUuIFRoZSBtZWF0IG9mIHRoZSBjaGFuZ2UgaXMgaW5zaWRlIGB0bHNfc3dfc3BsaWNlX3JlYWRgLiBJdCBhcHBlYXJzIHRoZXkncmUgYWRkaW5nIGEgY3J1Y2lhbCBjaGVjay4gIFNwZWNpZmljYWxseSwgdGhleSdyZSBleGFtaW5pbmcgYGN0eC1cdTAwM2Vhc3luY193YWl0LmVycmAgYW5kIGJhaWxpbmcgb3V0IGlmIGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb24sIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UuICBJZiB0aGUgY3J5cHRvIGZhaWxzLCB0aGUgY29ubmVjdGlvbiBpcyBmdW5kYW1lbnRhbGx5IGJyb2tlbiwgc28gYWJvcnRpbmcgdGhlIHJlYWQgaXMgdGhlIGNvcnJlY3QgYmVoYXZpb3IuICBUaGlzIGlzIGEgY2xlYW4sIGxvZ2ljYWwgYWRkaXRpb24sIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudCBmb3IgdGhlIFRMUyBzdWJzeXN0ZW0uXG5cblNpbmNlIHRoaXMgbmV3IGVycm9yIHBhdGggaXMgaW50cm9kdWNlZCBpbiBgdGxzX3N3X3NwbGljZV9yZWFkYCwgdGhpcyBjbGVhcmx5IGludHJvZHVjZXMgYSBuZXcgY29kZSBwYXRoIHRoYXQncyBub3cgcmVhY2hhYmxlLCBtZWFuaW5nIGl0J3Mgd29ydGggYSBmdXp6aW5nIHJ1bi4gIEknbSBnb2luZyB0byB3YW50IHRvIHZlcmlmeSB0aGUgaW1wbGVtZW50YXRpb24gdG8ga25vdyBpZiBhbGwgZWRnZSBjYXNlcyBhcmUgaGFuZGxlZC5cblxuTm93LCBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIHRyaWdnZXIgdGhpcyBjb2RlIHBhdGguICBJJ2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGBuZXQvdGxzL0tjb25maWdgIHRvIHNlZSB0aGUgZGVwZW5kZW5jaWVzIG9mIHRoZSBgdGxzX3N3YCBkcml2ZXIuIEZyb20gdGhlcmUsIEknbGwgbmVlZCB0byBsb29rIGF0IGhvdyB0byBnZXQgdGhhdCBgYXN5bmNfd2FpdC5lcnJgIHRvIGJlIHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU3NiwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjI5OjExLjMzMDMyMDYyNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjYzNzQwNzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBUTFNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3Rscy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90bHMvS2NvbmZpZy00LSNcXG5uZXQvdGxzL0tjb25maWc6NTpjb25maWcgVExTXFxubmV0L3Rscy9LY29uZmlnLTYtXFx0dHJpc3RhdGUgXFxcIlRyYW5zcG9ydCBMYXllciBTZWN1cml0eSBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3Rscy9LY29uZmlnLTE4LVxcbm5ldC90bHMvS2NvbmZpZzoxOTpjb25maWcgVExTX0RFVklDRVxcbm5ldC90bHMvS2NvbmZpZy0yMC1cXHRib29sIFxcXCJUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgSFcgb2ZmbG9hZFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDM6Mjk6MTIuNTk0MDY3NzM3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIyNzExNjk1NDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIHRoZSBjb25maWd1cmF0aW9uIGlzIGRlZmluaXRlbHkgbGVhbmluZyB0b3dhcmRzIGBUTFNgLiBNeSBpbW1lZGlhdGUgcmVhY3Rpb24gaXMgdG8gZGVsdmUgZGVlcGVyLiBJJ20gbm90IGp1c3QgZ29pbmcgdG8gdGFrZSB0aGlzIGF0IGZhY2UgdmFsdWUuIFdoYXQgYXJlIHRoZSBzdXBwb3J0aW5nIGxpYnJhcmllcyBhbmQgb3RoZXIgY29tcG9uZW50cyB0aGlzIGNvbmZpZ3VyYXRpb24gaXMgY29udGluZ2VudCBvbj8gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgYWxsIHRoZSByZWxhdGVkIGRlcGVuZGVuY2llcyDigJMgbm90IGp1c3QgdGhlIG9idmlvdXMgb25lcywgYnV0IHRoZSBwb3RlbnRpYWxseSBzdWJ0bGUgb25lcyB0aGF0IG1pZ2h0IGJlIGx1cmtpbmcuIFRoaXMgaXNuJ3QganVzdCBhYm91dCB2ZXJpZnlpbmcgdGhlIG9idmlvdXM7IGl04oCZcyBhYm91dCBhIGNvbXByZWhlbnNpdmUgYXNzZXNzbWVudC4gSSBuZWVkIHRvIGJlIHRoaW5raW5nIGFib3V0IHZlcnNpb24gY29tcGF0aWJpbGl0eSwgcG90ZW50aWFsIGNvbmZsaWN0cywgYW5kIGFueSBrbm93biBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMgYXNzb2NpYXRlZCB3aXRoICphbnkqIGRlcGVuZGVuY3kgaW4gdGhlIGNoYWluLiBUaGlzIGluaXRpYWwgYXNzZXNzbWVudCBjb3VsZCBiZSBjcml0aWNhbCwgc28gbGV04oCZcyBnZXQgZGlnZ2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI3MiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjM2OjE1LjMwNTc2NTc2N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1NzQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC90bHMvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBUTFMgY29uZmlndXJhdGlvblxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0Y29uZmlnIFRMU1xcbiAgIDY6XFx0XFx0dHJpc3RhdGUgXFxcIlRyYW5zcG9ydCBMYXllciBTZWN1cml0eSBzdXBwb3J0XFxcIlxcbiAgIDc6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuICAgODpcXHRcXHRzZWxlY3QgQ1JZUFRPXFxuICAgOTpcXHRcXHRzZWxlY3QgQ1JZUFRPX0FFU1xcbiAgMTA6XFx0XFx0c2VsZWN0IENSWVBUT19HQ01cXG4gIDExOlxcdFxcdHNlbGVjdCBORVRfU09DS19NU0dcXG4gIDEyOlxcdFxcdGRlZmF1bHQgblxcbiAgMTM6XFx0XFx0aGVscFxcbiAgMTQ6XFx0XFx0RW5hYmxlIGtlcm5lbCBzdXBwb3J0IGZvciBUTFMgcHJvdG9jb2wuIFRoaXMgYWxsb3dzIHN5bW1ldHJpY1xcbiAgMTU6XFx0XFx0ZW5jcnlwdGlvbiBoYW5kbGluZyBvZiB0aGUgVExTIHByb3RvY29sIHRvIGJlIGRvbmUgaW4ta2VybmVsLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRcXHRJZiB1bnN1cmUsIHNheSBOLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgVExTX0RFVklDRVxcbiAgMjA6XFx0XFx0Ym9vbCBcXFwiVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IEhXIG9mZmxvYWRcXFwiXFxuICAyMTpcXHRcXHRkZXBlbmRzIG9uIFRMU1xcbiAgMjI6XFx0XFx0c2VsZWN0IFNLQl9ERUNSWVBURURcXG4gIDIzOlxcdFxcdHNlbGVjdCBTT0NLX1ZBTElEQVRFX1hNSVRcXG4gIDI0OlxcdFxcdHNlbGVjdCBTT0NLX1JYX1FVRVVFX01BUFBJTkdcXG4gIDI1OlxcdFxcdGRlZmF1bHQgblxcbiAgMjY6XFx0XFx0aGVscFxcbiAgMjc6XFx0XFx0RW5hYmxlIGtlcm5lbCBzdXBwb3J0IGZvciBIVyBvZmZsb2FkIG9mIHRoZSBUTFMgcHJvdG9jb2wuXFxuICAyODpcXHRcXG4gIDI5OlxcdFxcdElmIHVuc3VyZSwgc2F5IE4uXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjM2OjE1LjMwNTgyMzExN1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxNDE4MzA2MDMxNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gZGVlcCBpbiB0aGUgd2VlZHMgb2YgbmV0d29yayBzdGFjayBjb25maWd1cmF0aW9uOlxuXG4qKkRpdmluZyBpbnRvIFRMUyBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgc28gSSdtIHdvcmtpbmcgb24gdGhlIFRMUyBjb25maWd1cmF0aW9uIOKAkyBpdCdzIGNydWNpYWwsIG9idmlvdXNseS4gTXkgbWluZCBpbW1lZGlhdGVseSBmbGFncyB0aGF0IHRoZSBUTFMgc2V0dGluZ3MgYXJlIHJlbGlhbnQgb24gdGhlIElORVQgc3RhY2s7IHRoZSBkZXBlbmRlbmN5IGlzIGltcG9ydGFudCB0byBiZWFyIGluIG1pbmQuIExldCdzIGRpZyBpbnRvIHRoZSBkZXRhaWxzOiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byB0cmFjZSB0aGUgZGF0YSBmbG93LiBUaGUgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGB0bHNfc3dfc3BsaWNlX3JlYWRgIGZ1bmN0aW9uIHdpdGhpbiBgbmV0L3Rscy90bHNfc3cuY2AuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3BsaWNpbmcgaGFwcGVucyBpbiBzb2Z0d2FyZS4gVGhhdCdzIHdoZXJlIHRoZSBtYWdpYyBzdGFydHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4MDQsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjM5OjQ5LjQ4ODg4NjQ2M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjQxNTA2NzEyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInRsc19zd19zcGxpY2VfcmVhZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvdGxzL3Rsc19zdy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90bHMvdGxzX3N3LmM9MTgwNj1pbnQgdGxzX3N3X3JlY3Ztc2coc3RydWN0IHNvY2sgKnNrLFxcbi0tXFxubmV0L3Rscy90bHNfc3cuYy0xOTk4LVxcbm5ldC90bHMvdGxzX3N3LmM6MTk5OTpzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCAgbG9mZl90ICpwcG9zLFxcbm5ldC90bHMvdGxzX3N3LmMtMjAwMC1cXHRcXHRcXHQgICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMzozOTo1MC43MzAzOTcwNDVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxODcxMzEzNjc2NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCdzIFNjb3BlKipcblxuT2theSwgc28gdGhlIHByaW1hcnkgZnVuY3Rpb24gb2YgaW50ZXJlc3QgaGVyZSBpcyBgdGxzX3N3X3NwbGljZV9yZWFkYC4gSXMgdGhlcmUgYW55dGhpbmcgZWxzZSBJIG5lZWQgdG8gY29uc2lkZXI/IFRoZSBwYXRjaCwgYXMgZmFyIGFzIEkgY2FuIHNlZSwgZGlyZWN0bHkgbW9kaWZpZXMgYHRsc19zd19zcGxpY2VfcmVhZGAuIExldCdzIGp1c3QgY29uZmlybSB0aGF0IHRoaXMgaXMgdGhlIHNvbGUgZnVuY3Rpb24gaW1wYWN0ZWQgd2l0aGluIHRoZSBrZXJuZWwgY29kZSBpdHNlbGYuIENoZWNraW5nLi4uIHllcCwgaXQncyBqdXN0IGB0bHNfc3dfc3BsaWNlX3JlYWRgIGluIGBuZXQvdGxzL3Rsc19zdy5jYC4gVGhlIHJlbWFpbmluZyBjaGFuZ2VzIHNlZW0gY29uZmluZWQgdG8gdGhlIHNlbGYtdGVzdHMgaW4gYHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuY2AuIFRoYXQncyBnb29kOyBpdCBrZWVwcyB0aGUgYW5hbHlzaXMgZm9jdXNlZC5cblxuTm93LCBsZXQncyBuYWlsIGRvd24gdGhlIHNwZWNpZmljcyBvZiBgdGxzX3N3X3NwbGljZV9yZWFkYC4gSSBuZWVkIHRvIHJldmlldyBpdHMgc2lnbmF0dXJlIGFuZCBkZXRlcm1pbmUgaWYgaXQgaGFzIGFueSB1bnVzdWFsIHByb3BlcnRpZXMsIGxpa2UgYmVpbmcgZGVjbGFyZWQgYXMgc3RhdGljLiBMZXQncyBzZWUuLi4gYHNzaXplX3QgdGxzX3N3X3NwbGljZV9yZWFkKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGxvZmZfdCAqcHBvcywgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwgc2l6ZV90IGxlbiwgdW5zaWduZWQgaW50IGZsYWdzKWAuIEdvdCBpdC4gQW5kIG5vLCBpdCdzICpub3QqIHN0YXRpYywgc28gaXQncyBsaWtlbHkgZWl0aGVyIGV4cG9ydGVkIG9yIHVzZWQgYXMgYSBjYWxsYmFjayBmdW5jdGlvbi4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggb2YgdGhvc2UgaXQgaXMgc29vbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE1MSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwMzo0Mjo1Ny44NjE3Njc3MjJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMDY1MTE5OTQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidGxzX3N3X3NwbGljZV9yZWFkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90bHMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90bHMvdGxzLmg9MTY1PWJvb2wgdGxzX3N3X3NvY2tfaXNfcmVhZGFibGUoc3RydWN0IHNvY2sgKnNrKTtcXG5uZXQvdGxzL3Rscy5oOjE2Njpzc2l6ZV90IHRsc19zd19zcGxpY2VfcmVhZChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBsb2ZmX3QgKnBwb3MsXFxubmV0L3Rscy90bHMuaC0xNjctXFx0XFx0XFx0ICAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSxcXG4tLVxcbm5ldC90bHMvdGxzX21haW4uYz05NDA9c3RhdGljIHZvaWQgYnVpbGRfcHJvdG9fb3BzKHN0cnVjdCBwcm90b19vcHMgb3BzW1RMU19OVU1fQ09ORklHXVtUTFNfTlVNX0NPTkZJR10sXFxuLS1cXG5uZXQvdGxzL3Rsc19tYWluLmMtOTQ4LVxcdG9wc1tUTFNfQkFTRV1bVExTX1NXICBdID0gb3BzW1RMU19CQVNFXVtUTFNfQkFTRV07XFxubmV0L3Rscy90bHNfbWFpbi5jOjk0OTpcXHRvcHNbVExTX0JBU0VdW1RMU19TVyAgXS5zcGxpY2VfcmVhZFxcdD0gdGxzX3N3X3NwbGljZV9yZWFkO1xcbm5ldC90bHMvdGxzX21haW4uYy05NTAtXFx0b3BzW1RMU19CQVNFXVtUTFNfU1cgIF0ucG9sbFxcdFxcdD0gdGxzX3NrX3BvbGw7XFxuLS1cXG5uZXQvdGxzL3Rsc19tYWluLmMtOTUzLVxcdG9wc1tUTFNfU1cgIF1bVExTX1NXICBdID0gb3BzW1RMU19TVyAgXVtUTFNfQkFTRV07XFxubmV0L3Rscy90bHNfbWFpbi5jOjk1NDpcXHRvcHNbVExTX1NXICBdW1RMU19TVyAgXS5zcGxpY2VfcmVhZFxcdD0gdGxzX3N3X3NwbGljZV9yZWFkO1xcbm5ldC90bHMvdGxzX21haW4uYy05NTUtXFx0b3BzW1RMU19TVyAgXVtUTFNfU1cgIF0ucG9sbFxcdFxcdD0gdGxzX3NrX3BvbGw7XFxuLS1cXG5uZXQvdGxzL3Rsc19zdy5jPTE4MDY9aW50IHRsc19zd19yZWN2bXNnKHN0cnVjdCBzb2NrICpzayxcXG4tLVxcbm5ldC90bHMvdGxzX3N3LmMtMTk5OC1cXG5uZXQvdGxzL3Rsc19zdy5jOjE5OTk6c3NpemVfdCB0bHNfc3dfc3BsaWNlX3JlYWQoc3RydWN0IHNvY2tldCAqc29jaywgIGxvZmZfdCAqcHBvcyxcXG5uZXQvdGxzL3Rsc19zdy5jLTIwMDAtXFx0XFx0XFx0ICAgc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDM6NDI6NTkuMDY4Mjg3NTI2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYwNjk1MzQ4MjM0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIENhbmRpZGF0ZSBBc3Nlc3NtZW50OiBUTFMgYHNwbGljZV9yZWFkYCBGaXgqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIHRhcmdldHMgYHRsc19zd19zcGxpY2VfcmVhZGAsIHdoaWNoIGlzIHVzZWQgYXMgYSBjYWxsYmFjayBpbiBgcHJvdG9fb3BzYCBmb3IgdGhlIGBzcGxpY2VfcmVhZGAgb3BlcmF0aW9uLiBUaGF0J3MgdGhlIGtleSBzeW1ib2wgaGVyZSwgdGhlIG9uZSBJIG5lZWQgdG8gZm9jdXMgb24uXG5cbkxldCBtZSBxdWlja2x5IG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGNvbmZpZ3MgdGhhdCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQuIGBUTFNgIGlzIGRlZmluaXRlbHkgYSBnaXZlbiwgYW5kIGBJTkVUYCBpcyBsaWtlbHkgZW5hYmxlZCBhcyB3ZWxsLCBidXQgd2hhdCBhYm91dCBjcnlwdG8tcmVsYXRlZCBjb25maWdzPyBUaGUgS2NvbmZpZyBmaWxlIGhhcyBzb21lIHNlbGVjdCBzdGF0ZW1lbnRzOiBgc2VsZWN0IENSWVBUT2AsIGBzZWxlY3QgQ1JZUFRPX0FFU2AsIGFuZCBgc2VsZWN0IENSWVBUT19HQ01gLiBTbyB0aG9zZSBhcmUgYXV0b21hdGljYWxseSBzZWxlY3RlZC4gR29vZCwgdGhhdCBzaW1wbGlmaWVzIHRoaW5ncy5cblxuVGhlIGNvcmUgb2YgdGhlIHBhdGNoIHNlZW1zIHRvIGFkZHJlc3MgYSBzaXR1YXRpb24gd2hlcmUgYSBjcnlwdG8gZmFpbHVyZSBkdXJpbmcgVExTIGF1dGhlbnRpY2F0aW9uIGxlYXZlcyB0aGUgY29ubmVjdGlvbiBpbiBhIGJyb2tlbiBzdGF0ZSwgYnV0IGBzcGxpY2VfcmVhZGAgZG9lc24ndCBkZXRlY3QgdGhlIGVycm9yLiBUaGUgdGVzdCBjYXNlIHV0aWxpemVzIGBzcGxpY2VgIG9uIGEgVExTIHNvY2tldCBhZnRlciBhIGJhZCBhdXRoZW50aWNhdGlvbiwgc2hvd2luZyB0aGUgYnVnLiBUaGUgcHJvcG9zZWQgZml4IGludm9sdmVzIGNoZWNraW5nIGBjdHgtXHUwMDNlYXN5bmNfd2FpdC5lcnJgIHdpdGhpbiBgdGxzX3N3X3NwbGljZV9yZWFkYC5cblxuU28sIGl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc3BlY2lmaWNhbGx5IGluIHRoZSBUTFMgc29ja2V0IG9wZXJhdGlvbnMsIHdoaWNoIGFyZSByZWFjaGFibGUga2VybmVsIGxvZ2ljLiBJIHNob3VsZCBkZWZpbml0ZWx5IGZ1enogdGhpcy5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbGwgZG91YmxlLWNoZWNrIGlmIHRoZSBwYXRjaCB0b3VjaGVzIGFueSBvdGhlciBmdW5jdGlvbnMuIE5vcGUsIGl0J3MganVzdCB0aGUgb25lIGZ1bmN0aW9uLCBgdGxzX3N3X3NwbGljZV9yZWFkYCB3aXRoaW4gYG5ldC90bHMvdGxzX3N3LmNgLlxuXG5CYXNlZCBvbiB0aGlzIGFuYWx5c2lzLCBJJ20gY29uZmlkZW50IGluIG15IGFzc2Vzc21lbnQ6XG5cbmBgYGpzb25cbntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGxzX3N3X3NwbGljZV9yZWFkXCJcbiAgXSxcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRMU1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUTFMgc3Vic3lzdGVtIHRvIGNoZWNrIGZvciBhc3luY2hyb25vdXMgY3J5cHRvIGVycm9ycyBkdXJpbmcgc3BsaWNlX3JlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMgKFRMUyBzb2NrZXQgb3BlcmF0aW9ucykgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCJcbn1cbmBgYFxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTUwLCJPdXRwdXRUb2tlbnMiOjgyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDAzOjUzOjA2LjAyMTc3MzYzNloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1ODU3NDY5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVExTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidGxzX3N3X3NwbGljZV9yZWFkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRMUyBzdWJzeXN0ZW0gdG8gY2hlY2sgZm9yIGFzeW5jaHJvbm91cyBjcnlwdG8gZXJyb3JzIGR1cmluZyBzcGxpY2VfcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYyAoVExTIHNvY2tldCBvcGVyYXRpb25zKSBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJUTFNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0bHNfc3dfc3BsaWNlX3JlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVExTIHN1YnN5c3RlbSB0byBjaGVjayBmb3IgYXN5bmNocm9ub3VzIGNyeXB0byBlcnJvcnMgZHVyaW5nIHNwbGljZV9yZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljIChUTFMgc29ja2V0IG9wZXJhdGlvbnMpIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[1] Phase: Succeeded StartedAt: 2026-08-07 03:53:16 +0000 UTC FinishedAt: 2026-08-07 03:53:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-07 03:53:16 +0000 UTC FinishedAt: 2026-08-07 03:53:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2] Phase: Succeeded StartedAt: 2026-08-07 03:53:16 +0000 UTC FinishedAt: 2026-08-07 07:35:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-07 03:53:16 +0000 UTC FinishedAt: 2026-08-07 07:35:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-07 03:53:16 +0000 UTC FinishedAt: 2026-08-07 03:53:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-07 03:53:16 +0000 UTC FinishedAt: 2026-08-07 03:53:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowwkb9q/series-workflowwkb9q-convert-artifact-232632214/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-07 03:53:27 +0000 UTC FinishedAt: 2026-08-07 04:10:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-07 03:53:27 +0000 UTC FinishedAt: 2026-08-07 04:10:11 +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:*52548f2b-939d-4666-96b5-00ff8f860bfe,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-workflowwkb9q/series-workflowwkb9q-convert-artifact-232632214/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": "b82aea7d-28af-4a00-9b62-28087810f2f5", "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-workflowwkb9q/series-workflowwkb9q-build-action-918085420/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-07 03:53:27 +0000 UTC FinishedAt: 2026-08-07 04:10:01 +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:*52548f2b-939d-4666-96b5-00ff8f860bfe,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-workflowwkb9q/series-workflowwkb9q-convert-artifact-232632214/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": "b82aea7d-28af-4a00-9b62-28087810f2f5", "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-workflowwkb9q/series-workflowwkb9q-build-action-918085420/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-07 04:10:11 +0000 UTC FinishedAt: 2026-08-07 04:10:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-07 04:10:11 +0000 UTC FinishedAt: 2026-08-07 04:10:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-07 04:10:11 +0000 UTC FinishedAt: 2026-08-07 04:10:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-07 04:10:11 +0000 UTC FinishedAt: 2026-08-07 04:10:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowwkb9q/series-workflowwkb9q-convert-artifact-109735977/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-07 04:10:21 +0000 UTC FinishedAt: 2026-08-07 04:12:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-07 04:10:21 +0000 UTC FinishedAt: 2026-08-07 04:12:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b82aea7d-28af-4a00-9b62-28087810f2f5,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-workflowwkb9q/series-workflowwkb9q-build-action-918085420/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-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-07 04:12:25 +0000 UTC FinishedAt: 2026-08-07 04:12:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-07 04:12:25 +0000 UTC FinishedAt: 2026-08-07 04:12:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-07 04:12:25 +0000 UTC FinishedAt: 2026-08-07 04:30:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-07 04:12:25 +0000 UTC FinishedAt: 2026-08-07 04:30:10 +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:*52548f2b-939d-4666-96b5-00ff8f860bfe,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-workflowwkb9q/series-workflowwkb9q-convert-artifact-109735977/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": "757dcb04-3429-4bb1-9909-01351ffd22e9", "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-workflowwkb9q/series-workflowwkb9q-build-action-1966191877/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-07 04:12:25 +0000 UTC FinishedAt: 2026-08-07 04:30:00 +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:*52548f2b-939d-4666-96b5-00ff8f860bfe,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-workflowwkb9q/series-workflowwkb9q-convert-artifact-109735977/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": "757dcb04-3429-4bb1-9909-01351ffd22e9", "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-workflowwkb9q/series-workflowwkb9q-build-action-1966191877/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-07 04:30:10 +0000 UTC FinishedAt: 2026-08-07 04:30:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-07 04:30:10 +0000 UTC FinishedAt: 2026-08-07 04:30:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-07 04:30:10 +0000 UTC FinishedAt: 2026-08-07 04:32:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-07 04:30:10 +0000 UTC FinishedAt: 2026-08-07 04:31:52 +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:*757dcb04-3429-4bb1-9909-01351ffd22e9,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-workflowwkb9q/series-workflowwkb9q-build-action-1966191877/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-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-07 04:32:02 +0000 UTC FinishedAt: 2026-08-07 07:35:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-07 04:32:02 +0000 UTC FinishedAt: 2026-08-07 07:35:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"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:*b82aea7d-28af-4a00-9b62-28087810f2f5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*757dcb04-3429-4bb1-9909-01351ffd22e9,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-workflowwkb9q/series-workflowwkb9q-build-action-918085420/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-workflowwkb9q/series-workflowwkb9q-build-action-1966191877/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-07 04:32:02 +0000 UTC FinishedAt: 2026-08-07 04:32:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-07 04:32:02 +0000 UTC FinishedAt: 2026-08-07 04:32:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"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-workflowwkb9q/series-workflowwkb9q-convert-artifact-1456155774/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-07 04:32:02 +0000 UTC FinishedAt: 2026-08-07 04:32:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-07 04:32:02 +0000 UTC FinishedAt: 2026-08-07 04:32:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-07 04:32:02 +0000 UTC FinishedAt: 2026-08-07 04:32:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-07 04:32:12 +0000 UTC FinishedAt: 2026-08-07 07:35:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwkb9q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tls_sw_splice_read"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"594d905195024b228c962627ae5ae7c17bd582a4","config_name":"upstream-apparmor-kasan.config","enable_configs":["TLS"],"series_id":"8f816f1f-0062-45be-bd74-56d7b85f39a0","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-07 04:32:12 +0000 UTC FinishedAt: 2026-08-07 07:34:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b82aea7d-28af-4a00-9b62-28087810f2f5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*757dcb04-3429-4bb1-9909-01351ffd22e9,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-workflowwkb9q/series-workflowwkb9q-build-action-918085420/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-workflowwkb9q/series-workflowwkb9q-build-action-1966191877/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-workflowwkb9q/series-workflowwkb9q-convert-artifact-1456155774/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,}