Name: series-workflowzbzbs Phase: Succeeded StartedAt: 2026-07-16 22:22:25 +0000 UTC FinishedAt: 2026-07-17 02:48:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[0] Phase: Succeeded StartedAt: 2026-07-16 22:22:25 +0000 UTC FinishedAt: 2026-07-16 22:47:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[0].run-triage Phase: Succeeded StartedAt: 2026-07-16 22:22:25 +0000 UTC FinishedAt: 2026-07-16 22:47:40 +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": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MPLS", "MPLS_ROUTING" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MPLS", "MPLS_ROUTING" ], "series_id": "ad12edb2-c036-400a-9830-f46d796a74a8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mpls_nh_build_multi", "mpls_route_add", "mpls_rtm_newroute" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01QTFMmIzM0OywKICAgICYjMzQ7TVBMU19ST1VUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXBsc19uaF9idWlsZF9tdWx0aSYjMzQ7LAogICAgJiMzNDttcGxzX3JvdXRlX2FkZCYjMzQ7LAogICAgJiMzNDttcGxzX3J0bV9uZXdyb3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBlcnJvciBoYW5kbGluZyB3aGVuIGJ1aWxkaW5nIG11bHRpLXBhdGggTVBMUyByb3V0ZXMsIHdoZXJlIHRoZSBudW1iZXIgb2YgbmV4dGhvcHMgd2FzIGluY29ycmVjdGx5IHVwZGF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBNUExTIHJvdXRpbmcgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkMjdhZGFjOWY3ZGU1NWI5ZThjZTMzY2FlZmQwNjBmMGMxZDJjNzFhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMTYgMjI6NDU6MTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21wbHMvYWZfbXBscy5jIGIvbmV0L21wbHMvYWZfbXBscy5jXG5pbmRleCBjYTUwNGQ5NjI2Y2ZmNy4uNGE4MTUxNGU5MTlhMDYgMTAwNjQ0XG4tLS0gYS9uZXQvbXBscy9hZl9tcGxzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tcGxzL2FmX21wbHMuY1xuQEAgLTkyMiw4ICYjNDM7OTIyLDcgQEAgc3RhdGljIGludCBtcGxzX25oX2J1aWxkX211bHRpKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxuIFx0c3RydWN0IG5sYXR0ciAqbmxhX3ZpYSwgKm5sYV9uZXdkc3Q7XG4gXHRpbnQgcmVtYWluaW5nID0gY2ZnLVx1MDAzZXJjX21wX2xlbjtcbiBcdGludCBlcnIgPSAwO1xuLVxuLVx0cnQtXHUwMDNlcnRfbmhuID0gMDtcbiYjNDM7XHR1OCBuaHMgPSAwO1xuIFxuIFx0Y2hhbmdlX25leHRob3BzKHJ0KSB7XG4gXHRcdGludCBhdHRybGVuO1xuQEAgLTk1OSwxMiAmIzQzOzk1OCwxNSBAQCBzdGF0aWMgaW50IG1wbHNfbmhfYnVpbGRfbXVsdGkoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXG4gXHRcdFx0cnQtXHUwMDNlcnRfbmhuX2FsaXZlLS07XG4gXG4gXHRcdHJ0bmggPSBydG5oX25leHQocnRuaCwgXHUwMDI2cmVtYWluaW5nKTtcbi1cdFx0cnQtXHUwMDNlcnRfbmhuJiM0MzsmIzQzOztcbiYjNDM7XHRcdG5ocyYjNDM7JiM0Mzs7XG4gXHR9IGVuZGZvcl9uZXh0aG9wcyhydCk7XG4gXG4mIzQzO1x0cnQtXHUwMDNlcnRfbmhuID0gbmhzO1xuJiM0MztcbiBcdHJldHVybiAwO1xuIFxuIGVycm91dDpcbiYjNDM7XHRydC1cdTAwM2VydF9uaG4gPSBuaHM7XG4gXHRyZXR1cm4gZXJyO1xuIH1cbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNUExTJiMzNDssCiAgICAmIzM0O01QTFNfUk9VVElORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21wbHNfbmhfYnVpbGRfbXVsdGkmIzM0OywKICAgICYjMzQ7bXBsc19yb3V0ZV9hZGQmIzM0OywKICAgICYjMzQ7bXBsc19ydG1fbmV3cm91dGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gZXJyb3IgaGFuZGxpbmcgd2hlbiBidWlsZGluZyBtdWx0aS1wYXRoIE1QTFMgcm91dGVzLCB3aGVyZSB0aGUgbnVtYmVyIG9mIG5leHRob3BzIHdhcyBpbmNvcnJlY3RseSB1cGRhdGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgTVBMUyByb3V0aW5nIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkMjdhZGFjOWY3ZGU1NWI5ZThjZTMzY2FlZmQwNjBmMGMxZDJjNzFhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMTYgMjI6NDU6MTQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbXBscy9hZl9tcGxzLmMgYi9uZXQvbXBscy9hZl9tcGxzLmMKaW5kZXggY2E1MDRkOTYyNmNmZjcuLjRhODE1MTRlOTE5YTA2IDEwMDY0NAotLS0gYS9uZXQvbXBscy9hZl9tcGxzLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21wbHMvYWZfbXBscy5jCkBAIC05MjIsOCAmIzQzOzkyMiw3IEBAIHN0YXRpYyBpbnQgbXBsc19uaF9idWlsZF9tdWx0aShzdHJ1Y3QgbXBsc19yb3V0ZV9jb25maWcgKmNmZywKIAlzdHJ1Y3QgbmxhdHRyICpubGFfdmlhLCAqbmxhX25ld2RzdDsKIAlpbnQgcmVtYWluaW5nID0gY2ZnLSZndDtyY19tcF9sZW47CiAJaW50IGVyciA9IDA7Ci0KLQlydC0mZ3Q7cnRfbmhuID0gMDsKJiM0MzsJdTggbmhzID0gMDsKIAogCWNoYW5nZV9uZXh0aG9wcyhydCkgewogCQlpbnQgYXR0cmxlbjsKQEAgLTk1OSwxMiAmIzQzOzk1OCwxNSBAQCBzdGF0aWMgaW50IG1wbHNfbmhfYnVpbGRfbXVsdGkoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsCiAJCQlydC0mZ3Q7cnRfbmhuX2FsaXZlLS07CiAKIAkJcnRuaCA9IHJ0bmhfbmV4dChydG5oLCAmYW1wO3JlbWFpbmluZyk7Ci0JCXJ0LSZndDtydF9uaG4mIzQzOyYjNDM7OwomIzQzOwkJbmhzJiM0MzsmIzQzOzsKIAl9IGVuZGZvcl9uZXh0aG9wcyhydCk7CiAKJiM0MzsJcnQtJmd0O3J0X25obiA9IG5oczsKJiM0MzsKIAlyZXR1cm4gMDsKIAogZXJyb3V0OgomIzQzOwlydC0mZ3Q7cnRfbmhuID0gbmhzOwogCXJldHVybiBlcnI7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5MgoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDE1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1QTFMgUm91dGUgTmV4dCBIb3AgQnVpbGQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9tcGxzL2FmX21wbHMuY2AsIHNwZWNpZmljYWxseSB0aGUgYG1wbHNfbmhfYnVpbGRfbXVsdGlgIGZ1bmN0aW9uLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGhvdyB0aGUgbmV4dCBob3AgY291bnQsIGBydC0mZ3Q7cnRfbmhuYCwgaXMgaGFuZGxlZC4gUHJldmlvdXNseSwgaXQgd2FzIGluY3JlbWVudGVkIGRpcmVjdGx5IGluc2lkZSB0aGUgbG9vcCwgdXNpbmcgYHJ0LSZndDtydF9uaG4gPSAwO2AgYW5kIGBydC0mZ3Q7cnRfbmhuJiM0MzsmIzQzOztgLgoKTm93LCB0aGV5JiMzOTt2ZSBpbnRyb2R1Y2VkIGEgbG9jYWwgdmFyaWFibGUsIGBuaHNgLCB0byBhY2N1bXVsYXRlIHRoZSBjb3VudCB3aXRoaW4gdGhlIGxvb3AuIEZpbmFsbHksIGBydC0mZ3Q7cnRfbmhuYCBpcyB1cGRhdGVkIHdpdGggdGhlIHZhbHVlIG9mIGBuaHNgIGF0IHRoZSBlbmQgb2YgdGhlIGxvb3AgYW5kIHdpdGhpbiB0aGUgZXJyb3IgaGFuZGxpbmcgcGF0aHMuIFRoaXMgaXMgYSBjbGFzc2ljIHJlZmFjdG9yaW5nIHRlY2huaXF1ZS4gSXQgbG9va3MgbGlrZSB0aGUgaW50ZW50aW9uIGlzIGRlZmluaXRlbHkgdG8gZWxpbWluYXRlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIG9yIHRvIGF2b2lkIGxlYXZpbmcgYHJ0LSZndDtydF9uaG5gIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyBkdXJpbmcgdGhlIG5leHQgaG9wIGJ1aWxkLiBJdCYjMzk7cyBsaWtlbHkgYWRkcmVzc2luZyBhIGJ1ZyB3aGVyZSB0aGUgYHJ0LSZndDtydF9uaG5gIG1pZ2h0IGhhdmUgYmVlbiBsZWZ0IG9ubHkgcGFydGlhbGx5IHVwZGF0ZWQgb24gYW4gZXJyb3IgcGF0aCwgd2hpY2ggd291bGQgYmUgZGlzYXN0cm91cy4gVGhpcyBtYWtlcyBzZW5zZS4gSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgZXJyb3IgY29uZGl0aW9ucyBpbiBgbXBsc19uaF9idWlsZF9tdWx0aWAgdG8gY29uZmlybSB0aGUgZXhhY3QgbmF0dXJlIG9mIHRoZSB2dWxuZXJhYmlsaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21wbHNfbmhfYnVpbGRfbXVsdGkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbXBscy9hZl9tcGxzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21wbHMvYWZfbXBscy5jPTg2OD1zdGF0aWMgdTggbXBsc19jb3VudF9uZXh0aG9wcyhzdHJ1Y3QgcnRuZXh0aG9wICpydG5oLCBpbnQgbGVuLFxuLS1cbm5ldC9tcGxzL2FmX21wbHMuYy05MTYtXG5uZXQvbXBscy9hZl9tcGxzLmM6OTE3OnN0YXRpYyBpbnQgbXBsc19uaF9idWlsZF9tdWx0aShzdHJ1Y3QgbXBsc19yb3V0ZV9jb25maWcgKmNmZyxcbm5ldC9tcGxzL2FmX21wbHMuYy05MTgtXHRcdFx0ICAgICAgIHN0cnVjdCBtcGxzX3JvdXRlICpydCwgdTggbWF4X2xhYmVscyxcbi0tXG5uZXQvbXBscy9hZl9tcGxzLmM9OTk1PXN0YXRpYyBpbnQgbXBsc19yb3V0ZV9hZGQoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXG4tLVxubmV0L21wbHMvYWZfbXBscy5jLTEwNjMtXHRpZiAoY2ZnLVx1MDAzZXJjX21wKVxubmV0L21wbHMvYWZfbXBscy5jOjEwNjQ6XHRcdGVyciA9IG1wbHNfbmhfYnVpbGRfbXVsdGkoY2ZnLCBydCwgbWF4X2xhYmVscywgZXh0YWNrKTtcbm5ldC9tcGxzL2FmX21wbHMuYy0xMDY1LVx0ZWxzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NDEKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA1MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzaW5nOgoKKipNUExTIFJvdXRlIEFkZGl0aW9uIEFuYWx5c2lzKioKCkFscmlnaHQsIHNvIHRoZSBgbXBsc19uaF9idWlsZF9tdWx0aWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLCBhbmQgdGhlIHRyYWNlIHN1Z2dlc3RzIGl0JiMzOTtzIGhhcHBlbmluZyBmcm9tIHdpdGhpbiBgbXBsc19yb3V0ZV9hZGRgLiBUaGF0JiMzOTtzIGEgcHJldHR5IGNsZWFyIGluZGljYXRvciwgaXNuJiMzOTt0IGl0PyBJdCBzdHJvbmdseSBpbXBsaWVzIHRoYXQgYG1wbHNfcm91dGVfYWRkYCBpcyBiZWluZyBpbnZva2VkIGR1cmluZyB0aGUgcHJvY2VzcyBvZiAqYWRkaW5nKiBhbiBNUExTIHJvdXRlLiBTZWVtcyBsb2dpY2FsLCBhIGxpa2VseSBhbmQgcmVhc29uYWJsZSBhc3N1bXB0aW9uIGJhc2VkIG9uIHRoZSBmdW5jdGlvbiBuYW1lcyBhbmQgdGhlaXIgcmVsYXRpb25zaGlwIHRvIG9uZSBhbm90aGVyLiBOb3csIGJlZm9yZSBJIGp1bXAgdG8gYW55IGZpcm0gY29uY2x1c2lvbnMsIGxldCYjMzk7cyBqdXN0IHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBNUExTIGNvbmZpZ3VyYXRpb24gaXRzZWxmLiBJJiMzOTtsbCB0YWtlIGEgbG9vayBhdCB0aGUgY29uZmlnIHRvIGNvbmZpcm0gdGhhdCBNUExTIGlzIGFjdHVhbGx5IGVuYWJsZWQsIGFuZCB0byBnZXQgYSBicm9hZGVyIHZpZXcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1QTFMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbXBscy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tcGxzL0tjb25maWctNS1cbm5ldC9tcGxzL0tjb25maWc6NjptZW51Y29uZmlnIE1QTFNcbm5ldC9tcGxzL0tjb25maWctNy1cdGJvb2wgXCYjMzQ7TXVsdGlQcm90b2NvbCBMYWJlbCBTd2l0Y2hpbmdcJiMzNDtcbi0tXG5uZXQvbXBscy9LY29uZmlnPTE5PWNvbmZpZyBORVRfTVBMU19HU09cbi0tXG5uZXQvbXBscy9LY29uZmlnLTI1LVxubmV0L21wbHMvS2NvbmZpZzoyNjpjb25maWcgTVBMU19ST1VUSU5HXG5uZXQvbXBscy9LY29uZmlnLTI3LVx0dHJpc3RhdGUgXCYjMzQ7TVBMUzogcm91dGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L21wbHMvS2NvbmZpZy0zMi1cbm5ldC9tcGxzL0tjb25maWc6MzM6Y29uZmlnIE1QTFNfSVBUVU5ORUxcbm5ldC9tcGxzL0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtNUExTOiBJUCBvdmVyIE1QTFMgdHVubmVsIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTkzCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk1QTFMgQ29uZmlndXJhdGlvbiBBbmFseXNpcyoqCgpBbHJpZ2h0LCBzbyB0aGUgY29yZSBjb25maWd1cmF0aW9ucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGhlcmUgYXJlIGRlZmluaXRlbHkgYE1QTFNgIGFuZCBgTVBMU19ST1VUSU5HYC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9mIGBhZl9tcGxzLmNgLiBHaXZlbiB0aGF0IE1QTFMtcmVsYXRlZCBmdW5jdGlvbmFsaXR5IGNhbiBvZnRlbiBiZSBtb2R1bGFyLCBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGF0IG1vZHVsZSBpcyBjb21waWxlZCBvbmx5IHdoZW4gdGhvc2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQuIEFyZSB0aGVyZSBgI2lmZGVmYCBzdGF0ZW1lbnRzIGFyb3VuZCB0aGUgaW5jbHVzaW9uIG9yIGtleSBmdW5jdGlvbnMgd2l0aGluIHRoYXQgZmlsZSwgY29udGluZ2VudCBvbiBlaXRoZXIgYE1QTFNgIG9yIGBNUExTX1JPVVRJTkdgIGJlaW5nIGRlZmluZWQ/IFRoaXMgaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBidWlsZCBwcm9jZXNzIGFuZCBkZXBlbmRlbmN5IG1hbmFnZW1lbnQsIHdoaWNoIGlzIGltcG9ydGFudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthZl9tcGxzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21wbHMvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21wbHMvTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfTVBMU19JUFRVTk5FTCkgJiM0Mzs9IG1wbHNfaXB0dW5uZWwub1xubmV0L21wbHMvTWFrZWZpbGUtOC1cbm5ldC9tcGxzL01ha2VmaWxlOjk6bXBsc19yb3V0ZXIteSA6PSBhZl9tcGxzLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDk1CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBhbiBleHBlcnQgYW5kIHByZXNlbnRpbmcgaXQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTVBMUyBSb3V0ZXIgRGVwZW5kZW5jeSBDaGVjayoqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBidWlsZCBzeXN0ZW0gYW5kIEkgc2VlIGBtcGxzX3JvdXRlci15YC4gTXkgbWluZCBpbW1lZGlhdGVseSBqdW1wcyB0bywgJiMzNDtPa2F5LCB0aGF0JiMzOTtzIGJlaW5nIGJ1aWx0IGFzIGEgbW9kdWxlIG9yIGJ1aWx0LWluLCBidXQgdW5kZXIgd2hhdCBjb25kaXRpb25zPyYjMzQ7IFRoZSBuZXh0IGNvbm5lY3Rpb24gaXMsICYjMzQ7QWgsIHJpZ2h0ISBJdCYjMzk7cyBkZXBlbmRlbnQgb24gYENPTkZJR19NUExTX1JPVVRJTkdgIGJlaW5nIGVuYWJsZWQuIFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGlmIHRoaXMgd2lsbCBiZSBjb21waWxlZCBpbiBvciBub3QuJiMzNDsgSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjb25kaXRpb25hbCBidWlsZCBkZXBlbmRlbmN5LCBub3RoaW5nIHRvbyBjb21wbGljYXRlZC4gVGhhdCYjMzk7cyBhIGNsYXNzaWMgY2hlY2ssIHByZXR0eSBzdGFuZGFyZCBzdHVmZi4gVGhpcyBpcyBhbGwgYmFzaWMgYnVpbGQgc3lzdGVtIGxvZ2ljLCBidXQgaXQmIzM5O3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRoZXNlIHR5cGVzIG9mIGNvbmRpdGlvbmFscyB3aGVuIGFzc2Vzc2luZyB0aGUgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXBsc19yb3V0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbXBscy9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbXBscy9NYWtlZmlsZT01PW9iai0kKENPTkZJR19ORVRfTVBMU19HU08pICYjNDM7PSBtcGxzX2dzby5vXG5uZXQvbXBscy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NUExTX1JPVVRJTkcpICYjNDM7PSBtcGxzX3JvdXRlci5vXG5uZXQvbXBscy9NYWtlZmlsZS03LW9iai0kKENPTkZJR19NUExTX0lQVFVOTkVMKSAmIzQzOz0gbXBsc19pcHR1bm5lbC5vXG5uZXQvbXBscy9NYWtlZmlsZS04LVxubmV0L21wbHMvTWFrZWZpbGU6OTptcGxzX3JvdXRlci15IDo9IGFmX21wbHMub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODY0CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1QTFMgUm91dGluZyBQYXRjaCBBbmFseXNpcyoqCgpPa2F5LCBzbyB0aGUgYENPTkZJR19NUExTX1JPVVRJTkdgIGNvbmZpZyBvcHRpb24gaXMgZGVmaW5pdGVseSBlc3NlbnRpYWwgaGVyZSwgdGhhdCYjMzk7cyBhIGdpdmVuLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBgbXBsc19uaF9idWlsZF9tdWx0aWAgZnVuY3Rpb24sIHNwZWNpZmljYWxseS4gVGhpcyBwYXRjaCBsb29rcyBmdW5jdGlvbmFsIGFuZCB0YXJnZXRzIGEgYnVnIGluIHRoZSBlcnJvciBoYW5kbGluZyBmb3IgYnVpbGRpbmcgbXVsdGktcGF0aCBNUExTIHJvdXRlcywgc28gaXQmIzM5O3MgYSBzb2xpZCBpbXByb3ZlbWVudC4KCkJhc2VkIG9uIHRoaXMsIGl0JiMzOTtzIGFic29sdXRlbHkgd29ydGggdGhyb3dpbmcgc29tZSBmdXp6aW5nIGF0IGl0IHRvIGV4cGxvcmUgdGhlIGVycm9yIHBhdGhzIGZ1cnRoZXIuIEkmIzM5O2xsIG5lZWQgdG8gZm9jdXMgdGhlIGZ1enppbmcgZWZmb3J0cyBhcm91bmQgdGhlIGBtcGxzX25oX2J1aWxkX211bHRpYCBhbmQgYG1wbHNfcm91dGVfYWRkYCBzeW1ib2xzLgoKVG8gZW5zdXJlIHByb3BlciB0ZXN0aW5nLCBJJiMzOTtsbCBuZWVkIHRvIGVuYWJsZSBib3RoIGBNUExTYCBhbmQgYE1QTFNfUk9VVElOR2AgY29uZmlncy4gTm93LCBsZXQmIzM5O3MganVzdCBxdWlja2x5IHNjYW4gYW5kIGRvdWJsZS1jaGVjayB0byBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgZGVwZW5kZW50IGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBjb25zaWRlciBmb3IgdGhpcyBmdXp6aW5nIGNhbXBhaWduLiBHb3R0YSBiZSB0aG9yb3VnaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TVBMUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tcGxzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21wbHMvS2NvbmZpZy0yLSNcbm5ldC9tcGxzL0tjb25maWc6MzojIE1QTFMgY29uZmlndXJhdGlvblxubmV0L21wbHMvS2NvbmZpZy00LSNcbm5ldC9tcGxzL0tjb25maWctNS1cbm5ldC9tcGxzL0tjb25maWc6NjptZW51Y29uZmlnIE1QTFNcbm5ldC9tcGxzL0tjb25maWctNy1cdGJvb2wgXCYjMzQ7TXVsdGlQcm90b2NvbCBMYWJlbCBTd2l0Y2hpbmdcJiMzNDtcbi0tXG5uZXQvbXBscy9LY29uZmlnLTEyLVx0ICBoYXJkd2FyZSBzcGVlZHMgKGJlZm9yZSBoYXJkd2FyZSB3YXMgY2FwYWJsZSBvZiByb3V0aW5nIGlwdjQgcGFja2V0cyksXG5uZXQvbXBscy9LY29uZmlnOjEzOlx0ICBNUExTIHJlbWFpbnMgYSBzaW1wbGUgd2F5IG9mIG1ha2luZyB0dW5uZWxzLlxubmV0L21wbHMvS2NvbmZpZy0xNC1cbm5ldC9tcGxzL0tjb25maWc6MTU6XHQgIElmIHlvdSBoYXZlIG5vdCBoZWFyZCBvZiBNUExTIHlvdSBwcm9iYWJseSB3YW50IHRvIHNheSBOIGhlcmUuXG5uZXQvbXBscy9LY29uZmlnLTE2LVxubmV0L21wbHMvS2NvbmZpZzoxNzppZiBNUExTXG5uZXQvbXBscy9LY29uZmlnLTE4LVxubmV0L21wbHMvS2NvbmZpZzoxOTpjb25maWcgTkVUX01QTFNfR1NPXG5uZXQvbXBscy9LY29uZmlnOjIwOlx0dHJpc3RhdGUgXCYjMzQ7TVBMUzogR1NPIHN1cHBvcnRcJiMzNDtcbm5ldC9tcGxzL0tjb25maWctMjEtXHRoZWxwXG5uZXQvbXBscy9LY29uZmlnOjIyOlx0IFRoaXMgaXMgaGVscGVyIG1vZHVsZSB0byBhbGxvdyBzZWdtZW50YXRpb24gb2Ygbm9uLU1QTFMgR1NPIHBhY2tldHNcbm5ldC9tcGxzL0tjb25maWc6MjM6XHQgdGhhdCBoYXZlIGhhZCBNUExTIHN0YWNrIGVudHJpZXMgcHVzaGVkIG9udG8gdGhlbSBhbmQgdGh1c1xubmV0L21wbHMvS2NvbmZpZzoyNDpcdCBiZWNvbWUgTVBMUyBHU08gcGFja2V0cy5cbm5ldC9tcGxzL0tjb25maWctMjUtXG5uZXQvbXBscy9LY29uZmlnOjI2OmNvbmZpZyBNUExTX1JPVVRJTkdcbm5ldC9tcGxzL0tjb25maWc6Mjc6XHR0cmlzdGF0ZSBcJiMzNDtNUExTOiByb3V0aW5nIHN1cHBvcnRcJiMzNDtcbm5ldC9tcGxzL0tjb25maWctMjgtXHRkZXBlbmRzIG9uIE5FVF9JUF9UVU5ORUwgfHwgTkVUX0lQX1RVTk5FTD1uXG4tLVxubmV0L21wbHMvS2NvbmZpZy0zMi1cbm5ldC9tcGxzL0tjb25maWc6MzM6Y29uZmlnIE1QTFNfSVBUVU5ORUxcbm5ldC9tcGxzL0tjb25maWc6MzQ6XHR0cmlzdGF0ZSBcJiMzNDtNUExTOiBJUCBvdmVyIE1QTFMgdHVubmVsIHN1cHBvcnRcJiMzNDtcbm5ldC9tcGxzL0tjb25maWc6MzU6XHRkZXBlbmRzIG9uIExXVFVOTkVMIFx1MDAyNlx1MDAyNiBNUExTX1JPVVRJTkdcbm5ldC9tcGxzL0tjb25maWctMzYtXHRoZWxwXG4tLVxubmV0L21wbHMvS2NvbmZpZy0zOC1cbm5ldC9tcGxzL0tjb25maWc6Mzk6ZW5kaWYgIyBNUExTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3ODAKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqTVBMUyBSb3V0ZSBBbmFseXNpcyoqCgpSaWdodCwgc28gSSBuZWVkIHRvIGZvY3VzIG9uIGBNUExTYCBhbmQgYE1QTFNfUk9VVElOR2AgZnVuY3Rpb25zLiBUaGF0JiMzOTtzIHRoZSBjb3JlIGFyZWEgSSYjMzk7bSBpbnRlcmVzdGVkIGluIGhlcmUuIE5vdywgSSBoYXZlIGEgaHVuY2ggYWJvdXQgYSBmdW5jdGlvbiBjYWxsZWQgYG1wbHNfbmhfYnVpbGRfbXVsdGlgLiBMZXQgbWUgcXVpY2tseSBjaGVjayBpZiB0aGF0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uLiBZZXAsIGxvb2tzIGxpa2UgaXQgaXMuIFRoYXQgbWVhbnMgdGhlIGNhbGxlciBvZiBgbXBsc19uaF9idWlsZF9tdWx0aWAgaXMgbGlrZWx5IHdpdGhpbiB0aGUgc2FtZSBjb21waWxhdGlvbiB1bml0IGFzIHRoZSBkZWZpbml0aW9uLiBMZXQmIzM5O3MgZGlnIGEgYml0IGRlZXBlciBhbmQgc2VlIHdoYXQgdGhhdCBjYWxsZXIgaXMgLSBmcm9tIHdoYXQgSSBoYXZlIGdhdGhlcmVkLCBpdCBzZWVtcyB0aGF0IGBtcGxzX3JvdXRlX2FkZGAgaXMgdGhlIGNhbGxpbmcgZnVuY3Rpb24uIFNvIGBtcGxzX3JvdXRlX2FkZGAgbGlrZWx5IGludGVyYWN0cyB3aXRoIGBtcGxzX25oX2J1aWxkX211bHRpYC4gVGhlIG5leHQgcXVlc3Rpb24sIHRoZW4sIGlzIHdoZXRoZXIgYG1wbHNfcm91dGVfYWRkYCBpcyBhbHNvIHN0YXRpYywgb3Igd2hldGhlciBpdCYjMzk7cyBtb3JlIHdpZGVseSBhY2Nlc3NpYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttcGxzX3JvdXRlX2FkZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tcGxzL2FmX21wbHMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbXBscy9hZl9tcGxzLmM9OTczPXN0YXRpYyBib29sIG1wbHNfbGFiZWxfb2soc3RydWN0IG5ldCAqbmV0LCB1bnNpZ25lZCBpbnQgKmluZGV4LFxuLS1cbm5ldC9tcGxzL2FmX21wbHMuYy05OTQtXG5uZXQvbXBscy9hZl9tcGxzLmM6OTk1OnN0YXRpYyBpbnQgbXBsc19yb3V0ZV9hZGQoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXG5uZXQvbXBscy9hZl9tcGxzLmMtOTk2LVx0XHRcdCAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxuLS1cbm5ldC9tcGxzL2FmX21wbHMuYz0yMDEyPXN0YXRpYyBpbnQgbXBsc19ydG1fbmV3cm91dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsXG4tLVxubmV0L21wbHMvYWZfbXBscy5jLTIwMjctXHRtdXRleF9sb2NrKFx1MDAyNm5ldC1cdTAwM2VtcGxzLnBsYXRmb3JtX211dGV4KTtcbm5ldC9tcGxzL2FmX21wbHMuYzoyMDI4Olx0ZXJyID0gbXBsc19yb3V0ZV9hZGQoY2ZnLCBleHRhY2spO1xubmV0L21wbHMvYWZfbXBscy5jLTIwMjktXHRtdXRleF91bmxvY2soXHUwMDI2bmV0LVx1MDAzZW1wbHMucGxhdGZvcm1fbXV0ZXgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzcxCgkJCQkJCQlvdXRwdXQ6IDEyMgoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipGb2N1c2luZyBvbiBgbXBsc19ydG1fbmV3cm91dGVgKioKCkFscmlnaHQsIHNvIHRoZSBuZXRsaW5rIGhhbmRsZXIsIHRoZSBvbmUgdGhhdCYjMzk7cyByZWFsbHkgY2VudHJhbCB0byB0aGlzIHdob2xlIE1QTFMgcm91dGUgbWFuaXB1bGF0aW9uIHRoaW5nLi4uIHRoYXQmIzM5O3MgYG1wbHNfcnRtX25ld3JvdXRlYC4gUmlnaHQsIHRoYXQgbWFrZXMgaXQgdGhlIG9idmlvdXMgZm9jYWwgcG9pbnQgZm9yIG15IGFuYWx5c2lzLiBJdCYjMzk7cyB0aGUgZW50cnkgcG9pbnQsIHRoZSBrZXlzdG9uZS4gVW5kZXJzdGFuZGluZyB0aGF0IGZ1bmN0aW9uIGlzIGdvaW5nIHRvIHVubG9jayBhIGxvdCBhYm91dCBob3cgdGhlc2UgbmV3IHJvdXRlcyBnZXQgY3JlYXRlZCBhbmQgaW50ZWdyYXRlZC4gWWVwLCBsZXQmIzM5O3Mga2VlcCB0aGF0IGZ1bmN0aW9uIGluIHNoYXJwIGZvY3VzLiBJdCYjMzk7cyB0aGUgZnVuY3Rpb24gdG8gcHJpb3JpdGl6ZSBmb3IgaW4gZGVwdGggcmV2aWV3LgoKTm93LCBsZXQmIzM5O3MgZXN0YWJsaXNoIHNvbWUgZ3JvdW5kIHRydXRocywgc29tZSBrZXkgcmVzdWx0cyBvZiB0aGUgc3R1ZHkuIExldCYjMzk7cyBzdGFydCB3aXRoIGEgc29saWQgZm91bmRhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01QTFMmIzM0OywKICAgICYjMzQ7TVBMU19ST1VUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXBsc19uaF9idWlsZF9tdWx0aSYjMzQ7LAogICAgJiMzNDttcGxzX3JvdXRlX2FkZCYjMzQ7LAogICAgJiMzNDttcGxzX3J0bV9uZXdyb3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBlcnJvciBoYW5kbGluZyB3aGVuIGJ1aWxkaW5nIG11bHRpLXBhdGggTVBMUyByb3V0ZXMsIHdoZXJlIHRoZSBudW1iZXIgb2YgbmV4dGhvcHMgd2FzIGluY29ycmVjdGx5IHVwZGF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBNUExTIHJvdXRpbmcgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01QTFMmIzM0OywKICAgICYjMzQ7TVBMU19ST1VUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXBsc19uaF9idWlsZF9tdWx0aSYjMzQ7LAogICAgJiMzNDttcGxzX3JvdXRlX2FkZCYjMzQ7LAogICAgJiMzNDttcGxzX3J0bV9uZXdyb3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBlcnJvciBoYW5kbGluZyB3aGVuIGJ1aWxkaW5nIG11bHRpLXBhdGggTVBMUyByb3V0ZXMsIHdoZXJlIHRoZSBudW1iZXIgb2YgbmV4dGhvcHMgd2FzIGluY29ycmVjdGx5IHVwZGF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBNUExTIHJvdXRpbmcgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjo0NToxNi4zNjk1ODczWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMxODY1NDg5MTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1QTFNcIixcbiAgICBcIk1QTFNfUk9VVElOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1wbHNfbmhfYnVpbGRfbXVsdGlcIixcbiAgICBcIm1wbHNfcm91dGVfYWRkXCIsXG4gICAgXCJtcGxzX3J0bV9uZXdyb3V0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIGVycm9yIGhhbmRsaW5nIHdoZW4gYnVpbGRpbmcgbXVsdGktcGF0aCBNUExTIHJvdXRlcywgd2hlcmUgdGhlIG51bWJlciBvZiBuZXh0aG9wcyB3YXMgaW5jb3JyZWN0bHkgdXBkYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE1QTFMgcm91dGluZyBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MTYuMzY5NTkzOTlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNzU1MjY4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGQyN2FkYWM5ZjdkZTU1YjllOGNlMzNjYWVmZDA2MGYwYzFkMmM3MWFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMTYgMjI6NDU6MTQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L21wbHMvYWZfbXBscy5jIGIvbmV0L21wbHMvYWZfbXBscy5jXFxuaW5kZXggY2E1MDRkOTYyNmNmZjcuLjRhODE1MTRlOTE5YTA2IDEwMDY0NFxcbi0tLSBhL25ldC9tcGxzL2FmX21wbHMuY1xcbisrKyBiL25ldC9tcGxzL2FmX21wbHMuY1xcbkBAIC05MjIsOCArOTIyLDcgQEAgc3RhdGljIGludCBtcGxzX25oX2J1aWxkX211bHRpKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxcbiBcXHRzdHJ1Y3QgbmxhdHRyICpubGFfdmlhLCAqbmxhX25ld2RzdDtcXG4gXFx0aW50IHJlbWFpbmluZyA9IGNmZy1cXHUwMDNlcmNfbXBfbGVuO1xcbiBcXHRpbnQgZXJyID0gMDtcXG4tXFxuLVxcdHJ0LVxcdTAwM2VydF9uaG4gPSAwO1xcbitcXHR1OCBuaHMgPSAwO1xcbiBcXG4gXFx0Y2hhbmdlX25leHRob3BzKHJ0KSB7XFxuIFxcdFxcdGludCBhdHRybGVuO1xcbkBAIC05NTksMTIgKzk1OCwxNSBAQCBzdGF0aWMgaW50IG1wbHNfbmhfYnVpbGRfbXVsdGkoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXFxuIFxcdFxcdFxcdHJ0LVxcdTAwM2VydF9uaG5fYWxpdmUtLTtcXG4gXFxuIFxcdFxcdHJ0bmggPSBydG5oX25leHQocnRuaCwgXFx1MDAyNnJlbWFpbmluZyk7XFxuLVxcdFxcdHJ0LVxcdTAwM2VydF9uaG4rKztcXG4rXFx0XFx0bmhzKys7XFxuIFxcdH0gZW5kZm9yX25leHRob3BzKHJ0KTtcXG4gXFxuK1xcdHJ0LVxcdTAwM2VydF9uaG4gPSBuaHM7XFxuK1xcbiBcXHRyZXR1cm4gMDtcXG4gXFxuIGVycm91dDpcXG4rXFx0cnQtXFx1MDAzZXJ0X25obiA9IG5ocztcXG4gXFx0cmV0dXJuIGVycjtcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MTcuMTg3NjY2MzU0WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzEwNDczOTk0MDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVBMU1wiLFxuICAgIFwiTVBMU19ST1VUSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXBsc19uaF9idWlsZF9tdWx0aVwiLFxuICAgIFwibXBsc19yb3V0ZV9hZGRcIixcbiAgICBcIm1wbHNfcnRtX25ld3JvdXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gZXJyb3IgaGFuZGxpbmcgd2hlbiBidWlsZGluZyBtdWx0aS1wYXRoIE1QTFMgcm91dGVzLCB3aGVyZSB0aGUgbnVtYmVyIG9mIG5leHRob3BzIHdhcyBpbmNvcnJlY3RseSB1cGRhdGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgTVBMUyByb3V0aW5nIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQyN2FkYWM5ZjdkZTU1YjllOGNlMzNjYWVmZDA2MGYwYzFkMmM3MWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAxNiAyMjo0NToxNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tcGxzL2FmX21wbHMuYyBiL25ldC9tcGxzL2FmX21wbHMuY1xuaW5kZXggY2E1MDRkOTYyNmNmZjcuLjRhODE1MTRlOTE5YTA2IDEwMDY0NFxuLS0tIGEvbmV0L21wbHMvYWZfbXBscy5jXG4rKysgYi9uZXQvbXBscy9hZl9tcGxzLmNcbkBAIC05MjIsOCArOTIyLDcgQEAgc3RhdGljIGludCBtcGxzX25oX2J1aWxkX211bHRpKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxuIFx0c3RydWN0IG5sYXR0ciAqbmxhX3ZpYSwgKm5sYV9uZXdkc3Q7XG4gXHRpbnQgcmVtYWluaW5nID0gY2ZnLVx1MDAzZXJjX21wX2xlbjtcbiBcdGludCBlcnIgPSAwO1xuLVxuLVx0cnQtXHUwMDNlcnRfbmhuID0gMDtcbitcdHU4IG5ocyA9IDA7XG4gXG4gXHRjaGFuZ2VfbmV4dGhvcHMocnQpIHtcbiBcdFx0aW50IGF0dHJsZW47XG5AQCAtOTU5LDEyICs5NTgsMTUgQEAgc3RhdGljIGludCBtcGxzX25oX2J1aWxkX211bHRpKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxuIFx0XHRcdHJ0LVx1MDAzZXJ0X25obl9hbGl2ZS0tO1xuIFxuIFx0XHRydG5oID0gcnRuaF9uZXh0KHJ0bmgsIFx1MDAyNnJlbWFpbmluZyk7XG4tXHRcdHJ0LVx1MDAzZXJ0X25obisrO1xuK1x0XHRuaHMrKztcbiBcdH0gZW5kZm9yX25leHRob3BzKHJ0KTtcbiBcbitcdHJ0LVx1MDAzZXJ0X25obiA9IG5ocztcbitcbiBcdHJldHVybiAwO1xuIFxuIGVycm91dDpcbitcdHJ0LVx1MDAzZXJ0X25obiA9IG5ocztcbiBcdHJldHVybiBlcnI7XG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MTcuMTg3NjY3NTk0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU3NzQxMTE0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1QTFMgUm91dGUgTmV4dCBIb3AgQnVpbGQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvbXBscy9hZl9tcGxzLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBtcGxzX25oX2J1aWxkX211bHRpYCBmdW5jdGlvbi4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBvZiB0aGUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCBob3cgdGhlIG5leHQgaG9wIGNvdW50LCBgcnQtXHUwMDNlcnRfbmhuYCwgaXMgaGFuZGxlZC4gUHJldmlvdXNseSwgaXQgd2FzIGluY3JlbWVudGVkIGRpcmVjdGx5IGluc2lkZSB0aGUgbG9vcCwgdXNpbmcgYHJ0LVx1MDAzZXJ0X25obiA9IDA7YCBhbmQgYHJ0LVx1MDAzZXJ0X25obisrO2AuXG5cbk5vdywgdGhleSd2ZSBpbnRyb2R1Y2VkIGEgbG9jYWwgdmFyaWFibGUsIGBuaHNgLCB0byBhY2N1bXVsYXRlIHRoZSBjb3VudCB3aXRoaW4gdGhlIGxvb3AuIEZpbmFsbHksIGBydC1cdTAwM2VydF9uaG5gIGlzIHVwZGF0ZWQgd2l0aCB0aGUgdmFsdWUgb2YgYG5oc2AgYXQgdGhlIGVuZCBvZiB0aGUgbG9vcCBhbmQgd2l0aGluIHRoZSBlcnJvciBoYW5kbGluZyBwYXRocy4gVGhpcyBpcyBhIGNsYXNzaWMgcmVmYWN0b3JpbmcgdGVjaG5pcXVlLiBJdCBsb29rcyBsaWtlIHRoZSBpbnRlbnRpb24gaXMgZGVmaW5pdGVseSB0byBlbGltaW5hdGUgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gb3IgdG8gYXZvaWQgbGVhdmluZyBgcnQtXHUwMDNlcnRfbmhuYCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUgaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgZHVyaW5nIHRoZSBuZXh0IGhvcCBidWlsZC4gSXQncyBsaWtlbHkgYWRkcmVzc2luZyBhIGJ1ZyB3aGVyZSB0aGUgYHJ0LVx1MDAzZXJ0X25obmAgbWlnaHQgaGF2ZSBiZWVuIGxlZnQgb25seSBwYXJ0aWFsbHkgdXBkYXRlZCBvbiBhbiBlcnJvciBwYXRoLCB3aGljaCB3b3VsZCBiZSBkaXNhc3Ryb3VzLiBUaGlzIG1ha2VzIHNlbnNlLiBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBlcnJvciBjb25kaXRpb25zIGluIGBtcGxzX25oX2J1aWxkX211bHRpYCB0byBjb25maXJtIHRoZSBleGFjdCBuYXR1cmUgb2YgdGhlIHZ1bG5lcmFiaWxpdHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTIsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjo0NToyMS43NjUwODExMzNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQwNjI4NTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1wbHNfbmhfYnVpbGRfbXVsdGlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21wbHMvYWZfbXBscy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcGxzL2FmX21wbHMuYz04Njg9c3RhdGljIHU4IG1wbHNfY291bnRfbmV4dGhvcHMoc3RydWN0IHJ0bmV4dGhvcCAqcnRuaCwgaW50IGxlbixcXG4tLVxcbm5ldC9tcGxzL2FmX21wbHMuYy05MTYtXFxubmV0L21wbHMvYWZfbXBscy5jOjkxNzpzdGF0aWMgaW50IG1wbHNfbmhfYnVpbGRfbXVsdGkoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXFxubmV0L21wbHMvYWZfbXBscy5jLTkxOC1cXHRcXHRcXHQgICAgICAgc3RydWN0IG1wbHNfcm91dGUgKnJ0LCB1OCBtYXhfbGFiZWxzLFxcbi0tXFxubmV0L21wbHMvYWZfbXBscy5jPTk5NT1zdGF0aWMgaW50IG1wbHNfcm91dGVfYWRkKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxcbi0tXFxubmV0L21wbHMvYWZfbXBscy5jLTEwNjMtXFx0aWYgKGNmZy1cXHUwMDNlcmNfbXApXFxubmV0L21wbHMvYWZfbXBscy5jOjEwNjQ6XFx0XFx0ZXJyID0gbXBsc19uaF9idWlsZF9tdWx0aShjZmcsIHJ0LCBtYXhfbGFiZWxzLCBleHRhY2spO1xcbm5ldC9tcGxzL2FmX21wbHMuYy0xMDY1LVxcdGVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MjIuMzA1NzE0MTYyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTk2MDg2NTgxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3Npbmc6XG5cbioqTVBMUyBSb3V0ZSBBZGRpdGlvbiBBbmFseXNpcyoqXG5cbkFscmlnaHQsIHNvIHRoZSBgbXBsc19uaF9idWlsZF9tdWx0aWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLCBhbmQgdGhlIHRyYWNlIHN1Z2dlc3RzIGl0J3MgaGFwcGVuaW5nIGZyb20gd2l0aGluIGBtcGxzX3JvdXRlX2FkZGAuIFRoYXQncyBhIHByZXR0eSBjbGVhciBpbmRpY2F0b3IsIGlzbid0IGl0PyBJdCBzdHJvbmdseSBpbXBsaWVzIHRoYXQgYG1wbHNfcm91dGVfYWRkYCBpcyBiZWluZyBpbnZva2VkIGR1cmluZyB0aGUgcHJvY2VzcyBvZiAqYWRkaW5nKiBhbiBNUExTIHJvdXRlLiBTZWVtcyBsb2dpY2FsLCBhIGxpa2VseSBhbmQgcmVhc29uYWJsZSBhc3N1bXB0aW9uIGJhc2VkIG9uIHRoZSBmdW5jdGlvbiBuYW1lcyBhbmQgdGhlaXIgcmVsYXRpb25zaGlwIHRvIG9uZSBhbm90aGVyLiBOb3csIGJlZm9yZSBJIGp1bXAgdG8gYW55IGZpcm0gY29uY2x1c2lvbnMsIGxldCdzIGp1c3QgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIE1QTFMgY29uZmlndXJhdGlvbiBpdHNlbGYuIEknbGwgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZyB0byBjb25maXJtIHRoYXQgTVBMUyBpcyBhY3R1YWxseSBlbmFibGVkLCBhbmQgdG8gZ2V0IGEgYnJvYWRlciB2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzQxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MzIuMjY2NTgyMDU2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzUzNjg2NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTVBMU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXBscy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcGxzL0tjb25maWctNS1cXG5uZXQvbXBscy9LY29uZmlnOjY6bWVudWNvbmZpZyBNUExTXFxubmV0L21wbHMvS2NvbmZpZy03LVxcdGJvb2wgXFxcIk11bHRpUHJvdG9jb2wgTGFiZWwgU3dpdGNoaW5nXFxcIlxcbi0tXFxubmV0L21wbHMvS2NvbmZpZz0xOT1jb25maWcgTkVUX01QTFNfR1NPXFxuLS1cXG5uZXQvbXBscy9LY29uZmlnLTI1LVxcbm5ldC9tcGxzL0tjb25maWc6MjY6Y29uZmlnIE1QTFNfUk9VVElOR1xcbm5ldC9tcGxzL0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIk1QTFM6IHJvdXRpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tcGxzL0tjb25maWctMzItXFxubmV0L21wbHMvS2NvbmZpZzozMzpjb25maWcgTVBMU19JUFRVTk5FTFxcbm5ldC9tcGxzL0tjb25maWctMzQtXFx0dHJpc3RhdGUgXFxcIk1QTFM6IElQIG92ZXIgTVBMUyB0dW5uZWwgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MzIuMzk0MTIzMTczWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjAwNjIxNzU1MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipNUExTIENvbmZpZ3VyYXRpb24gQW5hbHlzaXMqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgY29yZSBjb25maWd1cmF0aW9ucyB3ZSdyZSBkZWFsaW5nIHdpdGggaGVyZSBhcmUgZGVmaW5pdGVseSBgTVBMU2AgYW5kIGBNUExTX1JPVVRJTkdgLiBUaGF0J3MgdGhlIGJhc2VsaW5lLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvZiBgYWZfbXBscy5jYC4gR2l2ZW4gdGhhdCBNUExTLXJlbGF0ZWQgZnVuY3Rpb25hbGl0eSBjYW4gb2Z0ZW4gYmUgbW9kdWxhciwgSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhhdCBtb2R1bGUgaXMgY29tcGlsZWQgb25seSB3aGVuIHRob3NlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGFyZSBlbmFibGVkLiBBcmUgdGhlcmUgYCNpZmRlZmAgc3RhdGVtZW50cyBhcm91bmQgdGhlIGluY2x1c2lvbiBvciBrZXkgZnVuY3Rpb25zIHdpdGhpbiB0aGF0IGZpbGUsIGNvbnRpbmdlbnQgb24gZWl0aGVyIGBNUExTYCBvciBgTVBMU19ST1VUSU5HYCBiZWluZyBkZWZpbmVkPyBUaGlzIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgYnVpbGQgcHJvY2VzcyBhbmQgZGVwZW5kZW5jeSBtYW5hZ2VtZW50LCB3aGljaCBpcyBpbXBvcnRhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxOTMsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjo0NTo1Mi40NTYzMDEwMzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAxMzIyNzE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFmX21wbHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21wbHMvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21wbHMvTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfTVBMU19JUFRVTk5FTCkgKz0gbXBsc19pcHR1bm5lbC5vXFxubmV0L21wbHMvTWFrZWZpbGUtOC1cXG5uZXQvbXBscy9NYWtlZmlsZTo5Om1wbHNfcm91dGVyLXkgOj0gYWZfbXBscy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjQ1OjUyLjU1NzYyOTM1NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MTc3NDM5NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gYW4gZXhwZXJ0IGFuZCBwcmVzZW50aW5nIGl0IGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTVBMUyBSb3V0ZXIgRGVwZW5kZW5jeSBDaGVjayoqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgYnVpbGQgc3lzdGVtIGFuZCBJIHNlZSBgbXBsc19yb3V0ZXIteWAuIE15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8sIFwiT2theSwgdGhhdCdzIGJlaW5nIGJ1aWx0IGFzIGEgbW9kdWxlIG9yIGJ1aWx0LWluLCBidXQgdW5kZXIgd2hhdCBjb25kaXRpb25zP1wiIFRoZSBuZXh0IGNvbm5lY3Rpb24gaXMsIFwiQWgsIHJpZ2h0ISBJdCdzIGRlcGVuZGVudCBvbiBgQ09ORklHX01QTFNfUk9VVElOR2AgYmVpbmcgZW5hYmxlZC4gVGhhdCdzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBpZiB0aGlzIHdpbGwgYmUgY29tcGlsZWQgaW4gb3Igbm90LlwiIEl0J3MgYSBmdW5kYW1lbnRhbCBjb25kaXRpb25hbCBidWlsZCBkZXBlbmRlbmN5LCBub3RoaW5nIHRvbyBjb21wbGljYXRlZC4gVGhhdCdzIGEgY2xhc3NpYyBjaGVjaywgcHJldHR5IHN0YW5kYXJkIHN0dWZmLiBUaGlzIGlzIGFsbCBiYXNpYyBidWlsZCBzeXN0ZW0gbG9naWMsIGJ1dCBpdCdzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGVzZSB0eXBlcyBvZiBjb25kaXRpb25hbHMgd2hlbiBhc3Nlc3NpbmcgdGhlIGNvbmZpZ3VyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0OTUsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjo0NTo1NS40NzUzNzU0MzhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTY2OTk2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtcGxzX3JvdXRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXBscy9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbXBscy9NYWtlZmlsZT01PW9iai0kKENPTkZJR19ORVRfTVBMU19HU08pICs9IG1wbHNfZ3NvLm9cXG5uZXQvbXBscy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NUExTX1JPVVRJTkcpICs9IG1wbHNfcm91dGVyLm9cXG5uZXQvbXBscy9NYWtlZmlsZS03LW9iai0kKENPTkZJR19NUExTX0lQVFVOTkVMKSArPSBtcGxzX2lwdHVubmVsLm9cXG5uZXQvbXBscy9NYWtlZmlsZS04LVxcbm5ldC9tcGxzL01ha2VmaWxlOjk6bXBsc19yb3V0ZXIteSA6PSBhZl9tcGxzLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6NTUuNTgxMDUyMDg2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzMzEyMjUwNzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1QTFMgUm91dGluZyBQYXRjaCBBbmFseXNpcyoqXG5cbk9rYXksIHNvIHRoZSBgQ09ORklHX01QTFNfUk9VVElOR2AgY29uZmlnIG9wdGlvbiBpcyBkZWZpbml0ZWx5IGVzc2VudGlhbCBoZXJlLCB0aGF0J3MgYSBnaXZlbi4gV2UncmUgZGVhbGluZyB3aXRoIHRoZSBgbXBsc19uaF9idWlsZF9tdWx0aWAgZnVuY3Rpb24sIHNwZWNpZmljYWxseS4gVGhpcyBwYXRjaCBsb29rcyBmdW5jdGlvbmFsIGFuZCB0YXJnZXRzIGEgYnVnIGluIHRoZSBlcnJvciBoYW5kbGluZyBmb3IgYnVpbGRpbmcgbXVsdGktcGF0aCBNUExTIHJvdXRlcywgc28gaXQncyBhIHNvbGlkIGltcHJvdmVtZW50LlxuXG5CYXNlZCBvbiB0aGlzLCBpdCdzIGFic29sdXRlbHkgd29ydGggdGhyb3dpbmcgc29tZSBmdXp6aW5nIGF0IGl0IHRvIGV4cGxvcmUgdGhlIGVycm9yIHBhdGhzIGZ1cnRoZXIuIEknbGwgbmVlZCB0byBmb2N1cyB0aGUgZnV6emluZyBlZmZvcnRzIGFyb3VuZCB0aGUgYG1wbHNfbmhfYnVpbGRfbXVsdGlgIGFuZCBgbXBsc19yb3V0ZV9hZGRgIHN5bWJvbHMuXG5cblRvIGVuc3VyZSBwcm9wZXIgdGVzdGluZywgSSdsbCBuZWVkIHRvIGVuYWJsZSBib3RoIGBNUExTYCBhbmQgYE1QTFNfUk9VVElOR2AgY29uZmlncy4gTm93LCBsZXQncyBqdXN0IHF1aWNrbHkgc2NhbiBhbmQgZG91YmxlLWNoZWNrIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGRlcGVuZGVudCBjb25maWd1cmF0aW9ucyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRoaXMgZnV6emluZyBjYW1wYWlnbi4gR290dGEgYmUgdGhvcm91Z2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NjQsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDY6MzguODkzMzA0NDUxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ2MDQyNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVBMU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXBscy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcGxzL0tjb25maWctMi0jXFxubmV0L21wbHMvS2NvbmZpZzozOiMgTVBMUyBjb25maWd1cmF0aW9uXFxubmV0L21wbHMvS2NvbmZpZy00LSNcXG5uZXQvbXBscy9LY29uZmlnLTUtXFxubmV0L21wbHMvS2NvbmZpZzo2Om1lbnVjb25maWcgTVBMU1xcbm5ldC9tcGxzL0tjb25maWctNy1cXHRib29sIFxcXCJNdWx0aVByb3RvY29sIExhYmVsIFN3aXRjaGluZ1xcXCJcXG4tLVxcbm5ldC9tcGxzL0tjb25maWctMTItXFx0ICBoYXJkd2FyZSBzcGVlZHMgKGJlZm9yZSBoYXJkd2FyZSB3YXMgY2FwYWJsZSBvZiByb3V0aW5nIGlwdjQgcGFja2V0cyksXFxubmV0L21wbHMvS2NvbmZpZzoxMzpcXHQgIE1QTFMgcmVtYWlucyBhIHNpbXBsZSB3YXkgb2YgbWFraW5nIHR1bm5lbHMuXFxubmV0L21wbHMvS2NvbmZpZy0xNC1cXG5uZXQvbXBscy9LY29uZmlnOjE1OlxcdCAgSWYgeW91IGhhdmUgbm90IGhlYXJkIG9mIE1QTFMgeW91IHByb2JhYmx5IHdhbnQgdG8gc2F5IE4gaGVyZS5cXG5uZXQvbXBscy9LY29uZmlnLTE2LVxcbm5ldC9tcGxzL0tjb25maWc6MTc6aWYgTVBMU1xcbm5ldC9tcGxzL0tjb25maWctMTgtXFxubmV0L21wbHMvS2NvbmZpZzoxOTpjb25maWcgTkVUX01QTFNfR1NPXFxubmV0L21wbHMvS2NvbmZpZzoyMDpcXHR0cmlzdGF0ZSBcXFwiTVBMUzogR1NPIHN1cHBvcnRcXFwiXFxubmV0L21wbHMvS2NvbmZpZy0yMS1cXHRoZWxwXFxubmV0L21wbHMvS2NvbmZpZzoyMjpcXHQgVGhpcyBpcyBoZWxwZXIgbW9kdWxlIHRvIGFsbG93IHNlZ21lbnRhdGlvbiBvZiBub24tTVBMUyBHU08gcGFja2V0c1xcbm5ldC9tcGxzL0tjb25maWc6MjM6XFx0IHRoYXQgaGF2ZSBoYWQgTVBMUyBzdGFjayBlbnRyaWVzIHB1c2hlZCBvbnRvIHRoZW0gYW5kIHRodXNcXG5uZXQvbXBscy9LY29uZmlnOjI0OlxcdCBiZWNvbWUgTVBMUyBHU08gcGFja2V0cy5cXG5uZXQvbXBscy9LY29uZmlnLTI1LVxcbm5ldC9tcGxzL0tjb25maWc6MjY6Y29uZmlnIE1QTFNfUk9VVElOR1xcbm5ldC9tcGxzL0tjb25maWc6Mjc6XFx0dHJpc3RhdGUgXFxcIk1QTFM6IHJvdXRpbmcgc3VwcG9ydFxcXCJcXG5uZXQvbXBscy9LY29uZmlnLTI4LVxcdGRlcGVuZHMgb24gTkVUX0lQX1RVTk5FTCB8fCBORVRfSVBfVFVOTkVMPW5cXG4tLVxcbm5ldC9tcGxzL0tjb25maWctMzItXFxubmV0L21wbHMvS2NvbmZpZzozMzpjb25maWcgTVBMU19JUFRVTk5FTFxcbm5ldC9tcGxzL0tjb25maWc6MzQ6XFx0dHJpc3RhdGUgXFxcIk1QTFM6IElQIG92ZXIgTVBMUyB0dW5uZWwgc3VwcG9ydFxcXCJcXG5uZXQvbXBscy9LY29uZmlnOjM1OlxcdGRlcGVuZHMgb24gTFdUVU5ORUwgXFx1MDAyNlxcdTAwMjYgTVBMU19ST1VUSU5HXFxubmV0L21wbHMvS2NvbmZpZy0zNi1cXHRoZWxwXFxuLS1cXG5uZXQvbXBscy9LY29uZmlnLTM4LVxcbm5ldC9tcGxzL0tjb25maWc6Mzk6ZW5kaWYgIyBNUExTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjQ2OjM4Ljk5NzkxMzQ5OVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MDcwMjc3OTQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqTVBMUyBSb3V0ZSBBbmFseXNpcyoqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gZm9jdXMgb24gYE1QTFNgIGFuZCBgTVBMU19ST1VUSU5HYCBmdW5jdGlvbnMuIFRoYXQncyB0aGUgY29yZSBhcmVhIEknbSBpbnRlcmVzdGVkIGluIGhlcmUuIE5vdywgSSBoYXZlIGEgaHVuY2ggYWJvdXQgYSBmdW5jdGlvbiBjYWxsZWQgYG1wbHNfbmhfYnVpbGRfbXVsdGlgLiBMZXQgbWUgcXVpY2tseSBjaGVjayBpZiB0aGF0J3MgYSBzdGF0aWMgZnVuY3Rpb24uIFllcCwgbG9va3MgbGlrZSBpdCBpcy4gVGhhdCBtZWFucyB0aGUgY2FsbGVyIG9mIGBtcGxzX25oX2J1aWxkX211bHRpYCBpcyBsaWtlbHkgd2l0aGluIHRoZSBzYW1lIGNvbXBpbGF0aW9uIHVuaXQgYXMgdGhlIGRlZmluaXRpb24uIExldCdzIGRpZyBhIGJpdCBkZWVwZXIgYW5kIHNlZSB3aGF0IHRoYXQgY2FsbGVyIGlzIC0gZnJvbSB3aGF0IEkgaGF2ZSBnYXRoZXJlZCwgaXQgc2VlbXMgdGhhdCBgbXBsc19yb3V0ZV9hZGRgIGlzIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLiBTbyBgbXBsc19yb3V0ZV9hZGRgIGxpa2VseSBpbnRlcmFjdHMgd2l0aCBgbXBsc19uaF9idWlsZF9tdWx0aWAuIFRoZSBuZXh0IHF1ZXN0aW9uLCB0aGVuLCBpcyB3aGV0aGVyIGBtcGxzX3JvdXRlX2FkZGAgaXMgYWxzbyBzdGF0aWMsIG9yIHdoZXRoZXIgaXQncyBtb3JlIHdpZGVseSBhY2Nlc3NpYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzgwLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDY6NDcuMDY4MTk1NDJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyOTIwMDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1wbHNfcm91dGVfYWRkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tcGxzL2FmX21wbHMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbXBscy9hZl9tcGxzLmM9OTczPXN0YXRpYyBib29sIG1wbHNfbGFiZWxfb2soc3RydWN0IG5ldCAqbmV0LCB1bnNpZ25lZCBpbnQgKmluZGV4LFxcbi0tXFxubmV0L21wbHMvYWZfbXBscy5jLTk5NC1cXG5uZXQvbXBscy9hZl9tcGxzLmM6OTk1OnN0YXRpYyBpbnQgbXBsc19yb3V0ZV9hZGQoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXFxubmV0L21wbHMvYWZfbXBscy5jLTk5Ni1cXHRcXHRcXHQgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcXG4tLVxcbm5ldC9tcGxzL2FmX21wbHMuYz0yMDEyPXN0YXRpYyBpbnQgbXBsc19ydG1fbmV3cm91dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsXFxuLS1cXG5uZXQvbXBscy9hZl9tcGxzLmMtMjAyNy1cXHRtdXRleF9sb2NrKFxcdTAwMjZuZXQtXFx1MDAzZW1wbHMucGxhdGZvcm1fbXV0ZXgpO1xcbm5ldC9tcGxzL2FmX21wbHMuYzoyMDI4OlxcdGVyciA9IG1wbHNfcm91dGVfYWRkKGNmZywgZXh0YWNrKTtcXG5uZXQvbXBscy9hZl9tcGxzLmMtMjAyOS1cXHRtdXRleF91bmxvY2soXFx1MDAyNm5ldC1cXHUwMDNlbXBscy5wbGF0Zm9ybV9tdXRleCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjQ2OjQ3LjE0MTEyMTMzOFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDk1NjAyNDQyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqRm9jdXNpbmcgb24gYG1wbHNfcnRtX25ld3JvdXRlYCoqXG5cbkFscmlnaHQsIHNvIHRoZSBuZXRsaW5rIGhhbmRsZXIsIHRoZSBvbmUgdGhhdCdzIHJlYWxseSBjZW50cmFsIHRvIHRoaXMgd2hvbGUgTVBMUyByb3V0ZSBtYW5pcHVsYXRpb24gdGhpbmcuLi4gdGhhdCdzIGBtcGxzX3J0bV9uZXdyb3V0ZWAuIFJpZ2h0LCB0aGF0IG1ha2VzIGl0IHRoZSBvYnZpb3VzIGZvY2FsIHBvaW50IGZvciBteSBhbmFseXNpcy4gSXQncyB0aGUgZW50cnkgcG9pbnQsIHRoZSBrZXlzdG9uZS4gVW5kZXJzdGFuZGluZyB0aGF0IGZ1bmN0aW9uIGlzIGdvaW5nIHRvIHVubG9jayBhIGxvdCBhYm91dCBob3cgdGhlc2UgbmV3IHJvdXRlcyBnZXQgY3JlYXRlZCBhbmQgaW50ZWdyYXRlZC4gWWVwLCBsZXQncyBrZWVwIHRoYXQgZnVuY3Rpb24gaW4gc2hhcnAgZm9jdXMuIEl0J3MgdGhlIGZ1bmN0aW9uIHRvIHByaW9yaXRpemUgZm9yIGluIGRlcHRoIHJldmlldy5cblxuTm93LCBsZXQncyBlc3RhYmxpc2ggc29tZSBncm91bmQgdHJ1dGhzLCBzb21lIGtleSByZXN1bHRzIG9mIHRoZSBzdHVkeS4gTGV0J3Mgc3RhcnQgd2l0aCBhIHNvbGlkIGZvdW5kYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzNzEsIk91dHB1dFRva2VucyI6MTIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDc6MjguMDk3MTQ3MjlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzc5MTM0NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1QTFNcIixcbiAgICBcIk1QTFNfUk9VVElOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1wbHNfbmhfYnVpbGRfbXVsdGlcIixcbiAgICBcIm1wbHNfcm91dGVfYWRkXCIsXG4gICAgXCJtcGxzX3J0bV9uZXdyb3V0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIGVycm9yIGhhbmRsaW5nIHdoZW4gYnVpbGRpbmcgbXVsdGktcGF0aCBNUExTIHJvdXRlcywgd2hlcmUgdGhlIG51bWJlciBvZiBuZXh0aG9wcyB3YXMgaW5jb3JyZWN0bHkgdXBkYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE1QTFMgcm91dGluZyBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNUExTXCIsXG4gICAgXCJNUExTX1JPVVRJTkdcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtcGxzX25oX2J1aWxkX211bHRpXCIsXG4gICAgXCJtcGxzX3JvdXRlX2FkZFwiLFxuICAgIFwibXBsc19ydG1fbmV3cm91dGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBlcnJvciBoYW5kbGluZyB3aGVuIGJ1aWxkaW5nIG11bHRpLXBhdGggTVBMUyByb3V0ZXMsIHdoZXJlIHRoZSBudW1iZXIgb2YgbmV4dGhvcHMgd2FzIGluY29ycmVjdGx5IHVwZGF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBNUExTIHJvdXRpbmcgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-16 22:22:25 +0000 UTC FinishedAt: 2026-07-16 22:47:30 +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": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MPLS", "MPLS_ROUTING" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MPLS", "MPLS_ROUTING" ], "series_id": "ad12edb2-c036-400a-9830-f46d796a74a8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mpls_nh_build_multi", "mpls_route_add", "mpls_rtm_newroute" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01QTFMmIzM0OywKICAgICYjMzQ7TVBMU19ST1VUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXBsc19uaF9idWlsZF9tdWx0aSYjMzQ7LAogICAgJiMzNDttcGxzX3JvdXRlX2FkZCYjMzQ7LAogICAgJiMzNDttcGxzX3J0bV9uZXdyb3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBlcnJvciBoYW5kbGluZyB3aGVuIGJ1aWxkaW5nIG11bHRpLXBhdGggTVBMUyByb3V0ZXMsIHdoZXJlIHRoZSBudW1iZXIgb2YgbmV4dGhvcHMgd2FzIGluY29ycmVjdGx5IHVwZGF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBNUExTIHJvdXRpbmcgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDU8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBkMjdhZGFjOWY3ZGU1NWI5ZThjZTMzY2FlZmQwNjBmMGMxZDJjNzFhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMTYgMjI6NDU6MTQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21wbHMvYWZfbXBscy5jIGIvbmV0L21wbHMvYWZfbXBscy5jXG5pbmRleCBjYTUwNGQ5NjI2Y2ZmNy4uNGE4MTUxNGU5MTlhMDYgMTAwNjQ0XG4tLS0gYS9uZXQvbXBscy9hZl9tcGxzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tcGxzL2FmX21wbHMuY1xuQEAgLTkyMiw4ICYjNDM7OTIyLDcgQEAgc3RhdGljIGludCBtcGxzX25oX2J1aWxkX211bHRpKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxuIFx0c3RydWN0IG5sYXR0ciAqbmxhX3ZpYSwgKm5sYV9uZXdkc3Q7XG4gXHRpbnQgcmVtYWluaW5nID0gY2ZnLVx1MDAzZXJjX21wX2xlbjtcbiBcdGludCBlcnIgPSAwO1xuLVxuLVx0cnQtXHUwMDNlcnRfbmhuID0gMDtcbiYjNDM7XHR1OCBuaHMgPSAwO1xuIFxuIFx0Y2hhbmdlX25leHRob3BzKHJ0KSB7XG4gXHRcdGludCBhdHRybGVuO1xuQEAgLTk1OSwxMiAmIzQzOzk1OCwxNSBAQCBzdGF0aWMgaW50IG1wbHNfbmhfYnVpbGRfbXVsdGkoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXG4gXHRcdFx0cnQtXHUwMDNlcnRfbmhuX2FsaXZlLS07XG4gXG4gXHRcdHJ0bmggPSBydG5oX25leHQocnRuaCwgXHUwMDI2cmVtYWluaW5nKTtcbi1cdFx0cnQtXHUwMDNlcnRfbmhuJiM0MzsmIzQzOztcbiYjNDM7XHRcdG5ocyYjNDM7JiM0Mzs7XG4gXHR9IGVuZGZvcl9uZXh0aG9wcyhydCk7XG4gXG4mIzQzO1x0cnQtXHUwMDNlcnRfbmhuID0gbmhzO1xuJiM0MztcbiBcdHJldHVybiAwO1xuIFxuIGVycm91dDpcbiYjNDM7XHRydC1cdTAwM2VydF9uaG4gPSBuaHM7XG4gXHRyZXR1cm4gZXJyO1xuIH1cbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNUExTJiMzNDssCiAgICAmIzM0O01QTFNfUk9VVElORyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21wbHNfbmhfYnVpbGRfbXVsdGkmIzM0OywKICAgICYjMzQ7bXBsc19yb3V0ZV9hZGQmIzM0OywKICAgICYjMzQ7bXBsc19ydG1fbmV3cm91dGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gZXJyb3IgaGFuZGxpbmcgd2hlbiBidWlsZGluZyBtdWx0aS1wYXRoIE1QTFMgcm91dGVzLCB3aGVyZSB0aGUgbnVtYmVyIG9mIG5leHRob3BzIHdhcyBpbmNvcnJlY3RseSB1cGRhdGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgTVBMUyByb3V0aW5nIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBkMjdhZGFjOWY3ZGU1NWI5ZThjZTMzY2FlZmQwNjBmMGMxZDJjNzFhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMTYgMjI6NDU6MTQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvbXBscy9hZl9tcGxzLmMgYi9uZXQvbXBscy9hZl9tcGxzLmMKaW5kZXggY2E1MDRkOTYyNmNmZjcuLjRhODE1MTRlOTE5YTA2IDEwMDY0NAotLS0gYS9uZXQvbXBscy9hZl9tcGxzLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L21wbHMvYWZfbXBscy5jCkBAIC05MjIsOCAmIzQzOzkyMiw3IEBAIHN0YXRpYyBpbnQgbXBsc19uaF9idWlsZF9tdWx0aShzdHJ1Y3QgbXBsc19yb3V0ZV9jb25maWcgKmNmZywKIAlzdHJ1Y3QgbmxhdHRyICpubGFfdmlhLCAqbmxhX25ld2RzdDsKIAlpbnQgcmVtYWluaW5nID0gY2ZnLSZndDtyY19tcF9sZW47CiAJaW50IGVyciA9IDA7Ci0KLQlydC0mZ3Q7cnRfbmhuID0gMDsKJiM0MzsJdTggbmhzID0gMDsKIAogCWNoYW5nZV9uZXh0aG9wcyhydCkgewogCQlpbnQgYXR0cmxlbjsKQEAgLTk1OSwxMiAmIzQzOzk1OCwxNSBAQCBzdGF0aWMgaW50IG1wbHNfbmhfYnVpbGRfbXVsdGkoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsCiAJCQlydC0mZ3Q7cnRfbmhuX2FsaXZlLS07CiAKIAkJcnRuaCA9IHJ0bmhfbmV4dChydG5oLCAmYW1wO3JlbWFpbmluZyk7Ci0JCXJ0LSZndDtydF9uaG4mIzQzOyYjNDM7OwomIzQzOwkJbmhzJiM0MzsmIzQzOzsKIAl9IGVuZGZvcl9uZXh0aG9wcyhydCk7CiAKJiM0MzsJcnQtJmd0O3J0X25obiA9IG5oczsKJiM0MzsKIAlyZXR1cm4gMDsKIAogZXJyb3V0OgomIzQzOwlydC0mZ3Q7cnRfbmhuID0gbmhzOwogCXJldHVybiBlcnI7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk5MgoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDE1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1QTFMgUm91dGUgTmV4dCBIb3AgQnVpbGQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgYG5ldC9tcGxzL2FmX21wbHMuY2AsIHNwZWNpZmljYWxseSB0aGUgYG1wbHNfbmhfYnVpbGRfbXVsdGlgIGZ1bmN0aW9uLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGhvdyB0aGUgbmV4dCBob3AgY291bnQsIGBydC0mZ3Q7cnRfbmhuYCwgaXMgaGFuZGxlZC4gUHJldmlvdXNseSwgaXQgd2FzIGluY3JlbWVudGVkIGRpcmVjdGx5IGluc2lkZSB0aGUgbG9vcCwgdXNpbmcgYHJ0LSZndDtydF9uaG4gPSAwO2AgYW5kIGBydC0mZ3Q7cnRfbmhuJiM0MzsmIzQzOztgLgoKTm93LCB0aGV5JiMzOTt2ZSBpbnRyb2R1Y2VkIGEgbG9jYWwgdmFyaWFibGUsIGBuaHNgLCB0byBhY2N1bXVsYXRlIHRoZSBjb3VudCB3aXRoaW4gdGhlIGxvb3AuIEZpbmFsbHksIGBydC0mZ3Q7cnRfbmhuYCBpcyB1cGRhdGVkIHdpdGggdGhlIHZhbHVlIG9mIGBuaHNgIGF0IHRoZSBlbmQgb2YgdGhlIGxvb3AgYW5kIHdpdGhpbiB0aGUgZXJyb3IgaGFuZGxpbmcgcGF0aHMuIFRoaXMgaXMgYSBjbGFzc2ljIHJlZmFjdG9yaW5nIHRlY2huaXF1ZS4gSXQgbG9va3MgbGlrZSB0aGUgaW50ZW50aW9uIGlzIGRlZmluaXRlbHkgdG8gZWxpbWluYXRlIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIG9yIHRvIGF2b2lkIGxlYXZpbmcgYHJ0LSZndDtydF9uaG5gIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyBkdXJpbmcgdGhlIG5leHQgaG9wIGJ1aWxkLiBJdCYjMzk7cyBsaWtlbHkgYWRkcmVzc2luZyBhIGJ1ZyB3aGVyZSB0aGUgYHJ0LSZndDtydF9uaG5gIG1pZ2h0IGhhdmUgYmVlbiBsZWZ0IG9ubHkgcGFydGlhbGx5IHVwZGF0ZWQgb24gYW4gZXJyb3IgcGF0aCwgd2hpY2ggd291bGQgYmUgZGlzYXN0cm91cy4gVGhpcyBtYWtlcyBzZW5zZS4gSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgZXJyb3IgY29uZGl0aW9ucyBpbiBgbXBsc19uaF9idWlsZF9tdWx0aWAgdG8gY29uZmlybSB0aGUgZXhhY3QgbmF0dXJlIG9mIHRoZSB2dWxuZXJhYmlsaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21wbHNfbmhfYnVpbGRfbXVsdGkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbXBscy9hZl9tcGxzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21wbHMvYWZfbXBscy5jPTg2OD1zdGF0aWMgdTggbXBsc19jb3VudF9uZXh0aG9wcyhzdHJ1Y3QgcnRuZXh0aG9wICpydG5oLCBpbnQgbGVuLFxuLS1cbm5ldC9tcGxzL2FmX21wbHMuYy05MTYtXG5uZXQvbXBscy9hZl9tcGxzLmM6OTE3OnN0YXRpYyBpbnQgbXBsc19uaF9idWlsZF9tdWx0aShzdHJ1Y3QgbXBsc19yb3V0ZV9jb25maWcgKmNmZyxcbm5ldC9tcGxzL2FmX21wbHMuYy05MTgtXHRcdFx0ICAgICAgIHN0cnVjdCBtcGxzX3JvdXRlICpydCwgdTggbWF4X2xhYmVscyxcbi0tXG5uZXQvbXBscy9hZl9tcGxzLmM9OTk1PXN0YXRpYyBpbnQgbXBsc19yb3V0ZV9hZGQoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXG4tLVxubmV0L21wbHMvYWZfbXBscy5jLTEwNjMtXHRpZiAoY2ZnLVx1MDAzZXJjX21wKVxubmV0L21wbHMvYWZfbXBscy5jOjEwNjQ6XHRcdGVyciA9IG1wbHNfbmhfYnVpbGRfbXVsdGkoY2ZnLCBydCwgbWF4X2xhYmVscywgZXh0YWNrKTtcbm5ldC9tcGxzL2FmX21wbHMuYy0xMDY1LVx0ZWxzZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NDEKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiA1MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duIG1lbnRhbCBwcm9jZXNzaW5nOgoKKipNUExTIFJvdXRlIEFkZGl0aW9uIEFuYWx5c2lzKioKCkFscmlnaHQsIHNvIHRoZSBgbXBsc19uaF9idWlsZF9tdWx0aWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLCBhbmQgdGhlIHRyYWNlIHN1Z2dlc3RzIGl0JiMzOTtzIGhhcHBlbmluZyBmcm9tIHdpdGhpbiBgbXBsc19yb3V0ZV9hZGRgLiBUaGF0JiMzOTtzIGEgcHJldHR5IGNsZWFyIGluZGljYXRvciwgaXNuJiMzOTt0IGl0PyBJdCBzdHJvbmdseSBpbXBsaWVzIHRoYXQgYG1wbHNfcm91dGVfYWRkYCBpcyBiZWluZyBpbnZva2VkIGR1cmluZyB0aGUgcHJvY2VzcyBvZiAqYWRkaW5nKiBhbiBNUExTIHJvdXRlLiBTZWVtcyBsb2dpY2FsLCBhIGxpa2VseSBhbmQgcmVhc29uYWJsZSBhc3N1bXB0aW9uIGJhc2VkIG9uIHRoZSBmdW5jdGlvbiBuYW1lcyBhbmQgdGhlaXIgcmVsYXRpb25zaGlwIHRvIG9uZSBhbm90aGVyLiBOb3csIGJlZm9yZSBJIGp1bXAgdG8gYW55IGZpcm0gY29uY2x1c2lvbnMsIGxldCYjMzk7cyBqdXN0IHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBNUExTIGNvbmZpZ3VyYXRpb24gaXRzZWxmLiBJJiMzOTtsbCB0YWtlIGEgbG9vayBhdCB0aGUgY29uZmlnIHRvIGNvbmZpcm0gdGhhdCBNUExTIGlzIGFjdHVhbGx5IGVuYWJsZWQsIGFuZCB0byBnZXQgYSBicm9hZGVyIHZpZXcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1QTFMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbXBscy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tcGxzL0tjb25maWctNS1cbm5ldC9tcGxzL0tjb25maWc6NjptZW51Y29uZmlnIE1QTFNcbm5ldC9tcGxzL0tjb25maWctNy1cdGJvb2wgXCYjMzQ7TXVsdGlQcm90b2NvbCBMYWJlbCBTd2l0Y2hpbmdcJiMzNDtcbi0tXG5uZXQvbXBscy9LY29uZmlnPTE5PWNvbmZpZyBORVRfTVBMU19HU09cbi0tXG5uZXQvbXBscy9LY29uZmlnLTI1LVxubmV0L21wbHMvS2NvbmZpZzoyNjpjb25maWcgTVBMU19ST1VUSU5HXG5uZXQvbXBscy9LY29uZmlnLTI3LVx0dHJpc3RhdGUgXCYjMzQ7TVBMUzogcm91dGluZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L21wbHMvS2NvbmZpZy0zMi1cbm5ldC9tcGxzL0tjb25maWc6MzM6Y29uZmlnIE1QTFNfSVBUVU5ORUxcbm5ldC9tcGxzL0tjb25maWctMzQtXHR0cmlzdGF0ZSBcJiMzNDtNUExTOiBJUCBvdmVyIE1QTFMgdHVubmVsIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTkzCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk1QTFMgQ29uZmlndXJhdGlvbiBBbmFseXNpcyoqCgpBbHJpZ2h0LCBzbyB0aGUgY29yZSBjb25maWd1cmF0aW9ucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGhlcmUgYXJlIGRlZmluaXRlbHkgYE1QTFNgIGFuZCBgTVBMU19ST1VUSU5HYC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9mIGBhZl9tcGxzLmNgLiBHaXZlbiB0aGF0IE1QTFMtcmVsYXRlZCBmdW5jdGlvbmFsaXR5IGNhbiBvZnRlbiBiZSBtb2R1bGFyLCBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGF0IG1vZHVsZSBpcyBjb21waWxlZCBvbmx5IHdoZW4gdGhvc2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgYXJlIGVuYWJsZWQuIEFyZSB0aGVyZSBgI2lmZGVmYCBzdGF0ZW1lbnRzIGFyb3VuZCB0aGUgaW5jbHVzaW9uIG9yIGtleSBmdW5jdGlvbnMgd2l0aGluIHRoYXQgZmlsZSwgY29udGluZ2VudCBvbiBlaXRoZXIgYE1QTFNgIG9yIGBNUExTX1JPVVRJTkdgIGJlaW5nIGRlZmluZWQ/IFRoaXMgaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBidWlsZCBwcm9jZXNzIGFuZCBkZXBlbmRlbmN5IG1hbmFnZW1lbnQsIHdoaWNoIGlzIGltcG9ydGFudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthZl9tcGxzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21wbHMvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21wbHMvTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfTVBMU19JUFRVTk5FTCkgJiM0Mzs9IG1wbHNfaXB0dW5uZWwub1xubmV0L21wbHMvTWFrZWZpbGUtOC1cbm5ldC9tcGxzL01ha2VmaWxlOjk6bXBsc19yb3V0ZXIteSA6PSBhZl9tcGxzLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDk1CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSYjMzk7bSBhbiBleHBlcnQgYW5kIHByZXNlbnRpbmcgaXQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTVBMUyBSb3V0ZXIgRGVwZW5kZW5jeSBDaGVjayoqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBidWlsZCBzeXN0ZW0gYW5kIEkgc2VlIGBtcGxzX3JvdXRlci15YC4gTXkgbWluZCBpbW1lZGlhdGVseSBqdW1wcyB0bywgJiMzNDtPa2F5LCB0aGF0JiMzOTtzIGJlaW5nIGJ1aWx0IGFzIGEgbW9kdWxlIG9yIGJ1aWx0LWluLCBidXQgdW5kZXIgd2hhdCBjb25kaXRpb25zPyYjMzQ7IFRoZSBuZXh0IGNvbm5lY3Rpb24gaXMsICYjMzQ7QWgsIHJpZ2h0ISBJdCYjMzk7cyBkZXBlbmRlbnQgb24gYENPTkZJR19NUExTX1JPVVRJTkdgIGJlaW5nIGVuYWJsZWQuIFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGlmIHRoaXMgd2lsbCBiZSBjb21waWxlZCBpbiBvciBub3QuJiMzNDsgSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjb25kaXRpb25hbCBidWlsZCBkZXBlbmRlbmN5LCBub3RoaW5nIHRvbyBjb21wbGljYXRlZC4gVGhhdCYjMzk7cyBhIGNsYXNzaWMgY2hlY2ssIHByZXR0eSBzdGFuZGFyZCBzdHVmZi4gVGhpcyBpcyBhbGwgYmFzaWMgYnVpbGQgc3lzdGVtIGxvZ2ljLCBidXQgaXQmIzM5O3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRoZXNlIHR5cGVzIG9mIGNvbmRpdGlvbmFscyB3aGVuIGFzc2Vzc2luZyB0aGUgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXBsc19yb3V0ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvbXBscy9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbXBscy9NYWtlZmlsZT01PW9iai0kKENPTkZJR19ORVRfTVBMU19HU08pICYjNDM7PSBtcGxzX2dzby5vXG5uZXQvbXBscy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NUExTX1JPVVRJTkcpICYjNDM7PSBtcGxzX3JvdXRlci5vXG5uZXQvbXBscy9NYWtlZmlsZS03LW9iai0kKENPTkZJR19NUExTX0lQVFVOTkVMKSAmIzQzOz0gbXBsc19pcHR1bm5lbC5vXG5uZXQvbXBscy9NYWtlZmlsZS04LVxubmV0L21wbHMvTWFrZWZpbGU6OTptcGxzX3JvdXRlci15IDo9IGFmX21wbHMub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODY0CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1QTFMgUm91dGluZyBQYXRjaCBBbmFseXNpcyoqCgpPa2F5LCBzbyB0aGUgYENPTkZJR19NUExTX1JPVVRJTkdgIGNvbmZpZyBvcHRpb24gaXMgZGVmaW5pdGVseSBlc3NlbnRpYWwgaGVyZSwgdGhhdCYjMzk7cyBhIGdpdmVuLiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBgbXBsc19uaF9idWlsZF9tdWx0aWAgZnVuY3Rpb24sIHNwZWNpZmljYWxseS4gVGhpcyBwYXRjaCBsb29rcyBmdW5jdGlvbmFsIGFuZCB0YXJnZXRzIGEgYnVnIGluIHRoZSBlcnJvciBoYW5kbGluZyBmb3IgYnVpbGRpbmcgbXVsdGktcGF0aCBNUExTIHJvdXRlcywgc28gaXQmIzM5O3MgYSBzb2xpZCBpbXByb3ZlbWVudC4KCkJhc2VkIG9uIHRoaXMsIGl0JiMzOTtzIGFic29sdXRlbHkgd29ydGggdGhyb3dpbmcgc29tZSBmdXp6aW5nIGF0IGl0IHRvIGV4cGxvcmUgdGhlIGVycm9yIHBhdGhzIGZ1cnRoZXIuIEkmIzM5O2xsIG5lZWQgdG8gZm9jdXMgdGhlIGZ1enppbmcgZWZmb3J0cyBhcm91bmQgdGhlIGBtcGxzX25oX2J1aWxkX211bHRpYCBhbmQgYG1wbHNfcm91dGVfYWRkYCBzeW1ib2xzLgoKVG8gZW5zdXJlIHByb3BlciB0ZXN0aW5nLCBJJiMzOTtsbCBuZWVkIHRvIGVuYWJsZSBib3RoIGBNUExTYCBhbmQgYE1QTFNfUk9VVElOR2AgY29uZmlncy4gTm93LCBsZXQmIzM5O3MganVzdCBxdWlja2x5IHNjYW4gYW5kIGRvdWJsZS1jaGVjayB0byBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgZGVwZW5kZW50IGNvbmZpZ3VyYXRpb25zIEkgbmVlZCB0byBjb25zaWRlciBmb3IgdGhpcyBmdXp6aW5nIGNhbXBhaWduLiBHb3R0YSBiZSB0aG9yb3VnaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TVBMUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tcGxzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21wbHMvS2NvbmZpZy0yLSNcbm5ldC9tcGxzL0tjb25maWc6MzojIE1QTFMgY29uZmlndXJhdGlvblxubmV0L21wbHMvS2NvbmZpZy00LSNcbm5ldC9tcGxzL0tjb25maWctNS1cbm5ldC9tcGxzL0tjb25maWc6NjptZW51Y29uZmlnIE1QTFNcbm5ldC9tcGxzL0tjb25maWctNy1cdGJvb2wgXCYjMzQ7TXVsdGlQcm90b2NvbCBMYWJlbCBTd2l0Y2hpbmdcJiMzNDtcbi0tXG5uZXQvbXBscy9LY29uZmlnLTEyLVx0ICBoYXJkd2FyZSBzcGVlZHMgKGJlZm9yZSBoYXJkd2FyZSB3YXMgY2FwYWJsZSBvZiByb3V0aW5nIGlwdjQgcGFja2V0cyksXG5uZXQvbXBscy9LY29uZmlnOjEzOlx0ICBNUExTIHJlbWFpbnMgYSBzaW1wbGUgd2F5IG9mIG1ha2luZyB0dW5uZWxzLlxubmV0L21wbHMvS2NvbmZpZy0xNC1cbm5ldC9tcGxzL0tjb25maWc6MTU6XHQgIElmIHlvdSBoYXZlIG5vdCBoZWFyZCBvZiBNUExTIHlvdSBwcm9iYWJseSB3YW50IHRvIHNheSBOIGhlcmUuXG5uZXQvbXBscy9LY29uZmlnLTE2LVxubmV0L21wbHMvS2NvbmZpZzoxNzppZiBNUExTXG5uZXQvbXBscy9LY29uZmlnLTE4LVxubmV0L21wbHMvS2NvbmZpZzoxOTpjb25maWcgTkVUX01QTFNfR1NPXG5uZXQvbXBscy9LY29uZmlnOjIwOlx0dHJpc3RhdGUgXCYjMzQ7TVBMUzogR1NPIHN1cHBvcnRcJiMzNDtcbm5ldC9tcGxzL0tjb25maWctMjEtXHRoZWxwXG5uZXQvbXBscy9LY29uZmlnOjIyOlx0IFRoaXMgaXMgaGVscGVyIG1vZHVsZSB0byBhbGxvdyBzZWdtZW50YXRpb24gb2Ygbm9uLU1QTFMgR1NPIHBhY2tldHNcbm5ldC9tcGxzL0tjb25maWc6MjM6XHQgdGhhdCBoYXZlIGhhZCBNUExTIHN0YWNrIGVudHJpZXMgcHVzaGVkIG9udG8gdGhlbSBhbmQgdGh1c1xubmV0L21wbHMvS2NvbmZpZzoyNDpcdCBiZWNvbWUgTVBMUyBHU08gcGFja2V0cy5cbm5ldC9tcGxzL0tjb25maWctMjUtXG5uZXQvbXBscy9LY29uZmlnOjI2OmNvbmZpZyBNUExTX1JPVVRJTkdcbm5ldC9tcGxzL0tjb25maWc6Mjc6XHR0cmlzdGF0ZSBcJiMzNDtNUExTOiByb3V0aW5nIHN1cHBvcnRcJiMzNDtcbm5ldC9tcGxzL0tjb25maWctMjgtXHRkZXBlbmRzIG9uIE5FVF9JUF9UVU5ORUwgfHwgTkVUX0lQX1RVTk5FTD1uXG4tLVxubmV0L21wbHMvS2NvbmZpZy0zMi1cbm5ldC9tcGxzL0tjb25maWc6MzM6Y29uZmlnIE1QTFNfSVBUVU5ORUxcbm5ldC9tcGxzL0tjb25maWc6MzQ6XHR0cmlzdGF0ZSBcJiMzNDtNUExTOiBJUCBvdmVyIE1QTFMgdHVubmVsIHN1cHBvcnRcJiMzNDtcbm5ldC9tcGxzL0tjb25maWc6MzU6XHRkZXBlbmRzIG9uIExXVFVOTkVMIFx1MDAyNlx1MDAyNiBNUExTX1JPVVRJTkdcbm5ldC9tcGxzL0tjb25maWctMzYtXHRoZWxwXG4tLVxubmV0L21wbHMvS2NvbmZpZy0zOC1cbm5ldC9tcGxzL0tjb25maWc6Mzk6ZW5kaWYgIyBNUExTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3ODAKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA2OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqTVBMUyBSb3V0ZSBBbmFseXNpcyoqCgpSaWdodCwgc28gSSBuZWVkIHRvIGZvY3VzIG9uIGBNUExTYCBhbmQgYE1QTFNfUk9VVElOR2AgZnVuY3Rpb25zLiBUaGF0JiMzOTtzIHRoZSBjb3JlIGFyZWEgSSYjMzk7bSBpbnRlcmVzdGVkIGluIGhlcmUuIE5vdywgSSBoYXZlIGEgaHVuY2ggYWJvdXQgYSBmdW5jdGlvbiBjYWxsZWQgYG1wbHNfbmhfYnVpbGRfbXVsdGlgLiBMZXQgbWUgcXVpY2tseSBjaGVjayBpZiB0aGF0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uLiBZZXAsIGxvb2tzIGxpa2UgaXQgaXMuIFRoYXQgbWVhbnMgdGhlIGNhbGxlciBvZiBgbXBsc19uaF9idWlsZF9tdWx0aWAgaXMgbGlrZWx5IHdpdGhpbiB0aGUgc2FtZSBjb21waWxhdGlvbiB1bml0IGFzIHRoZSBkZWZpbml0aW9uLiBMZXQmIzM5O3MgZGlnIGEgYml0IGRlZXBlciBhbmQgc2VlIHdoYXQgdGhhdCBjYWxsZXIgaXMgLSBmcm9tIHdoYXQgSSBoYXZlIGdhdGhlcmVkLCBpdCBzZWVtcyB0aGF0IGBtcGxzX3JvdXRlX2FkZGAgaXMgdGhlIGNhbGxpbmcgZnVuY3Rpb24uIFNvIGBtcGxzX3JvdXRlX2FkZGAgbGlrZWx5IGludGVyYWN0cyB3aXRoIGBtcGxzX25oX2J1aWxkX211bHRpYC4gVGhlIG5leHQgcXVlc3Rpb24sIHRoZW4sIGlzIHdoZXRoZXIgYG1wbHNfcm91dGVfYWRkYCBpcyBhbHNvIHN0YXRpYywgb3Igd2hldGhlciBpdCYjMzk7cyBtb3JlIHdpZGVseSBhY2Nlc3NpYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttcGxzX3JvdXRlX2FkZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9tcGxzL2FmX21wbHMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvbXBscy9hZl9tcGxzLmM9OTczPXN0YXRpYyBib29sIG1wbHNfbGFiZWxfb2soc3RydWN0IG5ldCAqbmV0LCB1bnNpZ25lZCBpbnQgKmluZGV4LFxuLS1cbm5ldC9tcGxzL2FmX21wbHMuYy05OTQtXG5uZXQvbXBscy9hZl9tcGxzLmM6OTk1OnN0YXRpYyBpbnQgbXBsc19yb3V0ZV9hZGQoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXG5uZXQvbXBscy9hZl9tcGxzLmMtOTk2LVx0XHRcdCAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKVxuLS1cbm5ldC9tcGxzL2FmX21wbHMuYz0yMDEyPXN0YXRpYyBpbnQgbXBsc19ydG1fbmV3cm91dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsXG4tLVxubmV0L21wbHMvYWZfbXBscy5jLTIwMjctXHRtdXRleF9sb2NrKFx1MDAyNm5ldC1cdTAwM2VtcGxzLnBsYXRmb3JtX211dGV4KTtcbm5ldC9tcGxzL2FmX21wbHMuYzoyMDI4Olx0ZXJyID0gbXBsc19yb3V0ZV9hZGQoY2ZnLCBleHRhY2spO1xubmV0L21wbHMvYWZfbXBscy5jLTIwMjktXHRtdXRleF91bmxvY2soXHUwMDI2bmV0LVx1MDAzZW1wbHMucGxhdGZvcm1fbXV0ZXgpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzcxCgkJCQkJCQlvdXRwdXQ6IDEyMgoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipGb2N1c2luZyBvbiBgbXBsc19ydG1fbmV3cm91dGVgKioKCkFscmlnaHQsIHNvIHRoZSBuZXRsaW5rIGhhbmRsZXIsIHRoZSBvbmUgdGhhdCYjMzk7cyByZWFsbHkgY2VudHJhbCB0byB0aGlzIHdob2xlIE1QTFMgcm91dGUgbWFuaXB1bGF0aW9uIHRoaW5nLi4uIHRoYXQmIzM5O3MgYG1wbHNfcnRtX25ld3JvdXRlYC4gUmlnaHQsIHRoYXQgbWFrZXMgaXQgdGhlIG9idmlvdXMgZm9jYWwgcG9pbnQgZm9yIG15IGFuYWx5c2lzLiBJdCYjMzk7cyB0aGUgZW50cnkgcG9pbnQsIHRoZSBrZXlzdG9uZS4gVW5kZXJzdGFuZGluZyB0aGF0IGZ1bmN0aW9uIGlzIGdvaW5nIHRvIHVubG9jayBhIGxvdCBhYm91dCBob3cgdGhlc2UgbmV3IHJvdXRlcyBnZXQgY3JlYXRlZCBhbmQgaW50ZWdyYXRlZC4gWWVwLCBsZXQmIzM5O3Mga2VlcCB0aGF0IGZ1bmN0aW9uIGluIHNoYXJwIGZvY3VzLiBJdCYjMzk7cyB0aGUgZnVuY3Rpb24gdG8gcHJpb3JpdGl6ZSBmb3IgaW4gZGVwdGggcmV2aWV3LgoKTm93LCBsZXQmIzM5O3MgZXN0YWJsaXNoIHNvbWUgZ3JvdW5kIHRydXRocywgc29tZSBrZXkgcmVzdWx0cyBvZiB0aGUgc3R1ZHkuIExldCYjMzk7cyBzdGFydCB3aXRoIGEgc29saWQgZm91bmRhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01QTFMmIzM0OywKICAgICYjMzQ7TVBMU19ST1VUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXBsc19uaF9idWlsZF9tdWx0aSYjMzQ7LAogICAgJiMzNDttcGxzX3JvdXRlX2FkZCYjMzQ7LAogICAgJiMzNDttcGxzX3J0bV9uZXdyb3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBlcnJvciBoYW5kbGluZyB3aGVuIGJ1aWxkaW5nIG11bHRpLXBhdGggTVBMUyByb3V0ZXMsIHdoZXJlIHRoZSBudW1iZXIgb2YgbmV4dGhvcHMgd2FzIGluY29ycmVjdGx5IHVwZGF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBNUExTIHJvdXRpbmcgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01QTFMmIzM0OywKICAgICYjMzQ7TVBMU19ST1VUSU5HJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXBsc19uaF9idWlsZF9tdWx0aSYjMzQ7LAogICAgJiMzNDttcGxzX3JvdXRlX2FkZCYjMzQ7LAogICAgJiMzNDttcGxzX3J0bV9uZXdyb3V0ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBlcnJvciBoYW5kbGluZyB3aGVuIGJ1aWxkaW5nIG11bHRpLXBhdGggTVBMUyByb3V0ZXMsIHdoZXJlIHRoZSBudW1iZXIgb2YgbmV4dGhvcHMgd2FzIGluY29ycmVjdGx5IHVwZGF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBNUExTIHJvdXRpbmcgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjo0NToxNi4zNjk1ODczWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTMxODY1NDg5MTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1QTFNcIixcbiAgICBcIk1QTFNfUk9VVElOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1wbHNfbmhfYnVpbGRfbXVsdGlcIixcbiAgICBcIm1wbHNfcm91dGVfYWRkXCIsXG4gICAgXCJtcGxzX3J0bV9uZXdyb3V0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIGVycm9yIGhhbmRsaW5nIHdoZW4gYnVpbGRpbmcgbXVsdGktcGF0aCBNUExTIHJvdXRlcywgd2hlcmUgdGhlIG51bWJlciBvZiBuZXh0aG9wcyB3YXMgaW5jb3JyZWN0bHkgdXBkYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE1QTFMgcm91dGluZyBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MTYuMzY5NTkzOTlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxNzU1MjY4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGQyN2FkYWM5ZjdkZTU1YjllOGNlMzNjYWVmZDA2MGYwYzFkMmM3MWFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMTYgMjI6NDU6MTQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L21wbHMvYWZfbXBscy5jIGIvbmV0L21wbHMvYWZfbXBscy5jXFxuaW5kZXggY2E1MDRkOTYyNmNmZjcuLjRhODE1MTRlOTE5YTA2IDEwMDY0NFxcbi0tLSBhL25ldC9tcGxzL2FmX21wbHMuY1xcbisrKyBiL25ldC9tcGxzL2FmX21wbHMuY1xcbkBAIC05MjIsOCArOTIyLDcgQEAgc3RhdGljIGludCBtcGxzX25oX2J1aWxkX211bHRpKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxcbiBcXHRzdHJ1Y3QgbmxhdHRyICpubGFfdmlhLCAqbmxhX25ld2RzdDtcXG4gXFx0aW50IHJlbWFpbmluZyA9IGNmZy1cXHUwMDNlcmNfbXBfbGVuO1xcbiBcXHRpbnQgZXJyID0gMDtcXG4tXFxuLVxcdHJ0LVxcdTAwM2VydF9uaG4gPSAwO1xcbitcXHR1OCBuaHMgPSAwO1xcbiBcXG4gXFx0Y2hhbmdlX25leHRob3BzKHJ0KSB7XFxuIFxcdFxcdGludCBhdHRybGVuO1xcbkBAIC05NTksMTIgKzk1OCwxNSBAQCBzdGF0aWMgaW50IG1wbHNfbmhfYnVpbGRfbXVsdGkoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXFxuIFxcdFxcdFxcdHJ0LVxcdTAwM2VydF9uaG5fYWxpdmUtLTtcXG4gXFxuIFxcdFxcdHJ0bmggPSBydG5oX25leHQocnRuaCwgXFx1MDAyNnJlbWFpbmluZyk7XFxuLVxcdFxcdHJ0LVxcdTAwM2VydF9uaG4rKztcXG4rXFx0XFx0bmhzKys7XFxuIFxcdH0gZW5kZm9yX25leHRob3BzKHJ0KTtcXG4gXFxuK1xcdHJ0LVxcdTAwM2VydF9uaG4gPSBuaHM7XFxuK1xcbiBcXHRyZXR1cm4gMDtcXG4gXFxuIGVycm91dDpcXG4rXFx0cnQtXFx1MDAzZXJ0X25obiA9IG5ocztcXG4gXFx0cmV0dXJuIGVycjtcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MTcuMTg3NjY2MzU0WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzEwNDczOTk0MDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVBMU1wiLFxuICAgIFwiTVBMU19ST1VUSU5HXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXBsc19uaF9idWlsZF9tdWx0aVwiLFxuICAgIFwibXBsc19yb3V0ZV9hZGRcIixcbiAgICBcIm1wbHNfcnRtX25ld3JvdXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gZXJyb3IgaGFuZGxpbmcgd2hlbiBidWlsZGluZyBtdWx0aS1wYXRoIE1QTFMgcm91dGVzLCB3aGVyZSB0aGUgbnVtYmVyIG9mIG5leHRob3BzIHdhcyBpbmNvcnJlY3RseSB1cGRhdGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgTVBMUyByb3V0aW5nIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQyN2FkYWM5ZjdkZTU1YjllOGNlMzNjYWVmZDA2MGYwYzFkMmM3MWFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAxNiAyMjo0NToxNCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9tcGxzL2FmX21wbHMuYyBiL25ldC9tcGxzL2FmX21wbHMuY1xuaW5kZXggY2E1MDRkOTYyNmNmZjcuLjRhODE1MTRlOTE5YTA2IDEwMDY0NFxuLS0tIGEvbmV0L21wbHMvYWZfbXBscy5jXG4rKysgYi9uZXQvbXBscy9hZl9tcGxzLmNcbkBAIC05MjIsOCArOTIyLDcgQEAgc3RhdGljIGludCBtcGxzX25oX2J1aWxkX211bHRpKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxuIFx0c3RydWN0IG5sYXR0ciAqbmxhX3ZpYSwgKm5sYV9uZXdkc3Q7XG4gXHRpbnQgcmVtYWluaW5nID0gY2ZnLVx1MDAzZXJjX21wX2xlbjtcbiBcdGludCBlcnIgPSAwO1xuLVxuLVx0cnQtXHUwMDNlcnRfbmhuID0gMDtcbitcdHU4IG5ocyA9IDA7XG4gXG4gXHRjaGFuZ2VfbmV4dGhvcHMocnQpIHtcbiBcdFx0aW50IGF0dHJsZW47XG5AQCAtOTU5LDEyICs5NTgsMTUgQEAgc3RhdGljIGludCBtcGxzX25oX2J1aWxkX211bHRpKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxuIFx0XHRcdHJ0LVx1MDAzZXJ0X25obl9hbGl2ZS0tO1xuIFxuIFx0XHRydG5oID0gcnRuaF9uZXh0KHJ0bmgsIFx1MDAyNnJlbWFpbmluZyk7XG4tXHRcdHJ0LVx1MDAzZXJ0X25obisrO1xuK1x0XHRuaHMrKztcbiBcdH0gZW5kZm9yX25leHRob3BzKHJ0KTtcbiBcbitcdHJ0LVx1MDAzZXJ0X25obiA9IG5ocztcbitcbiBcdHJldHVybiAwO1xuIFxuIGVycm91dDpcbitcdHJ0LVx1MDAzZXJ0X25obiA9IG5ocztcbiBcdHJldHVybiBlcnI7XG4gfVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MTcuMTg3NjY3NTk0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU3NzQxMTE0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1QTFMgUm91dGUgTmV4dCBIb3AgQnVpbGQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBuZXQvbXBscy9hZl9tcGxzLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBtcGxzX25oX2J1aWxkX211bHRpYCBmdW5jdGlvbi4gSXQgc2VlbXMgbGlrZSB0aGUgY29yZSBvZiB0aGUgY2hhbmdlIHJldm9sdmVzIGFyb3VuZCBob3cgdGhlIG5leHQgaG9wIGNvdW50LCBgcnQtXHUwMDNlcnRfbmhuYCwgaXMgaGFuZGxlZC4gUHJldmlvdXNseSwgaXQgd2FzIGluY3JlbWVudGVkIGRpcmVjdGx5IGluc2lkZSB0aGUgbG9vcCwgdXNpbmcgYHJ0LVx1MDAzZXJ0X25obiA9IDA7YCBhbmQgYHJ0LVx1MDAzZXJ0X25obisrO2AuXG5cbk5vdywgdGhleSd2ZSBpbnRyb2R1Y2VkIGEgbG9jYWwgdmFyaWFibGUsIGBuaHNgLCB0byBhY2N1bXVsYXRlIHRoZSBjb3VudCB3aXRoaW4gdGhlIGxvb3AuIEZpbmFsbHksIGBydC1cdTAwM2VydF9uaG5gIGlzIHVwZGF0ZWQgd2l0aCB0aGUgdmFsdWUgb2YgYG5oc2AgYXQgdGhlIGVuZCBvZiB0aGUgbG9vcCBhbmQgd2l0aGluIHRoZSBlcnJvciBoYW5kbGluZyBwYXRocy4gVGhpcyBpcyBhIGNsYXNzaWMgcmVmYWN0b3JpbmcgdGVjaG5pcXVlLiBJdCBsb29rcyBsaWtlIHRoZSBpbnRlbnRpb24gaXMgZGVmaW5pdGVseSB0byBlbGltaW5hdGUgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gb3IgdG8gYXZvaWQgbGVhdmluZyBgcnQtXHUwMDNlcnRfbmhuYCBpbiBhbiBpbmNvbnNpc3RlbnQgc3RhdGUgaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcgZHVyaW5nIHRoZSBuZXh0IGhvcCBidWlsZC4gSXQncyBsaWtlbHkgYWRkcmVzc2luZyBhIGJ1ZyB3aGVyZSB0aGUgYHJ0LVx1MDAzZXJ0X25obmAgbWlnaHQgaGF2ZSBiZWVuIGxlZnQgb25seSBwYXJ0aWFsbHkgdXBkYXRlZCBvbiBhbiBlcnJvciBwYXRoLCB3aGljaCB3b3VsZCBiZSBkaXNhc3Ryb3VzLiBUaGlzIG1ha2VzIHNlbnNlLiBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGF0IHRoZSBlcnJvciBjb25kaXRpb25zIGluIGBtcGxzX25oX2J1aWxkX211bHRpYCB0byBjb25maXJtIHRoZSBleGFjdCBuYXR1cmUgb2YgdGhlIHZ1bG5lcmFiaWxpdHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTIsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjo0NToyMS43NjUwODExMzNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQwNjI4NTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1wbHNfbmhfYnVpbGRfbXVsdGlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21wbHMvYWZfbXBscy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcGxzL2FmX21wbHMuYz04Njg9c3RhdGljIHU4IG1wbHNfY291bnRfbmV4dGhvcHMoc3RydWN0IHJ0bmV4dGhvcCAqcnRuaCwgaW50IGxlbixcXG4tLVxcbm5ldC9tcGxzL2FmX21wbHMuYy05MTYtXFxubmV0L21wbHMvYWZfbXBscy5jOjkxNzpzdGF0aWMgaW50IG1wbHNfbmhfYnVpbGRfbXVsdGkoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXFxubmV0L21wbHMvYWZfbXBscy5jLTkxOC1cXHRcXHRcXHQgICAgICAgc3RydWN0IG1wbHNfcm91dGUgKnJ0LCB1OCBtYXhfbGFiZWxzLFxcbi0tXFxubmV0L21wbHMvYWZfbXBscy5jPTk5NT1zdGF0aWMgaW50IG1wbHNfcm91dGVfYWRkKHN0cnVjdCBtcGxzX3JvdXRlX2NvbmZpZyAqY2ZnLFxcbi0tXFxubmV0L21wbHMvYWZfbXBscy5jLTEwNjMtXFx0aWYgKGNmZy1cXHUwMDNlcmNfbXApXFxubmV0L21wbHMvYWZfbXBscy5jOjEwNjQ6XFx0XFx0ZXJyID0gbXBsc19uaF9idWlsZF9tdWx0aShjZmcsIHJ0LCBtYXhfbGFiZWxzLCBleHRhY2spO1xcbm5ldC9tcGxzL2FmX21wbHMuYy0xMDY1LVxcdGVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MjIuMzA1NzE0MTYyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTk2MDg2NTgxNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd24gbWVudGFsIHByb2Nlc3Npbmc6XG5cbioqTVBMUyBSb3V0ZSBBZGRpdGlvbiBBbmFseXNpcyoqXG5cbkFscmlnaHQsIHNvIHRoZSBgbXBsc19uaF9idWlsZF9tdWx0aWAgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkLCBhbmQgdGhlIHRyYWNlIHN1Z2dlc3RzIGl0J3MgaGFwcGVuaW5nIGZyb20gd2l0aGluIGBtcGxzX3JvdXRlX2FkZGAuIFRoYXQncyBhIHByZXR0eSBjbGVhciBpbmRpY2F0b3IsIGlzbid0IGl0PyBJdCBzdHJvbmdseSBpbXBsaWVzIHRoYXQgYG1wbHNfcm91dGVfYWRkYCBpcyBiZWluZyBpbnZva2VkIGR1cmluZyB0aGUgcHJvY2VzcyBvZiAqYWRkaW5nKiBhbiBNUExTIHJvdXRlLiBTZWVtcyBsb2dpY2FsLCBhIGxpa2VseSBhbmQgcmVhc29uYWJsZSBhc3N1bXB0aW9uIGJhc2VkIG9uIHRoZSBmdW5jdGlvbiBuYW1lcyBhbmQgdGhlaXIgcmVsYXRpb25zaGlwIHRvIG9uZSBhbm90aGVyLiBOb3csIGJlZm9yZSBJIGp1bXAgdG8gYW55IGZpcm0gY29uY2x1c2lvbnMsIGxldCdzIGp1c3QgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhlIE1QTFMgY29uZmlndXJhdGlvbiBpdHNlbGYuIEknbGwgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZyB0byBjb25maXJtIHRoYXQgTVBMUyBpcyBhY3R1YWxseSBlbmFibGVkLCBhbmQgdG8gZ2V0IGEgYnJvYWRlciB2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzQxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MzIuMjY2NTgyMDU2WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzUzNjg2NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTVBMU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXBscy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcGxzL0tjb25maWctNS1cXG5uZXQvbXBscy9LY29uZmlnOjY6bWVudWNvbmZpZyBNUExTXFxubmV0L21wbHMvS2NvbmZpZy03LVxcdGJvb2wgXFxcIk11bHRpUHJvdG9jb2wgTGFiZWwgU3dpdGNoaW5nXFxcIlxcbi0tXFxubmV0L21wbHMvS2NvbmZpZz0xOT1jb25maWcgTkVUX01QTFNfR1NPXFxuLS1cXG5uZXQvbXBscy9LY29uZmlnLTI1LVxcbm5ldC9tcGxzL0tjb25maWc6MjY6Y29uZmlnIE1QTFNfUk9VVElOR1xcbm5ldC9tcGxzL0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIk1QTFM6IHJvdXRpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9tcGxzL0tjb25maWctMzItXFxubmV0L21wbHMvS2NvbmZpZzozMzpjb25maWcgTVBMU19JUFRVTk5FTFxcbm5ldC9tcGxzL0tjb25maWctMzQtXFx0dHJpc3RhdGUgXFxcIk1QTFM6IElQIG92ZXIgTVBMUyB0dW5uZWwgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6MzIuMzk0MTIzMTczWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjAwNjIxNzU1MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipNUExTIENvbmZpZ3VyYXRpb24gQW5hbHlzaXMqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgY29yZSBjb25maWd1cmF0aW9ucyB3ZSdyZSBkZWFsaW5nIHdpdGggaGVyZSBhcmUgZGVmaW5pdGVseSBgTVBMU2AgYW5kIGBNUExTX1JPVVRJTkdgLiBUaGF0J3MgdGhlIGJhc2VsaW5lLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byB6ZXJvIGluIG9uIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvZiBgYWZfbXBscy5jYC4gR2l2ZW4gdGhhdCBNUExTLXJlbGF0ZWQgZnVuY3Rpb25hbGl0eSBjYW4gb2Z0ZW4gYmUgbW9kdWxhciwgSSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhhdCBtb2R1bGUgaXMgY29tcGlsZWQgb25seSB3aGVuIHRob3NlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIGFyZSBlbmFibGVkLiBBcmUgdGhlcmUgYCNpZmRlZmAgc3RhdGVtZW50cyBhcm91bmQgdGhlIGluY2x1c2lvbiBvciBrZXkgZnVuY3Rpb25zIHdpdGhpbiB0aGF0IGZpbGUsIGNvbnRpbmdlbnQgb24gZWl0aGVyIGBNUExTYCBvciBgTVBMU19ST1VUSU5HYCBiZWluZyBkZWZpbmVkPyBUaGlzIGlzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgYnVpbGQgcHJvY2VzcyBhbmQgZGVwZW5kZW5jeSBtYW5hZ2VtZW50LCB3aGljaCBpcyBpbXBvcnRhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxOTMsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjo0NTo1Mi40NTYzMDEwMzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAxMzIyNzE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFmX21wbHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21wbHMvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21wbHMvTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfTVBMU19JUFRVTk5FTCkgKz0gbXBsc19pcHR1bm5lbC5vXFxubmV0L21wbHMvTWFrZWZpbGUtOC1cXG5uZXQvbXBscy9NYWtlZmlsZTo5Om1wbHNfcm91dGVyLXkgOj0gYWZfbXBscy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjQ1OjUyLjU1NzYyOTM1NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MTc3NDM5NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gYW4gZXhwZXJ0IGFuZCBwcmVzZW50aW5nIGl0IGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTVBMUyBSb3V0ZXIgRGVwZW5kZW5jeSBDaGVjayoqXG5cblJpZ2h0LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgYnVpbGQgc3lzdGVtIGFuZCBJIHNlZSBgbXBsc19yb3V0ZXIteWAuIE15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8sIFwiT2theSwgdGhhdCdzIGJlaW5nIGJ1aWx0IGFzIGEgbW9kdWxlIG9yIGJ1aWx0LWluLCBidXQgdW5kZXIgd2hhdCBjb25kaXRpb25zP1wiIFRoZSBuZXh0IGNvbm5lY3Rpb24gaXMsIFwiQWgsIHJpZ2h0ISBJdCdzIGRlcGVuZGVudCBvbiBgQ09ORklHX01QTFNfUk9VVElOR2AgYmVpbmcgZW5hYmxlZC4gVGhhdCdzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBpZiB0aGlzIHdpbGwgYmUgY29tcGlsZWQgaW4gb3Igbm90LlwiIEl0J3MgYSBmdW5kYW1lbnRhbCBjb25kaXRpb25hbCBidWlsZCBkZXBlbmRlbmN5LCBub3RoaW5nIHRvbyBjb21wbGljYXRlZC4gVGhhdCdzIGEgY2xhc3NpYyBjaGVjaywgcHJldHR5IHN0YW5kYXJkIHN0dWZmLiBUaGlzIGlzIGFsbCBiYXNpYyBidWlsZCBzeXN0ZW0gbG9naWMsIGJ1dCBpdCdzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGVzZSB0eXBlcyBvZiBjb25kaXRpb25hbHMgd2hlbiBhc3Nlc3NpbmcgdGhlIGNvbmZpZ3VyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0OTUsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjo0NTo1NS40NzUzNzU0MzhaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNTY2OTk2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtcGxzX3JvdXRlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXBscy9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbXBscy9NYWtlZmlsZT01PW9iai0kKENPTkZJR19ORVRfTVBMU19HU08pICs9IG1wbHNfZ3NvLm9cXG5uZXQvbXBscy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NUExTX1JPVVRJTkcpICs9IG1wbHNfcm91dGVyLm9cXG5uZXQvbXBscy9NYWtlZmlsZS03LW9iai0kKENPTkZJR19NUExTX0lQVFVOTkVMKSArPSBtcGxzX2lwdHVubmVsLm9cXG5uZXQvbXBscy9NYWtlZmlsZS04LVxcbm5ldC9tcGxzL01ha2VmaWxlOjk6bXBsc19yb3V0ZXIteSA6PSBhZl9tcGxzLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDU6NTUuNTgxMDUyMDg2WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzMzEyMjUwNzc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1QTFMgUm91dGluZyBQYXRjaCBBbmFseXNpcyoqXG5cbk9rYXksIHNvIHRoZSBgQ09ORklHX01QTFNfUk9VVElOR2AgY29uZmlnIG9wdGlvbiBpcyBkZWZpbml0ZWx5IGVzc2VudGlhbCBoZXJlLCB0aGF0J3MgYSBnaXZlbi4gV2UncmUgZGVhbGluZyB3aXRoIHRoZSBgbXBsc19uaF9idWlsZF9tdWx0aWAgZnVuY3Rpb24sIHNwZWNpZmljYWxseS4gVGhpcyBwYXRjaCBsb29rcyBmdW5jdGlvbmFsIGFuZCB0YXJnZXRzIGEgYnVnIGluIHRoZSBlcnJvciBoYW5kbGluZyBmb3IgYnVpbGRpbmcgbXVsdGktcGF0aCBNUExTIHJvdXRlcywgc28gaXQncyBhIHNvbGlkIGltcHJvdmVtZW50LlxuXG5CYXNlZCBvbiB0aGlzLCBpdCdzIGFic29sdXRlbHkgd29ydGggdGhyb3dpbmcgc29tZSBmdXp6aW5nIGF0IGl0IHRvIGV4cGxvcmUgdGhlIGVycm9yIHBhdGhzIGZ1cnRoZXIuIEknbGwgbmVlZCB0byBmb2N1cyB0aGUgZnV6emluZyBlZmZvcnRzIGFyb3VuZCB0aGUgYG1wbHNfbmhfYnVpbGRfbXVsdGlgIGFuZCBgbXBsc19yb3V0ZV9hZGRgIHN5bWJvbHMuXG5cblRvIGVuc3VyZSBwcm9wZXIgdGVzdGluZywgSSdsbCBuZWVkIHRvIGVuYWJsZSBib3RoIGBNUExTYCBhbmQgYE1QTFNfUk9VVElOR2AgY29uZmlncy4gTm93LCBsZXQncyBqdXN0IHF1aWNrbHkgc2NhbiBhbmQgZG91YmxlLWNoZWNrIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgYW55IG90aGVyIGRlcGVuZGVudCBjb25maWd1cmF0aW9ucyBJIG5lZWQgdG8gY29uc2lkZXIgZm9yIHRoaXMgZnV6emluZyBjYW1wYWlnbi4gR290dGEgYmUgdGhvcm91Z2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NjQsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDY6MzguODkzMzA0NDUxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ2MDQyNTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTVBMU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbXBscy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tcGxzL0tjb25maWctMi0jXFxubmV0L21wbHMvS2NvbmZpZzozOiMgTVBMUyBjb25maWd1cmF0aW9uXFxubmV0L21wbHMvS2NvbmZpZy00LSNcXG5uZXQvbXBscy9LY29uZmlnLTUtXFxubmV0L21wbHMvS2NvbmZpZzo2Om1lbnVjb25maWcgTVBMU1xcbm5ldC9tcGxzL0tjb25maWctNy1cXHRib29sIFxcXCJNdWx0aVByb3RvY29sIExhYmVsIFN3aXRjaGluZ1xcXCJcXG4tLVxcbm5ldC9tcGxzL0tjb25maWctMTItXFx0ICBoYXJkd2FyZSBzcGVlZHMgKGJlZm9yZSBoYXJkd2FyZSB3YXMgY2FwYWJsZSBvZiByb3V0aW5nIGlwdjQgcGFja2V0cyksXFxubmV0L21wbHMvS2NvbmZpZzoxMzpcXHQgIE1QTFMgcmVtYWlucyBhIHNpbXBsZSB3YXkgb2YgbWFraW5nIHR1bm5lbHMuXFxubmV0L21wbHMvS2NvbmZpZy0xNC1cXG5uZXQvbXBscy9LY29uZmlnOjE1OlxcdCAgSWYgeW91IGhhdmUgbm90IGhlYXJkIG9mIE1QTFMgeW91IHByb2JhYmx5IHdhbnQgdG8gc2F5IE4gaGVyZS5cXG5uZXQvbXBscy9LY29uZmlnLTE2LVxcbm5ldC9tcGxzL0tjb25maWc6MTc6aWYgTVBMU1xcbm5ldC9tcGxzL0tjb25maWctMTgtXFxubmV0L21wbHMvS2NvbmZpZzoxOTpjb25maWcgTkVUX01QTFNfR1NPXFxubmV0L21wbHMvS2NvbmZpZzoyMDpcXHR0cmlzdGF0ZSBcXFwiTVBMUzogR1NPIHN1cHBvcnRcXFwiXFxubmV0L21wbHMvS2NvbmZpZy0yMS1cXHRoZWxwXFxubmV0L21wbHMvS2NvbmZpZzoyMjpcXHQgVGhpcyBpcyBoZWxwZXIgbW9kdWxlIHRvIGFsbG93IHNlZ21lbnRhdGlvbiBvZiBub24tTVBMUyBHU08gcGFja2V0c1xcbm5ldC9tcGxzL0tjb25maWc6MjM6XFx0IHRoYXQgaGF2ZSBoYWQgTVBMUyBzdGFjayBlbnRyaWVzIHB1c2hlZCBvbnRvIHRoZW0gYW5kIHRodXNcXG5uZXQvbXBscy9LY29uZmlnOjI0OlxcdCBiZWNvbWUgTVBMUyBHU08gcGFja2V0cy5cXG5uZXQvbXBscy9LY29uZmlnLTI1LVxcbm5ldC9tcGxzL0tjb25maWc6MjY6Y29uZmlnIE1QTFNfUk9VVElOR1xcbm5ldC9tcGxzL0tjb25maWc6Mjc6XFx0dHJpc3RhdGUgXFxcIk1QTFM6IHJvdXRpbmcgc3VwcG9ydFxcXCJcXG5uZXQvbXBscy9LY29uZmlnLTI4LVxcdGRlcGVuZHMgb24gTkVUX0lQX1RVTk5FTCB8fCBORVRfSVBfVFVOTkVMPW5cXG4tLVxcbm5ldC9tcGxzL0tjb25maWctMzItXFxubmV0L21wbHMvS2NvbmZpZzozMzpjb25maWcgTVBMU19JUFRVTk5FTFxcbm5ldC9tcGxzL0tjb25maWc6MzQ6XFx0dHJpc3RhdGUgXFxcIk1QTFM6IElQIG92ZXIgTVBMUyB0dW5uZWwgc3VwcG9ydFxcXCJcXG5uZXQvbXBscy9LY29uZmlnOjM1OlxcdGRlcGVuZHMgb24gTFdUVU5ORUwgXFx1MDAyNlxcdTAwMjYgTVBMU19ST1VUSU5HXFxubmV0L21wbHMvS2NvbmZpZy0zNi1cXHRoZWxwXFxuLS1cXG5uZXQvbXBscy9LY29uZmlnLTM4LVxcbm5ldC9tcGxzL0tjb25maWc6Mzk6ZW5kaWYgIyBNUExTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjQ2OjM4Ljk5NzkxMzQ5OVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MDcwMjc3OTQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqTVBMUyBSb3V0ZSBBbmFseXNpcyoqXG5cblJpZ2h0LCBzbyBJIG5lZWQgdG8gZm9jdXMgb24gYE1QTFNgIGFuZCBgTVBMU19ST1VUSU5HYCBmdW5jdGlvbnMuIFRoYXQncyB0aGUgY29yZSBhcmVhIEknbSBpbnRlcmVzdGVkIGluIGhlcmUuIE5vdywgSSBoYXZlIGEgaHVuY2ggYWJvdXQgYSBmdW5jdGlvbiBjYWxsZWQgYG1wbHNfbmhfYnVpbGRfbXVsdGlgLiBMZXQgbWUgcXVpY2tseSBjaGVjayBpZiB0aGF0J3MgYSBzdGF0aWMgZnVuY3Rpb24uIFllcCwgbG9va3MgbGlrZSBpdCBpcy4gVGhhdCBtZWFucyB0aGUgY2FsbGVyIG9mIGBtcGxzX25oX2J1aWxkX211bHRpYCBpcyBsaWtlbHkgd2l0aGluIHRoZSBzYW1lIGNvbXBpbGF0aW9uIHVuaXQgYXMgdGhlIGRlZmluaXRpb24uIExldCdzIGRpZyBhIGJpdCBkZWVwZXIgYW5kIHNlZSB3aGF0IHRoYXQgY2FsbGVyIGlzIC0gZnJvbSB3aGF0IEkgaGF2ZSBnYXRoZXJlZCwgaXQgc2VlbXMgdGhhdCBgbXBsc19yb3V0ZV9hZGRgIGlzIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLiBTbyBgbXBsc19yb3V0ZV9hZGRgIGxpa2VseSBpbnRlcmFjdHMgd2l0aCBgbXBsc19uaF9idWlsZF9tdWx0aWAuIFRoZSBuZXh0IHF1ZXN0aW9uLCB0aGVuLCBpcyB3aGV0aGVyIGBtcGxzX3JvdXRlX2FkZGAgaXMgYWxzbyBzdGF0aWMsIG9yIHdoZXRoZXIgaXQncyBtb3JlIHdpZGVseSBhY2Nlc3NpYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzgwLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDY6NDcuMDY4MTk1NDJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyOTIwMDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1wbHNfcm91dGVfYWRkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9tcGxzL2FmX21wbHMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbXBscy9hZl9tcGxzLmM9OTczPXN0YXRpYyBib29sIG1wbHNfbGFiZWxfb2soc3RydWN0IG5ldCAqbmV0LCB1bnNpZ25lZCBpbnQgKmluZGV4LFxcbi0tXFxubmV0L21wbHMvYWZfbXBscy5jLTk5NC1cXG5uZXQvbXBscy9hZl9tcGxzLmM6OTk1OnN0YXRpYyBpbnQgbXBsc19yb3V0ZV9hZGQoc3RydWN0IG1wbHNfcm91dGVfY29uZmlnICpjZmcsXFxubmV0L21wbHMvYWZfbXBscy5jLTk5Ni1cXHRcXHRcXHQgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcXG4tLVxcbm5ldC9tcGxzL2FmX21wbHMuYz0yMDEyPXN0YXRpYyBpbnQgbXBsc19ydG1fbmV3cm91dGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgsXFxuLS1cXG5uZXQvbXBscy9hZl9tcGxzLmMtMjAyNy1cXHRtdXRleF9sb2NrKFxcdTAwMjZuZXQtXFx1MDAzZW1wbHMucGxhdGZvcm1fbXV0ZXgpO1xcbm5ldC9tcGxzL2FmX21wbHMuYzoyMDI4OlxcdGVyciA9IG1wbHNfcm91dGVfYWRkKGNmZywgZXh0YWNrKTtcXG5uZXQvbXBscy9hZl9tcGxzLmMtMjAyOS1cXHRtdXRleF91bmxvY2soXFx1MDAyNm5ldC1cXHUwMDNlbXBscy5wbGF0Zm9ybV9tdXRleCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjQ2OjQ3LjE0MTEyMTMzOFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDk1NjAyNDQyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqRm9jdXNpbmcgb24gYG1wbHNfcnRtX25ld3JvdXRlYCoqXG5cbkFscmlnaHQsIHNvIHRoZSBuZXRsaW5rIGhhbmRsZXIsIHRoZSBvbmUgdGhhdCdzIHJlYWxseSBjZW50cmFsIHRvIHRoaXMgd2hvbGUgTVBMUyByb3V0ZSBtYW5pcHVsYXRpb24gdGhpbmcuLi4gdGhhdCdzIGBtcGxzX3J0bV9uZXdyb3V0ZWAuIFJpZ2h0LCB0aGF0IG1ha2VzIGl0IHRoZSBvYnZpb3VzIGZvY2FsIHBvaW50IGZvciBteSBhbmFseXNpcy4gSXQncyB0aGUgZW50cnkgcG9pbnQsIHRoZSBrZXlzdG9uZS4gVW5kZXJzdGFuZGluZyB0aGF0IGZ1bmN0aW9uIGlzIGdvaW5nIHRvIHVubG9jayBhIGxvdCBhYm91dCBob3cgdGhlc2UgbmV3IHJvdXRlcyBnZXQgY3JlYXRlZCBhbmQgaW50ZWdyYXRlZC4gWWVwLCBsZXQncyBrZWVwIHRoYXQgZnVuY3Rpb24gaW4gc2hhcnAgZm9jdXMuIEl0J3MgdGhlIGZ1bmN0aW9uIHRvIHByaW9yaXRpemUgZm9yIGluIGRlcHRoIHJldmlldy5cblxuTm93LCBsZXQncyBlc3RhYmxpc2ggc29tZSBncm91bmQgdHJ1dGhzLCBzb21lIGtleSByZXN1bHRzIG9mIHRoZSBzdHVkeS4gTGV0J3Mgc3RhcnQgd2l0aCBhIHNvbGlkIGZvdW5kYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUzNzEsIk91dHB1dFRva2VucyI6MTIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6NDc6MjguMDk3MTQ3MjlaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzc5MTM0NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1QTFNcIixcbiAgICBcIk1QTFNfUk9VVElOR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1wbHNfbmhfYnVpbGRfbXVsdGlcIixcbiAgICBcIm1wbHNfcm91dGVfYWRkXCIsXG4gICAgXCJtcGxzX3J0bV9uZXdyb3V0ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIGVycm9yIGhhbmRsaW5nIHdoZW4gYnVpbGRpbmcgbXVsdGktcGF0aCBNUExTIHJvdXRlcywgd2hlcmUgdGhlIG51bWJlciBvZiBuZXh0aG9wcyB3YXMgaW5jb3JyZWN0bHkgdXBkYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIE1QTFMgcm91dGluZyBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNUExTXCIsXG4gICAgXCJNUExTX1JPVVRJTkdcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtcGxzX25oX2J1aWxkX211bHRpXCIsXG4gICAgXCJtcGxzX3JvdXRlX2FkZFwiLFxuICAgIFwibXBsc19ydG1fbmV3cm91dGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiBlcnJvciBoYW5kbGluZyB3aGVuIGJ1aWxkaW5nIG11bHRpLXBhdGggTVBMUyByb3V0ZXMsIHdoZXJlIHRoZSBudW1iZXIgb2YgbmV4dGhvcHMgd2FzIGluY29ycmVjdGx5IHVwZGF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBNUExTIHJvdXRpbmcgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[1] Phase: Succeeded StartedAt: 2026-07-16 22:47:40 +0000 UTC FinishedAt: 2026-07-16 22:47:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-16 22:47:40 +0000 UTC FinishedAt: 2026-07-16 22:47:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2] Phase: Succeeded StartedAt: 2026-07-16 22:47:40 +0000 UTC FinishedAt: 2026-07-17 02:48:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 22:47:40 +0000 UTC FinishedAt: 2026-07-17 02:48:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 22:47:40 +0000 UTC FinishedAt: 2026-07-16 22:47:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 22:47:40 +0000 UTC FinishedAt: 2026-07-16 22:47:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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-workflowzbzbs/series-workflowzbzbs-convert-artifact-222623675/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 22:47:50 +0000 UTC FinishedAt: 2026-07-16 23:13:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 22:47:50 +0000 UTC FinishedAt: 2026-07-16 23:13:15 +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:*3424789f-0db5-4e7c-8c16-ac70e7a653a6,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-workflowzbzbs/series-workflowzbzbs-convert-artifact-222623675/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": "45fc2318-f7cf-4f5c-9548-79fa2636d6d1", "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-workflowzbzbs/series-workflowzbzbs-build-action-3709470201/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 22:47:50 +0000 UTC FinishedAt: 2026-07-16 23:12:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*3424789f-0db5-4e7c-8c16-ac70e7a653a6,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-workflowzbzbs/series-workflowzbzbs-convert-artifact-222623675/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": "45fc2318-f7cf-4f5c-9548-79fa2636d6d1", "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-workflowzbzbs/series-workflowzbzbs-build-action-3709470201/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:13:15 +0000 UTC FinishedAt: 2026-07-16 23:13:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:13:15 +0000 UTC FinishedAt: 2026-07-16 23:13:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:13:15 +0000 UTC FinishedAt: 2026-07-16 23:13:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:13:15 +0000 UTC FinishedAt: 2026-07-16 23:13:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-workflowzbzbs/series-workflowzbzbs-convert-artifact-360476434/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:13:25 +0000 UTC FinishedAt: 2026-07-16 23:15:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:13:25 +0000 UTC FinishedAt: 2026-07-16 23:15:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*45fc2318-f7cf-4f5c-9548-79fa2636d6d1,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-workflowzbzbs/series-workflowzbzbs-build-action-3709470201/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-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:15:21 +0000 UTC FinishedAt: 2026-07-16 23:15:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:15:21 +0000 UTC FinishedAt: 2026-07-16 23:15:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:15:21 +0000 UTC FinishedAt: 2026-07-16 23:41:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:15:21 +0000 UTC FinishedAt: 2026-07-16 23:41:48 +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:*3424789f-0db5-4e7c-8c16-ac70e7a653a6,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-workflowzbzbs/series-workflowzbzbs-convert-artifact-360476434/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": "83b8cecd-e5cd-42a9-9654-8c1d52cdd9a0", "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-workflowzbzbs/series-workflowzbzbs-build-action-2832526246/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:15:21 +0000 UTC FinishedAt: 2026-07-16 23:41:38 +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:*3424789f-0db5-4e7c-8c16-ac70e7a653a6,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-workflowzbzbs/series-workflowzbzbs-convert-artifact-360476434/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": "83b8cecd-e5cd-42a9-9654-8c1d52cdd9a0", "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-workflowzbzbs/series-workflowzbzbs-build-action-2832526246/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:41:48 +0000 UTC FinishedAt: 2026-07-16 23:41:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:41:48 +0000 UTC FinishedAt: 2026-07-16 23:41:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:41:48 +0000 UTC FinishedAt: 2026-07-16 23:43:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:41:48 +0000 UTC FinishedAt: 2026-07-16 23:43:46 +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:*83b8cecd-e5cd-42a9-9654-8c1d52cdd9a0,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-workflowzbzbs/series-workflowzbzbs-build-action-2832526246/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-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:43:56 +0000 UTC FinishedAt: 2026-07-17 02:48:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:43:56 +0000 UTC FinishedAt: 2026-07-17 02:48:16 +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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"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:*45fc2318-f7cf-4f5c-9548-79fa2636d6d1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*83b8cecd-e5cd-42a9-9654-8c1d52cdd9a0,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-workflowzbzbs/series-workflowzbzbs-build-action-3709470201/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-workflowzbzbs/series-workflowzbzbs-build-action-2832526246/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:43:56 +0000 UTC FinishedAt: 2026-07-16 23:44:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:43:56 +0000 UTC FinishedAt: 2026-07-16 23:44:02 +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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"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-workflowzbzbs/series-workflowzbzbs-convert-artifact-2036138599/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:43:56 +0000 UTC FinishedAt: 2026-07-16 23:43:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:43:56 +0000 UTC FinishedAt: 2026-07-16 23:43:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:43:56 +0000 UTC FinishedAt: 2026-07-16 23:43:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:44:06 +0000 UTC FinishedAt: 2026-07-17 02:48:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbzbs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"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":["mpls_nh_build_multi","mpls_route_add","mpls_rtm_newroute"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MPLS","MPLS_ROUTING"],"series_id":"ad12edb2-c036-400a-9830-f46d796a74a8","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-07-16 23:44:06 +0000 UTC FinishedAt: 2026-07-17 02:48:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*45fc2318-f7cf-4f5c-9548-79fa2636d6d1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*83b8cecd-e5cd-42a9-9654-8c1d52cdd9a0,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-workflowzbzbs/series-workflowzbzbs-build-action-3709470201/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-workflowzbzbs/series-workflowzbzbs-build-action-2832526246/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-workflowzbzbs/series-workflowzbzbs-convert-artifact-2036138599/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,}