Name: series-workflowqrvnl Phase: Succeeded StartedAt: 2026-08-08 01:05:46 +0000 UTC FinishedAt: 2026-08-08 05:04:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[0] Phase: Succeeded StartedAt: 2026-08-08 01:05:46 +0000 UTC FinishedAt: 2026-08-08 01:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[0].run-triage Phase: Succeeded StartedAt: 2026-08-08 01:05:46 +0000 UTC FinishedAt: 2026-08-08 01:20:43 +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": "3dbb44d88b1e94dd31fe43588af7437b34b44d56", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3dbb44d88b1e94dd31fe43588af7437b34b44d56", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "ed27fea8-b284-4ede-b191-37c8ecbec109" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "sctp_asconf_queue_teardown", "sctp_sf_t4_timer_expire" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA4IDAxOjIwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93biYjMzQ7LAogICAgJiMzNDtzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZSYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgdXNlLWFmdGVyLWZyZWUgKGJ5IHNldHRpbmcgYSBmcmVlZCBwb2ludGVyIHRvIE5VTEwpIGFuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAoYnkgY2hlY2tpbmcgaWYgdGhlIHBvaW50ZXIgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdCkuIEJvdGggb2YgdGhlc2UgaXNzdWVzIGFyZSBtZW1vcnkgc2FmZXR5IGJ1Z3MgdGhhdCBhcmUgZWZmZWN0aXZlbHkgY2F1Z2h0IGJ5IEtBU0FOIChmb3IgdXNlLWFmdGVyLWZyZWUpIGFuZCBzdGFuZGFyZCBrZXJuZWwgY3Jhc2ggbWVjaGFuaXNtcyAoZm9yIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMpLiBUaGUgY2hhbmdlcyBkbyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlciBzcGFjZSwgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgU0NUUCBwcm90b2NvbCBieSBwcm9wZXJseSBjbGVhcmluZyBgYXNvYy1cdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzM2FhNzE0YmQ3YTg5YzQyZGY3NmMzYTAyOTkxN2RhNjExOTg5NWFiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgOCAwMToyMDowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvc2N0cC9hc3NvY2lvbGEuYyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jXG5pbmRleCA1YjBhZTYxNmUxZmY5Li43MzdmOGVhOWQ0ODJmIDEwMDY0NFxuLS0tIGEvbmV0L3NjdHAvYXNzb2Npb2xhLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jXG5AQCAtMTcxMyw2ICYjNDM7MTcxMyw4IEBAIHZvaWQgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpXG4gXHRzY3RwX2Fzc29jX2ZyZWVfYXNjb25mX3F1ZXVlKGFzb2MpO1xuIFxuIFx0LyogRnJlZSBhbnkgY2FjaGVkIEFTQ09ORiBjaHVuay4gKi9cbi1cdGlmIChhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKVxuJiM0MztcdGlmIChhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKSB7XG4gXHRcdHNjdHBfY2h1bmtfZnJlZShhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKTtcbiYjNDM7XHRcdGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYgPSBOVUxMO1xuJiM0MztcdH1cbiB9XG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuaW5kZXggNzA4ZmEwN2Q1ZmZmYy4uM2E4ZTE2YjI5NjYwYyAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuQEAgLTYxNDUsOCAmIzQzOzYxNDUsMTIgQEAgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlKFxuIFx0XHRcdFx0XHRzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjb21tYW5kcylcbiB7XG4gXHRzdHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmsgPSBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mO1xuLVx0c3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBjaHVuay1cdTAwM2V0cmFuc3BvcnQ7XG4mIzQzO1x0c3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQ7XG4mIzQzO1xuJiM0MztcdGlmICghY2h1bmspXG4mIzQzO1x0XHRyZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FO1xuIFxuJiM0MztcdHRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbiBcdFNDVFBfSU5DX1NUQVRTKG5ldCwgU0NUUF9NSUJfVDRfUlRPX0VYUElSRURTKTtcbiBcbiBcdC8qIEFERElQIDQuMSBCMSkgSW5jcmVtZW50IHRoZSBlcnJvciBjb3VudGVycyBhbmQgcGVyZm9ybSBwYXRoIGZhaWx1cmVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wOCAwMToyMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBfU0NUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfdDRfdGltZXJfZXhwaXJlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgU0NUUCBwcm90b2NvbCBieSBwcm9wZXJseSBjbGVhcmluZyBgYXNvYy1cdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzM2FhNzE0YmQ3YTg5YzQyZGY3NmMzYTAyOTkxN2RhNjExOTg5NWFiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgOCAwMToyMDowNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9sYS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKaW5kZXggNWIwYWU2MTZlMWZmOS4uNzM3ZjhlYTlkNDgyZiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKQEAgLTE3MTMsNiAmIzQzOzE3MTMsOCBAQCB2b2lkIHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duKHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jKQogCXNjdHBfYXNzb2NfZnJlZV9hc2NvbmZfcXVldWUoYXNvYyk7CiAKIAkvKiBGcmVlIGFueSBjYWNoZWQgQVNDT05GIGNodW5rLiAqLwotCWlmIChhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZikKJiM0MzsJaWYgKGFzb2MtJmd0O2FkZGlwX2xhc3RfYXNjb25mKSB7CiAJCXNjdHBfY2h1bmtfZnJlZShhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZik7CiYjNDM7CQlhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZiA9IE5VTEw7CiYjNDM7CX0KIH0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKaW5kZXggNzA4ZmEwN2Q1ZmZmYy4uM2E4ZTE2YjI5NjYwYyAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKQEAgLTYxNDUsOCAmIzQzOzYxNDUsMTIgQEAgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlKAogCQkJCQlzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjb21tYW5kcykKIHsKIAlzdHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmsgPSBhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZjsKLQlzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydCA9IGNodW5rLSZndDt0cmFuc3BvcnQ7CiYjNDM7CXN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0OwomIzQzOwomIzQzOwlpZiAoIWNodW5rKQomIzQzOwkJcmV0dXJuIFNDVFBfRElTUE9TSVRJT05fQ09OU1VNRTsKIAomIzQzOwl0cmFuc3BvcnQgPSBjaHVuay0mZ3Q7dHJhbnNwb3J0OwogCVNDVFBfSU5DX1NUQVRTKG5ldCwgU0NUUF9NSUJfVDRfUlRPX0VYUElSRURTKTsKIAogCS8qIEFERElQIDQuMSBCMSkgSW5jcmVtZW50IHRoZSBlcnJvciBjb3VudGVycyBhbmQgcGVyZm9ybSBwYXRoIGZhaWx1cmUKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMxMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipTQ1RQIEJ1ZyBGaXggSW52ZXN0aWdhdGlvbioqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBuZXQvc2N0cC9hc3NvY2lvbGEuY2AgYW5kIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AuIEZyb20gYSBxdWljayBnbGFuY2UsIGl0IGxvb2tzIGxpa2UgYSB1c2UtYWZ0ZXItZnJlZSBvciBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIFNDVFAgY29kZS4gU3BlY2lmaWNhbGx5LCB0aGUgZml4IGFkZHJlc3NlcyBhIHNjZW5hcmlvIHdoZXJlIGBhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZmAgaXMgYmVpbmcgZnJlZWQgaW4gYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBhbmQgdGhlbiBwb3RlbnRpYWxseSBhY2Nlc3NlZCBsYXRlciBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLiBUaGUgYWRkaXRpb24gb2YgdGhlIGBpZiAoIWNodW5rKSByZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FO2AgY2hlY2sgY29uZmlybXMgdGhpcy4gR2l2ZW4gU0NUUCYjMzk7cyBwb3RlbnRpYWwgcmVhY2ggYW5kIGZ1enphYmlsaXR5LCB0aGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIGxvb2sgaW50by4KCk15IG5leHQgc3RlcCBpcyB0byBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgaWRlbnRpZnkgdGhlIGtleSBmdW5jdGlvbnMgdG8gZXhhbWluZSBtb3JlIGNsb3NlbHkuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGZ1bmN0aW9ucyBhcmUgYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBhbmQgYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYCwgYXMgdGhlIHBhdGNoIGRpcmVjdGx5IG1vZGlmaWVzIHRoZW0uIEkmIzM5O2xsIG5lZWQgdG8gY29uZmlybSB0aGUgZXhhY3QgY29uZmlnIG5hbWUsIHdoaWNoIEkgdGhpbmsgaXMgYElQX1NDVFBgLCBidXQgaXQmIzM5O3MgYmVzdCB0byBkb3VibGUtY2hlY2sgYG5ldC9zY3RwL0tjb25maWdgIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gT25jZSBJIGhhdmUgdGhlIGNvcnJlY3QgY29uZmlnLCBJIGNhbiBiZWdpbiB0cmFjaW5nIHRoZSBjb2RlIGV4ZWN1dGlvbiBmbG93IGFuZCBpZGVudGlmeSBwb3NzaWJsZSB0cmlnZ2VyIHNjZW5hcmlvcyBmb3IgdGhpcyBidWcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElQX1NDVFAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zY3RwL0tjb25maWctNS1cbm5ldC9zY3RwL0tjb25maWc6NjptZW51Y29uZmlnIElQX1NDVFBcbm5ldC9zY3RwL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O1RoZSBTQ1RQIFByb3RvY29sXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk1NgoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6CgoqKkFuYWx5emluZyBTQ1RQIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29uZmlndXJhdGlvbiwgaXQmIzM5O3MgZmxhZ2dlZCBhcyBgSVBfU0NUUGAuIE15IGltbWVkaWF0ZSBjb25jZXJuLCBhcyBhbHdheXMgd2hlbiBkZWFsaW5nIHdpdGggU0NUUCwgaXMgaXRzIGFzeW5jaHJvbm91cyBuYXR1cmUgYW5kIHBvdGVudGlhbCBpbXBhY3Qgb24gcmVzb3VyY2UgbWFuYWdlbWVudC4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBuYXR1cmUgb2YgdGhlIGBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bmAgcGFyYW1ldGVyLiBJcyBpdCBhIHN0YXRpYyBzZXR0aW5nLCBvciBzb21ldGhpbmcgdGhhdCYjMzk7cyBoYW5kbGVkIGR5bmFtaWNhbGx5PyBLbm93aW5nIHRoaXMgaXMgKmNydWNpYWwqIHRvIHVuZGVyc3RhbmQgaG93IGFnZ3Jlc3NpdmVseSB0aGUgc3lzdGVtIGlzIGdvaW5nIHRvIHRlYXIgZG93biBxdWV1ZXMgcmVsYXRlZCB0byBBU0NPTkYgZXZlbnRzLiBBIHN0YXRpY2FsbHkgZGVmaW5lZCB2YWx1ZSBzdWdnZXN0cyBhIHBvdGVudGlhbGx5IHJpZ2lkIGFwcHJvYWNoLCB3aGVyZWFzIGEgZHluYW1pYyBzZXR0aW5nIGltcGxpZXMgYSBtb3JlIGFkYXB0aXZlIGFuZCBwb3RlbnRpYWxseSBtb3JlIGVmZmljaWVudCBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm9pZCBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93biYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9hc3NvY2lvbGEuYz0xNjg2PXN0cnVjdCBzY3RwX2NodW5rICpzY3RwX2Fzc29jX2xvb2t1cF9hc2NvbmZfYWNrKFxuLS1cbm5ldC9zY3RwL2Fzc29jaW9sYS5jLTE3MDYtXG5uZXQvc2N0cC9hc3NvY2lvbGEuYzoxNzA3OnZvaWQgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpXG5uZXQvc2N0cC9hc3NvY2lvbGEuYy0xNzA4LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wOCAwMToyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzE4CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEkmIzM5O20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OgoKKipOYXZpZ2F0aW5nIHRoZSBEeW5hbWljIExhbmRzY2FwZSoqCgpBbHJpZ2h0LCBzbyB0aGUgc2l0dWF0aW9uIGlzbiYjMzk7dCBzdGF0aWMuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCBzb21ldGhpbmcgd2l0aCBtb3ZlbWVudCwgc29tZXRoaW5nIHRoYXQgY2hhbmdlcyBvdmVyIHRpbWUuIEdpdmVuIHRoYXQsIGxldCYjMzk7cyB6ZXJvIGluIG9uIGEgcG90ZW50aWFsIHBvaW50IG9mIGludGVyZXN0LiBNeSBndXQgcmVhY3Rpb24gaXMgdG8gY2hlY2sgYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYC4gVGhhdCBmdW5jdGlvbiBpcyBwcm9iYWJseSB0aGUga2V5LCBnaXZlbiB0aGF0IHdlIGFyZSBkaXNjdXNzaW5nIGEgbm9uLXN0YXRpYyBzaXR1YXRpb24gYW5kIHRoaXMgcGFydGljdWxhciB0aW1lciBoYXMgdGhlIHdvcmQgJiMzNDtleHBpcmUmIzM0OyBpbiBpdHMgbmFtZS4gSXQgaXMgbGlrZWx5IHRoYXQgdGhpcyBwYXJ0IG9mIHRoZSBjb2RlIGNvdWxkIGJlIHJlc3BvbnNpYmxlIGZvciBzb21ldGhpbmcgZHluYW1pYyBsaWtlIGNoYW5naW5nIHN0YXRlIG9yIHRyaWdnZXJpbmcgZXZlbnRzIGF0IGEgc3BlY2lmaWMgdGltZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wOCAwMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90NF90aW1lcl9leHBpcmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc21fc3RhdGVmdW5zLmM9NjA2OD1lbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90Ml90aW1lcl9leHBpcmUoXG4tLVxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNjEzOC0gKi9cbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjYxMzk6ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlKFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNjE0MC1cdFx0XHRcdFx0c3RydWN0IG5ldCAqbmV0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA4IDAxOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2ODcKCQkJCQkJCW91dHB1dDogMTU5CgkJCQkJCQl0aG91Z2h0czogMTUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNDVFAgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgc29tZSBwb3RlbnRpYWxseSBuYXN0eSBtZW1vcnkgZXJyb3JzIGluIHRoZSBTQ1RQIHByb3RvY29sLiBJdCYjMzk7cyBhZGRyZXNzaW5nIHR3byBzcGVjaWZpYyBhcmVhcywgYm90aCBvZiB3aGljaCBhcmUgY3JpdGljYWwgZm9yIHJlbGlhYmlsaXR5LiBMZXQgbWUgYnJlYWsgaXQgZG93bjoKCkZpcnN0LCB0aGV5JiMzOTtyZSBjbGVhbmluZyB1cCBhIGRhbmdsaW5nIHBvaW50ZXIgaXNzdWUgcmVsYXRlZCB0byBgYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmZgLiAgSXQgbG9va3MgbGlrZSBhZnRlciB0aGUgYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBmdW5jdGlvbiBydW5zIGFuZCBwcmVzdW1hYmx5IGZyZWVzIHRoZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIHRoYXQgcG9pbnRlciwgdGhlIGNvZGUgd2FzbiYjMzk7dCBleHBsaWNpdGx5IGNsZWFyaW5nIHRoZSBwb2ludGVyIGl0c2VsZi4gIEEgY2xhc3NpYyB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpby4gVGhpcyBpcyBhIHZlcnkgY29tbW9uIGJ1ZywgYW5kIGRhbmdlcm91cy4KClNlY29uZCwgdGhleSYjMzk7cmUgYWRkaW5nIGEgbnVsbCBjaGVjayBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLiBUaGlzIGlzIGdvb2QgZGVmZW5zaXZlIHByb2dyYW1taW5nLCBndWFyZGluZyBhZ2FpbnN0IGEgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlLiBTb3VuZHMgbGlrZSB0aGlzIHRpbWVyIG1pZ2h0IGJlIHVzaW5nIGEgc3RhbGUgcmVmZXJlbmNlIHNvbWV0aW1lcywgc28gbm93IHRoZXJlIGlzIGEgc2FmZXR5IG5ldC4KCkZyb20gYSBmdW5jdGlvbmFsIHBlcnNwZWN0aXZlLCB0aGlzIGlzIGEgY29yZSBsb2dpYyBjaGFuZ2Ugd2l0aGluIFNDVFAsIGFuZCB0aGF0IG1ha2VzIGl0IGFic29sdXRlbHkgcHJpbWUgcmVhbCBlc3RhdGUgZm9yIGZ1enppbmcuICBJJiMzOTtkIGJlIGVzcGVjaWFsbHkga2VlbiB0byB0cnkgYW5kIHRyaWdnZXIgdGhlc2Ugc2NlbmFyaW9zIHdpdGggZGVsaWJlcmF0ZWx5IGNyYWZ0ZWQgU0NUUCBwYWNrZXRzIHRvIHNlZSBpZiB3ZSBjYW4gZXhwb3NlIGFueSBvdGhlciBlZGdlIGNhc2VzLiAgVGhlIGZvY3VzIGhlcmUgaXMgb24gcHJldmVudGluZyBjcmFzaGVzIGFuZCBlbnN1cmluZyBkYXRhIGludGVncml0eS4gU28sIGl0IGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3b3J0aCBhIHNlY29uZCBsb29rIHRvIHRlc3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA4IDAxOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24mIzM0OywKICAgICYjMzQ7c2N0cF9zZl90NF90aW1lcl9leHBpcmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBTQ1RQIHByb3RvY29sIGJ5IHByb3Blcmx5IGNsZWFyaW5nIGBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCBhZnRlciBmcmVlaW5nIGl0IGluIGBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bmAgYW5kIGFkZGluZyBhIG51bGwgY2hlY2sgaW4gYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBfU0NUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfdDRfdGltZXJfZXhwaXJlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgU0NUUCBwcm90b2NvbCBieSBwcm9wZXJseSBjbGVhcmluZyBgYXNvYy1cdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA4IDAxOjIwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSB1c2UtYWZ0ZXItZnJlZSAoYnkgc2V0dGluZyBhIGZyZWVkIHBvaW50ZXIgdG8gTlVMTCkgYW5kIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIChieSBjaGVja2luZyBpZiB0aGUgcG9pbnRlciBpcyBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0KS4gQm90aCBvZiB0aGVzZSBpc3N1ZXMgYXJlIG1lbW9yeSBzYWZldHkgYnVncyB0aGF0IGFyZSBlZmZlY3RpdmVseSBjYXVnaHQgYnkgS0FTQU4gKGZvciB1c2UtYWZ0ZXItZnJlZSkgYW5kIHN0YW5kYXJkIGtlcm5lbCBjcmFzaCBtZWNoYW5pc21zIChmb3IgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcykuIFRoZSBjaGFuZ2VzIGRvIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvcm1hdGlvbiBsZWFrcyB0byB1c2VyIHNwYWNlLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lY2Vzc2FyeS4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzNhYTcxNGJkN2E4OWM0MmRmNzZjM2EwMjk5MTdkYTYxMTk4OTVhYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDggMDE6MjA6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9hc3NvY2lvbGEuYyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCmluZGV4IDViMGFlNjE2ZTFmZjkuLjczN2Y4ZWE5ZDQ4MmYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCkBAIC0xNzEzLDYgJiM0MzsxNzEzLDggQEAgdm9pZCBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bihzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYykKIAlzY3RwX2Fzc29jX2ZyZWVfYXNjb25mX3F1ZXVlKGFzb2MpOwogCiAJLyogRnJlZSBhbnkgY2FjaGVkIEFTQ09ORiBjaHVuay4gKi8KLQlpZiAoYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmYpCiYjNDM7CWlmIChhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZikgewogCQlzY3RwX2NodW5rX2ZyZWUoYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmYpOwomIzQzOwkJYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmYgPSBOVUxMOwomIzQzOwl9CiB9CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCmluZGV4IDcwOGZhMDdkNWZmZmMuLjNhOGUxNmIyOTY2MGMgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCkBAIC02MTQ1LDggJiM0Mzs2MTQ1LDEyIEBAIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZSgKIAkJCQkJc3RydWN0IHNjdHBfY21kX3NlcSAqY29tbWFuZHMpCiB7CiAJc3RydWN0IHNjdHBfY2h1bmsgKmNodW5rID0gYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmY7Ci0Jc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBjaHVuay0mZ3Q7dHJhbnNwb3J0OwomIzQzOwlzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydDsKJiM0MzsKJiM0MzsJaWYgKCFjaHVuaykKJiM0MzsJCXJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7CiAKJiM0MzsJdHJhbnNwb3J0ID0gY2h1bmstJmd0O3RyYW5zcG9ydDsKIAlTQ1RQX0lOQ19TVEFUUyhuZXQsIFNDVFBfTUlCX1Q0X1JUT19FWFBJUkVEUyk7CiAKIAkvKiBBRERJUCA0LjEgQjEpIEluY3JlbWVudCB0aGUgZXJyb3IgY291bnRlcnMgYW5kIHBlcmZvcm0gcGF0aCBmYWlsdXJlCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wOCAwMToyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzA3CgkJCQkJCQlvdXRwdXQ6IDEzMQoJCQkJCQkJdGhvdWdodHM6IDQyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNDVFAgQXNzb2NpYXRpb24gVGVhcmRvd24gYW5kIEFTQ09ORiBIYW5kbGluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgdG91Y2hpbmcgYG5ldC9zY3RwL2Fzc29jaW9sYS5jYCBhbmQgYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gVGhlIGZpcnN0IHBhcnQsIGluIGBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bmAsIGlzIGFkZHJlc3NpbmcgYSBjbGFzc2ljIHVzZS1hZnRlci1mcmVlIGlzc3VlLiBUaGV5JiMzOTtyZSBmcmVlaW5nIGBhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZmAgYnV0IHdlcmVuJiMzOTt0IG51bGxpbmcgaXQgb3V0IGltbWVkaWF0ZWx5IGFmdGVyd2FyZC4gVGhlIGZpeCBpcyBhIHNpbXBsZSwgYnV0IGNydWNpYWwsIGBhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZiA9IE5VTEw7YCBhZnRlciB0aGUgYHNjdHBfY2h1bmtfZnJlZSgpYC4gVGhhdCYjMzk7cyBhIGdvb2QgY2F0Y2gsIHByZXZlbnRpbmcgcG90ZW50aWFsIG1lbW9yeSBjb3JydXB0aW9uLgoKVGhlIHNlY29uZCBwYXJ0LCBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLCBkZWFscyB3aXRoIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZS4gVGhlIGNvZGUgd2FzIGFzc3VtaW5nIHRoYXQgYGFzb2MtJmd0O2FkZGlwX2xhc3RfYXNjb25mYCB3b3VsZCBhbHdheXMgaGF2ZSBhIHZhbHVlLCBidXQgbm93IHRoZXJlJiMzOTtzIGEgY2hlY2s6IGBpZiAoIWNodW5rKSByZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FO2AuIFRoaXMgaXMgY3JpdGljYWwuIFdpdGhvdXQgdGhhdCBjaGVjaywgdGhlIGNvZGUgY291bGQgdHJ5IHRvIGRlcmVmZXJlbmNlIGEgTlVMTCBwb2ludGVyLCBsZWFkaW5nIHRvIGEgY3Jhc2guCgpFc3NlbnRpYWxseSwgd2UmIzM5O3ZlIGdvdCBhIFVBRiBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZXNlIGFyZSBib3RoIG1lbW9yeSBzYWZldHkgaXNzdWVzLCByaWdodD8gS0FTQU4gd2lsbCBzbmFnIHRoZSBVQUYgYW5kIHRoZSBrZXJuZWwmIzM5O3MgYnVpbHQtaW4gY2hlY2tzIHdpbGwgY2F0Y2ggdGhlIE5VTEwgZGVyZWZlcmVuY2UuIEkmIzM5O20gbm90IHNlZWluZyBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgYmVpbmcgcmVhZCBvciBsZWFrZWQgaGVyZSwgc28gbm8gS01TQU4gaXMgbmVlZGVkLiBMZXQgbWUganVzdCBjb25maXJtLi4uIHRoZSBwYXRjaCBmaXhlcyBhIFVBRiBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZSBmb3JtZXIgaXMgY2F1Z2h0IGJ5IEtBU0FOLCBhbmQgdGhlIGxhdHRlciBieSBzdGFuZGFyZCBrZXJuZWwgbWVjaGFuaXNtcy4gTm8gdW5pbml0aWFsaXplZCBtZW1vcnksIHNvIE5lZWRzS01TQU4gPSBmYWxzZS4gWWVwLCBtYWtlcyBzZW5zZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSB1c2UtYWZ0ZXItZnJlZSAoYnkgc2V0dGluZyBhIGZyZWVkIHBvaW50ZXIgdG8gTlVMTCkgYW5kIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIChieSBjaGVja2luZyBpZiB0aGUgcG9pbnRlciBpcyBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0KS4gQm90aCBvZiB0aGVzZSBpc3N1ZXMgYXJlIG1lbW9yeSBzYWZldHkgYnVncyB0aGF0IGFyZSBlZmZlY3RpdmVseSBjYXVnaHQgYnkgS0FTQU4gKGZvciB1c2UtYWZ0ZXItZnJlZSkgYW5kIHN0YW5kYXJkIGtlcm5lbCBjcmFzaCBtZWNoYW5pc21zIChmb3IgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcykuIFRoZSBjaGFuZ2VzIGRvIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvcm1hdGlvbiBsZWFrcyB0byB1c2VyIHNwYWNlLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lY2Vzc2FyeS4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgdXNlLWFmdGVyLWZyZWUgKGJ5IHNldHRpbmcgYSBmcmVlZCBwb2ludGVyIHRvIE5VTEwpIGFuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAoYnkgY2hlY2tpbmcgaWYgdGhlIHBvaW50ZXIgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdCkuIEJvdGggb2YgdGhlc2UgaXNzdWVzIGFyZSBtZW1vcnkgc2FmZXR5IGJ1Z3MgdGhhdCBhcmUgZWZmZWN0aXZlbHkgY2F1Z2h0IGJ5IEtBU0FOIChmb3IgdXNlLWFmdGVyLWZyZWUpIGFuZCBzdGFuZGFyZCBrZXJuZWwgY3Jhc2ggbWVjaGFuaXNtcyAoZm9yIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMpLiBUaGUgY2hhbmdlcyBkbyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlciBzcGFjZSwgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjA3Ljk4ODA5ODIxN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNjU0MjU0NDIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93blwiLFxuICAgIFwic2N0cF9zZl90NF90aW1lcl9leHBpcmVcIlxuICBdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgdXNlLWFmdGVyLWZyZWUgKGJ5IHNldHRpbmcgYSBmcmVlZCBwb2ludGVyIHRvIE5VTEwpIGFuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAoYnkgY2hlY2tpbmcgaWYgdGhlIHBvaW50ZXIgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdCkuIEJvdGggb2YgdGhlc2UgaXNzdWVzIGFyZSBtZW1vcnkgc2FmZXR5IGJ1Z3MgdGhhdCBhcmUgZWZmZWN0aXZlbHkgY2F1Z2h0IGJ5IEtBU0FOIChmb3IgdXNlLWFmdGVyLWZyZWUpIGFuZCBzdGFuZGFyZCBrZXJuZWwgY3Jhc2ggbWVjaGFuaXNtcyAoZm9yIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMpLiBUaGUgY2hhbmdlcyBkbyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlciBzcGFjZSwgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBTQ1RQIHByb3RvY29sIGJ5IHByb3Blcmx5IGNsZWFyaW5nIGBhc29jLVxcdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjA3Ljk4ODEwMzcwNloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYyNTEyMDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzNhYTcxNGJkN2E4OWM0MmRmNzZjM2EwMjk5MTdkYTYxMTk4OTVhYlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEF1ZyA4IDAxOjIwOjA3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9sYS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmNcXG5pbmRleCA1YjBhZTYxNmUxZmY5Li43MzdmOGVhOWQ0ODJmIDEwMDY0NFxcbi0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jXFxuKysrIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmNcXG5AQCAtMTcxMyw2ICsxNzEzLDggQEAgdm9pZCBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bihzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYylcXG4gXFx0c2N0cF9hc3NvY19mcmVlX2FzY29uZl9xdWV1ZShhc29jKTtcXG4gXFxuIFxcdC8qIEZyZWUgYW55IGNhY2hlZCBBU0NPTkYgY2h1bmsuICovXFxuLVxcdGlmIChhc29jLVxcdTAwM2VhZGRpcF9sYXN0X2FzY29uZilcXG4rXFx0aWYgKGFzb2MtXFx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKSB7XFxuIFxcdFxcdHNjdHBfY2h1bmtfZnJlZShhc29jLVxcdTAwM2VhZGRpcF9sYXN0X2FzY29uZik7XFxuK1xcdFxcdGFzb2MtXFx1MDAzZWFkZGlwX2xhc3RfYXNjb25mID0gTlVMTDtcXG4rXFx0fVxcbiB9XFxuZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcXG5pbmRleCA3MDhmYTA3ZDVmZmZjLi4zYThlMTZiMjk2NjBjIDEwMDY0NFxcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXFxuKysrIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcXG5AQCAtNjE0NSw4ICs2MTQ1LDEyIEBAIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZShcXG4gXFx0XFx0XFx0XFx0XFx0c3RydWN0IHNjdHBfY21kX3NlcSAqY29tbWFuZHMpXFxuIHtcXG4gXFx0c3RydWN0IHNjdHBfY2h1bmsgKmNodW5rID0gYXNvYy1cXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmY7XFxuLVxcdHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0ID0gY2h1bmstXFx1MDAzZXRyYW5zcG9ydDtcXG4rXFx0c3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQ7XFxuK1xcbitcXHRpZiAoIWNodW5rKVxcbitcXHRcXHRyZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FO1xcbiBcXG4rXFx0dHJhbnNwb3J0ID0gY2h1bmstXFx1MDAzZXRyYW5zcG9ydDtcXG4gXFx0U0NUUF9JTkNfU1RBVFMobmV0LCBTQ1RQX01JQl9UNF9SVE9fRVhQSVJFRFMpO1xcbiBcXG4gXFx0LyogQURESVAgNC4xIEIxKSBJbmNyZW1lbnQgdGhlIGVycm9yIGNvdW50ZXJzIGFuZCBwZXJmb3JtIHBhdGggZmFpbHVyZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDowOC40NTE0MDIxMzhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNjEyNTAyNDU5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25cIixcbiAgICBcInNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBTQ1RQIHByb3RvY29sIGJ5IHByb3Blcmx5IGNsZWFyaW5nIGBhc29jLVxcdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDMzYWE3MTRiZDdhODljNDJkZjc2YzNhMDI5OTE3ZGE2MTE5ODk1YWJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyA4IDAxOjIwOjA3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMgYi9uZXQvc2N0cC9hc3NvY2lvbGEuY1xuaW5kZXggNWIwYWU2MTZlMWZmOS4uNzM3ZjhlYTlkNDgyZiAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jXG4rKysgYi9uZXQvc2N0cC9hc3NvY2lvbGEuY1xuQEAgLTE3MTMsNiArMTcxMyw4IEBAIHZvaWQgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpXG4gXHRzY3RwX2Fzc29jX2ZyZWVfYXNjb25mX3F1ZXVlKGFzb2MpO1xuIFxuIFx0LyogRnJlZSBhbnkgY2FjaGVkIEFTQ09ORiBjaHVuay4gKi9cbi1cdGlmIChhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKVxuK1x0aWYgKGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYpIHtcbiBcdFx0c2N0cF9jaHVua19mcmVlKGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYpO1xuK1x0XHRhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mID0gTlVMTDtcbitcdH1cbiB9XG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuaW5kZXggNzA4ZmEwN2Q1ZmZmYy4uM2E4ZTE2YjI5NjYwYyAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG4rKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuQEAgLTYxNDUsOCArNjE0NSwxMiBAQCBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90NF90aW1lcl9leHBpcmUoXG4gXHRcdFx0XHRcdHN0cnVjdCBzY3RwX2NtZF9zZXEgKmNvbW1hbmRzKVxuIHtcbiBcdHN0cnVjdCBzY3RwX2NodW5rICpjaHVuayA9IGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmY7XG4tXHRzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbitcdHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0O1xuK1xuK1x0aWYgKCFjaHVuaylcbitcdFx0cmV0dXJuIFNDVFBfRElTUE9TSVRJT05fQ09OU1VNRTtcbiBcbitcdHRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbiBcdFNDVFBfSU5DX1NUQVRTKG5ldCwgU0NUUF9NSUJfVDRfUlRPX0VYUElSRURTKTtcbiBcbiBcdC8qIEFERElQIDQuMSBCMSkgSW5jcmVtZW50IHRoZSBlcnJvciBjb3VudGVycyBhbmQgcGVyZm9ybSBwYXRoIGZhaWx1cmVcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjA4LjQ1MTQwMzM2OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzMjU5Mjc2OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqU0NUUCBCdWcgRml4IEludmVzdGlnYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBuZXQvc2N0cC9hc3NvY2lvbGEuY2AgYW5kIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AuIEZyb20gYSBxdWljayBnbGFuY2UsIGl0IGxvb2tzIGxpa2UgYSB1c2UtYWZ0ZXItZnJlZSBvciBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIFNDVFAgY29kZS4gU3BlY2lmaWNhbGx5LCB0aGUgZml4IGFkZHJlc3NlcyBhIHNjZW5hcmlvIHdoZXJlIGBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCBpcyBiZWluZyBmcmVlZCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCB0aGVuIHBvdGVudGlhbGx5IGFjY2Vzc2VkIGxhdGVyIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoZSBhZGRpdGlvbiBvZiB0aGUgYGlmICghY2h1bmspIHJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7YCBjaGVjayBjb25maXJtcyB0aGlzLiBHaXZlbiBTQ1RQJ3MgcG90ZW50aWFsIHJlYWNoIGFuZCBmdXp6YWJpbGl0eSwgdGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byBsb29rIGludG8uXG5cbk15IG5leHQgc3RlcCBpcyB0byBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgaWRlbnRpZnkgdGhlIGtleSBmdW5jdGlvbnMgdG8gZXhhbWluZSBtb3JlIGNsb3NlbHkuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGZ1bmN0aW9ucyBhcmUgYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBhbmQgYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYCwgYXMgdGhlIHBhdGNoIGRpcmVjdGx5IG1vZGlmaWVzIHRoZW0uIEknbGwgbmVlZCB0byBjb25maXJtIHRoZSBleGFjdCBjb25maWcgbmFtZSwgd2hpY2ggSSB0aGluayBpcyBgSVBfU0NUUGAsIGJ1dCBpdCdzIGJlc3QgdG8gZG91YmxlLWNoZWNrIGBuZXQvc2N0cC9LY29uZmlnYCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIE9uY2UgSSBoYXZlIHRoZSBjb3JyZWN0IGNvbmZpZywgSSBjYW4gYmVnaW4gdHJhY2luZyB0aGUgY29kZSBleGVjdXRpb24gZmxvdyBhbmQgaWRlbnRpZnkgcG9zc2libGUgdHJpZ2dlciBzY2VuYXJpb3MgZm9yIHRoaXMgYnVnLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzEwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDhUMDE6MjA6MTIuNzc3MzM0NDY4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3NDEzMjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUF9TQ1RQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvS2NvbmZpZy01LVxcbm5ldC9zY3RwL0tjb25maWc6NjptZW51Y29uZmlnIElQX1NDVFBcXG5uZXQvc2N0cC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBTQ1RQIFByb3RvY29sXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoxMi44MjQ3NTQ4ODNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDA5ODA2MzI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipBbmFseXppbmcgU0NUUCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgSSdtIGxvb2tpbmcgYXQgdGhpcyBjb25maWd1cmF0aW9uLCBpdCdzIGZsYWdnZWQgYXMgYElQX1NDVFBgLiBNeSBpbW1lZGlhdGUgY29uY2VybiwgYXMgYWx3YXlzIHdoZW4gZGVhbGluZyB3aXRoIFNDVFAsIGlzIGl0cyBhc3luY2hyb25vdXMgbmF0dXJlIGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9uIHJlc291cmNlIG1hbmFnZW1lbnQuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgbmF0dXJlIG9mIHRoZSBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIHBhcmFtZXRlci4gSXMgaXQgYSBzdGF0aWMgc2V0dGluZywgb3Igc29tZXRoaW5nIHRoYXQncyBoYW5kbGVkIGR5bmFtaWNhbGx5PyBLbm93aW5nIHRoaXMgaXMgKmNydWNpYWwqIHRvIHVuZGVyc3RhbmQgaG93IGFnZ3Jlc3NpdmVseSB0aGUgc3lzdGVtIGlzIGdvaW5nIHRvIHRlYXIgZG93biBxdWV1ZXMgcmVsYXRlZCB0byBBU0NPTkYgZXZlbnRzLiBBIHN0YXRpY2FsbHkgZGVmaW5lZCB2YWx1ZSBzdWdnZXN0cyBhIHBvdGVudGlhbGx5IHJpZ2lkIGFwcHJvYWNoLCB3aGVyZWFzIGEgZHluYW1pYyBzZXR0aW5nIGltcGxpZXMgYSBtb3JlIGFkYXB0aXZlIGFuZCBwb3RlbnRpYWxseSBtb3JlIGVmZmljaWVudCBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NTYsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoxNi4yMzQ1NjQ0MTFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkzNTA0MTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidm9pZCBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93blwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvYXNzb2Npb2xhLmM9MTY4Nj1zdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9hc3NvY19sb29rdXBfYXNjb25mX2FjayhcXG4tLVxcbm5ldC9zY3RwL2Fzc29jaW9sYS5jLTE3MDYtXFxubmV0L3NjdHAvYXNzb2Npb2xhLmM6MTcwNzp2b2lkIHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duKHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jKVxcbm5ldC9zY3RwL2Fzc29jaW9sYS5jLTE3MDgte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoxNi4yODM5MjI1MTZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDYxMTU0MjQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqTmF2aWdhdGluZyB0aGUgRHluYW1pYyBMYW5kc2NhcGUqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgc2l0dWF0aW9uIGlzbid0IHN0YXRpYy4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB3ZSBuZWVkIHRvIGJlIHRoaW5raW5nIGFib3V0IHNvbWV0aGluZyB3aXRoIG1vdmVtZW50LCBzb21ldGhpbmcgdGhhdCBjaGFuZ2VzIG92ZXIgdGltZS4gR2l2ZW4gdGhhdCwgbGV0J3MgemVybyBpbiBvbiBhIHBvdGVudGlhbCBwb2ludCBvZiBpbnRlcmVzdC4gTXkgZ3V0IHJlYWN0aW9uIGlzIHRvIGNoZWNrIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoYXQgZnVuY3Rpb24gaXMgcHJvYmFibHkgdGhlIGtleSwgZ2l2ZW4gdGhhdCB3ZSBhcmUgZGlzY3Vzc2luZyBhIG5vbi1zdGF0aWMgc2l0dWF0aW9uIGFuZCB0aGlzIHBhcnRpY3VsYXIgdGltZXIgaGFzIHRoZSB3b3JkIFwiZXhwaXJlXCIgaW4gaXRzIG5hbWUuIEl0IGlzIGxpa2VseSB0aGF0IHRoaXMgcGFydCBvZiB0aGUgY29kZSBjb3VsZCBiZSByZXNwb25zaWJsZSBmb3Igc29tZXRoaW5nIGR5bmFtaWMgbGlrZSBjaGFuZ2luZyBzdGF0ZSBvciB0cmlnZ2VyaW5nIGV2ZW50cyBhdCBhIHNwZWNpZmljIHRpbWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMTgsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoxOS4zNDUwNzk2MDhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk1MzE5NDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYz02MDY4PWVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX3QyX3RpbWVyX2V4cGlyZShcXG4tLVxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTYxMzgtICovXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmM6NjEzOTplbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90NF90aW1lcl9leHBpcmUoXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNjE0MC1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbmV0ICpuZXQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjE5LjM5NDYxODQxM1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxMDE5Njc1MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0NUUCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdGFyZ2V0aW5nIHNvbWUgcG90ZW50aWFsbHkgbmFzdHkgbWVtb3J5IGVycm9ycyBpbiB0aGUgU0NUUCBwcm90b2NvbC4gSXQncyBhZGRyZXNzaW5nIHR3byBzcGVjaWZpYyBhcmVhcywgYm90aCBvZiB3aGljaCBhcmUgY3JpdGljYWwgZm9yIHJlbGlhYmlsaXR5LiBMZXQgbWUgYnJlYWsgaXQgZG93bjpcblxuRmlyc3QsIHRoZXkncmUgY2xlYW5pbmcgdXAgYSBkYW5nbGluZyBwb2ludGVyIGlzc3VlIHJlbGF0ZWQgdG8gYGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmZgLiAgSXQgbG9va3MgbGlrZSBhZnRlciB0aGUgYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBmdW5jdGlvbiBydW5zIGFuZCBwcmVzdW1hYmx5IGZyZWVzIHRoZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIHRoYXQgcG9pbnRlciwgdGhlIGNvZGUgd2Fzbid0IGV4cGxpY2l0bHkgY2xlYXJpbmcgdGhlIHBvaW50ZXIgaXRzZWxmLiAgQSBjbGFzc2ljIHVzZS1hZnRlci1mcmVlIHNjZW5hcmlvLiBUaGlzIGlzIGEgdmVyeSBjb21tb24gYnVnLCBhbmQgZGFuZ2Vyb3VzLlxuXG5TZWNvbmQsIHRoZXkncmUgYWRkaW5nIGEgbnVsbCBjaGVjayBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLiBUaGlzIGlzIGdvb2QgZGVmZW5zaXZlIHByb2dyYW1taW5nLCBndWFyZGluZyBhZ2FpbnN0IGEgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlLiBTb3VuZHMgbGlrZSB0aGlzIHRpbWVyIG1pZ2h0IGJlIHVzaW5nIGEgc3RhbGUgcmVmZXJlbmNlIHNvbWV0aW1lcywgc28gbm93IHRoZXJlIGlzIGEgc2FmZXR5IG5ldC5cblxuRnJvbSBhIGZ1bmN0aW9uYWwgcGVyc3BlY3RpdmUsIHRoaXMgaXMgYSBjb3JlIGxvZ2ljIGNoYW5nZSB3aXRoaW4gU0NUUCwgYW5kIHRoYXQgbWFrZXMgaXQgYWJzb2x1dGVseSBwcmltZSByZWFsIGVzdGF0ZSBmb3IgZnV6emluZy4gIEknZCBiZSBlc3BlY2lhbGx5IGtlZW4gdG8gdHJ5IGFuZCB0cmlnZ2VyIHRoZXNlIHNjZW5hcmlvcyB3aXRoIGRlbGliZXJhdGVseSBjcmFmdGVkIFNDVFAgcGFja2V0cyB0byBzZWUgaWYgd2UgY2FuIGV4cG9zZSBhbnkgb3RoZXIgZWRnZSBjYXNlcy4gIFRoZSBmb2N1cyBoZXJlIGlzIG9uIHByZXZlbnRpbmcgY3Jhc2hlcyBhbmQgZW5zdXJpbmcgZGF0YSBpbnRlZ3JpdHkuIFNvLCBpdCBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd29ydGggYSBzZWNvbmQgbG9vayB0byB0ZXN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjg3LCJPdXRwdXRUb2tlbnMiOjE1OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoyNC40OTY1ODgzOThaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTgzNTIwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBfU0NUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duXCIsXG4gICAgXCJzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgU0NUUCBwcm90b2NvbCBieSBwcm9wZXJseSBjbGVhcmluZyBgYXNvYy1cXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmZgIGFmdGVyIGZyZWVpbmcgaXQgaW4gYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBhbmQgYWRkaW5nIGEgbnVsbCBjaGVjayBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgU0NUUCBsb2dpYyBhbmQgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93blwiLFxuICAgIFwic2N0cF9zZl90NF90aW1lcl9leHBpcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIFNDVFAgcHJvdG9jb2wgYnkgcHJvcGVybHkgY2xlYXJpbmcgYGFzb2MtXFx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCBhZnRlciBmcmVlaW5nIGl0IGluIGBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bmAgYW5kIGFkZGluZyBhIG51bGwgY2hlY2sgaW4gYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDhUMDE6MjA6MjQuNTc2NDMwNDlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNjU5MTMyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoyNC41NzY5OTM3NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo3MDY1MzQ1NTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHVzZS1hZnRlci1mcmVlIChieSBzZXR0aW5nIGEgZnJlZWQgcG9pbnRlciB0byBOVUxMKSBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgKGJ5IGNoZWNraW5nIGlmIHRoZSBwb2ludGVyIGlzIE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQpLiBCb3RoIG9mIHRoZXNlIGlzc3VlcyBhcmUgbWVtb3J5IHNhZmV0eSBidWdzIHRoYXQgYXJlIGVmZmVjdGl2ZWx5IGNhdWdodCBieSBLQVNBTiAoZm9yIHVzZS1hZnRlci1mcmVlKSBhbmQgc3RhbmRhcmQga2VybmVsIGNyYXNoIG1lY2hhbmlzbXMgKGZvciBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzKS4gVGhlIGNoYW5nZXMgZG8gbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXIgc3BhY2UsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeVxuZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmRcbmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcilcbmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLlxuXG5DUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjpcbi0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZVxuICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU5cbiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUFxuICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLlxuLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCxcbiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLlxuXG5SdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLFxuTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy5cbkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFlcbnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzXG50aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLlxuXG5Mb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdFxudW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsXG5hIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXNcbnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nXG51bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2xcbmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSxcbmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6XG4xLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYlxuICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHNcbiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuXG4yLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzXG4gICBvciBzdHJ1Y3QgZmllbGRzLlxuMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkc1xuICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy5cbjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzXG4gICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuXG5cblNldCBOZWVkc0tNU0FOPWZhbHNlIElGOlxuLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlclxuICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHRcbiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLlxuLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZFxuICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuXG4tIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy5cblxuVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZVxuZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDMzYWE3MTRiZDdhODljNDJkZjc2YzNhMDI5OTE3ZGE2MTE5ODk1YWJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyA4IDAxOjIwOjA3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMgYi9uZXQvc2N0cC9hc3NvY2lvbGEuY1xuaW5kZXggNWIwYWU2MTZlMWZmOS4uNzM3ZjhlYTlkNDgyZiAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jXG4rKysgYi9uZXQvc2N0cC9hc3NvY2lvbGEuY1xuQEAgLTE3MTMsNiArMTcxMyw4IEBAIHZvaWQgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpXG4gXHRzY3RwX2Fzc29jX2ZyZWVfYXNjb25mX3F1ZXVlKGFzb2MpO1xuIFxuIFx0LyogRnJlZSBhbnkgY2FjaGVkIEFTQ09ORiBjaHVuay4gKi9cbi1cdGlmIChhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKVxuK1x0aWYgKGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYpIHtcbiBcdFx0c2N0cF9jaHVua19mcmVlKGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYpO1xuK1x0XHRhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mID0gTlVMTDtcbitcdH1cbiB9XG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuaW5kZXggNzA4ZmEwN2Q1ZmZmYy4uM2E4ZTE2YjI5NjYwYyAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG4rKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuQEAgLTYxNDUsOCArNjE0NSwxMiBAQCBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90NF90aW1lcl9leHBpcmUoXG4gXHRcdFx0XHRcdHN0cnVjdCBzY3RwX2NtZF9zZXEgKmNvbW1hbmRzKVxuIHtcbiBcdHN0cnVjdCBzY3RwX2NodW5rICpjaHVuayA9IGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmY7XG4tXHRzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbitcdHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0O1xuK1xuK1x0aWYgKCFjaHVuaylcbitcdFx0cmV0dXJuIFNDVFBfRElTUE9TSVRJT05fQ09OU1VNRTtcbiBcbitcdHRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbiBcdFNDVFBfSU5DX1NUQVRTKG5ldCwgU0NUUF9NSUJfVDRfUlRPX0VYUElSRURTKTtcbiBcbiBcdC8qIEFERElQIDQuMSBCMSkgSW5jcmVtZW50IHRoZSBlcnJvciBjb3VudGVycyBhbmQgcGVyZm9ybSBwYXRoIGZhaWx1cmVcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjI0LjU3Njk5NDU3WiIsIlNlcSI6MTMsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcwNjUzMjQzMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTQ1RQIEFzc29jaWF0aW9uIFRlYXJkb3duIGFuZCBBU0NPTkYgSGFuZGxpbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIHRvdWNoaW5nIGBuZXQvc2N0cC9hc3NvY2lvbGEuY2AgYW5kIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AuIFRoZSBmaXJzdCBwYXJ0LCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gLCBpcyBhZGRyZXNzaW5nIGEgY2xhc3NpYyB1c2UtYWZ0ZXItZnJlZSBpc3N1ZS4gVGhleSdyZSBmcmVlaW5nIGBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCBidXQgd2VyZW4ndCBudWxsaW5nIGl0IG91dCBpbW1lZGlhdGVseSBhZnRlcndhcmQuIFRoZSBmaXggaXMgYSBzaW1wbGUsIGJ1dCBjcnVjaWFsLCBgYXNvYy1cdTAwM2VhZGRpcF9sYXN0X2FzY29uZiA9IE5VTEw7YCBhZnRlciB0aGUgYHNjdHBfY2h1bmtfZnJlZSgpYC4gVGhhdCdzIGEgZ29vZCBjYXRjaCwgcHJldmVudGluZyBwb3RlbnRpYWwgbWVtb3J5IGNvcnJ1cHRpb24uXG5cblRoZSBzZWNvbmQgcGFydCwgaW4gYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYCwgZGVhbHMgd2l0aCBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZSBjb2RlIHdhcyBhc3N1bWluZyB0aGF0IGBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCB3b3VsZCBhbHdheXMgaGF2ZSBhIHZhbHVlLCBidXQgbm93IHRoZXJlJ3MgYSBjaGVjazogYGlmICghY2h1bmspIHJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7YC4gVGhpcyBpcyBjcml0aWNhbC4gV2l0aG91dCB0aGF0IGNoZWNrLCB0aGUgY29kZSBjb3VsZCB0cnkgdG8gZGVyZWZlcmVuY2UgYSBOVUxMIHBvaW50ZXIsIGxlYWRpbmcgdG8gYSBjcmFzaC5cblxuRXNzZW50aWFsbHksIHdlJ3ZlIGdvdCBhIFVBRiBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZXNlIGFyZSBib3RoIG1lbW9yeSBzYWZldHkgaXNzdWVzLCByaWdodD8gS0FTQU4gd2lsbCBzbmFnIHRoZSBVQUYgYW5kIHRoZSBrZXJuZWwncyBidWlsdC1pbiBjaGVja3Mgd2lsbCBjYXRjaCB0aGUgTlVMTCBkZXJlZmVyZW5jZS4gSSdtIG5vdCBzZWVpbmcgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJlaW5nIHJlYWQgb3IgbGVha2VkIGhlcmUsIHNvIG5vIEtNU0FOIGlzIG5lZWRlZC4gTGV0IG1lIGp1c3QgY29uZmlybS4uLiB0aGUgcGF0Y2ggZml4ZXMgYSBVQUYgYW5kIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLiBUaGUgZm9ybWVyIGlzIGNhdWdodCBieSBLQVNBTiwgYW5kIHRoZSBsYXR0ZXIgYnkgc3RhbmRhcmQga2VybmVsIG1lY2hhbmlzbXMuIE5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBzbyBOZWVkc0tNU0FOID0gZmFsc2UuIFllcCwgbWFrZXMgc2Vuc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDcsIk91dHB1dFRva2VucyI6MTMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDhUMDE6MjA6MzEuNjQyMzIwODY3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY4NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHVzZS1hZnRlci1mcmVlIChieSBzZXR0aW5nIGEgZnJlZWQgcG9pbnRlciB0byBOVUxMKSBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgKGJ5IGNoZWNraW5nIGlmIHRoZSBwb2ludGVyIGlzIE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQpLiBCb3RoIG9mIHRoZXNlIGlzc3VlcyBhcmUgbWVtb3J5IHNhZmV0eSBidWdzIHRoYXQgYXJlIGVmZmVjdGl2ZWx5IGNhdWdodCBieSBLQVNBTiAoZm9yIHVzZS1hZnRlci1mcmVlKSBhbmQgc3RhbmRhcmQga2VybmVsIGNyYXNoIG1lY2hhbmlzbXMgKGZvciBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzKS4gVGhlIGNoYW5nZXMgZG8gbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXIgc3BhY2UsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgdXNlLWFmdGVyLWZyZWUgKGJ5IHNldHRpbmcgYSBmcmVlZCBwb2ludGVyIHRvIE5VTEwpIGFuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAoYnkgY2hlY2tpbmcgaWYgdGhlIHBvaW50ZXIgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdCkuIEJvdGggb2YgdGhlc2UgaXNzdWVzIGFyZSBtZW1vcnkgc2FmZXR5IGJ1Z3MgdGhhdCBhcmUgZWZmZWN0aXZlbHkgY2F1Z2h0IGJ5IEtBU0FOIChmb3IgdXNlLWFmdGVyLWZyZWUpIGFuZCBzdGFuZGFyZCBrZXJuZWwgY3Jhc2ggbWVjaGFuaXNtcyAoZm9yIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMpLiBUaGUgY2hhbmdlcyBkbyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlciBzcGFjZSwgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-08 01:05:46 +0000 UTC FinishedAt: 2026-08-08 01:20:33 +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": "3dbb44d88b1e94dd31fe43588af7437b34b44d56", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3dbb44d88b1e94dd31fe43588af7437b34b44d56", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "ed27fea8-b284-4ede-b191-37c8ecbec109" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "sctp_asconf_queue_teardown", "sctp_sf_t4_timer_expire" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA4IDAxOjIwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93biYjMzQ7LAogICAgJiMzNDtzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZSYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgdXNlLWFmdGVyLWZyZWUgKGJ5IHNldHRpbmcgYSBmcmVlZCBwb2ludGVyIHRvIE5VTEwpIGFuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAoYnkgY2hlY2tpbmcgaWYgdGhlIHBvaW50ZXIgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdCkuIEJvdGggb2YgdGhlc2UgaXNzdWVzIGFyZSBtZW1vcnkgc2FmZXR5IGJ1Z3MgdGhhdCBhcmUgZWZmZWN0aXZlbHkgY2F1Z2h0IGJ5IEtBU0FOIChmb3IgdXNlLWFmdGVyLWZyZWUpIGFuZCBzdGFuZGFyZCBrZXJuZWwgY3Jhc2ggbWVjaGFuaXNtcyAoZm9yIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMpLiBUaGUgY2hhbmdlcyBkbyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlciBzcGFjZSwgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgU0NUUCBwcm90b2NvbCBieSBwcm9wZXJseSBjbGVhcmluZyBgYXNvYy1cdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzM2FhNzE0YmQ3YTg5YzQyZGY3NmMzYTAyOTkxN2RhNjExOTg5NWFiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBBdWcgOCAwMToyMDowNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvc2N0cC9hc3NvY2lvbGEuYyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jXG5pbmRleCA1YjBhZTYxNmUxZmY5Li43MzdmOGVhOWQ0ODJmIDEwMDY0NFxuLS0tIGEvbmV0L3NjdHAvYXNzb2Npb2xhLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jXG5AQCAtMTcxMyw2ICYjNDM7MTcxMyw4IEBAIHZvaWQgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpXG4gXHRzY3RwX2Fzc29jX2ZyZWVfYXNjb25mX3F1ZXVlKGFzb2MpO1xuIFxuIFx0LyogRnJlZSBhbnkgY2FjaGVkIEFTQ09ORiBjaHVuay4gKi9cbi1cdGlmIChhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKVxuJiM0MztcdGlmIChhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKSB7XG4gXHRcdHNjdHBfY2h1bmtfZnJlZShhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKTtcbiYjNDM7XHRcdGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYgPSBOVUxMO1xuJiM0MztcdH1cbiB9XG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuaW5kZXggNzA4ZmEwN2Q1ZmZmYy4uM2E4ZTE2YjI5NjYwYyAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuQEAgLTYxNDUsOCAmIzQzOzYxNDUsMTIgQEAgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlKFxuIFx0XHRcdFx0XHRzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjb21tYW5kcylcbiB7XG4gXHRzdHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmsgPSBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mO1xuLVx0c3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBjaHVuay1cdTAwM2V0cmFuc3BvcnQ7XG4mIzQzO1x0c3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQ7XG4mIzQzO1xuJiM0MztcdGlmICghY2h1bmspXG4mIzQzO1x0XHRyZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FO1xuIFxuJiM0MztcdHRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbiBcdFNDVFBfSU5DX1NUQVRTKG5ldCwgU0NUUF9NSUJfVDRfUlRPX0VYUElSRURTKTtcbiBcbiBcdC8qIEFERElQIDQuMSBCMSkgSW5jcmVtZW50IHRoZSBlcnJvciBjb3VudGVycyBhbmQgcGVyZm9ybSBwYXRoIGZhaWx1cmVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wOCAwMToyMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBfU0NUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfdDRfdGltZXJfZXhwaXJlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgU0NUUCBwcm90b2NvbCBieSBwcm9wZXJseSBjbGVhcmluZyBgYXNvYy1cdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzM2FhNzE0YmQ3YTg5YzQyZGY3NmMzYTAyOTkxN2RhNjExOTg5NWFiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBBdWcgOCAwMToyMDowNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9sYS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKaW5kZXggNWIwYWU2MTZlMWZmOS4uNzM3ZjhlYTlkNDgyZiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKQEAgLTE3MTMsNiAmIzQzOzE3MTMsOCBAQCB2b2lkIHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duKHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jKQogCXNjdHBfYXNzb2NfZnJlZV9hc2NvbmZfcXVldWUoYXNvYyk7CiAKIAkvKiBGcmVlIGFueSBjYWNoZWQgQVNDT05GIGNodW5rLiAqLwotCWlmIChhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZikKJiM0MzsJaWYgKGFzb2MtJmd0O2FkZGlwX2xhc3RfYXNjb25mKSB7CiAJCXNjdHBfY2h1bmtfZnJlZShhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZik7CiYjNDM7CQlhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZiA9IE5VTEw7CiYjNDM7CX0KIH0KZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKaW5kZXggNzA4ZmEwN2Q1ZmZmYy4uM2E4ZTE2YjI5NjYwYyAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKQEAgLTYxNDUsOCAmIzQzOzYxNDUsMTIgQEAgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlKAogCQkJCQlzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjb21tYW5kcykKIHsKIAlzdHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmsgPSBhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZjsKLQlzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydCA9IGNodW5rLSZndDt0cmFuc3BvcnQ7CiYjNDM7CXN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0OwomIzQzOwomIzQzOwlpZiAoIWNodW5rKQomIzQzOwkJcmV0dXJuIFNDVFBfRElTUE9TSVRJT05fQ09OU1VNRTsKIAomIzQzOwl0cmFuc3BvcnQgPSBjaHVuay0mZ3Q7dHJhbnNwb3J0OwogCVNDVFBfSU5DX1NUQVRTKG5ldCwgU0NUUF9NSUJfVDRfUlRPX0VYUElSRURTKTsKIAogCS8qIEFERElQIDQuMSBCMSkgSW5jcmVtZW50IHRoZSBlcnJvciBjb3VudGVycyBhbmQgcGVyZm9ybSBwYXRoIGZhaWx1cmUKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMxMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipTQ1RQIEJ1ZyBGaXggSW52ZXN0aWdhdGlvbioqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBuZXQvc2N0cC9hc3NvY2lvbGEuY2AgYW5kIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AuIEZyb20gYSBxdWljayBnbGFuY2UsIGl0IGxvb2tzIGxpa2UgYSB1c2UtYWZ0ZXItZnJlZSBvciBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIFNDVFAgY29kZS4gU3BlY2lmaWNhbGx5LCB0aGUgZml4IGFkZHJlc3NlcyBhIHNjZW5hcmlvIHdoZXJlIGBhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZmAgaXMgYmVpbmcgZnJlZWQgaW4gYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBhbmQgdGhlbiBwb3RlbnRpYWxseSBhY2Nlc3NlZCBsYXRlciBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLiBUaGUgYWRkaXRpb24gb2YgdGhlIGBpZiAoIWNodW5rKSByZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FO2AgY2hlY2sgY29uZmlybXMgdGhpcy4gR2l2ZW4gU0NUUCYjMzk7cyBwb3RlbnRpYWwgcmVhY2ggYW5kIGZ1enphYmlsaXR5LCB0aGlzIGlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRvIGxvb2sgaW50by4KCk15IG5leHQgc3RlcCBpcyB0byBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgaWRlbnRpZnkgdGhlIGtleSBmdW5jdGlvbnMgdG8gZXhhbWluZSBtb3JlIGNsb3NlbHkuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGZ1bmN0aW9ucyBhcmUgYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBhbmQgYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYCwgYXMgdGhlIHBhdGNoIGRpcmVjdGx5IG1vZGlmaWVzIHRoZW0uIEkmIzM5O2xsIG5lZWQgdG8gY29uZmlybSB0aGUgZXhhY3QgY29uZmlnIG5hbWUsIHdoaWNoIEkgdGhpbmsgaXMgYElQX1NDVFBgLCBidXQgaXQmIzM5O3MgYmVzdCB0byBkb3VibGUtY2hlY2sgYG5ldC9zY3RwL0tjb25maWdgIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4gT25jZSBJIGhhdmUgdGhlIGNvcnJlY3QgY29uZmlnLCBJIGNhbiBiZWdpbiB0cmFjaW5nIHRoZSBjb2RlIGV4ZWN1dGlvbiBmbG93IGFuZCBpZGVudGlmeSBwb3NzaWJsZSB0cmlnZ2VyIHNjZW5hcmlvcyBmb3IgdGhpcyBidWcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElQX1NDVFAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zY3RwL0tjb25maWctNS1cbm5ldC9zY3RwL0tjb25maWc6NjptZW51Y29uZmlnIElQX1NDVFBcbm5ldC9zY3RwL0tjb25maWctNy1cdHRyaXN0YXRlIFwmIzM0O1RoZSBTQ1RQIFByb3RvY29sXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk1NgoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6CgoqKkFuYWx5emluZyBTQ1RQIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29uZmlndXJhdGlvbiwgaXQmIzM5O3MgZmxhZ2dlZCBhcyBgSVBfU0NUUGAuIE15IGltbWVkaWF0ZSBjb25jZXJuLCBhcyBhbHdheXMgd2hlbiBkZWFsaW5nIHdpdGggU0NUUCwgaXMgaXRzIGFzeW5jaHJvbm91cyBuYXR1cmUgYW5kIHBvdGVudGlhbCBpbXBhY3Qgb24gcmVzb3VyY2UgbWFuYWdlbWVudC4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSBuYXR1cmUgb2YgdGhlIGBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bmAgcGFyYW1ldGVyLiBJcyBpdCBhIHN0YXRpYyBzZXR0aW5nLCBvciBzb21ldGhpbmcgdGhhdCYjMzk7cyBoYW5kbGVkIGR5bmFtaWNhbGx5PyBLbm93aW5nIHRoaXMgaXMgKmNydWNpYWwqIHRvIHVuZGVyc3RhbmQgaG93IGFnZ3Jlc3NpdmVseSB0aGUgc3lzdGVtIGlzIGdvaW5nIHRvIHRlYXIgZG93biBxdWV1ZXMgcmVsYXRlZCB0byBBU0NPTkYgZXZlbnRzLiBBIHN0YXRpY2FsbHkgZGVmaW5lZCB2YWx1ZSBzdWdnZXN0cyBhIHBvdGVudGlhbGx5IHJpZ2lkIGFwcHJvYWNoLCB3aGVyZWFzIGEgZHluYW1pYyBzZXR0aW5nIGltcGxpZXMgYSBtb3JlIGFkYXB0aXZlIGFuZCBwb3RlbnRpYWxseSBtb3JlIGVmZmljaWVudCBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm9pZCBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93biYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9hc3NvY2lvbGEuYz0xNjg2PXN0cnVjdCBzY3RwX2NodW5rICpzY3RwX2Fzc29jX2xvb2t1cF9hc2NvbmZfYWNrKFxuLS1cbm5ldC9zY3RwL2Fzc29jaW9sYS5jLTE3MDYtXG5uZXQvc2N0cC9hc3NvY2lvbGEuYzoxNzA3OnZvaWQgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpXG5uZXQvc2N0cC9hc3NvY2lvbGEuYy0xNzA4LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wOCAwMToyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzE4CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEkmIzM5O20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OgoKKipOYXZpZ2F0aW5nIHRoZSBEeW5hbWljIExhbmRzY2FwZSoqCgpBbHJpZ2h0LCBzbyB0aGUgc2l0dWF0aW9uIGlzbiYjMzk7dCBzdGF0aWMuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCBzb21ldGhpbmcgd2l0aCBtb3ZlbWVudCwgc29tZXRoaW5nIHRoYXQgY2hhbmdlcyBvdmVyIHRpbWUuIEdpdmVuIHRoYXQsIGxldCYjMzk7cyB6ZXJvIGluIG9uIGEgcG90ZW50aWFsIHBvaW50IG9mIGludGVyZXN0LiBNeSBndXQgcmVhY3Rpb24gaXMgdG8gY2hlY2sgYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYC4gVGhhdCBmdW5jdGlvbiBpcyBwcm9iYWJseSB0aGUga2V5LCBnaXZlbiB0aGF0IHdlIGFyZSBkaXNjdXNzaW5nIGEgbm9uLXN0YXRpYyBzaXR1YXRpb24gYW5kIHRoaXMgcGFydGljdWxhciB0aW1lciBoYXMgdGhlIHdvcmQgJiMzNDtleHBpcmUmIzM0OyBpbiBpdHMgbmFtZS4gSXQgaXMgbGlrZWx5IHRoYXQgdGhpcyBwYXJ0IG9mIHRoZSBjb2RlIGNvdWxkIGJlIHJlc3BvbnNpYmxlIGZvciBzb21ldGhpbmcgZHluYW1pYyBsaWtlIGNoYW5naW5nIHN0YXRlIG9yIHRyaWdnZXJpbmcgZXZlbnRzIGF0IGEgc3BlY2lmaWMgdGltZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wOCAwMToyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90NF90aW1lcl9leHBpcmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc21fc3RhdGVmdW5zLmM9NjA2OD1lbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90Ml90aW1lcl9leHBpcmUoXG4tLVxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNjEzOC0gKi9cbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjYxMzk6ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlKFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNjE0MC1cdFx0XHRcdFx0c3RydWN0IG5ldCAqbmV0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA4IDAxOjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2ODcKCQkJCQkJCW91dHB1dDogMTU5CgkJCQkJCQl0aG91Z2h0czogMTUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNDVFAgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0YXJnZXRpbmcgc29tZSBwb3RlbnRpYWxseSBuYXN0eSBtZW1vcnkgZXJyb3JzIGluIHRoZSBTQ1RQIHByb3RvY29sLiBJdCYjMzk7cyBhZGRyZXNzaW5nIHR3byBzcGVjaWZpYyBhcmVhcywgYm90aCBvZiB3aGljaCBhcmUgY3JpdGljYWwgZm9yIHJlbGlhYmlsaXR5LiBMZXQgbWUgYnJlYWsgaXQgZG93bjoKCkZpcnN0LCB0aGV5JiMzOTtyZSBjbGVhbmluZyB1cCBhIGRhbmdsaW5nIHBvaW50ZXIgaXNzdWUgcmVsYXRlZCB0byBgYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmZgLiAgSXQgbG9va3MgbGlrZSBhZnRlciB0aGUgYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBmdW5jdGlvbiBydW5zIGFuZCBwcmVzdW1hYmx5IGZyZWVzIHRoZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIHRoYXQgcG9pbnRlciwgdGhlIGNvZGUgd2FzbiYjMzk7dCBleHBsaWNpdGx5IGNsZWFyaW5nIHRoZSBwb2ludGVyIGl0c2VsZi4gIEEgY2xhc3NpYyB1c2UtYWZ0ZXItZnJlZSBzY2VuYXJpby4gVGhpcyBpcyBhIHZlcnkgY29tbW9uIGJ1ZywgYW5kIGRhbmdlcm91cy4KClNlY29uZCwgdGhleSYjMzk7cmUgYWRkaW5nIGEgbnVsbCBjaGVjayBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLiBUaGlzIGlzIGdvb2QgZGVmZW5zaXZlIHByb2dyYW1taW5nLCBndWFyZGluZyBhZ2FpbnN0IGEgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlLiBTb3VuZHMgbGlrZSB0aGlzIHRpbWVyIG1pZ2h0IGJlIHVzaW5nIGEgc3RhbGUgcmVmZXJlbmNlIHNvbWV0aW1lcywgc28gbm93IHRoZXJlIGlzIGEgc2FmZXR5IG5ldC4KCkZyb20gYSBmdW5jdGlvbmFsIHBlcnNwZWN0aXZlLCB0aGlzIGlzIGEgY29yZSBsb2dpYyBjaGFuZ2Ugd2l0aGluIFNDVFAsIGFuZCB0aGF0IG1ha2VzIGl0IGFic29sdXRlbHkgcHJpbWUgcmVhbCBlc3RhdGUgZm9yIGZ1enppbmcuICBJJiMzOTtkIGJlIGVzcGVjaWFsbHkga2VlbiB0byB0cnkgYW5kIHRyaWdnZXIgdGhlc2Ugc2NlbmFyaW9zIHdpdGggZGVsaWJlcmF0ZWx5IGNyYWZ0ZWQgU0NUUCBwYWNrZXRzIHRvIHNlZSBpZiB3ZSBjYW4gZXhwb3NlIGFueSBvdGhlciBlZGdlIGNhc2VzLiAgVGhlIGZvY3VzIGhlcmUgaXMgb24gcHJldmVudGluZyBjcmFzaGVzIGFuZCBlbnN1cmluZyBkYXRhIGludGVncml0eS4gU28sIGl0IGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSB3b3J0aCBhIHNlY29uZCBsb29rIHRvIHRlc3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA4IDAxOjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24mIzM0OywKICAgICYjMzQ7c2N0cF9zZl90NF90aW1lcl9leHBpcmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBTQ1RQIHByb3RvY29sIGJ5IHByb3Blcmx5IGNsZWFyaW5nIGBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCBhZnRlciBmcmVlaW5nIGl0IGluIGBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bmAgYW5kIGFkZGluZyBhIG51bGwgY2hlY2sgaW4gYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBfU0NUUCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3NjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfdDRfdGltZXJfZXhwaXJlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgU0NUUCBwcm90b2NvbCBieSBwcm9wZXJseSBjbGVhcmluZyBgYXNvYy1cdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA4IDAxOjIwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSB1c2UtYWZ0ZXItZnJlZSAoYnkgc2V0dGluZyBhIGZyZWVkIHBvaW50ZXIgdG8gTlVMTCkgYW5kIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIChieSBjaGVja2luZyBpZiB0aGUgcG9pbnRlciBpcyBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0KS4gQm90aCBvZiB0aGVzZSBpc3N1ZXMgYXJlIG1lbW9yeSBzYWZldHkgYnVncyB0aGF0IGFyZSBlZmZlY3RpdmVseSBjYXVnaHQgYnkgS0FTQU4gKGZvciB1c2UtYWZ0ZXItZnJlZSkgYW5kIHN0YW5kYXJkIGtlcm5lbCBjcmFzaCBtZWNoYW5pc21zIChmb3IgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcykuIFRoZSBjaGFuZ2VzIGRvIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvcm1hdGlvbiBsZWFrcyB0byB1c2VyIHNwYWNlLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lY2Vzc2FyeS4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnkKZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQKZGV0ZXJtaW5lIGlmIHRoZSBjb2RlIGNoYW5nZXMganVzdGlmeSBzcGF3bmluZyBhIGRlZGljYXRlZCBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKQpmdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy4KCkNSSVRJQ0FMIERJU1RJTkNUSU9OIEJFVFdFRU4gS0FTQU4gQU5EIEtNU0FOOgotIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGUKICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU4KICAob3V0LW9mLWJvdW5kcyBhY2Nlc3NlcywgdXNlLWFmdGVyLWZyZWUsIGRvdWJsZSBmcmVlLCBpbnZhbGlkIGZyZWUpLCBMT0NLREVQCiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy4KLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCwKICBvciBwYWdlIGFsbG9jYXRpb25zKSBhbmQga2VybmVsLXRvLXVzZXIgbWVtb3J5IGluZm8tbGVha3MuCgpSdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLApMT0NLREVQLCBPUiBPVEhFUiBTVEFOREFSRCBCVUcgREVURUNUT1JTLgpBIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZCnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzCnRoYXQgYXJlIGRldGVjdGVkIE9OTFkgYnkgS01TQU4uCgpMb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdAp1bmluaXRpYWxpemVkIGZpZWxkIGFjY2Vzc2VzIG9yIG5ldyBidWZmZXIgYWxsb2NhdGlvbnMgYXJlIGFkZGVkIGluIHRoZSBkaWZmIGl0c2VsZiwKYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzCnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nCnVuaW5pdGlhbGl6ZWQgc3RhY2svaGVhcCBtZW1vcnkgdG8gYmUgcmVhZCwgY29waWVkIHRvIHVzZXIgc3BhY2UsIG9yIHVzZWQgaW4gY29udHJvbApmbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsCmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLgoKU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOgoxLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYgogICBhdHRyaWJ1dGVzLCBpb2N0bCBvdXRwdXQgYXJndW1lbnRzLCBzb2NrZXQgb3B0aW9ucywgb3IgQlBGIGJ1ZmZlcnMpIHdoZXJlIGZpZWxkcwogICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLgoyLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCiAgIG9yIHN0cnVjdCBmaWVsZHMuCjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHMKICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy4KNC4gQm91bmRzIGNoZWNrcywgbGVuZ3Rocywgb3IgbG9naWMgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3Vycm91bmRpbmcgY29kZSB0byBhY2Nlc3MKICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLgoKU2V0IE5lZWRzS01TQU49ZmFsc2UgSUY6Ci0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXIKICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHQKICBieSBLQVNBTiwgTE9DS0RFUCwgb3Igc3RhbmRhcmQgYnVnIGRldGVjdG9ycykuCi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWQKICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuCi0gVGhlIHBhdGNoIGRvZXMgbm90IGludHJvZHVjZSBhbnkgcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzLgoKVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZQpkZXRhaWxlZCBLTVNBTlJlYXNvbmluZyBjb250cmFzdGluZyBLQVNBTiB2cyBLTVNBTiBhcHBsaWNhYmlsaXR5IGZvciB0aGlzIHBhdGNoLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMzNhYTcxNGJkN2E4OWM0MmRmNzZjM2EwMjk5MTdkYTYxMTk4OTVhYgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDggMDE6MjA6MDcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9hc3NvY2lvbGEuYyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCmluZGV4IDViMGFlNjE2ZTFmZjkuLjczN2Y4ZWE5ZDQ4MmYgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCkBAIC0xNzEzLDYgJiM0MzsxNzEzLDggQEAgdm9pZCBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bihzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYykKIAlzY3RwX2Fzc29jX2ZyZWVfYXNjb25mX3F1ZXVlKGFzb2MpOwogCiAJLyogRnJlZSBhbnkgY2FjaGVkIEFTQ09ORiBjaHVuay4gKi8KLQlpZiAoYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmYpCiYjNDM7CWlmIChhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZikgewogCQlzY3RwX2NodW5rX2ZyZWUoYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmYpOwomIzQzOwkJYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmYgPSBOVUxMOwomIzQzOwl9CiB9CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCmluZGV4IDcwOGZhMDdkNWZmZmMuLjNhOGUxNmIyOTY2MGMgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jCkBAIC02MTQ1LDggJiM0Mzs2MTQ1LDEyIEBAIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZSgKIAkJCQkJc3RydWN0IHNjdHBfY21kX3NlcSAqY29tbWFuZHMpCiB7CiAJc3RydWN0IHNjdHBfY2h1bmsgKmNodW5rID0gYXNvYy0mZ3Q7YWRkaXBfbGFzdF9hc2NvbmY7Ci0Jc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBjaHVuay0mZ3Q7dHJhbnNwb3J0OwomIzQzOwlzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydDsKJiM0MzsKJiM0MzsJaWYgKCFjaHVuaykKJiM0MzsJCXJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7CiAKJiM0MzsJdHJhbnNwb3J0ID0gY2h1bmstJmd0O3RyYW5zcG9ydDsKIAlTQ1RQX0lOQ19TVEFUUyhuZXQsIFNDVFBfTUlCX1Q0X1JUT19FWFBJUkVEUyk7CiAKIAkvKiBBRERJUCA0LjEgQjEpIEluY3JlbWVudCB0aGUgZXJyb3IgY291bnRlcnMgYW5kIHBlcmZvcm0gcGF0aCBmYWlsdXJlCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wOCAwMToyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+a21zYW4tZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzA3CgkJCQkJCQlvdXRwdXQ6IDEzMQoJCQkJCQkJdGhvdWdodHM6IDQyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNDVFAgQXNzb2NpYXRpb24gVGVhcmRvd24gYW5kIEFTQ09ORiBIYW5kbGluZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgdG91Y2hpbmcgYG5ldC9zY3RwL2Fzc29jaW9sYS5jYCBhbmQgYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gVGhlIGZpcnN0IHBhcnQsIGluIGBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bmAsIGlzIGFkZHJlc3NpbmcgYSBjbGFzc2ljIHVzZS1hZnRlci1mcmVlIGlzc3VlLiBUaGV5JiMzOTtyZSBmcmVlaW5nIGBhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZmAgYnV0IHdlcmVuJiMzOTt0IG51bGxpbmcgaXQgb3V0IGltbWVkaWF0ZWx5IGFmdGVyd2FyZC4gVGhlIGZpeCBpcyBhIHNpbXBsZSwgYnV0IGNydWNpYWwsIGBhc29jLSZndDthZGRpcF9sYXN0X2FzY29uZiA9IE5VTEw7YCBhZnRlciB0aGUgYHNjdHBfY2h1bmtfZnJlZSgpYC4gVGhhdCYjMzk7cyBhIGdvb2QgY2F0Y2gsIHByZXZlbnRpbmcgcG90ZW50aWFsIG1lbW9yeSBjb3JydXB0aW9uLgoKVGhlIHNlY29uZCBwYXJ0LCBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLCBkZWFscyB3aXRoIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZS4gVGhlIGNvZGUgd2FzIGFzc3VtaW5nIHRoYXQgYGFzb2MtJmd0O2FkZGlwX2xhc3RfYXNjb25mYCB3b3VsZCBhbHdheXMgaGF2ZSBhIHZhbHVlLCBidXQgbm93IHRoZXJlJiMzOTtzIGEgY2hlY2s6IGBpZiAoIWNodW5rKSByZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FO2AuIFRoaXMgaXMgY3JpdGljYWwuIFdpdGhvdXQgdGhhdCBjaGVjaywgdGhlIGNvZGUgY291bGQgdHJ5IHRvIGRlcmVmZXJlbmNlIGEgTlVMTCBwb2ludGVyLCBsZWFkaW5nIHRvIGEgY3Jhc2guCgpFc3NlbnRpYWxseSwgd2UmIzM5O3ZlIGdvdCBhIFVBRiBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZXNlIGFyZSBib3RoIG1lbW9yeSBzYWZldHkgaXNzdWVzLCByaWdodD8gS0FTQU4gd2lsbCBzbmFnIHRoZSBVQUYgYW5kIHRoZSBrZXJuZWwmIzM5O3MgYnVpbHQtaW4gY2hlY2tzIHdpbGwgY2F0Y2ggdGhlIE5VTEwgZGVyZWZlcmVuY2UuIEkmIzM5O20gbm90IHNlZWluZyBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgYmVpbmcgcmVhZCBvciBsZWFrZWQgaGVyZSwgc28gbm8gS01TQU4gaXMgbmVlZGVkLiBMZXQgbWUganVzdCBjb25maXJtLi4uIHRoZSBwYXRjaCBmaXhlcyBhIFVBRiBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZSBmb3JtZXIgaXMgY2F1Z2h0IGJ5IEtBU0FOLCBhbmQgdGhlIGxhdHRlciBieSBzdGFuZGFyZCBrZXJuZWwgbWVjaGFuaXNtcy4gTm8gdW5pbml0aWFsaXplZCBtZW1vcnksIHNvIE5lZWRzS01TQU4gPSBmYWxzZS4gWWVwLCBtYWtlcyBzZW5zZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDggMDE6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSB1c2UtYWZ0ZXItZnJlZSAoYnkgc2V0dGluZyBhIGZyZWVkIHBvaW50ZXIgdG8gTlVMTCkgYW5kIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIChieSBjaGVja2luZyBpZiB0aGUgcG9pbnRlciBpcyBOVUxMIGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0KS4gQm90aCBvZiB0aGVzZSBpc3N1ZXMgYXJlIG1lbW9yeSBzYWZldHkgYnVncyB0aGF0IGFyZSBlZmZlY3RpdmVseSBjYXVnaHQgYnkgS0FTQU4gKGZvciB1c2UtYWZ0ZXItZnJlZSkgYW5kIHN0YW5kYXJkIGtlcm5lbCBjcmFzaCBtZWNoYW5pc21zIChmb3IgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcykuIFRoZSBjaGFuZ2VzIGRvIG5vdCBpbnRyb2R1Y2Ugb3IgZXhwb3NlIGFueSB1bmluaXRpYWxpemVkIG1lbW9yeSByZWFkcyBvciBpbmZvcm1hdGlvbiBsZWFrcyB0byB1c2VyIHNwYWNlLCBzbyBhIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaXMgbm90IG5lY2Vzc2FyeS4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgdXNlLWFmdGVyLWZyZWUgKGJ5IHNldHRpbmcgYSBmcmVlZCBwb2ludGVyIHRvIE5VTEwpIGFuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAoYnkgY2hlY2tpbmcgaWYgdGhlIHBvaW50ZXIgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdCkuIEJvdGggb2YgdGhlc2UgaXNzdWVzIGFyZSBtZW1vcnkgc2FmZXR5IGJ1Z3MgdGhhdCBhcmUgZWZmZWN0aXZlbHkgY2F1Z2h0IGJ5IEtBU0FOIChmb3IgdXNlLWFmdGVyLWZyZWUpIGFuZCBzdGFuZGFyZCBrZXJuZWwgY3Jhc2ggbWVjaGFuaXNtcyAoZm9yIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMpLiBUaGUgY2hhbmdlcyBkbyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlciBzcGFjZSwgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjA3Ljk4ODA5ODIxN1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNjU0MjU0NDIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93blwiLFxuICAgIFwic2N0cF9zZl90NF90aW1lcl9leHBpcmVcIlxuICBdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgdXNlLWFmdGVyLWZyZWUgKGJ5IHNldHRpbmcgYSBmcmVlZCBwb2ludGVyIHRvIE5VTEwpIGFuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAoYnkgY2hlY2tpbmcgaWYgdGhlIHBvaW50ZXIgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdCkuIEJvdGggb2YgdGhlc2UgaXNzdWVzIGFyZSBtZW1vcnkgc2FmZXR5IGJ1Z3MgdGhhdCBhcmUgZWZmZWN0aXZlbHkgY2F1Z2h0IGJ5IEtBU0FOIChmb3IgdXNlLWFmdGVyLWZyZWUpIGFuZCBzdGFuZGFyZCBrZXJuZWwgY3Jhc2ggbWVjaGFuaXNtcyAoZm9yIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMpLiBUaGUgY2hhbmdlcyBkbyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlciBzcGFjZSwgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBTQ1RQIHByb3RvY29sIGJ5IHByb3Blcmx5IGNsZWFyaW5nIGBhc29jLVxcdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjA3Ljk4ODEwMzcwNloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYyNTEyMDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzNhYTcxNGJkN2E4OWM0MmRmNzZjM2EwMjk5MTdkYTYxMTk4OTVhYlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEF1ZyA4IDAxOjIwOjA3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9sYS5jIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmNcXG5pbmRleCA1YjBhZTYxNmUxZmY5Li43MzdmOGVhOWQ0ODJmIDEwMDY0NFxcbi0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jXFxuKysrIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmNcXG5AQCAtMTcxMyw2ICsxNzEzLDggQEAgdm9pZCBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bihzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYylcXG4gXFx0c2N0cF9hc3NvY19mcmVlX2FzY29uZl9xdWV1ZShhc29jKTtcXG4gXFxuIFxcdC8qIEZyZWUgYW55IGNhY2hlZCBBU0NPTkYgY2h1bmsuICovXFxuLVxcdGlmIChhc29jLVxcdTAwM2VhZGRpcF9sYXN0X2FzY29uZilcXG4rXFx0aWYgKGFzb2MtXFx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKSB7XFxuIFxcdFxcdHNjdHBfY2h1bmtfZnJlZShhc29jLVxcdTAwM2VhZGRpcF9sYXN0X2FzY29uZik7XFxuK1xcdFxcdGFzb2MtXFx1MDAzZWFkZGlwX2xhc3RfYXNjb25mID0gTlVMTDtcXG4rXFx0fVxcbiB9XFxuZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcXG5pbmRleCA3MDhmYTA3ZDVmZmZjLi4zYThlMTZiMjk2NjBjIDEwMDY0NFxcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXFxuKysrIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcXG5AQCAtNjE0NSw4ICs2MTQ1LDEyIEBAIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZShcXG4gXFx0XFx0XFx0XFx0XFx0c3RydWN0IHNjdHBfY21kX3NlcSAqY29tbWFuZHMpXFxuIHtcXG4gXFx0c3RydWN0IHNjdHBfY2h1bmsgKmNodW5rID0gYXNvYy1cXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmY7XFxuLVxcdHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0ID0gY2h1bmstXFx1MDAzZXRyYW5zcG9ydDtcXG4rXFx0c3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQ7XFxuK1xcbitcXHRpZiAoIWNodW5rKVxcbitcXHRcXHRyZXR1cm4gU0NUUF9ESVNQT1NJVElPTl9DT05TVU1FO1xcbiBcXG4rXFx0dHJhbnNwb3J0ID0gY2h1bmstXFx1MDAzZXRyYW5zcG9ydDtcXG4gXFx0U0NUUF9JTkNfU1RBVFMobmV0LCBTQ1RQX01JQl9UNF9SVE9fRVhQSVJFRFMpO1xcbiBcXG4gXFx0LyogQURESVAgNC4xIEIxKSBJbmNyZW1lbnQgdGhlIGVycm9yIGNvdW50ZXJzIGFuZCBwZXJmb3JtIHBhdGggZmFpbHVyZVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDowOC40NTE0MDIxMzhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNjEyNTAyNDU5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25cIixcbiAgICBcInNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlIGluIHRoZSBTQ1RQIHByb3RvY29sIGJ5IHByb3Blcmx5IGNsZWFyaW5nIGBhc29jLVxcdTAwM2VhZGRpcF9sYXN0X2FzY29uZmAgYWZ0ZXIgZnJlZWluZyBpdCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCBhZGRpbmcgYSBudWxsIGNoZWNrIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDMzYWE3MTRiZDdhODljNDJkZjc2YzNhMDI5OTE3ZGE2MTE5ODk1YWJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyA4IDAxOjIwOjA3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMgYi9uZXQvc2N0cC9hc3NvY2lvbGEuY1xuaW5kZXggNWIwYWU2MTZlMWZmOS4uNzM3ZjhlYTlkNDgyZiAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jXG4rKysgYi9uZXQvc2N0cC9hc3NvY2lvbGEuY1xuQEAgLTE3MTMsNiArMTcxMyw4IEBAIHZvaWQgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpXG4gXHRzY3RwX2Fzc29jX2ZyZWVfYXNjb25mX3F1ZXVlKGFzb2MpO1xuIFxuIFx0LyogRnJlZSBhbnkgY2FjaGVkIEFTQ09ORiBjaHVuay4gKi9cbi1cdGlmIChhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKVxuK1x0aWYgKGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYpIHtcbiBcdFx0c2N0cF9jaHVua19mcmVlKGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYpO1xuK1x0XHRhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mID0gTlVMTDtcbitcdH1cbiB9XG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuaW5kZXggNzA4ZmEwN2Q1ZmZmYy4uM2E4ZTE2YjI5NjYwYyAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG4rKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuQEAgLTYxNDUsOCArNjE0NSwxMiBAQCBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90NF90aW1lcl9leHBpcmUoXG4gXHRcdFx0XHRcdHN0cnVjdCBzY3RwX2NtZF9zZXEgKmNvbW1hbmRzKVxuIHtcbiBcdHN0cnVjdCBzY3RwX2NodW5rICpjaHVuayA9IGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmY7XG4tXHRzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbitcdHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0O1xuK1xuK1x0aWYgKCFjaHVuaylcbitcdFx0cmV0dXJuIFNDVFBfRElTUE9TSVRJT05fQ09OU1VNRTtcbiBcbitcdHRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbiBcdFNDVFBfSU5DX1NUQVRTKG5ldCwgU0NUUF9NSUJfVDRfUlRPX0VYUElSRURTKTtcbiBcbiBcdC8qIEFERElQIDQuMSBCMSkgSW5jcmVtZW50IHRoZSBlcnJvciBjb3VudGVycyBhbmQgcGVyZm9ybSBwYXRoIGZhaWx1cmVcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjA4LjQ1MTQwMzM2OFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzMjU5Mjc2OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqU0NUUCBCdWcgRml4IEludmVzdGlnYXRpb24qKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGBuZXQvc2N0cC9hc3NvY2lvbGEuY2AgYW5kIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AuIEZyb20gYSBxdWljayBnbGFuY2UsIGl0IGxvb2tzIGxpa2UgYSB1c2UtYWZ0ZXItZnJlZSBvciBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIFNDVFAgY29kZS4gU3BlY2lmaWNhbGx5LCB0aGUgZml4IGFkZHJlc3NlcyBhIHNjZW5hcmlvIHdoZXJlIGBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCBpcyBiZWluZyBmcmVlZCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIGFuZCB0aGVuIHBvdGVudGlhbGx5IGFjY2Vzc2VkIGxhdGVyIGluIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoZSBhZGRpdGlvbiBvZiB0aGUgYGlmICghY2h1bmspIHJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7YCBjaGVjayBjb25maXJtcyB0aGlzLiBHaXZlbiBTQ1RQJ3MgcG90ZW50aWFsIHJlYWNoIGFuZCBmdXp6YWJpbGl0eSwgdGhpcyBpcyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byBsb29rIGludG8uXG5cbk15IG5leHQgc3RlcCBpcyB0byBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgaWRlbnRpZnkgdGhlIGtleSBmdW5jdGlvbnMgdG8gZXhhbWluZSBtb3JlIGNsb3NlbHkuIEl0IGxvb2tzIGxpa2UgdGhlIHJlbGV2YW50IGZ1bmN0aW9ucyBhcmUgYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBhbmQgYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYCwgYXMgdGhlIHBhdGNoIGRpcmVjdGx5IG1vZGlmaWVzIHRoZW0uIEknbGwgbmVlZCB0byBjb25maXJtIHRoZSBleGFjdCBjb25maWcgbmFtZSwgd2hpY2ggSSB0aGluayBpcyBgSVBfU0NUUGAsIGJ1dCBpdCdzIGJlc3QgdG8gZG91YmxlLWNoZWNrIGBuZXQvc2N0cC9LY29uZmlnYCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIE9uY2UgSSBoYXZlIHRoZSBjb3JyZWN0IGNvbmZpZywgSSBjYW4gYmVnaW4gdHJhY2luZyB0aGUgY29kZSBleGVjdXRpb24gZmxvdyBhbmQgaWRlbnRpZnkgcG9zc2libGUgdHJpZ2dlciBzY2VuYXJpb3MgZm9yIHRoaXMgYnVnLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzEwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDhUMDE6MjA6MTIuNzc3MzM0NDY4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3NDEzMjk1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUF9TQ1RQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvS2NvbmZpZy01LVxcbm5ldC9zY3RwL0tjb25maWc6NjptZW51Y29uZmlnIElQX1NDVFBcXG5uZXQvc2N0cC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBTQ1RQIFByb3RvY29sXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoxMi44MjQ3NTQ4ODNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDA5ODA2MzI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipBbmFseXppbmcgU0NUUCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgSSdtIGxvb2tpbmcgYXQgdGhpcyBjb25maWd1cmF0aW9uLCBpdCdzIGZsYWdnZWQgYXMgYElQX1NDVFBgLiBNeSBpbW1lZGlhdGUgY29uY2VybiwgYXMgYWx3YXlzIHdoZW4gZGVhbGluZyB3aXRoIFNDVFAsIGlzIGl0cyBhc3luY2hyb25vdXMgbmF0dXJlIGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9uIHJlc291cmNlIG1hbmFnZW1lbnQuIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgbmF0dXJlIG9mIHRoZSBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gIHBhcmFtZXRlci4gSXMgaXQgYSBzdGF0aWMgc2V0dGluZywgb3Igc29tZXRoaW5nIHRoYXQncyBoYW5kbGVkIGR5bmFtaWNhbGx5PyBLbm93aW5nIHRoaXMgaXMgKmNydWNpYWwqIHRvIHVuZGVyc3RhbmQgaG93IGFnZ3Jlc3NpdmVseSB0aGUgc3lzdGVtIGlzIGdvaW5nIHRvIHRlYXIgZG93biBxdWV1ZXMgcmVsYXRlZCB0byBBU0NPTkYgZXZlbnRzLiBBIHN0YXRpY2FsbHkgZGVmaW5lZCB2YWx1ZSBzdWdnZXN0cyBhIHBvdGVudGlhbGx5IHJpZ2lkIGFwcHJvYWNoLCB3aGVyZWFzIGEgZHluYW1pYyBzZXR0aW5nIGltcGxpZXMgYSBtb3JlIGFkYXB0aXZlIGFuZCBwb3RlbnRpYWxseSBtb3JlIGVmZmljaWVudCBzeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NTYsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoxNi4yMzQ1NjQ0MTFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkzNTA0MTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidm9pZCBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93blwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvYXNzb2Npb2xhLmM9MTY4Nj1zdHJ1Y3Qgc2N0cF9jaHVuayAqc2N0cF9hc3NvY19sb29rdXBfYXNjb25mX2FjayhcXG4tLVxcbm5ldC9zY3RwL2Fzc29jaW9sYS5jLTE3MDYtXFxubmV0L3NjdHAvYXNzb2Npb2xhLmM6MTcwNzp2b2lkIHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duKHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jKVxcbm5ldC9zY3RwL2Fzc29jaW9sYS5jLTE3MDgte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoxNi4yODM5MjI1MTZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDYxMTU0MjQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqTmF2aWdhdGluZyB0aGUgRHluYW1pYyBMYW5kc2NhcGUqKlxuXG5BbHJpZ2h0LCBzbyB0aGUgc2l0dWF0aW9uIGlzbid0IHN0YXRpYy4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSB3ZSBuZWVkIHRvIGJlIHRoaW5raW5nIGFib3V0IHNvbWV0aGluZyB3aXRoIG1vdmVtZW50LCBzb21ldGhpbmcgdGhhdCBjaGFuZ2VzIG92ZXIgdGltZS4gR2l2ZW4gdGhhdCwgbGV0J3MgemVybyBpbiBvbiBhIHBvdGVudGlhbCBwb2ludCBvZiBpbnRlcmVzdC4gTXkgZ3V0IHJlYWN0aW9uIGlzIHRvIGNoZWNrIGBzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZWAuIFRoYXQgZnVuY3Rpb24gaXMgcHJvYmFibHkgdGhlIGtleSwgZ2l2ZW4gdGhhdCB3ZSBhcmUgZGlzY3Vzc2luZyBhIG5vbi1zdGF0aWMgc2l0dWF0aW9uIGFuZCB0aGlzIHBhcnRpY3VsYXIgdGltZXIgaGFzIHRoZSB3b3JkIFwiZXhwaXJlXCIgaW4gaXRzIG5hbWUuIEl0IGlzIGxpa2VseSB0aGF0IHRoaXMgcGFydCBvZiB0aGUgY29kZSBjb3VsZCBiZSByZXNwb25zaWJsZSBmb3Igc29tZXRoaW5nIGR5bmFtaWMgbGlrZSBjaGFuZ2luZyBzdGF0ZSBvciB0cmlnZ2VyaW5nIGV2ZW50cyBhdCBhIHNwZWNpZmljIHRpbWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMTgsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoxOS4zNDUwNzk2MDhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk1MzE5NDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYz02MDY4PWVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX3QyX3RpbWVyX2V4cGlyZShcXG4tLVxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTYxMzgtICovXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmM6NjEzOTplbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90NF90aW1lcl9leHBpcmUoXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNjE0MC1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbmV0ICpuZXQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjE5LjM5NDYxODQxM1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUxMDE5Njc1MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0NUUCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdGFyZ2V0aW5nIHNvbWUgcG90ZW50aWFsbHkgbmFzdHkgbWVtb3J5IGVycm9ycyBpbiB0aGUgU0NUUCBwcm90b2NvbC4gSXQncyBhZGRyZXNzaW5nIHR3byBzcGVjaWZpYyBhcmVhcywgYm90aCBvZiB3aGljaCBhcmUgY3JpdGljYWwgZm9yIHJlbGlhYmlsaXR5LiBMZXQgbWUgYnJlYWsgaXQgZG93bjpcblxuRmlyc3QsIHRoZXkncmUgY2xlYW5pbmcgdXAgYSBkYW5nbGluZyBwb2ludGVyIGlzc3VlIHJlbGF0ZWQgdG8gYGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmZgLiAgSXQgbG9va3MgbGlrZSBhZnRlciB0aGUgYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBmdW5jdGlvbiBydW5zIGFuZCBwcmVzdW1hYmx5IGZyZWVzIHRoZSBtZW1vcnkgYXNzb2NpYXRlZCB3aXRoIHRoYXQgcG9pbnRlciwgdGhlIGNvZGUgd2Fzbid0IGV4cGxpY2l0bHkgY2xlYXJpbmcgdGhlIHBvaW50ZXIgaXRzZWxmLiAgQSBjbGFzc2ljIHVzZS1hZnRlci1mcmVlIHNjZW5hcmlvLiBUaGlzIGlzIGEgdmVyeSBjb21tb24gYnVnLCBhbmQgZGFuZ2Vyb3VzLlxuXG5TZWNvbmQsIHRoZXkncmUgYWRkaW5nIGEgbnVsbCBjaGVjayBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLiBUaGlzIGlzIGdvb2QgZGVmZW5zaXZlIHByb2dyYW1taW5nLCBndWFyZGluZyBhZ2FpbnN0IGEgbnVsbC1wb2ludGVyIGRlcmVmZXJlbmNlLiBTb3VuZHMgbGlrZSB0aGlzIHRpbWVyIG1pZ2h0IGJlIHVzaW5nIGEgc3RhbGUgcmVmZXJlbmNlIHNvbWV0aW1lcywgc28gbm93IHRoZXJlIGlzIGEgc2FmZXR5IG5ldC5cblxuRnJvbSBhIGZ1bmN0aW9uYWwgcGVyc3BlY3RpdmUsIHRoaXMgaXMgYSBjb3JlIGxvZ2ljIGNoYW5nZSB3aXRoaW4gU0NUUCwgYW5kIHRoYXQgbWFrZXMgaXQgYWJzb2x1dGVseSBwcmltZSByZWFsIGVzdGF0ZSBmb3IgZnV6emluZy4gIEknZCBiZSBlc3BlY2lhbGx5IGtlZW4gdG8gdHJ5IGFuZCB0cmlnZ2VyIHRoZXNlIHNjZW5hcmlvcyB3aXRoIGRlbGliZXJhdGVseSBjcmFmdGVkIFNDVFAgcGFja2V0cyB0byBzZWUgaWYgd2UgY2FuIGV4cG9zZSBhbnkgb3RoZXIgZWRnZSBjYXNlcy4gIFRoZSBmb2N1cyBoZXJlIGlzIG9uIHByZXZlbnRpbmcgY3Jhc2hlcyBhbmQgZW5zdXJpbmcgZGF0YSBpbnRlZ3JpdHkuIFNvLCBpdCBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd29ydGggYSBzZWNvbmQgbG9vayB0byB0ZXN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjg3LCJPdXRwdXRUb2tlbnMiOjE1OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoyNC40OTY1ODgzOThaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3OTgzNTIwMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBfU0NUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duXCIsXG4gICAgXCJzY3RwX3NmX3Q0X3RpbWVyX2V4cGlyZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIHVzZS1hZnRlci1mcmVlIG9yIG51bGwtcG9pbnRlciBkZXJlZmVyZW5jZSBpbiB0aGUgU0NUUCBwcm90b2NvbCBieSBwcm9wZXJseSBjbGVhcmluZyBgYXNvYy1cXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmZgIGFmdGVyIGZyZWVpbmcgaXQgaW4gYHNjdHBfYXNjb25mX3F1ZXVlX3RlYXJkb3duYCBhbmQgYWRkaW5nIGEgbnVsbCBjaGVjayBpbiBgc2N0cF9zZl90NF90aW1lcl9leHBpcmVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgU0NUUCBsb2dpYyBhbmQgaXMgZGVmaW5pdGVseSB3b3J0aCBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93blwiLFxuICAgIFwic2N0cF9zZl90NF90aW1lcl9leHBpcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBudWxsLXBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gdGhlIFNDVFAgcHJvdG9jb2wgYnkgcHJvcGVybHkgY2xlYXJpbmcgYGFzb2MtXFx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCBhZnRlciBmcmVlaW5nIGl0IGluIGBzY3RwX2FzY29uZl9xdWV1ZV90ZWFyZG93bmAgYW5kIGFkZGluZyBhIG51bGwgY2hlY2sgaW4gYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIGlzIGRlZmluaXRlbHkgd29ydGggZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDhUMDE6MjA6MjQuNTc2NDMwNDlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwNjU5MTMyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wOFQwMToyMDoyNC41NzY5OTM3NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo3MDY1MzQ1NTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHVzZS1hZnRlci1mcmVlIChieSBzZXR0aW5nIGEgZnJlZWQgcG9pbnRlciB0byBOVUxMKSBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgKGJ5IGNoZWNraW5nIGlmIHRoZSBwb2ludGVyIGlzIE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQpLiBCb3RoIG9mIHRoZXNlIGlzc3VlcyBhcmUgbWVtb3J5IHNhZmV0eSBidWdzIHRoYXQgYXJlIGVmZmVjdGl2ZWx5IGNhdWdodCBieSBLQVNBTiAoZm9yIHVzZS1hZnRlci1mcmVlKSBhbmQgc3RhbmRhcmQga2VybmVsIGNyYXNoIG1lY2hhbmlzbXMgKGZvciBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzKS4gVGhlIGNoYW5nZXMgZG8gbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXIgc3BhY2UsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBzZWN1cml0eSBlbmdpbmVlciBzcGVjaWFsaXppbmcgaW4ga2VybmVsIG1lbW9yeVxuZXJyb3IgZGV0ZWN0b3JzIChLQVNBTiBhbmQgS01TQU4pLiBZb3VyIGpvYiBpcyB0byByZXZpZXcgdGhlIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmRcbmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcilcbmZ1enppbmcgc2Vzc2lvbiBpbiBhZGRpdGlvbiB0byBzdGFuZGFyZCBLQVNBTiBmdXp6aW5nLlxuXG5DUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjpcbi0gU3RhbmRhcmQgS0FTQU4ga2VybmVsIGJ1aWxkcyAodXBzdHJlYW0tYXBwYXJtb3Ita2FzYW4uY29uZmlnKSBhbHJlYWR5IGVuYWJsZVxuICBhIGNvbXByZWhlbnNpdmUgc3VpdGUgb2YgZGVidWdnaW5nIHRvb2xzIGFuZCBzYW5pdGl6ZXJzLCBpbmNsdWRpbmcgS0FTQU5cbiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUFxuICAobG9ja2luZyBidWdzIGFuZCBkZWFkbG9ja3MpLCBVQi1zYW5pdGl6ZXJzLCBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gY2hlY2tzLlxuLSBLTVNBTiAoS2VybmVsTWVtb3J5U2FuaXRpemVyKSBkZXRlY3RzIHJlYWRzIG9mIFVOSU5JVElBTElaRUQgbWVtb3J5IChzdGFjaywgaGVhcCxcbiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLlxuXG5SdWxlOiBUSEVSRSBJUyBOTyBTRU5TRSBJTiBSVU5OSU5HIEEgS01TQU4gU0VTU0lPTiBJRiBBIEJVRyBDQU4gQkUgQ0FVR0hUIEJZIEtBU0FOLFxuTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy5cbkEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpbmN1cnMgc2lnbmlmaWNhbnQgcmVzb3VyY2UgY29zdHMuIFlvdSBtdXN0IE9OTFlcbnNldCBOZWVkc0tNU0FOPXRydWUgaWYgdGhlIGNvZGUgY2hhbmdlcyBpbnRyb2R1Y2Ugb3IgZXhwb3NlIFVOSU5JVElBTElaRUQgTUVNT1JZIHJpc2tzXG50aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLlxuXG5Mb29rIGhvbGlzdGljYWxseSBhdCB0aGUgcGF0Y2ggc2VyaWVzIGFuZCBzdXJyb3VuZGluZyBjb2RlLiBFdmVuIGlmIG5vIGRpcmVjdFxudW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsXG5hIHBhdGNoIG1heSBhbHRlciBjb250cm9sIGZsb3csIGJvdW5kcyBjaGVja2luZywgb3IgZGF0YSBsZW5ndGggY2FsY3VsYXRpb25zIGluIHdheXNcbnRoYXQgY2hhbmdlIGhvdyB0aGUgcmVzdCBvZiB0aGUgY29kZSBvcGVyYXRlcyBvbiBleGlzdGluZyBidWZmZXJzIChlLmcuIGFsbG93aW5nXG51bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2xcbmZsb3cpLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSxcbmNhbGxlZCBmdW5jdGlvbnMsIGFuZCBjYWxsZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj10cnVlIE9OTFkgSUYgdGhlIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXM6XG4xLiBLZXJuZWwgc3RydWN0dXJlcyBzZW50IHRvIHVzZXIgc3BhY2UgKHZpYSBjb3B5X3RvX3VzZXIsIHB1dF91c2VyLCBuZXRsaW5rIHNrYlxuICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHNcbiAgIG9yIHN0cnVjdHVyZSBwYWRkaW5nIG1pZ2h0IG5vdCBiZSBmdWxseSBpbml0aWFsaXplZC96ZXJvZWQuXG4yLiBDb25kaXRpb25hbCBsb2dpYyBvciBicmFuY2hpbmcgdGhhdCBkZXBlbmRzIG9uIHBvdGVudGlhbGx5IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzXG4gICBvciBzdHJ1Y3QgZmllbGRzLlxuMy4gQWxsb2NhdGlvbiBvciBpbml0aWFsaXphdGlvbiBvZiBjb21wbGV4IGRhdGEgc3RydWN0dXJlcyB3aGVyZSB1bmluaXRpYWxpemVkIGZpZWxkc1xuICAgY291bGQgYmUgcmVhZCBsYXRlciBpbiByZWFjaGFibGUgY29kZSBwYXRocy5cbjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzXG4gICB1bmluaXRpYWxpemVkIGJ5dGVzIG9mIGV4aXN0aW5nIGJ1ZmZlcnMuXG5cblNldCBOZWVkc0tNU0FOPWZhbHNlIElGOlxuLSBUaGUgY29kZSBjaGFuZ2VzIHByaW1hcmlseSByaXNrIG91dC1vZi1ib3VuZHMgYWNjZXNzLCBhcnJheSBvdmVyZmxvd3MsIE5VTEwgcG9pbnRlclxuICBkZXJlZmVyZW5jZXMsIGxvY2tpbmcgZGVhZGxvY2tzLCBvciB1c2UtYWZ0ZXItZnJlZSBidWdzICh0aGVzZSBhcmUgYWxyZWFkeSBjYXVnaHRcbiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLlxuLSBBbGwgc3RhY2svaGVhcCBzdHJ1Y3R1cmVzIHRvdWNoZWQgb3IgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggYXJlIGZ1bGx5IHplcm9lZFxuICBvciBpbml0aWFsaXplZCAoZS5nLiB1c2luZyA9IHswfSwgbWVtc2V0LCBremFsbG9jKSBiZWZvcmUgYmVpbmcgcmVhZCBvciBjb3BpZWQuXG4tIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy5cblxuVXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gaW5zcGVjdCB0aGUgc3Vycm91bmRpbmcgY29kZSBpZiBuZWNlc3NhcnksIHRoZW4gcHJvdmlkZVxuZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDMzYWE3MTRiZDdhODljNDJkZjc2YzNhMDI5OTE3ZGE2MTE5ODk1YWJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyA4IDAxOjIwOjA3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMgYi9uZXQvc2N0cC9hc3NvY2lvbGEuY1xuaW5kZXggNWIwYWU2MTZlMWZmOS4uNzM3ZjhlYTlkNDgyZiAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jXG4rKysgYi9uZXQvc2N0cC9hc3NvY2lvbGEuY1xuQEAgLTE3MTMsNiArMTcxMyw4IEBAIHZvaWQgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd24oc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpXG4gXHRzY3RwX2Fzc29jX2ZyZWVfYXNjb25mX3F1ZXVlKGFzb2MpO1xuIFxuIFx0LyogRnJlZSBhbnkgY2FjaGVkIEFTQ09ORiBjaHVuay4gKi9cbi1cdGlmIChhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mKVxuK1x0aWYgKGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYpIHtcbiBcdFx0c2N0cF9jaHVua19mcmVlKGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmYpO1xuK1x0XHRhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mID0gTlVMTDtcbitcdH1cbiB9XG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuaW5kZXggNzA4ZmEwN2Q1ZmZmYy4uM2E4ZTE2YjI5NjYwYyAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG4rKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuQEAgLTYxNDUsOCArNjE0NSwxMiBAQCBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl90NF90aW1lcl9leHBpcmUoXG4gXHRcdFx0XHRcdHN0cnVjdCBzY3RwX2NtZF9zZXEgKmNvbW1hbmRzKVxuIHtcbiBcdHN0cnVjdCBzY3RwX2NodW5rICpjaHVuayA9IGFzb2MtXHUwMDNlYWRkaXBfbGFzdF9hc2NvbmY7XG4tXHRzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbitcdHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0O1xuK1xuK1x0aWYgKCFjaHVuaylcbitcdFx0cmV0dXJuIFNDVFBfRElTUE9TSVRJT05fQ09OU1VNRTtcbiBcbitcdHRyYW5zcG9ydCA9IGNodW5rLVx1MDAzZXRyYW5zcG9ydDtcbiBcdFNDVFBfSU5DX1NUQVRTKG5ldCwgU0NUUF9NSUJfVDRfUlRPX0VYUElSRURTKTtcbiBcbiBcdC8qIEFERElQIDQuMSBCMSkgSW5jcmVtZW50IHRoZSBlcnJvciBjb3VudGVycyBhbmQgcGVyZm9ybSBwYXRoIGZhaWx1cmVcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA4VDAxOjIwOjI0LjU3Njk5NDU3WiIsIlNlcSI6MTMsIk5lc3RpbmciOjMsIlR5cGUiOiJsbG0iLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcwNjUzMjQzMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTQ1RQIEFzc29jaWF0aW9uIFRlYXJkb3duIGFuZCBBU0NPTkYgSGFuZGxpbmcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIHRvdWNoaW5nIGBuZXQvc2N0cC9hc3NvY2lvbGEuY2AgYW5kIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AuIFRoZSBmaXJzdCBwYXJ0LCBpbiBgc2N0cF9hc2NvbmZfcXVldWVfdGVhcmRvd25gLCBpcyBhZGRyZXNzaW5nIGEgY2xhc3NpYyB1c2UtYWZ0ZXItZnJlZSBpc3N1ZS4gVGhleSdyZSBmcmVlaW5nIGBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCBidXQgd2VyZW4ndCBudWxsaW5nIGl0IG91dCBpbW1lZGlhdGVseSBhZnRlcndhcmQuIFRoZSBmaXggaXMgYSBzaW1wbGUsIGJ1dCBjcnVjaWFsLCBgYXNvYy1cdTAwM2VhZGRpcF9sYXN0X2FzY29uZiA9IE5VTEw7YCBhZnRlciB0aGUgYHNjdHBfY2h1bmtfZnJlZSgpYC4gVGhhdCdzIGEgZ29vZCBjYXRjaCwgcHJldmVudGluZyBwb3RlbnRpYWwgbWVtb3J5IGNvcnJ1cHRpb24uXG5cblRoZSBzZWNvbmQgcGFydCwgaW4gYHNjdHBfc2ZfdDRfdGltZXJfZXhwaXJlYCwgZGVhbHMgd2l0aCBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZSBjb2RlIHdhcyBhc3N1bWluZyB0aGF0IGBhc29jLVx1MDAzZWFkZGlwX2xhc3RfYXNjb25mYCB3b3VsZCBhbHdheXMgaGF2ZSBhIHZhbHVlLCBidXQgbm93IHRoZXJlJ3MgYSBjaGVjazogYGlmICghY2h1bmspIHJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0NPTlNVTUU7YC4gVGhpcyBpcyBjcml0aWNhbC4gV2l0aG91dCB0aGF0IGNoZWNrLCB0aGUgY29kZSBjb3VsZCB0cnkgdG8gZGVyZWZlcmVuY2UgYSBOVUxMIHBvaW50ZXIsIGxlYWRpbmcgdG8gYSBjcmFzaC5cblxuRXNzZW50aWFsbHksIHdlJ3ZlIGdvdCBhIFVBRiBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZXNlIGFyZSBib3RoIG1lbW9yeSBzYWZldHkgaXNzdWVzLCByaWdodD8gS0FTQU4gd2lsbCBzbmFnIHRoZSBVQUYgYW5kIHRoZSBrZXJuZWwncyBidWlsdC1pbiBjaGVja3Mgd2lsbCBjYXRjaCB0aGUgTlVMTCBkZXJlZmVyZW5jZS4gSSdtIG5vdCBzZWVpbmcgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJlaW5nIHJlYWQgb3IgbGVha2VkIGhlcmUsIHNvIG5vIEtNU0FOIGlzIG5lZWRlZC4gTGV0IG1lIGp1c3QgY29uZmlybS4uLiB0aGUgcGF0Y2ggZml4ZXMgYSBVQUYgYW5kIGEgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLiBUaGUgZm9ybWVyIGlzIGNhdWdodCBieSBLQVNBTiwgYW5kIHRoZSBsYXR0ZXIgYnkgc3RhbmRhcmQga2VybmVsIG1lY2hhbmlzbXMuIE5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LCBzbyBOZWVkc0tNU0FOID0gZmFsc2UuIFllcCwgbWFrZXMgc2Vuc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDcsIk91dHB1dFRva2VucyI6MTMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDIxLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDhUMDE6MjA6MzEuNjQyMzIwODY3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY4NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHVzZS1hZnRlci1mcmVlIChieSBzZXR0aW5nIGEgZnJlZWQgcG9pbnRlciB0byBOVUxMKSBhbmQgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgKGJ5IGNoZWNraW5nIGlmIHRoZSBwb2ludGVyIGlzIE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQpLiBCb3RoIG9mIHRoZXNlIGlzc3VlcyBhcmUgbWVtb3J5IHNhZmV0eSBidWdzIHRoYXQgYXJlIGVmZmVjdGl2ZWx5IGNhdWdodCBieSBLQVNBTiAoZm9yIHVzZS1hZnRlci1mcmVlKSBhbmQgc3RhbmRhcmQga2VybmVsIGNyYXNoIG1lY2hhbmlzbXMgKGZvciBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzKS4gVGhlIGNoYW5nZXMgZG8gbm90IGludHJvZHVjZSBvciBleHBvc2UgYW55IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXIgc3BhY2UsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgbmVjZXNzYXJ5LlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgdXNlLWFmdGVyLWZyZWUgKGJ5IHNldHRpbmcgYSBmcmVlZCBwb2ludGVyIHRvIE5VTEwpIGFuZCBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAoYnkgY2hlY2tpbmcgaWYgdGhlIHBvaW50ZXIgaXMgTlVMTCBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdCkuIEJvdGggb2YgdGhlc2UgaXNzdWVzIGFyZSBtZW1vcnkgc2FmZXR5IGJ1Z3MgdGhhdCBhcmUgZWZmZWN0aXZlbHkgY2F1Z2h0IGJ5IEtBU0FOIChmb3IgdXNlLWFmdGVyLWZyZWUpIGFuZCBzdGFuZGFyZCBrZXJuZWwgY3Jhc2ggbWVjaGFuaXNtcyAoZm9yIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMpLiBUaGUgY2hhbmdlcyBkbyBub3QgaW50cm9kdWNlIG9yIGV4cG9zZSBhbnkgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlciBzcGFjZSwgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[1] Phase: Succeeded StartedAt: 2026-08-08 01:20:43 +0000 UTC FinishedAt: 2026-08-08 01:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-08 01:20:43 +0000 UTC FinishedAt: 2026-08-08 01:20:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2] Phase: Succeeded StartedAt: 2026-08-08 01:20:43 +0000 UTC FinishedAt: 2026-08-08 05:04:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-08 01:20:43 +0000 UTC FinishedAt: 2026-08-08 05:04:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","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-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-08 01:20:43 +0000 UTC FinishedAt: 2026-08-08 01:20:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-08 01:20:43 +0000 UTC FinishedAt: 2026-08-08 01:20:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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-workflowqrvnl/series-workflowqrvnl-convert-artifact-4254613957/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-08 01:20:53 +0000 UTC FinishedAt: 2026-08-08 01:41:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-08 01:20:53 +0000 UTC FinishedAt: 2026-08-08 01:41:06 +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:*3d43225a-e1ef-45a2-94e2-8f300822bf8f,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-workflowqrvnl/series-workflowqrvnl-convert-artifact-4254613957/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": "2fc68651-30d1-4690-82fd-e767939d9522", "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-workflowqrvnl/series-workflowqrvnl-build-action-2761484395/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-08 01:20:53 +0000 UTC FinishedAt: 2026-08-08 01:40:44 +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:*3d43225a-e1ef-45a2-94e2-8f300822bf8f,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-workflowqrvnl/series-workflowqrvnl-convert-artifact-4254613957/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": "2fc68651-30d1-4690-82fd-e767939d9522", "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-workflowqrvnl/series-workflowqrvnl-build-action-2761484395/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-08 01:41:06 +0000 UTC FinishedAt: 2026-08-08 01:41:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-08 01:41:06 +0000 UTC FinishedAt: 2026-08-08 01:41:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-08 01:41:06 +0000 UTC FinishedAt: 2026-08-08 01:41:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-08 01:41:06 +0000 UTC FinishedAt: 2026-08-08 01:41:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","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-workflowqrvnl/series-workflowqrvnl-convert-artifact-3499821216/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-08 01:41:17 +0000 UTC FinishedAt: 2026-08-08 01:42:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-08 01:41:17 +0000 UTC FinishedAt: 2026-08-08 01:42:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2fc68651-30d1-4690-82fd-e767939d9522,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-workflowqrvnl/series-workflowqrvnl-build-action-2761484395/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-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-08 01:42:57 +0000 UTC FinishedAt: 2026-08-08 01:42:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-08 01:42:57 +0000 UTC FinishedAt: 2026-08-08 01:42:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-08 01:42:57 +0000 UTC FinishedAt: 2026-08-08 01:59:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-08 01:42:57 +0000 UTC FinishedAt: 2026-08-08 01:59:40 +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:*3d43225a-e1ef-45a2-94e2-8f300822bf8f,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-workflowqrvnl/series-workflowqrvnl-convert-artifact-3499821216/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": "3919e547-8796-4b01-9201-1d3eb1a925f8", "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-workflowqrvnl/series-workflowqrvnl-build-action-4173069916/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-08 01:42:57 +0000 UTC FinishedAt: 2026-08-08 01:59:30 +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:*3d43225a-e1ef-45a2-94e2-8f300822bf8f,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-workflowqrvnl/series-workflowqrvnl-convert-artifact-3499821216/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": "3919e547-8796-4b01-9201-1d3eb1a925f8", "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-workflowqrvnl/series-workflowqrvnl-build-action-4173069916/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-08 01:59:40 +0000 UTC FinishedAt: 2026-08-08 01:59:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-08 01:59:40 +0000 UTC FinishedAt: 2026-08-08 01:59:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-08 01:59:40 +0000 UTC FinishedAt: 2026-08-08 02:01:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-08 01:59:40 +0000 UTC FinishedAt: 2026-08-08 02:01:38 +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:*3919e547-8796-4b01-9201-1d3eb1a925f8,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-workflowqrvnl/series-workflowqrvnl-build-action-4173069916/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-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-08 02:01:42 +0000 UTC FinishedAt: 2026-08-08 05:04:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-08 02:01:42 +0000 UTC FinishedAt: 2026-08-08 05:04:32 +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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"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:*2fc68651-30d1-4690-82fd-e767939d9522,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3919e547-8796-4b01-9201-1d3eb1a925f8,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-workflowqrvnl/series-workflowqrvnl-build-action-2761484395/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-workflowqrvnl/series-workflowqrvnl-build-action-4173069916/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-08 02:01:42 +0000 UTC FinishedAt: 2026-08-08 02:01:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-08 02:01:42 +0000 UTC FinishedAt: 2026-08-08 02:01:46 +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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"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-workflowqrvnl/series-workflowqrvnl-convert-artifact-923727865/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-08 02:01:42 +0000 UTC FinishedAt: 2026-08-08 02:01:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-08 02:01:42 +0000 UTC FinishedAt: 2026-08-08 02:01:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-08 02:01:42 +0000 UTC FinishedAt: 2026-08-08 02:01:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-08 02:01:52 +0000 UTC FinishedAt: 2026-08-08 05:04:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowqrvnl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"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":["sctp_asconf_queue_teardown","sctp_sf_t4_timer_expire"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3dbb44d88b1e94dd31fe43588af7437b34b44d56","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"ed27fea8-b284-4ede-b191-37c8ecbec109","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-08 02:01:52 +0000 UTC FinishedAt: 2026-08-08 05:04:22 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2fc68651-30d1-4690-82fd-e767939d9522,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3919e547-8796-4b01-9201-1d3eb1a925f8,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-workflowqrvnl/series-workflowqrvnl-build-action-2761484395/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-workflowqrvnl/series-workflowqrvnl-build-action-4173069916/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-workflowqrvnl/series-workflowqrvnl-convert-artifact-923727865/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,}