Name: series-workflow45lzk Phase: Succeeded StartedAt: 2026-08-04 10:54:24 +0000 UTC FinishedAt: 2026-08-04 15:03:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[0] Phase: Succeeded StartedAt: 2026-08-04 10:54:24 +0000 UTC FinishedAt: 2026-08-04 11:21:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[0].run-triage Phase: Succeeded StartedAt: 2026-08-04 10:54:24 +0000 UTC FinishedAt: 2026-08-04 11:21:01 +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": "2a33516f9ef59ad11844d4fc152f889449b5daf3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MPTCP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2a33516f9ef59ad11844d4fc152f889449b5daf3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MPTCP" ], "series_id": "aa77127f-55e6-4764-a94f-6bcc2a4ef31f" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mptcp_subflow_reqsk_clone" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDExOjIwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01QVENQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCB0byBoYW5kbGUgY2xvbmluZyBvZiBNUFRDUCBzdWJmbG93IHJlcXVlc3Qgc29ja2V0cywgZml4aW5nIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlLiBUaGlzIGlzIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmsgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YjVkMzBlNTZkNjFkNWE3NGQ4NzQ1OTdlMDNjYWE0YTA2OGUwODQwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAxMToyMDoxOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9tcHRjcC5oIGIvaW5jbHVkZS9uZXQvbXB0Y3AuaFxuaW5kZXggNzFiOWZjNWE1Nzk2My4uNTFkNGIwMmY1YWZiMiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L21wdGNwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L21wdGNwLmhcbkBAIC0yMjMsNiAmIzQzOzIyMyw3IEBAIGludCBtcHRjcF9zdWJmbG93X2luaXRfY29va2llX3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG4gc3RydWN0IHJlcXVlc3Rfc29jayAqbXB0Y3Bfc3ViZmxvd19yZXFza19hbGxvYyhjb25zdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrX29wcyAqb3BzLFxuIFx0XHRcdFx0XHQgICAgICAgc3RydWN0IHNvY2sgKnNrX2xpc3RlbmVyLFxuIFx0XHRcdFx0XHQgICAgICAgYm9vbCBhdHRhY2hfbGlzdGVuZXIpO1xuJiM0Mzt2b2lkIG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmUoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKTtcbiBcbiBfX2JlMzIgbXB0Y3BfZ2V0X3Jlc2V0X29wdGlvbihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbiBcbkBAIC0zMDksNiAmIzQzOzMxMCwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCByZXF1ZXN0X3NvY2sgKm1wdGNwX3N1YmZsb3dfcmVxc2tfYWxsb2MoY29uc3Qgc3RydWN0IHJlcXVlc1xuIFx0cmV0dXJuIE5VTEw7XG4gfVxuIFxuJiM0MztzdGF0aWMgaW5saW5lIHZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4mIzQzO3tcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW5saW5lIF9fYmUzMiBtcHRjcF9yZXNldF9vcHRpb24oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikgIHsgcmV0dXJuIGh0b25sKDB1KTsgfVxuIFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBtcHRjcF9hY3RpdmVfZGV0ZWN0X2JsYWNraG9sZShzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgZXhwaXJlZCkgeyB9XG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbmluZGV4IDU2OTAyYmJhNTQ4MzguLmYzZWY5YzE1YWMzNTkgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXG5AQCAtMTcsNiAmIzQzOzE3LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NuZXQvaW5ldF90aW1ld2FpdF9zb2NrLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQvaXAuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC9yb3V0ZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY25ldC9tcHRjcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3RjcF9zdGF0ZXMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC94ZnJtLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQvdGNwLmhcdTAwM2VcbkBAIC05NDYsOCAmIzQzOzk0NywxMyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG4gXHQvKiBXZSBuZWVkIG5vdCBhY3F1aXJlIGZhc3RvcGVucS1cdTAwM2Vsb2NrXG4gXHQgKiBiZWNhdXNlIHRoZSBjaGlsZCBzb2NrZXQgaXMgbG9ja2VkIGluIGluZXRfY3NrX2xpc3Rlbl9zdG9wKCkuXG4gXHQgKi9cbi1cdGlmIChzay1cdTAwM2Vza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCBcdTAwMjZcdTAwMjYgdGNwX3JzayhucmVxKS1cdTAwM2V0Zm9fbGlzdGVuZXIpXG4tXHRcdHJjdV9hc3NpZ25fcG9pbnRlcih0Y3Bfc2sobnJlcS1cdTAwM2VzayktXHUwMDNlZmFzdG9wZW5fcnNrLCBucmVxKTtcbiYjNDM7XHRpZiAoc2stXHUwMDNlc2tfcHJvdG9jb2wgPT0gSVBQUk9UT19UQ1ApIHtcbiYjNDM7XHRcdGlmICh0Y3BfcnNrKG5yZXEpLVx1MDAzZXRmb19saXN0ZW5lcilcbiYjNDM7XHRcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKHRjcF9zayhucmVxLVx1MDAzZXNrKS1cdTAwM2VmYXN0b3Blbl9yc2ssIG5yZXEpO1xuJiM0MztcbiYjNDM7XHRcdGlmIChyc2tfaXNfbXB0Y3AocmVxKSlcbiYjNDM7XHRcdFx0bXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShucmVxKTtcbiYjNDM7XHR9XG4gXG4gXHRyZXR1cm4gbnJlcTtcbiB9XG5kaWZmIC0tZ2l0IGEvbmV0L21wdGNwL3N1YmZsb3cuYyBiL25ldC9tcHRjcC9zdWJmbG93LmNcbmluZGV4IDhlMzg2ODk5Y2ViOTguLjFiNmFhNWU4Y2ZkNzMgMTAwNjQ0XG4tLS0gYS9uZXQvbXB0Y3Avc3ViZmxvdy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbXB0Y3Avc3ViZmxvdy5jXG5AQCAtNDcsNiAmIzQzOzQ3LDE0IEBAIHN0YXRpYyB2b2lkIHN1YmZsb3dfcmVxX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuIFx0bXB0Y3BfdG9rZW5fZGVzdHJveV9yZXF1ZXN0KHJlcSk7XG4gfVxuIFxuJiM0Mzt2b2lkIG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmUoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IG1wdGNwX3N1YmZsb3dfcmVxdWVzdF9zb2NrICpzdWJmbG93X3JlcSA9IG1wdGNwX3N1YmZsb3dfcnNrKHJlcSk7XG4mIzQzO1xuJiM0MztcdGlmIChzdWJmbG93X3JlcS1cdTAwM2Vtc2spXG4mIzQzO1x0XHRzb2NrX2hvbGQoKHN0cnVjdCBzb2NrICopc3ViZmxvd19yZXEtXHUwMDNlbXNrKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgdm9pZCBzdWJmbG93X2dlbmVyYXRlX2htYWModTY0IGtleTEsIHU2NCBrZXkyLCB1MzIgbm9uY2UxLCB1MzIgbm9uY2UyLFxuIFx0XHRcdFx0ICB2b2lkICpobWFjKVxuIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVBUQ1AmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZnVuY3Rpb24gYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRvIGhhbmRsZSBjbG9uaW5nIG9mIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUuIFRoaXMgaXMgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDViNWQzMGU1NmQ2MWQ1YTc0ZDg3NDU5N2UwM2NhYTRhMDY4ZTA4NDAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyA0IDExOjIwOjE4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbXB0Y3AuaCBiL2luY2x1ZGUvbmV0L21wdGNwLmgKaW5kZXggNzFiOWZjNWE1Nzk2My4uNTFkNGIwMmY1YWZiMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbXB0Y3AuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL25ldC9tcHRjcC5oCkBAIC0yMjMsNiAmIzQzOzIyMyw3IEBAIGludCBtcHRjcF9zdWJmbG93X2luaXRfY29va2llX3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCiBzdHJ1Y3QgcmVxdWVzdF9zb2NrICptcHRjcF9zdWJmbG93X3JlcXNrX2FsbG9jKGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2tfb3BzICpvcHMsCiAJCQkJCSAgICAgICBzdHJ1Y3Qgc29jayAqc2tfbGlzdGVuZXIsCiAJCQkJCSAgICAgICBib29sIGF0dGFjaF9saXN0ZW5lcik7CiYjNDM7dm9pZCBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSk7CiAKIF9fYmUzMiBtcHRjcF9nZXRfcmVzZXRfb3B0aW9uKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpOwogCkBAIC0zMDksNiAmIzQzOzMxMCwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCByZXF1ZXN0X3NvY2sgKm1wdGNwX3N1YmZsb3dfcmVxc2tfYWxsb2MoY29uc3Qgc3RydWN0IHJlcXVlcwogCXJldHVybiBOVUxMOwogfQogCiYjNDM7c3RhdGljIGlubGluZSB2b2lkIG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmUoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQomIzQzO3sKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW5saW5lIF9fYmUzMiBtcHRjcF9yZXNldF9vcHRpb24oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikgIHsgcmV0dXJuIGh0b25sKDB1KTsgfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgbXB0Y3BfYWN0aXZlX2RldGVjdF9ibGFja2hvbGUoc3RydWN0IHNvY2sgKnNrLCBib29sIGV4cGlyZWQpIHsgfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKaW5kZXggNTY5MDJiYmE1NDgzOC4uZjNlZjljMTVhYzM1OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCkBAIC0xNyw2ICYjNDM7MTcsNyBAQAogI2luY2x1ZGUgJmx0O25ldC9pbmV0X3RpbWV3YWl0X3NvY2suaCZndDsKICNpbmNsdWRlICZsdDtuZXQvaXAuaCZndDsKICNpbmNsdWRlICZsdDtuZXQvcm91dGUuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bmV0L21wdGNwLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bmV0L3RjcF9zdGF0ZXMuaCZndDsKICNpbmNsdWRlICZsdDtuZXQveGZybS5oJmd0OwogI2luY2x1ZGUgJmx0O25ldC90Y3AuaCZndDsKQEAgLTk0Niw4ICYjNDM7OTQ3LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgcmVxdWVzdF9zb2NrICppbmV0X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSwKIAkvKiBXZSBuZWVkIG5vdCBhY3F1aXJlIGZhc3RvcGVucS0mZ3Q7bG9jawogCSAqIGJlY2F1c2UgdGhlIGNoaWxkIHNvY2tldCBpcyBsb2NrZWQgaW4gaW5ldF9jc2tfbGlzdGVuX3N0b3AoKS4KIAkgKi8KLQlpZiAoc2stJmd0O3NrX3Byb3RvY29sID09IElQUFJPVE9fVENQICZhbXA7JmFtcDsgdGNwX3JzayhucmVxKS0mZ3Q7dGZvX2xpc3RlbmVyKQotCQlyY3VfYXNzaWduX3BvaW50ZXIodGNwX3NrKG5yZXEtJmd0O3NrKS0mZ3Q7ZmFzdG9wZW5fcnNrLCBucmVxKTsKJiM0MzsJaWYgKHNrLSZndDtza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCkgewomIzQzOwkJaWYgKHRjcF9yc2sobnJlcSktJmd0O3Rmb19saXN0ZW5lcikKJiM0MzsJCQlyY3VfYXNzaWduX3BvaW50ZXIodGNwX3NrKG5yZXEtJmd0O3NrKS0mZ3Q7ZmFzdG9wZW5fcnNrLCBucmVxKTsKJiM0MzsKJiM0MzsJCWlmIChyc2tfaXNfbXB0Y3AocmVxKSkKJiM0MzsJCQltcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKG5yZXEpOwomIzQzOwl9CiAKIAlyZXR1cm4gbnJlcTsKIH0KZGlmZiAtLWdpdCBhL25ldC9tcHRjcC9zdWJmbG93LmMgYi9uZXQvbXB0Y3Avc3ViZmxvdy5jCmluZGV4IDhlMzg2ODk5Y2ViOTguLjFiNmFhNWU4Y2ZkNzMgMTAwNjQ0Ci0tLSBhL25ldC9tcHRjcC9zdWJmbG93LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21wdGNwL3N1YmZsb3cuYwpAQCAtNDcsNiAmIzQzOzQ3LDE0IEBAIHN0YXRpYyB2b2lkIHN1YmZsb3dfcmVxX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQogCW1wdGNwX3Rva2VuX2Rlc3Ryb3lfcmVxdWVzdChyZXEpOwogfQogCiYjNDM7dm9pZCBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBtcHRjcF9zdWJmbG93X3JlcXVlc3Rfc29jayAqc3ViZmxvd19yZXEgPSBtcHRjcF9zdWJmbG93X3JzayhyZXEpOwomIzQzOwomIzQzOwlpZiAoc3ViZmxvd19yZXEtJmd0O21zaykKJiM0MzsJCXNvY2tfaG9sZCgoc3RydWN0IHNvY2sgKilzdWJmbG93X3JlcS0mZ3Q7bXNrKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBzdWJmbG93X2dlbmVyYXRlX2htYWModTY0IGtleTEsIHU2NCBrZXkyLCB1MzIgbm9uY2UxLCB1MzIgbm9uY2UyLAogCQkJCSAgdm9pZCAqaG1hYykKIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjkyMAoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDEyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBhbiBleHBlcnQgaW4gdGhpcyBhcmVhOgoKKipBbmFseXppbmcgdGhlIE1QVENQIGFuZCBJUHY0IENvbm5lY3Rpb24gQ29kZSBQYXRjaCoqCgpBbHJpZ2h0LCBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgbWFraW5nIHNvbWUgbW9kaWZpY2F0aW9ucyB0byB0aGUgTVBUQ1AgYW5kIElQdjQgY29ubmVjdGlvbiBzb2NrZXQgY29kZSwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIHRoZSBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQgcHJvY2Vzcy4gSSBzZWUgdGhleSYjMzk7dmUgYWRkZWQgYSBuZXcgZnVuY3Rpb24sIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCwgd2hpY2ggaXMgYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIGBpbmV0X3JlcXNrX2Nsb25lYCBpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2AuIFRoYXQmIzM5O3MgYSBrZXkgc3BvdDsgYGluZXRfcmVxc2tfY2xvbmVgIGlzIGZ1bmRhbWVudGFsIHRvIGNyZWF0aW5nIG5ldyBjb25uZWN0aW9uIHJlcXVlc3RzLgoKSXQgbG9va3MgbGlrZSB0aGUgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uIGlzIGhhbmRsaW5nIHRoZSBwb3RlbnRpYWwgYXNzb2NpYXRpb24gb2YgdGhlIE1QVENQIHN1YmZsb3cmIzM5O3MgcmVxdWVzdCBzb2NrZXQgKGBzdWJmbG93X3JlcWApIHdpdGggaXRzIE11bHRpUGF0aCBUQ1AgS2V5IChgbXNrYCkuICBUaGUgY29kZSBleHBsaWNpdGx5IGhvbGRzIGEgcmVmZXJlbmNlIHRvIGBzdWJmbG93X3JlcS0mZ3Q7bXNrYCBpZiBvbmUgZXhpc3RzLiBUaGlzIGlzIGltcG9ydGFudDogaG9sZGluZyB0aGF0IHJlZmVyZW5jZSBpcyBjcnVjaWFsIHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBNUFRDUCBrZXkgZG9lc24mIzM5O3QgZ2V0IGNsZWFuZWQgdXAgYmVmb3JlIGl0JiMzOTtzIG5lZWRlZCBkdXJpbmcgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50LiBJIGhhdmUgdG8gdGhpbmsgYWJvdXQgdGhlIGxvY2tpbmcgYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpbiB0aGlzIGFyZWEuIEl0IHdpbGwgYmUgaW50ZXJlc3RpbmcgdG8gc2VlIGhvdyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgY2xvbmluZyBhbmQgcG90ZW50aWFsIHJlc291cmNlIG1hbmFnZW1lbnQgaW4gcmVsYXRpb24gdG8gSVB2NCBjb25uZWN0aW9uLgoKTm93LCBJIG5lZWQgdG8gdmVyaWZ5IGhvdyBNUFRDUCBpcyBjb25maWd1cmVkIGluIHRoaXMgc2V0dXAuIExldCYjMzk7cyBzZWUuLi4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBxdWlja2x5IGZpbmQgdGhlIHJlbGV2YW50IE1QVENQIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgY29uc2lzdGVudCB3aXRoIG15IGV4cGVjdGF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBlbmFibGVkLCBkaXNhYmxlZCwgYW5kIHRoZSBkZWZhdWx0IHNldHRpbmdzIGluIG9yZGVyIHRvIGZ1bGx5IGFzc2VzcyB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgcGF0Y2guIFRoZSBjb250ZXh0IG9mIHRoZXNlIGNvbmZpZ3VyYXRpb25zIGFyZSBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGUgY2hhbmdlIHRvIHRoZSBNUFRDUCBjb2RlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDExOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNUFRDUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tcHRjcC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tcHRjcC9LY29uZmlnLTEtXG5uZXQvbXB0Y3AvS2NvbmZpZzoyOmNvbmZpZyBNUFRDUFxubmV0L21wdGNwL0tjb25maWctMy1cdGJvb2wgXCYjMzQ7TVBUQ1A6IE11bHRpcGF0aCBUQ1BcJiMzNDtcbi0tXG5uZXQvbXB0Y3AvS2NvbmZpZz0xNj1jb25maWcgSU5FVF9NUFRDUF9ESUFHXG4tLVxubmV0L21wdGNwL0tjb25maWctMTktXG5uZXQvbXB0Y3AvS2NvbmZpZzoyMDpjb25maWcgTVBUQ1BfSVBWNlxubmV0L21wdGNwL0tjb25maWctMjEtXHRib29sIFwmIzM0O01QVENQOiBJUHY2IHN1cHBvcnQgZm9yIE11bHRpcGF0aCBUQ1BcJiMzNDtcbi0tXG5uZXQvbXB0Y3AvS2NvbmZpZy0yNC1cbm5ldC9tcHRjcC9LY29uZmlnOjI1OmNvbmZpZyBNUFRDUF9LVU5JVF9URVNUXG5uZXQvbXB0Y3AvS2NvbmZpZy0yNi1cdHRyaXN0YXRlIFwmIzM0O1RoaXMgYnVpbGRzIHRoZSBNUFRDUCBLVW5pdCB0ZXN0c1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY4NQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1QVENQIENvbmZpZ3VyYXRpb24gUGF0Y2gqKgoKT2theSwgc28gdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBoZXJlIGlzIGBNUFRDUGAuIFRoZSBwYXRjaCBpdHNlbGYgYXBwZWFycyB0byBmb2N1cyBvbiBtb2RpZmljYXRpb25zIHdpdGhpbiB0aGUgbmV0d29ya2luZyBzdGFjaywgc3BlY2lmaWNhbGx5IGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYCBhbmQgYG5ldC9tcHRjcC9zdWJmbG93LmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGNoYW5nZXMgaW1wYWN0IHRoZSBjb25uZWN0aW9uIHNvY2tldCBhbmQgc3ViZmxvdyBjcmVhdGlvbi4KClRoZSBjb3JlIGFkZGl0aW9uIGlzIGxpa2VseSB0aGUgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uLiBJIHJlY29nbml6ZSB0aGF0IHRoZSBjaGFuZ2VzIGFsc28gdG91Y2ggYGluZXRfcmVxc2tfY2xvbmVgLCBhbmQgdGhlIGxhdHRlciBpcyB3aGVyZSBJIHdhbnQgdG8gc3RhcnQuIEl0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uLCB3aGljaCBvZnRlbiBtZWFucyBpdCYjMzk7cyBsaW1pdGVkIGluIHNjb3BlIGFuZCB1c2VkIGludGVybmFsbHkgd2l0aGluIHRoZSBzYW1lIHNvdXJjZSBmaWxlLCB3aGljaCBpc24mIzM5O3QgYWx3YXlzIG9idmlvdXMgd2l0aG91dCBmdXJ0aGVyIGRpZ2dpbmcuIEJ1dCwgSSB0aGluayB0aGlzIGZ1bmN0aW9uIGlzIGFsc28gY2FsbGVkIGJ5IG9yIHJlbGF0ZWQgdG8gYGluZXRfY3NrX2xpc3Rlbl9zdG9wYCBvciBhIHNpbWlsYXIgZnVuY3Rpb24sIHNvIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGwgZ3JhcGggdG8gY29uZmlybSBpdHMgdXNhZ2UgYW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gdGhlIG5ldyBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAuIEl0JiMzOTtzIGVzc2VudGlhbCB0byBncmFzcCBob3cgdGhlIGBpbmV0X3JlcXNrX2Nsb25lYCBmdW5jdGlvbiwgdGhlIG1vcmUgZXN0YWJsaXNoZWQgZnVuY3Rpb24sIGlzIGxldmVyYWdlZCBvciBtb2RpZmllZCBieSB0aGlzIG5ldyBNUFRDUCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpbmZvcm1hdGlvbiB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBpbnRlZ3JhdGlvbiBhbmQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZmVhdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpbmV0X3JlcXNrX2Nsb25lJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTkwNT12b2lkIF9fcmVxc2tfZnJlZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy05MTMtXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjkxNDpzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTkxNS1cdFx0XHRcdFx0ICAgICBzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz0xMDI3PXN0YXRpYyB2b2lkIHJlcXNrX3RpbWVyX2hhbmRsZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMDQzLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzoxMDQ0Olx0XHRucmVxID0gaW5ldF9yZXFza19jbG9uZShyZXEsIG5zayk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEwNDUtXHRcdGlmICghbnJlcSlcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTE0MTE9c3RydWN0IHNvY2sgKmluZXRfY3NrX2NvbXBsZXRlX2hhc2hkYW5jZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpjaGlsZCxcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE0MjQtXHRcdFx0LyogaG9sZCBhIHJlZmNudCBmb3IgdGhlIG5yZXEtXHUwMDNlcnNrX2xpc3RlbmVyXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE0MjU6XHRcdFx0ICogd2hpY2ggaXMgYXNzaWduZWQgaW4gaW5ldF9yZXFza19jbG9uZSgpXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE0MjYtXHRcdFx0ICovXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE0MjctXHRcdFx0c29ja19ob2xkKHNrKTtcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MTQyODpcdFx0XHRucmVxID0gaW5ldF9yZXFza19jbG9uZShyZXEsIHNrKTtcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTQyOS1cdFx0XHRpZiAoIW5yZXEpIHtcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTE0NjA9dm9pZCBpbmV0X2Nza19saXN0ZW5fc3RvcChzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xNDg0LVx0XHRpZiAobnNrKSB7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE0ODU6XHRcdFx0bnJlcSA9IGluZXRfcmVxc2tfY2xvbmUocmVxLCBuc2spO1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xNDg2LVx0XHRcdGlmIChucmVxKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcwMgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDMxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlcXVlc3QgU29ja2V0IENsb25pbmcgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSB0aGF0IGBpbmV0X3JlcXNrX2Nsb25lYCBpcyB0aGUgY2VudHJhbCBmdW5jdGlvbiBiZWluZyBtb2RpZmllZC4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYSBmZXcgZGlmZmVyZW50IHBsYWNlczogYHJlcXNrX3RpbWVyX2hhbmRsZXJgLCBgaW5ldF9jc2tfY29tcGxldGVfaGFzaGRhbmNlYCwgYW5kIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAuIEhtbSwgYWxsIHJlYWNoYWJsZS4gVGhlIGlzc3VlIHRoZSBwYXRjaCBhZGRyZXNzZXMgaXMgdGhlIG1pc3NpbmcgcmVmZXJlbmNlIGNvdW50IGluY3JlbWVudCBmb3IgYHN1YmZsb3dfcmVxLSZndDttc2tgIHdoZW4gYSByZXF1ZXN0IHNvY2tldCBnZXRzIGNsb25lZC4gR290IGl0LgoKTm93LCBhIG5ldyBmdW5jdGlvbiwgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgLCBoYXMgYmVlbiBhZGRlZC4gVGhhdCYjMzk7cyB0aGUga2V5IGhlcmUuIEl0JiMzOTtzIG5vdCBzdGF0aWMsIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGV4cG9ydGVkIGFuZCBjYW4gYmUgY2FsbGVkIGZyb20gb3V0c2lkZSBpdHMgc291cmNlIGZpbGUuIExldCBtZSBjb25maXJtIHRoYXQuLi4gWXVwLCBkZWZpbmVkIGluIGBuZXQvbXB0Y3Avc3ViZmxvdy5jYCBhbmQgZGVjbGFyZWQgaW4gYGluY2x1ZGUvbmV0L21wdGNwLmhgLiBCaW5nby4gVGhpcyBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgZnVuY3Rpb24gbG9va3MgbGlrZSBteSBwcmltYXJ5IGZvY3VzIHN5bWJvbC4gTGV0IG1lIGRvdWJsZS1jaGVjayAtIGBpbmV0X3JlcXNrX2Nsb25lYCBpcyBzdGF0aWMsIHNvIGl0ICpzaG91bGRuJiMzOTt0KiBiZSBpbiBteSBGb2N1c1N5bWJvbHMuIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAgaXMgYSBnZW5lcmFsIGhvdC1wYXRoIGZ1bmN0aW9uLCBzbyBsaWtlbHkgY29tbW9uLgoKQWxyaWdodCwgaXMgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRoZSAqb25seSogc2lnbmlmaWNhbnQgY2hhbmdlIGhlcmU/IFllcywgaXQgaXMuIEl0JiMzOTtzIHRoZSBuZXcgZnVuY3Rpb25hbGl0eSBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaC4KCk5vdywgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgY29uZmlnIG9wdGlvbnMuIFRoaXMgcmVsaWVzIG9uIGBNUFRDUGAgd2hpY2ggZGVwZW5kcyBvbiBgSU5FVGAuIE9rYXksIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBuZXQvbXB0Y3AvS2NvbmZpZ2AgZmlsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21wdGNwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21wdGNwL0tjb25maWc9Mj1jb25maWcgTVBUQ1Bcbm5ldC9tcHRjcC9LY29uZmlnLTMtXHRib29sIFwmIzM0O01QVENQOiBNdWx0aXBhdGggVENQXCYjMzQ7XG5uZXQvbXB0Y3AvS2NvbmZpZzo0Olx0ZGVwZW5kcyBvbiBJTkVUXG5uZXQvbXB0Y3AvS2NvbmZpZy01LVx0c2VsZWN0IFNLQl9FWFRFTlNJT05TXG4tLVxubmV0L21wdGNwL0tjb25maWc9MTY9Y29uZmlnIElORVRfTVBUQ1BfRElBR1xubmV0L21wdGNwL0tjb25maWc6MTc6XHRkZXBlbmRzIG9uIElORVRfRElBR1xubmV0L21wdGNwL0tjb25maWctMTgtXHRkZWZfdHJpc3RhdGUgSU5FVF9ESUFHXG4tLVxubmV0L21wdGNwL0tjb25maWc9MjA9Y29uZmlnIE1QVENQX0lQVjZcbm5ldC9tcHRjcC9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtNUFRDUDogSVB2NiBzdXBwb3J0IGZvciBNdWx0aXBhdGggVENQXCYjMzQ7XG5uZXQvbXB0Y3AvS2NvbmZpZzoyMjpcdGRlcGVuZHMgb24gSVBWNj15XG5uZXQvbXB0Y3AvS2NvbmZpZy0yMy1cdGRlZmF1bHQgeVxuLS1cbm5ldC9tcHRjcC9LY29uZmlnPTI1PWNvbmZpZyBNUFRDUF9LVU5JVF9URVNUXG5uZXQvbXB0Y3AvS2NvbmZpZy0yNi1cdHRyaXN0YXRlIFwmIzM0O1RoaXMgYnVpbGRzIHRoZSBNUFRDUCBLVW5pdCB0ZXN0c1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG5uZXQvbXB0Y3AvS2NvbmZpZzoyNzpcdGRlcGVuZHMgb24gS1VOSVRcbm5ldC9tcHRjcC9LY29uZmlnLTI4LVx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzU2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIE1QVENQIFN1YmZsb3cgUmVxdWVzdCBTb2NrZXQgQ2xvbmluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBNUFRDUCBjb25maWd1cmF0aW9uLCBhbmQgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHNvbWUgZnVuY3Rpb25hbCBjaGFuZ2VzIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIE1QVENQLiBUaGUga2V5IGZ1bmN0aW9uIEkgd2FudCB0byBmb2N1cyBvbiBpcyB0aGlzIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCDigJMgaXQmIzM5O3MgdGhlIG5ldyBhZGRpdGlvbiBhbmQgc2VlbXMgbGlrZSBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nLiBgTVBUQ1BgIGlzIGVuYWJsZWQsIGFuZCB0aGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4KCkZpcnN0LCBsZXQmIzM5O3MganVzdCBjb25maXJtIHNvbWV0aGluZy4gSSBuZWVkIHRvIHF1aWNrbHkgdmVyaWZ5IGlmIGBpbmV0X3JlcXNrX2Nsb25lYCBpcyBzdGF0aWMuIFllcywgaXQgaXMuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBOb3csIGFyZSB0aGVyZSBhbnkgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgZ2VuZXJhbCBhcmVhIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQ/IEhtbW0sIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAgaXMgYSBwb3NzaWJpbGl0eTsgaXQmIzM5O3MgYSBiaXQgZ2VuZXJpYyBidXQgaXQmIzM5O3Mgd2hlcmUgdGhlIGNsb25pbmcgYWN0aW9uIGFjdHVhbGx5IGhhcHBlbnMuIEJ1dCwgbm8sIEkgdGhpbmsgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGlzIHN0aWxsIHRoZSBiZXN0IGZvY3VzLCBlc3BlY2lhbGx5IHdoZW4gSSByZWNhbGwgdGhhdCBgaW5ldF9yZXFza19jbG9uZWAgZ2V0cyBjYWxsZWQgZnJvbSBgcmVxc2tfdGltZXJfaGFuZGxlcmAsIGBpbmV0X2Nza19jb21wbGV0ZV9oYXNoZGFuY2VgLCBhbmQgYGluZXRfY3NrX2xpc3Rlbl9zdG9wYC4gQWxsIHRob3NlIGZ1bmN0aW9ucyBhcmUgbG9jYXRlZCBpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2AuIFRoYXQgc29saWRpZmllcyB0aGUgcmVhc29uaW5nIHRvIGZvY3VzIG9uIHRoYXQgY2xvbmluZyBmdW5jdGlvbiEKCk9rYXksIGlzIHRoaXMgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uIGV4cG9ydGVkPyBJdCYjMzk7cyBub3QgZXhwbGljaXRseSBleHBvcnRlZCB3aXRoIGBFWFBPUlRfU1lNQk9MYCwgYnV0IGl0IGFsc28gaXNuJiMzOTt0IHN0YXRpYywgc28gaXQgc2hvdWxkIGhhdmUgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYGluZXRfcmVxc2tfY2xvbmVgLCB3aGljaCByZXNpZGVzIGluIGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYC4gU2luY2UgYG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNgIGlzIGJ1aWx0LWluIGFuZCBgbmV0L21wdGNwL3N1YmZsb3cuY2AgaXMgYWxzbyBidWlsdC1pbiBpZiBgTVBUQ1A9eWAsIGl0IHNob3VsZCBiZSBsaW5rZWQuIEZpbmFsbHksIGxldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgaXMgaW5kZWVkIGxvY2F0ZWQgaW4gYG5ldC9tcHRjcC9zdWJmbG93LmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21wdGNwL3N1YmZsb3cuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbXB0Y3Avc3ViZmxvdy5jPTM4PXN0YXRpYyB2b2lkIHN1YmZsb3dfcmVxX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuLS1cbm5ldC9tcHRjcC9zdWJmbG93LmMtNDktXG5uZXQvbXB0Y3Avc3ViZmxvdy5jOjUwOnZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG5uZXQvbXB0Y3Avc3ViZmxvdy5jLTUxLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjc3MgoJCQkJCQkJb3V0cHV0OiA5OAoJCQkJCQkJdGhvdWdodHM6IDgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gcmVhc29uaW5nOgoKKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIEFwcGx5aW5nIGEgRml4KioKClllcywgdGhhdCBjb25maXJtcyBpdC4gTm93LCBJIG5lZWQgdG8gbWFrZSBzdXJlIHdlJiMzOTt2ZSBleGhhdXN0ZWQgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyBjb3JyZWN0OyB0aGUgYE1QVENQYCBjb25maWd1cmF0aW9uIGlzIHRoZSByZWxldmFudCBvbmUgaGVyZS4KCkhlcmUmIzM5O3Mgd2h5OiB0aGUgY29yZSBvZiB0aGUgcHJvYmxlbSBsaWVzIGluIHRoZSBwYXRjaCYjMzk7cyBhZGRpdGlvbiBvZiB0aGUgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uLiBUaGUga2V5IHRha2Vhd2F5IGlzIHRoYXQgdGhpcyBhZGRyZXNzZXMgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgd2l0aGluIHRoZSBwcm9jZXNzIG9mIGNsb25pbmcgTVBUQ1Agc3ViZmxvdyByZXF1ZXN0IHNvY2tldHMuIFdlIGFyZSBmaXJtbHkgaW4gdGhlIHJlYWxtIG9mIGNyaXRpY2FsLCByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLgoKVGhlcmVmb3JlLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVBUQ1AmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZnVuY3Rpb24gYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRvIGhhbmRsZSBjbG9uaW5nIG9mIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUuIFRoaXMgaXMgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVBUQ1AmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZnVuY3Rpb24gYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRvIGhhbmRsZSBjbG9uaW5nIG9mIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUuIFRoaXMgaXMgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDExOjIwOjE5LjgyNTE5NjU1M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5OTc4NTM2NjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1QVENQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXcgZnVuY3Rpb24gYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRvIGhhbmRsZSBjbG9uaW5nIG9mIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUuIFRoaXMgaXMgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6MTkuODI1MjA0NjMzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTEyMzY4MDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1YjVkMzBlNTZkNjFkNWE3NGQ4NzQ1OTdlMDNjYWE0YTA2OGUwODQwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDQgMTE6MjA6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbXB0Y3AuaCBiL2luY2x1ZGUvbmV0L21wdGNwLmhcXG5pbmRleCA3MWI5ZmM1YTU3OTYzLi41MWQ0YjAyZjVhZmIyIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbmV0L21wdGNwLmhcXG4rKysgYi9pbmNsdWRlL25ldC9tcHRjcC5oXFxuQEAgLTIyMyw2ICsyMjMsNyBAQCBpbnQgbXB0Y3Bfc3ViZmxvd19pbml0X2Nvb2tpZV9yZXEoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLFxcbiBzdHJ1Y3QgcmVxdWVzdF9zb2NrICptcHRjcF9zdWJmbG93X3JlcXNrX2FsbG9jKGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2tfb3BzICpvcHMsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3Qgc29jayAqc2tfbGlzdGVuZXIsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgICBib29sIGF0dGFjaF9saXN0ZW5lcik7XFxuK3ZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpO1xcbiBcXG4gX19iZTMyIG1wdGNwX2dldF9yZXNldF9vcHRpb24oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuIFxcbkBAIC0zMDksNiArMzEwLDEwIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJlcXVlc3Rfc29jayAqbXB0Y3Bfc3ViZmxvd19yZXFza19hbGxvYyhjb25zdCBzdHJ1Y3QgcmVxdWVzXFxuIFxcdHJldHVybiBOVUxMO1xcbiB9XFxuIFxcbitzdGF0aWMgaW5saW5lIHZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXFxuK3tcXG4rfVxcbitcXG4gc3RhdGljIGlubGluZSBfX2JlMzIgbXB0Y3BfcmVzZXRfb3B0aW9uKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpICB7IHJldHVybiBodG9ubCgwdSk7IH1cXG4gXFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBtcHRjcF9hY3RpdmVfZGV0ZWN0X2JsYWNraG9sZShzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgZXhwaXJlZCkgeyB9XFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuaW5kZXggNTY5MDJiYmE1NDgzOC4uZjNlZjljMTVhYzM1OSAxMDA2NDRcXG4tLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xcbkBAIC0xNyw2ICsxNyw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvaW5ldF90aW1ld2FpdF9zb2NrLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvaXAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY25ldC9yb3V0ZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbmV0L21wdGNwLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvdGNwX3N0YXRlcy5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbmV0L3hmcm0uaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY25ldC90Y3AuaFxcdTAwM2VcXG5AQCAtOTQ2LDggKzk0NywxMyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXFxuIFxcdC8qIFdlIG5lZWQgbm90IGFjcXVpcmUgZmFzdG9wZW5xLVxcdTAwM2Vsb2NrXFxuIFxcdCAqIGJlY2F1c2UgdGhlIGNoaWxkIHNvY2tldCBpcyBsb2NrZWQgaW4gaW5ldF9jc2tfbGlzdGVuX3N0b3AoKS5cXG4gXFx0ICovXFxuLVxcdGlmIChzay1cXHUwMDNlc2tfcHJvdG9jb2wgPT0gSVBQUk9UT19UQ1AgXFx1MDAyNlxcdTAwMjYgdGNwX3JzayhucmVxKS1cXHUwMDNldGZvX2xpc3RlbmVyKVxcbi1cXHRcXHRyY3VfYXNzaWduX3BvaW50ZXIodGNwX3NrKG5yZXEtXFx1MDAzZXNrKS1cXHUwMDNlZmFzdG9wZW5fcnNrLCBucmVxKTtcXG4rXFx0aWYgKHNrLVxcdTAwM2Vza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCkge1xcbitcXHRcXHRpZiAodGNwX3JzayhucmVxKS1cXHUwMDNldGZvX2xpc3RlbmVyKVxcbitcXHRcXHRcXHRyY3VfYXNzaWduX3BvaW50ZXIodGNwX3NrKG5yZXEtXFx1MDAzZXNrKS1cXHUwMDNlZmFzdG9wZW5fcnNrLCBucmVxKTtcXG4rXFxuK1xcdFxcdGlmIChyc2tfaXNfbXB0Y3AocmVxKSlcXG4rXFx0XFx0XFx0bXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShucmVxKTtcXG4rXFx0fVxcbiBcXG4gXFx0cmV0dXJuIG5yZXE7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvbmV0L21wdGNwL3N1YmZsb3cuYyBiL25ldC9tcHRjcC9zdWJmbG93LmNcXG5pbmRleCA4ZTM4Njg5OWNlYjk4Li4xYjZhYTVlOGNmZDczIDEwMDY0NFxcbi0tLSBhL25ldC9tcHRjcC9zdWJmbG93LmNcXG4rKysgYi9uZXQvbXB0Y3Avc3ViZmxvdy5jXFxuQEAgLTQ3LDYgKzQ3LDE0IEBAIHN0YXRpYyB2b2lkIHN1YmZsb3dfcmVxX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbiBcXHRtcHRjcF90b2tlbl9kZXN0cm95X3JlcXVlc3QocmVxKTtcXG4gfVxcbiBcXG4rdm9pZCBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcXG4re1xcbitcXHRzdHJ1Y3QgbXB0Y3Bfc3ViZmxvd19yZXF1ZXN0X3NvY2sgKnN1YmZsb3dfcmVxID0gbXB0Y3Bfc3ViZmxvd19yc2socmVxKTtcXG4rXFxuK1xcdGlmIChzdWJmbG93X3JlcS1cXHUwMDNlbXNrKVxcbitcXHRcXHRzb2NrX2hvbGQoKHN0cnVjdCBzb2NrICopc3ViZmxvd19yZXEtXFx1MDAzZW1zayk7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIHN1YmZsb3dfZ2VuZXJhdGVfaG1hYyh1NjQga2V5MSwgdTY0IGtleTIsIHUzMiBub25jZTEsIHUzMiBub25jZTIsXFxuIFxcdFxcdFxcdFxcdCAgdm9pZCAqaG1hYylcXG4ge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDoyMC4zNzY5OTkzNzZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyOTQyNjcxNzUxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNUFRDUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCB0byBoYW5kbGUgY2xvbmluZyBvZiBNUFRDUCBzdWJmbG93IHJlcXVlc3Qgc29ja2V0cywgZml4aW5nIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlLiBUaGlzIGlzIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmsgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDViNWQzMGU1NmQ2MWQ1YTc0ZDg3NDU5N2UwM2NhYTRhMDY4ZTA4NDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyA0IDExOjIwOjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbXB0Y3AuaCBiL2luY2x1ZGUvbmV0L21wdGNwLmhcbmluZGV4IDcxYjlmYzVhNTc5NjMuLjUxZDRiMDJmNWFmYjIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9tcHRjcC5oXG4rKysgYi9pbmNsdWRlL25ldC9tcHRjcC5oXG5AQCAtMjIzLDYgKzIyMyw3IEBAIGludCBtcHRjcF9zdWJmbG93X2luaXRfY29va2llX3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG4gc3RydWN0IHJlcXVlc3Rfc29jayAqbXB0Y3Bfc3ViZmxvd19yZXFza19hbGxvYyhjb25zdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrX29wcyAqb3BzLFxuIFx0XHRcdFx0XHQgICAgICAgc3RydWN0IHNvY2sgKnNrX2xpc3RlbmVyLFxuIFx0XHRcdFx0XHQgICAgICAgYm9vbCBhdHRhY2hfbGlzdGVuZXIpO1xuK3ZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpO1xuIFxuIF9fYmUzMiBtcHRjcF9nZXRfcmVzZXRfb3B0aW9uKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpO1xuIFxuQEAgLTMwOSw2ICszMTAsMTAgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcmVxdWVzdF9zb2NrICptcHRjcF9zdWJmbG93X3JlcXNrX2FsbG9jKGNvbnN0IHN0cnVjdCByZXF1ZXNcbiBcdHJldHVybiBOVUxMO1xuIH1cbiBcbitzdGF0aWMgaW5saW5lIHZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4re1xuK31cbitcbiBzdGF0aWMgaW5saW5lIF9fYmUzMiBtcHRjcF9yZXNldF9vcHRpb24oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikgIHsgcmV0dXJuIGh0b25sKDB1KTsgfVxuIFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBtcHRjcF9hY3RpdmVfZGV0ZWN0X2JsYWNraG9sZShzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgZXhwaXJlZCkgeyB9XG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbmluZGV4IDU2OTAyYmJhNTQ4MzguLmYzZWY5YzE1YWMzNTkgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXG4rKysgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXG5AQCAtMTcsNiArMTcsNyBAQFxuICNpbmNsdWRlIFx1MDAzY25ldC9pbmV0X3RpbWV3YWl0X3NvY2suaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC9pcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3JvdXRlLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NuZXQvbXB0Y3AuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC90Y3Bfc3RhdGVzLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQveGZybS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3RjcC5oXHUwMDNlXG5AQCAtOTQ2LDggKzk0NywxMyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG4gXHQvKiBXZSBuZWVkIG5vdCBhY3F1aXJlIGZhc3RvcGVucS1cdTAwM2Vsb2NrXG4gXHQgKiBiZWNhdXNlIHRoZSBjaGlsZCBzb2NrZXQgaXMgbG9ja2VkIGluIGluZXRfY3NrX2xpc3Rlbl9zdG9wKCkuXG4gXHQgKi9cbi1cdGlmIChzay1cdTAwM2Vza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCBcdTAwMjZcdTAwMjYgdGNwX3JzayhucmVxKS1cdTAwM2V0Zm9fbGlzdGVuZXIpXG4tXHRcdHJjdV9hc3NpZ25fcG9pbnRlcih0Y3Bfc2sobnJlcS1cdTAwM2VzayktXHUwMDNlZmFzdG9wZW5fcnNrLCBucmVxKTtcbitcdGlmIChzay1cdTAwM2Vza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCkge1xuK1x0XHRpZiAodGNwX3JzayhucmVxKS1cdTAwM2V0Zm9fbGlzdGVuZXIpXG4rXHRcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKHRjcF9zayhucmVxLVx1MDAzZXNrKS1cdTAwM2VmYXN0b3Blbl9yc2ssIG5yZXEpO1xuK1xuK1x0XHRpZiAocnNrX2lzX21wdGNwKHJlcSkpXG4rXHRcdFx0bXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShucmVxKTtcbitcdH1cbiBcbiBcdHJldHVybiBucmVxO1xuIH1cbmRpZmYgLS1naXQgYS9uZXQvbXB0Y3Avc3ViZmxvdy5jIGIvbmV0L21wdGNwL3N1YmZsb3cuY1xuaW5kZXggOGUzODY4OTljZWI5OC4uMWI2YWE1ZThjZmQ3MyAxMDA2NDRcbi0tLSBhL25ldC9tcHRjcC9zdWJmbG93LmNcbisrKyBiL25ldC9tcHRjcC9zdWJmbG93LmNcbkBAIC00Nyw2ICs0NywxNCBAQCBzdGF0aWMgdm9pZCBzdWJmbG93X3JlcV9kZXN0cnVjdG9yKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiBcdG1wdGNwX3Rva2VuX2Rlc3Ryb3lfcmVxdWVzdChyZXEpO1xuIH1cbiBcbit2b2lkIG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmUoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuK3tcbitcdHN0cnVjdCBtcHRjcF9zdWJmbG93X3JlcXVlc3Rfc29jayAqc3ViZmxvd19yZXEgPSBtcHRjcF9zdWJmbG93X3JzayhyZXEpO1xuK1xuK1x0aWYgKHN1YmZsb3dfcmVxLVx1MDAzZW1zaylcbitcdFx0c29ja19ob2xkKChzdHJ1Y3Qgc29jayAqKXN1YmZsb3dfcmVxLVx1MDAzZW1zayk7XG4rfVxuK1xuIHN0YXRpYyB2b2lkIHN1YmZsb3dfZ2VuZXJhdGVfaG1hYyh1NjQga2V5MSwgdTY0IGtleTIsIHUzMiBub25jZTEsIHUzMiBub25jZTIsXG4gXHRcdFx0XHQgIHZvaWQgKmhtYWMpXG4ge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6MjAuMzc3MDAxOTg2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc0MDE0NjA4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IHBlcnNwZWN0aXZlIGFzIGFuIGV4cGVydCBpbiB0aGlzIGFyZWE6XG5cbioqQW5hbHl6aW5nIHRoZSBNUFRDUCBhbmQgSVB2NCBDb25uZWN0aW9uIENvZGUgUGF0Y2gqKlxuXG5BbHJpZ2h0LCBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIG1ha2luZyBzb21lIG1vZGlmaWNhdGlvbnMgdG8gdGhlIE1QVENQIGFuZCBJUHY0IGNvbm5lY3Rpb24gc29ja2V0IGNvZGUsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiB0aGUgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50IHByb2Nlc3MuIEkgc2VlIHRoZXkndmUgYWRkZWQgYSBuZXcgZnVuY3Rpb24sIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCwgd2hpY2ggaXMgYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIGBpbmV0X3JlcXNrX2Nsb25lYCBpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2AuIFRoYXQncyBhIGtleSBzcG90OyBgaW5ldF9yZXFza19jbG9uZWAgaXMgZnVuZGFtZW50YWwgdG8gY3JlYXRpbmcgbmV3IGNvbm5lY3Rpb24gcmVxdWVzdHMuXG5cbkl0IGxvb2tzIGxpa2UgdGhlIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCBmdW5jdGlvbiBpcyBoYW5kbGluZyB0aGUgcG90ZW50aWFsIGFzc29jaWF0aW9uIG9mIHRoZSBNUFRDUCBzdWJmbG93J3MgcmVxdWVzdCBzb2NrZXQgKGBzdWJmbG93X3JlcWApIHdpdGggaXRzIE11bHRpUGF0aCBUQ1AgS2V5IChgbXNrYCkuICBUaGUgY29kZSBleHBsaWNpdGx5IGhvbGRzIGEgcmVmZXJlbmNlIHRvIGBzdWJmbG93X3JlcS1cdTAwM2Vtc2tgIGlmIG9uZSBleGlzdHMuIFRoaXMgaXMgaW1wb3J0YW50OiBob2xkaW5nIHRoYXQgcmVmZXJlbmNlIGlzIGNydWNpYWwgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIE1QVENQIGtleSBkb2Vzbid0IGdldCBjbGVhbmVkIHVwIGJlZm9yZSBpdCdzIG5lZWRlZCBkdXJpbmcgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50LiBJIGhhdmUgdG8gdGhpbmsgYWJvdXQgdGhlIGxvY2tpbmcgYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpbiB0aGlzIGFyZWEuIEl0IHdpbGwgYmUgaW50ZXJlc3RpbmcgdG8gc2VlIGhvdyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgY2xvbmluZyBhbmQgcG90ZW50aWFsIHJlc291cmNlIG1hbmFnZW1lbnQgaW4gcmVsYXRpb24gdG8gSVB2NCBjb25uZWN0aW9uLlxuXG5Ob3csIEkgbmVlZCB0byB2ZXJpZnkgaG93IE1QVENQIGlzIGNvbmZpZ3VyZWQgaW4gdGhpcyBzZXR1cC4gTGV0J3Mgc2VlLi4uIEknbGwgdXNlIGBncmVwcGVyYCB0byBxdWlja2x5IGZpbmQgdGhlIHJlbGV2YW50IE1QVENQIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgY29uc2lzdGVudCB3aXRoIG15IGV4cGVjdGF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGVuYWJsZWQsIGRpc2FibGVkLCBhbmQgdGhlIGRlZmF1bHQgc2V0dGluZ3MgaW4gb3JkZXIgdG8gZnVsbHkgYXNzZXNzIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBwYXRjaC4gVGhlIGNvbnRleHQgb2YgdGhlc2UgY29uZmlndXJhdGlvbnMgYXJlIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgaW1wbGljYXRpb25zIG9mIHRoZSBjaGFuZ2UgdG8gdGhlIE1QVENQIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MjAsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDoyNS4xMTcxNTA0NjNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzY1MzQ4NzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1QVENQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tcHRjcC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcHRjcC9LY29uZmlnLTEtXFxubmV0L21wdGNwL0tjb25maWc6Mjpjb25maWcgTVBUQ1BcXG5uZXQvbXB0Y3AvS2NvbmZpZy0zLVxcdGJvb2wgXFxcIk1QVENQOiBNdWx0aXBhdGggVENQXFxcIlxcbi0tXFxubmV0L21wdGNwL0tjb25maWc9MTY9Y29uZmlnIElORVRfTVBUQ1BfRElBR1xcbi0tXFxubmV0L21wdGNwL0tjb25maWctMTktXFxubmV0L21wdGNwL0tjb25maWc6MjA6Y29uZmlnIE1QVENQX0lQVjZcXG5uZXQvbXB0Y3AvS2NvbmZpZy0yMS1cXHRib29sIFxcXCJNUFRDUDogSVB2NiBzdXBwb3J0IGZvciBNdWx0aXBhdGggVENQXFxcIlxcbi0tXFxubmV0L21wdGNwL0tjb25maWctMjQtXFxubmV0L21wdGNwL0tjb25maWc6MjU6Y29uZmlnIE1QVENQX0tVTklUX1RFU1RcXG5uZXQvbXB0Y3AvS2NvbmZpZy0yNi1cXHR0cmlzdGF0ZSBcXFwiVGhpcyBidWlsZHMgdGhlIE1QVENQIEtVbml0IHRlc3RzXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDExOjIwOjI1LjE5MzY5MDc2NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNjk5Mzg2MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNUFRDUCBDb25maWd1cmF0aW9uIFBhdGNoKipcblxuT2theSwgc28gdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBoZXJlIGlzIGBNUFRDUGAuIFRoZSBwYXRjaCBpdHNlbGYgYXBwZWFycyB0byBmb2N1cyBvbiBtb2RpZmljYXRpb25zIHdpdGhpbiB0aGUgbmV0d29ya2luZyBzdGFjaywgc3BlY2lmaWNhbGx5IGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYCBhbmQgYG5ldC9tcHRjcC9zdWJmbG93LmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGNoYW5nZXMgaW1wYWN0IHRoZSBjb25uZWN0aW9uIHNvY2tldCBhbmQgc3ViZmxvdyBjcmVhdGlvbi5cblxuVGhlIGNvcmUgYWRkaXRpb24gaXMgbGlrZWx5IHRoZSBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgZnVuY3Rpb24uIEkgcmVjb2duaXplIHRoYXQgdGhlIGNoYW5nZXMgYWxzbyB0b3VjaCBgaW5ldF9yZXFza19jbG9uZWAsIGFuZCB0aGUgbGF0dGVyIGlzIHdoZXJlIEkgd2FudCB0byBzdGFydC4gSXQncyBhIHN0YXRpYyBmdW5jdGlvbiwgd2hpY2ggb2Z0ZW4gbWVhbnMgaXQncyBsaW1pdGVkIGluIHNjb3BlIGFuZCB1c2VkIGludGVybmFsbHkgd2l0aGluIHRoZSBzYW1lIHNvdXJjZSBmaWxlLCB3aGljaCBpc24ndCBhbHdheXMgb2J2aW91cyB3aXRob3V0IGZ1cnRoZXIgZGlnZ2luZy4gQnV0LCBJIHRoaW5rIHRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgYnkgb3IgcmVsYXRlZCB0byBgaW5ldF9jc2tfbGlzdGVuX3N0b3BgIG9yIGEgc2ltaWxhciBmdW5jdGlvbiwgc28gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBjYWxsIGdyYXBoIHRvIGNvbmZpcm0gaXRzIHVzYWdlIGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSBuZXcgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgLiBJdCdzIGVzc2VudGlhbCB0byBncmFzcCBob3cgdGhlIGBpbmV0X3JlcXNrX2Nsb25lYCBmdW5jdGlvbiwgdGhlIG1vcmUgZXN0YWJsaXNoZWQgZnVuY3Rpb24sIGlzIGxldmVyYWdlZCBvciBtb2RpZmllZCBieSB0aGlzIG5ldyBNUFRDUCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpbmZvcm1hdGlvbiB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBpbnRlZ3JhdGlvbiBhbmQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZmVhdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY4NSwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDoyOS41NjM2MzE3ODFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEzMzA0OTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImluZXRfcmVxc2tfY2xvbmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTkwNT12b2lkIF9fcmVxc2tfZnJlZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTkxMy1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjkxNDpzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy05MTUtXFx0XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTEwMjc9c3RhdGljIHZvaWQgcmVxc2tfdGltZXJfaGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTA0My1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEwNDQ6XFx0XFx0bnJlcSA9IGluZXRfcmVxc2tfY2xvbmUocmVxLCBuc2spO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTA0NS1cXHRcXHRpZiAoIW5yZXEpXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTE0MTE9c3RydWN0IHNvY2sgKmluZXRfY3NrX2NvbXBsZXRlX2hhc2hkYW5jZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpjaGlsZCxcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTQyNC1cXHRcXHRcXHQvKiBob2xkIGEgcmVmY250IGZvciB0aGUgbnJlcS1cXHUwMDNlcnNrX2xpc3RlbmVyXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzoxNDI1OlxcdFxcdFxcdCAqIHdoaWNoIGlzIGFzc2lnbmVkIGluIGluZXRfcmVxc2tfY2xvbmUoKVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTQyNi1cXHRcXHRcXHQgKi9cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE0MjctXFx0XFx0XFx0c29ja19ob2xkKHNrKTtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE0Mjg6XFx0XFx0XFx0bnJlcSA9IGluZXRfcmVxc2tfY2xvbmUocmVxLCBzayk7XFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xNDI5LVxcdFxcdFxcdGlmICghbnJlcSkge1xcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz0xNDYwPXZvaWQgaW5ldF9jc2tfbGlzdGVuX3N0b3Aoc3RydWN0IHNvY2sgKnNrKVxcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xNDg0LVxcdFxcdGlmIChuc2spIHtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE0ODU6XFx0XFx0XFx0bnJlcSA9IGluZXRfcmVxc2tfY2xvbmUocmVxLCBuc2spO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTQ4Ni1cXHRcXHRcXHRpZiAobnJlcSkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDoyOS42NzY5NDQ5NjlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzMwMTA3MjExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVxdWVzdCBTb2NrZXQgQ2xvbmluZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSB0aGF0IGBpbmV0X3JlcXNrX2Nsb25lYCBpcyB0aGUgY2VudHJhbCBmdW5jdGlvbiBiZWluZyBtb2RpZmllZC4gSXQncyBjYWxsZWQgZnJvbSBhIGZldyBkaWZmZXJlbnQgcGxhY2VzOiBgcmVxc2tfdGltZXJfaGFuZGxlcmAsIGBpbmV0X2Nza19jb21wbGV0ZV9oYXNoZGFuY2VgLCBhbmQgYGluZXRfY3NrX2xpc3Rlbl9zdG9wYC4gSG1tLCBhbGwgcmVhY2hhYmxlLiBUaGUgaXNzdWUgdGhlIHBhdGNoIGFkZHJlc3NlcyBpcyB0aGUgbWlzc2luZyByZWZlcmVuY2UgY291bnQgaW5jcmVtZW50IGZvciBgc3ViZmxvd19yZXEtXHUwMDNlbXNrYCB3aGVuIGEgcmVxdWVzdCBzb2NrZXQgZ2V0cyBjbG9uZWQuIEdvdCBpdC5cblxuTm93LCBhIG5ldyBmdW5jdGlvbiwgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgLCBoYXMgYmVlbiBhZGRlZC4gVGhhdCdzIHRoZSBrZXkgaGVyZS4gSXQncyBub3Qgc3RhdGljLCB3aGljaCBtZWFucyBpdCdzIGV4cG9ydGVkIGFuZCBjYW4gYmUgY2FsbGVkIGZyb20gb3V0c2lkZSBpdHMgc291cmNlIGZpbGUuIExldCBtZSBjb25maXJtIHRoYXQuLi4gWXVwLCBkZWZpbmVkIGluIGBuZXQvbXB0Y3Avc3ViZmxvdy5jYCBhbmQgZGVjbGFyZWQgaW4gYGluY2x1ZGUvbmV0L21wdGNwLmhgLiBCaW5nby4gVGhpcyBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgZnVuY3Rpb24gbG9va3MgbGlrZSBteSBwcmltYXJ5IGZvY3VzIHN5bWJvbC4gTGV0IG1lIGRvdWJsZS1jaGVjayAtIGBpbmV0X3JlcXNrX2Nsb25lYCBpcyBzdGF0aWMsIHNvIGl0ICpzaG91bGRuJ3QqIGJlIGluIG15IEZvY3VzU3ltYm9scy4gYGluZXRfY3NrX2xpc3Rlbl9zdG9wYCBpcyBhIGdlbmVyYWwgaG90LXBhdGggZnVuY3Rpb24sIHNvIGxpa2VseSBjb21tb24uXG5cbkFscmlnaHQsIGlzIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCB0aGUgKm9ubHkqIHNpZ25pZmljYW50IGNoYW5nZSBoZXJlPyBZZXMsIGl0IGlzLiBJdCdzIHRoZSBuZXcgZnVuY3Rpb25hbGl0eSBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaC5cblxuTm93LCBJJ2xsIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZyBvcHRpb25zLiBUaGlzIHJlbGllcyBvbiBgTVBUQ1BgIHdoaWNoIGRlcGVuZHMgb24gYElORVRgLiBPa2F5LCBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBuZXQvbXB0Y3AvS2NvbmZpZ2AgZmlsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDcwMiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDozNi40MDcwNTUxOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjA1NjMwMzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXB0Y3AvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbXB0Y3AvS2NvbmZpZz0yPWNvbmZpZyBNUFRDUFxcbm5ldC9tcHRjcC9LY29uZmlnLTMtXFx0Ym9vbCBcXFwiTVBUQ1A6IE11bHRpcGF0aCBUQ1BcXFwiXFxubmV0L21wdGNwL0tjb25maWc6NDpcXHRkZXBlbmRzIG9uIElORVRcXG5uZXQvbXB0Y3AvS2NvbmZpZy01LVxcdHNlbGVjdCBTS0JfRVhURU5TSU9OU1xcbi0tXFxubmV0L21wdGNwL0tjb25maWc9MTY9Y29uZmlnIElORVRfTVBUQ1BfRElBR1xcbm5ldC9tcHRjcC9LY29uZmlnOjE3OlxcdGRlcGVuZHMgb24gSU5FVF9ESUFHXFxubmV0L21wdGNwL0tjb25maWctMTgtXFx0ZGVmX3RyaXN0YXRlIElORVRfRElBR1xcbi0tXFxubmV0L21wdGNwL0tjb25maWc9MjA9Y29uZmlnIE1QVENQX0lQVjZcXG5uZXQvbXB0Y3AvS2NvbmZpZy0yMS1cXHRib29sIFxcXCJNUFRDUDogSVB2NiBzdXBwb3J0IGZvciBNdWx0aXBhdGggVENQXFxcIlxcbm5ldC9tcHRjcC9LY29uZmlnOjIyOlxcdGRlcGVuZHMgb24gSVBWNj15XFxubmV0L21wdGNwL0tjb25maWctMjMtXFx0ZGVmYXVsdCB5XFxuLS1cXG5uZXQvbXB0Y3AvS2NvbmZpZz0yNT1jb25maWcgTVBUQ1BfS1VOSVRfVEVTVFxcbm5ldC9tcHRjcC9LY29uZmlnLTI2LVxcdHRyaXN0YXRlIFxcXCJUaGlzIGJ1aWxkcyB0aGUgTVBUQ1AgS1VuaXQgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5uZXQvbXB0Y3AvS2NvbmZpZzoyNzpcXHRkZXBlbmRzIG9uIEtVTklUXFxubmV0L21wdGNwL0tjb25maWctMjgtXFx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6MzYuODI3NjI0Mjc2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQxOTQ4Njc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBNUFRDUCBTdWJmbG93IFJlcXVlc3QgU29ja2V0IENsb25pbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIE1QVENQIGNvbmZpZ3VyYXRpb24sIGFuZCB0aGlzIHBhdGNoIGludHJvZHVjZXMgc29tZSBmdW5jdGlvbmFsIGNoYW5nZXMgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gTVBUQ1AuIFRoZSBrZXkgZnVuY3Rpb24gSSB3YW50IHRvIGZvY3VzIG9uIGlzIHRoaXMgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIOKAkyBpdCdzIHRoZSBuZXcgYWRkaXRpb24gYW5kIHNlZW1zIGxpa2UgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4gYE1QVENQYCBpcyBlbmFibGVkLCBhbmQgdGhhdCdzIHRoZSBzdGFydGluZyBwb2ludC5cblxuRmlyc3QsIGxldCdzIGp1c3QgY29uZmlybSBzb21ldGhpbmcuIEkgbmVlZCB0byBxdWlja2x5IHZlcmlmeSBpZiBgaW5ldF9yZXFza19jbG9uZWAgaXMgc3RhdGljLiBZZXMsIGl0IGlzLiBUaGF0J3MgZ29vZCB0byBrbm93LiBOb3csIGFyZSB0aGVyZSBhbnkgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgZ2VuZXJhbCBhcmVhIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQ/IEhtbW0sIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAgaXMgYSBwb3NzaWJpbGl0eTsgaXQncyBhIGJpdCBnZW5lcmljIGJ1dCBpdCdzIHdoZXJlIHRoZSBjbG9uaW5nIGFjdGlvbiBhY3R1YWxseSBoYXBwZW5zLiBCdXQsIG5vLCBJIHRoaW5rIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCBpcyBzdGlsbCB0aGUgYmVzdCBmb2N1cywgZXNwZWNpYWxseSB3aGVuIEkgcmVjYWxsIHRoYXQgYGluZXRfcmVxc2tfY2xvbmVgIGdldHMgY2FsbGVkIGZyb20gYHJlcXNrX3RpbWVyX2hhbmRsZXJgLCBgaW5ldF9jc2tfY29tcGxldGVfaGFzaGRhbmNlYCwgYW5kIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAuIEFsbCB0aG9zZSBmdW5jdGlvbnMgYXJlIGxvY2F0ZWQgaW4gYG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNgLiBUaGF0IHNvbGlkaWZpZXMgdGhlIHJlYXNvbmluZyB0byBmb2N1cyBvbiB0aGF0IGNsb25pbmcgZnVuY3Rpb24hXG5cbk9rYXksIGlzIHRoaXMgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uIGV4cG9ydGVkPyBJdCdzIG5vdCBleHBsaWNpdGx5IGV4cG9ydGVkIHdpdGggYEVYUE9SVF9TWU1CT0xgLCBidXQgaXQgYWxzbyBpc24ndCBzdGF0aWMsIHNvIGl0IHNob3VsZCBoYXZlIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MuIEl0J3MgY2FsbGVkIGZyb20gYGluZXRfcmVxc2tfY2xvbmVgLCB3aGljaCByZXNpZGVzIGluIGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYC4gU2luY2UgYG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNgIGlzIGJ1aWx0LWluIGFuZCBgbmV0L21wdGNwL3N1YmZsb3cuY2AgaXMgYWxzbyBidWlsdC1pbiBpZiBgTVBUQ1A9eWAsIGl0IHNob3VsZCBiZSBsaW5rZWQuIEZpbmFsbHksIGxldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgaXMgaW5kZWVkIGxvY2F0ZWQgaW4gYG5ldC9tcHRjcC9zdWJmbG93LmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NzU2LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDA4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDExOjIwOjQ0LjI0NzExNTEzNloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODM1NDI3MDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXB0Y3Avc3ViZmxvdy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcHRjcC9zdWJmbG93LmM9Mzg9c3RhdGljIHZvaWQgc3ViZmxvd19yZXFfZGVzdHJ1Y3RvcihzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXFxuLS1cXG5uZXQvbXB0Y3Avc3ViZmxvdy5jLTQ5LVxcbm5ldC9tcHRjcC9zdWJmbG93LmM6NTA6dm9pZCBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcXG5uZXQvbXB0Y3Avc3ViZmxvdy5jLTUxLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6NDQuMzMwNjY0NzA3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNDQwMjA4MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIHJlYXNvbmluZzpcblxuKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIEFwcGx5aW5nIGEgRml4KipcblxuWWVzLCB0aGF0IGNvbmZpcm1zIGl0LiBOb3csIEkgbmVlZCB0byBtYWtlIHN1cmUgd2UndmUgZXhoYXVzdGVkIGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgY29ycmVjdDsgdGhlIGBNUFRDUGAgY29uZmlndXJhdGlvbiBpcyB0aGUgcmVsZXZhbnQgb25lIGhlcmUuXG5cbkhlcmUncyB3aHk6IHRoZSBjb3JlIG9mIHRoZSBwcm9ibGVtIGxpZXMgaW4gdGhlIHBhdGNoJ3MgYWRkaXRpb24gb2YgdGhlIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCBmdW5jdGlvbi4gVGhlIGtleSB0YWtlYXdheSBpcyB0aGF0IHRoaXMgYWRkcmVzc2VzIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIHdpdGhpbiB0aGUgcHJvY2VzcyBvZiBjbG9uaW5nIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLiBXZSBhcmUgZmlybWx5IGluIHRoZSByZWFsbSBvZiBjcml0aWNhbCwgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYy5cblxuVGhlcmVmb3JlLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzcyLCJPdXRwdXRUb2tlbnMiOjk4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6NDkuNjc0Njg5MTAxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI5MDI0Mjk2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNUFRDUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCB0byBoYW5kbGUgY2xvbmluZyBvZiBNUFRDUCBzdWJmbG93IHJlcXVlc3Qgc29ja2V0cywgZml4aW5nIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlLiBUaGlzIGlzIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmsgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVBUQ1BcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgdG8gaGFuZGxlIGNsb25pbmcgb2YgTVBUQ1Agc3ViZmxvdyByZXF1ZXN0IHNvY2tldHMsIGZpeGluZyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZS4gVGhpcyBpcyByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow45lzk[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-04 10:54:24 +0000 UTC FinishedAt: 2026-08-04 11:20:51 +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": "2a33516f9ef59ad11844d4fc152f889449b5daf3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MPTCP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2a33516f9ef59ad11844d4fc152f889449b5daf3", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MPTCP" ], "series_id": "aa77127f-55e6-4764-a94f-6bcc2a4ef31f" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mptcp_subflow_reqsk_clone" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDExOjIwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01QVENQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCB0byBoYW5kbGUgY2xvbmluZyBvZiBNUFRDUCBzdWJmbG93IHJlcXVlc3Qgc29ja2V0cywgZml4aW5nIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlLiBUaGlzIGlzIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmsgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1YjVkMzBlNTZkNjFkNWE3NGQ4NzQ1OTdlMDNjYWE0YTA2OGUwODQwXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAxMToyMDoxOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9tcHRjcC5oIGIvaW5jbHVkZS9uZXQvbXB0Y3AuaFxuaW5kZXggNzFiOWZjNWE1Nzk2My4uNTFkNGIwMmY1YWZiMiAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbmV0L21wdGNwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L21wdGNwLmhcbkBAIC0yMjMsNiAmIzQzOzIyMyw3IEBAIGludCBtcHRjcF9zdWJmbG93X2luaXRfY29va2llX3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG4gc3RydWN0IHJlcXVlc3Rfc29jayAqbXB0Y3Bfc3ViZmxvd19yZXFza19hbGxvYyhjb25zdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrX29wcyAqb3BzLFxuIFx0XHRcdFx0XHQgICAgICAgc3RydWN0IHNvY2sgKnNrX2xpc3RlbmVyLFxuIFx0XHRcdFx0XHQgICAgICAgYm9vbCBhdHRhY2hfbGlzdGVuZXIpO1xuJiM0Mzt2b2lkIG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmUoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKTtcbiBcbiBfX2JlMzIgbXB0Y3BfZ2V0X3Jlc2V0X29wdGlvbihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbiBcbkBAIC0zMDksNiAmIzQzOzMxMCwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCByZXF1ZXN0X3NvY2sgKm1wdGNwX3N1YmZsb3dfcmVxc2tfYWxsb2MoY29uc3Qgc3RydWN0IHJlcXVlc1xuIFx0cmV0dXJuIE5VTEw7XG4gfVxuIFxuJiM0MztzdGF0aWMgaW5saW5lIHZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4mIzQzO3tcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW5saW5lIF9fYmUzMiBtcHRjcF9yZXNldF9vcHRpb24oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikgIHsgcmV0dXJuIGh0b25sKDB1KTsgfVxuIFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBtcHRjcF9hY3RpdmVfZGV0ZWN0X2JsYWNraG9sZShzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgZXhwaXJlZCkgeyB9XG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbmluZGV4IDU2OTAyYmJhNTQ4MzguLmYzZWY5YzE1YWMzNTkgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXG5AQCAtMTcsNiAmIzQzOzE3LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NuZXQvaW5ldF90aW1ld2FpdF9zb2NrLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQvaXAuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC9yb3V0ZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY25ldC9tcHRjcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3RjcF9zdGF0ZXMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC94ZnJtLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQvdGNwLmhcdTAwM2VcbkBAIC05NDYsOCAmIzQzOzk0NywxMyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG4gXHQvKiBXZSBuZWVkIG5vdCBhY3F1aXJlIGZhc3RvcGVucS1cdTAwM2Vsb2NrXG4gXHQgKiBiZWNhdXNlIHRoZSBjaGlsZCBzb2NrZXQgaXMgbG9ja2VkIGluIGluZXRfY3NrX2xpc3Rlbl9zdG9wKCkuXG4gXHQgKi9cbi1cdGlmIChzay1cdTAwM2Vza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCBcdTAwMjZcdTAwMjYgdGNwX3JzayhucmVxKS1cdTAwM2V0Zm9fbGlzdGVuZXIpXG4tXHRcdHJjdV9hc3NpZ25fcG9pbnRlcih0Y3Bfc2sobnJlcS1cdTAwM2VzayktXHUwMDNlZmFzdG9wZW5fcnNrLCBucmVxKTtcbiYjNDM7XHRpZiAoc2stXHUwMDNlc2tfcHJvdG9jb2wgPT0gSVBQUk9UT19UQ1ApIHtcbiYjNDM7XHRcdGlmICh0Y3BfcnNrKG5yZXEpLVx1MDAzZXRmb19saXN0ZW5lcilcbiYjNDM7XHRcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKHRjcF9zayhucmVxLVx1MDAzZXNrKS1cdTAwM2VmYXN0b3Blbl9yc2ssIG5yZXEpO1xuJiM0MztcbiYjNDM7XHRcdGlmIChyc2tfaXNfbXB0Y3AocmVxKSlcbiYjNDM7XHRcdFx0bXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShucmVxKTtcbiYjNDM7XHR9XG4gXG4gXHRyZXR1cm4gbnJlcTtcbiB9XG5kaWZmIC0tZ2l0IGEvbmV0L21wdGNwL3N1YmZsb3cuYyBiL25ldC9tcHRjcC9zdWJmbG93LmNcbmluZGV4IDhlMzg2ODk5Y2ViOTguLjFiNmFhNWU4Y2ZkNzMgMTAwNjQ0XG4tLS0gYS9uZXQvbXB0Y3Avc3ViZmxvdy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvbXB0Y3Avc3ViZmxvdy5jXG5AQCAtNDcsNiAmIzQzOzQ3LDE0IEBAIHN0YXRpYyB2b2lkIHN1YmZsb3dfcmVxX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuIFx0bXB0Y3BfdG9rZW5fZGVzdHJveV9yZXF1ZXN0KHJlcSk7XG4gfVxuIFxuJiM0Mzt2b2lkIG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmUoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IG1wdGNwX3N1YmZsb3dfcmVxdWVzdF9zb2NrICpzdWJmbG93X3JlcSA9IG1wdGNwX3N1YmZsb3dfcnNrKHJlcSk7XG4mIzQzO1xuJiM0MztcdGlmIChzdWJmbG93X3JlcS1cdTAwM2Vtc2spXG4mIzQzO1x0XHRzb2NrX2hvbGQoKHN0cnVjdCBzb2NrICopc3ViZmxvd19yZXEtXHUwMDNlbXNrKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgdm9pZCBzdWJmbG93X2dlbmVyYXRlX2htYWModTY0IGtleTEsIHU2NCBrZXkyLCB1MzIgbm9uY2UxLCB1MzIgbm9uY2UyLFxuIFx0XHRcdFx0ICB2b2lkICpobWFjKVxuIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVBUQ1AmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZnVuY3Rpb24gYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRvIGhhbmRsZSBjbG9uaW5nIG9mIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUuIFRoaXMgaXMgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDViNWQzMGU1NmQ2MWQ1YTc0ZDg3NDU5N2UwM2NhYTRhMDY4ZTA4NDAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyA0IDExOjIwOjE4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbXB0Y3AuaCBiL2luY2x1ZGUvbmV0L21wdGNwLmgKaW5kZXggNzFiOWZjNWE1Nzk2My4uNTFkNGIwMmY1YWZiMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbXB0Y3AuaAomIzQzOyYjNDM7JiM0MzsgYi9pbmNsdWRlL25ldC9tcHRjcC5oCkBAIC0yMjMsNiAmIzQzOzIyMyw3IEBAIGludCBtcHRjcF9zdWJmbG93X2luaXRfY29va2llX3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCiBzdHJ1Y3QgcmVxdWVzdF9zb2NrICptcHRjcF9zdWJmbG93X3JlcXNrX2FsbG9jKGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2tfb3BzICpvcHMsCiAJCQkJCSAgICAgICBzdHJ1Y3Qgc29jayAqc2tfbGlzdGVuZXIsCiAJCQkJCSAgICAgICBib29sIGF0dGFjaF9saXN0ZW5lcik7CiYjNDM7dm9pZCBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSk7CiAKIF9fYmUzMiBtcHRjcF9nZXRfcmVzZXRfb3B0aW9uKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpOwogCkBAIC0zMDksNiAmIzQzOzMxMCwxMCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCByZXF1ZXN0X3NvY2sgKm1wdGNwX3N1YmZsb3dfcmVxc2tfYWxsb2MoY29uc3Qgc3RydWN0IHJlcXVlcwogCXJldHVybiBOVUxMOwogfQogCiYjNDM7c3RhdGljIGlubGluZSB2b2lkIG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmUoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQomIzQzO3sKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW5saW5lIF9fYmUzMiBtcHRjcF9yZXNldF9vcHRpb24oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikgIHsgcmV0dXJuIGh0b25sKDB1KTsgfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgbXB0Y3BfYWN0aXZlX2RldGVjdF9ibGFja2hvbGUoc3RydWN0IHNvY2sgKnNrLCBib29sIGV4cGlyZWQpIHsgfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKaW5kZXggNTY5MDJiYmE1NDgzOC4uZjNlZjljMTVhYzM1OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCkBAIC0xNyw2ICYjNDM7MTcsNyBAQAogI2luY2x1ZGUgJmx0O25ldC9pbmV0X3RpbWV3YWl0X3NvY2suaCZndDsKICNpbmNsdWRlICZsdDtuZXQvaXAuaCZndDsKICNpbmNsdWRlICZsdDtuZXQvcm91dGUuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bmV0L21wdGNwLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bmV0L3RjcF9zdGF0ZXMuaCZndDsKICNpbmNsdWRlICZsdDtuZXQveGZybS5oJmd0OwogI2luY2x1ZGUgJmx0O25ldC90Y3AuaCZndDsKQEAgLTk0Niw4ICYjNDM7OTQ3LDEzIEBAIHN0YXRpYyBzdHJ1Y3QgcmVxdWVzdF9zb2NrICppbmV0X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSwKIAkvKiBXZSBuZWVkIG5vdCBhY3F1aXJlIGZhc3RvcGVucS0mZ3Q7bG9jawogCSAqIGJlY2F1c2UgdGhlIGNoaWxkIHNvY2tldCBpcyBsb2NrZWQgaW4gaW5ldF9jc2tfbGlzdGVuX3N0b3AoKS4KIAkgKi8KLQlpZiAoc2stJmd0O3NrX3Byb3RvY29sID09IElQUFJPVE9fVENQICZhbXA7JmFtcDsgdGNwX3JzayhucmVxKS0mZ3Q7dGZvX2xpc3RlbmVyKQotCQlyY3VfYXNzaWduX3BvaW50ZXIodGNwX3NrKG5yZXEtJmd0O3NrKS0mZ3Q7ZmFzdG9wZW5fcnNrLCBucmVxKTsKJiM0MzsJaWYgKHNrLSZndDtza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCkgewomIzQzOwkJaWYgKHRjcF9yc2sobnJlcSktJmd0O3Rmb19saXN0ZW5lcikKJiM0MzsJCQlyY3VfYXNzaWduX3BvaW50ZXIodGNwX3NrKG5yZXEtJmd0O3NrKS0mZ3Q7ZmFzdG9wZW5fcnNrLCBucmVxKTsKJiM0MzsKJiM0MzsJCWlmIChyc2tfaXNfbXB0Y3AocmVxKSkKJiM0MzsJCQltcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKG5yZXEpOwomIzQzOwl9CiAKIAlyZXR1cm4gbnJlcTsKIH0KZGlmZiAtLWdpdCBhL25ldC9tcHRjcC9zdWJmbG93LmMgYi9uZXQvbXB0Y3Avc3ViZmxvdy5jCmluZGV4IDhlMzg2ODk5Y2ViOTguLjFiNmFhNWU4Y2ZkNzMgMTAwNjQ0Ci0tLSBhL25ldC9tcHRjcC9zdWJmbG93LmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21wdGNwL3N1YmZsb3cuYwpAQCAtNDcsNiAmIzQzOzQ3LDE0IEBAIHN0YXRpYyB2b2lkIHN1YmZsb3dfcmVxX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQogCW1wdGNwX3Rva2VuX2Rlc3Ryb3lfcmVxdWVzdChyZXEpOwogfQogCiYjNDM7dm9pZCBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBtcHRjcF9zdWJmbG93X3JlcXVlc3Rfc29jayAqc3ViZmxvd19yZXEgPSBtcHRjcF9zdWJmbG93X3JzayhyZXEpOwomIzQzOwomIzQzOwlpZiAoc3ViZmxvd19yZXEtJmd0O21zaykKJiM0MzsJCXNvY2tfaG9sZCgoc3RydWN0IHNvY2sgKilzdWJmbG93X3JlcS0mZ3Q7bXNrKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBzdWJmbG93X2dlbmVyYXRlX2htYWModTY0IGtleTEsIHU2NCBrZXkyLCB1MzIgbm9uY2UxLCB1MzIgbm9uY2UyLAogCQkJCSAgdm9pZCAqaG1hYykKIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjkyMAoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDEyNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBhbiBleHBlcnQgaW4gdGhpcyBhcmVhOgoKKipBbmFseXppbmcgdGhlIE1QVENQIGFuZCBJUHY0IENvbm5lY3Rpb24gQ29kZSBQYXRjaCoqCgpBbHJpZ2h0LCBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgbWFraW5nIHNvbWUgbW9kaWZpY2F0aW9ucyB0byB0aGUgTVBUQ1AgYW5kIElQdjQgY29ubmVjdGlvbiBzb2NrZXQgY29kZSwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIHRoZSBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQgcHJvY2Vzcy4gSSBzZWUgdGhleSYjMzk7dmUgYWRkZWQgYSBuZXcgZnVuY3Rpb24sIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCwgd2hpY2ggaXMgYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIGBpbmV0X3JlcXNrX2Nsb25lYCBpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2AuIFRoYXQmIzM5O3MgYSBrZXkgc3BvdDsgYGluZXRfcmVxc2tfY2xvbmVgIGlzIGZ1bmRhbWVudGFsIHRvIGNyZWF0aW5nIG5ldyBjb25uZWN0aW9uIHJlcXVlc3RzLgoKSXQgbG9va3MgbGlrZSB0aGUgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uIGlzIGhhbmRsaW5nIHRoZSBwb3RlbnRpYWwgYXNzb2NpYXRpb24gb2YgdGhlIE1QVENQIHN1YmZsb3cmIzM5O3MgcmVxdWVzdCBzb2NrZXQgKGBzdWJmbG93X3JlcWApIHdpdGggaXRzIE11bHRpUGF0aCBUQ1AgS2V5IChgbXNrYCkuICBUaGUgY29kZSBleHBsaWNpdGx5IGhvbGRzIGEgcmVmZXJlbmNlIHRvIGBzdWJmbG93X3JlcS0mZ3Q7bXNrYCBpZiBvbmUgZXhpc3RzLiBUaGlzIGlzIGltcG9ydGFudDogaG9sZGluZyB0aGF0IHJlZmVyZW5jZSBpcyBjcnVjaWFsIHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBNUFRDUCBrZXkgZG9lc24mIzM5O3QgZ2V0IGNsZWFuZWQgdXAgYmVmb3JlIGl0JiMzOTtzIG5lZWRlZCBkdXJpbmcgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50LiBJIGhhdmUgdG8gdGhpbmsgYWJvdXQgdGhlIGxvY2tpbmcgYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpbiB0aGlzIGFyZWEuIEl0IHdpbGwgYmUgaW50ZXJlc3RpbmcgdG8gc2VlIGhvdyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgY2xvbmluZyBhbmQgcG90ZW50aWFsIHJlc291cmNlIG1hbmFnZW1lbnQgaW4gcmVsYXRpb24gdG8gSVB2NCBjb25uZWN0aW9uLgoKTm93LCBJIG5lZWQgdG8gdmVyaWZ5IGhvdyBNUFRDUCBpcyBjb25maWd1cmVkIGluIHRoaXMgc2V0dXAuIExldCYjMzk7cyBzZWUuLi4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBxdWlja2x5IGZpbmQgdGhlIHJlbGV2YW50IE1QVENQIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgY29uc2lzdGVudCB3aXRoIG15IGV4cGVjdGF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBlbmFibGVkLCBkaXNhYmxlZCwgYW5kIHRoZSBkZWZhdWx0IHNldHRpbmdzIGluIG9yZGVyIHRvIGZ1bGx5IGFzc2VzcyB0aGUgaW1wbGljYXRpb25zIG9mIHRoaXMgcGF0Y2guIFRoZSBjb250ZXh0IG9mIHRoZXNlIGNvbmZpZ3VyYXRpb25zIGFyZSBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGUgY2hhbmdlIHRvIHRoZSBNUFRDUCBjb2RlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDExOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNUFRDUCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tcHRjcC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tcHRjcC9LY29uZmlnLTEtXG5uZXQvbXB0Y3AvS2NvbmZpZzoyOmNvbmZpZyBNUFRDUFxubmV0L21wdGNwL0tjb25maWctMy1cdGJvb2wgXCYjMzQ7TVBUQ1A6IE11bHRpcGF0aCBUQ1BcJiMzNDtcbi0tXG5uZXQvbXB0Y3AvS2NvbmZpZz0xNj1jb25maWcgSU5FVF9NUFRDUF9ESUFHXG4tLVxubmV0L21wdGNwL0tjb25maWctMTktXG5uZXQvbXB0Y3AvS2NvbmZpZzoyMDpjb25maWcgTVBUQ1BfSVBWNlxubmV0L21wdGNwL0tjb25maWctMjEtXHRib29sIFwmIzM0O01QVENQOiBJUHY2IHN1cHBvcnQgZm9yIE11bHRpcGF0aCBUQ1BcJiMzNDtcbi0tXG5uZXQvbXB0Y3AvS2NvbmZpZy0yNC1cbm5ldC9tcHRjcC9LY29uZmlnOjI1OmNvbmZpZyBNUFRDUF9LVU5JVF9URVNUXG5uZXQvbXB0Y3AvS2NvbmZpZy0yNi1cdHRyaXN0YXRlIFwmIzM0O1RoaXMgYnVpbGRzIHRoZSBNUFRDUCBLVW5pdCB0ZXN0c1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY4NQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1QVENQIENvbmZpZ3VyYXRpb24gUGF0Y2gqKgoKT2theSwgc28gdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBoZXJlIGlzIGBNUFRDUGAuIFRoZSBwYXRjaCBpdHNlbGYgYXBwZWFycyB0byBmb2N1cyBvbiBtb2RpZmljYXRpb25zIHdpdGhpbiB0aGUgbmV0d29ya2luZyBzdGFjaywgc3BlY2lmaWNhbGx5IGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYCBhbmQgYG5ldC9tcHRjcC9zdWJmbG93LmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGNoYW5nZXMgaW1wYWN0IHRoZSBjb25uZWN0aW9uIHNvY2tldCBhbmQgc3ViZmxvdyBjcmVhdGlvbi4KClRoZSBjb3JlIGFkZGl0aW9uIGlzIGxpa2VseSB0aGUgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uLiBJIHJlY29nbml6ZSB0aGF0IHRoZSBjaGFuZ2VzIGFsc28gdG91Y2ggYGluZXRfcmVxc2tfY2xvbmVgLCBhbmQgdGhlIGxhdHRlciBpcyB3aGVyZSBJIHdhbnQgdG8gc3RhcnQuIEl0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uLCB3aGljaCBvZnRlbiBtZWFucyBpdCYjMzk7cyBsaW1pdGVkIGluIHNjb3BlIGFuZCB1c2VkIGludGVybmFsbHkgd2l0aGluIHRoZSBzYW1lIHNvdXJjZSBmaWxlLCB3aGljaCBpc24mIzM5O3QgYWx3YXlzIG9idmlvdXMgd2l0aG91dCBmdXJ0aGVyIGRpZ2dpbmcuIEJ1dCwgSSB0aGluayB0aGlzIGZ1bmN0aW9uIGlzIGFsc28gY2FsbGVkIGJ5IG9yIHJlbGF0ZWQgdG8gYGluZXRfY3NrX2xpc3Rlbl9zdG9wYCBvciBhIHNpbWlsYXIgZnVuY3Rpb24sIHNvIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNhbGwgZ3JhcGggdG8gY29uZmlybSBpdHMgdXNhZ2UgYW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gdGhlIG5ldyBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAuIEl0JiMzOTtzIGVzc2VudGlhbCB0byBncmFzcCBob3cgdGhlIGBpbmV0X3JlcXNrX2Nsb25lYCBmdW5jdGlvbiwgdGhlIG1vcmUgZXN0YWJsaXNoZWQgZnVuY3Rpb24sIGlzIGxldmVyYWdlZCBvciBtb2RpZmllZCBieSB0aGlzIG5ldyBNUFRDUCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpbmZvcm1hdGlvbiB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBpbnRlZ3JhdGlvbiBhbmQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZmVhdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpbmV0X3JlcXNrX2Nsb25lJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTkwNT12b2lkIF9fcmVxc2tfZnJlZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy05MTMtXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjkxNDpzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTkxNS1cdFx0XHRcdFx0ICAgICBzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz0xMDI3PXN0YXRpYyB2b2lkIHJlcXNrX3RpbWVyX2hhbmRsZXIoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xMDQzLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzoxMDQ0Olx0XHRucmVxID0gaW5ldF9yZXFza19jbG9uZShyZXEsIG5zayk7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTEwNDUtXHRcdGlmICghbnJlcSlcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTE0MTE9c3RydWN0IHNvY2sgKmluZXRfY3NrX2NvbXBsZXRlX2hhc2hkYW5jZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpjaGlsZCxcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE0MjQtXHRcdFx0LyogaG9sZCBhIHJlZmNudCBmb3IgdGhlIG5yZXEtXHUwMDNlcnNrX2xpc3RlbmVyXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE0MjU6XHRcdFx0ICogd2hpY2ggaXMgYXNzaWduZWQgaW4gaW5ldF9yZXFza19jbG9uZSgpXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE0MjYtXHRcdFx0ICovXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE0MjctXHRcdFx0c29ja19ob2xkKHNrKTtcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6MTQyODpcdFx0XHRucmVxID0gaW5ldF9yZXFza19jbG9uZShyZXEsIHNrKTtcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTQyOS1cdFx0XHRpZiAoIW5yZXEpIHtcbi0tXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTE0NjA9dm9pZCBpbmV0X2Nza19saXN0ZW5fc3RvcChzdHJ1Y3Qgc29jayAqc2spXG4tLVxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xNDg0LVx0XHRpZiAobnNrKSB7XG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE0ODU6XHRcdFx0bnJlcSA9IGluZXRfcmVxc2tfY2xvbmUocmVxLCBuc2spO1xubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xNDg2LVx0XHRcdGlmIChucmVxKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcwMgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDMxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlcXVlc3QgU29ja2V0IENsb25pbmcgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSB0aGF0IGBpbmV0X3JlcXNrX2Nsb25lYCBpcyB0aGUgY2VudHJhbCBmdW5jdGlvbiBiZWluZyBtb2RpZmllZC4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYSBmZXcgZGlmZmVyZW50IHBsYWNlczogYHJlcXNrX3RpbWVyX2hhbmRsZXJgLCBgaW5ldF9jc2tfY29tcGxldGVfaGFzaGRhbmNlYCwgYW5kIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAuIEhtbSwgYWxsIHJlYWNoYWJsZS4gVGhlIGlzc3VlIHRoZSBwYXRjaCBhZGRyZXNzZXMgaXMgdGhlIG1pc3NpbmcgcmVmZXJlbmNlIGNvdW50IGluY3JlbWVudCBmb3IgYHN1YmZsb3dfcmVxLSZndDttc2tgIHdoZW4gYSByZXF1ZXN0IHNvY2tldCBnZXRzIGNsb25lZC4gR290IGl0LgoKTm93LCBhIG5ldyBmdW5jdGlvbiwgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgLCBoYXMgYmVlbiBhZGRlZC4gVGhhdCYjMzk7cyB0aGUga2V5IGhlcmUuIEl0JiMzOTtzIG5vdCBzdGF0aWMsIHdoaWNoIG1lYW5zIGl0JiMzOTtzIGV4cG9ydGVkIGFuZCBjYW4gYmUgY2FsbGVkIGZyb20gb3V0c2lkZSBpdHMgc291cmNlIGZpbGUuIExldCBtZSBjb25maXJtIHRoYXQuLi4gWXVwLCBkZWZpbmVkIGluIGBuZXQvbXB0Y3Avc3ViZmxvdy5jYCBhbmQgZGVjbGFyZWQgaW4gYGluY2x1ZGUvbmV0L21wdGNwLmhgLiBCaW5nby4gVGhpcyBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgZnVuY3Rpb24gbG9va3MgbGlrZSBteSBwcmltYXJ5IGZvY3VzIHN5bWJvbC4gTGV0IG1lIGRvdWJsZS1jaGVjayAtIGBpbmV0X3JlcXNrX2Nsb25lYCBpcyBzdGF0aWMsIHNvIGl0ICpzaG91bGRuJiMzOTt0KiBiZSBpbiBteSBGb2N1c1N5bWJvbHMuIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAgaXMgYSBnZW5lcmFsIGhvdC1wYXRoIGZ1bmN0aW9uLCBzbyBsaWtlbHkgY29tbW9uLgoKQWxyaWdodCwgaXMgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRoZSAqb25seSogc2lnbmlmaWNhbnQgY2hhbmdlIGhlcmU/IFllcywgaXQgaXMuIEl0JiMzOTtzIHRoZSBuZXcgZnVuY3Rpb25hbGl0eSBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaC4KCk5vdywgSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgY29uZmlnIG9wdGlvbnMuIFRoaXMgcmVsaWVzIG9uIGBNUFRDUGAgd2hpY2ggZGVwZW5kcyBvbiBgSU5FVGAuIE9rYXksIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBuZXQvbXB0Y3AvS2NvbmZpZ2AgZmlsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkZXBlbmRzIG9uJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21wdGNwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21wdGNwL0tjb25maWc9Mj1jb25maWcgTVBUQ1Bcbm5ldC9tcHRjcC9LY29uZmlnLTMtXHRib29sIFwmIzM0O01QVENQOiBNdWx0aXBhdGggVENQXCYjMzQ7XG5uZXQvbXB0Y3AvS2NvbmZpZzo0Olx0ZGVwZW5kcyBvbiBJTkVUXG5uZXQvbXB0Y3AvS2NvbmZpZy01LVx0c2VsZWN0IFNLQl9FWFRFTlNJT05TXG4tLVxubmV0L21wdGNwL0tjb25maWc9MTY9Y29uZmlnIElORVRfTVBUQ1BfRElBR1xubmV0L21wdGNwL0tjb25maWc6MTc6XHRkZXBlbmRzIG9uIElORVRfRElBR1xubmV0L21wdGNwL0tjb25maWctMTgtXHRkZWZfdHJpc3RhdGUgSU5FVF9ESUFHXG4tLVxubmV0L21wdGNwL0tjb25maWc9MjA9Y29uZmlnIE1QVENQX0lQVjZcbm5ldC9tcHRjcC9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtNUFRDUDogSVB2NiBzdXBwb3J0IGZvciBNdWx0aXBhdGggVENQXCYjMzQ7XG5uZXQvbXB0Y3AvS2NvbmZpZzoyMjpcdGRlcGVuZHMgb24gSVBWNj15XG5uZXQvbXB0Y3AvS2NvbmZpZy0yMy1cdGRlZmF1bHQgeVxuLS1cbm5ldC9tcHRjcC9LY29uZmlnPTI1PWNvbmZpZyBNUFRDUF9LVU5JVF9URVNUXG5uZXQvbXB0Y3AvS2NvbmZpZy0yNi1cdHRyaXN0YXRlIFwmIzM0O1RoaXMgYnVpbGRzIHRoZSBNUFRDUCBLVW5pdCB0ZXN0c1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG5uZXQvbXB0Y3AvS2NvbmZpZzoyNzpcdGRlcGVuZHMgb24gS1VOSVRcbm5ldC9tcHRjcC9LY29uZmlnLTI4LVx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzU2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIE1QVENQIFN1YmZsb3cgUmVxdWVzdCBTb2NrZXQgQ2xvbmluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBNUFRDUCBjb25maWd1cmF0aW9uLCBhbmQgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHNvbWUgZnVuY3Rpb25hbCBjaGFuZ2VzIHNwZWNpZmljYWxseSByZWxhdGVkIHRvIE1QVENQLiBUaGUga2V5IGZ1bmN0aW9uIEkgd2FudCB0byBmb2N1cyBvbiBpcyB0aGlzIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCDigJMgaXQmIzM5O3MgdGhlIG5ldyBhZGRpdGlvbiBhbmQgc2VlbXMgbGlrZSBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nLiBgTVBUQ1BgIGlzIGVuYWJsZWQsIGFuZCB0aGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4KCkZpcnN0LCBsZXQmIzM5O3MganVzdCBjb25maXJtIHNvbWV0aGluZy4gSSBuZWVkIHRvIHF1aWNrbHkgdmVyaWZ5IGlmIGBpbmV0X3JlcXNrX2Nsb25lYCBpcyBzdGF0aWMuIFllcywgaXQgaXMuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBOb3csIGFyZSB0aGVyZSBhbnkgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgZ2VuZXJhbCBhcmVhIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQ/IEhtbW0sIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAgaXMgYSBwb3NzaWJpbGl0eTsgaXQmIzM5O3MgYSBiaXQgZ2VuZXJpYyBidXQgaXQmIzM5O3Mgd2hlcmUgdGhlIGNsb25pbmcgYWN0aW9uIGFjdHVhbGx5IGhhcHBlbnMuIEJ1dCwgbm8sIEkgdGhpbmsgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGlzIHN0aWxsIHRoZSBiZXN0IGZvY3VzLCBlc3BlY2lhbGx5IHdoZW4gSSByZWNhbGwgdGhhdCBgaW5ldF9yZXFza19jbG9uZWAgZ2V0cyBjYWxsZWQgZnJvbSBgcmVxc2tfdGltZXJfaGFuZGxlcmAsIGBpbmV0X2Nza19jb21wbGV0ZV9oYXNoZGFuY2VgLCBhbmQgYGluZXRfY3NrX2xpc3Rlbl9zdG9wYC4gQWxsIHRob3NlIGZ1bmN0aW9ucyBhcmUgbG9jYXRlZCBpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2AuIFRoYXQgc29saWRpZmllcyB0aGUgcmVhc29uaW5nIHRvIGZvY3VzIG9uIHRoYXQgY2xvbmluZyBmdW5jdGlvbiEKCk9rYXksIGlzIHRoaXMgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uIGV4cG9ydGVkPyBJdCYjMzk7cyBub3QgZXhwbGljaXRseSBleHBvcnRlZCB3aXRoIGBFWFBPUlRfU1lNQk9MYCwgYnV0IGl0IGFsc28gaXNuJiMzOTt0IHN0YXRpYywgc28gaXQgc2hvdWxkIGhhdmUgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYGluZXRfcmVxc2tfY2xvbmVgLCB3aGljaCByZXNpZGVzIGluIGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYC4gU2luY2UgYG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNgIGlzIGJ1aWx0LWluIGFuZCBgbmV0L21wdGNwL3N1YmZsb3cuY2AgaXMgYWxzbyBidWlsdC1pbiBpZiBgTVBUQ1A9eWAsIGl0IHNob3VsZCBiZSBsaW5rZWQuIEZpbmFsbHksIGxldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgaXMgaW5kZWVkIGxvY2F0ZWQgaW4gYG5ldC9tcHRjcC9zdWJmbG93LmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21wdGNwL3N1YmZsb3cuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbXB0Y3Avc3ViZmxvdy5jPTM4PXN0YXRpYyB2b2lkIHN1YmZsb3dfcmVxX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuLS1cbm5ldC9tcHRjcC9zdWJmbG93LmMtNDktXG5uZXQvbXB0Y3Avc3ViZmxvdy5jOjUwOnZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG5uZXQvbXB0Y3Avc3ViZmxvdy5jLTUxLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMTE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjc3MgoJCQkJCQkJb3V0cHV0OiA5OAoJCQkJCQkJdGhvdWdodHM6IDgyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gcmVhc29uaW5nOgoKKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIEFwcGx5aW5nIGEgRml4KioKClllcywgdGhhdCBjb25maXJtcyBpdC4gTm93LCBJIG5lZWQgdG8gbWFrZSBzdXJlIHdlJiMzOTt2ZSBleGhhdXN0ZWQgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyBjb3JyZWN0OyB0aGUgYE1QVENQYCBjb25maWd1cmF0aW9uIGlzIHRoZSByZWxldmFudCBvbmUgaGVyZS4KCkhlcmUmIzM5O3Mgd2h5OiB0aGUgY29yZSBvZiB0aGUgcHJvYmxlbSBsaWVzIGluIHRoZSBwYXRjaCYjMzk7cyBhZGRpdGlvbiBvZiB0aGUgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uLiBUaGUga2V5IHRha2Vhd2F5IGlzIHRoYXQgdGhpcyBhZGRyZXNzZXMgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgd2l0aGluIHRoZSBwcm9jZXNzIG9mIGNsb25pbmcgTVBUQ1Agc3ViZmxvdyByZXF1ZXN0IHNvY2tldHMuIFdlIGFyZSBmaXJtbHkgaW4gdGhlIHJlYWxtIG9mIGNyaXRpY2FsLCByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljLgoKVGhlcmVmb3JlLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAxMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVBUQ1AmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZnVuY3Rpb24gYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRvIGhhbmRsZSBjbG9uaW5nIG9mIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUuIFRoaXMgaXMgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVBUQ1AmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBuZXcgZnVuY3Rpb24gYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRvIGhhbmRsZSBjbG9uaW5nIG9mIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUuIFRoaXMgaXMgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDExOjIwOjE5LjgyNTE5NjU1M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5OTc4NTM2NjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1QVENQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBuZXcgZnVuY3Rpb24gYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIHRvIGhhbmRsZSBjbG9uaW5nIG9mIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUuIFRoaXMgaXMgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6MTkuODI1MjA0NjMzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTEyMzY4MDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA1YjVkMzBlNTZkNjFkNWE3NGQ4NzQ1OTdlMDNjYWE0YTA2OGUwODQwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgQXVnIDQgMTE6MjA6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbXB0Y3AuaCBiL2luY2x1ZGUvbmV0L21wdGNwLmhcXG5pbmRleCA3MWI5ZmM1YTU3OTYzLi41MWQ0YjAyZjVhZmIyIDEwMDY0NFxcbi0tLSBhL2luY2x1ZGUvbmV0L21wdGNwLmhcXG4rKysgYi9pbmNsdWRlL25ldC9tcHRjcC5oXFxuQEAgLTIyMyw2ICsyMjMsNyBAQCBpbnQgbXB0Y3Bfc3ViZmxvd19pbml0X2Nvb2tpZV9yZXEoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxLFxcbiBzdHJ1Y3QgcmVxdWVzdF9zb2NrICptcHRjcF9zdWJmbG93X3JlcXNrX2FsbG9jKGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2tfb3BzICpvcHMsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3Qgc29jayAqc2tfbGlzdGVuZXIsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgICBib29sIGF0dGFjaF9saXN0ZW5lcik7XFxuK3ZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpO1xcbiBcXG4gX19iZTMyIG1wdGNwX2dldF9yZXNldF9vcHRpb24oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuIFxcbkBAIC0zMDksNiArMzEwLDEwIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJlcXVlc3Rfc29jayAqbXB0Y3Bfc3ViZmxvd19yZXFza19hbGxvYyhjb25zdCBzdHJ1Y3QgcmVxdWVzXFxuIFxcdHJldHVybiBOVUxMO1xcbiB9XFxuIFxcbitzdGF0aWMgaW5saW5lIHZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXFxuK3tcXG4rfVxcbitcXG4gc3RhdGljIGlubGluZSBfX2JlMzIgbXB0Y3BfcmVzZXRfb3B0aW9uKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpICB7IHJldHVybiBodG9ubCgwdSk7IH1cXG4gXFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBtcHRjcF9hY3RpdmVfZGV0ZWN0X2JsYWNraG9sZShzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgZXhwaXJlZCkgeyB9XFxuZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuaW5kZXggNTY5MDJiYmE1NDgzOC4uZjNlZjljMTVhYzM1OSAxMDA2NDRcXG4tLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXFxuKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1xcbkBAIC0xNyw2ICsxNyw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvaW5ldF90aW1ld2FpdF9zb2NrLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvaXAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY25ldC9yb3V0ZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbmV0L21wdGNwLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvdGNwX3N0YXRlcy5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbmV0L3hmcm0uaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY25ldC90Y3AuaFxcdTAwM2VcXG5AQCAtOTQ2LDggKzk0NywxMyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXFxuIFxcdC8qIFdlIG5lZWQgbm90IGFjcXVpcmUgZmFzdG9wZW5xLVxcdTAwM2Vsb2NrXFxuIFxcdCAqIGJlY2F1c2UgdGhlIGNoaWxkIHNvY2tldCBpcyBsb2NrZWQgaW4gaW5ldF9jc2tfbGlzdGVuX3N0b3AoKS5cXG4gXFx0ICovXFxuLVxcdGlmIChzay1cXHUwMDNlc2tfcHJvdG9jb2wgPT0gSVBQUk9UT19UQ1AgXFx1MDAyNlxcdTAwMjYgdGNwX3JzayhucmVxKS1cXHUwMDNldGZvX2xpc3RlbmVyKVxcbi1cXHRcXHRyY3VfYXNzaWduX3BvaW50ZXIodGNwX3NrKG5yZXEtXFx1MDAzZXNrKS1cXHUwMDNlZmFzdG9wZW5fcnNrLCBucmVxKTtcXG4rXFx0aWYgKHNrLVxcdTAwM2Vza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCkge1xcbitcXHRcXHRpZiAodGNwX3JzayhucmVxKS1cXHUwMDNldGZvX2xpc3RlbmVyKVxcbitcXHRcXHRcXHRyY3VfYXNzaWduX3BvaW50ZXIodGNwX3NrKG5yZXEtXFx1MDAzZXNrKS1cXHUwMDNlZmFzdG9wZW5fcnNrLCBucmVxKTtcXG4rXFxuK1xcdFxcdGlmIChyc2tfaXNfbXB0Y3AocmVxKSlcXG4rXFx0XFx0XFx0bXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShucmVxKTtcXG4rXFx0fVxcbiBcXG4gXFx0cmV0dXJuIG5yZXE7XFxuIH1cXG5kaWZmIC0tZ2l0IGEvbmV0L21wdGNwL3N1YmZsb3cuYyBiL25ldC9tcHRjcC9zdWJmbG93LmNcXG5pbmRleCA4ZTM4Njg5OWNlYjk4Li4xYjZhYTVlOGNmZDczIDEwMDY0NFxcbi0tLSBhL25ldC9tcHRjcC9zdWJmbG93LmNcXG4rKysgYi9uZXQvbXB0Y3Avc3ViZmxvdy5jXFxuQEAgLTQ3LDYgKzQ3LDE0IEBAIHN0YXRpYyB2b2lkIHN1YmZsb3dfcmVxX2Rlc3RydWN0b3Ioc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxcbiBcXHRtcHRjcF90b2tlbl9kZXN0cm95X3JlcXVlc3QocmVxKTtcXG4gfVxcbiBcXG4rdm9pZCBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcXG4re1xcbitcXHRzdHJ1Y3QgbXB0Y3Bfc3ViZmxvd19yZXF1ZXN0X3NvY2sgKnN1YmZsb3dfcmVxID0gbXB0Y3Bfc3ViZmxvd19yc2socmVxKTtcXG4rXFxuK1xcdGlmIChzdWJmbG93X3JlcS1cXHUwMDNlbXNrKVxcbitcXHRcXHRzb2NrX2hvbGQoKHN0cnVjdCBzb2NrICopc3ViZmxvd19yZXEtXFx1MDAzZW1zayk7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIHN1YmZsb3dfZ2VuZXJhdGVfaG1hYyh1NjQga2V5MSwgdTY0IGtleTIsIHUzMiBub25jZTEsIHUzMiBub25jZTIsXFxuIFxcdFxcdFxcdFxcdCAgdm9pZCAqaG1hYylcXG4ge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDoyMC4zNzY5OTkzNzZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyOTQyNjcxNzUxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNUFRDUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCB0byBoYW5kbGUgY2xvbmluZyBvZiBNUFRDUCBzdWJmbG93IHJlcXVlc3Qgc29ja2V0cywgZml4aW5nIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlLiBUaGlzIGlzIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmsgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDViNWQzMGU1NmQ2MWQ1YTc0ZDg3NDU5N2UwM2NhYTRhMDY4ZTA4NDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEF1ZyA0IDExOjIwOjE4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbXB0Y3AuaCBiL2luY2x1ZGUvbmV0L21wdGNwLmhcbmluZGV4IDcxYjlmYzVhNTc5NjMuLjUxZDRiMDJmNWFmYjIgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9tcHRjcC5oXG4rKysgYi9pbmNsdWRlL25ldC9tcHRjcC5oXG5AQCAtMjIzLDYgKzIyMyw3IEBAIGludCBtcHRjcF9zdWJmbG93X2luaXRfY29va2llX3JlcShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG4gc3RydWN0IHJlcXVlc3Rfc29jayAqbXB0Y3Bfc3ViZmxvd19yZXFza19hbGxvYyhjb25zdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrX29wcyAqb3BzLFxuIFx0XHRcdFx0XHQgICAgICAgc3RydWN0IHNvY2sgKnNrX2xpc3RlbmVyLFxuIFx0XHRcdFx0XHQgICAgICAgYm9vbCBhdHRhY2hfbGlzdGVuZXIpO1xuK3ZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpO1xuIFxuIF9fYmUzMiBtcHRjcF9nZXRfcmVzZXRfb3B0aW9uKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpO1xuIFxuQEAgLTMwOSw2ICszMTAsMTAgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcmVxdWVzdF9zb2NrICptcHRjcF9zdWJmbG93X3JlcXNrX2FsbG9jKGNvbnN0IHN0cnVjdCByZXF1ZXNcbiBcdHJldHVybiBOVUxMO1xuIH1cbiBcbitzdGF0aWMgaW5saW5lIHZvaWQgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXG4re1xuK31cbitcbiBzdGF0aWMgaW5saW5lIF9fYmUzMiBtcHRjcF9yZXNldF9vcHRpb24oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikgIHsgcmV0dXJuIGh0b25sKDB1KTsgfVxuIFxuIHN0YXRpYyBpbmxpbmUgdm9pZCBtcHRjcF9hY3RpdmVfZGV0ZWN0X2JsYWNraG9sZShzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgZXhwaXJlZCkgeyB9XG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNcbmluZGV4IDU2OTAyYmJhNTQ4MzguLmYzZWY5YzE1YWMzNTkgMTAwNjQ0XG4tLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXG4rKysgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jXG5AQCAtMTcsNiArMTcsNyBAQFxuICNpbmNsdWRlIFx1MDAzY25ldC9pbmV0X3RpbWV3YWl0X3NvY2suaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC9pcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3JvdXRlLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NuZXQvbXB0Y3AuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC90Y3Bfc3RhdGVzLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQveGZybS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3RjcC5oXHUwMDNlXG5AQCAtOTQ2LDggKzk0NywxMyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXG4gXHQvKiBXZSBuZWVkIG5vdCBhY3F1aXJlIGZhc3RvcGVucS1cdTAwM2Vsb2NrXG4gXHQgKiBiZWNhdXNlIHRoZSBjaGlsZCBzb2NrZXQgaXMgbG9ja2VkIGluIGluZXRfY3NrX2xpc3Rlbl9zdG9wKCkuXG4gXHQgKi9cbi1cdGlmIChzay1cdTAwM2Vza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCBcdTAwMjZcdTAwMjYgdGNwX3JzayhucmVxKS1cdTAwM2V0Zm9fbGlzdGVuZXIpXG4tXHRcdHJjdV9hc3NpZ25fcG9pbnRlcih0Y3Bfc2sobnJlcS1cdTAwM2VzayktXHUwMDNlZmFzdG9wZW5fcnNrLCBucmVxKTtcbitcdGlmIChzay1cdTAwM2Vza19wcm90b2NvbCA9PSBJUFBST1RPX1RDUCkge1xuK1x0XHRpZiAodGNwX3JzayhucmVxKS1cdTAwM2V0Zm9fbGlzdGVuZXIpXG4rXHRcdFx0cmN1X2Fzc2lnbl9wb2ludGVyKHRjcF9zayhucmVxLVx1MDAzZXNrKS1cdTAwM2VmYXN0b3Blbl9yc2ssIG5yZXEpO1xuK1xuK1x0XHRpZiAocnNrX2lzX21wdGNwKHJlcSkpXG4rXHRcdFx0bXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZShucmVxKTtcbitcdH1cbiBcbiBcdHJldHVybiBucmVxO1xuIH1cbmRpZmYgLS1naXQgYS9uZXQvbXB0Y3Avc3ViZmxvdy5jIGIvbmV0L21wdGNwL3N1YmZsb3cuY1xuaW5kZXggOGUzODY4OTljZWI5OC4uMWI2YWE1ZThjZmQ3MyAxMDA2NDRcbi0tLSBhL25ldC9tcHRjcC9zdWJmbG93LmNcbisrKyBiL25ldC9tcHRjcC9zdWJmbG93LmNcbkBAIC00Nyw2ICs0NywxNCBAQCBzdGF0aWMgdm9pZCBzdWJmbG93X3JlcV9kZXN0cnVjdG9yKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcbiBcdG1wdGNwX3Rva2VuX2Rlc3Ryb3lfcmVxdWVzdChyZXEpO1xuIH1cbiBcbit2b2lkIG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmUoc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKVxuK3tcbitcdHN0cnVjdCBtcHRjcF9zdWJmbG93X3JlcXVlc3Rfc29jayAqc3ViZmxvd19yZXEgPSBtcHRjcF9zdWJmbG93X3JzayhyZXEpO1xuK1xuK1x0aWYgKHN1YmZsb3dfcmVxLVx1MDAzZW1zaylcbitcdFx0c29ja19ob2xkKChzdHJ1Y3Qgc29jayAqKXN1YmZsb3dfcmVxLVx1MDAzZW1zayk7XG4rfVxuK1xuIHN0YXRpYyB2b2lkIHN1YmZsb3dfZ2VuZXJhdGVfaG1hYyh1NjQga2V5MSwgdTY0IGtleTIsIHUzMiBub25jZTEsIHUzMiBub25jZTIsXG4gXHRcdFx0XHQgIHZvaWQgKmhtYWMpXG4ge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6MjAuMzc3MDAxOTg2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc0MDE0NjA4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IHBlcnNwZWN0aXZlIGFzIGFuIGV4cGVydCBpbiB0aGlzIGFyZWE6XG5cbioqQW5hbHl6aW5nIHRoZSBNUFRDUCBhbmQgSVB2NCBDb25uZWN0aW9uIENvZGUgUGF0Y2gqKlxuXG5BbHJpZ2h0LCBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIG1ha2luZyBzb21lIG1vZGlmaWNhdGlvbnMgdG8gdGhlIE1QVENQIGFuZCBJUHY0IGNvbm5lY3Rpb24gc29ja2V0IGNvZGUsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiB0aGUgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50IHByb2Nlc3MuIEkgc2VlIHRoZXkndmUgYWRkZWQgYSBuZXcgZnVuY3Rpb24sIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCwgd2hpY2ggaXMgYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIGBpbmV0X3JlcXNrX2Nsb25lYCBpbiBgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY2AuIFRoYXQncyBhIGtleSBzcG90OyBgaW5ldF9yZXFza19jbG9uZWAgaXMgZnVuZGFtZW50YWwgdG8gY3JlYXRpbmcgbmV3IGNvbm5lY3Rpb24gcmVxdWVzdHMuXG5cbkl0IGxvb2tzIGxpa2UgdGhlIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCBmdW5jdGlvbiBpcyBoYW5kbGluZyB0aGUgcG90ZW50aWFsIGFzc29jaWF0aW9uIG9mIHRoZSBNUFRDUCBzdWJmbG93J3MgcmVxdWVzdCBzb2NrZXQgKGBzdWJmbG93X3JlcWApIHdpdGggaXRzIE11bHRpUGF0aCBUQ1AgS2V5IChgbXNrYCkuICBUaGUgY29kZSBleHBsaWNpdGx5IGhvbGRzIGEgcmVmZXJlbmNlIHRvIGBzdWJmbG93X3JlcS1cdTAwM2Vtc2tgIGlmIG9uZSBleGlzdHMuIFRoaXMgaXMgaW1wb3J0YW50OiBob2xkaW5nIHRoYXQgcmVmZXJlbmNlIGlzIGNydWNpYWwgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIE1QVENQIGtleSBkb2Vzbid0IGdldCBjbGVhbmVkIHVwIGJlZm9yZSBpdCdzIG5lZWRlZCBkdXJpbmcgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50LiBJIGhhdmUgdG8gdGhpbmsgYWJvdXQgdGhlIGxvY2tpbmcgYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpbiB0aGlzIGFyZWEuIEl0IHdpbGwgYmUgaW50ZXJlc3RpbmcgdG8gc2VlIGhvdyB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgY2xvbmluZyBhbmQgcG90ZW50aWFsIHJlc291cmNlIG1hbmFnZW1lbnQgaW4gcmVsYXRpb24gdG8gSVB2NCBjb25uZWN0aW9uLlxuXG5Ob3csIEkgbmVlZCB0byB2ZXJpZnkgaG93IE1QVENQIGlzIGNvbmZpZ3VyZWQgaW4gdGhpcyBzZXR1cC4gTGV0J3Mgc2VlLi4uIEknbGwgdXNlIGBncmVwcGVyYCB0byBxdWlja2x5IGZpbmQgdGhlIHJlbGV2YW50IE1QVENQIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgaXMgY29uc2lzdGVudCB3aXRoIG15IGV4cGVjdGF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGVuYWJsZWQsIGRpc2FibGVkLCBhbmQgdGhlIGRlZmF1bHQgc2V0dGluZ3MgaW4gb3JkZXIgdG8gZnVsbHkgYXNzZXNzIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBwYXRjaC4gVGhlIGNvbnRleHQgb2YgdGhlc2UgY29uZmlndXJhdGlvbnMgYXJlIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgaW1wbGljYXRpb25zIG9mIHRoZSBjaGFuZ2UgdG8gdGhlIE1QVENQIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MjAsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDoyNS4xMTcxNTA0NjNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzY1MzQ4NzIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1QVENQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tcHRjcC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcHRjcC9LY29uZmlnLTEtXFxubmV0L21wdGNwL0tjb25maWc6Mjpjb25maWcgTVBUQ1BcXG5uZXQvbXB0Y3AvS2NvbmZpZy0zLVxcdGJvb2wgXFxcIk1QVENQOiBNdWx0aXBhdGggVENQXFxcIlxcbi0tXFxubmV0L21wdGNwL0tjb25maWc9MTY9Y29uZmlnIElORVRfTVBUQ1BfRElBR1xcbi0tXFxubmV0L21wdGNwL0tjb25maWctMTktXFxubmV0L21wdGNwL0tjb25maWc6MjA6Y29uZmlnIE1QVENQX0lQVjZcXG5uZXQvbXB0Y3AvS2NvbmZpZy0yMS1cXHRib29sIFxcXCJNUFRDUDogSVB2NiBzdXBwb3J0IGZvciBNdWx0aXBhdGggVENQXFxcIlxcbi0tXFxubmV0L21wdGNwL0tjb25maWctMjQtXFxubmV0L21wdGNwL0tjb25maWc6MjU6Y29uZmlnIE1QVENQX0tVTklUX1RFU1RcXG5uZXQvbXB0Y3AvS2NvbmZpZy0yNi1cXHR0cmlzdGF0ZSBcXFwiVGhpcyBidWlsZHMgdGhlIE1QVENQIEtVbml0IHRlc3RzXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDExOjIwOjI1LjE5MzY5MDc2NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzNjk5Mzg2MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNUFRDUCBDb25maWd1cmF0aW9uIFBhdGNoKipcblxuT2theSwgc28gdGhlIGtleSBjb25maWd1cmF0aW9uIG9wdGlvbiBoZXJlIGlzIGBNUFRDUGAuIFRoZSBwYXRjaCBpdHNlbGYgYXBwZWFycyB0byBmb2N1cyBvbiBtb2RpZmljYXRpb25zIHdpdGhpbiB0aGUgbmV0d29ya2luZyBzdGFjaywgc3BlY2lmaWNhbGx5IGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYCBhbmQgYG5ldC9tcHRjcC9zdWJmbG93LmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGNoYW5nZXMgaW1wYWN0IHRoZSBjb25uZWN0aW9uIHNvY2tldCBhbmQgc3ViZmxvdyBjcmVhdGlvbi5cblxuVGhlIGNvcmUgYWRkaXRpb24gaXMgbGlrZWx5IHRoZSBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgZnVuY3Rpb24uIEkgcmVjb2duaXplIHRoYXQgdGhlIGNoYW5nZXMgYWxzbyB0b3VjaCBgaW5ldF9yZXFza19jbG9uZWAsIGFuZCB0aGUgbGF0dGVyIGlzIHdoZXJlIEkgd2FudCB0byBzdGFydC4gSXQncyBhIHN0YXRpYyBmdW5jdGlvbiwgd2hpY2ggb2Z0ZW4gbWVhbnMgaXQncyBsaW1pdGVkIGluIHNjb3BlIGFuZCB1c2VkIGludGVybmFsbHkgd2l0aGluIHRoZSBzYW1lIHNvdXJjZSBmaWxlLCB3aGljaCBpc24ndCBhbHdheXMgb2J2aW91cyB3aXRob3V0IGZ1cnRoZXIgZGlnZ2luZy4gQnV0LCBJIHRoaW5rIHRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQgYnkgb3IgcmVsYXRlZCB0byBgaW5ldF9jc2tfbGlzdGVuX3N0b3BgIG9yIGEgc2ltaWxhciBmdW5jdGlvbiwgc28gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBjYWxsIGdyYXBoIHRvIGNvbmZpcm0gaXRzIHVzYWdlIGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIHRoZSBuZXcgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgLiBJdCdzIGVzc2VudGlhbCB0byBncmFzcCBob3cgdGhlIGBpbmV0X3JlcXNrX2Nsb25lYCBmdW5jdGlvbiwgdGhlIG1vcmUgZXN0YWJsaXNoZWQgZnVuY3Rpb24sIGlzIGxldmVyYWdlZCBvciBtb2RpZmllZCBieSB0aGlzIG5ldyBNUFRDUCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpbmZvcm1hdGlvbiB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBpbnRlZ3JhdGlvbiBhbmQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZmVhdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY4NSwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDoyOS41NjM2MzE3ODFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEzMzA0OTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImluZXRfcmVxc2tfY2xvbmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTkwNT12b2lkIF9fcmVxc2tfZnJlZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTkxMy1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjkxNDpzdGF0aWMgc3RydWN0IHJlcXVlc3Rfc29jayAqaW5ldF9yZXFza19jbG9uZShzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy05MTUtXFx0XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc29jayAqc2spXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTEwMjc9c3RhdGljIHZvaWQgcmVxc2tfdGltZXJfaGFuZGxlcihzdHJ1Y3QgdGltZXJfbGlzdCAqdClcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTA0My1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjEwNDQ6XFx0XFx0bnJlcSA9IGluZXRfcmVxc2tfY2xvbmUocmVxLCBuc2spO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTA0NS1cXHRcXHRpZiAoIW5yZXEpXFxuLS1cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jPTE0MTE9c3RydWN0IHNvY2sgKmluZXRfY3NrX2NvbXBsZXRlX2hhc2hkYW5jZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpjaGlsZCxcXG4tLVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTQyNC1cXHRcXHRcXHQvKiBob2xkIGEgcmVmY250IGZvciB0aGUgbnJlcS1cXHUwMDNlcnNrX2xpc3RlbmVyXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzoxNDI1OlxcdFxcdFxcdCAqIHdoaWNoIGlzIGFzc2lnbmVkIGluIGluZXRfcmVxc2tfY2xvbmUoKVxcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTQyNi1cXHRcXHRcXHQgKi9cXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jLTE0MjctXFx0XFx0XFx0c29ja19ob2xkKHNrKTtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE0Mjg6XFx0XFx0XFx0bnJlcSA9IGluZXRfcmVxc2tfY2xvbmUocmVxLCBzayk7XFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xNDI5LVxcdFxcdFxcdGlmICghbnJlcSkge1xcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYz0xNDYwPXZvaWQgaW5ldF9jc2tfbGlzdGVuX3N0b3Aoc3RydWN0IHNvY2sgKnNrKVxcbi0tXFxubmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYy0xNDg0LVxcdFxcdGlmIChuc2spIHtcXG5uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjE0ODU6XFx0XFx0XFx0bnJlcSA9IGluZXRfcmVxc2tfY2xvbmUocmVxLCBuc2spO1xcbm5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMtMTQ4Ni1cXHRcXHRcXHRpZiAobnJlcSkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDoyOS42NzY5NDQ5NjlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzMwMTA3MjExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVxdWVzdCBTb2NrZXQgQ2xvbmluZyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBJIHNlZSB0aGF0IGBpbmV0X3JlcXNrX2Nsb25lYCBpcyB0aGUgY2VudHJhbCBmdW5jdGlvbiBiZWluZyBtb2RpZmllZC4gSXQncyBjYWxsZWQgZnJvbSBhIGZldyBkaWZmZXJlbnQgcGxhY2VzOiBgcmVxc2tfdGltZXJfaGFuZGxlcmAsIGBpbmV0X2Nza19jb21wbGV0ZV9oYXNoZGFuY2VgLCBhbmQgYGluZXRfY3NrX2xpc3Rlbl9zdG9wYC4gSG1tLCBhbGwgcmVhY2hhYmxlLiBUaGUgaXNzdWUgdGhlIHBhdGNoIGFkZHJlc3NlcyBpcyB0aGUgbWlzc2luZyByZWZlcmVuY2UgY291bnQgaW5jcmVtZW50IGZvciBgc3ViZmxvd19yZXEtXHUwMDNlbXNrYCB3aGVuIGEgcmVxdWVzdCBzb2NrZXQgZ2V0cyBjbG9uZWQuIEdvdCBpdC5cblxuTm93LCBhIG5ldyBmdW5jdGlvbiwgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgLCBoYXMgYmVlbiBhZGRlZC4gVGhhdCdzIHRoZSBrZXkgaGVyZS4gSXQncyBub3Qgc3RhdGljLCB3aGljaCBtZWFucyBpdCdzIGV4cG9ydGVkIGFuZCBjYW4gYmUgY2FsbGVkIGZyb20gb3V0c2lkZSBpdHMgc291cmNlIGZpbGUuIExldCBtZSBjb25maXJtIHRoYXQuLi4gWXVwLCBkZWZpbmVkIGluIGBuZXQvbXB0Y3Avc3ViZmxvdy5jYCBhbmQgZGVjbGFyZWQgaW4gYGluY2x1ZGUvbmV0L21wdGNwLmhgLiBCaW5nby4gVGhpcyBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgZnVuY3Rpb24gbG9va3MgbGlrZSBteSBwcmltYXJ5IGZvY3VzIHN5bWJvbC4gTGV0IG1lIGRvdWJsZS1jaGVjayAtIGBpbmV0X3JlcXNrX2Nsb25lYCBpcyBzdGF0aWMsIHNvIGl0ICpzaG91bGRuJ3QqIGJlIGluIG15IEZvY3VzU3ltYm9scy4gYGluZXRfY3NrX2xpc3Rlbl9zdG9wYCBpcyBhIGdlbmVyYWwgaG90LXBhdGggZnVuY3Rpb24sIHNvIGxpa2VseSBjb21tb24uXG5cbkFscmlnaHQsIGlzIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCB0aGUgKm9ubHkqIHNpZ25pZmljYW50IGNoYW5nZSBoZXJlPyBZZXMsIGl0IGlzLiBJdCdzIHRoZSBuZXcgZnVuY3Rpb25hbGl0eSBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaC5cblxuTm93LCBJJ2xsIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZyBvcHRpb25zLiBUaGlzIHJlbGllcyBvbiBgTVBUQ1BgIHdoaWNoIGRlcGVuZHMgb24gYElORVRgLiBPa2F5LCBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBuZXQvbXB0Y3AvS2NvbmZpZ2AgZmlsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDcwMiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQxMToyMDozNi40MDcwNTUxOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjA1NjMwMzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXB0Y3AvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbXB0Y3AvS2NvbmZpZz0yPWNvbmZpZyBNUFRDUFxcbm5ldC9tcHRjcC9LY29uZmlnLTMtXFx0Ym9vbCBcXFwiTVBUQ1A6IE11bHRpcGF0aCBUQ1BcXFwiXFxubmV0L21wdGNwL0tjb25maWc6NDpcXHRkZXBlbmRzIG9uIElORVRcXG5uZXQvbXB0Y3AvS2NvbmZpZy01LVxcdHNlbGVjdCBTS0JfRVhURU5TSU9OU1xcbi0tXFxubmV0L21wdGNwL0tjb25maWc9MTY9Y29uZmlnIElORVRfTVBUQ1BfRElBR1xcbm5ldC9tcHRjcC9LY29uZmlnOjE3OlxcdGRlcGVuZHMgb24gSU5FVF9ESUFHXFxubmV0L21wdGNwL0tjb25maWctMTgtXFx0ZGVmX3RyaXN0YXRlIElORVRfRElBR1xcbi0tXFxubmV0L21wdGNwL0tjb25maWc9MjA9Y29uZmlnIE1QVENQX0lQVjZcXG5uZXQvbXB0Y3AvS2NvbmZpZy0yMS1cXHRib29sIFxcXCJNUFRDUDogSVB2NiBzdXBwb3J0IGZvciBNdWx0aXBhdGggVENQXFxcIlxcbm5ldC9tcHRjcC9LY29uZmlnOjIyOlxcdGRlcGVuZHMgb24gSVBWNj15XFxubmV0L21wdGNwL0tjb25maWctMjMtXFx0ZGVmYXVsdCB5XFxuLS1cXG5uZXQvbXB0Y3AvS2NvbmZpZz0yNT1jb25maWcgTVBUQ1BfS1VOSVRfVEVTVFxcbm5ldC9tcHRjcC9LY29uZmlnLTI2LVxcdHRyaXN0YXRlIFxcXCJUaGlzIGJ1aWxkcyB0aGUgTVBUQ1AgS1VuaXQgdGVzdHNcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5uZXQvbXB0Y3AvS2NvbmZpZzoyNzpcXHRkZXBlbmRzIG9uIEtVTklUXFxubmV0L21wdGNwL0tjb25maWctMjgtXFx0ZGVmYXVsdCBLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6MzYuODI3NjI0Mjc2WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQxOTQ4Njc4OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIHRoZSBNUFRDUCBTdWJmbG93IFJlcXVlc3QgU29ja2V0IENsb25pbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIE1QVENQIGNvbmZpZ3VyYXRpb24sIGFuZCB0aGlzIHBhdGNoIGludHJvZHVjZXMgc29tZSBmdW5jdGlvbmFsIGNoYW5nZXMgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gTVBUQ1AuIFRoZSBrZXkgZnVuY3Rpb24gSSB3YW50IHRvIGZvY3VzIG9uIGlzIHRoaXMgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIOKAkyBpdCdzIHRoZSBuZXcgYWRkaXRpb24gYW5kIHNlZW1zIGxpa2UgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4gYE1QVENQYCBpcyBlbmFibGVkLCBhbmQgdGhhdCdzIHRoZSBzdGFydGluZyBwb2ludC5cblxuRmlyc3QsIGxldCdzIGp1c3QgY29uZmlybSBzb21ldGhpbmcuIEkgbmVlZCB0byBxdWlja2x5IHZlcmlmeSBpZiBgaW5ldF9yZXFza19jbG9uZWAgaXMgc3RhdGljLiBZZXMsIGl0IGlzLiBUaGF0J3MgZ29vZCB0byBrbm93LiBOb3csIGFyZSB0aGVyZSBhbnkgb3RoZXIgZnVuY3Rpb25zIGluIHRoaXMgZ2VuZXJhbCBhcmVhIHRoYXQgbWlnaHQgYmUgcmVsZXZhbnQ/IEhtbW0sIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAgaXMgYSBwb3NzaWJpbGl0eTsgaXQncyBhIGJpdCBnZW5lcmljIGJ1dCBpdCdzIHdoZXJlIHRoZSBjbG9uaW5nIGFjdGlvbiBhY3R1YWxseSBoYXBwZW5zLiBCdXQsIG5vLCBJIHRoaW5rIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCBpcyBzdGlsbCB0aGUgYmVzdCBmb2N1cywgZXNwZWNpYWxseSB3aGVuIEkgcmVjYWxsIHRoYXQgYGluZXRfcmVxc2tfY2xvbmVgIGdldHMgY2FsbGVkIGZyb20gYHJlcXNrX3RpbWVyX2hhbmRsZXJgLCBgaW5ldF9jc2tfY29tcGxldGVfaGFzaGRhbmNlYCwgYW5kIGBpbmV0X2Nza19saXN0ZW5fc3RvcGAuIEFsbCB0aG9zZSBmdW5jdGlvbnMgYXJlIGxvY2F0ZWQgaW4gYG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNgLiBUaGF0IHNvbGlkaWZpZXMgdGhlIHJlYXNvbmluZyB0byBmb2N1cyBvbiB0aGF0IGNsb25pbmcgZnVuY3Rpb24hXG5cbk9rYXksIGlzIHRoaXMgYG1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVgIGZ1bmN0aW9uIGV4cG9ydGVkPyBJdCdzIG5vdCBleHBsaWNpdGx5IGV4cG9ydGVkIHdpdGggYEVYUE9SVF9TWU1CT0xgLCBidXQgaXQgYWxzbyBpc24ndCBzdGF0aWMsIHNvIGl0IHNob3VsZCBoYXZlIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MuIEl0J3MgY2FsbGVkIGZyb20gYGluZXRfcmVxc2tfY2xvbmVgLCB3aGljaCByZXNpZGVzIGluIGBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jYC4gU2luY2UgYG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmNgIGlzIGJ1aWx0LWluIGFuZCBgbmV0L21wdGNwL3N1YmZsb3cuY2AgaXMgYWxzbyBidWlsdC1pbiBpZiBgTVBUQ1A9eWAsIGl0IHNob3VsZCBiZSBsaW5rZWQuIEZpbmFsbHksIGxldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgaXMgaW5kZWVkIGxvY2F0ZWQgaW4gYG5ldC9tcHRjcC9zdWJmbG93LmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NzU2LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDA4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDExOjIwOjQ0LjI0NzExNTEzNloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODM1NDI3MDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXB0Y3Avc3ViZmxvdy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcHRjcC9zdWJmbG93LmM9Mzg9c3RhdGljIHZvaWQgc3ViZmxvd19yZXFfZGVzdHJ1Y3RvcihzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEpXFxuLS1cXG5uZXQvbXB0Y3Avc3ViZmxvdy5jLTQ5LVxcbm5ldC9tcHRjcC9zdWJmbG93LmM6NTA6dm9pZCBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lKHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSlcXG5uZXQvbXB0Y3Avc3ViZmxvdy5jLTUxLXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6NDQuMzMwNjY0NzA3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzNDQwMjA4MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIHJlYXNvbmluZzpcblxuKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIEFwcGx5aW5nIGEgRml4KipcblxuWWVzLCB0aGF0IGNvbmZpcm1zIGl0LiBOb3csIEkgbmVlZCB0byBtYWtlIHN1cmUgd2UndmUgZXhoYXVzdGVkIGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgY29ycmVjdDsgdGhlIGBNUFRDUGAgY29uZmlndXJhdGlvbiBpcyB0aGUgcmVsZXZhbnQgb25lIGhlcmUuXG5cbkhlcmUncyB3aHk6IHRoZSBjb3JlIG9mIHRoZSBwcm9ibGVtIGxpZXMgaW4gdGhlIHBhdGNoJ3MgYWRkaXRpb24gb2YgdGhlIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCBmdW5jdGlvbi4gVGhlIGtleSB0YWtlYXdheSBpcyB0aGF0IHRoaXMgYWRkcmVzc2VzIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIHdpdGhpbiB0aGUgcHJvY2VzcyBvZiBjbG9uaW5nIE1QVENQIHN1YmZsb3cgcmVxdWVzdCBzb2NrZXRzLiBXZSBhcmUgZmlybWx5IGluIHRoZSByZWFsbSBvZiBjcml0aWNhbCwgcmVhY2hhYmxlIGNvcmUgbmV0d29yayBsb2dpYy5cblxuVGhlcmVmb3JlLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NzcyLCJPdXRwdXRUb2tlbnMiOjk4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMTE6MjA6NDkuNjc0Njg5MTAxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI5MDI0Mjk2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNUFRDUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1wdGNwX3N1YmZsb3dfcmVxc2tfY2xvbmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgbmV3IGZ1bmN0aW9uIGBtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lYCB0byBoYW5kbGUgY2xvbmluZyBvZiBNUFRDUCBzdWJmbG93IHJlcXVlc3Qgc29ja2V0cywgZml4aW5nIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlLiBUaGlzIGlzIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmsgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVBUQ1BcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtcHRjcF9zdWJmbG93X3JlcXNrX2Nsb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIG5ldyBmdW5jdGlvbiBgbXB0Y3Bfc3ViZmxvd19yZXFza19jbG9uZWAgdG8gaGFuZGxlIGNsb25pbmcgb2YgTVBUQ1Agc3ViZmxvdyByZXF1ZXN0IHNvY2tldHMsIGZpeGluZyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZS4gVGhpcyBpcyByZWFjaGFibGUgY29yZSBuZXR3b3JrIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflow45lzk[1] Phase: Succeeded StartedAt: 2026-08-04 11:21:01 +0000 UTC FinishedAt: 2026-08-04 11:21:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-04 11:21:01 +0000 UTC FinishedAt: 2026-08-04 11:21:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2] Phase: Succeeded StartedAt: 2026-08-04 11:21:01 +0000 UTC FinishedAt: 2026-08-04 15:03:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:21:01 +0000 UTC FinishedAt: 2026-08-04 15:03:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:21:01 +0000 UTC FinishedAt: 2026-08-04 11:21:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:21:01 +0000 UTC FinishedAt: 2026-08-04 11:21:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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-workflow45lzk/series-workflow45lzk-convert-artifact-4206302765/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:21:11 +0000 UTC FinishedAt: 2026-08-04 11:37:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:21:11 +0000 UTC FinishedAt: 2026-08-04 11:37:10 +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:*4742220b-c20f-474f-ab5b-22f5600a1014,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-workflow45lzk/series-workflow45lzk-convert-artifact-4206302765/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": "b72ad9ec-b7ba-4c4d-817a-8a8350788c27", "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-workflow45lzk/series-workflow45lzk-build-action-3333771811/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:21:11 +0000 UTC FinishedAt: 2026-08-04 11:37:00 +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:*4742220b-c20f-474f-ab5b-22f5600a1014,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-workflow45lzk/series-workflow45lzk-convert-artifact-4206302765/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": "b72ad9ec-b7ba-4c4d-817a-8a8350788c27", "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-workflow45lzk/series-workflow45lzk-build-action-3333771811/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:37:10 +0000 UTC FinishedAt: 2026-08-04 11:37:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:37:10 +0000 UTC FinishedAt: 2026-08-04 11:37:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:37:10 +0000 UTC FinishedAt: 2026-08-04 11:37:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:37:10 +0000 UTC FinishedAt: 2026-08-04 11:37:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-workflow45lzk/series-workflow45lzk-convert-artifact-1599738760/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:37:20 +0000 UTC FinishedAt: 2026-08-04 11:38:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:37:20 +0000 UTC FinishedAt: 2026-08-04 11:38:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b72ad9ec-b7ba-4c4d-817a-8a8350788c27,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-workflow45lzk/series-workflow45lzk-build-action-3333771811/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-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:38:49 +0000 UTC FinishedAt: 2026-08-04 11:38:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:38:49 +0000 UTC FinishedAt: 2026-08-04 11:38:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:38:49 +0000 UTC FinishedAt: 2026-08-04 11:58:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:38:49 +0000 UTC FinishedAt: 2026-08-04 11:58:06 +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:*4742220b-c20f-474f-ab5b-22f5600a1014,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-workflow45lzk/series-workflow45lzk-convert-artifact-1599738760/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": "ab7c3b2c-0dd5-4d85-9d61-a783fb1d999e", "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-workflow45lzk/series-workflow45lzk-build-action-1311946548/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:38:49 +0000 UTC FinishedAt: 2026-08-04 11:57:56 +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:*4742220b-c20f-474f-ab5b-22f5600a1014,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-workflow45lzk/series-workflow45lzk-convert-artifact-1599738760/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": "ab7c3b2c-0dd5-4d85-9d61-a783fb1d999e", "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-workflow45lzk/series-workflow45lzk-build-action-1311946548/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:58:06 +0000 UTC FinishedAt: 2026-08-04 11:58:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:58:06 +0000 UTC FinishedAt: 2026-08-04 11:58:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:58:06 +0000 UTC FinishedAt: 2026-08-04 12:00:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 11:58:06 +0000 UTC FinishedAt: 2026-08-04 12:00:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ab7c3b2c-0dd5-4d85-9d61-a783fb1d999e,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-workflow45lzk/series-workflow45lzk-build-action-1311946548/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-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:14 +0000 UTC FinishedAt: 2026-08-04 15:03:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:14 +0000 UTC FinishedAt: 2026-08-04 15:03:02 +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":["mptcp_subflow_reqsk_clone"],"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:*b72ad9ec-b7ba-4c4d-817a-8a8350788c27,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ab7c3b2c-0dd5-4d85-9d61-a783fb1d999e,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-workflow45lzk/series-workflow45lzk-build-action-3333771811/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-workflow45lzk/series-workflow45lzk-build-action-1311946548/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:14 +0000 UTC FinishedAt: 2026-08-04 12:00:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:14 +0000 UTC FinishedAt: 2026-08-04 12:00:29 +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":["mptcp_subflow_reqsk_clone"],"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-workflow45lzk/series-workflow45lzk-convert-artifact-3013028929/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:14 +0000 UTC FinishedAt: 2026-08-04 12:00:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:14 +0000 UTC FinishedAt: 2026-08-04 12:00:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:15 +0000 UTC FinishedAt: 2026-08-04 12:00:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:50 +0000 UTC FinishedAt: 2026-08-04 15:03:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow45lzk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"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":["mptcp_subflow_reqsk_clone"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2a33516f9ef59ad11844d4fc152f889449b5daf3","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPTCP"],"series_id":"aa77127f-55e6-4764-a94f-6bcc2a4ef31f","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-04 12:00:50 +0000 UTC FinishedAt: 2026-08-04 15:02:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b72ad9ec-b7ba-4c4d-817a-8a8350788c27,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ab7c3b2c-0dd5-4d85-9d61-a783fb1d999e,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-workflow45lzk/series-workflow45lzk-build-action-3333771811/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-workflow45lzk/series-workflow45lzk-build-action-1311946548/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-workflow45lzk/series-workflow45lzk-convert-artifact-3013028929/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,}