Name: series-workflowvfjw7 Phase: Succeeded StartedAt: 2026-07-23 15:11:33 +0000 UTC FinishedAt: 2026-07-23 20:08:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[0] Phase: Succeeded StartedAt: 2026-07-23 15:11:33 +0000 UTC FinishedAt: 2026-07-23 15:35:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[0].run-triage Phase: Succeeded StartedAt: 2026-07-23 15:11:33 +0000 UTC FinishedAt: 2026-07-23 15:35:52 +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": "f43ee0c0730d6191629b5ee1ceae27b1ebfdc047", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NET_DROP_MONITOR" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "f43ee0c0730d6191629b5ee1ceae27b1ebfdc047", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NET_DROP_MONITOR" ], "series_id": "adc74fd4-0a09-492b-9af2-25faec967a5b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "net_dm_packet_trace_kfree_skb_hit", "net_dm_packet_report_size", "net_dm_hw_packet_report_size", "net_dm_hw_trap_packet_probe" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVF9EUk9QX01PTklUT1ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXQmIzM0OywKICAgICYjMzQ7bmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZSYjMzQ7LAogICAgJiMzNDtuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplJiMzNDssCiAgICAmIzM0O25ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJ5IG1vdmluZyBgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZWAgYWZ0ZXIgYHU2NF9zdGF0c191cGRhdGVfZW5kYCB0byBwcmV2ZW50IElSUSByZWVudHJhbmN5IGR1cmluZyBzdGF0cyB1cGRhdGUuIEl0IGFsc28gZml4ZXMgbmV0bGluayBtZXNzYWdlIHNpemUgY2FsY3VsYXRpb24gZm9yIDY0LWJpdCBhdHRyaWJ1dGVzIGJ5IHVzaW5nIGBubGFfdG90YWxfc2l6ZV82NGJpdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIGRyb3AgbW9uaXRvciBzdWJzeXN0ZW0gdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciBtZW1vcnkgY29ycnVwdGlvbiAoZS5nLiBmcm9tIGluY29ycmVjdCBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZXMpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYjk1N2IyZDhkZDM4NDZhYWJiYjJkMWMwZTQ4NDEzYTVmY2M1NjU0ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIzIDE1OjM1OjE0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jIGIvbmV0L2NvcmUvZHJvcF9tb25pdG9yLmNcbmluZGV4IDJiZjNjYWI1ZTU1N2ExLi44ODAwYTIxZGVkMDg0MCAxMDA2NDRcbi0tLSBhL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvY29yZS9kcm9wX21vbml0b3IuY1xuQEAgLTUzMCwxMCAmIzQzOzUzMCwxMCBAQCBzdGF0aWMgdm9pZCBuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXQodm9pZCAqaWdub3JlLFxuIFx0cmV0dXJuO1xuIFxuIHVubG9ja19mcmVlOlxuLVx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkYXRhLVx1MDAzZWRyb3BfcXVldWUubG9jaywgZmxhZ3MpO1xuIFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZkYXRhLVx1MDAzZXN0YXRzLnN5bmNwKTtcbiBcdHU2NF9zdGF0c19pbmMoXHUwMDI2ZGF0YS1cdTAwM2VzdGF0cy5kcm9wcGVkKTtcbiBcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNmRhdGEtXHUwMDNlc3RhdHMuc3luY3ApO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2ZGF0YS1cdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcbiBcdGNvbnN1bWVfc2tiKG5za2IpO1xuIH1cbiBcbkBAIC01NjYsMTMgJiM0Mzs1NjYsMTMgQEAgc3RhdGljIHNpemVfdCBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplKHNpemVfdCBwYXlsb2FkX2xlbilcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9PUklHSU4gKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTE2KSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9QQyAqL1xuLVx0ICAgICAgIG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKSAmIzQzO1xuJiM0MztcdCAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9TWU1CT0wgKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShORVRfRE1fTUFYX1NZTUJPTF9MRU4gJiM0MzsgMSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9JTl9QT1JUICovXG4gXHQgICAgICAgbmV0X2RtX2luX3BvcnRfc2l6ZSgpICYjNDM7XG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfVElNRVNUQU1QICovXG4tXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICYjNDM7XG4mIzQzO1x0ICAgICAgIG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKSAmIzQzO1xuIFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX09SSUdfTEVOICovXG4gXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICYjNDM7XG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfUFJPVE8gKi9cbkBAIC03NjgsNyAmIzQzOzc2OCw3IEBAIG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuLFxuIFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX0ZMT1dfQUNUSU9OX0NPT0tJRSAqL1xuIFx0ICAgICAgIG5ldF9kbV9mbG93X2FjdGlvbl9jb29raWVfc2l6ZShod19tZXRhZGF0YSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9USU1FU1RBTVAgKi9cbi1cdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTY0KSkgJiM0MztcbiYjNDM7XHQgICAgICAgbmxhX3RvdGFsX3NpemVfNjRiaXQoc2l6ZW9mKHU2NCkpICYjNDM7XG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR19MRU4gKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTMyKSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9QUk9UTyAqL1xuQEAgLTEwMDEsMTAgJiM0MzsxMDAxLDEwIEBAIG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZSh2b2lkICppZ25vcmUsIGNvbnN0IHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLFxuIFx0cmV0dXJuO1xuIFxuIHVubG9ja19mcmVlOlxuLVx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZod19kYXRhLVx1MDAzZWRyb3BfcXVldWUubG9jaywgZmxhZ3MpO1xuIFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZod19kYXRhLVx1MDAzZXN0YXRzLnN5bmNwKTtcbiBcdHU2NF9zdGF0c19pbmMoXHUwMDI2aHdfZGF0YS1cdTAwM2VzdGF0cy5kcm9wcGVkKTtcbiBcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNmh3X2RhdGEtXHUwMDNlc3RhdHMuc3luY3ApO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2aHdfZGF0YS1cdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcbiBcdG5ldF9kbV9od19tZXRhZGF0YV9mcmVlKG5faHdfbWV0YWRhdGEpO1xuIGZyZWU6XG4gXHRjb25zdW1lX3NrYihuc2tiKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTozNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX0RST1BfTU9OSVRPUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdCYjMzQ7LAogICAgJiMzNDtuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplJiMzNDssCiAgICAmIzM0O25ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUmIzM0OywKICAgICYjMzQ7bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYnkgbW92aW5nIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCBhZnRlciBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIHRvIHByZXZlbnQgSVJRIHJlZW50cmFuY3kgZHVyaW5nIHN0YXRzIHVwZGF0ZS4gSXQgYWxzbyBmaXhlcyBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxjdWxhdGlvbiBmb3IgNjQtYml0IGF0dHJpYnV0ZXMgYnkgdXNpbmcgYG5sYV90b3RhbF9zaXplXzY0Yml0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBjb3JydXB0aW9uIChlLmcuIGZyb20gaW5jb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGI5NTdiMmQ4ZGQzODQ2YWFiYmIyZDFjMGU0ODQxM2E1ZmNjNTY1NGUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyMyAxNTozNToxNCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jIGIvbmV0L2NvcmUvZHJvcF9tb25pdG9yLmMKaW5kZXggMmJmM2NhYjVlNTU3YTEuLjg4MDBhMjFkZWQwODQwIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kcm9wX21vbml0b3IuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvY29yZS9kcm9wX21vbml0b3IuYwpAQCAtNTMwLDEwICYjNDM7NTMwLDEwIEBAIHN0YXRpYyB2b2lkIG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdCh2b2lkICppZ25vcmUsCiAJcmV0dXJuOwogCiB1bmxvY2tfZnJlZToKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7ZGF0YS0mZ3Q7ZHJvcF9xdWV1ZS5sb2NrLCBmbGFncyk7CiAJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmYW1wO2RhdGEtJmd0O3N0YXRzLnN5bmNwKTsKIAl1NjRfc3RhdHNfaW5jKCZhbXA7ZGF0YS0mZ3Q7c3RhdHMuZHJvcHBlZCk7CiAJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJmFtcDtkYXRhLSZndDtzdGF0cy5zeW5jcCk7CiYjNDM7CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtkYXRhLSZndDtkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTsKIAljb25zdW1lX3NrYihuc2tiKTsKIH0KIApAQCAtNTY2LDEzICYjNDM7NTY2LDEzIEBAIHN0YXRpYyBzaXplX3QgbmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZShzaXplX3QgcGF5bG9hZF9sZW4pCiAJICAgICAgIC8qIE5FVF9ETV9BVFRSX09SSUdJTiAqLwogCSAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTE2KSkgJiM0MzsKIAkgICAgICAgLyogTkVUX0RNX0FUVFJfUEMgKi8KLQkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICYjNDM7CiYjNDM7CSAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgJiM0MzsKIAkgICAgICAgLyogTkVUX0RNX0FUVFJfU1lNQk9MICovCiAJICAgICAgIG5sYV90b3RhbF9zaXplKE5FVF9ETV9NQVhfU1lNQk9MX0xFTiAmIzQzOyAxKSAmIzQzOwogCSAgICAgICAvKiBORVRfRE1fQVRUUl9JTl9QT1JUICovCiAJICAgICAgIG5ldF9kbV9pbl9wb3J0X3NpemUoKSAmIzQzOwogCSAgICAgICAvKiBORVRfRE1fQVRUUl9USU1FU1RBTVAgKi8KLQkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICYjNDM7CiYjNDM7CSAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgJiM0MzsKIAkgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR19MRU4gKi8KIAkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICYjNDM7CiAJICAgICAgIC8qIE5FVF9ETV9BVFRSX1BST1RPICovCkBAIC03NjgsNyAmIzQzOzc2OCw3IEBAIG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuLAogCSAgICAgICAvKiBORVRfRE1fQVRUUl9GTE9XX0FDVElPTl9DT09LSUUgKi8KIAkgICAgICAgbmV0X2RtX2Zsb3dfYWN0aW9uX2Nvb2tpZV9zaXplKGh3X21ldGFkYXRhKSAmIzQzOwogCSAgICAgICAvKiBORVRfRE1fQVRUUl9USU1FU1RBTVAgKi8KLQkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICYjNDM7CiYjNDM7CSAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgJiM0MzsKIAkgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR19MRU4gKi8KIAkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICYjNDM7CiAJICAgICAgIC8qIE5FVF9ETV9BVFRSX1BST1RPICovCkBAIC0xMDAxLDEwICYjNDM7MTAwMSwxMCBAQCBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmUodm9pZCAqaWdub3JlLCBjb25zdCBzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywKIAlyZXR1cm47CiAKIHVubG9ja19mcmVlOgotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtod19kYXRhLSZndDtkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTsKIAl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZhbXA7aHdfZGF0YS0mZ3Q7c3RhdHMuc3luY3ApOwogCXU2NF9zdGF0c19pbmMoJmFtcDtod19kYXRhLSZndDtzdGF0cy5kcm9wcGVkKTsKIAl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmYW1wO2h3X2RhdGEtJmd0O3N0YXRzLnN5bmNwKTsKJiM0MzsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYW1wO2h3X2RhdGEtJmd0O2Ryb3BfcXVldWUubG9jaywgZmxhZ3MpOwogCW5ldF9kbV9od19tZXRhZGF0YV9mcmVlKG5faHdfbWV0YWRhdGEpOwogZnJlZToKIAljb25zdW1lX3NrYihuc2tiKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU5NAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDQ4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaCB0byBuZXQvY29yZS9kcm9wX21vbml0b3IuYyBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSBoYXZlIGEgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIG1ha2luZyBhIGNvdXBsZSBvZiBjaGFuZ2VzIGluIGBuZXQvY29yZS9kcm9wX21vbml0b3IuY2AsIGFuZCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyB3b3J0aCB0aHJvd2luZyBzb21lIGZ1enppbmcgYXQuICBMZXQmIzM5O3Mgc2VlLCB0aGUgcGF0Y2ggdG91Y2hlcyB0d28gYXJlYXMuIEZpcnN0LCBpdCBtb3ZlcyBgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZWAgKmFmdGVyKiBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIGluIGEgY291cGxlIG9mIGZ1bmN0aW9ucywgYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAgYW5kIGBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVgLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBsaWtlbHkgYSBidWcgZml4IG9mIHNvbWUgc29ydCwgcGVyaGFwcyBhIHJhY2UgY29uZGl0aW9uIG9yIGEgcG90ZW50aWFsIGxvY2tkZXAgd2FybmluZy4gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoYXQgYHU2NF9zdGF0c191cGRhdGVfYmVnaW4vZW5kYCBwYWlyIGFuZCB3aHkgd2UgbmVlZCBwcm90ZWN0aW9uIGFyb3VuZCB0aGVtLiAgSXQmIzM5O3MgcHJvYmFibHkgdG8gbWFrZSB0aGUgc3RhdHMgdXBkYXRlIHdpdGggdGhlIGxvY2ssIHRob3VnaCBJIGtub3cgdGhvc2UgZnVuY3Rpb25zIGRvbiYjMzk7dCAqc3RyaWN0bHkqIG5lZWQgdGhlIHNwaW5sb2NrIGlmIHRoZXkgYXJlIHBlci1DUFUuLi4gYnV0IHdhaXQsIHRoZSBgZGF0YS0mZ3Q7c3RhdHMuc3luY3BgIG1pZ2h0IG5lZWQgcHJvdGVjdGlvbiBpZiBtdWx0aXBsZSBDUFVzIGNhbiBoaXQgdGhlIHNhbWUgYGRhdGFgISBIb3dldmVyLCB0aGUgYGRhdGFgIGl0c2VsZiBpcyBhY3R1YWxseSBgJmFtcDtwZXJfY3B1KG5ldF9kbV9kYXRhLCBjcHUpYCBzbyBpdCAqaXMqIHBlci1jcHUuIEJ1dCwgY291bGQgYW4gaW50ZXJydXB0IHBvdGVudGlhbGx5IGhpdCB0aGUgc2FtZSBtZW1vcnk/IEhtbW0sICBgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZWAgcmUtZW5hYmxlcyBpbnRlcnJ1cHRzLiBJZiB0aG9zZSB3ZXJlIGVuYWJsZWQgKmJlZm9yZSogYHU2NF9zdGF0c191cGRhdGVfYmVnaW5gLCBhbiBpbnRlcnJ1cHQgKmNvdWxkKiBjb21lIGluIGFuZCB0cnkgdG8gdXBkYXRlIHRoZSBzYW1lIHN0YXRzLCBsZWFkaW5nIHRvIG5lc3RlZCBgdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbmAgY2FsbHMg4oCTIHdoaWNoIGlzIGRlZmluaXRlbHkgYSBuby1ubyEgU28sIG1vdmluZyB0aGF0IHVubG9jayBjYWxsICphZnRlciogdGhlIHVwZGF0ZSBjYWxsIGlzIGFic29sdXRlbHkgcHJvdGVjdGluZyBhZ2FpbnN0IElSUXMuIFRoYXQgbWFrZXMgc2Vuc2UuCgpTZWNvbmRseSwgaXQmIzM5O3MgY2hhbmdpbmcgYG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKWAgdG8gYG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKWAgaW4gYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgIGFuZCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAuIFRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgY2hhbmdlIHJlbGF0ZWQgdG8gbmV0bGluayBhdHRyaWJ1dGUgc2l6ZSBjYWxjdWxhdGlvbnMgZm9yIDY0LWJpdCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHByb3BlciBwYWRkaW5nIGZvciB0aGVzZSwgc28gdGhhdCYjMzk7cyBhbGwgYWJvdXQgbWFraW5nIHN1cmUgdGhlIGRhdGEgc3RydWN0dXJlcyBhcmUgYWxpZ25lZCBjb3JyZWN0bHkuCgpBbHJpZ2h0LCBzbyB0aGlzIGlzIGZ1bmN0aW9uYWwgY29kZSBpbiB0aGUgbmV0d29ya2luZyBjb3JlLCBzcGVjaWZpY2FsbHkgdGhlIGRyb3AgbW9uaXRvci4gVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIHRoaXMgY29kZSBldmVuICpyZWFjaGFibGUqPyBZZXAsIHRoZSBkcm9wIG1vbml0b3IgaXMgdGhhdCBuZXRsaW5rLWJhc2VkIHNlcnZpY2UgdGhhdCBtb25pdG9ycyBkcm9wcGVkIHBhY2tldHMuIFNvLCBob3cgY2FuIHdlIHRlc3QgdGhpcz8gV2UgY2FuIHNlbmQgbmV0bGluayBjb21tYW5kcyB0byBjb25maWd1cmUgdGhlIGRyb3AgbW9uaXRvciwgYW5kIHRoZW4gdHJpZ2dlciBzb21lIHBhY2tldCBkcm9wcyB0byBleGVyY2lzZSB0aGUgY29kZS4KCk5vdyBJIG5lZWQgdG8gZmluZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZHJvcCBtb25pdG9yLiBgbmV0L2NvcmUvZHJvcF9tb25pdG9yLmNgIGlzIGxpa2VseSBjb21waWxlZCB3aXRoIHRoZSBgQ09ORklHX05FVF9EUk9QX01PTklUT1JgIG9wdGlvbi4gTGV0IG1lIGNoZWNrIHRoZSBgbmV0L2NvcmUvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhhdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGJ1aWxkIHRoZSBtb2R1bGUgYW5kIGVuYWJsZSB0aGUgY29uZmlnLCBhbmQgdGhlbiBnZXQgdG8gZnV6emluZyBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcm9wX21vbml0b3IubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9jb3JlL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL01ha2VmaWxlPTMwPW9iai0kKENPTkZJR19UUkFDRVBPSU5UUykgJiM0Mzs9IG5ldC10cmFjZXMub1xubmV0L2NvcmUvTWFrZWZpbGU6MzE6b2JqLSQoQ09ORklHX05FVF9EUk9QX01PTklUT1IpICYjNDM7PSBkcm9wX21vbml0b3Iub1xubmV0L2NvcmUvTWFrZWZpbGUtMzItb2JqLSQoQ09ORklHX05FVF9JRUVFODAyMVFfSEVMUEVSUykgJiM0Mzs9IGllZWU4MDIxcV9oZWxwZXJzLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODc5CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBORVRfRFJPUF9NT05JVE9SYCBDb2RlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYE5FVF9EUk9QX01PTklUT1JgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGFuZCB0cnlpbmcgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZS4gVGhlIG1haW4gZnVuY3Rpb25zIHRoYXQgc3RhbmQgb3V0IGFyZTogYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAsIGBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplYCwgYG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVgLCBhbmQgYG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZWAuCgpSaWdodCwgYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAgaXMgdHJpZ2dlcmVkIGJ5IHRoZSBga2ZyZWVfc2tiYCB0cmFjZXBvaW50LCBzbyB0aGF0JiMzOTtzIGNhbGxlZCB3aGVuIGEgc29ja2V0IGJ1ZmZlciBpcyBmcmVlZC4gQW5kIGBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVgIGlzIHRyaWdnZXJlZCBmcm9tIHRoZSBgZGV2bGlua190cmFwX3JlcG9ydGAgdHJhY2Vwb2ludC4gVGhlIG90aGVyIHR3byBhcmUgc2l6ZSBjYWxjdWxhdGlvbiB1dGlsaXRpZXMgZm9yIHRoZSBuZXRsaW5rIG1lc3NhZ2VzLgoKTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uIOKAkyBhcmUgYW55IG9mIHRoZXNlIGRpcmVjdGx5IGNhbGxhYmxlIGZyb20gc3lzY2FsbHM/IE5vcGUsIG5vdCBkaXJlY3RseS4gVGhleeKAmXJlIGNhbGxlZCBpbmRpcmVjdGx5IHZpYSB0cmFjZXBvaW50cyBvciBuZXRsaW5rIG1lc3NhZ2VzLiBIb3dldmVyLCB0aGlua2luZyBsaWtlIGEgZnV6emVyLCBJIHJlYWxpemUgdGhhdCBmdXp6aW5nIHRoZSBwYWNrZXQgZHJvcHBpbmcgb3Igc2VuZGluZyB0aGUgcmVsZXZhbnQgbmV0bGluayBtZXNzYWdlcyBjb3VsZCBhYnNvbHV0ZWx5IHRyaWdnZXIgdGhlc2UgZnVuY3Rpb25zLiBTbywgZm9jdXNpbmcgb24gdGhlbSBzZWVtcyBsaWtlIGEgc29saWQgYXBwcm9hY2ggZm9yIG5vdy4KCkp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgSSBtaWdodCBiZSBtaXNzaW5nLiBHb3R0YSBjb3ZlciBhbGwgdGhlIGJhc2VzLCBvZiBjb3Vyc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkVUX0RST1BfTU9OSVRPUiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9LY29uZmlnPTM4Nj1jb25maWcgTkVUX1BLVEdFTlxuLS1cbm5ldC9LY29uZmlnLTQwMC1cbm5ldC9LY29uZmlnOjQwMTpjb25maWcgTkVUX0RST1BfTU9OSVRPUlxubmV0L0tjb25maWctNDAyLVx0dHJpc3RhdGUgXCYjMzQ7TGVnYWN5IG5ldHdvcmsgcGFja2V0IGRyb3AgYWxlcnRpbmcgc2VydmljZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1NDIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyB6ZXJvIGluIG9uIGEgZ29vZCBzeW1ib2wgZm9yIGFuYWx5c2lzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW52ZXN0aWdhdGUgYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAuIFRoZSBiZWF1dHkgb2YgdGhpcyBpcyB0aGF0IGl0JiMzOTtzIHRyaWdnZXJlZCBvbiBldmVyeSBzaW5nbGUgZHJvcHBlZCBwYWNrZXQgaWYgdGhlIGRyb3AgbW9uaXRvciBpcyBhY3RpdmUuIFRoaXMgY291bGQgYmUgYSByZWFsbHkgaG90IHBhdGgsIGVzcGVjaWFsbHkgdW5kZXIgaGVhdnkgcGFja2V0IGxvc3MuIEhvd2V2ZXIsIEkgaGF2ZSB0byByZW1lbWJlciB0aGF0IGl0JiMzOTtzIG9ubHkgYWN0aXZlIHdoZW4gZHJvcCBtb25pdG9yIGlzIGVuYWJsZWQuIFRoYXQmIzM5O3MgYSBrZXkgZGV0YWlsIHRvIGtlZXAgaW4gbWluZCBmb3IgaW50ZXJwcmV0aW5nIGFueSBwZXJmb3JtYW5jZSBkYXRhLgoKTmV4dCwgSSBuZWVkIHRvIGNvbnNpZGVyIGBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplYCBhbmQgYG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVgLiBUaG9zZSBhcmUgdGhlIGZ1bmN0aW9ucyB0aGF0IGtpY2sgaW4gd2hlbiByZXBvcnRzIGFyZSBhY3R1YWxseSBnZW5lcmF0ZWQuIFNvIG15IG5leHQgc3RlcCBpcyB0byBjYXJlZnVsbHkgZXhhbWluZSB0aGUgY2FsbCBzaXRlcyBmb3IgdGhvc2UgZnVuY3Rpb25zLiBVbmRlcnN0YW5kaW5nIHdoZW4gYW5kIHdoeSByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgd2lsbCBnaXZlIG1lIGEgYnJvYWRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jPTU0Nj1zdGF0aWMgc2l6ZV90IG5ldF9kbV9pbl9wb3J0X3NpemUodm9pZClcbi0tXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy01NTgtXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzo1NTk6c3RhdGljIHNpemVfdCBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplKHNpemVfdCBwYXlsb2FkX2xlbilcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jLTU2MC17XG4tLVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9NjkyPXN0YXRpYyB2b2lkIG5ldF9kbV9wYWNrZXRfcmVwb3J0KHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmMtNzA4LVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmM6NzA5Olx0bXNnID0gbmxtc2dfbmV3KG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUocGF5bG9hZF9sZW4pLCBHRlBfS0VSTkVMKTtcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jLTcxMC1cdGlmICghbXNnKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxMDYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIGEgTmV0d29yayBEYXRhIE1hbmFnZW1lbnQgUGFja2V0IFJlcG9ydCoqCgpPa2F5LCBzbyBgbmV0X2RtX3BhY2tldF9yZXBvcnRgIGlzIGZpcmluZyBvZmYuIFJpZ2h0IG9mZiB0aGUgYmF0LCB0aGF0IHNjcmVhbXMgJiMzNDthc3luY2hyb25vdXMgcHJvY2VzcyYjMzQ7IOKAkyBpdCYjMzk7cyBydW5uaW5nIGZyb20gZWl0aGVyIGEgd29ya3F1ZXVlIG9yIGEgdGltZXIsIHdoaWNoIG1lYW5zIGl0IGlzbiYjMzk7dCBkaXJlY3RseSB0aWVkIHRvIGEgdXNlci1zcGFjZSByZXF1ZXN0IG9yIGEgc3luY2hyb25vdXMgaW50ZXJydXB0LiBHb3R0YSBrZWVwIHRoYXQgaW4gbWluZDsgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyBhbmQgY29uY3VycmVuY3kgaXNzdWVzIGFyZSBhbHdheXMgYSBjb25jZXJuIGluIHRob3NlIGNvbnRleHRzLgoKTGV0JiMzOTtzIGRyaWxsIGRvd24gYW5kIHNlZSB3aGVyZSB0aGlzIGlzIG9yaWdpbmF0aW5nLiBUaGUgbmV4dCB0aGluZyBJJiMzOTtkIGNoZWNrIGlzIGBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVgLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBkZWJ1Z2dpbmcgc3RhcnRzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGUgbmV0d29yayBoYXJkd2FyZSBpcyBhY3R1YWxseSByZXBvcnRpbmcuIFRoZW4sIEkgY2FuIHN0YXJ0IHRvIHVuZGVyc3RhbmQgdGhlIGNoYWluIG9mIGV2ZW50cyB0aGF0IGxlYWRzIHRvIGBuZXRfZG1fcGFja2V0X3JlcG9ydGAuIFRoaXMgaXMgY3JpdGljYWwgZm9yIGRpYWdub3NpbmcgcGVyZm9ybWFuY2UgYm90dGxlbmVja3Mgb3IgaW50ZXJtaXR0ZW50IGVycm9ycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2NvcmUvZHJvcF9tb25pdG9yLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9OTYyPXN0YXRpYyB2b2lkXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzo5NjM6bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlKHZvaWQgKmlnbm9yZSwgY29uc3Qgc3RydWN0IGRldmxpbmsgKmRldmxpbmssXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy05NjQtXHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9MTAxMz1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kbV9hbGVydF9vcHMgbmV0X2RtX2FsZXJ0X3BhY2tldF9vcHMgPSB7XG4tLVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmMtMTAxNy1cdC5od193b3JrX2l0ZW1fZnVuY1x0PSBuZXRfZG1faHdfcGFja2V0X3dvcmssXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzoxMDE4Olx0Lmh3X3RyYXBfcHJvYmVcdFx0PSBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmUsXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy0xMDE5LX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2MDYKCQkJCQkJCW91dHB1dDogMTk5CgkJCQkJCQl0aG91Z2h0czogMzY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIERyb3AgTW9uaXRvciBTdWJzeXN0ZW0gQ2hhbmdlcyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSByZXZpZXdlZCB0aGVzZSBjaGFuZ2VzLCBhbmQgZnVuY3Rpb25hbGx5LCB0aGV5IGxvb2sgc291bmQuIFRoZSBzcGlubG9jayBmaXggaXMgY3J1Y2lhbDsgdGhhdCByYWNlIGNvbmRpdGlvbiB3aGVyZSBJUlFzIHdlcmUgZW5hYmxlZCBwcmVtYXR1cmVseSBiZWZvcmUgYHU2NF9zdGF0c191cGRhdGVfYmVnaW5gIHdhcyBhIHBvdGVudGlhbCBuaWdodG1hcmUuIFJlZW50cmFuY3kgb24gdGhlIHNhbWUgQ1BVIGR1ZSB0byBhIGRyb3BwZWQgcGFja2V0IHRyaWdnZXJpbmcgYSB0cmFjZXBvaW50IGNvdWxkIGhhdmUgYmVlbiBuYXN0eS4gR29vZCB0byBzZWUgdGhhdCYjMzk7cyBhZGRyZXNzZWQuIFRoZSBgbmxhX3RvdGFsX3NpemVfNjRiaXRgIGNoYW5nZSBpcyBlcXVhbGx5IGltcG9ydGFudDsgYSBzaW1wbGUgZml4IGJ1dCBjcml0aWNhbCB0byBjb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplIGNhbGN1bGF0aW9ucyBmb3IgdGhvc2UgNjQtYml0IGF0dHJpYnV0ZXMgd2hpY2ggd291bGQgYmUgcHJvYmxlbWF0aWMgaWYgbm90IGFsaWduZWQgY29ycmVjdGx5LgoKU2luY2UgdGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSwgaXQmIzM5O3MgZGVmaW5pdGVseSB0aW1lIHRvIGZ1enogdGhlbSB0byBiZSBzYWZlLiBJJiMzOTtsbCBmbGFnIHRoaXMgYXMgYFdvcnRoRnV6emluZz10cnVlYC4KCkZvciB0aGUgZnV6emluZywgbGV0JiMzOTtzIGZvY3VzIG9uIHRoZXNlIHNwZWNpZmljIHN5bWJvbHM6IGBuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXRgLCBgbmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZWAsIGBuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplYCwgYW5kIGBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVgLiBXYWl0LCBob2xkIG9uLiBgbmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZWAgYW5kIGBuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplYCBhcmUgc3RhdGljIGZ1bmN0aW9uczsgdGhleSYjMzk7cmUgcGVyZmVjdGx5IHNhZmUgdG8gaW5jbHVkZS4gYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAgaXMgYWxzbyBzdGF0aWMuCgpJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3MuIEkgdGhpbmsgd2Ugb25seSBuZWVkIGBORVRfRFJPUF9NT05JVE9SYCwgYnV0IGxldCYjMzk7cyBjb25maXJtLiBZZXMsIGl0JiMzOTtzIHN1ZmZpY2llbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORVRfRFJPUF9NT05JVE9SJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmV0X2RtX3BhY2tldF90cmFjZV9rZnJlZV9za2JfaGl0JiMzNDssCiAgICAmIzM0O25ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUmIzM0OywKICAgICYjMzQ7bmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZSYjMzQ7LAogICAgJiMzNDtuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBieSBtb3ZpbmcgYHNwaW5fdW5sb2NrX2lycXJlc3RvcmVgIGFmdGVyIGB1NjRfc3RhdHNfdXBkYXRlX2VuZGAgdG8gcHJldmVudCBJUlEgcmVlbnRyYW5jeSBkdXJpbmcgc3RhdHMgdXBkYXRlLiBJdCBhbHNvIGZpeGVzIG5ldGxpbmsgbWVzc2FnZSBzaXplIGNhbGN1bGF0aW9uIGZvciA2NC1iaXQgYXR0cmlidXRlcyBieSB1c2luZyBgbmxhX3RvdGFsX3NpemVfNjRiaXRgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBkcm9wIG1vbml0b3Igc3Vic3lzdGVtIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgbWVtb3J5IGNvcnJ1cHRpb24gKGUuZy4gZnJvbSBpbmNvcnJlY3QgbmV0bGluayBtZXNzYWdlIHNpemVzKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX0RST1BfTU9OSVRPUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdCYjMzQ7LAogICAgJiMzNDtuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplJiMzNDssCiAgICAmIzM0O25ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUmIzM0OywKICAgICYjMzQ7bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYnkgbW92aW5nIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCBhZnRlciBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIHRvIHByZXZlbnQgSVJRIHJlZW50cmFuY3kgZHVyaW5nIHN0YXRzIHVwZGF0ZS4gSXQgYWxzbyBmaXhlcyBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxjdWxhdGlvbiBmb3IgNjQtYml0IGF0dHJpYnV0ZXMgYnkgdXNpbmcgYG5sYV90b3RhbF9zaXplXzY0Yml0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBjb3JydXB0aW9uIChlLmcuIGZyb20gaW5jb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTozNToxNi4wMzUzNTMxMVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNTc1MjU4Njk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVF9EUk9QX01PTklUT1JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXRcIixcbiAgICBcIm5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgICBcIm5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgICBcIm5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYnkgbW92aW5nIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCBhZnRlciBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIHRvIHByZXZlbnQgSVJRIHJlZW50cmFuY3kgZHVyaW5nIHN0YXRzIHVwZGF0ZS4gSXQgYWxzbyBmaXhlcyBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxjdWxhdGlvbiBmb3IgNjQtYml0IGF0dHJpYnV0ZXMgYnkgdXNpbmcgYG5sYV90b3RhbF9zaXplXzY0Yml0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBjb3JydXB0aW9uIChlLmcuIGZyb20gaW5jb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplcykuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjE2LjAzNTM2MDJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxNzI4NjExMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGI5NTdiMmQ4ZGQzODQ2YWFiYmIyZDFjMGU0ODQxM2E1ZmNjNTY1NGVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMTU6MzU6MTQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZHJvcF9tb25pdG9yLmMgYi9uZXQvY29yZS9kcm9wX21vbml0b3IuY1xcbmluZGV4IDJiZjNjYWI1ZTU1N2ExLi44ODAwYTIxZGVkMDg0MCAxMDA2NDRcXG4tLS0gYS9uZXQvY29yZS9kcm9wX21vbml0b3IuY1xcbisrKyBiL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jXFxuQEAgLTUzMCwxMCArNTMwLDEwIEBAIHN0YXRpYyB2b2lkIG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdCh2b2lkICppZ25vcmUsXFxuIFxcdHJldHVybjtcXG4gXFxuIHVubG9ja19mcmVlOlxcbi1cXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZkYXRhLVxcdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2ZGF0YS1cXHUwMDNlc3RhdHMuc3luY3ApO1xcbiBcXHR1NjRfc3RhdHNfaW5jKFxcdTAwMjZkYXRhLVxcdTAwM2VzdGF0cy5kcm9wcGVkKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXFx1MDAyNmRhdGEtXFx1MDAzZXN0YXRzLnN5bmNwKTtcXG4rXFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2ZGF0YS1cXHUwMDNlZHJvcF9xdWV1ZS5sb2NrLCBmbGFncyk7XFxuIFxcdGNvbnN1bWVfc2tiKG5za2IpO1xcbiB9XFxuIFxcbkBAIC01NjYsMTMgKzU2NiwxMyBAQCBzdGF0aWMgc2l6ZV90IG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuKVxcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR0lOICovXFxuIFxcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTE2KSkgK1xcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfUEMgKi9cXG4tXFx0ICAgICAgIG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKSArXFxuK1xcdCAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgK1xcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfU1lNQk9MICovXFxuIFxcdCAgICAgICBubGFfdG90YWxfc2l6ZShORVRfRE1fTUFYX1NZTUJPTF9MRU4gKyAxKSArXFxuIFxcdCAgICAgICAvKiBORVRfRE1fQVRUUl9JTl9QT1JUICovXFxuIFxcdCAgICAgICBuZXRfZG1faW5fcG9ydF9zaXplKCkgK1xcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfVElNRVNUQU1QICovXFxuLVxcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTY0KSkgK1xcbitcXHQgICAgICAgbmxhX3RvdGFsX3NpemVfNjRiaXQoc2l6ZW9mKHU2NCkpICtcXG4gXFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX09SSUdfTEVOICovXFxuIFxcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTMyKSkgK1xcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfUFJPVE8gKi9cXG5AQCAtNzY4LDcgKzc2OCw3IEBAIG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuLFxcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfRkxPV19BQ1RJT05fQ09PS0lFICovXFxuIFxcdCAgICAgICBuZXRfZG1fZmxvd19hY3Rpb25fY29va2llX3NpemUoaHdfbWV0YWRhdGEpICtcXG4gXFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX1RJTUVTVEFNUCAqL1xcbi1cXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICtcXG4rXFx0ICAgICAgIG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKSArXFxuIFxcdCAgICAgICAvKiBORVRfRE1fQVRUUl9PUklHX0xFTiAqL1xcbiBcXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICtcXG4gXFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX1BST1RPICovXFxuQEAgLTEwMDEsMTAgKzEwMDEsMTAgQEAgbmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlKHZvaWQgKmlnbm9yZSwgY29uc3Qgc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuIFxcdHJldHVybjtcXG4gXFxuIHVubG9ja19mcmVlOlxcbi1cXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZod19kYXRhLVxcdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2aHdfZGF0YS1cXHUwMDNlc3RhdHMuc3luY3ApO1xcbiBcXHR1NjRfc3RhdHNfaW5jKFxcdTAwMjZod19kYXRhLVxcdTAwM2VzdGF0cy5kcm9wcGVkKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXFx1MDAyNmh3X2RhdGEtXFx1MDAzZXN0YXRzLnN5bmNwKTtcXG4rXFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2aHdfZGF0YS1cXHUwMDNlZHJvcF9xdWV1ZS5sb2NrLCBmbGFncyk7XFxuIFxcdG5ldF9kbV9od19tZXRhZGF0YV9mcmVlKG5faHdfbWV0YWRhdGEpO1xcbiBmcmVlOlxcbiBcXHRjb25zdW1lX3NrYihuc2tiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6MzU6MTYuNTUzNjIzNDQyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzIwNTY5ODAxMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUX0RST1BfTU9OSVRPUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdFwiLFxuICAgIFwibmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZVwiLFxuICAgIFwibmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZVwiLFxuICAgIFwibmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBieSBtb3ZpbmcgYHNwaW5fdW5sb2NrX2lycXJlc3RvcmVgIGFmdGVyIGB1NjRfc3RhdHNfdXBkYXRlX2VuZGAgdG8gcHJldmVudCBJUlEgcmVlbnRyYW5jeSBkdXJpbmcgc3RhdHMgdXBkYXRlLiBJdCBhbHNvIGZpeGVzIG5ldGxpbmsgbWVzc2FnZSBzaXplIGNhbGN1bGF0aW9uIGZvciA2NC1iaXQgYXR0cmlidXRlcyBieSB1c2luZyBgbmxhX3RvdGFsX3NpemVfNjRiaXRgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBkcm9wIG1vbml0b3Igc3Vic3lzdGVtIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgbWVtb3J5IGNvcnJ1cHRpb24gKGUuZy4gZnJvbSBpbmNvcnJlY3QgbmV0bGluayBtZXNzYWdlIHNpemVzKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBiOTU3YjJkOGRkMzg0NmFhYmJiMmQxYzBlNDg0MTNhNWZjYzU2NTRlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMTU6MzU6MTQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvY29yZS9kcm9wX21vbml0b3IuYyBiL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jXG5pbmRleCAyYmYzY2FiNWU1NTdhMS4uODgwMGEyMWRlZDA4NDAgMTAwNjQ0XG4tLS0gYS9uZXQvY29yZS9kcm9wX21vbml0b3IuY1xuKysrIGIvbmV0L2NvcmUvZHJvcF9tb25pdG9yLmNcbkBAIC01MzAsMTAgKzUzMCwxMCBAQCBzdGF0aWMgdm9pZCBuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXQodm9pZCAqaWdub3JlLFxuIFx0cmV0dXJuO1xuIFxuIHVubG9ja19mcmVlOlxuLVx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkYXRhLVx1MDAzZWRyb3BfcXVldWUubG9jaywgZmxhZ3MpO1xuIFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZkYXRhLVx1MDAzZXN0YXRzLnN5bmNwKTtcbiBcdHU2NF9zdGF0c19pbmMoXHUwMDI2ZGF0YS1cdTAwM2VzdGF0cy5kcm9wcGVkKTtcbiBcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNmRhdGEtXHUwMDNlc3RhdHMuc3luY3ApO1xuK1x0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkYXRhLVx1MDAzZWRyb3BfcXVldWUubG9jaywgZmxhZ3MpO1xuIFx0Y29uc3VtZV9za2IobnNrYik7XG4gfVxuIFxuQEAgLTU2NiwxMyArNTY2LDEzIEBAIHN0YXRpYyBzaXplX3QgbmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZShzaXplX3QgcGF5bG9hZF9sZW4pXG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR0lOICovXG4gXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUxNikpICtcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9QQyAqL1xuLVx0ICAgICAgIG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKSArXG4rXHQgICAgICAgbmxhX3RvdGFsX3NpemVfNjRiaXQoc2l6ZW9mKHU2NCkpICtcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9TWU1CT0wgKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShORVRfRE1fTUFYX1NZTUJPTF9MRU4gKyAxKSArXG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfSU5fUE9SVCAqL1xuIFx0ICAgICAgIG5ldF9kbV9pbl9wb3J0X3NpemUoKSArXG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfVElNRVNUQU1QICovXG4tXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICtcbitcdCAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgK1xuIFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX09SSUdfTEVOICovXG4gXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICtcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9QUk9UTyAqL1xuQEAgLTc2OCw3ICs3NjgsNyBAQCBuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplKHNpemVfdCBwYXlsb2FkX2xlbixcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9GTE9XX0FDVElPTl9DT09LSUUgKi9cbiBcdCAgICAgICBuZXRfZG1fZmxvd19hY3Rpb25fY29va2llX3NpemUoaHdfbWV0YWRhdGEpICtcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9USU1FU1RBTVAgKi9cbi1cdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTY0KSkgK1xuK1x0ICAgICAgIG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKSArXG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR19MRU4gKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTMyKSkgK1xuIFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX1BST1RPICovXG5AQCAtMTAwMSwxMCArMTAwMSwxMCBAQCBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmUodm9pZCAqaWdub3JlLCBjb25zdCBzdHJ1Y3QgZGV2bGluayAqZGV2bGluayxcbiBcdHJldHVybjtcbiBcbiB1bmxvY2tfZnJlZTpcbi1cdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2aHdfZGF0YS1cdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcbiBcdHU2NF9zdGF0c191cGRhdGVfYmVnaW4oXHUwMDI2aHdfZGF0YS1cdTAwM2VzdGF0cy5zeW5jcCk7XG4gXHR1NjRfc3RhdHNfaW5jKFx1MDAyNmh3X2RhdGEtXHUwMDNlc3RhdHMuZHJvcHBlZCk7XG4gXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcdTAwMjZod19kYXRhLVx1MDAzZXN0YXRzLnN5bmNwKTtcbitcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2aHdfZGF0YS1cdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcbiBcdG5ldF9kbV9od19tZXRhZGF0YV9mcmVlKG5faHdfbWV0YWRhdGEpO1xuIGZyZWU6XG4gXHRjb25zdW1lX3NrYihuc2tiKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjE2LjU1MzYyNTQ4MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMDIwNzgzODUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoIHRvIG5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkgaGF2ZSBhIHBhdGNoIGhlcmUgdGhhdCdzIG1ha2luZyBhIGNvdXBsZSBvZiBjaGFuZ2VzIGluIGBuZXQvY29yZS9kcm9wX21vbml0b3IuY2AsIGFuZCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIHdvcnRoIHRocm93aW5nIHNvbWUgZnV6emluZyBhdC4gIExldCdzIHNlZSwgdGhlIHBhdGNoIHRvdWNoZXMgdHdvIGFyZWFzLiBGaXJzdCwgaXQgbW92ZXMgYHNwaW5fdW5sb2NrX2lycXJlc3RvcmVgICphZnRlciogYHU2NF9zdGF0c191cGRhdGVfZW5kYCBpbiBhIGNvdXBsZSBvZiBmdW5jdGlvbnMsIGBuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXRgIGFuZCBgbmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlYC4gIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgbGlrZWx5IGEgYnVnIGZpeCBvZiBzb21lIHNvcnQsIHBlcmhhcHMgYSByYWNlIGNvbmRpdGlvbiBvciBhIHBvdGVudGlhbCBsb2NrZGVwIHdhcm5pbmcuIEkgbmVlZCB0byB0aGluayBhYm91dCB0aGF0IGB1NjRfc3RhdHNfdXBkYXRlX2JlZ2luL2VuZGAgcGFpciBhbmQgd2h5IHdlIG5lZWQgcHJvdGVjdGlvbiBhcm91bmQgdGhlbS4gIEl0J3MgcHJvYmFibHkgdG8gbWFrZSB0aGUgc3RhdHMgdXBkYXRlIHdpdGggdGhlIGxvY2ssIHRob3VnaCBJIGtub3cgdGhvc2UgZnVuY3Rpb25zIGRvbid0ICpzdHJpY3RseSogbmVlZCB0aGUgc3BpbmxvY2sgaWYgdGhleSBhcmUgcGVyLUNQVS4uLiBidXQgd2FpdCwgdGhlIGBkYXRhLVx1MDAzZXN0YXRzLnN5bmNwYCBtaWdodCBuZWVkIHByb3RlY3Rpb24gaWYgbXVsdGlwbGUgQ1BVcyBjYW4gaGl0IHRoZSBzYW1lIGBkYXRhYCEgSG93ZXZlciwgdGhlIGBkYXRhYCBpdHNlbGYgaXMgYWN0dWFsbHkgYFx1MDAyNnBlcl9jcHUobmV0X2RtX2RhdGEsIGNwdSlgIHNvIGl0ICppcyogcGVyLWNwdS4gQnV0LCBjb3VsZCBhbiBpbnRlcnJ1cHQgcG90ZW50aWFsbHkgaGl0IHRoZSBzYW1lIG1lbW9yeT8gSG1tbSwgIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCByZS1lbmFibGVzIGludGVycnVwdHMuIElmIHRob3NlIHdlcmUgZW5hYmxlZCAqYmVmb3JlKiBgdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbmAsIGFuIGludGVycnVwdCAqY291bGQqIGNvbWUgaW4gYW5kIHRyeSB0byB1cGRhdGUgdGhlIHNhbWUgc3RhdHMsIGxlYWRpbmcgdG8gbmVzdGVkIGB1NjRfc3RhdHNfdXBkYXRlX2JlZ2luYCBjYWxscyDigJMgd2hpY2ggaXMgZGVmaW5pdGVseSBhIG5vLW5vISBTbywgbW92aW5nIHRoYXQgdW5sb2NrIGNhbGwgKmFmdGVyKiB0aGUgdXBkYXRlIGNhbGwgaXMgYWJzb2x1dGVseSBwcm90ZWN0aW5nIGFnYWluc3QgSVJRcy4gVGhhdCBtYWtlcyBzZW5zZS5cblxuU2Vjb25kbHksIGl0J3MgY2hhbmdpbmcgYG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKWAgdG8gYG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKWAgaW4gYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgIGFuZCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAuIFRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgY2hhbmdlIHJlbGF0ZWQgdG8gbmV0bGluayBhdHRyaWJ1dGUgc2l6ZSBjYWxjdWxhdGlvbnMgZm9yIDY0LWJpdCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHByb3BlciBwYWRkaW5nIGZvciB0aGVzZSwgc28gdGhhdCdzIGFsbCBhYm91dCBtYWtpbmcgc3VyZSB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBhbGlnbmVkIGNvcnJlY3RseS5cblxuQWxyaWdodCwgc28gdGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIG5ldHdvcmtpbmcgY29yZSwgc3BlY2lmaWNhbGx5IHRoZSBkcm9wIG1vbml0b3IuIFRoZSBuZXh0IHF1ZXN0aW9uIGlzLCBpcyB0aGlzIGNvZGUgZXZlbiAqcmVhY2hhYmxlKj8gWWVwLCB0aGUgZHJvcCBtb25pdG9yIGlzIHRoYXQgbmV0bGluay1iYXNlZCBzZXJ2aWNlIHRoYXQgbW9uaXRvcnMgZHJvcHBlZCBwYWNrZXRzLiBTbywgaG93IGNhbiB3ZSB0ZXN0IHRoaXM/IFdlIGNhbiBzZW5kIG5ldGxpbmsgY29tbWFuZHMgdG8gY29uZmlndXJlIHRoZSBkcm9wIG1vbml0b3IsIGFuZCB0aGVuIHRyaWdnZXIgc29tZSBwYWNrZXQgZHJvcHMgdG8gZXhlcmNpc2UgdGhlIGNvZGUuXG5cbk5vdyBJIG5lZWQgdG8gZmluZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZHJvcCBtb25pdG9yLiBgbmV0L2NvcmUvZHJvcF9tb25pdG9yLmNgIGlzIGxpa2VseSBjb21waWxlZCB3aXRoIHRoZSBgQ09ORklHX05FVF9EUk9QX01PTklUT1JgIG9wdGlvbi4gTGV0IG1lIGNoZWNrIHRoZSBgbmV0L2NvcmUvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhhdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGJ1aWxkIHRoZSBtb2R1bGUgYW5kIGVuYWJsZSB0aGUgY29uZmlnLCBhbmQgdGhlbiBnZXQgdG8gZnV6emluZyBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU5NCwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjI2LjU3NDQxMjI3NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzA0NDc4MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJvcF9tb25pdG9yLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvTWFrZWZpbGU9MzA9b2JqLSQoQ09ORklHX1RSQUNFUE9JTlRTKSArPSBuZXQtdHJhY2VzLm9cXG5uZXQvY29yZS9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfTkVUX0RST1BfTU9OSVRPUikgKz0gZHJvcF9tb25pdG9yLm9cXG5uZXQvY29yZS9NYWtlZmlsZS0zMi1vYmotJChDT05GSUdfTkVUX0lFRUU4MDIxUV9IRUxQRVJTKSArPSBpZWVlODAyMXFfaGVscGVycy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjI2LjcwNDg2NjQ2NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzMTkyNDg3MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYE5FVF9EUk9QX01PTklUT1JgIENvZGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgYE5FVF9EUk9QX01PTklUT1JgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGFuZCB0cnlpbmcgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZS4gVGhlIG1haW4gZnVuY3Rpb25zIHRoYXQgc3RhbmQgb3V0IGFyZTogYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAsIGBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplYCwgYG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVgLCBhbmQgYG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZWAuXG5cblJpZ2h0LCBgbmV0X2RtX3BhY2tldF90cmFjZV9rZnJlZV9za2JfaGl0YCBpcyB0cmlnZ2VyZWQgYnkgdGhlIGBrZnJlZV9za2JgIHRyYWNlcG9pbnQsIHNvIHRoYXQncyBjYWxsZWQgd2hlbiBhIHNvY2tldCBidWZmZXIgaXMgZnJlZWQuIEFuZCBgbmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlYCBpcyB0cmlnZ2VyZWQgZnJvbSB0aGUgYGRldmxpbmtfdHJhcF9yZXBvcnRgIHRyYWNlcG9pbnQuIFRoZSBvdGhlciB0d28gYXJlIHNpemUgY2FsY3VsYXRpb24gdXRpbGl0aWVzIGZvciB0aGUgbmV0bGluayBtZXNzYWdlcy5cblxuTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uIOKAkyBhcmUgYW55IG9mIHRoZXNlIGRpcmVjdGx5IGNhbGxhYmxlIGZyb20gc3lzY2FsbHM/IE5vcGUsIG5vdCBkaXJlY3RseS4gVGhleeKAmXJlIGNhbGxlZCBpbmRpcmVjdGx5IHZpYSB0cmFjZXBvaW50cyBvciBuZXRsaW5rIG1lc3NhZ2VzLiBIb3dldmVyLCB0aGlua2luZyBsaWtlIGEgZnV6emVyLCBJIHJlYWxpemUgdGhhdCBmdXp6aW5nIHRoZSBwYWNrZXQgZHJvcHBpbmcgb3Igc2VuZGluZyB0aGUgcmVsZXZhbnQgbmV0bGluayBtZXNzYWdlcyBjb3VsZCBhYnNvbHV0ZWx5IHRyaWdnZXIgdGhlc2UgZnVuY3Rpb25zLiBTbywgZm9jdXNpbmcgb24gdGhlbSBzZWVtcyBsaWtlIGEgc29saWQgYXBwcm9hY2ggZm9yIG5vdy5cblxuSnVzdCB0byBiZSB0aG9yb3VnaCwgSSBzaG91bGQgZG91YmxlIGNoZWNrIHRoYXQgdGhlcmUgYXJlbid0IGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIEkgbWlnaHQgYmUgbWlzc2luZy4gR290dGEgY292ZXIgYWxsIHRoZSBiYXNlcywgb2YgY291cnNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODc5LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjMyLjAyNDExNzIxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg1NjAxMjA1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk5FVF9EUk9QX01PTklUT1JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L0tjb25maWc9Mzg2PWNvbmZpZyBORVRfUEtUR0VOXFxuLS1cXG5uZXQvS2NvbmZpZy00MDAtXFxubmV0L0tjb25maWc6NDAxOmNvbmZpZyBORVRfRFJPUF9NT05JVE9SXFxubmV0L0tjb25maWctNDAyLVxcdHRyaXN0YXRlIFxcXCJMZWdhY3kgbmV0d29yayBwYWNrZXQgZHJvcCBhbGVydGluZyBzZXJ2aWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTozNTozMi4xMDk3MjMxMDRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTQ0NDc5MzIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyB6ZXJvIGluIG9uIGEgZ29vZCBzeW1ib2wgZm9yIGFuYWx5c2lzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW52ZXN0aWdhdGUgYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAuIFRoZSBiZWF1dHkgb2YgdGhpcyBpcyB0aGF0IGl0J3MgdHJpZ2dlcmVkIG9uIGV2ZXJ5IHNpbmdsZSBkcm9wcGVkIHBhY2tldCBpZiB0aGUgZHJvcCBtb25pdG9yIGlzIGFjdGl2ZS4gVGhpcyBjb3VsZCBiZSBhIHJlYWxseSBob3QgcGF0aCwgZXNwZWNpYWxseSB1bmRlciBoZWF2eSBwYWNrZXQgbG9zcy4gSG93ZXZlciwgSSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgaXQncyBvbmx5IGFjdGl2ZSB3aGVuIGRyb3AgbW9uaXRvciBpcyBlbmFibGVkLiBUaGF0J3MgYSBrZXkgZGV0YWlsIHRvIGtlZXAgaW4gbWluZCBmb3IgaW50ZXJwcmV0aW5nIGFueSBwZXJmb3JtYW5jZSBkYXRhLlxuXG5OZXh0LCBJIG5lZWQgdG8gY29uc2lkZXIgYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgIGFuZCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAuIFRob3NlIGFyZSB0aGUgZnVuY3Rpb25zIHRoYXQga2ljayBpbiB3aGVuIHJlcG9ydHMgYXJlIGFjdHVhbGx5IGdlbmVyYXRlZC4gU28gbXkgbmV4dCBzdGVwIGlzIHRvIGNhcmVmdWxseSBleGFtaW5lIHRoZSBjYWxsIHNpdGVzIGZvciB0aG9zZSBmdW5jdGlvbnMuIFVuZGVyc3RhbmRpbmcgd2hlbiBhbmQgd2h5IHJlcG9ydHMgYXJlIGdlbmVyYXRlZCB3aWxsIGdpdmUgbWUgYSBicm9hZGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU0MiwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTozNTozNi4yNTQyMDQ5NTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ2NDExMDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvZHJvcF9tb25pdG9yLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9NTQ2PXN0YXRpYyBzaXplX3QgbmV0X2RtX2luX3BvcnRfc2l6ZSh2b2lkKVxcbi0tXFxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmMtNTU4LVxcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jOjU1OTpzdGF0aWMgc2l6ZV90IG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuKVxcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jLTU2MC17XFxuLS1cXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYz02OTI9c3RhdGljIHZvaWQgbmV0X2RtX3BhY2tldF9yZXBvcnQoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jLTcwOC1cXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzo3MDk6XFx0bXNnID0gbmxtc2dfbmV3KG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUocGF5bG9hZF9sZW4pLCBHRlBfS0VSTkVMKTtcXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy03MTAtXFx0aWYgKCFtc2cpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjM2LjQwMDYyMDAwMloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDI5NDgyMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgYSBOZXR3b3JrIERhdGEgTWFuYWdlbWVudCBQYWNrZXQgUmVwb3J0KipcblxuT2theSwgc28gYG5ldF9kbV9wYWNrZXRfcmVwb3J0YCBpcyBmaXJpbmcgb2ZmLiBSaWdodCBvZmYgdGhlIGJhdCwgdGhhdCBzY3JlYW1zIFwiYXN5bmNocm9ub3VzIHByb2Nlc3NcIiDigJMgaXQncyBydW5uaW5nIGZyb20gZWl0aGVyIGEgd29ya3F1ZXVlIG9yIGEgdGltZXIsIHdoaWNoIG1lYW5zIGl0IGlzbid0IGRpcmVjdGx5IHRpZWQgdG8gYSB1c2VyLXNwYWNlIHJlcXVlc3Qgb3IgYSBzeW5jaHJvbm91cyBpbnRlcnJ1cHQuIEdvdHRhIGtlZXAgdGhhdCBpbiBtaW5kOyBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIGFuZCBjb25jdXJyZW5jeSBpc3N1ZXMgYXJlIGFsd2F5cyBhIGNvbmNlcm4gaW4gdGhvc2UgY29udGV4dHMuXG5cbkxldCdzIGRyaWxsIGRvd24gYW5kIHNlZSB3aGVyZSB0aGlzIGlzIG9yaWdpbmF0aW5nLiBUaGUgbmV4dCB0aGluZyBJJ2QgY2hlY2sgaXMgYG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZWAuIFRoYXQncyB3aGVyZSB0aGUgZGVidWdnaW5nIHN0YXJ0cy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhlIG5ldHdvcmsgaGFyZHdhcmUgaXMgYWN0dWFsbHkgcmVwb3J0aW5nLiBUaGVuLCBJIGNhbiBzdGFydCB0byB1bmRlcnN0YW5kIHRoZSBjaGFpbiBvZiBldmVudHMgdGhhdCBsZWFkcyB0byBgbmV0X2RtX3BhY2tldF9yZXBvcnRgLiBUaGlzIGlzIGNyaXRpY2FsIGZvciBkaWFnbm9zaW5nIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzIG9yIGludGVybWl0dGVudCBlcnJvcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxMDYsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTozNTozOS44NDM1NzEzNDJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg3MDQ2MDY0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvY29yZS9kcm9wX21vbml0b3IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvY29yZS9kcm9wX21vbml0b3IuYz05NjI9c3RhdGljIHZvaWRcXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzo5NjM6bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlKHZvaWQgKmlnbm9yZSwgY29uc3Qgc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmMtOTY0LVxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9MTAxMz1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kbV9hbGVydF9vcHMgbmV0X2RtX2FsZXJ0X3BhY2tldF9vcHMgPSB7XFxuLS1cXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy0xMDE3LVxcdC5od193b3JrX2l0ZW1fZnVuY1xcdD0gbmV0X2RtX2h3X3BhY2tldF93b3JrLFxcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jOjEwMTg6XFx0Lmh3X3RyYXBfcHJvYmVcXHRcXHQ9IG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZSxcXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy0xMDE5LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjM5LjkzMDYyMzk4NloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NTE4NjgyMTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIERyb3AgTW9uaXRvciBTdWJzeXN0ZW0gQ2hhbmdlcyoqXG5cbk9rYXksIHNvIEkndmUgcmV2aWV3ZWQgdGhlc2UgY2hhbmdlcywgYW5kIGZ1bmN0aW9uYWxseSwgdGhleSBsb29rIHNvdW5kLiBUaGUgc3BpbmxvY2sgZml4IGlzIGNydWNpYWw7IHRoYXQgcmFjZSBjb25kaXRpb24gd2hlcmUgSVJRcyB3ZXJlIGVuYWJsZWQgcHJlbWF0dXJlbHkgYmVmb3JlIGB1NjRfc3RhdHNfdXBkYXRlX2JlZ2luYCB3YXMgYSBwb3RlbnRpYWwgbmlnaHRtYXJlLiBSZWVudHJhbmN5IG9uIHRoZSBzYW1lIENQVSBkdWUgdG8gYSBkcm9wcGVkIHBhY2tldCB0cmlnZ2VyaW5nIGEgdHJhY2Vwb2ludCBjb3VsZCBoYXZlIGJlZW4gbmFzdHkuIEdvb2QgdG8gc2VlIHRoYXQncyBhZGRyZXNzZWQuIFRoZSBgbmxhX3RvdGFsX3NpemVfNjRiaXRgIGNoYW5nZSBpcyBlcXVhbGx5IGltcG9ydGFudDsgYSBzaW1wbGUgZml4IGJ1dCBjcml0aWNhbCB0byBjb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplIGNhbGN1bGF0aW9ucyBmb3IgdGhvc2UgNjQtYml0IGF0dHJpYnV0ZXMgd2hpY2ggd291bGQgYmUgcHJvYmxlbWF0aWMgaWYgbm90IGFsaWduZWQgY29ycmVjdGx5LlxuXG5TaW5jZSB0aGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBkcm9wIG1vbml0b3Igc3Vic3lzdGVtLCBpdCdzIGRlZmluaXRlbHkgdGltZSB0byBmdXp6IHRoZW0gdG8gYmUgc2FmZS4gSSdsbCBmbGFnIHRoaXMgYXMgYFdvcnRoRnV6emluZz10cnVlYC5cblxuRm9yIHRoZSBmdXp6aW5nLCBsZXQncyBmb2N1cyBvbiB0aGVzZSBzcGVjaWZpYyBzeW1ib2xzOiBgbmV0X2RtX3BhY2tldF90cmFjZV9rZnJlZV9za2JfaGl0YCwgYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgLCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAsIGFuZCBgbmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlYC4gV2FpdCwgaG9sZCBvbi4gYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgIGFuZCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAgYXJlIHN0YXRpYyBmdW5jdGlvbnM7IHRoZXkncmUgcGVyZmVjdGx5IHNhZmUgdG8gaW5jbHVkZS4gYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAgaXMgYWxzbyBzdGF0aWMuXG5cbkknbGwgZG91YmxlLWNoZWNrIHRoZSBjb25maWdzLiBJIHRoaW5rIHdlIG9ubHkgbmVlZCBgTkVUX0RST1BfTU9OSVRPUmAsIGJ1dCBsZXQncyBjb25maXJtLiBZZXMsIGl0J3Mgc3VmZmljaWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYwNiwiT3V0cHV0VG9rZW5zIjoxOTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6MzU6NDguNDQ5MzA5MzU4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYxMjkwNzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORVRfRFJPUF9NT05JVE9SXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmV0X2RtX3BhY2tldF90cmFjZV9rZnJlZV9za2JfaGl0XCIsXG4gICAgXCJuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplXCIsXG4gICAgXCJuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplXCIsXG4gICAgXCJuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJ5IG1vdmluZyBgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZWAgYWZ0ZXIgYHU2NF9zdGF0c191cGRhdGVfZW5kYCB0byBwcmV2ZW50IElSUSByZWVudHJhbmN5IGR1cmluZyBzdGF0cyB1cGRhdGUuIEl0IGFsc28gZml4ZXMgbmV0bGluayBtZXNzYWdlIHNpemUgY2FsY3VsYXRpb24gZm9yIDY0LWJpdCBhdHRyaWJ1dGVzIGJ5IHVzaW5nIGBubGFfdG90YWxfc2l6ZV82NGJpdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIGRyb3AgbW9uaXRvciBzdWJzeXN0ZW0gdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciBtZW1vcnkgY29ycnVwdGlvbiAoZS5nLiBmcm9tIGluY29ycmVjdCBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVF9EUk9QX01PTklUT1JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXRcIixcbiAgICBcIm5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgICBcIm5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgICBcIm5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYnkgbW92aW5nIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCBhZnRlciBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIHRvIHByZXZlbnQgSVJRIHJlZW50cmFuY3kgZHVyaW5nIHN0YXRzIHVwZGF0ZS4gSXQgYWxzbyBmaXhlcyBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxjdWxhdGlvbiBmb3IgNjQtYml0IGF0dHJpYnV0ZXMgYnkgdXNpbmcgYG5sYV90b3RhbF9zaXplXzY0Yml0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBjb3JydXB0aW9uIChlLmcuIGZyb20gaW5jb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplcykuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-23 15:11:33 +0000 UTC FinishedAt: 2026-07-23 15:35:50 +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": "f43ee0c0730d6191629b5ee1ceae27b1ebfdc047", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NET_DROP_MONITOR" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "f43ee0c0730d6191629b5ee1ceae27b1ebfdc047", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NET_DROP_MONITOR" ], "series_id": "adc74fd4-0a09-492b-9af2-25faec967a5b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "net_dm_packet_trace_kfree_skb_hit", "net_dm_packet_report_size", "net_dm_hw_packet_report_size", "net_dm_hw_trap_packet_probe" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVF9EUk9QX01PTklUT1ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXQmIzM0OywKICAgICYjMzQ7bmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZSYjMzQ7LAogICAgJiMzNDtuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplJiMzNDssCiAgICAmIzM0O25ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJ5IG1vdmluZyBgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZWAgYWZ0ZXIgYHU2NF9zdGF0c191cGRhdGVfZW5kYCB0byBwcmV2ZW50IElSUSByZWVudHJhbmN5IGR1cmluZyBzdGF0cyB1cGRhdGUuIEl0IGFsc28gZml4ZXMgbmV0bGluayBtZXNzYWdlIHNpemUgY2FsY3VsYXRpb24gZm9yIDY0LWJpdCBhdHRyaWJ1dGVzIGJ5IHVzaW5nIGBubGFfdG90YWxfc2l6ZV82NGJpdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIGRyb3AgbW9uaXRvciBzdWJzeXN0ZW0gdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciBtZW1vcnkgY29ycnVwdGlvbiAoZS5nLiBmcm9tIGluY29ycmVjdCBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZXMpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYjk1N2IyZDhkZDM4NDZhYWJiYjJkMWMwZTQ4NDEzYTVmY2M1NjU0ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDIzIDE1OjM1OjE0IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jIGIvbmV0L2NvcmUvZHJvcF9tb25pdG9yLmNcbmluZGV4IDJiZjNjYWI1ZTU1N2ExLi44ODAwYTIxZGVkMDg0MCAxMDA2NDRcbi0tLSBhL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvY29yZS9kcm9wX21vbml0b3IuY1xuQEAgLTUzMCwxMCAmIzQzOzUzMCwxMCBAQCBzdGF0aWMgdm9pZCBuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXQodm9pZCAqaWdub3JlLFxuIFx0cmV0dXJuO1xuIFxuIHVubG9ja19mcmVlOlxuLVx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkYXRhLVx1MDAzZWRyb3BfcXVldWUubG9jaywgZmxhZ3MpO1xuIFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZkYXRhLVx1MDAzZXN0YXRzLnN5bmNwKTtcbiBcdHU2NF9zdGF0c19pbmMoXHUwMDI2ZGF0YS1cdTAwM2VzdGF0cy5kcm9wcGVkKTtcbiBcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNmRhdGEtXHUwMDNlc3RhdHMuc3luY3ApO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2ZGF0YS1cdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcbiBcdGNvbnN1bWVfc2tiKG5za2IpO1xuIH1cbiBcbkBAIC01NjYsMTMgJiM0Mzs1NjYsMTMgQEAgc3RhdGljIHNpemVfdCBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplKHNpemVfdCBwYXlsb2FkX2xlbilcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9PUklHSU4gKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTE2KSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9QQyAqL1xuLVx0ICAgICAgIG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKSAmIzQzO1xuJiM0MztcdCAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9TWU1CT0wgKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShORVRfRE1fTUFYX1NZTUJPTF9MRU4gJiM0MzsgMSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9JTl9QT1JUICovXG4gXHQgICAgICAgbmV0X2RtX2luX3BvcnRfc2l6ZSgpICYjNDM7XG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfVElNRVNUQU1QICovXG4tXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICYjNDM7XG4mIzQzO1x0ICAgICAgIG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKSAmIzQzO1xuIFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX09SSUdfTEVOICovXG4gXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICYjNDM7XG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfUFJPVE8gKi9cbkBAIC03NjgsNyAmIzQzOzc2OCw3IEBAIG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuLFxuIFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX0ZMT1dfQUNUSU9OX0NPT0tJRSAqL1xuIFx0ICAgICAgIG5ldF9kbV9mbG93X2FjdGlvbl9jb29raWVfc2l6ZShod19tZXRhZGF0YSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9USU1FU1RBTVAgKi9cbi1cdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTY0KSkgJiM0MztcbiYjNDM7XHQgICAgICAgbmxhX3RvdGFsX3NpemVfNjRiaXQoc2l6ZW9mKHU2NCkpICYjNDM7XG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR19MRU4gKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTMyKSkgJiM0MztcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9QUk9UTyAqL1xuQEAgLTEwMDEsMTAgJiM0MzsxMDAxLDEwIEBAIG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZSh2b2lkICppZ25vcmUsIGNvbnN0IHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLFxuIFx0cmV0dXJuO1xuIFxuIHVubG9ja19mcmVlOlxuLVx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZod19kYXRhLVx1MDAzZWRyb3BfcXVldWUubG9jaywgZmxhZ3MpO1xuIFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZod19kYXRhLVx1MDAzZXN0YXRzLnN5bmNwKTtcbiBcdHU2NF9zdGF0c19pbmMoXHUwMDI2aHdfZGF0YS1cdTAwM2VzdGF0cy5kcm9wcGVkKTtcbiBcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNmh3X2RhdGEtXHUwMDNlc3RhdHMuc3luY3ApO1xuJiM0MztcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2aHdfZGF0YS1cdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcbiBcdG5ldF9kbV9od19tZXRhZGF0YV9mcmVlKG5faHdfbWV0YWRhdGEpO1xuIGZyZWU6XG4gXHRjb25zdW1lX3NrYihuc2tiKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTozNTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX0RST1BfTU9OSVRPUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdCYjMzQ7LAogICAgJiMzNDtuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplJiMzNDssCiAgICAmIzM0O25ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUmIzM0OywKICAgICYjMzQ7bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYnkgbW92aW5nIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCBhZnRlciBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIHRvIHByZXZlbnQgSVJRIHJlZW50cmFuY3kgZHVyaW5nIHN0YXRzIHVwZGF0ZS4gSXQgYWxzbyBmaXhlcyBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxjdWxhdGlvbiBmb3IgNjQtYml0IGF0dHJpYnV0ZXMgYnkgdXNpbmcgYG5sYV90b3RhbF9zaXplXzY0Yml0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBjb3JydXB0aW9uIChlLmcuIGZyb20gaW5jb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGI5NTdiMmQ4ZGQzODQ2YWFiYmIyZDFjMGU0ODQxM2E1ZmNjNTY1NGUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyMyAxNTozNToxNCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jIGIvbmV0L2NvcmUvZHJvcF9tb25pdG9yLmMKaW5kZXggMmJmM2NhYjVlNTU3YTEuLjg4MDBhMjFkZWQwODQwIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kcm9wX21vbml0b3IuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvY29yZS9kcm9wX21vbml0b3IuYwpAQCAtNTMwLDEwICYjNDM7NTMwLDEwIEBAIHN0YXRpYyB2b2lkIG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdCh2b2lkICppZ25vcmUsCiAJcmV0dXJuOwogCiB1bmxvY2tfZnJlZToKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7ZGF0YS0mZ3Q7ZHJvcF9xdWV1ZS5sb2NrLCBmbGFncyk7CiAJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmYW1wO2RhdGEtJmd0O3N0YXRzLnN5bmNwKTsKIAl1NjRfc3RhdHNfaW5jKCZhbXA7ZGF0YS0mZ3Q7c3RhdHMuZHJvcHBlZCk7CiAJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJmFtcDtkYXRhLSZndDtzdGF0cy5zeW5jcCk7CiYjNDM7CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtkYXRhLSZndDtkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTsKIAljb25zdW1lX3NrYihuc2tiKTsKIH0KIApAQCAtNTY2LDEzICYjNDM7NTY2LDEzIEBAIHN0YXRpYyBzaXplX3QgbmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZShzaXplX3QgcGF5bG9hZF9sZW4pCiAJICAgICAgIC8qIE5FVF9ETV9BVFRSX09SSUdJTiAqLwogCSAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTE2KSkgJiM0MzsKIAkgICAgICAgLyogTkVUX0RNX0FUVFJfUEMgKi8KLQkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICYjNDM7CiYjNDM7CSAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgJiM0MzsKIAkgICAgICAgLyogTkVUX0RNX0FUVFJfU1lNQk9MICovCiAJICAgICAgIG5sYV90b3RhbF9zaXplKE5FVF9ETV9NQVhfU1lNQk9MX0xFTiAmIzQzOyAxKSAmIzQzOwogCSAgICAgICAvKiBORVRfRE1fQVRUUl9JTl9QT1JUICovCiAJICAgICAgIG5ldF9kbV9pbl9wb3J0X3NpemUoKSAmIzQzOwogCSAgICAgICAvKiBORVRfRE1fQVRUUl9USU1FU1RBTVAgKi8KLQkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICYjNDM7CiYjNDM7CSAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgJiM0MzsKIAkgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR19MRU4gKi8KIAkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICYjNDM7CiAJICAgICAgIC8qIE5FVF9ETV9BVFRSX1BST1RPICovCkBAIC03NjgsNyAmIzQzOzc2OCw3IEBAIG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuLAogCSAgICAgICAvKiBORVRfRE1fQVRUUl9GTE9XX0FDVElPTl9DT09LSUUgKi8KIAkgICAgICAgbmV0X2RtX2Zsb3dfYWN0aW9uX2Nvb2tpZV9zaXplKGh3X21ldGFkYXRhKSAmIzQzOwogCSAgICAgICAvKiBORVRfRE1fQVRUUl9USU1FU1RBTVAgKi8KLQkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICYjNDM7CiYjNDM7CSAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgJiM0MzsKIAkgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR19MRU4gKi8KIAkgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICYjNDM7CiAJICAgICAgIC8qIE5FVF9ETV9BVFRSX1BST1RPICovCkBAIC0xMDAxLDEwICYjNDM7MTAwMSwxMCBAQCBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmUodm9pZCAqaWdub3JlLCBjb25zdCBzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywKIAlyZXR1cm47CiAKIHVubG9ja19mcmVlOgotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtod19kYXRhLSZndDtkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTsKIAl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZhbXA7aHdfZGF0YS0mZ3Q7c3RhdHMuc3luY3ApOwogCXU2NF9zdGF0c19pbmMoJmFtcDtod19kYXRhLSZndDtzdGF0cy5kcm9wcGVkKTsKIAl1NjRfc3RhdHNfdXBkYXRlX2VuZCgmYW1wO2h3X2RhdGEtJmd0O3N0YXRzLnN5bmNwKTsKJiM0MzsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYW1wO2h3X2RhdGEtJmd0O2Ryb3BfcXVldWUubG9jaywgZmxhZ3MpOwogCW5ldF9kbV9od19tZXRhZGF0YV9mcmVlKG5faHdfbWV0YWRhdGEpOwogZnJlZToKIAljb25zdW1lX3NrYihuc2tiKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU5NAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDQ4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaCB0byBuZXQvY29yZS9kcm9wX21vbml0b3IuYyBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSBoYXZlIGEgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIG1ha2luZyBhIGNvdXBsZSBvZiBjaGFuZ2VzIGluIGBuZXQvY29yZS9kcm9wX21vbml0b3IuY2AsIGFuZCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyB3b3J0aCB0aHJvd2luZyBzb21lIGZ1enppbmcgYXQuICBMZXQmIzM5O3Mgc2VlLCB0aGUgcGF0Y2ggdG91Y2hlcyB0d28gYXJlYXMuIEZpcnN0LCBpdCBtb3ZlcyBgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZWAgKmFmdGVyKiBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIGluIGEgY291cGxlIG9mIGZ1bmN0aW9ucywgYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAgYW5kIGBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVgLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBsaWtlbHkgYSBidWcgZml4IG9mIHNvbWUgc29ydCwgcGVyaGFwcyBhIHJhY2UgY29uZGl0aW9uIG9yIGEgcG90ZW50aWFsIGxvY2tkZXAgd2FybmluZy4gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoYXQgYHU2NF9zdGF0c191cGRhdGVfYmVnaW4vZW5kYCBwYWlyIGFuZCB3aHkgd2UgbmVlZCBwcm90ZWN0aW9uIGFyb3VuZCB0aGVtLiAgSXQmIzM5O3MgcHJvYmFibHkgdG8gbWFrZSB0aGUgc3RhdHMgdXBkYXRlIHdpdGggdGhlIGxvY2ssIHRob3VnaCBJIGtub3cgdGhvc2UgZnVuY3Rpb25zIGRvbiYjMzk7dCAqc3RyaWN0bHkqIG5lZWQgdGhlIHNwaW5sb2NrIGlmIHRoZXkgYXJlIHBlci1DUFUuLi4gYnV0IHdhaXQsIHRoZSBgZGF0YS0mZ3Q7c3RhdHMuc3luY3BgIG1pZ2h0IG5lZWQgcHJvdGVjdGlvbiBpZiBtdWx0aXBsZSBDUFVzIGNhbiBoaXQgdGhlIHNhbWUgYGRhdGFgISBIb3dldmVyLCB0aGUgYGRhdGFgIGl0c2VsZiBpcyBhY3R1YWxseSBgJmFtcDtwZXJfY3B1KG5ldF9kbV9kYXRhLCBjcHUpYCBzbyBpdCAqaXMqIHBlci1jcHUuIEJ1dCwgY291bGQgYW4gaW50ZXJydXB0IHBvdGVudGlhbGx5IGhpdCB0aGUgc2FtZSBtZW1vcnk/IEhtbW0sICBgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZWAgcmUtZW5hYmxlcyBpbnRlcnJ1cHRzLiBJZiB0aG9zZSB3ZXJlIGVuYWJsZWQgKmJlZm9yZSogYHU2NF9zdGF0c191cGRhdGVfYmVnaW5gLCBhbiBpbnRlcnJ1cHQgKmNvdWxkKiBjb21lIGluIGFuZCB0cnkgdG8gdXBkYXRlIHRoZSBzYW1lIHN0YXRzLCBsZWFkaW5nIHRvIG5lc3RlZCBgdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbmAgY2FsbHMg4oCTIHdoaWNoIGlzIGRlZmluaXRlbHkgYSBuby1ubyEgU28sIG1vdmluZyB0aGF0IHVubG9jayBjYWxsICphZnRlciogdGhlIHVwZGF0ZSBjYWxsIGlzIGFic29sdXRlbHkgcHJvdGVjdGluZyBhZ2FpbnN0IElSUXMuIFRoYXQgbWFrZXMgc2Vuc2UuCgpTZWNvbmRseSwgaXQmIzM5O3MgY2hhbmdpbmcgYG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKWAgdG8gYG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKWAgaW4gYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgIGFuZCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAuIFRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgY2hhbmdlIHJlbGF0ZWQgdG8gbmV0bGluayBhdHRyaWJ1dGUgc2l6ZSBjYWxjdWxhdGlvbnMgZm9yIDY0LWJpdCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHByb3BlciBwYWRkaW5nIGZvciB0aGVzZSwgc28gdGhhdCYjMzk7cyBhbGwgYWJvdXQgbWFraW5nIHN1cmUgdGhlIGRhdGEgc3RydWN0dXJlcyBhcmUgYWxpZ25lZCBjb3JyZWN0bHkuCgpBbHJpZ2h0LCBzbyB0aGlzIGlzIGZ1bmN0aW9uYWwgY29kZSBpbiB0aGUgbmV0d29ya2luZyBjb3JlLCBzcGVjaWZpY2FsbHkgdGhlIGRyb3AgbW9uaXRvci4gVGhlIG5leHQgcXVlc3Rpb24gaXMsIGlzIHRoaXMgY29kZSBldmVuICpyZWFjaGFibGUqPyBZZXAsIHRoZSBkcm9wIG1vbml0b3IgaXMgdGhhdCBuZXRsaW5rLWJhc2VkIHNlcnZpY2UgdGhhdCBtb25pdG9ycyBkcm9wcGVkIHBhY2tldHMuIFNvLCBob3cgY2FuIHdlIHRlc3QgdGhpcz8gV2UgY2FuIHNlbmQgbmV0bGluayBjb21tYW5kcyB0byBjb25maWd1cmUgdGhlIGRyb3AgbW9uaXRvciwgYW5kIHRoZW4gdHJpZ2dlciBzb21lIHBhY2tldCBkcm9wcyB0byBleGVyY2lzZSB0aGUgY29kZS4KCk5vdyBJIG5lZWQgdG8gZmluZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZHJvcCBtb25pdG9yLiBgbmV0L2NvcmUvZHJvcF9tb25pdG9yLmNgIGlzIGxpa2VseSBjb21waWxlZCB3aXRoIHRoZSBgQ09ORklHX05FVF9EUk9QX01PTklUT1JgIG9wdGlvbi4gTGV0IG1lIGNoZWNrIHRoZSBgbmV0L2NvcmUvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhhdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGJ1aWxkIHRoZSBtb2R1bGUgYW5kIGVuYWJsZSB0aGUgY29uZmlnLCBhbmQgdGhlbiBnZXQgdG8gZnV6emluZyBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkcm9wX21vbml0b3IubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9jb3JlL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL01ha2VmaWxlPTMwPW9iai0kKENPTkZJR19UUkFDRVBPSU5UUykgJiM0Mzs9IG5ldC10cmFjZXMub1xubmV0L2NvcmUvTWFrZWZpbGU6MzE6b2JqLSQoQ09ORklHX05FVF9EUk9QX01PTklUT1IpICYjNDM7PSBkcm9wX21vbml0b3Iub1xubmV0L2NvcmUvTWFrZWZpbGUtMzItb2JqLSQoQ09ORklHX05FVF9JRUVFODAyMVFfSEVMUEVSUykgJiM0Mzs9IGllZWU4MDIxcV9oZWxwZXJzLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTozNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODc5CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjQ0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBORVRfRFJPUF9NT05JVE9SYCBDb2RlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYE5FVF9EUk9QX01PTklUT1JgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGFuZCB0cnlpbmcgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZS4gVGhlIG1haW4gZnVuY3Rpb25zIHRoYXQgc3RhbmQgb3V0IGFyZTogYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAsIGBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplYCwgYG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVgLCBhbmQgYG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZWAuCgpSaWdodCwgYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAgaXMgdHJpZ2dlcmVkIGJ5IHRoZSBga2ZyZWVfc2tiYCB0cmFjZXBvaW50LCBzbyB0aGF0JiMzOTtzIGNhbGxlZCB3aGVuIGEgc29ja2V0IGJ1ZmZlciBpcyBmcmVlZC4gQW5kIGBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVgIGlzIHRyaWdnZXJlZCBmcm9tIHRoZSBgZGV2bGlua190cmFwX3JlcG9ydGAgdHJhY2Vwb2ludC4gVGhlIG90aGVyIHR3byBhcmUgc2l6ZSBjYWxjdWxhdGlvbiB1dGlsaXRpZXMgZm9yIHRoZSBuZXRsaW5rIG1lc3NhZ2VzLgoKTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uIOKAkyBhcmUgYW55IG9mIHRoZXNlIGRpcmVjdGx5IGNhbGxhYmxlIGZyb20gc3lzY2FsbHM/IE5vcGUsIG5vdCBkaXJlY3RseS4gVGhleeKAmXJlIGNhbGxlZCBpbmRpcmVjdGx5IHZpYSB0cmFjZXBvaW50cyBvciBuZXRsaW5rIG1lc3NhZ2VzLiBIb3dldmVyLCB0aGlua2luZyBsaWtlIGEgZnV6emVyLCBJIHJlYWxpemUgdGhhdCBmdXp6aW5nIHRoZSBwYWNrZXQgZHJvcHBpbmcgb3Igc2VuZGluZyB0aGUgcmVsZXZhbnQgbmV0bGluayBtZXNzYWdlcyBjb3VsZCBhYnNvbHV0ZWx5IHRyaWdnZXIgdGhlc2UgZnVuY3Rpb25zLiBTbywgZm9jdXNpbmcgb24gdGhlbSBzZWVtcyBsaWtlIGEgc29saWQgYXBwcm9hY2ggZm9yIG5vdy4KCkp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgSSBtaWdodCBiZSBtaXNzaW5nLiBHb3R0YSBjb3ZlciBhbGwgdGhlIGJhc2VzLCBvZiBjb3Vyc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkVUX0RST1BfTU9OSVRPUiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9LY29uZmlnPTM4Nj1jb25maWcgTkVUX1BLVEdFTlxuLS1cbm5ldC9LY29uZmlnLTQwMC1cbm5ldC9LY29uZmlnOjQwMTpjb25maWcgTkVUX0RST1BfTU9OSVRPUlxubmV0L0tjb25maWctNDAyLVx0dHJpc3RhdGUgXCYjMzQ7TGVnYWN5IG5ldHdvcmsgcGFja2V0IGRyb3AgYWxlcnRpbmcgc2VydmljZVwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1NDIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyB6ZXJvIGluIG9uIGEgZ29vZCBzeW1ib2wgZm9yIGFuYWx5c2lzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW52ZXN0aWdhdGUgYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAuIFRoZSBiZWF1dHkgb2YgdGhpcyBpcyB0aGF0IGl0JiMzOTtzIHRyaWdnZXJlZCBvbiBldmVyeSBzaW5nbGUgZHJvcHBlZCBwYWNrZXQgaWYgdGhlIGRyb3AgbW9uaXRvciBpcyBhY3RpdmUuIFRoaXMgY291bGQgYmUgYSByZWFsbHkgaG90IHBhdGgsIGVzcGVjaWFsbHkgdW5kZXIgaGVhdnkgcGFja2V0IGxvc3MuIEhvd2V2ZXIsIEkgaGF2ZSB0byByZW1lbWJlciB0aGF0IGl0JiMzOTtzIG9ubHkgYWN0aXZlIHdoZW4gZHJvcCBtb25pdG9yIGlzIGVuYWJsZWQuIFRoYXQmIzM5O3MgYSBrZXkgZGV0YWlsIHRvIGtlZXAgaW4gbWluZCBmb3IgaW50ZXJwcmV0aW5nIGFueSBwZXJmb3JtYW5jZSBkYXRhLgoKTmV4dCwgSSBuZWVkIHRvIGNvbnNpZGVyIGBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplYCBhbmQgYG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVgLiBUaG9zZSBhcmUgdGhlIGZ1bmN0aW9ucyB0aGF0IGtpY2sgaW4gd2hlbiByZXBvcnRzIGFyZSBhY3R1YWxseSBnZW5lcmF0ZWQuIFNvIG15IG5leHQgc3RlcCBpcyB0byBjYXJlZnVsbHkgZXhhbWluZSB0aGUgY2FsbCBzaXRlcyBmb3IgdGhvc2UgZnVuY3Rpb25zLiBVbmRlcnN0YW5kaW5nIHdoZW4gYW5kIHdoeSByZXBvcnRzIGFyZSBnZW5lcmF0ZWQgd2lsbCBnaXZlIG1lIGEgYnJvYWRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jPTU0Nj1zdGF0aWMgc2l6ZV90IG5ldF9kbV9pbl9wb3J0X3NpemUodm9pZClcbi0tXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy01NTgtXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzo1NTk6c3RhdGljIHNpemVfdCBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplKHNpemVfdCBwYXlsb2FkX2xlbilcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jLTU2MC17XG4tLVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9NjkyPXN0YXRpYyB2b2lkIG5ldF9kbV9wYWNrZXRfcmVwb3J0KHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmMtNzA4LVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmM6NzA5Olx0bXNnID0gbmxtc2dfbmV3KG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUocGF5bG9hZF9sZW4pLCBHRlBfS0VSTkVMKTtcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jLTcxMC1cdGlmICghbXNnKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxMDYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOgoKKipJbnZlc3RpZ2F0aW5nIGEgTmV0d29yayBEYXRhIE1hbmFnZW1lbnQgUGFja2V0IFJlcG9ydCoqCgpPa2F5LCBzbyBgbmV0X2RtX3BhY2tldF9yZXBvcnRgIGlzIGZpcmluZyBvZmYuIFJpZ2h0IG9mZiB0aGUgYmF0LCB0aGF0IHNjcmVhbXMgJiMzNDthc3luY2hyb25vdXMgcHJvY2VzcyYjMzQ7IOKAkyBpdCYjMzk7cyBydW5uaW5nIGZyb20gZWl0aGVyIGEgd29ya3F1ZXVlIG9yIGEgdGltZXIsIHdoaWNoIG1lYW5zIGl0IGlzbiYjMzk7dCBkaXJlY3RseSB0aWVkIHRvIGEgdXNlci1zcGFjZSByZXF1ZXN0IG9yIGEgc3luY2hyb25vdXMgaW50ZXJydXB0LiBHb3R0YSBrZWVwIHRoYXQgaW4gbWluZDsgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyBhbmQgY29uY3VycmVuY3kgaXNzdWVzIGFyZSBhbHdheXMgYSBjb25jZXJuIGluIHRob3NlIGNvbnRleHRzLgoKTGV0JiMzOTtzIGRyaWxsIGRvd24gYW5kIHNlZSB3aGVyZSB0aGlzIGlzIG9yaWdpbmF0aW5nLiBUaGUgbmV4dCB0aGluZyBJJiMzOTtkIGNoZWNrIGlzIGBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVgLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBkZWJ1Z2dpbmcgc3RhcnRzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVyZSB0aGUgbmV0d29yayBoYXJkd2FyZSBpcyBhY3R1YWxseSByZXBvcnRpbmcuIFRoZW4sIEkgY2FuIHN0YXJ0IHRvIHVuZGVyc3RhbmQgdGhlIGNoYWluIG9mIGV2ZW50cyB0aGF0IGxlYWRzIHRvIGBuZXRfZG1fcGFja2V0X3JlcG9ydGAuIFRoaXMgaXMgY3JpdGljYWwgZm9yIGRpYWdub3NpbmcgcGVyZm9ybWFuY2UgYm90dGxlbmVja3Mgb3IgaW50ZXJtaXR0ZW50IGVycm9ycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2NvcmUvZHJvcF9tb25pdG9yLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9OTYyPXN0YXRpYyB2b2lkXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzo5NjM6bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlKHZvaWQgKmlnbm9yZSwgY29uc3Qgc3RydWN0IGRldmxpbmsgKmRldmxpbmssXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy05NjQtXHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9MTAxMz1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kbV9hbGVydF9vcHMgbmV0X2RtX2FsZXJ0X3BhY2tldF9vcHMgPSB7XG4tLVxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmMtMTAxNy1cdC5od193b3JrX2l0ZW1fZnVuY1x0PSBuZXRfZG1faHdfcGFja2V0X3dvcmssXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzoxMDE4Olx0Lmh3X3RyYXBfcHJvYmVcdFx0PSBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmUsXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy0xMDE5LX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU2MDYKCQkJCQkJCW91dHB1dDogMTk5CgkJCQkJCQl0aG91Z2h0czogMzY2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIERyb3AgTW9uaXRvciBTdWJzeXN0ZW0gQ2hhbmdlcyoqCgpPa2F5LCBzbyBJJiMzOTt2ZSByZXZpZXdlZCB0aGVzZSBjaGFuZ2VzLCBhbmQgZnVuY3Rpb25hbGx5LCB0aGV5IGxvb2sgc291bmQuIFRoZSBzcGlubG9jayBmaXggaXMgY3J1Y2lhbDsgdGhhdCByYWNlIGNvbmRpdGlvbiB3aGVyZSBJUlFzIHdlcmUgZW5hYmxlZCBwcmVtYXR1cmVseSBiZWZvcmUgYHU2NF9zdGF0c191cGRhdGVfYmVnaW5gIHdhcyBhIHBvdGVudGlhbCBuaWdodG1hcmUuIFJlZW50cmFuY3kgb24gdGhlIHNhbWUgQ1BVIGR1ZSB0byBhIGRyb3BwZWQgcGFja2V0IHRyaWdnZXJpbmcgYSB0cmFjZXBvaW50IGNvdWxkIGhhdmUgYmVlbiBuYXN0eS4gR29vZCB0byBzZWUgdGhhdCYjMzk7cyBhZGRyZXNzZWQuIFRoZSBgbmxhX3RvdGFsX3NpemVfNjRiaXRgIGNoYW5nZSBpcyBlcXVhbGx5IGltcG9ydGFudDsgYSBzaW1wbGUgZml4IGJ1dCBjcml0aWNhbCB0byBjb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplIGNhbGN1bGF0aW9ucyBmb3IgdGhvc2UgNjQtYml0IGF0dHJpYnV0ZXMgd2hpY2ggd291bGQgYmUgcHJvYmxlbWF0aWMgaWYgbm90IGFsaWduZWQgY29ycmVjdGx5LgoKU2luY2UgdGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSwgaXQmIzM5O3MgZGVmaW5pdGVseSB0aW1lIHRvIGZ1enogdGhlbSB0byBiZSBzYWZlLiBJJiMzOTtsbCBmbGFnIHRoaXMgYXMgYFdvcnRoRnV6emluZz10cnVlYC4KCkZvciB0aGUgZnV6emluZywgbGV0JiMzOTtzIGZvY3VzIG9uIHRoZXNlIHNwZWNpZmljIHN5bWJvbHM6IGBuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXRgLCBgbmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZWAsIGBuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplYCwgYW5kIGBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVgLiBXYWl0LCBob2xkIG9uLiBgbmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZWAgYW5kIGBuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplYCBhcmUgc3RhdGljIGZ1bmN0aW9uczsgdGhleSYjMzk7cmUgcGVyZmVjdGx5IHNhZmUgdG8gaW5jbHVkZS4gYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAgaXMgYWxzbyBzdGF0aWMuCgpJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3MuIEkgdGhpbmsgd2Ugb25seSBuZWVkIGBORVRfRFJPUF9NT05JVE9SYCwgYnV0IGxldCYjMzk7cyBjb25maXJtLiBZZXMsIGl0JiMzOTtzIHN1ZmZpY2llbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjM1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtORVRfRFJPUF9NT05JVE9SJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bmV0X2RtX3BhY2tldF90cmFjZV9rZnJlZV9za2JfaGl0JiMzNDssCiAgICAmIzM0O25ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUmIzM0OywKICAgICYjMzQ7bmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZSYjMzQ7LAogICAgJiMzNDtuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBieSBtb3ZpbmcgYHNwaW5fdW5sb2NrX2lycXJlc3RvcmVgIGFmdGVyIGB1NjRfc3RhdHNfdXBkYXRlX2VuZGAgdG8gcHJldmVudCBJUlEgcmVlbnRyYW5jeSBkdXJpbmcgc3RhdHMgdXBkYXRlLiBJdCBhbHNvIGZpeGVzIG5ldGxpbmsgbWVzc2FnZSBzaXplIGNhbGN1bGF0aW9uIGZvciA2NC1iaXQgYXR0cmlidXRlcyBieSB1c2luZyBgbmxhX3RvdGFsX3NpemVfNjRiaXRgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBkcm9wIG1vbml0b3Igc3Vic3lzdGVtIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgbWVtb3J5IGNvcnJ1cHRpb24gKGUuZy4gZnJvbSBpbmNvcnJlY3QgbmV0bGluayBtZXNzYWdlIHNpemVzKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX0RST1BfTU9OSVRPUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O25ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdCYjMzQ7LAogICAgJiMzNDtuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplJiMzNDssCiAgICAmIzM0O25ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUmIzM0OywKICAgICYjMzQ7bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYnkgbW92aW5nIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCBhZnRlciBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIHRvIHByZXZlbnQgSVJRIHJlZW50cmFuY3kgZHVyaW5nIHN0YXRzIHVwZGF0ZS4gSXQgYWxzbyBmaXhlcyBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxjdWxhdGlvbiBmb3IgNjQtYml0IGF0dHJpYnV0ZXMgYnkgdXNpbmcgYG5sYV90b3RhbF9zaXplXzY0Yml0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBjb3JydXB0aW9uIChlLmcuIGZyb20gaW5jb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTozNToxNi4wMzUzNTMxMVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNTc1MjU4Njk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVF9EUk9QX01PTklUT1JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXRcIixcbiAgICBcIm5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgICBcIm5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgICBcIm5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYnkgbW92aW5nIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCBhZnRlciBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIHRvIHByZXZlbnQgSVJRIHJlZW50cmFuY3kgZHVyaW5nIHN0YXRzIHVwZGF0ZS4gSXQgYWxzbyBmaXhlcyBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxjdWxhdGlvbiBmb3IgNjQtYml0IGF0dHJpYnV0ZXMgYnkgdXNpbmcgYG5sYV90b3RhbF9zaXplXzY0Yml0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBjb3JydXB0aW9uIChlLmcuIGZyb20gaW5jb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplcykuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjE2LjAzNTM2MDJaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxNzI4NjExMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGI5NTdiMmQ4ZGQzODQ2YWFiYmIyZDFjMGU0ODQxM2E1ZmNjNTY1NGVcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMjMgMTU6MzU6MTQgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZHJvcF9tb25pdG9yLmMgYi9uZXQvY29yZS9kcm9wX21vbml0b3IuY1xcbmluZGV4IDJiZjNjYWI1ZTU1N2ExLi44ODAwYTIxZGVkMDg0MCAxMDA2NDRcXG4tLS0gYS9uZXQvY29yZS9kcm9wX21vbml0b3IuY1xcbisrKyBiL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jXFxuQEAgLTUzMCwxMCArNTMwLDEwIEBAIHN0YXRpYyB2b2lkIG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdCh2b2lkICppZ25vcmUsXFxuIFxcdHJldHVybjtcXG4gXFxuIHVubG9ja19mcmVlOlxcbi1cXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZkYXRhLVxcdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2ZGF0YS1cXHUwMDNlc3RhdHMuc3luY3ApO1xcbiBcXHR1NjRfc3RhdHNfaW5jKFxcdTAwMjZkYXRhLVxcdTAwM2VzdGF0cy5kcm9wcGVkKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXFx1MDAyNmRhdGEtXFx1MDAzZXN0YXRzLnN5bmNwKTtcXG4rXFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2ZGF0YS1cXHUwMDNlZHJvcF9xdWV1ZS5sb2NrLCBmbGFncyk7XFxuIFxcdGNvbnN1bWVfc2tiKG5za2IpO1xcbiB9XFxuIFxcbkBAIC01NjYsMTMgKzU2NiwxMyBAQCBzdGF0aWMgc2l6ZV90IG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuKVxcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR0lOICovXFxuIFxcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTE2KSkgK1xcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfUEMgKi9cXG4tXFx0ICAgICAgIG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKSArXFxuK1xcdCAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgK1xcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfU1lNQk9MICovXFxuIFxcdCAgICAgICBubGFfdG90YWxfc2l6ZShORVRfRE1fTUFYX1NZTUJPTF9MRU4gKyAxKSArXFxuIFxcdCAgICAgICAvKiBORVRfRE1fQVRUUl9JTl9QT1JUICovXFxuIFxcdCAgICAgICBuZXRfZG1faW5fcG9ydF9zaXplKCkgK1xcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfVElNRVNUQU1QICovXFxuLVxcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTY0KSkgK1xcbitcXHQgICAgICAgbmxhX3RvdGFsX3NpemVfNjRiaXQoc2l6ZW9mKHU2NCkpICtcXG4gXFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX09SSUdfTEVOICovXFxuIFxcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTMyKSkgK1xcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfUFJPVE8gKi9cXG5AQCAtNzY4LDcgKzc2OCw3IEBAIG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuLFxcbiBcXHQgICAgICAgLyogTkVUX0RNX0FUVFJfRkxPV19BQ1RJT05fQ09PS0lFICovXFxuIFxcdCAgICAgICBuZXRfZG1fZmxvd19hY3Rpb25fY29va2llX3NpemUoaHdfbWV0YWRhdGEpICtcXG4gXFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX1RJTUVTVEFNUCAqL1xcbi1cXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICtcXG4rXFx0ICAgICAgIG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKSArXFxuIFxcdCAgICAgICAvKiBORVRfRE1fQVRUUl9PUklHX0xFTiAqL1xcbiBcXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICtcXG4gXFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX1BST1RPICovXFxuQEAgLTEwMDEsMTAgKzEwMDEsMTAgQEAgbmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlKHZvaWQgKmlnbm9yZSwgY29uc3Qgc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxuIFxcdHJldHVybjtcXG4gXFxuIHVubG9ja19mcmVlOlxcbi1cXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZod19kYXRhLVxcdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2aHdfZGF0YS1cXHUwMDNlc3RhdHMuc3luY3ApO1xcbiBcXHR1NjRfc3RhdHNfaW5jKFxcdTAwMjZod19kYXRhLVxcdTAwM2VzdGF0cy5kcm9wcGVkKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXFx1MDAyNmh3X2RhdGEtXFx1MDAzZXN0YXRzLnN5bmNwKTtcXG4rXFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2aHdfZGF0YS1cXHUwMDNlZHJvcF9xdWV1ZS5sb2NrLCBmbGFncyk7XFxuIFxcdG5ldF9kbV9od19tZXRhZGF0YV9mcmVlKG5faHdfbWV0YWRhdGEpO1xcbiBmcmVlOlxcbiBcXHRjb25zdW1lX3NrYihuc2tiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6MzU6MTYuNTUzNjIzNDQyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzIwNTY5ODAxMDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUX0RST1BfTU9OSVRPUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdFwiLFxuICAgIFwibmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZVwiLFxuICAgIFwibmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZVwiLFxuICAgIFwibmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBieSBtb3ZpbmcgYHNwaW5fdW5sb2NrX2lycXJlc3RvcmVgIGFmdGVyIGB1NjRfc3RhdHNfdXBkYXRlX2VuZGAgdG8gcHJldmVudCBJUlEgcmVlbnRyYW5jeSBkdXJpbmcgc3RhdHMgdXBkYXRlLiBJdCBhbHNvIGZpeGVzIG5ldGxpbmsgbWVzc2FnZSBzaXplIGNhbGN1bGF0aW9uIGZvciA2NC1iaXQgYXR0cmlidXRlcyBieSB1c2luZyBgbmxhX3RvdGFsX3NpemVfNjRiaXRgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBkcm9wIG1vbml0b3Igc3Vic3lzdGVtIHRoYXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgbm8gcmVncmVzc2lvbnMgb3IgbWVtb3J5IGNvcnJ1cHRpb24gKGUuZy4gZnJvbSBpbmNvcnJlY3QgbmV0bGluayBtZXNzYWdlIHNpemVzKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBiOTU3YjJkOGRkMzg0NmFhYmJiMmQxYzBlNDg0MTNhNWZjYzU2NTRlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMTU6MzU6MTQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvY29yZS9kcm9wX21vbml0b3IuYyBiL25ldC9jb3JlL2Ryb3BfbW9uaXRvci5jXG5pbmRleCAyYmYzY2FiNWU1NTdhMS4uODgwMGEyMWRlZDA4NDAgMTAwNjQ0XG4tLS0gYS9uZXQvY29yZS9kcm9wX21vbml0b3IuY1xuKysrIGIvbmV0L2NvcmUvZHJvcF9tb25pdG9yLmNcbkBAIC01MzAsMTAgKzUzMCwxMCBAQCBzdGF0aWMgdm9pZCBuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXQodm9pZCAqaWdub3JlLFxuIFx0cmV0dXJuO1xuIFxuIHVubG9ja19mcmVlOlxuLVx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkYXRhLVx1MDAzZWRyb3BfcXVldWUubG9jaywgZmxhZ3MpO1xuIFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZkYXRhLVx1MDAzZXN0YXRzLnN5bmNwKTtcbiBcdHU2NF9zdGF0c19pbmMoXHUwMDI2ZGF0YS1cdTAwM2VzdGF0cy5kcm9wcGVkKTtcbiBcdHU2NF9zdGF0c191cGRhdGVfZW5kKFx1MDAyNmRhdGEtXHUwMDNlc3RhdHMuc3luY3ApO1xuK1x0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZkYXRhLVx1MDAzZWRyb3BfcXVldWUubG9jaywgZmxhZ3MpO1xuIFx0Y29uc3VtZV9za2IobnNrYik7XG4gfVxuIFxuQEAgLTU2NiwxMyArNTY2LDEzIEBAIHN0YXRpYyBzaXplX3QgbmV0X2RtX3BhY2tldF9yZXBvcnRfc2l6ZShzaXplX3QgcGF5bG9hZF9sZW4pXG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR0lOICovXG4gXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUxNikpICtcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9QQyAqL1xuLVx0ICAgICAgIG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKSArXG4rXHQgICAgICAgbmxhX3RvdGFsX3NpemVfNjRiaXQoc2l6ZW9mKHU2NCkpICtcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9TWU1CT0wgKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShORVRfRE1fTUFYX1NZTUJPTF9MRU4gKyAxKSArXG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfSU5fUE9SVCAqL1xuIFx0ICAgICAgIG5ldF9kbV9pbl9wb3J0X3NpemUoKSArXG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfVElNRVNUQU1QICovXG4tXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHU2NCkpICtcbitcdCAgICAgICBubGFfdG90YWxfc2l6ZV82NGJpdChzaXplb2YodTY0KSkgK1xuIFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX09SSUdfTEVOICovXG4gXHQgICAgICAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHUzMikpICtcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9QUk9UTyAqL1xuQEAgLTc2OCw3ICs3NjgsNyBAQCBuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplKHNpemVfdCBwYXlsb2FkX2xlbixcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9GTE9XX0FDVElPTl9DT09LSUUgKi9cbiBcdCAgICAgICBuZXRfZG1fZmxvd19hY3Rpb25fY29va2llX3NpemUoaHdfbWV0YWRhdGEpICtcbiBcdCAgICAgICAvKiBORVRfRE1fQVRUUl9USU1FU1RBTVAgKi9cbi1cdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTY0KSkgK1xuK1x0ICAgICAgIG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKSArXG4gXHQgICAgICAgLyogTkVUX0RNX0FUVFJfT1JJR19MRU4gKi9cbiBcdCAgICAgICBubGFfdG90YWxfc2l6ZShzaXplb2YodTMyKSkgK1xuIFx0ICAgICAgIC8qIE5FVF9ETV9BVFRSX1BST1RPICovXG5AQCAtMTAwMSwxMCArMTAwMSwxMCBAQCBuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmUodm9pZCAqaWdub3JlLCBjb25zdCBzdHJ1Y3QgZGV2bGluayAqZGV2bGluayxcbiBcdHJldHVybjtcbiBcbiB1bmxvY2tfZnJlZTpcbi1cdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2aHdfZGF0YS1cdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcbiBcdHU2NF9zdGF0c191cGRhdGVfYmVnaW4oXHUwMDI2aHdfZGF0YS1cdTAwM2VzdGF0cy5zeW5jcCk7XG4gXHR1NjRfc3RhdHNfaW5jKFx1MDAyNmh3X2RhdGEtXHUwMDNlc3RhdHMuZHJvcHBlZCk7XG4gXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcdTAwMjZod19kYXRhLVx1MDAzZXN0YXRzLnN5bmNwKTtcbitcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2aHdfZGF0YS1cdTAwM2Vkcm9wX3F1ZXVlLmxvY2ssIGZsYWdzKTtcbiBcdG5ldF9kbV9od19tZXRhZGF0YV9mcmVlKG5faHdfbWV0YWRhdGEpO1xuIGZyZWU6XG4gXHRjb25zdW1lX3NrYihuc2tiKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjE2LjU1MzYyNTQ4MloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMDIwNzgzODUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoIHRvIG5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkgaGF2ZSBhIHBhdGNoIGhlcmUgdGhhdCdzIG1ha2luZyBhIGNvdXBsZSBvZiBjaGFuZ2VzIGluIGBuZXQvY29yZS9kcm9wX21vbml0b3IuY2AsIGFuZCBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCdzIHdvcnRoIHRocm93aW5nIHNvbWUgZnV6emluZyBhdC4gIExldCdzIHNlZSwgdGhlIHBhdGNoIHRvdWNoZXMgdHdvIGFyZWFzLiBGaXJzdCwgaXQgbW92ZXMgYHNwaW5fdW5sb2NrX2lycXJlc3RvcmVgICphZnRlciogYHU2NF9zdGF0c191cGRhdGVfZW5kYCBpbiBhIGNvdXBsZSBvZiBmdW5jdGlvbnMsIGBuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXRgIGFuZCBgbmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlYC4gIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgbGlrZWx5IGEgYnVnIGZpeCBvZiBzb21lIHNvcnQsIHBlcmhhcHMgYSByYWNlIGNvbmRpdGlvbiBvciBhIHBvdGVudGlhbCBsb2NrZGVwIHdhcm5pbmcuIEkgbmVlZCB0byB0aGluayBhYm91dCB0aGF0IGB1NjRfc3RhdHNfdXBkYXRlX2JlZ2luL2VuZGAgcGFpciBhbmQgd2h5IHdlIG5lZWQgcHJvdGVjdGlvbiBhcm91bmQgdGhlbS4gIEl0J3MgcHJvYmFibHkgdG8gbWFrZSB0aGUgc3RhdHMgdXBkYXRlIHdpdGggdGhlIGxvY2ssIHRob3VnaCBJIGtub3cgdGhvc2UgZnVuY3Rpb25zIGRvbid0ICpzdHJpY3RseSogbmVlZCB0aGUgc3BpbmxvY2sgaWYgdGhleSBhcmUgcGVyLUNQVS4uLiBidXQgd2FpdCwgdGhlIGBkYXRhLVx1MDAzZXN0YXRzLnN5bmNwYCBtaWdodCBuZWVkIHByb3RlY3Rpb24gaWYgbXVsdGlwbGUgQ1BVcyBjYW4gaGl0IHRoZSBzYW1lIGBkYXRhYCEgSG93ZXZlciwgdGhlIGBkYXRhYCBpdHNlbGYgaXMgYWN0dWFsbHkgYFx1MDAyNnBlcl9jcHUobmV0X2RtX2RhdGEsIGNwdSlgIHNvIGl0ICppcyogcGVyLWNwdS4gQnV0LCBjb3VsZCBhbiBpbnRlcnJ1cHQgcG90ZW50aWFsbHkgaGl0IHRoZSBzYW1lIG1lbW9yeT8gSG1tbSwgIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCByZS1lbmFibGVzIGludGVycnVwdHMuIElmIHRob3NlIHdlcmUgZW5hYmxlZCAqYmVmb3JlKiBgdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbmAsIGFuIGludGVycnVwdCAqY291bGQqIGNvbWUgaW4gYW5kIHRyeSB0byB1cGRhdGUgdGhlIHNhbWUgc3RhdHMsIGxlYWRpbmcgdG8gbmVzdGVkIGB1NjRfc3RhdHNfdXBkYXRlX2JlZ2luYCBjYWxscyDigJMgd2hpY2ggaXMgZGVmaW5pdGVseSBhIG5vLW5vISBTbywgbW92aW5nIHRoYXQgdW5sb2NrIGNhbGwgKmFmdGVyKiB0aGUgdXBkYXRlIGNhbGwgaXMgYWJzb2x1dGVseSBwcm90ZWN0aW5nIGFnYWluc3QgSVJRcy4gVGhhdCBtYWtlcyBzZW5zZS5cblxuU2Vjb25kbHksIGl0J3MgY2hhbmdpbmcgYG5sYV90b3RhbF9zaXplKHNpemVvZih1NjQpKWAgdG8gYG5sYV90b3RhbF9zaXplXzY0Yml0KHNpemVvZih1NjQpKWAgaW4gYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgIGFuZCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAuIFRoaXMgaXMgYSBzdHJhaWdodGZvcndhcmQgY2hhbmdlIHJlbGF0ZWQgdG8gbmV0bGluayBhdHRyaWJ1dGUgc2l6ZSBjYWxjdWxhdGlvbnMgZm9yIDY0LWJpdCBhdHRyaWJ1dGVzLiBXZSBuZWVkIHByb3BlciBwYWRkaW5nIGZvciB0aGVzZSwgc28gdGhhdCdzIGFsbCBhYm91dCBtYWtpbmcgc3VyZSB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBhbGlnbmVkIGNvcnJlY3RseS5cblxuQWxyaWdodCwgc28gdGhpcyBpcyBmdW5jdGlvbmFsIGNvZGUgaW4gdGhlIG5ldHdvcmtpbmcgY29yZSwgc3BlY2lmaWNhbGx5IHRoZSBkcm9wIG1vbml0b3IuIFRoZSBuZXh0IHF1ZXN0aW9uIGlzLCBpcyB0aGlzIGNvZGUgZXZlbiAqcmVhY2hhYmxlKj8gWWVwLCB0aGUgZHJvcCBtb25pdG9yIGlzIHRoYXQgbmV0bGluay1iYXNlZCBzZXJ2aWNlIHRoYXQgbW9uaXRvcnMgZHJvcHBlZCBwYWNrZXRzLiBTbywgaG93IGNhbiB3ZSB0ZXN0IHRoaXM/IFdlIGNhbiBzZW5kIG5ldGxpbmsgY29tbWFuZHMgdG8gY29uZmlndXJlIHRoZSBkcm9wIG1vbml0b3IsIGFuZCB0aGVuIHRyaWdnZXIgc29tZSBwYWNrZXQgZHJvcHMgdG8gZXhlcmNpc2UgdGhlIGNvZGUuXG5cbk5vdyBJIG5lZWQgdG8gZmluZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZHJvcCBtb25pdG9yLiBgbmV0L2NvcmUvZHJvcF9tb25pdG9yLmNgIGlzIGxpa2VseSBjb21waWxlZCB3aXRoIHRoZSBgQ09ORklHX05FVF9EUk9QX01PTklUT1JgIG9wdGlvbi4gTGV0IG1lIGNoZWNrIHRoZSBgbmV0L2NvcmUvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhhdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRvIGJ1aWxkIHRoZSBtb2R1bGUgYW5kIGVuYWJsZSB0aGUgY29uZmlnLCBhbmQgdGhlbiBnZXQgdG8gZnV6emluZyBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU5NCwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjI2LjU3NDQxMjI3NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzA0NDc4MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHJvcF9tb25pdG9yLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvTWFrZWZpbGU9MzA9b2JqLSQoQ09ORklHX1RSQUNFUE9JTlRTKSArPSBuZXQtdHJhY2VzLm9cXG5uZXQvY29yZS9NYWtlZmlsZTozMTpvYmotJChDT05GSUdfTkVUX0RST1BfTU9OSVRPUikgKz0gZHJvcF9tb25pdG9yLm9cXG5uZXQvY29yZS9NYWtlZmlsZS0zMi1vYmotJChDT05GSUdfTkVUX0lFRUU4MDIxUV9IRUxQRVJTKSArPSBpZWVlODAyMXFfaGVscGVycy5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjI2LjcwNDg2NjQ2NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzMTkyNDg3MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYE5FVF9EUk9QX01PTklUT1JgIENvZGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGUgYE5FVF9EUk9QX01PTklUT1JgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGFuZCB0cnlpbmcgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZS4gVGhlIG1haW4gZnVuY3Rpb25zIHRoYXQgc3RhbmQgb3V0IGFyZTogYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAsIGBuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplYCwgYG5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVgLCBhbmQgYG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZWAuXG5cblJpZ2h0LCBgbmV0X2RtX3BhY2tldF90cmFjZV9rZnJlZV9za2JfaGl0YCBpcyB0cmlnZ2VyZWQgYnkgdGhlIGBrZnJlZV9za2JgIHRyYWNlcG9pbnQsIHNvIHRoYXQncyBjYWxsZWQgd2hlbiBhIHNvY2tldCBidWZmZXIgaXMgZnJlZWQuIEFuZCBgbmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlYCBpcyB0cmlnZ2VyZWQgZnJvbSB0aGUgYGRldmxpbmtfdHJhcF9yZXBvcnRgIHRyYWNlcG9pbnQuIFRoZSBvdGhlciB0d28gYXJlIHNpemUgY2FsY3VsYXRpb24gdXRpbGl0aWVzIGZvciB0aGUgbmV0bGluayBtZXNzYWdlcy5cblxuTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uIOKAkyBhcmUgYW55IG9mIHRoZXNlIGRpcmVjdGx5IGNhbGxhYmxlIGZyb20gc3lzY2FsbHM/IE5vcGUsIG5vdCBkaXJlY3RseS4gVGhleeKAmXJlIGNhbGxlZCBpbmRpcmVjdGx5IHZpYSB0cmFjZXBvaW50cyBvciBuZXRsaW5rIG1lc3NhZ2VzLiBIb3dldmVyLCB0aGlua2luZyBsaWtlIGEgZnV6emVyLCBJIHJlYWxpemUgdGhhdCBmdXp6aW5nIHRoZSBwYWNrZXQgZHJvcHBpbmcgb3Igc2VuZGluZyB0aGUgcmVsZXZhbnQgbmV0bGluayBtZXNzYWdlcyBjb3VsZCBhYnNvbHV0ZWx5IHRyaWdnZXIgdGhlc2UgZnVuY3Rpb25zLiBTbywgZm9jdXNpbmcgb24gdGhlbSBzZWVtcyBsaWtlIGEgc29saWQgYXBwcm9hY2ggZm9yIG5vdy5cblxuSnVzdCB0byBiZSB0aG9yb3VnaCwgSSBzaG91bGQgZG91YmxlIGNoZWNrIHRoYXQgdGhlcmUgYXJlbid0IGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIEkgbWlnaHQgYmUgbWlzc2luZy4gR290dGEgY292ZXIgYWxsIHRoZSBiYXNlcywgb2YgY291cnNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODc5LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjMyLjAyNDExNzIxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg1NjAxMjA1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk5FVF9EUk9QX01PTklUT1JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L0tjb25maWc9Mzg2PWNvbmZpZyBORVRfUEtUR0VOXFxuLS1cXG5uZXQvS2NvbmZpZy00MDAtXFxubmV0L0tjb25maWc6NDAxOmNvbmZpZyBORVRfRFJPUF9NT05JVE9SXFxubmV0L0tjb25maWctNDAyLVxcdHRyaXN0YXRlIFxcXCJMZWdhY3kgbmV0d29yayBwYWNrZXQgZHJvcCBhbGVydGluZyBzZXJ2aWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTozNTozMi4xMDk3MjMxMDRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTQ0NDc5MzIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyB6ZXJvIGluIG9uIGEgZ29vZCBzeW1ib2wgZm9yIGFuYWx5c2lzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW52ZXN0aWdhdGUgYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAuIFRoZSBiZWF1dHkgb2YgdGhpcyBpcyB0aGF0IGl0J3MgdHJpZ2dlcmVkIG9uIGV2ZXJ5IHNpbmdsZSBkcm9wcGVkIHBhY2tldCBpZiB0aGUgZHJvcCBtb25pdG9yIGlzIGFjdGl2ZS4gVGhpcyBjb3VsZCBiZSBhIHJlYWxseSBob3QgcGF0aCwgZXNwZWNpYWxseSB1bmRlciBoZWF2eSBwYWNrZXQgbG9zcy4gSG93ZXZlciwgSSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgaXQncyBvbmx5IGFjdGl2ZSB3aGVuIGRyb3AgbW9uaXRvciBpcyBlbmFibGVkLiBUaGF0J3MgYSBrZXkgZGV0YWlsIHRvIGtlZXAgaW4gbWluZCBmb3IgaW50ZXJwcmV0aW5nIGFueSBwZXJmb3JtYW5jZSBkYXRhLlxuXG5OZXh0LCBJIG5lZWQgdG8gY29uc2lkZXIgYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgIGFuZCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAuIFRob3NlIGFyZSB0aGUgZnVuY3Rpb25zIHRoYXQga2ljayBpbiB3aGVuIHJlcG9ydHMgYXJlIGFjdHVhbGx5IGdlbmVyYXRlZC4gU28gbXkgbmV4dCBzdGVwIGlzIHRvIGNhcmVmdWxseSBleGFtaW5lIHRoZSBjYWxsIHNpdGVzIGZvciB0aG9zZSBmdW5jdGlvbnMuIFVuZGVyc3RhbmRpbmcgd2hlbiBhbmQgd2h5IHJlcG9ydHMgYXJlIGdlbmVyYXRlZCB3aWxsIGdpdmUgbWUgYSBicm9hZGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIG92ZXJhbGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU0MiwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTozNTozNi4yNTQyMDQ5NTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ2NDExMDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvZHJvcF9tb25pdG9yLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9NTQ2PXN0YXRpYyBzaXplX3QgbmV0X2RtX2luX3BvcnRfc2l6ZSh2b2lkKVxcbi0tXFxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmMtNTU4LVxcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jOjU1OTpzdGF0aWMgc2l6ZV90IG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUoc2l6ZV90IHBheWxvYWRfbGVuKVxcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jLTU2MC17XFxuLS1cXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYz02OTI9c3RhdGljIHZvaWQgbmV0X2RtX3BhY2tldF9yZXBvcnQoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jLTcwOC1cXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzo3MDk6XFx0bXNnID0gbmxtc2dfbmV3KG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemUocGF5bG9hZF9sZW4pLCBHRlBfS0VSTkVMKTtcXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy03MTAtXFx0aWYgKCFtc2cpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjM2LjQwMDYyMDAwMloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDI5NDgyMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgYSBOZXR3b3JrIERhdGEgTWFuYWdlbWVudCBQYWNrZXQgUmVwb3J0KipcblxuT2theSwgc28gYG5ldF9kbV9wYWNrZXRfcmVwb3J0YCBpcyBmaXJpbmcgb2ZmLiBSaWdodCBvZmYgdGhlIGJhdCwgdGhhdCBzY3JlYW1zIFwiYXN5bmNocm9ub3VzIHByb2Nlc3NcIiDigJMgaXQncyBydW5uaW5nIGZyb20gZWl0aGVyIGEgd29ya3F1ZXVlIG9yIGEgdGltZXIsIHdoaWNoIG1lYW5zIGl0IGlzbid0IGRpcmVjdGx5IHRpZWQgdG8gYSB1c2VyLXNwYWNlIHJlcXVlc3Qgb3IgYSBzeW5jaHJvbm91cyBpbnRlcnJ1cHQuIEdvdHRhIGtlZXAgdGhhdCBpbiBtaW5kOyBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIGFuZCBjb25jdXJyZW5jeSBpc3N1ZXMgYXJlIGFsd2F5cyBhIGNvbmNlcm4gaW4gdGhvc2UgY29udGV4dHMuXG5cbkxldCdzIGRyaWxsIGRvd24gYW5kIHNlZSB3aGVyZSB0aGlzIGlzIG9yaWdpbmF0aW5nLiBUaGUgbmV4dCB0aGluZyBJJ2QgY2hlY2sgaXMgYG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZWAuIFRoYXQncyB3aGVyZSB0aGUgZGVidWdnaW5nIHN0YXJ0cy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhlIG5ldHdvcmsgaGFyZHdhcmUgaXMgYWN0dWFsbHkgcmVwb3J0aW5nLiBUaGVuLCBJIGNhbiBzdGFydCB0byB1bmRlcnN0YW5kIHRoZSBjaGFpbiBvZiBldmVudHMgdGhhdCBsZWFkcyB0byBgbmV0X2RtX3BhY2tldF9yZXBvcnRgLiBUaGlzIGlzIGNyaXRpY2FsIGZvciBkaWFnbm9zaW5nIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzIG9yIGludGVybWl0dGVudCBlcnJvcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxMDYsIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTozNTozOS44NDM1NzEzNDJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg3MDQ2MDY0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvY29yZS9kcm9wX21vbml0b3IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvY29yZS9kcm9wX21vbml0b3IuYz05NjI9c3RhdGljIHZvaWRcXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYzo5NjM6bmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlKHZvaWQgKmlnbm9yZSwgY29uc3Qgc3RydWN0IGRldmxpbmsgKmRldmxpbmssXFxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmMtOTY0LVxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxubmV0L2NvcmUvZHJvcF9tb25pdG9yLmM9MTAxMz1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kbV9hbGVydF9vcHMgbmV0X2RtX2FsZXJ0X3BhY2tldF9vcHMgPSB7XFxuLS1cXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy0xMDE3LVxcdC5od193b3JrX2l0ZW1fZnVuY1xcdD0gbmV0X2RtX2h3X3BhY2tldF93b3JrLFxcbm5ldC9jb3JlL2Ryb3BfbW9uaXRvci5jOjEwMTg6XFx0Lmh3X3RyYXBfcHJvYmVcXHRcXHQ9IG5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZSxcXG5uZXQvY29yZS9kcm9wX21vbml0b3IuYy0xMDE5LX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjM1OjM5LjkzMDYyMzk4NloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NTE4NjgyMTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIERyb3AgTW9uaXRvciBTdWJzeXN0ZW0gQ2hhbmdlcyoqXG5cbk9rYXksIHNvIEkndmUgcmV2aWV3ZWQgdGhlc2UgY2hhbmdlcywgYW5kIGZ1bmN0aW9uYWxseSwgdGhleSBsb29rIHNvdW5kLiBUaGUgc3BpbmxvY2sgZml4IGlzIGNydWNpYWw7IHRoYXQgcmFjZSBjb25kaXRpb24gd2hlcmUgSVJRcyB3ZXJlIGVuYWJsZWQgcHJlbWF0dXJlbHkgYmVmb3JlIGB1NjRfc3RhdHNfdXBkYXRlX2JlZ2luYCB3YXMgYSBwb3RlbnRpYWwgbmlnaHRtYXJlLiBSZWVudHJhbmN5IG9uIHRoZSBzYW1lIENQVSBkdWUgdG8gYSBkcm9wcGVkIHBhY2tldCB0cmlnZ2VyaW5nIGEgdHJhY2Vwb2ludCBjb3VsZCBoYXZlIGJlZW4gbmFzdHkuIEdvb2QgdG8gc2VlIHRoYXQncyBhZGRyZXNzZWQuIFRoZSBgbmxhX3RvdGFsX3NpemVfNjRiaXRgIGNoYW5nZSBpcyBlcXVhbGx5IGltcG9ydGFudDsgYSBzaW1wbGUgZml4IGJ1dCBjcml0aWNhbCB0byBjb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplIGNhbGN1bGF0aW9ucyBmb3IgdGhvc2UgNjQtYml0IGF0dHJpYnV0ZXMgd2hpY2ggd291bGQgYmUgcHJvYmxlbWF0aWMgaWYgbm90IGFsaWduZWQgY29ycmVjdGx5LlxuXG5TaW5jZSB0aGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBkcm9wIG1vbml0b3Igc3Vic3lzdGVtLCBpdCdzIGRlZmluaXRlbHkgdGltZSB0byBmdXp6IHRoZW0gdG8gYmUgc2FmZS4gSSdsbCBmbGFnIHRoaXMgYXMgYFdvcnRoRnV6emluZz10cnVlYC5cblxuRm9yIHRoZSBmdXp6aW5nLCBsZXQncyBmb2N1cyBvbiB0aGVzZSBzcGVjaWZpYyBzeW1ib2xzOiBgbmV0X2RtX3BhY2tldF90cmFjZV9rZnJlZV9za2JfaGl0YCwgYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgLCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAsIGFuZCBgbmV0X2RtX2h3X3RyYXBfcGFja2V0X3Byb2JlYC4gV2FpdCwgaG9sZCBvbi4gYG5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVgIGFuZCBgbmV0X2RtX2h3X3BhY2tldF9yZXBvcnRfc2l6ZWAgYXJlIHN0YXRpYyBmdW5jdGlvbnM7IHRoZXkncmUgcGVyZmVjdGx5IHNhZmUgdG8gaW5jbHVkZS4gYG5ldF9kbV9wYWNrZXRfdHJhY2Vfa2ZyZWVfc2tiX2hpdGAgaXMgYWxzbyBzdGF0aWMuXG5cbkknbGwgZG91YmxlLWNoZWNrIHRoZSBjb25maWdzLiBJIHRoaW5rIHdlIG9ubHkgbmVlZCBgTkVUX0RST1BfTU9OSVRPUmAsIGJ1dCBsZXQncyBjb25maXJtLiBZZXMsIGl0J3Mgc3VmZmljaWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTYwNiwiT3V0cHV0VG9rZW5zIjoxOTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6MzU6NDguNDQ5MzA5MzU4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYxMjkwNzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORVRfRFJPUF9NT05JVE9SXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibmV0X2RtX3BhY2tldF90cmFjZV9rZnJlZV9za2JfaGl0XCIsXG4gICAgXCJuZXRfZG1fcGFja2V0X3JlcG9ydF9zaXplXCIsXG4gICAgXCJuZXRfZG1faHdfcGFja2V0X3JlcG9ydF9zaXplXCIsXG4gICAgXCJuZXRfZG1faHdfdHJhcF9wYWNrZXRfcHJvYmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGJ5IG1vdmluZyBgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZWAgYWZ0ZXIgYHU2NF9zdGF0c191cGRhdGVfZW5kYCB0byBwcmV2ZW50IElSUSByZWVudHJhbmN5IGR1cmluZyBzdGF0cyB1cGRhdGUuIEl0IGFsc28gZml4ZXMgbmV0bGluayBtZXNzYWdlIHNpemUgY2FsY3VsYXRpb24gZm9yIDY0LWJpdCBhdHRyaWJ1dGVzIGJ5IHVzaW5nIGBubGFfdG90YWxfc2l6ZV82NGJpdGAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIGRyb3AgbW9uaXRvciBzdWJzeXN0ZW0gdGhhdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSBubyByZWdyZXNzaW9ucyBvciBtZW1vcnkgY29ycnVwdGlvbiAoZS5nLiBmcm9tIGluY29ycmVjdCBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVF9EUk9QX01PTklUT1JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJuZXRfZG1fcGFja2V0X3RyYWNlX2tmcmVlX3NrYl9oaXRcIixcbiAgICBcIm5ldF9kbV9wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgICBcIm5ldF9kbV9od19wYWNrZXRfcmVwb3J0X3NpemVcIixcbiAgICBcIm5ldF9kbV9od190cmFwX3BhY2tldF9wcm9iZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gYnkgbW92aW5nIGBzcGluX3VubG9ja19pcnFyZXN0b3JlYCBhZnRlciBgdTY0X3N0YXRzX3VwZGF0ZV9lbmRgIHRvIHByZXZlbnQgSVJRIHJlZW50cmFuY3kgZHVyaW5nIHN0YXRzIHVwZGF0ZS4gSXQgYWxzbyBmaXhlcyBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxjdWxhdGlvbiBmb3IgNjQtYml0IGF0dHJpYnV0ZXMgYnkgdXNpbmcgYG5sYV90b3RhbF9zaXplXzY0Yml0YC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgZHJvcCBtb25pdG9yIHN1YnN5c3RlbSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIG5vIHJlZ3Jlc3Npb25zIG9yIG1lbW9yeSBjb3JydXB0aW9uIChlLmcuIGZyb20gaW5jb3JyZWN0IG5ldGxpbmsgbWVzc2FnZSBzaXplcykuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[1] Phase: Succeeded StartedAt: 2026-07-23 15:35:52 +0000 UTC FinishedAt: 2026-07-23 15:35:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-23 15:35:52 +0000 UTC FinishedAt: 2026-07-23 15:35:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2] Phase: Succeeded StartedAt: 2026-07-23 15:35:52 +0000 UTC FinishedAt: 2026-07-23 20:08:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-23 15:35:52 +0000 UTC FinishedAt: 2026-07-23 20:08:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","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-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-23 15:35:52 +0000 UTC FinishedAt: 2026-07-23 15:36:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-23 15:35:52 +0000 UTC FinishedAt: 2026-07-23 15:36:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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-workflowvfjw7/series-workflowvfjw7-convert-artifact-2782213377/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-23 15:36:24 +0000 UTC FinishedAt: 2026-07-23 16:08:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-23 15:36:24 +0000 UTC FinishedAt: 2026-07-23 16:08:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*96d29647-9e9b-42aa-8cc1-238a68e33f8a,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-workflowvfjw7/series-workflowvfjw7-convert-artifact-2782213377/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": "5768f4a6-bea5-4968-aa07-bf3c45422f2a", "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-workflowvfjw7/series-workflowvfjw7-build-action-472683055/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-23 15:36:24 +0000 UTC FinishedAt: 2026-07-23 16:07:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*96d29647-9e9b-42aa-8cc1-238a68e33f8a,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-workflowvfjw7/series-workflowvfjw7-convert-artifact-2782213377/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": "5768f4a6-bea5-4968-aa07-bf3c45422f2a", "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-workflowvfjw7/series-workflowvfjw7-build-action-472683055/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-23 16:08:15 +0000 UTC FinishedAt: 2026-07-23 16:08:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-23 16:08:15 +0000 UTC FinishedAt: 2026-07-23 16:08:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-23 16:08:15 +0000 UTC FinishedAt: 2026-07-23 16:08:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-23 16:08:15 +0000 UTC FinishedAt: 2026-07-23 16:08:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","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-workflowvfjw7/series-workflowvfjw7-convert-artifact-672575700/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-23 16:08:25 +0000 UTC FinishedAt: 2026-07-23 16:10:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-23 16:08:25 +0000 UTC FinishedAt: 2026-07-23 16:10:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5768f4a6-bea5-4968-aa07-bf3c45422f2a,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-workflowvfjw7/series-workflowvfjw7-build-action-472683055/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-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-23 16:10:32 +0000 UTC FinishedAt: 2026-07-23 16:10:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-23 16:10:32 +0000 UTC FinishedAt: 2026-07-23 16:10:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-23 16:10:32 +0000 UTC FinishedAt: 2026-07-23 17:04:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-23 16:10:32 +0000 UTC FinishedAt: 2026-07-23 17:04:18 +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:*96d29647-9e9b-42aa-8cc1-238a68e33f8a,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-workflowvfjw7/series-workflowvfjw7-convert-artifact-672575700/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": "d501d9ad-d43d-4dd4-ae04-23c81150438f", "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-workflowvfjw7/series-workflowvfjw7-build-action-296690848/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-23 16:10:32 +0000 UTC FinishedAt: 2026-07-23 17:03:04 +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:*96d29647-9e9b-42aa-8cc1-238a68e33f8a,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-workflowvfjw7/series-workflowvfjw7-convert-artifact-672575700/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": "d501d9ad-d43d-4dd4-ae04-23c81150438f", "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-workflowvfjw7/series-workflowvfjw7-build-action-296690848/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-23 17:04:18 +0000 UTC FinishedAt: 2026-07-23 17:04:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-23 17:04:18 +0000 UTC FinishedAt: 2026-07-23 17:04:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-23 17:04:18 +0000 UTC FinishedAt: 2026-07-23 17:06:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-23 17:04:18 +0000 UTC FinishedAt: 2026-07-23 17:06:07 +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:*d501d9ad-d43d-4dd4-ae04-23c81150438f,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-workflowvfjw7/series-workflowvfjw7-build-action-296690848/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-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-23 17:06:17 +0000 UTC FinishedAt: 2026-07-23 20:08:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-23 17:06:17 +0000 UTC FinishedAt: 2026-07-23 20:08:49 +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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"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:*5768f4a6-bea5-4968-aa07-bf3c45422f2a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d501d9ad-d43d-4dd4-ae04-23c81150438f,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-workflowvfjw7/series-workflowvfjw7-build-action-472683055/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-workflowvfjw7/series-workflowvfjw7-build-action-296690848/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-23 17:06:17 +0000 UTC FinishedAt: 2026-07-23 17:06:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-23 17:06:17 +0000 UTC FinishedAt: 2026-07-23 17:06:26 +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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"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-workflowvfjw7/series-workflowvfjw7-convert-artifact-4164119293/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-23 17:06:17 +0000 UTC FinishedAt: 2026-07-23 17:06:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-23 17:06:17 +0000 UTC FinishedAt: 2026-07-23 17:06:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-23 17:06:17 +0000 UTC FinishedAt: 2026-07-23 17:06:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-23 17:06:38 +0000 UTC FinishedAt: 2026-07-23 20:08:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfjw7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"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":["net_dm_packet_trace_kfree_skb_hit","net_dm_packet_report_size","net_dm_hw_packet_report_size","net_dm_hw_trap_packet_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f43ee0c0730d6191629b5ee1ceae27b1ebfdc047","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_DROP_MONITOR"],"series_id":"adc74fd4-0a09-492b-9af2-25faec967a5b","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-23 17:06:38 +0000 UTC FinishedAt: 2026-07-23 20:08:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5768f4a6-bea5-4968-aa07-bf3c45422f2a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d501d9ad-d43d-4dd4-ae04-23c81150438f,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-workflowvfjw7/series-workflowvfjw7-build-action-472683055/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-workflowvfjw7/series-workflowvfjw7-build-action-296690848/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-workflowvfjw7/series-workflowvfjw7-convert-artifact-4164119293/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,}