Name: series-workflowbtgs6 Phase: Succeeded StartedAt: 2026-07-17 01:37:34 +0000 UTC FinishedAt: 2026-07-17 06:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[0] Phase: Succeeded StartedAt: 2026-07-17 01:37:34 +0000 UTC FinishedAt: 2026-07-17 01:57:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[0].run-triage Phase: Succeeded StartedAt: 2026-07-17 01:37:34 +0000 UTC FinishedAt: 2026-07-17 01:57:24 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NET_SCH_CAKE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NET_SCH_CAKE" ], "series_id": "fdd9b210-c2ba-4598-9afb-ef0813b3f4f5" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cake_configure_rates", "cake_reconfigure", "cake_change", "cake_init", "cake_mq_change" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVF9TQ0hfQ0FLRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2Nha2VfY29uZmlndXJlX3JhdGVzJiMzNDssCiAgICAmIzM0O2Nha2VfcmVjb25maWd1cmUmIzM0OywKICAgICYjMzQ7Y2FrZV9jaGFuZ2UmIzM0OywKICAgICYjMzQ7Y2FrZV9pbml0JiMzNDssCiAgICAmIzM0O2Nha2VfbXFfY2hhbmdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIGNvbmZpZ3VyYXRpb24gbG9naWMgaW4gdGhlIENBS0UgcWRpc2MgdG8gYXZvaWQgY2xlYXJpbmcgdGlucyB3aGVuIGFkanVzdGluZyByYXRlcyBkeW5hbWljYWxseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHNjaGVkdWxlciB0aGF0IGFmZmVjdHMgcGFja2V0IHNjaGVkdWxpbmcgc3RhdGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBlMDk3MjRjZGFkMDU5MzVjN2UzMjUyODI1N2MwZmEzNjk4MTE0NWNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDE6NTM6NTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuY1xuaW5kZXggZjc4ZjhlOTUwNzc2NjcuLjg0NWUxYzAxNzcxNGEyIDEwMDY0NFxuLS0tIGEvbmV0L3NjaGVkL3NjaF9jYWtlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jXG5AQCAtMjYwOSw5ICYjNDM7MjYwOSwxMSBAQCBzdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTY0IHJhdGUsIGJvb2wgcmF0ZV9hZGp1c3QpXG4gXHRcdGJyZWFrO1xuIFx0fVxuIFxuLVx0Zm9yIChjID0gcWQtXHUwMDNldGluX2NudDsgYyBcdTAwM2MgQ0FLRV9NQVhfVElOUzsgYyYjNDM7JiM0MzspIHtcbi1cdFx0Y2FrZV9jbGVhcl90aW4oc2NoLCBjKTtcbi1cdFx0cWQtXHUwMDNldGluc1tjXS5jcGFyYW1zLm10dV90aW1lID0gcWQtXHUwMDNldGluc1tmdF0uY3BhcmFtcy5tdHVfdGltZTtcbiYjNDM7XHRpZiAoIXJhdGVfYWRqdXN0KSB7XG4mIzQzO1x0XHRmb3IgKGMgPSBxZC1cdTAwM2V0aW5fY250OyBjIFx1MDAzYyBDQUtFX01BWF9USU5TOyBjJiM0MzsmIzQzOykge1xuJiM0MztcdFx0XHRjYWtlX2NsZWFyX3RpbihzY2gsIGMpO1xuJiM0MztcdFx0XHRxZC1cdTAwM2V0aW5zW2NdLmNwYXJhbXMubXR1X3RpbWUgPSBxZC1cdTAwM2V0aW5zW2Z0XS5jcGFyYW1zLm10dV90aW1lO1xuJiM0MztcdFx0fVxuIFx0fVxuIFxuIFx0cWQtXHUwMDNlcmF0ZV9ucyAgID0gcWQtXHUwMDNldGluc1tmdF0udGluX3JhdGVfbnM7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX1NDSF9DQUtFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FrZV9jb25maWd1cmVfcmF0ZXMmIzM0OywKICAgICYjMzQ7Y2FrZV9yZWNvbmZpZ3VyZSYjMzQ7LAogICAgJiMzNDtjYWtlX2NoYW5nZSYjMzQ7LAogICAgJiMzNDtjYWtlX2luaXQmIzM0OywKICAgICYjMzQ7Y2FrZV9tcV9jaGFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgQ0FLRSBxZGlzYyB0byBhdm9pZCBjbGVhcmluZyB0aW5zIHdoZW4gYWRqdXN0aW5nIHJhdGVzIGR5bmFtaWNhbGx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIHRoYXQgYWZmZWN0cyBwYWNrZXQgc2NoZWR1bGluZyBzdGF0ZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTA5NzI0Y2RhZDA1OTM1YzdlMzI1MjgyNTdjMGZhMzY5ODExNDVjYwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVsIDE3IDAxOjUzOjUxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuYwppbmRleCBmNzhmOGU5NTA3NzY2Ny4uODQ1ZTFjMDE3NzE0YTIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2FrZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jCkBAIC0yNjA5LDkgJiM0MzsyNjA5LDExIEBAIHN0YXRpYyB2b2lkIGNha2VfY29uZmlndXJlX3JhdGVzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgYm9vbCByYXRlX2FkanVzdCkKIAkJYnJlYWs7CiAJfQogCi0JZm9yIChjID0gcWQtJmd0O3Rpbl9jbnQ7IGMgJmx0OyBDQUtFX01BWF9USU5TOyBjJiM0MzsmIzQzOykgewotCQljYWtlX2NsZWFyX3RpbihzY2gsIGMpOwotCQlxZC0mZ3Q7dGluc1tjXS5jcGFyYW1zLm10dV90aW1lID0gcWQtJmd0O3RpbnNbZnRdLmNwYXJhbXMubXR1X3RpbWU7CiYjNDM7CWlmICghcmF0ZV9hZGp1c3QpIHsKJiM0MzsJCWZvciAoYyA9IHFkLSZndDt0aW5fY250OyBjICZsdDsgQ0FLRV9NQVhfVElOUzsgYyYjNDM7JiM0MzspIHsKJiM0MzsJCQljYWtlX2NsZWFyX3RpbihzY2gsIGMpOwomIzQzOwkJCXFkLSZndDt0aW5zW2NdLmNwYXJhbXMubXR1X3RpbWUgPSBxZC0mZ3Q7dGluc1tmdF0uY3BhcmFtcy5tdHVfdGltZTsKJiM0MzsJCX0KIAl9CiAKIAlxZC0mZ3Q7cmF0ZV9ucyAgID0gcWQtJmd0O3RpbnNbZnRdLnRpbl9yYXRlX25zOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMTo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTU4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogODAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyBhIENBS0UgU2NoZWR1bGVyIFBhdGNoKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3Mgc3BlY2lmaWNhbGx5IHRhcmdldGluZyBgbmV0L3NjaGVkL3NjaF9jYWtlLmNgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgY2hhbmdlIHNlZW1zIHRvIGJlIHdpdGhpbiB0aGUgYGNha2VfY29uZmlndXJlX3JhdGVzYCBmdW5jdGlvbi4gVGhlIHBhdGNoJiMzOTtzIGludHJvZHVjdGlvbiBvZiBhbiBgaWYgKCFyYXRlX2FkanVzdClgIGNvbmRpdGlvbiBpcyB3aGF0IEkmIzM5O20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4sIGdpdmVuIG15IGJhY2tncm91bmQuIEkga25vdyB0aGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBhZGp1c3RpbmcgdGhlIGJhbmR3aWR0aCByYXRlcyBhbmQgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIENBS0UgcWRpc2MuCgpTcGVjaWZpY2FsbHksIGl0IGxvb2tzIGxpa2UgdGhpcyBuZXcgY29uZGl0aW9uYWwgaXMgZ2F0aW5nIGEgbG9vcCB0aGF0JiMzOTtzIHJlc3BvbnNpYmxlIGZvciBjbGVhcmluZyBvdXQgJiMzNDt0aW5zJiMzNDsgYW5kIHNldHRpbmcgYG10dV90aW1lYC4gTm93LCB0aGUgJiMzNDt0aW5zJiMzNDsgY29uY2VwdCwgSSYjMzk7bSBhbHJlYWR5IGF3YXJlIG9mLCBpcyBob3cgQ0FLRSBzdHJ1Y3R1cmVzIGl0cyB0cmFmZmljIHNoYXBpbmcsIGdyb3VwaW5nIHRoaW5ncyBiYXNlZCBvbiB0aW1lLiBTbywgaWYgYHJhdGVfYWRqdXN0YCBpcyBmYWxzZSwgdGhpcyBtZWFucyB3ZSYjMzk7cmUgKm5vdCogYWRqdXN0aW5nIHRoZSByYXRlLCBhbmQgd2UgZW50ZXIgdGhpcyBsb29wPyBIbW0sIEkmIzM5O2QgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNvbnRleHQgb2YgYHJhdGVfYWRqdXN0YCB0byBzZWUgd2hhdCBzY2VuYXJpb3MgdGhhdCBjb3ZlcnMuIEkgYmV0IGl0IGhhcyB0byBkbyB3aXRoIGhvdyB0aGUgcWRpc2MgaXMgYmVpbmcgY29uZmlndXJlZCBvciByZWNvbmZpZ3VyZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBjb25kaXRpb25hbCBpcyB0cnlpbmcgdG8gcHJvdGVjdCwgYW5kIHdoYXQgc2NlbmFyaW9zIGl0JiMzOTtzIGFjY291bnRpbmcgZm9yLiBQZXJoYXBzLCB0aGlzIGNoYW5nZSBpbXByb3ZlcyB0aGUgcmVsaWFiaWxpdHkgb2YgdGhlIGNvbmZpZ3VyYXRpb24sIGFuZCBwcmV2ZW50cyByZXNldHRpbmcgb2YgdGhlc2UgdmFsdWVzIGluIHRoZSB3cm9uZyBzY2VuYXJpb3MuIEkmIzM5O2xsIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgY29kZSwgdGhlIGNvbW1pdCBtZXNzYWdlLCBhbmQgYW55IHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiB0byBmdWxseSBncmFzcCB0aGUgcmF0aW9uYWxlIGhlcmUsIGFuZCB3aGF0IHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgdGhlcmUgbWlnaHQgYmUgZm9yIG92ZXJhbGwgQ0FLRSBwZXJmb3JtYW5jZSBhbmQgYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y2FrZV9jb25maWd1cmVfcmF0ZXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2NoZWQvc2NoX2Nha2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2NoZWQvc2NoX2Nha2UuYz0zODc9c3RhdGljIGNvbnN0IHUzMiBpbnZfc3FydF9jYWNoZVtSRUNfSU5WX1NRUlRfQ0FDSEVdID0ge1xuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTM5My1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjM5NDpzdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTY0IHJhdGUsIGJvb2wgcmF0ZV9hZGp1c3QpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzk1LVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTIwMDc9c3RhdGljIHN0cnVjdCBza19idWZmICpjYWtlX2RlcXVldWUoc3RydWN0IFFkaXNjICpzY2gpXG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjA0Ni1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjIwNDc6XHRcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgbmV3X3JhdGUsIHRydWUpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjA0OC1cdFx0cS1cdTAwM2VsYXN0X2NoZWNrZWRfYWN0aXZlID0gbm93O1xuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTI1NTA9c3RhdGljIGludCBjYWtlX2NvbmZpZ19kaWZmc2VydjMoc3RydWN0IFFkaXNjICpzY2gsIHU2NCByYXRlLCB1MzIgbXR1KVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI1ODEtXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyNTgyOnN0YXRpYyB2b2lkIGNha2VfY29uZmlndXJlX3JhdGVzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgYm9vbCByYXRlX2FkanVzdClcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI1ODMte1xuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTI2MjM9c3RhdGljIHZvaWQgY2FrZV9yZWNvbmZpZ3VyZShzdHJ1Y3QgUWRpc2MgKnNjaClcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNjI4LVxubmV0L3NjaGVkL3NjaF9jYWtlLmM6MjYyOTpcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgcWQtXHUwMDNlY29uZmlnLVx1MDAzZXJhdGVfYnBzLCBmYWxzZSk7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNjMwLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjUzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4NTUKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDQUtFIHFkaXNjIFJhdGUgQWRqdXN0bWVudCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIHNxdWFyZWx5IGF0IGhvdyBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGJlaGF2ZXMgd2l0aGluIHRoZSBDQUtFIHFkaXNjLiBJdCYjMzk7cyBpbnRlcmVzdGluZyBob3cgaXQmIzM5O3MgY2FsbGVkIGZyb20gdHdvIGRpZmZlcmVudCBlbnRyeSBwb2ludHM6IGBjYWtlX2RlcXVldWVgLCB3aGVyZSBgcmF0ZV9hZGp1c3RgIGlzIHNldCB0byBgdHJ1ZWAsIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAsIHdpdGggYHJhdGVfYWRqdXN0YCBzZXQgdG8gYGZhbHNlYC4gVGhlIGtleSBkaWZmZXJlbmNlIGlzIHRoYXQgd2hlbiB0aGUgYHJhdGVfYWRqdXN0YCBmbGFnIGlzICp0cnVlKiwgbWVhbmluZyB3ZSYjMzk7cmUgcHJvYmFibHkgcmVzcG9uZGluZyB0byBzb21lIGR5bmFtaWMgY2hhbmdlIGluIHRoZSBuZXR3b3JrIGNvbmRpdGlvbnMsIHdlJiMzOTtyZSBnb2luZyB0byAqYXZvaWQqIGNsZWFyaW5nIHRoZSB0aW5zIGFuZCByZXNldHRpbmcgYG10dV90aW1lYC4gVGhpcyBpcyBjcml0aWNhbC4gV2h5PyBCZWNhdXNlIHRoZSBgY2FrZV9kZXF1ZXVlYCBwYXRoLCB3aXRoIHRoZSBmbGFnIHNldCB0byB0cnVlLCBpbXBsaWVzIHRoYXQgd2UgYXJlIHByb2Nlc3NpbmcgYSBwYWNrZXQsIGFuZCB3ZSBkb24mIzM5O3Qgd2FudCB0byBjbGVhciB0aGUgdGlucyBvciByZXNldCBtdHVfdGltZS4gVGhpcyB3b3VsZCBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcWRpc2MuCgpUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGFkanVzdG1lbnQgdG8gaG93IENBS0UgbWFuYWdlcyBpdHMgaW50ZXJuYWwgc3RhdGUgZHVyaW5nIHRoZXNlIHJhdGUgYWRqdXN0bWVudHMuIEkgd29uZGVyIHdoYXQgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBmb3IgdGhpcyBzcGVjaWZpYyBiZWhhdmlvci4gSXQmIzM5O3MgdGltZSB0byBkaWcgaW50byB0aGUgY29uZmlnIG9wdGlvbnMgZm9yIHRoZSBDQUtFIHFkaXNjLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NjaF9jYWtlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjaGVkLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2NoZWQvS2NvbmZpZz0yODg9Y29uZmlnIE5FVF9TQ0hfQ0FLRVxuLS1cbm5ldC9zY2hlZC9LY29uZmlnLTI5NC1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxubmV0L3NjaGVkL0tjb25maWc6Mjk1Olx0ICB3aWxsIGJlIGNhbGxlZCBzY2hfY2FrZS5cbm5ldC9zY2hlZC9LY29uZmlnLTI5Ni1cbi0tXG5uZXQvc2NoZWQvTWFrZWZpbGU9NTY9b2JqLSQoQ09ORklHX05FVF9TQ0hfRlFfQ09ERUwpXHQmIzQzOz0gc2NoX2ZxX2NvZGVsLm9cbm5ldC9zY2hlZC9NYWtlZmlsZTo1NzpvYmotJChDT05GSUdfTkVUX1NDSF9DQUtFKVx0JiM0Mzs9IHNjaF9jYWtlLm9cbm5ldC9zY2hlZC9NYWtlZmlsZS01OC1vYmotJChDT05GSUdfTkVUX1NDSF9GUSlcdCYjNDM7PSBzY2hfZnEub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MTcKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxOTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgQ0FLRSBRZGlzYyBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBJIG5lZWQgdG8gdGFyZ2V0IGlzIGBORVRfU0NIX0NBS0VgLiBUaGlzIGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIChxZGlzYykgY29kZSwgc3BlY2lmaWNhbGx5LCBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGZ1bmN0aW9uLiBHaXZlbiB0aGF0LCBpdCYjMzk7cyBkZWZpbml0ZWx5IHdvcnRoIHNwZW5kaW5nIHNvbWUgY3ljbGVzIGZ1enppbmcgaXQuCgpUaGUgbWFpbiBzeW1ib2xzIHRvIGZvY3VzIG15IGF0dGVudGlvbiBvbiBhcmUgYGNha2VfY29uZmlndXJlX3JhdGVzYCwgYGNha2VfZGVxdWV1ZWAsIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAuIFdhaXQgYSBtaW51dGUsIGBjYWtlX2RlcXVldWVgIGlzIGEgaG90IHBhdGggZnVuY3Rpb24sIHVzZWQgZm9yIGRlcXVldWluZyBwYWNrZXRzIGZyb20gdGhlIHFkaXNjLi4uIFRoYXQmIzM5O3Mgc2lnbmlmaWNhbnQuIE5vdyBJIHJlbWVtYmVyIHRoYXQgYGNha2VfY29uZmlndXJlX3JhdGVzYCBpcyBjYWxsZWQgYm90aCBmcm9tIGBjYWtlX2RlcXVldWVgIGFuZCBmcm9tIGBjYWtlX3JlY29uZmlndXJlYC4gSG1tLCBwZXJoYXBzIEkgc2hvdWxkIGZvY3VzIG1vc3Qgb2YgbXkgZW5lcmd5IG9uIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgdGhlbiwgc2luY2UgaXQmIzM5O3MgcmVhY2hhYmxlIHZpYSB0aGUgaG90IGBjYWtlX2RlcXVldWVgIHBhdGguCgpMZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gdGhhdCBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGl0c2VsZiBpc24mIzM5O3QgYSBob3QgcGF0aCBmdW5jdGlvbi4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYGNha2VfZGVxdWV1ZWAsIGJ1dCBvbmx5IHdoZW4gYHJhdGVfYWRqdXN0YCBpcyB0cnVlLCB3aGljaCBwcmVzdW1hYmx5IGhhcHBlbnMgd2hlbiB0aGUgYG5ld19yYXRlYCBpcyBkaWZmZXJlbnQuIExldCYjMzk7cyBzZWUuLi4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgY29kZSBhcm91bmQgbGluZSAyMDQ3IGluIGBjYWtlX2RlcXVldWVgIHRvIGdldCB0aGUgZnVsbCBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3NjaGVkL3NjaF9jYWtlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMDMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzIwMzA6XHRcdFx0Zm9yIChudHggPSAwOyBudHggXHUwMDNjIGRldi1cdTAwM2VudW1fdHhfcXVldWVzOyBudHgmIzQzOyYjNDM7KSB7XG4yMDMxOlx0XHRcdFx0b3RoZXJfc2NoID0gcmN1X2RlcmVmZXJlbmNlKG5ldGRldl9nZXRfdHhfcXVldWUoZGV2LCBudHgpLVx1MDAzZXFkaXNjX3NsZWVwaW5nKTtcbjIwMzI6XHRcdFx0XHRvdGhlcl9wcml2ID0gcWRpc2NfcHJpdihvdGhlcl9zY2gpO1xuMjAzMzpcdFxuMjAzNDpcdFx0XHRcdGlmIChvdGhlcl9wcml2ID09IHEpXG4yMDM1Olx0XHRcdFx0XHRjb250aW51ZTtcbjIwMzY6XHRcbjIwMzc6XHRcdFx0XHRvdGhlcl9xbGVuID0gUkVBRF9PTkNFKG90aGVyX3NjaC1cdTAwM2VxLnFsZW4pO1xuMjAzODpcdFx0XHRcdG90aGVyX2xhc3RfYWN0aXZlID0gUkVBRF9PTkNFKG90aGVyX3ByaXYtXHUwMDNlbGFzdF9hY3RpdmUpO1xuMjAzOTpcdFxuMjA0MDpcdFx0XHRcdGlmIChvdGhlcl9xbGVuIHx8IG90aGVyX2xhc3RfYWN0aXZlIFx1MDAzZSBxLVx1MDAzZWxhc3RfY2hlY2tlZF9hY3RpdmUpXG4yMDQxOlx0XHRcdFx0XHRudW1fYWN0aXZlX3FzJiM0MzsmIzQzOztcbjIwNDI6XHRcdFx0fVxuMjA0MzpcdFxuMjA0NDpcdFx0XHRpZiAobnVtX2FjdGl2ZV9xcyBcdTAwM2UgMSlcbjIwNDU6XHRcdFx0XHRuZXdfcmF0ZSA9IGRpdjY0X3U2NChxLVx1MDAzZWNvbmZpZy1cdTAwM2VyYXRlX2JwcywgbnVtX2FjdGl2ZV9xcyk7XG4yMDQ2Olx0XG4yMDQ3Olx0XHRcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgbmV3X3JhdGUsIHRydWUpO1xuMjA0ODpcdFx0XHRxLVx1MDAzZWxhc3RfY2hlY2tlZF9hY3RpdmUgPSBub3c7XG4yMDQ5Olx0XHRcdFdSSVRFX09OQ0UocS1cdTAwM2VhY3RpdmVfcXVldWVzLCBudW1fYWN0aXZlX3FzKTtcbjIwNTA6XHRcdH1cbjIwNTE6XHRcbjIwNTI6XHRiZWdpbjpcbjIwNTM6XHRcdGlmICghc2NoLVx1MDAzZXEucWxlbilcbjIwNTQ6XHRcdFx0cmV0dXJuIE5VTEw7XG4yMDU1Olx0XG4yMDU2Olx0XHQvKiBnbG9iYWwgaGFyZCBzaGFwZXIgKi9cbjIwNTc6XHRcdGlmIChrdGltZV9hZnRlcihxLVx1MDAzZXRpbWVfbmV4dF9wYWNrZXQsIG5vdykgXHUwMDI2XHUwMDI2XG4yMDU4Olx0XHQgICAga3RpbWVfYWZ0ZXIocS1cdTAwM2VmYWlsc2FmZV9uZXh0X3BhY2tldCwgbm93KSkge1xuMjA1OTpcdFx0XHR1NjQgbmV4dCA9IG1pbihrdGltZV90b19ucyhxLVx1MDAzZXRpbWVfbmV4dF9wYWNrZXQpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0NjcKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgc3VtbWFyaXplZCBmcm9tIG15IHBlcnNwZWN0aXZlIGFzIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkOgoKKipEZWJ1Z2dpbmcgdGhlIFJhdGUgQ29uZmlndXJhdGlvbiBQcm9jZXNzKioKCkFscmlnaHQsIHNvIGl0IGxvb2tzIGxpa2UgYGNha2VfY29uZmlndXJlX3JhdGVzYCBpcyBsaWtlbHkgdGhlIGtleSBmdW5jdGlvbiB0aGF0IGdldHMgaW52b2tlZCB3aGVuZXZlciB0aGUgdHJhZmZpYyBzaGFwaW5nIHJhdGVzIG5lZWQgdG8gYmUgdXBkYXRlZC4gTXkgaW5pdGlhbCBodW5jaCBpcyB0aGF0IGl0JiMzOTtzIGVpdGhlciB0cmlnZ2VyZWQgYnkgYSByZWd1bGFyIHRpbWVyLCBhIHNjaGVkdWxlZCB0YXNrLCBvciBwZXJoYXBzIHdoZW5ldmVyIHRoZSBhY3RpdmUgcXVldWVzIHdpdGhpbiB0aGUgc3lzdGVtIGNoYW5nZS4gVGhhdCBtYWtlcyBzZW5zZSwgdGhvc2UgYXJlIHRoZSB0eXBpY2FsIGV2ZW50cyB0aGF0IHdvdWxkIHRyaWdnZXIgYSByZWNvbmZpZ3VyYXRpb24uCgpUbyBjb25maXJtIHRoYXQsIEkgc2hvdWxkIGRpZyBpbnRvIGhvdyB0aGUgc3lzdGVtIGlzIHJlY29uZmlndXJpbmcgaXRzIHJhdGVzLiBUaGF0IG1lYW5zIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBgY2FrZV9yZWNvbmZpZ3VyZWAgZnVuY3Rpb24uIFRoYXQgZnVuY3Rpb24gd2lsbCBsaWtlbHkgcHJvdmlkZSB0aGUgb3ZlcmFsbCBjb250cm9sIGxvZ2ljIGZvciBhY3R1YWxseSBtYWtpbmcgdGhlIGNoYW5nZXMsIHB1bGxpbmcgaW4gYW55IHVwZGF0ZWQgcGFyYW1ldGVycyBvciBzZXR0aW5ncywgYW5kIGNhbGxpbmcgb3RoZXIgZnVuY3Rpb25zIGxpa2UgYGNha2VfY29uZmlndXJlX3JhdGVzYCB3aGVuIGFwcHJvcHJpYXRlLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBzeXN0ZW0gZGVjaWRlcyAqd2hlbiogdG8gcmVjb25maWd1cmUgYW5kICp3aGF0KiBpdCYjMzk7cyByZWNvbmZpZ3VyaW5nIHRvIHVuZGVyc3RhbmQgdGhpcyBiZXR0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3NjaGVkL3NjaF9jYWtlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNjIwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzI2MjA6XHRcdHFkLVx1MDAzZXJhdGVfc2hmdCA9IHFkLVx1MDAzZXRpbnNbZnRdLnRpbl9yYXRlX3NoZnQ7XG4yNjIxOlx0fVxuMjYyMjpcdFxuMjYyMzpcdHN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpXG4yNjI0Olx0e1xuMjYyNTpcdFx0c3RydWN0IGNha2Vfc2NoZWRfZGF0YSAqcWQgPSBxZGlzY19wcml2KHNjaCk7XG4yNjI2Olx0XHRzdHJ1Y3QgY2FrZV9zY2hlZF9jb25maWcgKnEgPSBxZC1cdTAwM2Vjb25maWc7XG4yNjI3Olx0XHR1MzIgYnVmZmVyX2xpbWl0O1xuMjYyODpcdFxuMjYyOTpcdFx0Y2FrZV9jb25maWd1cmVfcmF0ZXMoc2NoLCBxZC1cdTAwM2Vjb25maWctXHUwMDNlcmF0ZV9icHMsIGZhbHNlKTtcbjI2MzA6XHRcbjI2MzE6XHRcdGlmIChxLVx1MDAzZWJ1ZmZlcl9jb25maWdfbGltaXQpIHtcbjI2MzI6XHRcdFx0YnVmZmVyX2xpbWl0ID0gcS1cdTAwM2VidWZmZXJfY29uZmlnX2xpbWl0O1xuMjYzMzpcdFx0fSBlbHNlIGlmIChxLVx1MDAzZXJhdGVfYnBzKSB7XG4yNjM0Olx0XHRcdHU2NCB0ID0gcS1cdTAwM2VyYXRlX2JwcyAqIHEtXHUwMDNlaW50ZXJ2YWw7XG4yNjM1Olx0XG4yNjM2Olx0XHRcdGRvX2Rpdih0LCBVU0VDX1BFUl9TRUMgLyA0KTtcbjI2Mzc6XHRcdFx0YnVmZmVyX2xpbWl0ID0gbWF4X3QodTMyLCB0LCA0VSBcdTAwM2NcdTAwM2MgMjApO1xuMjYzODpcdFx0fSBlbHNlIHtcbjI2Mzk6XHRcdFx0YnVmZmVyX2xpbWl0ID0gfjA7XG4yNjQwOlx0XHR9XG4yNjQxOlx0XG4yNjQyOlx0XHRzY2gtXHUwMDNlZmxhZ3MgXHUwMDI2PSB+VENRX0ZfQ0FOX0JZUEFTUztcbjI2NDM6XHRcbjI2NDQ6XHRcdFdSSVRFX09OQ0UocWQtXHUwMDNlYnVmZmVyX2xpbWl0LFxuMjY0NTpcdFx0XHQgICBtaW4oYnVmZmVyX2xpbWl0LFxuMjY0NjpcdFx0XHQgICAgICAgbWF4KHNjaC1cdTAwM2VsaW1pdCAqIHBzY2hlZF9tdHUocWRpc2NfZGV2KHNjaCkpLFxuMjY0NzpcdFx0XHRcdCAgIHEtXHUwMDNlYnVmZmVyX2NvbmZpZ19saW1pdCkpKTtcbjI2NDg6XHR9XG4yNjQ5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyMjMKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkFuYWx5emluZyB0aGUgQ0FLRSBRdWV1ZSBEaXNjaXBsaW5lIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4uLiBzbywgYGNha2VfcmVjb25maWd1cmVgIGlzIHRoZSBrZXkgZnVuY3Rpb24gaGVyZS4gSXQmIzM5O3MgdHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBDQUtFIHF1ZXVlIGRpc2NpcGxpbmUgaXRzZWxmIGlzIGluaXRpYWxseSBzZXQgdXAgb3IsIG1vcmUgaW1wb3J0YW50bHksICpyZSpjb25maWd1cmVkIOKAkyBtZWFuaW5nIGFueSBzdWJzZXF1ZW50IGNoYW5nZXMgdG8gaXRzIHBhcmFtZXRlcnMuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93OyBpdCB0ZWxscyBtZSBleGFjdGx5IHdoZW4gSSBuZWVkIHRvIHBheSBhdHRlbnRpb24gdG8gaXRzIGJlaGF2aW9yLgoKTXkgaW1tZWRpYXRlIGZvbGxvdy11cCB0aG91Z2h0IGlzLCB3aGljaCBwYXJ0IG9mIHRoZSBjb2RlIGFjdHVhbGx5ICpjYWxscyogdGhhdCBmdW5jdGlvbj8gQW5kIHRoZSBsb2dpY2FsIGNhbmRpZGF0ZSBhcHBlYXJzIHRvIGJlIGBjYWtlX2NoYW5nZWAuIFNlZW1zIGxpa2UgdGhhdCYjMzk7cyB0aGUgbGlrZWx5IGVudHJ5IHBvaW50LiBVbmRlcnN0YW5kaW5nIHRoYXQgcmVsYXRpb25zaGlwIGlzIGNydWNpYWwuIElmIEkmIzM5O20gdHJvdWJsZXNob290aW5nLCBvciBvcHRpbWl6aW5nIENBS0UsIEkgbmVlZCB0byBrbm93IHRoZSBjYWxsaW5nIHNlcXVlbmNlLiBLbm93aW5nIHRoZSBjYWxsZXIgYGNha2VfY2hhbmdlYCBhbmQgaXRzIHJvbGUgd2lsbCBkaWN0YXRlIGhvdyBJIGJlc3QgY2FuIG9ic2VydmUgdGhlIHJlY29uZmlndXJhdGlvbiBwcm9jZXNzLCBkZXRlcm1pbmUgdGhlIGlucHV0cywgYW5kIHBpbnBvaW50IHRoZSB0cmlnZ2VyIGZvciB0aGVzZSBjcnVjaWFsIHVwZGF0ZXMuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoYXQgYXNzdW1wdGlvbiBhbmQgdmVyaWZ5LCBidXQgaXQmIzM5O3MgYSB2ZXJ5IHJlYXNvbmFibGUgc3RhcnRpbmcgcG9pbnQuIEV4Y2VsbGVudCwgdGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Nha2VfcmVjb25maWd1cmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2NoZWQvc2NoX2Nha2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2NoZWQvc2NoX2Nha2UuYz0xNzE2PXN0YXRpYyB1MzIgY2FrZV9jbGFzc2lmeShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IGNha2VfdGluX2RhdGEgKip0LFxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTE3NTMtXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoxNzU0OnN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMTc1NS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTE3NTY9c3RhdGljIHMzMiBjYWtlX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gsXG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMTkxMC1cdFx0XHRcdHEtXHUwMDNlY29uZmlnLVx1MDAzZXJhdGVfYnBzID0gKHEtXHUwMDNlYXZnX3BlYWtfYmFuZHdpZHRoICogMTUpIFx1MDAzZVx1MDAzZSA0O1xubmV0L3NjaGVkL3NjaF9jYWtlLmM6MTkxMTpcdFx0XHRcdGNha2VfcmVjb25maWd1cmUoc2NoKTtcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTE5MTItXHRcdFx0fVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTI1ODI9c3RhdGljIHZvaWQgY2FrZV9jb25maWd1cmVfcmF0ZXMoc3RydWN0IFFkaXNjICpzY2gsIHU2NCByYXRlLCBib29sIHJhdGVfYWRqdXN0KVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI2MjItXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyNjIzOnN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNjI0LXtcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yNzc0PXN0YXRpYyBpbnQgY2FrZV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCxcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNzk5LVx0XHRzY2hfdHJlZV9sb2NrKHNjaCk7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyODAwOlx0XHRjYWtlX3JlY29uZmlndXJlKHNjaCk7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yODAxLVx0XHRzY2hfdHJlZV91bmxvY2soc2NoKTtcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yODMyPXN0YXRpYyBpbnQgY2FrZV9pbml0KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsXG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjg5MC1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjI4OTE6XHRjYWtlX3JlY29uZmlndXJlKHNjaCk7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yODkyLVx0cWQtXHUwMDNlYXZnX3BlYWtfYmFuZHdpZHRoID0gcS1cdTAwM2VyYXRlX2Jwcztcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yOTAxPXN0YXRpYyB2b2lkIGNha2VfY29uZmlnX3JlcGxhY2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBjYWtlX3NjaGVkX2NvbmZpZyAqY2ZnKVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI5MDUtXHRxZC1cdTAwM2Vjb25maWcgPSBjZmc7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyOTA2Olx0Y2FrZV9yZWNvbmZpZ3VyZShzY2gpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjkwNy19XG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmM9MzMwMj1zdGF0aWMgaW50IGNha2VfbXFfY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsXG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzMyNy1cdFx0XHRzY2hfdHJlZV9sb2NrKGNobGQpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmM6MzMyODpcdFx0XHRjYWtlX3JlY29uZmlndXJlKGNobGQpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzMyOS1cdFx0XHRzY2hfdHJlZV91bmxvY2soY2hsZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzMTkKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQ0FLRSBRZGlzYyBSYXRlIENvbmZpZ3VyYXRpb24gUGF0Y2ggQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBDQUtFIHFkaXNjIHBhdGNoIGFuZCBoZXJlJiMzOTtzIG15IGJyZWFrZG93bi4gRnJvbSB3aGF0IEkgY2FuIHNlZSwgYGNha2VfcmVjb25maWd1cmVgIGdldHMgY2FsbGVkIGZyb20gc2V2ZXJhbCBwbGFjZXM6IGBjYWtlX2NoYW5nZWAsIGBjYWtlX2luaXRgLCBgY2FrZV9jb25maWdfcmVwbGFjZWAsIGBjYWtlX21xX2NoYW5nZWAsIGFuZCBgY2FrZV9lbnF1ZXVlYC4gVGhlIGNvcmUgaXNzdWUgc2VlbXMgdG8gYmUgdGhhdCBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIHdhcyBpbmNvcnJlY3RseSBjbGVhcmluZyB0aGUgdGlucywgc3BlY2lmaWNhbGx5IHdoZW4gY2FsbGVkIGZyb20gYGNha2VfZGVxdWV1ZWAgd2l0aCBgcmF0ZV9hZGp1c3Q9dHJ1ZWAuIFRoaXMgd291bGQgbGVhZCB0byBsb3N0IG9yIGNvcnJ1cHRlZCBzdGF0ZSwgc28gaXQgbWFrZXMgc2Vuc2Ugd2h5IGl0JiMzOTtzIGEgYnVnLiBUaGUgcHJvcG9zZWQgZml4LCB3aGljaCBpcyB0aGUgbW9kaWZpY2F0aW9uIGhlcmUsIGlzIG9ubHkgY2xlYXJpbmcgdGhlIHRpbnMgaWYgYHJhdGVfYWRqdXN0YCBpcyBmYWxzZSwgd2hpY2ggc2VlbXMgY29ycmVjdCBmcm9tIGEgZnVuY3Rpb25hbCBwZXJzcGVjdGl2ZS4KCkdpdmVuIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyByYXRlIGNvbmZpZ3VyYXRpb24sIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZnV6emluZyB0byBlbnN1cmUgc3RhYmlsaXR5IGFuZCBjb3JyZWN0bmVzcyB1bmRlciB2YXJpb3VzIGNvbmRpdGlvbnMuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZm9jdXMgdGhlIGZ1enppbmcgb24gYGNha2VfY29uZmlndXJlX3JhdGVzYCwgYGNha2VfcmVjb25maWd1cmVgLCBgY2FrZV9jaGFuZ2VgLCBgY2FrZV9pbml0YCwgYW5kIGBjYWtlX21xX2NoYW5nZWAsIGFzIHRoZXNlIHNlZW0gdG8gYmUgdGhlIHByaW1hcnkgZW50cnkgcG9pbnRzIGFuZCBjb25maWd1cmF0aW9uIHBvaW50cy4KCkhvd2V2ZXIsIGFmdGVyIGEgc2Vjb25kIGxvb2ssIEkgcmVhbGl6ZSB0aGF0IGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgaXMgdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBoYXMgYmVlbiBkaXJlY3RseSBtb2RpZmllZC4gVGhpcyBhY3R1YWxseSBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdC4gSSBzdGlsbCBuZWVkIHRvIHRhcmdldCB0aG9zZSBjb25maWd1cmF0aW9uIHBhdGhzIHNvIEkmIzM5O20gZ29pbmcgdG8gaW5jbHVkZSB0aGUgb3JpZ2luYWwgc2V0OiBgY2FrZV9jaGFuZ2VgLCBgY2FrZV9pbml0YCwgYW5kIGBjYWtlX21xX2NoYW5nZWAuIEFuZCwgc2luY2UgYGNha2VfY29uZmlndXJlX3JhdGVzYCBpcyB0aGUgaGVhcnQgb2YgdGhlIGlzc3VlLCBhbmQgY2FsbGVkIGJ5IGBjYWtlX3JlY29uZmlndXJlYCwgSSYjMzk7bGwgaW5jbHVkZSBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAgYXMga2V5IGZvY3VzIHBvaW50cy4gSSBrbm93IGBjYWtlX2RlcXVldWVgIGNhbGxzIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgYXMgd2VsbCwgYnV0IHRoYXQmIzM5O3MgYSBob3QgcGF0aCBmdW5jdGlvbiB3aGljaCBJIHdhbnQgdG8gYXZvaWQgdG8gbWFrZSB0aGUgdGVzdGluZyBhIGJpdCBtb3JlIHRhcmdldGVkLgoKUmVnYXJkaW5nIGNvbmZpZ3VyYXRpb24sIEkmIzM5O2xsIG5lZWQgYE5FVF9TQ0hfQ0FLRWAuIExldCYjMzk7cyBkb3VibGUgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBvdGhlciBkZXBlbmRlbmNpZXMuIE5vcGUsIHRoYXQmIzM5O3MgdGhlIG9ubHkgb25lLgoKSGVyZSYjMzk7cyB0aGUgc3VtbWFyeToKCiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFsmIzM0O05FVF9TQ0hfQ0FLRSYjMzQ7XWAKKiAgICoqRm9jdXNTeW1ib2xzOioqIGBbJiMzNDtjYWtlX2NvbmZpZ3VyZV9yYXRlcyYjMzQ7LCAmIzM0O2Nha2VfcmVjb25maWd1cmUmIzM0OywgJiMzNDtjYWtlX2NoYW5nZSYjMzQ7LCAmIzM0O2Nha2VfaW5pdCYjMzQ7LCAmIzM0O2Nha2VfbXFfY2hhbmdlJiMzNDtdYAoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIGlzIG1vZGlmeWluZyB0aGUgQ0FLRSBxZGlzYyByYXRlIGNvbmZpZ3VyYXRpb24gbG9naWMuIEl0IGZpeGVzIGNsZWFyaW5nIHRoZSB0aW5zIHdoZW4gZHluYW1pY2FsbHkgYWRqdXN0aW5nIHJhdGVzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBuZXR3b3JrIHNjaGVkdWxpbmcgc3RhdGUgYW5kIHRodXMgcGFja2V0IGJlaGF2aW9yLiBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBjb25maWd1cmF0aW9uIHBhdGhzIHRoYXQgY2FsbCBpbnRvIHRoZSBtb2RpZmllZCBmdW5jdGlvbi4KCkkgYW0gZ29pbmcgdG8gcmVmaW5lIHRoZSBgRm9jdXNTeW1ib2xzYCBiYXNlZCBvbiB0aGUgZGlyZWN0IGNoYW5nZTogYGNha2VfY29uZmlndXJlX3JhdGVzYC4gVGhlIG90aGVycyBhcmUgdGhlcmUgdG8gdHJpZ2dlciB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBwYXRocy4gSSBuZWVkIHRvIGF2b2lkIGBjYWtlX2RlcXVldWVgLCBhcyBpdCYjMzk7cyB0b28gaG90IHRvIGZvY3VzIG9uLgoKTGV0IG1lIGNoZWNrIG9uZSBsYXN0IHRpbWUgZm9yIGFueSBvdGhlciBkZXBlbmRlbmNpZXMuLi4gbm9wZS4gRG9uZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVF9TQ0hfQ0FLRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY2hlZC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zY2hlZC9LY29uZmlnPTI3Nz1jb25maWcgTkVUX1NDSF9GUV9DT0RFTFxuLS1cbm5ldC9zY2hlZC9LY29uZmlnLTI4Ny1cbm5ldC9zY2hlZC9LY29uZmlnOjI4ODpjb25maWcgTkVUX1NDSF9DQUtFXG5uZXQvc2NoZWQvS2NvbmZpZy0yODktXHR0cmlzdGF0ZSBcJiMzNDtDb21tb24gQXBwbGljYXRpb25zIEtlcHQgRW5oYW5jZWQgKENBS0UpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc1ODUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIGBuZXQvc2NoZWQvS2NvbmZpZ2AqKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgc29tZXRoaW5nIGluIHRoZSBuZXR3b3JraW5nIHNjaGVkdWxlciBpcyBjb25maWd1cmVkLiBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byB0aGUgS2NvbmZpZyBmaWxlLiBMZXQmIzM5O3Mgc2VlLi4uSSYjMzk7bGwgZm9jdXMgb24gYG5ldC9zY2hlZC9LY29uZmlnYCBzcGVjaWZpY2FsbHkuIEkgcmVjYWxsIHRoYXQgZmlsZSBiZWluZyBwcmV0dHkgY2VudHJhbCB0byBhIGxvdCBvZiB0aGUgUW9TIGFuZCB0cmFmZmljIHNoYXBpbmcgb3B0aW9ucy4gTm93LCB3aGVyZSB0byBiZWdpbj8gSG1tLCBsZXQmIzM5O3MgbG9vayBhcm91bmQgbGluZSAyODguIFRoYXQgYXJlYSB1c3VhbGx5IGhvbGRzIGRlY2xhcmF0aW9ucyBmb3IgY29yZSBzY2hlZHVsZXIgb3B0aW9ucy4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGNvbnRleHQuIEl0JiMzOTtzIHRpbWUgdG8gb3BlbiB0aGF0IGZpbGUgYW5kIGdldCBzdGFydGVkLiBMZXQmIzM5O3MgZ2V0IHRvIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMTo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9zY2hlZC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjgwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyODA6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIEZRIENvbnRyb2xsZWQgRGVsYXkgKEZRX0NPREVMKVxuIDI4MTpcdFx0ICBwYWNrZXQgc2NoZWR1bGluZyBhbGdvcml0aG0uXG4gMjgyOlx0XG4gMjgzOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAyODQ6XHRcdCAgd2lsbCBiZSBjYWxsZWQgc2NoX2ZxX2NvZGVsLlxuIDI4NTpcdFxuIDI4NjpcdFx0ICBJZiB1bnN1cmUsIHNheSBOLlxuIDI4NzpcdFxuIDI4ODpcdGNvbmZpZyBORVRfU0NIX0NBS0VcbiAyODk6XHRcdHRyaXN0YXRlIFwmIzM0O0NvbW1vbiBBcHBsaWNhdGlvbnMgS2VwdCBFbmhhbmNlZCAoQ0FLRSlcJiMzNDtcbiAyOTA6XHRcdGhlbHBcbiAyOTE6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIENvbW1vbiBBcHBsaWNhdGlvbnMgS2VwdCBFbmhhbmNlZFxuIDI5MjpcdFx0ICAoQ0FLRSkgcXVldWUgbWFuYWdlbWVudCBhbGdvcml0aG0uXG4gMjkzOlx0XG4gMjk0Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAyOTU6XHRcdCAgd2lsbCBiZSBjYWxsZWQgc2NoX2Nha2UuXG4gMjk2Olx0XG4gMjk3Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gMjk4Olx0XG4gMjk5Olx0Y29uZmlnIE5FVF9TQ0hfRlFcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODA4OQoJCQkJCQkJb3V0cHV0OiAxMTAKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipTdHJlYW1saW5pbmcgdGhlIFByb2Nlc3MqKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IG5ldHdvcmsgc2NoZWR1bGluZywgYW5kIHRoZSBnb29kIG5ld3MgaXMsIHdlIGRvbiYjMzk7dCBuZWVkIHRvIGJyaW5nIGluIGFueSBoZWF2eS1kdXR5IGRlcGVuZGVuY2llcyBmb3IgdGhpcyBwYXJ0aWN1bGFyIG9wZXJhdGlvbi4gVGhlIHN0YW5kYXJkIGBORVRfU0NIX0NBS0VgIG1vZHVsZSBzaG91bGQgYmUgcGVyZmVjdGx5IGFkZXF1YXRlIGZvciB3aGF0IHdlIG5lZWQgdG8gYWNoaWV2ZS4gVGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBpbW1lbnNlbHkgYW5kIGtlZXBzIHRoZSBjb2RlYmFzZSBuaWNlIGFuZCBjbGVhbi4KCkdpdmVuIHRoYXQmIzM5O3Mgc2V0dGxlZCwgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGNhbGwgd2hhdGV2ZXIgZnVuY3Rpb24gb3IgbWV0aG9kIHdlJiMzOTt2ZSBkZXNpZ25hdGVkIHRvIHNldCB0aGUgcmVzdWx0cy4gTGV0JiMzOTtzIGdldCB0aG9zZSBmaWd1cmVzIGluIHBsYWNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMTo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX1NDSF9DQUtFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FrZV9jb25maWd1cmVfcmF0ZXMmIzM0OywKICAgICYjMzQ7Y2FrZV9yZWNvbmZpZ3VyZSYjMzQ7LAogICAgJiMzNDtjYWtlX2NoYW5nZSYjMzQ7LAogICAgJiMzNDtjYWtlX2luaXQmIzM0OywKICAgICYjMzQ7Y2FrZV9tcV9jaGFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgQ0FLRSBxZGlzYyB0byBhdm9pZCBjbGVhcmluZyB0aW5zIHdoZW4gYWRqdXN0aW5nIHJhdGVzIGR5bmFtaWNhbGx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIHRoYXQgYWZmZWN0cyBwYWNrZXQgc2NoZWR1bGluZyBzdGF0ZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX1NDSF9DQUtFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FrZV9jb25maWd1cmVfcmF0ZXMmIzM0OywKICAgICYjMzQ7Y2FrZV9yZWNvbmZpZ3VyZSYjMzQ7LAogICAgJiMzNDtjYWtlX2NoYW5nZSYjMzQ7LAogICAgJiMzNDtjYWtlX2luaXQmIzM0OywKICAgICYjMzQ7Y2FrZV9tcV9jaGFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgQ0FLRSBxZGlzYyB0byBhdm9pZCBjbGVhcmluZyB0aW5zIHdoZW4gYWRqdXN0aW5nIHJhdGVzIGR5bmFtaWNhbGx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIHRoYXQgYWZmZWN0cyBwYWNrZXQgc2NoZWR1bGluZyBzdGF0ZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjUzOjUyLjY3ODY4NjgwOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMDIwMjcyOTM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORVRfU0NIX0NBS0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjYWtlX2NvbmZpZ3VyZV9yYXRlc1wiLFxuICAgIFwiY2FrZV9yZWNvbmZpZ3VyZVwiLFxuICAgIFwiY2FrZV9jaGFuZ2VcIixcbiAgICBcImNha2VfaW5pdFwiLFxuICAgIFwiY2FrZV9tcV9jaGFuZ2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcmF0ZSBjb25maWd1cmF0aW9uIGxvZ2ljIGluIHRoZSBDQUtFIHFkaXNjIHRvIGF2b2lkIGNsZWFyaW5nIHRpbnMgd2hlbiBhZGp1c3RpbmcgcmF0ZXMgZHluYW1pY2FsbHkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBzY2hlZHVsZXIgdGhhdCBhZmZlY3RzIHBhY2tldCBzY2hlZHVsaW5nIHN0YXRlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1Mzo1Mi42Nzg2OTMxMzhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4Mzg5OTM3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGUwOTcyNGNkYWQwNTkzNWM3ZTMyNTI4MjU3YzBmYTM2OTgxMTQ1Y2NcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDE6NTM6NTEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuY1xcbmluZGV4IGY3OGY4ZTk1MDc3NjY3Li44NDVlMWMwMTc3MTRhMiAxMDA2NDRcXG4tLS0gYS9uZXQvc2NoZWQvc2NoX2Nha2UuY1xcbisrKyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jXFxuQEAgLTI2MDksOSArMjYwOSwxMSBAQCBzdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTY0IHJhdGUsIGJvb2wgcmF0ZV9hZGp1c3QpXFxuIFxcdFxcdGJyZWFrO1xcbiBcXHR9XFxuIFxcbi1cXHRmb3IgKGMgPSBxZC1cXHUwMDNldGluX2NudDsgYyBcXHUwMDNjIENBS0VfTUFYX1RJTlM7IGMrKykge1xcbi1cXHRcXHRjYWtlX2NsZWFyX3RpbihzY2gsIGMpO1xcbi1cXHRcXHRxZC1cXHUwMDNldGluc1tjXS5jcGFyYW1zLm10dV90aW1lID0gcWQtXFx1MDAzZXRpbnNbZnRdLmNwYXJhbXMubXR1X3RpbWU7XFxuK1xcdGlmICghcmF0ZV9hZGp1c3QpIHtcXG4rXFx0XFx0Zm9yIChjID0gcWQtXFx1MDAzZXRpbl9jbnQ7IGMgXFx1MDAzYyBDQUtFX01BWF9USU5TOyBjKyspIHtcXG4rXFx0XFx0XFx0Y2FrZV9jbGVhcl90aW4oc2NoLCBjKTtcXG4rXFx0XFx0XFx0cWQtXFx1MDAzZXRpbnNbY10uY3BhcmFtcy5tdHVfdGltZSA9IHFkLVxcdTAwM2V0aW5zW2Z0XS5jcGFyYW1zLm10dV90aW1lO1xcbitcXHRcXHR9XFxuIFxcdH1cXG4gXFxuIFxcdHFkLVxcdTAwM2VyYXRlX25zICAgPSBxZC1cXHUwMDNldGluc1tmdF0udGluX3JhdGVfbnM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjUzOjUzLjI2MzUyNjk1NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk5NjE3ODc3NjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVF9TQ0hfQ0FLRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNha2VfY29uZmlndXJlX3JhdGVzXCIsXG4gICAgXCJjYWtlX3JlY29uZmlndXJlXCIsXG4gICAgXCJjYWtlX2NoYW5nZVwiLFxuICAgIFwiY2FrZV9pbml0XCIsXG4gICAgXCJjYWtlX21xX2NoYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIGNvbmZpZ3VyYXRpb24gbG9naWMgaW4gdGhlIENBS0UgcWRpc2MgdG8gYXZvaWQgY2xlYXJpbmcgdGlucyB3aGVuIGFkanVzdGluZyByYXRlcyBkeW5hbWljYWxseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHNjaGVkdWxlciB0aGF0IGFmZmVjdHMgcGFja2V0IHNjaGVkdWxpbmcgc3RhdGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTA5NzI0Y2RhZDA1OTM1YzdlMzI1MjgyNTdjMGZhMzY5ODExNDVjY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDAxOjUzOjUxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuY1xuaW5kZXggZjc4ZjhlOTUwNzc2NjcuLjg0NWUxYzAxNzcxNGEyIDEwMDY0NFxuLS0tIGEvbmV0L3NjaGVkL3NjaF9jYWtlLmNcbisrKyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jXG5AQCAtMjYwOSw5ICsyNjA5LDExIEBAIHN0YXRpYyB2b2lkIGNha2VfY29uZmlndXJlX3JhdGVzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgYm9vbCByYXRlX2FkanVzdClcbiBcdFx0YnJlYWs7XG4gXHR9XG4gXG4tXHRmb3IgKGMgPSBxZC1cdTAwM2V0aW5fY250OyBjIFx1MDAzYyBDQUtFX01BWF9USU5TOyBjKyspIHtcbi1cdFx0Y2FrZV9jbGVhcl90aW4oc2NoLCBjKTtcbi1cdFx0cWQtXHUwMDNldGluc1tjXS5jcGFyYW1zLm10dV90aW1lID0gcWQtXHUwMDNldGluc1tmdF0uY3BhcmFtcy5tdHVfdGltZTtcbitcdGlmICghcmF0ZV9hZGp1c3QpIHtcbitcdFx0Zm9yIChjID0gcWQtXHUwMDNldGluX2NudDsgYyBcdTAwM2MgQ0FLRV9NQVhfVElOUzsgYysrKSB7XG4rXHRcdFx0Y2FrZV9jbGVhcl90aW4oc2NoLCBjKTtcbitcdFx0XHRxZC1cdTAwM2V0aW5zW2NdLmNwYXJhbXMubXR1X3RpbWUgPSBxZC1cdTAwM2V0aW5zW2Z0XS5jcGFyYW1zLm10dV90aW1lO1xuK1x0XHR9XG4gXHR9XG4gXG4gXHRxZC1cdTAwM2VyYXRlX25zICAgPSBxZC1cdTAwM2V0aW5zW2Z0XS50aW5fcmF0ZV9ucztcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjUzOjUzLjI2MzUyODYyNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1NzA1ODkzODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipBbmFseXppbmcgYSBDQUtFIFNjaGVkdWxlciBQYXRjaCoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgYG5ldC9zY2hlZC9zY2hfY2FrZS5jYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSB3aXRoaW4gdGhlIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgZnVuY3Rpb24uIFRoZSBwYXRjaCdzIGludHJvZHVjdGlvbiBvZiBhbiBgaWYgKCFyYXRlX2FkanVzdClgIGNvbmRpdGlvbiBpcyB3aGF0IEknbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiwgZ2l2ZW4gbXkgYmFja2dyb3VuZC4gSSBrbm93IHRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGFkanVzdGluZyB0aGUgYmFuZHdpZHRoIHJhdGVzIGFuZCByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgQ0FLRSBxZGlzYy5cblxuU3BlY2lmaWNhbGx5LCBpdCBsb29rcyBsaWtlIHRoaXMgbmV3IGNvbmRpdGlvbmFsIGlzIGdhdGluZyBhIGxvb3AgdGhhdCdzIHJlc3BvbnNpYmxlIGZvciBjbGVhcmluZyBvdXQgXCJ0aW5zXCIgYW5kIHNldHRpbmcgYG10dV90aW1lYC4gTm93LCB0aGUgXCJ0aW5zXCIgY29uY2VwdCwgSSdtIGFscmVhZHkgYXdhcmUgb2YsIGlzIGhvdyBDQUtFIHN0cnVjdHVyZXMgaXRzIHRyYWZmaWMgc2hhcGluZywgZ3JvdXBpbmcgdGhpbmdzIGJhc2VkIG9uIHRpbWUuIFNvLCBpZiBgcmF0ZV9hZGp1c3RgIGlzIGZhbHNlLCB0aGlzIG1lYW5zIHdlJ3JlICpub3QqIGFkanVzdGluZyB0aGUgcmF0ZSwgYW5kIHdlIGVudGVyIHRoaXMgbG9vcD8gSG1tLCBJJ2QgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNvbnRleHQgb2YgYHJhdGVfYWRqdXN0YCB0byBzZWUgd2hhdCBzY2VuYXJpb3MgdGhhdCBjb3ZlcnMuIEkgYmV0IGl0IGhhcyB0byBkbyB3aXRoIGhvdyB0aGUgcWRpc2MgaXMgYmVpbmcgY29uZmlndXJlZCBvciByZWNvbmZpZ3VyZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBjb25kaXRpb25hbCBpcyB0cnlpbmcgdG8gcHJvdGVjdCwgYW5kIHdoYXQgc2NlbmFyaW9zIGl0J3MgYWNjb3VudGluZyBmb3IuIFBlcmhhcHMsIHRoaXMgY2hhbmdlIGltcHJvdmVzIHRoZSByZWxpYWJpbGl0eSBvZiB0aGUgY29uZmlndXJhdGlvbiwgYW5kIHByZXZlbnRzIHJlc2V0dGluZyBvZiB0aGVzZSB2YWx1ZXMgaW4gdGhlIHdyb25nIHNjZW5hcmlvcy4gSSdsbCBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGNvZGUsIHRoZSBjb21taXQgbWVzc2FnZSwgYW5kIGFueSByZWxhdGVkIGRvY3VtZW50YXRpb24gdG8gZnVsbHkgZ3Jhc3AgdGhlIHJhdGlvbmFsZSBoZXJlLCBhbmQgd2hhdCBwb3RlbnRpYWwgaW1wbGljYXRpb25zIHRoZXJlIG1pZ2h0IGJlIGZvciBvdmVyYWxsIENBS0UgcGVyZm9ybWFuY2UgYW5kIGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTU4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1Mzo1OC44MzQxMjAzNTNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU0Njc0OTI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNha2VfY29uZmlndXJlX3JhdGVzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY2hlZC9zY2hfY2FrZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY2hlZC9zY2hfY2FrZS5jPTM4Nz1zdGF0aWMgY29uc3QgdTMyIGludl9zcXJ0X2NhY2hlW1JFQ19JTlZfU1FSVF9DQUNIRV0gPSB7XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0zOTMtXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM6Mzk0OnN0YXRpYyB2b2lkIGNha2VfY29uZmlndXJlX3JhdGVzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgYm9vbCByYXRlX2FkanVzdCk7XFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzk1LVxcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM9MjAwNz1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmNha2VfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaClcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTIwNDYtXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM6MjA0NzpcXHRcXHRjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzY2gsIG5ld19yYXRlLCB0cnVlKTtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yMDQ4LVxcdFxcdHEtXFx1MDAzZWxhc3RfY2hlY2tlZF9hY3RpdmUgPSBub3c7XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yNTUwPXN0YXRpYyBpbnQgY2FrZV9jb25maWdfZGlmZnNlcnYzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgdTMyIG10dSlcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI1ODEtXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM6MjU4MjpzdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTY0IHJhdGUsIGJvb2wgcmF0ZV9hZGp1c3QpXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjU4My17XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yNjIzPXN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpXFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNjI4LVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjI2Mjk6XFx0Y2FrZV9jb25maWd1cmVfcmF0ZXMoc2NoLCBxZC1cXHUwMDNlY29uZmlnLVxcdTAwM2VyYXRlX2JwcywgZmFsc2UpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI2MzAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjUzOjU4Ljk4ODgwMDU4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ5NDA3OTk3NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDQUtFIHFkaXNjIFJhdGUgQWRqdXN0bWVudCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgaG93IGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgYmVoYXZlcyB3aXRoaW4gdGhlIENBS0UgcWRpc2MuIEl0J3MgaW50ZXJlc3RpbmcgaG93IGl0J3MgY2FsbGVkIGZyb20gdHdvIGRpZmZlcmVudCBlbnRyeSBwb2ludHM6IGBjYWtlX2RlcXVldWVgLCB3aGVyZSBgcmF0ZV9hZGp1c3RgIGlzIHNldCB0byBgdHJ1ZWAsIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAsIHdpdGggYHJhdGVfYWRqdXN0YCBzZXQgdG8gYGZhbHNlYC4gVGhlIGtleSBkaWZmZXJlbmNlIGlzIHRoYXQgd2hlbiB0aGUgYHJhdGVfYWRqdXN0YCBmbGFnIGlzICp0cnVlKiwgbWVhbmluZyB3ZSdyZSBwcm9iYWJseSByZXNwb25kaW5nIHRvIHNvbWUgZHluYW1pYyBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgY29uZGl0aW9ucywgd2UncmUgZ29pbmcgdG8gKmF2b2lkKiBjbGVhcmluZyB0aGUgdGlucyBhbmQgcmVzZXR0aW5nIGBtdHVfdGltZWAuIFRoaXMgaXMgY3JpdGljYWwuIFdoeT8gQmVjYXVzZSB0aGUgYGNha2VfZGVxdWV1ZWAgcGF0aCwgd2l0aCB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSwgaW1wbGllcyB0aGF0IHdlIGFyZSBwcm9jZXNzaW5nIGEgcGFja2V0LCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBjbGVhciB0aGUgdGlucyBvciByZXNldCBtdHVfdGltZS4gVGhpcyB3b3VsZCBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcWRpc2MuXG5cblRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyBhIGRlZmluaXRlIGZ1bmN0aW9uYWwgYWRqdXN0bWVudCB0byBob3cgQ0FLRSBtYW5hZ2VzIGl0cyBpbnRlcm5hbCBzdGF0ZSBkdXJpbmcgdGhlc2UgcmF0ZSBhZGp1c3RtZW50cy4gSSB3b25kZXIgd2hhdCB0aGUgY29ycmVzcG9uZGluZyBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGZvciB0aGlzIHNwZWNpZmljIGJlaGF2aW9yLiBJdCdzIHRpbWUgdG8gZGlnIGludG8gdGhlIGNvbmZpZyBvcHRpb25zIGZvciB0aGUgQ0FLRSBxZGlzYy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg1NSwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1NDoyMy45Mjk2MDI0ODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk1NzEwMjI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNjaF9jYWtlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY2hlZC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjaGVkL0tjb25maWc9Mjg4PWNvbmZpZyBORVRfU0NIX0NBS0VcXG4tLVxcbm5ldC9zY2hlZC9LY29uZmlnLTI5NC1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcXG5uZXQvc2NoZWQvS2NvbmZpZzoyOTU6XFx0ICB3aWxsIGJlIGNhbGxlZCBzY2hfY2FrZS5cXG5uZXQvc2NoZWQvS2NvbmZpZy0yOTYtXFxuLS1cXG5uZXQvc2NoZWQvTWFrZWZpbGU9NTY9b2JqLSQoQ09ORklHX05FVF9TQ0hfRlFfQ09ERUwpXFx0Kz0gc2NoX2ZxX2NvZGVsLm9cXG5uZXQvc2NoZWQvTWFrZWZpbGU6NTc6b2JqLSQoQ09ORklHX05FVF9TQ0hfQ0FLRSlcXHQrPSBzY2hfY2FrZS5vXFxubmV0L3NjaGVkL01ha2VmaWxlLTU4LW9iai0kKENPTkZJR19ORVRfU0NIX0ZRKVxcdCs9IHNjaF9mcS5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjU0OjI0LjQyNTMxODYyNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0Nzg5MzMyMTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIENBS0UgUWRpc2MgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBJIG5lZWQgdG8gdGFyZ2V0IGlzIGBORVRfU0NIX0NBS0VgLiBUaGlzIGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIChxZGlzYykgY29kZSwgc3BlY2lmaWNhbGx5LCBJJ20gZm9jdXNpbmcgb24gdGhlIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgZnVuY3Rpb24uIEdpdmVuIHRoYXQsIGl0J3MgZGVmaW5pdGVseSB3b3J0aCBzcGVuZGluZyBzb21lIGN5Y2xlcyBmdXp6aW5nIGl0LlxuXG5UaGUgbWFpbiBzeW1ib2xzIHRvIGZvY3VzIG15IGF0dGVudGlvbiBvbiBhcmUgYGNha2VfY29uZmlndXJlX3JhdGVzYCwgYGNha2VfZGVxdWV1ZWAsIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAuIFdhaXQgYSBtaW51dGUsIGBjYWtlX2RlcXVldWVgIGlzIGEgaG90IHBhdGggZnVuY3Rpb24sIHVzZWQgZm9yIGRlcXVldWluZyBwYWNrZXRzIGZyb20gdGhlIHFkaXNjLi4uIFRoYXQncyBzaWduaWZpY2FudC4gTm93IEkgcmVtZW1iZXIgdGhhdCBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGlzIGNhbGxlZCBib3RoIGZyb20gYGNha2VfZGVxdWV1ZWAgYW5kIGZyb20gYGNha2VfcmVjb25maWd1cmVgLiBIbW0sIHBlcmhhcHMgSSBzaG91bGQgZm9jdXMgbW9zdCBvZiBteSBlbmVyZ3kgb24gYGNha2VfY29uZmlndXJlX3JhdGVzYCB0aGVuLCBzaW5jZSBpdCdzIHJlYWNoYWJsZSB2aWEgdGhlIGhvdCBgY2FrZV9kZXF1ZXVlYCBwYXRoLlxuXG5MZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gdGhhdCBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGl0c2VsZiBpc24ndCBhIGhvdCBwYXRoIGZ1bmN0aW9uLiBJdCdzIGNhbGxlZCBmcm9tIGBjYWtlX2RlcXVldWVgLCBidXQgb25seSB3aGVuIGByYXRlX2FkanVzdGAgaXMgdHJ1ZSwgd2hpY2ggcHJlc3VtYWJseSBoYXBwZW5zIHdoZW4gdGhlIGBuZXdfcmF0ZWAgaXMgZGlmZmVyZW50LiBMZXQncyBzZWUuLi4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBjb2RlIGFyb3VuZCBsaW5lIDIwNDcgaW4gYGNha2VfZGVxdWV1ZWAgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MTcsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTQ6MzkuMjE0NjUzMDkxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAzMjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9zY2hlZC9zY2hfY2FrZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwMzAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIwMzA6XFx0XFx0XFx0Zm9yIChudHggPSAwOyBudHggXFx1MDAzYyBkZXYtXFx1MDAzZW51bV90eF9xdWV1ZXM7IG50eCsrKSB7XFxuMjAzMTpcXHRcXHRcXHRcXHRvdGhlcl9zY2ggPSByY3VfZGVyZWZlcmVuY2UobmV0ZGV2X2dldF90eF9xdWV1ZShkZXYsIG50eCktXFx1MDAzZXFkaXNjX3NsZWVwaW5nKTtcXG4yMDMyOlxcdFxcdFxcdFxcdG90aGVyX3ByaXYgPSBxZGlzY19wcml2KG90aGVyX3NjaCk7XFxuMjAzMzpcXHRcXG4yMDM0OlxcdFxcdFxcdFxcdGlmIChvdGhlcl9wcml2ID09IHEpXFxuMjAzNTpcXHRcXHRcXHRcXHRcXHRjb250aW51ZTtcXG4yMDM2OlxcdFxcbjIwMzc6XFx0XFx0XFx0XFx0b3RoZXJfcWxlbiA9IFJFQURfT05DRShvdGhlcl9zY2gtXFx1MDAzZXEucWxlbik7XFxuMjAzODpcXHRcXHRcXHRcXHRvdGhlcl9sYXN0X2FjdGl2ZSA9IFJFQURfT05DRShvdGhlcl9wcml2LVxcdTAwM2VsYXN0X2FjdGl2ZSk7XFxuMjAzOTpcXHRcXG4yMDQwOlxcdFxcdFxcdFxcdGlmIChvdGhlcl9xbGVuIHx8IG90aGVyX2xhc3RfYWN0aXZlIFxcdTAwM2UgcS1cXHUwMDNlbGFzdF9jaGVja2VkX2FjdGl2ZSlcXG4yMDQxOlxcdFxcdFxcdFxcdFxcdG51bV9hY3RpdmVfcXMrKztcXG4yMDQyOlxcdFxcdFxcdH1cXG4yMDQzOlxcdFxcbjIwNDQ6XFx0XFx0XFx0aWYgKG51bV9hY3RpdmVfcXMgXFx1MDAzZSAxKVxcbjIwNDU6XFx0XFx0XFx0XFx0bmV3X3JhdGUgPSBkaXY2NF91NjQocS1cXHUwMDNlY29uZmlnLVxcdTAwM2VyYXRlX2JwcywgbnVtX2FjdGl2ZV9xcyk7XFxuMjA0NjpcXHRcXG4yMDQ3OlxcdFxcdFxcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgbmV3X3JhdGUsIHRydWUpO1xcbjIwNDg6XFx0XFx0XFx0cS1cXHUwMDNlbGFzdF9jaGVja2VkX2FjdGl2ZSA9IG5vdztcXG4yMDQ5OlxcdFxcdFxcdFdSSVRFX09OQ0UocS1cXHUwMDNlYWN0aXZlX3F1ZXVlcywgbnVtX2FjdGl2ZV9xcyk7XFxuMjA1MDpcXHRcXHR9XFxuMjA1MTpcXHRcXG4yMDUyOlxcdGJlZ2luOlxcbjIwNTM6XFx0XFx0aWYgKCFzY2gtXFx1MDAzZXEucWxlbilcXG4yMDU0OlxcdFxcdFxcdHJldHVybiBOVUxMO1xcbjIwNTU6XFx0XFxuMjA1NjpcXHRcXHQvKiBnbG9iYWwgaGFyZCBzaGFwZXIgKi9cXG4yMDU3OlxcdFxcdGlmIChrdGltZV9hZnRlcihxLVxcdTAwM2V0aW1lX25leHRfcGFja2V0LCBub3cpIFxcdTAwMjZcXHUwMDI2XFxuMjA1ODpcXHRcXHQgICAga3RpbWVfYWZ0ZXIocS1cXHUwMDNlZmFpbHNhZmVfbmV4dF9wYWNrZXQsIG5vdykpIHtcXG4yMDU5OlxcdFxcdFxcdHU2NCBuZXh0ID0gbWluKGt0aW1lX3RvX25zKHEtXFx1MDAzZXRpbWVfbmV4dF9wYWNrZXQpLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1NDozOS4yMTQ4NTgxOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1Njc2MzY4NTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBhbiBleHBlcnQgaW4gdGhpcyBmaWVsZDpcblxuKipEZWJ1Z2dpbmcgdGhlIFJhdGUgQ29uZmlndXJhdGlvbiBQcm9jZXNzKipcblxuQWxyaWdodCwgc28gaXQgbG9va3MgbGlrZSBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGlzIGxpa2VseSB0aGUga2V5IGZ1bmN0aW9uIHRoYXQgZ2V0cyBpbnZva2VkIHdoZW5ldmVyIHRoZSB0cmFmZmljIHNoYXBpbmcgcmF0ZXMgbmVlZCB0byBiZSB1cGRhdGVkLiBNeSBpbml0aWFsIGh1bmNoIGlzIHRoYXQgaXQncyBlaXRoZXIgdHJpZ2dlcmVkIGJ5IGEgcmVndWxhciB0aW1lciwgYSBzY2hlZHVsZWQgdGFzaywgb3IgcGVyaGFwcyB3aGVuZXZlciB0aGUgYWN0aXZlIHF1ZXVlcyB3aXRoaW4gdGhlIHN5c3RlbSBjaGFuZ2UuIFRoYXQgbWFrZXMgc2Vuc2UsIHRob3NlIGFyZSB0aGUgdHlwaWNhbCBldmVudHMgdGhhdCB3b3VsZCB0cmlnZ2VyIGEgcmVjb25maWd1cmF0aW9uLlxuXG5UbyBjb25maXJtIHRoYXQsIEkgc2hvdWxkIGRpZyBpbnRvIGhvdyB0aGUgc3lzdGVtIGlzIHJlY29uZmlndXJpbmcgaXRzIHJhdGVzLiBUaGF0IG1lYW5zIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBgY2FrZV9yZWNvbmZpZ3VyZWAgZnVuY3Rpb24uIFRoYXQgZnVuY3Rpb24gd2lsbCBsaWtlbHkgcHJvdmlkZSB0aGUgb3ZlcmFsbCBjb250cm9sIGxvZ2ljIGZvciBhY3R1YWxseSBtYWtpbmcgdGhlIGNoYW5nZXMsIHB1bGxpbmcgaW4gYW55IHVwZGF0ZWQgcGFyYW1ldGVycyBvciBzZXR0aW5ncywgYW5kIGNhbGxpbmcgb3RoZXIgZnVuY3Rpb25zIGxpa2UgYGNha2VfY29uZmlndXJlX3JhdGVzYCB3aGVuIGFwcHJvcHJpYXRlLiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHN5c3RlbSBkZWNpZGVzICp3aGVuKiB0byByZWNvbmZpZ3VyZSBhbmQgKndoYXQqIGl0J3MgcmVjb25maWd1cmluZyB0byB1bmRlcnN0YW5kIHRoaXMgYmV0dGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDY3LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1NDo1NC44OTEyMzgzMThaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYzNzI3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvc2NoZWQvc2NoX2Nha2UuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNjIwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNjIwOlxcdFxcdHFkLVxcdTAwM2VyYXRlX3NoZnQgPSBxZC1cXHUwMDNldGluc1tmdF0udGluX3JhdGVfc2hmdDtcXG4yNjIxOlxcdH1cXG4yNjIyOlxcdFxcbjI2MjM6XFx0c3RhdGljIHZvaWQgY2FrZV9yZWNvbmZpZ3VyZShzdHJ1Y3QgUWRpc2MgKnNjaClcXG4yNjI0OlxcdHtcXG4yNjI1OlxcdFxcdHN0cnVjdCBjYWtlX3NjaGVkX2RhdGEgKnFkID0gcWRpc2NfcHJpdihzY2gpO1xcbjI2MjY6XFx0XFx0c3RydWN0IGNha2Vfc2NoZWRfY29uZmlnICpxID0gcWQtXFx1MDAzZWNvbmZpZztcXG4yNjI3OlxcdFxcdHUzMiBidWZmZXJfbGltaXQ7XFxuMjYyODpcXHRcXG4yNjI5OlxcdFxcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgcWQtXFx1MDAzZWNvbmZpZy1cXHUwMDNlcmF0ZV9icHMsIGZhbHNlKTtcXG4yNjMwOlxcdFxcbjI2MzE6XFx0XFx0aWYgKHEtXFx1MDAzZWJ1ZmZlcl9jb25maWdfbGltaXQpIHtcXG4yNjMyOlxcdFxcdFxcdGJ1ZmZlcl9saW1pdCA9IHEtXFx1MDAzZWJ1ZmZlcl9jb25maWdfbGltaXQ7XFxuMjYzMzpcXHRcXHR9IGVsc2UgaWYgKHEtXFx1MDAzZXJhdGVfYnBzKSB7XFxuMjYzNDpcXHRcXHRcXHR1NjQgdCA9IHEtXFx1MDAzZXJhdGVfYnBzICogcS1cXHUwMDNlaW50ZXJ2YWw7XFxuMjYzNTpcXHRcXG4yNjM2OlxcdFxcdFxcdGRvX2Rpdih0LCBVU0VDX1BFUl9TRUMgLyA0KTtcXG4yNjM3OlxcdFxcdFxcdGJ1ZmZlcl9saW1pdCA9IG1heF90KHUzMiwgdCwgNFUgXFx1MDAzY1xcdTAwM2MgMjApO1xcbjI2Mzg6XFx0XFx0fSBlbHNlIHtcXG4yNjM5OlxcdFxcdFxcdGJ1ZmZlcl9saW1pdCA9IH4wO1xcbjI2NDA6XFx0XFx0fVxcbjI2NDE6XFx0XFxuMjY0MjpcXHRcXHRzY2gtXFx1MDAzZWZsYWdzIFxcdTAwMjY9IH5UQ1FfRl9DQU5fQllQQVNTO1xcbjI2NDM6XFx0XFxuMjY0NDpcXHRcXHRXUklURV9PTkNFKHFkLVxcdTAwM2VidWZmZXJfbGltaXQsXFxuMjY0NTpcXHRcXHRcXHQgICBtaW4oYnVmZmVyX2xpbWl0LFxcbjI2NDY6XFx0XFx0XFx0ICAgICAgIG1heChzY2gtXFx1MDAzZWxpbWl0ICogcHNjaGVkX210dShxZGlzY19kZXYoc2NoKSksXFxuMjY0NzpcXHRcXHRcXHRcXHQgICBxLVxcdTAwM2VidWZmZXJfY29uZmlnX2xpbWl0KSkpO1xcbjI2NDg6XFx0fVxcbjI2NDk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjU0OjU0Ljg5Njg3OTk1OFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzI3Mzg3MzYzOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkFuYWx5emluZyB0aGUgQ0FLRSBRdWV1ZSBEaXNjaXBsaW5lIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUuLi4gc28sIGBjYWtlX3JlY29uZmlndXJlYCBpcyB0aGUga2V5IGZ1bmN0aW9uIGhlcmUuIEl0J3MgdHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBDQUtFIHF1ZXVlIGRpc2NpcGxpbmUgaXRzZWxmIGlzIGluaXRpYWxseSBzZXQgdXAgb3IsIG1vcmUgaW1wb3J0YW50bHksICpyZSpjb25maWd1cmVkIOKAkyBtZWFuaW5nIGFueSBzdWJzZXF1ZW50IGNoYW5nZXMgdG8gaXRzIHBhcmFtZXRlcnMuIFRoYXQncyBnb29kIHRvIGtub3c7IGl0IHRlbGxzIG1lIGV4YWN0bHkgd2hlbiBJIG5lZWQgdG8gcGF5IGF0dGVudGlvbiB0byBpdHMgYmVoYXZpb3IuXG5cbk15IGltbWVkaWF0ZSBmb2xsb3ctdXAgdGhvdWdodCBpcywgd2hpY2ggcGFydCBvZiB0aGUgY29kZSBhY3R1YWxseSAqY2FsbHMqIHRoYXQgZnVuY3Rpb24/IEFuZCB0aGUgbG9naWNhbCBjYW5kaWRhdGUgYXBwZWFycyB0byBiZSBgY2FrZV9jaGFuZ2VgLiBTZWVtcyBsaWtlIHRoYXQncyB0aGUgbGlrZWx5IGVudHJ5IHBvaW50LiBVbmRlcnN0YW5kaW5nIHRoYXQgcmVsYXRpb25zaGlwIGlzIGNydWNpYWwuIElmIEknbSB0cm91Ymxlc2hvb3RpbmcsIG9yIG9wdGltaXppbmcgQ0FLRSwgSSBuZWVkIHRvIGtub3cgdGhlIGNhbGxpbmcgc2VxdWVuY2UuIEtub3dpbmcgdGhlIGNhbGxlciBgY2FrZV9jaGFuZ2VgIGFuZCBpdHMgcm9sZSB3aWxsIGRpY3RhdGUgaG93IEkgYmVzdCBjYW4gb2JzZXJ2ZSB0aGUgcmVjb25maWd1cmF0aW9uIHByb2Nlc3MsIGRldGVybWluZSB0aGUgaW5wdXRzLCBhbmQgcGlucG9pbnQgdGhlIHRyaWdnZXIgZm9yIHRoZXNlIGNydWNpYWwgdXBkYXRlcy4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGF0IGFzc3VtcHRpb24gYW5kIHZlcmlmeSwgYnV0IGl0J3MgYSB2ZXJ5IHJlYXNvbmFibGUgc3RhcnRpbmcgcG9pbnQuIEV4Y2VsbGVudCwgdGhhdCdzIGEgZ29vZCBzdGFydC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTIyMywiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTY6MDIuMTcwNzU2MTA2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MDMzMDIzNzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2FrZV9yZWNvbmZpZ3VyZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2NoZWQvc2NoX2Nha2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2NoZWQvc2NoX2Nha2UuYz0xNzE2PXN0YXRpYyB1MzIgY2FrZV9jbGFzc2lmeShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IGNha2VfdGluX2RhdGEgKip0LFxcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMTc1My1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoxNzU0OnN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTE3NTUtXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM9MTc1Nj1zdGF0aWMgczMyIGNha2VfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCxcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTE5MTAtXFx0XFx0XFx0XFx0cS1cXHUwMDNlY29uZmlnLVxcdTAwM2VyYXRlX2JwcyA9IChxLVxcdTAwM2VhdmdfcGVha19iYW5kd2lkdGggKiAxNSkgXFx1MDAzZVxcdTAwM2UgNDtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoxOTExOlxcdFxcdFxcdFxcdGNha2VfcmVjb25maWd1cmUoc2NoKTtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0xOTEyLVxcdFxcdFxcdH1cXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTI1ODI9c3RhdGljIHZvaWQgY2FrZV9jb25maWd1cmVfcmF0ZXMoc3RydWN0IFFkaXNjICpzY2gsIHU2NCByYXRlLCBib29sIHJhdGVfYWRqdXN0KVxcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjYyMi1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyNjIzOnN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjYyNC17XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yNzc0PXN0YXRpYyBpbnQgY2FrZV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCxcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI3OTktXFx0XFx0c2NoX3RyZWVfbG9jayhzY2gpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjI4MDA6XFx0XFx0Y2FrZV9yZWNvbmZpZ3VyZShzY2gpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI4MDEtXFx0XFx0c2NoX3RyZWVfdW5sb2NrKHNjaCk7XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yODMyPXN0YXRpYyBpbnQgY2FrZV9pbml0KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsXFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yODkwLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjI4OTE6XFx0Y2FrZV9yZWNvbmZpZ3VyZShzY2gpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI4OTItXFx0cWQtXFx1MDAzZWF2Z19wZWFrX2JhbmR3aWR0aCA9IHEtXFx1MDAzZXJhdGVfYnBzO1xcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM9MjkwMT1zdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ19yZXBsYWNlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgY2FrZV9zY2hlZF9jb25maWcgKmNmZylcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI5MDUtXFx0cWQtXFx1MDAzZWNvbmZpZyA9IGNmZztcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyOTA2OlxcdGNha2VfcmVjb25maWd1cmUoc2NoKTtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yOTA3LX1cXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTMzMDI9c3RhdGljIGludCBjYWtlX21xX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LFxcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzMyNy1cXHRcXHRcXHRzY2hfdHJlZV9sb2NrKGNobGQpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjMzMjg6XFx0XFx0XFx0Y2FrZV9yZWNvbmZpZ3VyZShjaGxkKTtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0zMzI5LVxcdFxcdFxcdHNjaF90cmVlX3VubG9jayhjaGxkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTY6MDIuODc0MDYzNTcxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyNzQ4NDk5OTUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkNBS0UgUWRpc2MgUmF0ZSBDb25maWd1cmF0aW9uIFBhdGNoIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIENBS0UgcWRpc2MgcGF0Y2ggYW5kIGhlcmUncyBteSBicmVha2Rvd24uIEZyb20gd2hhdCBJIGNhbiBzZWUsIGBjYWtlX3JlY29uZmlndXJlYCBnZXRzIGNhbGxlZCBmcm9tIHNldmVyYWwgcGxhY2VzOiBgY2FrZV9jaGFuZ2VgLCBgY2FrZV9pbml0YCwgYGNha2VfY29uZmlnX3JlcGxhY2VgLCBgY2FrZV9tcV9jaGFuZ2VgLCBhbmQgYGNha2VfZW5xdWV1ZWAuIFRoZSBjb3JlIGlzc3VlIHNlZW1zIHRvIGJlIHRoYXQgYGNha2VfY29uZmlndXJlX3JhdGVzYCB3YXMgaW5jb3JyZWN0bHkgY2xlYXJpbmcgdGhlIHRpbnMsIHNwZWNpZmljYWxseSB3aGVuIGNhbGxlZCBmcm9tIGBjYWtlX2RlcXVldWVgIHdpdGggYHJhdGVfYWRqdXN0PXRydWVgLiBUaGlzIHdvdWxkIGxlYWQgdG8gbG9zdCBvciBjb3JydXB0ZWQgc3RhdGUsIHNvIGl0IG1ha2VzIHNlbnNlIHdoeSBpdCdzIGEgYnVnLiBUaGUgcHJvcG9zZWQgZml4LCB3aGljaCBpcyB0aGUgbW9kaWZpY2F0aW9uIGhlcmUsIGlzIG9ubHkgY2xlYXJpbmcgdGhlIHRpbnMgaWYgYHJhdGVfYWRqdXN0YCBpcyBmYWxzZSwgd2hpY2ggc2VlbXMgY29ycmVjdCBmcm9tIGEgZnVuY3Rpb25hbCBwZXJzcGVjdGl2ZS5cblxuR2l2ZW4gdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHJhdGUgY29uZmlndXJhdGlvbiwgaXQncyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHN0YWJpbGl0eSBhbmQgY29ycmVjdG5lc3MgdW5kZXIgdmFyaW91cyBjb25kaXRpb25zLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIGZvY3VzIHRoZSBmdXp6aW5nIG9uIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AsIGBjYWtlX3JlY29uZmlndXJlYCwgYGNha2VfY2hhbmdlYCwgYGNha2VfaW5pdGAsIGFuZCBgY2FrZV9tcV9jaGFuZ2VgLCBhcyB0aGVzZSBzZWVtIHRvIGJlIHRoZSBwcmltYXJ5IGVudHJ5IHBvaW50cyBhbmQgY29uZmlndXJhdGlvbiBwb2ludHMuXG5cbkhvd2V2ZXIsIGFmdGVyIGEgc2Vjb25kIGxvb2ssIEkgcmVhbGl6ZSB0aGF0IGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgaXMgdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBoYXMgYmVlbiBkaXJlY3RseSBtb2RpZmllZC4gVGhpcyBhY3R1YWxseSBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdC4gSSBzdGlsbCBuZWVkIHRvIHRhcmdldCB0aG9zZSBjb25maWd1cmF0aW9uIHBhdGhzIHNvIEknbSBnb2luZyB0byBpbmNsdWRlIHRoZSBvcmlnaW5hbCBzZXQ6IGBjYWtlX2NoYW5nZWAsIGBjYWtlX2luaXRgLCBhbmQgYGNha2VfbXFfY2hhbmdlYC4gQW5kLCBzaW5jZSBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGlzIHRoZSBoZWFydCBvZiB0aGUgaXNzdWUsIGFuZCBjYWxsZWQgYnkgYGNha2VfcmVjb25maWd1cmVgLCBJJ2xsIGluY2x1ZGUgYGNha2VfY29uZmlndXJlX3JhdGVzYCBhbmQgYGNha2VfcmVjb25maWd1cmVgIGFzIGtleSBmb2N1cyBwb2ludHMuIEkga25vdyBgY2FrZV9kZXF1ZXVlYCBjYWxscyBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGFzIHdlbGwsIGJ1dCB0aGF0J3MgYSBob3QgcGF0aCBmdW5jdGlvbiB3aGljaCBJIHdhbnQgdG8gYXZvaWQgdG8gbWFrZSB0aGUgdGVzdGluZyBhIGJpdCBtb3JlIHRhcmdldGVkLlxuXG5SZWdhcmRpbmcgY29uZmlndXJhdGlvbiwgSSdsbCBuZWVkIGBORVRfU0NIX0NBS0VgLiBMZXQncyBkb3VibGUgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBvdGhlciBkZXBlbmRlbmNpZXMuIE5vcGUsIHRoYXQncyB0aGUgb25seSBvbmUuXG5cbkhlcmUncyB0aGUgc3VtbWFyeTpcblxuKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWVcbiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFtcIk5FVF9TQ0hfQ0FLRVwiXWBcbiogICAqKkZvY3VzU3ltYm9sczoqKiBgW1wiY2FrZV9jb25maWd1cmVfcmF0ZXNcIiwgXCJjYWtlX3JlY29uZmlndXJlXCIsIFwiY2FrZV9jaGFuZ2VcIiwgXCJjYWtlX2luaXRcIiwgXCJjYWtlX21xX2NoYW5nZVwiXWBcbiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggaXMgbW9kaWZ5aW5nIHRoZSBDQUtFIHFkaXNjIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYy4gSXQgZml4ZXMgY2xlYXJpbmcgdGhlIHRpbnMgd2hlbiBkeW5hbWljYWxseSBhZGp1c3RpbmcgcmF0ZXMsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIG5ldHdvcmsgc2NoZWR1bGluZyBzdGF0ZSBhbmQgdGh1cyBwYWNrZXQgYmVoYXZpb3IuIEknbSBmb2N1c2luZyBvbiB0aGUgY29uZmlndXJhdGlvbiBwYXRocyB0aGF0IGNhbGwgaW50byB0aGUgbW9kaWZpZWQgZnVuY3Rpb24uXG5cbkkgYW0gZ29pbmcgdG8gcmVmaW5lIHRoZSBgRm9jdXNTeW1ib2xzYCBiYXNlZCBvbiB0aGUgZGlyZWN0IGNoYW5nZTogYGNha2VfY29uZmlndXJlX3JhdGVzYC4gVGhlIG90aGVycyBhcmUgdGhlcmUgdG8gdHJpZ2dlciB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBwYXRocy4gSSBuZWVkIHRvIGF2b2lkIGBjYWtlX2RlcXVldWVgLCBhcyBpdCdzIHRvbyBob3QgdG8gZm9jdXMgb24uXG5cbkxldCBtZSBjaGVjayBvbmUgbGFzdCB0aW1lIGZvciBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzLi4uIG5vcGUuIERvbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYzMTksIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0ODUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTY6MjUuNjIyNTY2MTc0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDQ2MTc0NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5FVF9TQ0hfQ0FLRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2NoZWQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2NoZWQvS2NvbmZpZz0yNzc9Y29uZmlnIE5FVF9TQ0hfRlFfQ09ERUxcXG4tLVxcbm5ldC9zY2hlZC9LY29uZmlnLTI4Ny1cXG5uZXQvc2NoZWQvS2NvbmZpZzoyODg6Y29uZmlnIE5FVF9TQ0hfQ0FLRVxcbm5ldC9zY2hlZC9LY29uZmlnLTI4OS1cXHR0cmlzdGF0ZSBcXFwiQ29tbW9uIEFwcGxpY2F0aW9ucyBLZXB0IEVuaGFuY2VkIChDQUtFKVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTY6MjYuMjI3MTg4ODgxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0NzQ4MjUzMDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGBuZXQvc2NoZWQvS2NvbmZpZ2AqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIGhvdyBzb21ldGhpbmcgaW4gdGhlIG5ldHdvcmtpbmcgc2NoZWR1bGVyIGlzIGNvbmZpZ3VyZWQuIEknbSB0aGlua2luZyBJJ2xsIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byB0aGUgS2NvbmZpZyBmaWxlLiBMZXQncyBzZWUuLi5JJ2xsIGZvY3VzIG9uIGBuZXQvc2NoZWQvS2NvbmZpZ2Agc3BlY2lmaWNhbGx5LiBJIHJlY2FsbCB0aGF0IGZpbGUgYmVpbmcgcHJldHR5IGNlbnRyYWwgdG8gYSBsb3Qgb2YgdGhlIFFvUyBhbmQgdHJhZmZpYyBzaGFwaW5nIG9wdGlvbnMuIE5vdywgd2hlcmUgdG8gYmVnaW4/IEhtbSwgbGV0J3MgbG9vayBhcm91bmQgbGluZSAyODguIFRoYXQgYXJlYSB1c3VhbGx5IGhvbGRzIGRlY2xhcmF0aW9ucyBmb3IgY29yZSBzY2hlZHVsZXIgb3B0aW9ucy4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGNvbnRleHQuIEl0J3MgdGltZSB0byBvcGVuIHRoYXQgZmlsZSBhbmQgZ2V0IHN0YXJ0ZWQuIExldCdzIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzU4NSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjU2OjUwLjk3NTQ0NDI5MVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjI1OTMxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9zY2hlZC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI4MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI4MDpcXHRcXHQgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBGUSBDb250cm9sbGVkIERlbGF5IChGUV9DT0RFTClcXG4gMjgxOlxcdFxcdCAgcGFja2V0IHNjaGVkdWxpbmcgYWxnb3JpdGhtLlxcbiAyODI6XFx0XFxuIDI4MzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcXG4gMjg0OlxcdFxcdCAgd2lsbCBiZSBjYWxsZWQgc2NoX2ZxX2NvZGVsLlxcbiAyODU6XFx0XFxuIDI4NjpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuIDI4NzpcXHRcXG4gMjg4OlxcdGNvbmZpZyBORVRfU0NIX0NBS0VcXG4gMjg5OlxcdFxcdHRyaXN0YXRlIFxcXCJDb21tb24gQXBwbGljYXRpb25zIEtlcHQgRW5oYW5jZWQgKENBS0UpXFxcIlxcbiAyOTA6XFx0XFx0aGVscFxcbiAyOTE6XFx0XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgQ29tbW9uIEFwcGxpY2F0aW9ucyBLZXB0IEVuaGFuY2VkXFxuIDI5MjpcXHRcXHQgIChDQUtFKSBxdWV1ZSBtYW5hZ2VtZW50IGFsZ29yaXRobS5cXG4gMjkzOlxcdFxcbiAyOTQ6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXFxuIDI5NTpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIHNjaF9jYWtlLlxcbiAyOTY6XFx0XFxuIDI5NzpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuIDI5ODpcXHRcXG4gMjk5OlxcdGNvbmZpZyBORVRfU0NIX0ZRXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjU2OjUwLjk3NjY3MzE4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxNzAyMTg1NjY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipTdHJlYW1saW5pbmcgdGhlIFByb2Nlc3MqKlxuXG5SaWdodCwgc28gd2UncmUgbG9va2luZyBhdCBuZXR3b3JrIHNjaGVkdWxpbmcsIGFuZCB0aGUgZ29vZCBuZXdzIGlzLCB3ZSBkb24ndCBuZWVkIHRvIGJyaW5nIGluIGFueSBoZWF2eS1kdXR5IGRlcGVuZGVuY2llcyBmb3IgdGhpcyBwYXJ0aWN1bGFyIG9wZXJhdGlvbi4gVGhlIHN0YW5kYXJkIGBORVRfU0NIX0NBS0VgIG1vZHVsZSBzaG91bGQgYmUgcGVyZmVjdGx5IGFkZXF1YXRlIGZvciB3aGF0IHdlIG5lZWQgdG8gYWNoaWV2ZS4gVGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBpbW1lbnNlbHkgYW5kIGtlZXBzIHRoZSBjb2RlYmFzZSBuaWNlIGFuZCBjbGVhbi5cblxuR2l2ZW4gdGhhdCdzIHNldHRsZWQsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjYWxsIHdoYXRldmVyIGZ1bmN0aW9uIG9yIG1ldGhvZCB3ZSd2ZSBkZXNpZ25hdGVkIHRvIHNldCB0aGUgcmVzdWx0cy4gTGV0J3MgZ2V0IHRob3NlIGZpZ3VyZXMgaW4gcGxhY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgwODksIk91dHB1dFRva2VucyI6MTEwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1NzoxMi42Nzg4NjE3MjdaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDI1MzcyNDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVF9TQ0hfQ0FLRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNha2VfY29uZmlndXJlX3JhdGVzXCIsXG4gICAgXCJjYWtlX3JlY29uZmlndXJlXCIsXG4gICAgXCJjYWtlX2NoYW5nZVwiLFxuICAgIFwiY2FrZV9pbml0XCIsXG4gICAgXCJjYWtlX21xX2NoYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIGNvbmZpZ3VyYXRpb24gbG9naWMgaW4gdGhlIENBS0UgcWRpc2MgdG8gYXZvaWQgY2xlYXJpbmcgdGlucyB3aGVuIGFkanVzdGluZyByYXRlcyBkeW5hbWljYWxseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHNjaGVkdWxlciB0aGF0IGFmZmVjdHMgcGFja2V0IHNjaGVkdWxpbmcgc3RhdGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUX1NDSF9DQUtFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2FrZV9jb25maWd1cmVfcmF0ZXNcIixcbiAgICBcImNha2VfcmVjb25maWd1cmVcIixcbiAgICBcImNha2VfY2hhbmdlXCIsXG4gICAgXCJjYWtlX2luaXRcIixcbiAgICBcImNha2VfbXFfY2hhbmdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgQ0FLRSBxZGlzYyB0byBhdm9pZCBjbGVhcmluZyB0aW5zIHdoZW4gYWRqdXN0aW5nIHJhdGVzIGR5bmFtaWNhbGx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIHRoYXQgYWZmZWN0cyBwYWNrZXQgc2NoZWR1bGluZyBzdGF0ZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-17 01:37:34 +0000 UTC FinishedAt: 2026-07-17 01:57:14 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NET_SCH_CAKE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "NET_SCH_CAKE" ], "series_id": "fdd9b210-c2ba-4598-9afb-ef0813b3f4f5" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cake_configure_rates", "cake_reconfigure", "cake_change", "cake_init", "cake_mq_change" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjUzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O05FVF9TQ0hfQ0FLRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2Nha2VfY29uZmlndXJlX3JhdGVzJiMzNDssCiAgICAmIzM0O2Nha2VfcmVjb25maWd1cmUmIzM0OywKICAgICYjMzQ7Y2FrZV9jaGFuZ2UmIzM0OywKICAgICYjMzQ7Y2FrZV9pbml0JiMzNDssCiAgICAmIzM0O2Nha2VfbXFfY2hhbmdlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIGNvbmZpZ3VyYXRpb24gbG9naWMgaW4gdGhlIENBS0UgcWRpc2MgdG8gYXZvaWQgY2xlYXJpbmcgdGlucyB3aGVuIGFkanVzdGluZyByYXRlcyBkeW5hbWljYWxseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHNjaGVkdWxlciB0aGF0IGFmZmVjdHMgcGFja2V0IHNjaGVkdWxpbmcgc3RhdGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBlMDk3MjRjZGFkMDU5MzVjN2UzMjUyODI1N2MwZmEzNjk4MTE0NWNjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDE6NTM6NTEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuY1xuaW5kZXggZjc4ZjhlOTUwNzc2NjcuLjg0NWUxYzAxNzcxNGEyIDEwMDY0NFxuLS0tIGEvbmV0L3NjaGVkL3NjaF9jYWtlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jXG5AQCAtMjYwOSw5ICYjNDM7MjYwOSwxMSBAQCBzdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTY0IHJhdGUsIGJvb2wgcmF0ZV9hZGp1c3QpXG4gXHRcdGJyZWFrO1xuIFx0fVxuIFxuLVx0Zm9yIChjID0gcWQtXHUwMDNldGluX2NudDsgYyBcdTAwM2MgQ0FLRV9NQVhfVElOUzsgYyYjNDM7JiM0MzspIHtcbi1cdFx0Y2FrZV9jbGVhcl90aW4oc2NoLCBjKTtcbi1cdFx0cWQtXHUwMDNldGluc1tjXS5jcGFyYW1zLm10dV90aW1lID0gcWQtXHUwMDNldGluc1tmdF0uY3BhcmFtcy5tdHVfdGltZTtcbiYjNDM7XHRpZiAoIXJhdGVfYWRqdXN0KSB7XG4mIzQzO1x0XHRmb3IgKGMgPSBxZC1cdTAwM2V0aW5fY250OyBjIFx1MDAzYyBDQUtFX01BWF9USU5TOyBjJiM0MzsmIzQzOykge1xuJiM0MztcdFx0XHRjYWtlX2NsZWFyX3RpbihzY2gsIGMpO1xuJiM0MztcdFx0XHRxZC1cdTAwM2V0aW5zW2NdLmNwYXJhbXMubXR1X3RpbWUgPSBxZC1cdTAwM2V0aW5zW2Z0XS5jcGFyYW1zLm10dV90aW1lO1xuJiM0MztcdFx0fVxuIFx0fVxuIFxuIFx0cWQtXHUwMDNlcmF0ZV9ucyAgID0gcWQtXHUwMDNldGluc1tmdF0udGluX3JhdGVfbnM7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX1NDSF9DQUtFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FrZV9jb25maWd1cmVfcmF0ZXMmIzM0OywKICAgICYjMzQ7Y2FrZV9yZWNvbmZpZ3VyZSYjMzQ7LAogICAgJiMzNDtjYWtlX2NoYW5nZSYjMzQ7LAogICAgJiMzNDtjYWtlX2luaXQmIzM0OywKICAgICYjMzQ7Y2FrZV9tcV9jaGFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgQ0FLRSBxZGlzYyB0byBhdm9pZCBjbGVhcmluZyB0aW5zIHdoZW4gYWRqdXN0aW5nIHJhdGVzIGR5bmFtaWNhbGx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIHRoYXQgYWZmZWN0cyBwYWNrZXQgc2NoZWR1bGluZyBzdGF0ZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTA5NzI0Y2RhZDA1OTM1YzdlMzI1MjgyNTdjMGZhMzY5ODExNDVjYwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVsIDE3IDAxOjUzOjUxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuYwppbmRleCBmNzhmOGU5NTA3NzY2Ny4uODQ1ZTFjMDE3NzE0YTIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2FrZS5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jCkBAIC0yNjA5LDkgJiM0MzsyNjA5LDExIEBAIHN0YXRpYyB2b2lkIGNha2VfY29uZmlndXJlX3JhdGVzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgYm9vbCByYXRlX2FkanVzdCkKIAkJYnJlYWs7CiAJfQogCi0JZm9yIChjID0gcWQtJmd0O3Rpbl9jbnQ7IGMgJmx0OyBDQUtFX01BWF9USU5TOyBjJiM0MzsmIzQzOykgewotCQljYWtlX2NsZWFyX3RpbihzY2gsIGMpOwotCQlxZC0mZ3Q7dGluc1tjXS5jcGFyYW1zLm10dV90aW1lID0gcWQtJmd0O3RpbnNbZnRdLmNwYXJhbXMubXR1X3RpbWU7CiYjNDM7CWlmICghcmF0ZV9hZGp1c3QpIHsKJiM0MzsJCWZvciAoYyA9IHFkLSZndDt0aW5fY250OyBjICZsdDsgQ0FLRV9NQVhfVElOUzsgYyYjNDM7JiM0MzspIHsKJiM0MzsJCQljYWtlX2NsZWFyX3RpbihzY2gsIGMpOwomIzQzOwkJCXFkLSZndDt0aW5zW2NdLmNwYXJhbXMubXR1X3RpbWUgPSBxZC0mZ3Q7dGluc1tmdF0uY3BhcmFtcy5tdHVfdGltZTsKJiM0MzsJCX0KIAl9CiAKIAlxZC0mZ3Q7cmF0ZV9ucyAgID0gcWQtJmd0O3RpbnNbZnRdLnRpbl9yYXRlX25zOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMTo1MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTU4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogODAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uCgoqKkFuYWx5emluZyBhIENBS0UgU2NoZWR1bGVyIFBhdGNoKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQmIzM5O3Mgc3BlY2lmaWNhbGx5IHRhcmdldGluZyBgbmV0L3NjaGVkL3NjaF9jYWtlLmNgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlIGNvcmUgY2hhbmdlIHNlZW1zIHRvIGJlIHdpdGhpbiB0aGUgYGNha2VfY29uZmlndXJlX3JhdGVzYCBmdW5jdGlvbi4gVGhlIHBhdGNoJiMzOTtzIGludHJvZHVjdGlvbiBvZiBhbiBgaWYgKCFyYXRlX2FkanVzdClgIGNvbmRpdGlvbiBpcyB3aGF0IEkmIzM5O20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4sIGdpdmVuIG15IGJhY2tncm91bmQuIEkga25vdyB0aGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBhZGp1c3RpbmcgdGhlIGJhbmR3aWR0aCByYXRlcyBhbmQgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIENBS0UgcWRpc2MuCgpTcGVjaWZpY2FsbHksIGl0IGxvb2tzIGxpa2UgdGhpcyBuZXcgY29uZGl0aW9uYWwgaXMgZ2F0aW5nIGEgbG9vcCB0aGF0JiMzOTtzIHJlc3BvbnNpYmxlIGZvciBjbGVhcmluZyBvdXQgJiMzNDt0aW5zJiMzNDsgYW5kIHNldHRpbmcgYG10dV90aW1lYC4gTm93LCB0aGUgJiMzNDt0aW5zJiMzNDsgY29uY2VwdCwgSSYjMzk7bSBhbHJlYWR5IGF3YXJlIG9mLCBpcyBob3cgQ0FLRSBzdHJ1Y3R1cmVzIGl0cyB0cmFmZmljIHNoYXBpbmcsIGdyb3VwaW5nIHRoaW5ncyBiYXNlZCBvbiB0aW1lLiBTbywgaWYgYHJhdGVfYWRqdXN0YCBpcyBmYWxzZSwgdGhpcyBtZWFucyB3ZSYjMzk7cmUgKm5vdCogYWRqdXN0aW5nIHRoZSByYXRlLCBhbmQgd2UgZW50ZXIgdGhpcyBsb29wPyBIbW0sIEkmIzM5O2QgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNvbnRleHQgb2YgYHJhdGVfYWRqdXN0YCB0byBzZWUgd2hhdCBzY2VuYXJpb3MgdGhhdCBjb3ZlcnMuIEkgYmV0IGl0IGhhcyB0byBkbyB3aXRoIGhvdyB0aGUgcWRpc2MgaXMgYmVpbmcgY29uZmlndXJlZCBvciByZWNvbmZpZ3VyZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBjb25kaXRpb25hbCBpcyB0cnlpbmcgdG8gcHJvdGVjdCwgYW5kIHdoYXQgc2NlbmFyaW9zIGl0JiMzOTtzIGFjY291bnRpbmcgZm9yLiBQZXJoYXBzLCB0aGlzIGNoYW5nZSBpbXByb3ZlcyB0aGUgcmVsaWFiaWxpdHkgb2YgdGhlIGNvbmZpZ3VyYXRpb24sIGFuZCBwcmV2ZW50cyByZXNldHRpbmcgb2YgdGhlc2UgdmFsdWVzIGluIHRoZSB3cm9uZyBzY2VuYXJpb3MuIEkmIzM5O2xsIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgY29kZSwgdGhlIGNvbW1pdCBtZXNzYWdlLCBhbmQgYW55IHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiB0byBmdWxseSBncmFzcCB0aGUgcmF0aW9uYWxlIGhlcmUsIGFuZCB3aGF0IHBvdGVudGlhbCBpbXBsaWNhdGlvbnMgdGhlcmUgbWlnaHQgYmUgZm9yIG92ZXJhbGwgQ0FLRSBwZXJmb3JtYW5jZSBhbmQgYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y2FrZV9jb25maWd1cmVfcmF0ZXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2NoZWQvc2NoX2Nha2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2NoZWQvc2NoX2Nha2UuYz0zODc9c3RhdGljIGNvbnN0IHUzMiBpbnZfc3FydF9jYWNoZVtSRUNfSU5WX1NRUlRfQ0FDSEVdID0ge1xuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTM5My1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjM5NDpzdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTY0IHJhdGUsIGJvb2wgcmF0ZV9hZGp1c3QpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzk1LVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTIwMDc9c3RhdGljIHN0cnVjdCBza19idWZmICpjYWtlX2RlcXVldWUoc3RydWN0IFFkaXNjICpzY2gpXG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjA0Ni1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjIwNDc6XHRcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgbmV3X3JhdGUsIHRydWUpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjA0OC1cdFx0cS1cdTAwM2VsYXN0X2NoZWNrZWRfYWN0aXZlID0gbm93O1xuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTI1NTA9c3RhdGljIGludCBjYWtlX2NvbmZpZ19kaWZmc2VydjMoc3RydWN0IFFkaXNjICpzY2gsIHU2NCByYXRlLCB1MzIgbXR1KVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI1ODEtXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyNTgyOnN0YXRpYyB2b2lkIGNha2VfY29uZmlndXJlX3JhdGVzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgYm9vbCByYXRlX2FkanVzdClcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI1ODMte1xuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTI2MjM9c3RhdGljIHZvaWQgY2FrZV9yZWNvbmZpZ3VyZShzdHJ1Y3QgUWRpc2MgKnNjaClcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNjI4LVxubmV0L3NjaGVkL3NjaF9jYWtlLmM6MjYyOTpcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgcWQtXHUwMDNlY29uZmlnLVx1MDAzZXJhdGVfYnBzLCBmYWxzZSk7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNjMwLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjUzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4NTUKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxMDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBDQUtFIHFkaXNjIFJhdGUgQWRqdXN0bWVudCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFpbWVkIHNxdWFyZWx5IGF0IGhvdyBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGJlaGF2ZXMgd2l0aGluIHRoZSBDQUtFIHFkaXNjLiBJdCYjMzk7cyBpbnRlcmVzdGluZyBob3cgaXQmIzM5O3MgY2FsbGVkIGZyb20gdHdvIGRpZmZlcmVudCBlbnRyeSBwb2ludHM6IGBjYWtlX2RlcXVldWVgLCB3aGVyZSBgcmF0ZV9hZGp1c3RgIGlzIHNldCB0byBgdHJ1ZWAsIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAsIHdpdGggYHJhdGVfYWRqdXN0YCBzZXQgdG8gYGZhbHNlYC4gVGhlIGtleSBkaWZmZXJlbmNlIGlzIHRoYXQgd2hlbiB0aGUgYHJhdGVfYWRqdXN0YCBmbGFnIGlzICp0cnVlKiwgbWVhbmluZyB3ZSYjMzk7cmUgcHJvYmFibHkgcmVzcG9uZGluZyB0byBzb21lIGR5bmFtaWMgY2hhbmdlIGluIHRoZSBuZXR3b3JrIGNvbmRpdGlvbnMsIHdlJiMzOTtyZSBnb2luZyB0byAqYXZvaWQqIGNsZWFyaW5nIHRoZSB0aW5zIGFuZCByZXNldHRpbmcgYG10dV90aW1lYC4gVGhpcyBpcyBjcml0aWNhbC4gV2h5PyBCZWNhdXNlIHRoZSBgY2FrZV9kZXF1ZXVlYCBwYXRoLCB3aXRoIHRoZSBmbGFnIHNldCB0byB0cnVlLCBpbXBsaWVzIHRoYXQgd2UgYXJlIHByb2Nlc3NpbmcgYSBwYWNrZXQsIGFuZCB3ZSBkb24mIzM5O3Qgd2FudCB0byBjbGVhciB0aGUgdGlucyBvciByZXNldCBtdHVfdGltZS4gVGhpcyB3b3VsZCBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcWRpc2MuCgpUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggaXMgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGFkanVzdG1lbnQgdG8gaG93IENBS0UgbWFuYWdlcyBpdHMgaW50ZXJuYWwgc3RhdGUgZHVyaW5nIHRoZXNlIHJhdGUgYWRqdXN0bWVudHMuIEkgd29uZGVyIHdoYXQgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBmb3IgdGhpcyBzcGVjaWZpYyBiZWhhdmlvci4gSXQmIzM5O3MgdGltZSB0byBkaWcgaW50byB0aGUgY29uZmlnIG9wdGlvbnMgZm9yIHRoZSBDQUtFIHFkaXNjLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NjaF9jYWtlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjaGVkLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2NoZWQvS2NvbmZpZz0yODg9Y29uZmlnIE5FVF9TQ0hfQ0FLRVxuLS1cbm5ldC9zY2hlZC9LY29uZmlnLTI5NC1cdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxubmV0L3NjaGVkL0tjb25maWc6Mjk1Olx0ICB3aWxsIGJlIGNhbGxlZCBzY2hfY2FrZS5cbm5ldC9zY2hlZC9LY29uZmlnLTI5Ni1cbi0tXG5uZXQvc2NoZWQvTWFrZWZpbGU9NTY9b2JqLSQoQ09ORklHX05FVF9TQ0hfRlFfQ09ERUwpXHQmIzQzOz0gc2NoX2ZxX2NvZGVsLm9cbm5ldC9zY2hlZC9NYWtlZmlsZTo1NzpvYmotJChDT05GSUdfTkVUX1NDSF9DQUtFKVx0JiM0Mzs9IHNjaF9jYWtlLm9cbm5ldC9zY2hlZC9NYWtlZmlsZS01OC1vYmotJChDT05GSUdfTkVUX1NDSF9GUSlcdCYjNDM7PSBzY2hfZnEub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MTcKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxOTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgQ0FLRSBRZGlzYyBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBJIG5lZWQgdG8gdGFyZ2V0IGlzIGBORVRfU0NIX0NBS0VgLiBUaGlzIGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIChxZGlzYykgY29kZSwgc3BlY2lmaWNhbGx5LCBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGZ1bmN0aW9uLiBHaXZlbiB0aGF0LCBpdCYjMzk7cyBkZWZpbml0ZWx5IHdvcnRoIHNwZW5kaW5nIHNvbWUgY3ljbGVzIGZ1enppbmcgaXQuCgpUaGUgbWFpbiBzeW1ib2xzIHRvIGZvY3VzIG15IGF0dGVudGlvbiBvbiBhcmUgYGNha2VfY29uZmlndXJlX3JhdGVzYCwgYGNha2VfZGVxdWV1ZWAsIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAuIFdhaXQgYSBtaW51dGUsIGBjYWtlX2RlcXVldWVgIGlzIGEgaG90IHBhdGggZnVuY3Rpb24sIHVzZWQgZm9yIGRlcXVldWluZyBwYWNrZXRzIGZyb20gdGhlIHFkaXNjLi4uIFRoYXQmIzM5O3Mgc2lnbmlmaWNhbnQuIE5vdyBJIHJlbWVtYmVyIHRoYXQgYGNha2VfY29uZmlndXJlX3JhdGVzYCBpcyBjYWxsZWQgYm90aCBmcm9tIGBjYWtlX2RlcXVldWVgIGFuZCBmcm9tIGBjYWtlX3JlY29uZmlndXJlYC4gSG1tLCBwZXJoYXBzIEkgc2hvdWxkIGZvY3VzIG1vc3Qgb2YgbXkgZW5lcmd5IG9uIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgdGhlbiwgc2luY2UgaXQmIzM5O3MgcmVhY2hhYmxlIHZpYSB0aGUgaG90IGBjYWtlX2RlcXVldWVgIHBhdGguCgpMZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gdGhhdCBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGl0c2VsZiBpc24mIzM5O3QgYSBob3QgcGF0aCBmdW5jdGlvbi4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYGNha2VfZGVxdWV1ZWAsIGJ1dCBvbmx5IHdoZW4gYHJhdGVfYWRqdXN0YCBpcyB0cnVlLCB3aGljaCBwcmVzdW1hYmx5IGhhcHBlbnMgd2hlbiB0aGUgYG5ld19yYXRlYCBpcyBkaWZmZXJlbnQuIExldCYjMzk7cyBzZWUuLi4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgY29kZSBhcm91bmQgbGluZSAyMDQ3IGluIGBjYWtlX2RlcXVldWVgIHRvIGdldCB0aGUgZnVsbCBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3NjaGVkL3NjaF9jYWtlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMDMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzIwMzA6XHRcdFx0Zm9yIChudHggPSAwOyBudHggXHUwMDNjIGRldi1cdTAwM2VudW1fdHhfcXVldWVzOyBudHgmIzQzOyYjNDM7KSB7XG4yMDMxOlx0XHRcdFx0b3RoZXJfc2NoID0gcmN1X2RlcmVmZXJlbmNlKG5ldGRldl9nZXRfdHhfcXVldWUoZGV2LCBudHgpLVx1MDAzZXFkaXNjX3NsZWVwaW5nKTtcbjIwMzI6XHRcdFx0XHRvdGhlcl9wcml2ID0gcWRpc2NfcHJpdihvdGhlcl9zY2gpO1xuMjAzMzpcdFxuMjAzNDpcdFx0XHRcdGlmIChvdGhlcl9wcml2ID09IHEpXG4yMDM1Olx0XHRcdFx0XHRjb250aW51ZTtcbjIwMzY6XHRcbjIwMzc6XHRcdFx0XHRvdGhlcl9xbGVuID0gUkVBRF9PTkNFKG90aGVyX3NjaC1cdTAwM2VxLnFsZW4pO1xuMjAzODpcdFx0XHRcdG90aGVyX2xhc3RfYWN0aXZlID0gUkVBRF9PTkNFKG90aGVyX3ByaXYtXHUwMDNlbGFzdF9hY3RpdmUpO1xuMjAzOTpcdFxuMjA0MDpcdFx0XHRcdGlmIChvdGhlcl9xbGVuIHx8IG90aGVyX2xhc3RfYWN0aXZlIFx1MDAzZSBxLVx1MDAzZWxhc3RfY2hlY2tlZF9hY3RpdmUpXG4yMDQxOlx0XHRcdFx0XHRudW1fYWN0aXZlX3FzJiM0MzsmIzQzOztcbjIwNDI6XHRcdFx0fVxuMjA0MzpcdFxuMjA0NDpcdFx0XHRpZiAobnVtX2FjdGl2ZV9xcyBcdTAwM2UgMSlcbjIwNDU6XHRcdFx0XHRuZXdfcmF0ZSA9IGRpdjY0X3U2NChxLVx1MDAzZWNvbmZpZy1cdTAwM2VyYXRlX2JwcywgbnVtX2FjdGl2ZV9xcyk7XG4yMDQ2Olx0XG4yMDQ3Olx0XHRcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgbmV3X3JhdGUsIHRydWUpO1xuMjA0ODpcdFx0XHRxLVx1MDAzZWxhc3RfY2hlY2tlZF9hY3RpdmUgPSBub3c7XG4yMDQ5Olx0XHRcdFdSSVRFX09OQ0UocS1cdTAwM2VhY3RpdmVfcXVldWVzLCBudW1fYWN0aXZlX3FzKTtcbjIwNTA6XHRcdH1cbjIwNTE6XHRcbjIwNTI6XHRiZWdpbjpcbjIwNTM6XHRcdGlmICghc2NoLVx1MDAzZXEucWxlbilcbjIwNTQ6XHRcdFx0cmV0dXJuIE5VTEw7XG4yMDU1Olx0XG4yMDU2Olx0XHQvKiBnbG9iYWwgaGFyZCBzaGFwZXIgKi9cbjIwNTc6XHRcdGlmIChrdGltZV9hZnRlcihxLVx1MDAzZXRpbWVfbmV4dF9wYWNrZXQsIG5vdykgXHUwMDI2XHUwMDI2XG4yMDU4Olx0XHQgICAga3RpbWVfYWZ0ZXIocS1cdTAwM2VmYWlsc2FmZV9uZXh0X3BhY2tldCwgbm93KSkge1xuMjA1OTpcdFx0XHR1NjQgbmV4dCA9IG1pbihrdGltZV90b19ucyhxLVx1MDAzZXRpbWVfbmV4dF9wYWNrZXQpLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0NjcKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgc3VtbWFyaXplZCBmcm9tIG15IHBlcnNwZWN0aXZlIGFzIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkOgoKKipEZWJ1Z2dpbmcgdGhlIFJhdGUgQ29uZmlndXJhdGlvbiBQcm9jZXNzKioKCkFscmlnaHQsIHNvIGl0IGxvb2tzIGxpa2UgYGNha2VfY29uZmlndXJlX3JhdGVzYCBpcyBsaWtlbHkgdGhlIGtleSBmdW5jdGlvbiB0aGF0IGdldHMgaW52b2tlZCB3aGVuZXZlciB0aGUgdHJhZmZpYyBzaGFwaW5nIHJhdGVzIG5lZWQgdG8gYmUgdXBkYXRlZC4gTXkgaW5pdGlhbCBodW5jaCBpcyB0aGF0IGl0JiMzOTtzIGVpdGhlciB0cmlnZ2VyZWQgYnkgYSByZWd1bGFyIHRpbWVyLCBhIHNjaGVkdWxlZCB0YXNrLCBvciBwZXJoYXBzIHdoZW5ldmVyIHRoZSBhY3RpdmUgcXVldWVzIHdpdGhpbiB0aGUgc3lzdGVtIGNoYW5nZS4gVGhhdCBtYWtlcyBzZW5zZSwgdGhvc2UgYXJlIHRoZSB0eXBpY2FsIGV2ZW50cyB0aGF0IHdvdWxkIHRyaWdnZXIgYSByZWNvbmZpZ3VyYXRpb24uCgpUbyBjb25maXJtIHRoYXQsIEkgc2hvdWxkIGRpZyBpbnRvIGhvdyB0aGUgc3lzdGVtIGlzIHJlY29uZmlndXJpbmcgaXRzIHJhdGVzLiBUaGF0IG1lYW5zIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBgY2FrZV9yZWNvbmZpZ3VyZWAgZnVuY3Rpb24uIFRoYXQgZnVuY3Rpb24gd2lsbCBsaWtlbHkgcHJvdmlkZSB0aGUgb3ZlcmFsbCBjb250cm9sIGxvZ2ljIGZvciBhY3R1YWxseSBtYWtpbmcgdGhlIGNoYW5nZXMsIHB1bGxpbmcgaW4gYW55IHVwZGF0ZWQgcGFyYW1ldGVycyBvciBzZXR0aW5ncywgYW5kIGNhbGxpbmcgb3RoZXIgZnVuY3Rpb25zIGxpa2UgYGNha2VfY29uZmlndXJlX3JhdGVzYCB3aGVuIGFwcHJvcHJpYXRlLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBzeXN0ZW0gZGVjaWRlcyAqd2hlbiogdG8gcmVjb25maWd1cmUgYW5kICp3aGF0KiBpdCYjMzk7cyByZWNvbmZpZ3VyaW5nIHRvIHVuZGVyc3RhbmQgdGhpcyBiZXR0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3NjaGVkL3NjaF9jYWtlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyNjIwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzI2MjA6XHRcdHFkLVx1MDAzZXJhdGVfc2hmdCA9IHFkLVx1MDAzZXRpbnNbZnRdLnRpbl9yYXRlX3NoZnQ7XG4yNjIxOlx0fVxuMjYyMjpcdFxuMjYyMzpcdHN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpXG4yNjI0Olx0e1xuMjYyNTpcdFx0c3RydWN0IGNha2Vfc2NoZWRfZGF0YSAqcWQgPSBxZGlzY19wcml2KHNjaCk7XG4yNjI2Olx0XHRzdHJ1Y3QgY2FrZV9zY2hlZF9jb25maWcgKnEgPSBxZC1cdTAwM2Vjb25maWc7XG4yNjI3Olx0XHR1MzIgYnVmZmVyX2xpbWl0O1xuMjYyODpcdFxuMjYyOTpcdFx0Y2FrZV9jb25maWd1cmVfcmF0ZXMoc2NoLCBxZC1cdTAwM2Vjb25maWctXHUwMDNlcmF0ZV9icHMsIGZhbHNlKTtcbjI2MzA6XHRcbjI2MzE6XHRcdGlmIChxLVx1MDAzZWJ1ZmZlcl9jb25maWdfbGltaXQpIHtcbjI2MzI6XHRcdFx0YnVmZmVyX2xpbWl0ID0gcS1cdTAwM2VidWZmZXJfY29uZmlnX2xpbWl0O1xuMjYzMzpcdFx0fSBlbHNlIGlmIChxLVx1MDAzZXJhdGVfYnBzKSB7XG4yNjM0Olx0XHRcdHU2NCB0ID0gcS1cdTAwM2VyYXRlX2JwcyAqIHEtXHUwMDNlaW50ZXJ2YWw7XG4yNjM1Olx0XG4yNjM2Olx0XHRcdGRvX2Rpdih0LCBVU0VDX1BFUl9TRUMgLyA0KTtcbjI2Mzc6XHRcdFx0YnVmZmVyX2xpbWl0ID0gbWF4X3QodTMyLCB0LCA0VSBcdTAwM2NcdTAwM2MgMjApO1xuMjYzODpcdFx0fSBlbHNlIHtcbjI2Mzk6XHRcdFx0YnVmZmVyX2xpbWl0ID0gfjA7XG4yNjQwOlx0XHR9XG4yNjQxOlx0XG4yNjQyOlx0XHRzY2gtXHUwMDNlZmxhZ3MgXHUwMDI2PSB+VENRX0ZfQ0FOX0JZUEFTUztcbjI2NDM6XHRcbjI2NDQ6XHRcdFdSSVRFX09OQ0UocWQtXHUwMDNlYnVmZmVyX2xpbWl0LFxuMjY0NTpcdFx0XHQgICBtaW4oYnVmZmVyX2xpbWl0LFxuMjY0NjpcdFx0XHQgICAgICAgbWF4KHNjaC1cdTAwM2VsaW1pdCAqIHBzY2hlZF9tdHUocWRpc2NfZGV2KHNjaCkpLFxuMjY0NzpcdFx0XHRcdCAgIHEtXHUwMDNlYnVmZmVyX2NvbmZpZ19saW1pdCkpKTtcbjI2NDg6XHR9XG4yNjQ5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyMjMKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkFuYWx5emluZyB0aGUgQ0FLRSBRdWV1ZSBEaXNjaXBsaW5lIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4uLiBzbywgYGNha2VfcmVjb25maWd1cmVgIGlzIHRoZSBrZXkgZnVuY3Rpb24gaGVyZS4gSXQmIzM5O3MgdHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBDQUtFIHF1ZXVlIGRpc2NpcGxpbmUgaXRzZWxmIGlzIGluaXRpYWxseSBzZXQgdXAgb3IsIG1vcmUgaW1wb3J0YW50bHksICpyZSpjb25maWd1cmVkIOKAkyBtZWFuaW5nIGFueSBzdWJzZXF1ZW50IGNoYW5nZXMgdG8gaXRzIHBhcmFtZXRlcnMuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93OyBpdCB0ZWxscyBtZSBleGFjdGx5IHdoZW4gSSBuZWVkIHRvIHBheSBhdHRlbnRpb24gdG8gaXRzIGJlaGF2aW9yLgoKTXkgaW1tZWRpYXRlIGZvbGxvdy11cCB0aG91Z2h0IGlzLCB3aGljaCBwYXJ0IG9mIHRoZSBjb2RlIGFjdHVhbGx5ICpjYWxscyogdGhhdCBmdW5jdGlvbj8gQW5kIHRoZSBsb2dpY2FsIGNhbmRpZGF0ZSBhcHBlYXJzIHRvIGJlIGBjYWtlX2NoYW5nZWAuIFNlZW1zIGxpa2UgdGhhdCYjMzk7cyB0aGUgbGlrZWx5IGVudHJ5IHBvaW50LiBVbmRlcnN0YW5kaW5nIHRoYXQgcmVsYXRpb25zaGlwIGlzIGNydWNpYWwuIElmIEkmIzM5O20gdHJvdWJsZXNob290aW5nLCBvciBvcHRpbWl6aW5nIENBS0UsIEkgbmVlZCB0byBrbm93IHRoZSBjYWxsaW5nIHNlcXVlbmNlLiBLbm93aW5nIHRoZSBjYWxsZXIgYGNha2VfY2hhbmdlYCBhbmQgaXRzIHJvbGUgd2lsbCBkaWN0YXRlIGhvdyBJIGJlc3QgY2FuIG9ic2VydmUgdGhlIHJlY29uZmlndXJhdGlvbiBwcm9jZXNzLCBkZXRlcm1pbmUgdGhlIGlucHV0cywgYW5kIHBpbnBvaW50IHRoZSB0cmlnZ2VyIGZvciB0aGVzZSBjcnVjaWFsIHVwZGF0ZXMuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoYXQgYXNzdW1wdGlvbiBhbmQgdmVyaWZ5LCBidXQgaXQmIzM5O3MgYSB2ZXJ5IHJlYXNvbmFibGUgc3RhcnRpbmcgcG9pbnQuIEV4Y2VsbGVudCwgdGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2Nha2VfcmVjb25maWd1cmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2NoZWQvc2NoX2Nha2UuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2NoZWQvc2NoX2Nha2UuYz0xNzE2PXN0YXRpYyB1MzIgY2FrZV9jbGFzc2lmeShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IGNha2VfdGluX2RhdGEgKip0LFxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTE3NTMtXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoxNzU0OnN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMTc1NS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTE3NTY9c3RhdGljIHMzMiBjYWtlX2VucXVldWUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gsXG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMTkxMC1cdFx0XHRcdHEtXHUwMDNlY29uZmlnLVx1MDAzZXJhdGVfYnBzID0gKHEtXHUwMDNlYXZnX3BlYWtfYmFuZHdpZHRoICogMTUpIFx1MDAzZVx1MDAzZSA0O1xubmV0L3NjaGVkL3NjaF9jYWtlLmM6MTkxMTpcdFx0XHRcdGNha2VfcmVjb25maWd1cmUoc2NoKTtcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTE5MTItXHRcdFx0fVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTI1ODI9c3RhdGljIHZvaWQgY2FrZV9jb25maWd1cmVfcmF0ZXMoc3RydWN0IFFkaXNjICpzY2gsIHU2NCByYXRlLCBib29sIHJhdGVfYWRqdXN0KVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI2MjItXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyNjIzOnN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNjI0LXtcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yNzc0PXN0YXRpYyBpbnQgY2FrZV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCxcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNzk5LVx0XHRzY2hfdHJlZV9sb2NrKHNjaCk7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyODAwOlx0XHRjYWtlX3JlY29uZmlndXJlKHNjaCk7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yODAxLVx0XHRzY2hfdHJlZV91bmxvY2soc2NoKTtcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yODMyPXN0YXRpYyBpbnQgY2FrZV9pbml0KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsXG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjg5MC1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjI4OTE6XHRjYWtlX3JlY29uZmlndXJlKHNjaCk7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yODkyLVx0cWQtXHUwMDNlYXZnX3BlYWtfYmFuZHdpZHRoID0gcS1cdTAwM2VyYXRlX2Jwcztcbi0tXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yOTAxPXN0YXRpYyB2b2lkIGNha2VfY29uZmlnX3JlcGxhY2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBjYWtlX3NjaGVkX2NvbmZpZyAqY2ZnKVxuLS1cbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI5MDUtXHRxZC1cdTAwM2Vjb25maWcgPSBjZmc7XG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyOTA2Olx0Y2FrZV9yZWNvbmZpZ3VyZShzY2gpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjkwNy19XG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmM9MzMwMj1zdGF0aWMgaW50IGNha2VfbXFfY2hhbmdlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsXG4tLVxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzMyNy1cdFx0XHRzY2hfdHJlZV9sb2NrKGNobGQpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmM6MzMyODpcdFx0XHRjYWtlX3JlY29uZmlndXJlKGNobGQpO1xubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzMyOS1cdFx0XHRzY2hfdHJlZV91bmxvY2soY2hsZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzMTkKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQ0FLRSBRZGlzYyBSYXRlIENvbmZpZ3VyYXRpb24gUGF0Y2ggQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBDQUtFIHFkaXNjIHBhdGNoIGFuZCBoZXJlJiMzOTtzIG15IGJyZWFrZG93bi4gRnJvbSB3aGF0IEkgY2FuIHNlZSwgYGNha2VfcmVjb25maWd1cmVgIGdldHMgY2FsbGVkIGZyb20gc2V2ZXJhbCBwbGFjZXM6IGBjYWtlX2NoYW5nZWAsIGBjYWtlX2luaXRgLCBgY2FrZV9jb25maWdfcmVwbGFjZWAsIGBjYWtlX21xX2NoYW5nZWAsIGFuZCBgY2FrZV9lbnF1ZXVlYC4gVGhlIGNvcmUgaXNzdWUgc2VlbXMgdG8gYmUgdGhhdCBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIHdhcyBpbmNvcnJlY3RseSBjbGVhcmluZyB0aGUgdGlucywgc3BlY2lmaWNhbGx5IHdoZW4gY2FsbGVkIGZyb20gYGNha2VfZGVxdWV1ZWAgd2l0aCBgcmF0ZV9hZGp1c3Q9dHJ1ZWAuIFRoaXMgd291bGQgbGVhZCB0byBsb3N0IG9yIGNvcnJ1cHRlZCBzdGF0ZSwgc28gaXQgbWFrZXMgc2Vuc2Ugd2h5IGl0JiMzOTtzIGEgYnVnLiBUaGUgcHJvcG9zZWQgZml4LCB3aGljaCBpcyB0aGUgbW9kaWZpY2F0aW9uIGhlcmUsIGlzIG9ubHkgY2xlYXJpbmcgdGhlIHRpbnMgaWYgYHJhdGVfYWRqdXN0YCBpcyBmYWxzZSwgd2hpY2ggc2VlbXMgY29ycmVjdCBmcm9tIGEgZnVuY3Rpb25hbCBwZXJzcGVjdGl2ZS4KCkdpdmVuIHRoYXQgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyByYXRlIGNvbmZpZ3VyYXRpb24sIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZnV6emluZyB0byBlbnN1cmUgc3RhYmlsaXR5IGFuZCBjb3JyZWN0bmVzcyB1bmRlciB2YXJpb3VzIGNvbmRpdGlvbnMuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZm9jdXMgdGhlIGZ1enppbmcgb24gYGNha2VfY29uZmlndXJlX3JhdGVzYCwgYGNha2VfcmVjb25maWd1cmVgLCBgY2FrZV9jaGFuZ2VgLCBgY2FrZV9pbml0YCwgYW5kIGBjYWtlX21xX2NoYW5nZWAsIGFzIHRoZXNlIHNlZW0gdG8gYmUgdGhlIHByaW1hcnkgZW50cnkgcG9pbnRzIGFuZCBjb25maWd1cmF0aW9uIHBvaW50cy4KCkhvd2V2ZXIsIGFmdGVyIGEgc2Vjb25kIGxvb2ssIEkgcmVhbGl6ZSB0aGF0IGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgaXMgdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBoYXMgYmVlbiBkaXJlY3RseSBtb2RpZmllZC4gVGhpcyBhY3R1YWxseSBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdC4gSSBzdGlsbCBuZWVkIHRvIHRhcmdldCB0aG9zZSBjb25maWd1cmF0aW9uIHBhdGhzIHNvIEkmIzM5O20gZ29pbmcgdG8gaW5jbHVkZSB0aGUgb3JpZ2luYWwgc2V0OiBgY2FrZV9jaGFuZ2VgLCBgY2FrZV9pbml0YCwgYW5kIGBjYWtlX21xX2NoYW5nZWAuIEFuZCwgc2luY2UgYGNha2VfY29uZmlndXJlX3JhdGVzYCBpcyB0aGUgaGVhcnQgb2YgdGhlIGlzc3VlLCBhbmQgY2FsbGVkIGJ5IGBjYWtlX3JlY29uZmlndXJlYCwgSSYjMzk7bGwgaW5jbHVkZSBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAgYXMga2V5IGZvY3VzIHBvaW50cy4gSSBrbm93IGBjYWtlX2RlcXVldWVgIGNhbGxzIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgYXMgd2VsbCwgYnV0IHRoYXQmIzM5O3MgYSBob3QgcGF0aCBmdW5jdGlvbiB3aGljaCBJIHdhbnQgdG8gYXZvaWQgdG8gbWFrZSB0aGUgdGVzdGluZyBhIGJpdCBtb3JlIHRhcmdldGVkLgoKUmVnYXJkaW5nIGNvbmZpZ3VyYXRpb24sIEkmIzM5O2xsIG5lZWQgYE5FVF9TQ0hfQ0FLRWAuIExldCYjMzk7cyBkb3VibGUgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBvdGhlciBkZXBlbmRlbmNpZXMuIE5vcGUsIHRoYXQmIzM5O3MgdGhlIG9ubHkgb25lLgoKSGVyZSYjMzk7cyB0aGUgc3VtbWFyeToKCiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFsmIzM0O05FVF9TQ0hfQ0FLRSYjMzQ7XWAKKiAgICoqRm9jdXNTeW1ib2xzOioqIGBbJiMzNDtjYWtlX2NvbmZpZ3VyZV9yYXRlcyYjMzQ7LCAmIzM0O2Nha2VfcmVjb25maWd1cmUmIzM0OywgJiMzNDtjYWtlX2NoYW5nZSYjMzQ7LCAmIzM0O2Nha2VfaW5pdCYjMzQ7LCAmIzM0O2Nha2VfbXFfY2hhbmdlJiMzNDtdYAoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIGlzIG1vZGlmeWluZyB0aGUgQ0FLRSBxZGlzYyByYXRlIGNvbmZpZ3VyYXRpb24gbG9naWMuIEl0IGZpeGVzIGNsZWFyaW5nIHRoZSB0aW5zIHdoZW4gZHluYW1pY2FsbHkgYWRqdXN0aW5nIHJhdGVzLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyBuZXR3b3JrIHNjaGVkdWxpbmcgc3RhdGUgYW5kIHRodXMgcGFja2V0IGJlaGF2aW9yLiBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBjb25maWd1cmF0aW9uIHBhdGhzIHRoYXQgY2FsbCBpbnRvIHRoZSBtb2RpZmllZCBmdW5jdGlvbi4KCkkgYW0gZ29pbmcgdG8gcmVmaW5lIHRoZSBgRm9jdXNTeW1ib2xzYCBiYXNlZCBvbiB0aGUgZGlyZWN0IGNoYW5nZTogYGNha2VfY29uZmlndXJlX3JhdGVzYC4gVGhlIG90aGVycyBhcmUgdGhlcmUgdG8gdHJpZ2dlciB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBwYXRocy4gSSBuZWVkIHRvIGF2b2lkIGBjYWtlX2RlcXVldWVgLCBhcyBpdCYjMzk7cyB0b28gaG90IHRvIGZvY3VzIG9uLgoKTGV0IG1lIGNoZWNrIG9uZSBsYXN0IHRpbWUgZm9yIGFueSBvdGhlciBkZXBlbmRlbmNpZXMuLi4gbm9wZS4gRG9uZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE5FVF9TQ0hfQ0FLRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY2hlZC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zY2hlZC9LY29uZmlnPTI3Nz1jb25maWcgTkVUX1NDSF9GUV9DT0RFTFxuLS1cbm5ldC9zY2hlZC9LY29uZmlnLTI4Ny1cbm5ldC9zY2hlZC9LY29uZmlnOjI4ODpjb25maWcgTkVUX1NDSF9DQUtFXG5uZXQvc2NoZWQvS2NvbmZpZy0yODktXHR0cmlzdGF0ZSBcJiMzNDtDb21tb24gQXBwbGljYXRpb25zIEtlcHQgRW5oYW5jZWQgKENBS0UpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAxOjU2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc1ODUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkRpdmluZyBpbnRvIGBuZXQvc2NoZWQvS2NvbmZpZ2AqKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgc29tZXRoaW5nIGluIHRoZSBuZXR3b3JraW5nIHNjaGVkdWxlciBpcyBjb25maWd1cmVkLiBJJiMzOTttIHRoaW5raW5nIEkmIzM5O2xsIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byB0aGUgS2NvbmZpZyBmaWxlLiBMZXQmIzM5O3Mgc2VlLi4uSSYjMzk7bGwgZm9jdXMgb24gYG5ldC9zY2hlZC9LY29uZmlnYCBzcGVjaWZpY2FsbHkuIEkgcmVjYWxsIHRoYXQgZmlsZSBiZWluZyBwcmV0dHkgY2VudHJhbCB0byBhIGxvdCBvZiB0aGUgUW9TIGFuZCB0cmFmZmljIHNoYXBpbmcgb3B0aW9ucy4gTm93LCB3aGVyZSB0byBiZWdpbj8gSG1tLCBsZXQmIzM5O3MgbG9vayBhcm91bmQgbGluZSAyODguIFRoYXQgYXJlYSB1c3VhbGx5IGhvbGRzIGRlY2xhcmF0aW9ucyBmb3IgY29yZSBzY2hlZHVsZXIgb3B0aW9ucy4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGNvbnRleHQuIEl0JiMzOTtzIHRpbWUgdG8gb3BlbiB0aGF0IGZpbGUgYW5kIGdldCBzdGFydGVkLiBMZXQmIzM5O3MgZ2V0IHRvIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMTo1NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9zY2hlZC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjgwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyODA6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIEZRIENvbnRyb2xsZWQgRGVsYXkgKEZRX0NPREVMKVxuIDI4MTpcdFx0ICBwYWNrZXQgc2NoZWR1bGluZyBhbGdvcml0aG0uXG4gMjgyOlx0XG4gMjgzOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAyODQ6XHRcdCAgd2lsbCBiZSBjYWxsZWQgc2NoX2ZxX2NvZGVsLlxuIDI4NTpcdFxuIDI4NjpcdFx0ICBJZiB1bnN1cmUsIHNheSBOLlxuIDI4NzpcdFxuIDI4ODpcdGNvbmZpZyBORVRfU0NIX0NBS0VcbiAyODk6XHRcdHRyaXN0YXRlIFwmIzM0O0NvbW1vbiBBcHBsaWNhdGlvbnMgS2VwdCBFbmhhbmNlZCAoQ0FLRSlcJiMzNDtcbiAyOTA6XHRcdGhlbHBcbiAyOTE6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIENvbW1vbiBBcHBsaWNhdGlvbnMgS2VwdCBFbmhhbmNlZFxuIDI5MjpcdFx0ICAoQ0FLRSkgcXVldWUgbWFuYWdlbWVudCBhbGdvcml0aG0uXG4gMjkzOlx0XG4gMjk0Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAyOTU6XHRcdCAgd2lsbCBiZSBjYWxsZWQgc2NoX2Nha2UuXG4gMjk2Olx0XG4gMjk3Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gMjk4Olx0XG4gMjk5Olx0Y29uZmlnIE5FVF9TQ0hfRlFcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTcgMDE6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODA4OQoJCQkJCQkJb3V0cHV0OiAxMTAKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipTdHJlYW1saW5pbmcgdGhlIFByb2Nlc3MqKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IG5ldHdvcmsgc2NoZWR1bGluZywgYW5kIHRoZSBnb29kIG5ld3MgaXMsIHdlIGRvbiYjMzk7dCBuZWVkIHRvIGJyaW5nIGluIGFueSBoZWF2eS1kdXR5IGRlcGVuZGVuY2llcyBmb3IgdGhpcyBwYXJ0aWN1bGFyIG9wZXJhdGlvbi4gVGhlIHN0YW5kYXJkIGBORVRfU0NIX0NBS0VgIG1vZHVsZSBzaG91bGQgYmUgcGVyZmVjdGx5IGFkZXF1YXRlIGZvciB3aGF0IHdlIG5lZWQgdG8gYWNoaWV2ZS4gVGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBpbW1lbnNlbHkgYW5kIGtlZXBzIHRoZSBjb2RlYmFzZSBuaWNlIGFuZCBjbGVhbi4KCkdpdmVuIHRoYXQmIzM5O3Mgc2V0dGxlZCwgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGNhbGwgd2hhdGV2ZXIgZnVuY3Rpb24gb3IgbWV0aG9kIHdlJiMzOTt2ZSBkZXNpZ25hdGVkIHRvIHNldCB0aGUgcmVzdWx0cy4gTGV0JiMzOTtzIGdldCB0aG9zZSBmaWd1cmVzIGluIHBsYWNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNyAwMTo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX1NDSF9DQUtFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FrZV9jb25maWd1cmVfcmF0ZXMmIzM0OywKICAgICYjMzQ7Y2FrZV9yZWNvbmZpZ3VyZSYjMzQ7LAogICAgJiMzNDtjYWtlX2NoYW5nZSYjMzQ7LAogICAgJiMzNDtjYWtlX2luaXQmIzM0OywKICAgICYjMzQ7Y2FrZV9tcV9jaGFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgQ0FLRSBxZGlzYyB0byBhdm9pZCBjbGVhcmluZyB0aW5zIHdoZW4gYWRqdXN0aW5nIHJhdGVzIGR5bmFtaWNhbGx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIHRoYXQgYWZmZWN0cyBwYWNrZXQgc2NoZWR1bGluZyBzdGF0ZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TkVUX1NDSF9DQUtFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y2FrZV9jb25maWd1cmVfcmF0ZXMmIzM0OywKICAgICYjMzQ7Y2FrZV9yZWNvbmZpZ3VyZSYjMzQ7LAogICAgJiMzNDtjYWtlX2NoYW5nZSYjMzQ7LAogICAgJiMzNDtjYWtlX2luaXQmIzM0OywKICAgICYjMzQ7Y2FrZV9tcV9jaGFuZ2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgQ0FLRSBxZGlzYyB0byBhdm9pZCBjbGVhcmluZyB0aW5zIHdoZW4gYWRqdXN0aW5nIHJhdGVzIGR5bmFtaWNhbGx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIHRoYXQgYWZmZWN0cyBwYWNrZXQgc2NoZWR1bGluZyBzdGF0ZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjUzOjUyLjY3ODY4NjgwOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMDIwMjcyOTM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJORVRfU0NIX0NBS0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjYWtlX2NvbmZpZ3VyZV9yYXRlc1wiLFxuICAgIFwiY2FrZV9yZWNvbmZpZ3VyZVwiLFxuICAgIFwiY2FrZV9jaGFuZ2VcIixcbiAgICBcImNha2VfaW5pdFwiLFxuICAgIFwiY2FrZV9tcV9jaGFuZ2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcmF0ZSBjb25maWd1cmF0aW9uIGxvZ2ljIGluIHRoZSBDQUtFIHFkaXNjIHRvIGF2b2lkIGNsZWFyaW5nIHRpbnMgd2hlbiBhZGp1c3RpbmcgcmF0ZXMgZHluYW1pY2FsbHkuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgbmV0d29yayBzY2hlZHVsZXIgdGhhdCBhZmZlY3RzIHBhY2tldCBzY2hlZHVsaW5nIHN0YXRlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1Mzo1Mi42Nzg2OTMxMzhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4Mzg5OTM3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGUwOTcyNGNkYWQwNTkzNWM3ZTMyNTI4MjU3YzBmYTM2OTgxMTQ1Y2NcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMTcgMDE6NTM6NTEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuY1xcbmluZGV4IGY3OGY4ZTk1MDc3NjY3Li44NDVlMWMwMTc3MTRhMiAxMDA2NDRcXG4tLS0gYS9uZXQvc2NoZWQvc2NoX2Nha2UuY1xcbisrKyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jXFxuQEAgLTI2MDksOSArMjYwOSwxMSBAQCBzdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTY0IHJhdGUsIGJvb2wgcmF0ZV9hZGp1c3QpXFxuIFxcdFxcdGJyZWFrO1xcbiBcXHR9XFxuIFxcbi1cXHRmb3IgKGMgPSBxZC1cXHUwMDNldGluX2NudDsgYyBcXHUwMDNjIENBS0VfTUFYX1RJTlM7IGMrKykge1xcbi1cXHRcXHRjYWtlX2NsZWFyX3RpbihzY2gsIGMpO1xcbi1cXHRcXHRxZC1cXHUwMDNldGluc1tjXS5jcGFyYW1zLm10dV90aW1lID0gcWQtXFx1MDAzZXRpbnNbZnRdLmNwYXJhbXMubXR1X3RpbWU7XFxuK1xcdGlmICghcmF0ZV9hZGp1c3QpIHtcXG4rXFx0XFx0Zm9yIChjID0gcWQtXFx1MDAzZXRpbl9jbnQ7IGMgXFx1MDAzYyBDQUtFX01BWF9USU5TOyBjKyspIHtcXG4rXFx0XFx0XFx0Y2FrZV9jbGVhcl90aW4oc2NoLCBjKTtcXG4rXFx0XFx0XFx0cWQtXFx1MDAzZXRpbnNbY10uY3BhcmFtcy5tdHVfdGltZSA9IHFkLVxcdTAwM2V0aW5zW2Z0XS5jcGFyYW1zLm10dV90aW1lO1xcbitcXHRcXHR9XFxuIFxcdH1cXG4gXFxuIFxcdHFkLVxcdTAwM2VyYXRlX25zICAgPSBxZC1cXHUwMDNldGluc1tmdF0udGluX3JhdGVfbnM7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjUzOjUzLjI2MzUyNjk1NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk5NjE3ODc3NjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVF9TQ0hfQ0FLRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNha2VfY29uZmlndXJlX3JhdGVzXCIsXG4gICAgXCJjYWtlX3JlY29uZmlndXJlXCIsXG4gICAgXCJjYWtlX2NoYW5nZVwiLFxuICAgIFwiY2FrZV9pbml0XCIsXG4gICAgXCJjYWtlX21xX2NoYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIGNvbmZpZ3VyYXRpb24gbG9naWMgaW4gdGhlIENBS0UgcWRpc2MgdG8gYXZvaWQgY2xlYXJpbmcgdGlucyB3aGVuIGFkanVzdGluZyByYXRlcyBkeW5hbWljYWxseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHNjaGVkdWxlciB0aGF0IGFmZmVjdHMgcGFja2V0IHNjaGVkdWxpbmcgc3RhdGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZTA5NzI0Y2RhZDA1OTM1YzdlMzI1MjgyNTdjMGZhMzY5ODExNDVjY1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDE3IDAxOjUzOjUxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9jYWtlLmMgYi9uZXQvc2NoZWQvc2NoX2Nha2UuY1xuaW5kZXggZjc4ZjhlOTUwNzc2NjcuLjg0NWUxYzAxNzcxNGEyIDEwMDY0NFxuLS0tIGEvbmV0L3NjaGVkL3NjaF9jYWtlLmNcbisrKyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jXG5AQCAtMjYwOSw5ICsyNjA5LDExIEBAIHN0YXRpYyB2b2lkIGNha2VfY29uZmlndXJlX3JhdGVzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgYm9vbCByYXRlX2FkanVzdClcbiBcdFx0YnJlYWs7XG4gXHR9XG4gXG4tXHRmb3IgKGMgPSBxZC1cdTAwM2V0aW5fY250OyBjIFx1MDAzYyBDQUtFX01BWF9USU5TOyBjKyspIHtcbi1cdFx0Y2FrZV9jbGVhcl90aW4oc2NoLCBjKTtcbi1cdFx0cWQtXHUwMDNldGluc1tjXS5jcGFyYW1zLm10dV90aW1lID0gcWQtXHUwMDNldGluc1tmdF0uY3BhcmFtcy5tdHVfdGltZTtcbitcdGlmICghcmF0ZV9hZGp1c3QpIHtcbitcdFx0Zm9yIChjID0gcWQtXHUwMDNldGluX2NudDsgYyBcdTAwM2MgQ0FLRV9NQVhfVElOUzsgYysrKSB7XG4rXHRcdFx0Y2FrZV9jbGVhcl90aW4oc2NoLCBjKTtcbitcdFx0XHRxZC1cdTAwM2V0aW5zW2NdLmNwYXJhbXMubXR1X3RpbWUgPSBxZC1cdTAwM2V0aW5zW2Z0XS5jcGFyYW1zLm10dV90aW1lO1xuK1x0XHR9XG4gXHR9XG4gXG4gXHRxZC1cdTAwM2VyYXRlX25zICAgPSBxZC1cdTAwM2V0aW5zW2Z0XS50aW5fcmF0ZV9ucztcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjUzOjUzLjI2MzUyODYyNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1NzA1ODkzODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi5cblxuKipBbmFseXppbmcgYSBDQUtFIFNjaGVkdWxlciBQYXRjaCoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCdzIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgYG5ldC9zY2hlZC9zY2hfY2FrZS5jYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSB3aXRoaW4gdGhlIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgZnVuY3Rpb24uIFRoZSBwYXRjaCdzIGludHJvZHVjdGlvbiBvZiBhbiBgaWYgKCFyYXRlX2FkanVzdClgIGNvbmRpdGlvbiBpcyB3aGF0IEknbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiwgZ2l2ZW4gbXkgYmFja2dyb3VuZC4gSSBrbm93IHRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGFkanVzdGluZyB0aGUgYmFuZHdpZHRoIHJhdGVzIGFuZCByZWxhdGVkIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgQ0FLRSBxZGlzYy5cblxuU3BlY2lmaWNhbGx5LCBpdCBsb29rcyBsaWtlIHRoaXMgbmV3IGNvbmRpdGlvbmFsIGlzIGdhdGluZyBhIGxvb3AgdGhhdCdzIHJlc3BvbnNpYmxlIGZvciBjbGVhcmluZyBvdXQgXCJ0aW5zXCIgYW5kIHNldHRpbmcgYG10dV90aW1lYC4gTm93LCB0aGUgXCJ0aW5zXCIgY29uY2VwdCwgSSdtIGFscmVhZHkgYXdhcmUgb2YsIGlzIGhvdyBDQUtFIHN0cnVjdHVyZXMgaXRzIHRyYWZmaWMgc2hhcGluZywgZ3JvdXBpbmcgdGhpbmdzIGJhc2VkIG9uIHRpbWUuIFNvLCBpZiBgcmF0ZV9hZGp1c3RgIGlzIGZhbHNlLCB0aGlzIG1lYW5zIHdlJ3JlICpub3QqIGFkanVzdGluZyB0aGUgcmF0ZSwgYW5kIHdlIGVudGVyIHRoaXMgbG9vcD8gSG1tLCBJJ2QgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNvbnRleHQgb2YgYHJhdGVfYWRqdXN0YCB0byBzZWUgd2hhdCBzY2VuYXJpb3MgdGhhdCBjb3ZlcnMuIEkgYmV0IGl0IGhhcyB0byBkbyB3aXRoIGhvdyB0aGUgcWRpc2MgaXMgYmVpbmcgY29uZmlndXJlZCBvciByZWNvbmZpZ3VyZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBjb25kaXRpb25hbCBpcyB0cnlpbmcgdG8gcHJvdGVjdCwgYW5kIHdoYXQgc2NlbmFyaW9zIGl0J3MgYWNjb3VudGluZyBmb3IuIFBlcmhhcHMsIHRoaXMgY2hhbmdlIGltcHJvdmVzIHRoZSByZWxpYWJpbGl0eSBvZiB0aGUgY29uZmlndXJhdGlvbiwgYW5kIHByZXZlbnRzIHJlc2V0dGluZyBvZiB0aGVzZSB2YWx1ZXMgaW4gdGhlIHdyb25nIHNjZW5hcmlvcy4gSSdsbCBuZWVkIHRvIGdvIHRocm91Z2ggdGhlIGNvZGUsIHRoZSBjb21taXQgbWVzc2FnZSwgYW5kIGFueSByZWxhdGVkIGRvY3VtZW50YXRpb24gdG8gZnVsbHkgZ3Jhc3AgdGhlIHJhdGlvbmFsZSBoZXJlLCBhbmQgd2hhdCBwb3RlbnRpYWwgaW1wbGljYXRpb25zIHRoZXJlIG1pZ2h0IGJlIGZvciBvdmVyYWxsIENBS0UgcGVyZm9ybWFuY2UgYW5kIGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTU4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1Mzo1OC44MzQxMjAzNTNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU0Njc0OTI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNha2VfY29uZmlndXJlX3JhdGVzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY2hlZC9zY2hfY2FrZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY2hlZC9zY2hfY2FrZS5jPTM4Nz1zdGF0aWMgY29uc3QgdTMyIGludl9zcXJ0X2NhY2hlW1JFQ19JTlZfU1FSVF9DQUNIRV0gPSB7XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0zOTMtXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM6Mzk0OnN0YXRpYyB2b2lkIGNha2VfY29uZmlndXJlX3JhdGVzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgYm9vbCByYXRlX2FkanVzdCk7XFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzk1LVxcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM9MjAwNz1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmNha2VfZGVxdWV1ZShzdHJ1Y3QgUWRpc2MgKnNjaClcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTIwNDYtXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM6MjA0NzpcXHRcXHRjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzY2gsIG5ld19yYXRlLCB0cnVlKTtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yMDQ4LVxcdFxcdHEtXFx1MDAzZWxhc3RfY2hlY2tlZF9hY3RpdmUgPSBub3c7XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yNTUwPXN0YXRpYyBpbnQgY2FrZV9jb25maWdfZGlmZnNlcnYzKHN0cnVjdCBRZGlzYyAqc2NoLCB1NjQgcmF0ZSwgdTMyIG10dSlcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI1ODEtXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM6MjU4MjpzdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ3VyZV9yYXRlcyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdTY0IHJhdGUsIGJvb2wgcmF0ZV9hZGp1c3QpXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjU4My17XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yNjIzPXN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpXFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yNjI4LVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjI2Mjk6XFx0Y2FrZV9jb25maWd1cmVfcmF0ZXMoc2NoLCBxZC1cXHUwMDNlY29uZmlnLVxcdTAwM2VyYXRlX2JwcywgZmFsc2UpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI2MzAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjUzOjU4Ljk4ODgwMDU4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ5NDA3OTk3NTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBDQUtFIHFkaXNjIFJhdGUgQWRqdXN0bWVudCBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWltZWQgc3F1YXJlbHkgYXQgaG93IGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgYmVoYXZlcyB3aXRoaW4gdGhlIENBS0UgcWRpc2MuIEl0J3MgaW50ZXJlc3RpbmcgaG93IGl0J3MgY2FsbGVkIGZyb20gdHdvIGRpZmZlcmVudCBlbnRyeSBwb2ludHM6IGBjYWtlX2RlcXVldWVgLCB3aGVyZSBgcmF0ZV9hZGp1c3RgIGlzIHNldCB0byBgdHJ1ZWAsIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAsIHdpdGggYHJhdGVfYWRqdXN0YCBzZXQgdG8gYGZhbHNlYC4gVGhlIGtleSBkaWZmZXJlbmNlIGlzIHRoYXQgd2hlbiB0aGUgYHJhdGVfYWRqdXN0YCBmbGFnIGlzICp0cnVlKiwgbWVhbmluZyB3ZSdyZSBwcm9iYWJseSByZXNwb25kaW5nIHRvIHNvbWUgZHluYW1pYyBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgY29uZGl0aW9ucywgd2UncmUgZ29pbmcgdG8gKmF2b2lkKiBjbGVhcmluZyB0aGUgdGlucyBhbmQgcmVzZXR0aW5nIGBtdHVfdGltZWAuIFRoaXMgaXMgY3JpdGljYWwuIFdoeT8gQmVjYXVzZSB0aGUgYGNha2VfZGVxdWV1ZWAgcGF0aCwgd2l0aCB0aGUgZmxhZyBzZXQgdG8gdHJ1ZSwgaW1wbGllcyB0aGF0IHdlIGFyZSBwcm9jZXNzaW5nIGEgcGFja2V0LCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBjbGVhciB0aGUgdGlucyBvciByZXNldCBtdHVfdGltZS4gVGhpcyB3b3VsZCBuZWdhdGl2ZWx5IGltcGFjdCB0aGUgcWRpc2MuXG5cblRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyBhIGRlZmluaXRlIGZ1bmN0aW9uYWwgYWRqdXN0bWVudCB0byBob3cgQ0FLRSBtYW5hZ2VzIGl0cyBpbnRlcm5hbCBzdGF0ZSBkdXJpbmcgdGhlc2UgcmF0ZSBhZGp1c3RtZW50cy4gSSB3b25kZXIgd2hhdCB0aGUgY29ycmVzcG9uZGluZyBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIGZvciB0aGlzIHNwZWNpZmljIGJlaGF2aW9yLiBJdCdzIHRpbWUgdG8gZGlnIGludG8gdGhlIGNvbmZpZyBvcHRpb25zIGZvciB0aGUgQ0FLRSBxZGlzYy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg1NSwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1NDoyMy45Mjk2MDI0ODVaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDk1NzEwMjI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNjaF9jYWtlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY2hlZC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjaGVkL0tjb25maWc9Mjg4PWNvbmZpZyBORVRfU0NIX0NBS0VcXG4tLVxcbm5ldC9zY2hlZC9LY29uZmlnLTI5NC1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcXG5uZXQvc2NoZWQvS2NvbmZpZzoyOTU6XFx0ICB3aWxsIGJlIGNhbGxlZCBzY2hfY2FrZS5cXG5uZXQvc2NoZWQvS2NvbmZpZy0yOTYtXFxuLS1cXG5uZXQvc2NoZWQvTWFrZWZpbGU9NTY9b2JqLSQoQ09ORklHX05FVF9TQ0hfRlFfQ09ERUwpXFx0Kz0gc2NoX2ZxX2NvZGVsLm9cXG5uZXQvc2NoZWQvTWFrZWZpbGU6NTc6b2JqLSQoQ09ORklHX05FVF9TQ0hfQ0FLRSlcXHQrPSBzY2hfY2FrZS5vXFxubmV0L3NjaGVkL01ha2VmaWxlLTU4LW9iai0kKENPTkZJR19ORVRfU0NIX0ZRKVxcdCs9IHNjaF9mcS5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjU0OjI0LjQyNTMxODYyNFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0Nzg5MzMyMTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIENBS0UgUWRpc2MgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBJIG5lZWQgdG8gdGFyZ2V0IGlzIGBORVRfU0NIX0NBS0VgLiBUaGlzIGxvb2tzIGxpa2UgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIChxZGlzYykgY29kZSwgc3BlY2lmaWNhbGx5LCBJJ20gZm9jdXNpbmcgb24gdGhlIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgZnVuY3Rpb24uIEdpdmVuIHRoYXQsIGl0J3MgZGVmaW5pdGVseSB3b3J0aCBzcGVuZGluZyBzb21lIGN5Y2xlcyBmdXp6aW5nIGl0LlxuXG5UaGUgbWFpbiBzeW1ib2xzIHRvIGZvY3VzIG15IGF0dGVudGlvbiBvbiBhcmUgYGNha2VfY29uZmlndXJlX3JhdGVzYCwgYGNha2VfZGVxdWV1ZWAsIGFuZCBgY2FrZV9yZWNvbmZpZ3VyZWAuIFdhaXQgYSBtaW51dGUsIGBjYWtlX2RlcXVldWVgIGlzIGEgaG90IHBhdGggZnVuY3Rpb24sIHVzZWQgZm9yIGRlcXVldWluZyBwYWNrZXRzIGZyb20gdGhlIHFkaXNjLi4uIFRoYXQncyBzaWduaWZpY2FudC4gTm93IEkgcmVtZW1iZXIgdGhhdCBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGlzIGNhbGxlZCBib3RoIGZyb20gYGNha2VfZGVxdWV1ZWAgYW5kIGZyb20gYGNha2VfcmVjb25maWd1cmVgLiBIbW0sIHBlcmhhcHMgSSBzaG91bGQgZm9jdXMgbW9zdCBvZiBteSBlbmVyZ3kgb24gYGNha2VfY29uZmlndXJlX3JhdGVzYCB0aGVuLCBzaW5jZSBpdCdzIHJlYWNoYWJsZSB2aWEgdGhlIGhvdCBgY2FrZV9kZXF1ZXVlYCBwYXRoLlxuXG5MZXQgbWUganVzdCBxdWlja2x5IGNvbmZpcm0gdGhhdCBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGl0c2VsZiBpc24ndCBhIGhvdCBwYXRoIGZ1bmN0aW9uLiBJdCdzIGNhbGxlZCBmcm9tIGBjYWtlX2RlcXVldWVgLCBidXQgb25seSB3aGVuIGByYXRlX2FkanVzdGAgaXMgdHJ1ZSwgd2hpY2ggcHJlc3VtYWJseSBoYXBwZW5zIHdoZW4gdGhlIGBuZXdfcmF0ZWAgaXMgZGlmZmVyZW50LiBMZXQncyBzZWUuLi4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBjb2RlIGFyb3VuZCBsaW5lIDIwNDcgaW4gYGNha2VfZGVxdWV1ZWAgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MTcsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTQ6MzkuMjE0NjUzMDkxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAzMjgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9zY2hlZC9zY2hfY2FrZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwMzAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIwMzA6XFx0XFx0XFx0Zm9yIChudHggPSAwOyBudHggXFx1MDAzYyBkZXYtXFx1MDAzZW51bV90eF9xdWV1ZXM7IG50eCsrKSB7XFxuMjAzMTpcXHRcXHRcXHRcXHRvdGhlcl9zY2ggPSByY3VfZGVyZWZlcmVuY2UobmV0ZGV2X2dldF90eF9xdWV1ZShkZXYsIG50eCktXFx1MDAzZXFkaXNjX3NsZWVwaW5nKTtcXG4yMDMyOlxcdFxcdFxcdFxcdG90aGVyX3ByaXYgPSBxZGlzY19wcml2KG90aGVyX3NjaCk7XFxuMjAzMzpcXHRcXG4yMDM0OlxcdFxcdFxcdFxcdGlmIChvdGhlcl9wcml2ID09IHEpXFxuMjAzNTpcXHRcXHRcXHRcXHRcXHRjb250aW51ZTtcXG4yMDM2OlxcdFxcbjIwMzc6XFx0XFx0XFx0XFx0b3RoZXJfcWxlbiA9IFJFQURfT05DRShvdGhlcl9zY2gtXFx1MDAzZXEucWxlbik7XFxuMjAzODpcXHRcXHRcXHRcXHRvdGhlcl9sYXN0X2FjdGl2ZSA9IFJFQURfT05DRShvdGhlcl9wcml2LVxcdTAwM2VsYXN0X2FjdGl2ZSk7XFxuMjAzOTpcXHRcXG4yMDQwOlxcdFxcdFxcdFxcdGlmIChvdGhlcl9xbGVuIHx8IG90aGVyX2xhc3RfYWN0aXZlIFxcdTAwM2UgcS1cXHUwMDNlbGFzdF9jaGVja2VkX2FjdGl2ZSlcXG4yMDQxOlxcdFxcdFxcdFxcdFxcdG51bV9hY3RpdmVfcXMrKztcXG4yMDQyOlxcdFxcdFxcdH1cXG4yMDQzOlxcdFxcbjIwNDQ6XFx0XFx0XFx0aWYgKG51bV9hY3RpdmVfcXMgXFx1MDAzZSAxKVxcbjIwNDU6XFx0XFx0XFx0XFx0bmV3X3JhdGUgPSBkaXY2NF91NjQocS1cXHUwMDNlY29uZmlnLVxcdTAwM2VyYXRlX2JwcywgbnVtX2FjdGl2ZV9xcyk7XFxuMjA0NjpcXHRcXG4yMDQ3OlxcdFxcdFxcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgbmV3X3JhdGUsIHRydWUpO1xcbjIwNDg6XFx0XFx0XFx0cS1cXHUwMDNlbGFzdF9jaGVja2VkX2FjdGl2ZSA9IG5vdztcXG4yMDQ5OlxcdFxcdFxcdFdSSVRFX09OQ0UocS1cXHUwMDNlYWN0aXZlX3F1ZXVlcywgbnVtX2FjdGl2ZV9xcyk7XFxuMjA1MDpcXHRcXHR9XFxuMjA1MTpcXHRcXG4yMDUyOlxcdGJlZ2luOlxcbjIwNTM6XFx0XFx0aWYgKCFzY2gtXFx1MDAzZXEucWxlbilcXG4yMDU0OlxcdFxcdFxcdHJldHVybiBOVUxMO1xcbjIwNTU6XFx0XFxuMjA1NjpcXHRcXHQvKiBnbG9iYWwgaGFyZCBzaGFwZXIgKi9cXG4yMDU3OlxcdFxcdGlmIChrdGltZV9hZnRlcihxLVxcdTAwM2V0aW1lX25leHRfcGFja2V0LCBub3cpIFxcdTAwMjZcXHUwMDI2XFxuMjA1ODpcXHRcXHQgICAga3RpbWVfYWZ0ZXIocS1cXHUwMDNlZmFpbHNhZmVfbmV4dF9wYWNrZXQsIG5vdykpIHtcXG4yMDU5OlxcdFxcdFxcdHU2NCBuZXh0ID0gbWluKGt0aW1lX3RvX25zKHEtXFx1MDAzZXRpbWVfbmV4dF9wYWNrZXQpLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1NDozOS4yMTQ4NTgxOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1Njc2MzY4NTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBhbiBleHBlcnQgaW4gdGhpcyBmaWVsZDpcblxuKipEZWJ1Z2dpbmcgdGhlIFJhdGUgQ29uZmlndXJhdGlvbiBQcm9jZXNzKipcblxuQWxyaWdodCwgc28gaXQgbG9va3MgbGlrZSBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGlzIGxpa2VseSB0aGUga2V5IGZ1bmN0aW9uIHRoYXQgZ2V0cyBpbnZva2VkIHdoZW5ldmVyIHRoZSB0cmFmZmljIHNoYXBpbmcgcmF0ZXMgbmVlZCB0byBiZSB1cGRhdGVkLiBNeSBpbml0aWFsIGh1bmNoIGlzIHRoYXQgaXQncyBlaXRoZXIgdHJpZ2dlcmVkIGJ5IGEgcmVndWxhciB0aW1lciwgYSBzY2hlZHVsZWQgdGFzaywgb3IgcGVyaGFwcyB3aGVuZXZlciB0aGUgYWN0aXZlIHF1ZXVlcyB3aXRoaW4gdGhlIHN5c3RlbSBjaGFuZ2UuIFRoYXQgbWFrZXMgc2Vuc2UsIHRob3NlIGFyZSB0aGUgdHlwaWNhbCBldmVudHMgdGhhdCB3b3VsZCB0cmlnZ2VyIGEgcmVjb25maWd1cmF0aW9uLlxuXG5UbyBjb25maXJtIHRoYXQsIEkgc2hvdWxkIGRpZyBpbnRvIGhvdyB0aGUgc3lzdGVtIGlzIHJlY29uZmlndXJpbmcgaXRzIHJhdGVzLiBUaGF0IG1lYW5zIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBleGFtaW5lIHRoZSBgY2FrZV9yZWNvbmZpZ3VyZWAgZnVuY3Rpb24uIFRoYXQgZnVuY3Rpb24gd2lsbCBsaWtlbHkgcHJvdmlkZSB0aGUgb3ZlcmFsbCBjb250cm9sIGxvZ2ljIGZvciBhY3R1YWxseSBtYWtpbmcgdGhlIGNoYW5nZXMsIHB1bGxpbmcgaW4gYW55IHVwZGF0ZWQgcGFyYW1ldGVycyBvciBzZXR0aW5ncywgYW5kIGNhbGxpbmcgb3RoZXIgZnVuY3Rpb25zIGxpa2UgYGNha2VfY29uZmlndXJlX3JhdGVzYCB3aGVuIGFwcHJvcHJpYXRlLiBJJ2xsIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIHN5c3RlbSBkZWNpZGVzICp3aGVuKiB0byByZWNvbmZpZ3VyZSBhbmQgKndoYXQqIGl0J3MgcmVjb25maWd1cmluZyB0byB1bmRlcnN0YW5kIHRoaXMgYmV0dGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDY3LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjksIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1NDo1NC44OTEyMzgzMThaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTYzNzI3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvc2NoZWQvc2NoX2Nha2UuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNjIwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNjIwOlxcdFxcdHFkLVxcdTAwM2VyYXRlX3NoZnQgPSBxZC1cXHUwMDNldGluc1tmdF0udGluX3JhdGVfc2hmdDtcXG4yNjIxOlxcdH1cXG4yNjIyOlxcdFxcbjI2MjM6XFx0c3RhdGljIHZvaWQgY2FrZV9yZWNvbmZpZ3VyZShzdHJ1Y3QgUWRpc2MgKnNjaClcXG4yNjI0OlxcdHtcXG4yNjI1OlxcdFxcdHN0cnVjdCBjYWtlX3NjaGVkX2RhdGEgKnFkID0gcWRpc2NfcHJpdihzY2gpO1xcbjI2MjY6XFx0XFx0c3RydWN0IGNha2Vfc2NoZWRfY29uZmlnICpxID0gcWQtXFx1MDAzZWNvbmZpZztcXG4yNjI3OlxcdFxcdHUzMiBidWZmZXJfbGltaXQ7XFxuMjYyODpcXHRcXG4yNjI5OlxcdFxcdGNha2VfY29uZmlndXJlX3JhdGVzKHNjaCwgcWQtXFx1MDAzZWNvbmZpZy1cXHUwMDNlcmF0ZV9icHMsIGZhbHNlKTtcXG4yNjMwOlxcdFxcbjI2MzE6XFx0XFx0aWYgKHEtXFx1MDAzZWJ1ZmZlcl9jb25maWdfbGltaXQpIHtcXG4yNjMyOlxcdFxcdFxcdGJ1ZmZlcl9saW1pdCA9IHEtXFx1MDAzZWJ1ZmZlcl9jb25maWdfbGltaXQ7XFxuMjYzMzpcXHRcXHR9IGVsc2UgaWYgKHEtXFx1MDAzZXJhdGVfYnBzKSB7XFxuMjYzNDpcXHRcXHRcXHR1NjQgdCA9IHEtXFx1MDAzZXJhdGVfYnBzICogcS1cXHUwMDNlaW50ZXJ2YWw7XFxuMjYzNTpcXHRcXG4yNjM2OlxcdFxcdFxcdGRvX2Rpdih0LCBVU0VDX1BFUl9TRUMgLyA0KTtcXG4yNjM3OlxcdFxcdFxcdGJ1ZmZlcl9saW1pdCA9IG1heF90KHUzMiwgdCwgNFUgXFx1MDAzY1xcdTAwM2MgMjApO1xcbjI2Mzg6XFx0XFx0fSBlbHNlIHtcXG4yNjM5OlxcdFxcdFxcdGJ1ZmZlcl9saW1pdCA9IH4wO1xcbjI2NDA6XFx0XFx0fVxcbjI2NDE6XFx0XFxuMjY0MjpcXHRcXHRzY2gtXFx1MDAzZWZsYWdzIFxcdTAwMjY9IH5UQ1FfRl9DQU5fQllQQVNTO1xcbjI2NDM6XFx0XFxuMjY0NDpcXHRcXHRXUklURV9PTkNFKHFkLVxcdTAwM2VidWZmZXJfbGltaXQsXFxuMjY0NTpcXHRcXHRcXHQgICBtaW4oYnVmZmVyX2xpbWl0LFxcbjI2NDY6XFx0XFx0XFx0ICAgICAgIG1heChzY2gtXFx1MDAzZWxpbWl0ICogcHNjaGVkX210dShxZGlzY19kZXYoc2NoKSksXFxuMjY0NzpcXHRcXHRcXHRcXHQgICBxLVxcdTAwM2VidWZmZXJfY29uZmlnX2xpbWl0KSkpO1xcbjI2NDg6XFx0fVxcbjI2NDk6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjU0OjU0Ljg5Njg3OTk1OFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NzI3Mzg3MzYzOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkFuYWx5emluZyB0aGUgQ0FLRSBRdWV1ZSBEaXNjaXBsaW5lIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUuLi4gc28sIGBjYWtlX3JlY29uZmlndXJlYCBpcyB0aGUga2V5IGZ1bmN0aW9uIGhlcmUuIEl0J3MgdHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBDQUtFIHF1ZXVlIGRpc2NpcGxpbmUgaXRzZWxmIGlzIGluaXRpYWxseSBzZXQgdXAgb3IsIG1vcmUgaW1wb3J0YW50bHksICpyZSpjb25maWd1cmVkIOKAkyBtZWFuaW5nIGFueSBzdWJzZXF1ZW50IGNoYW5nZXMgdG8gaXRzIHBhcmFtZXRlcnMuIFRoYXQncyBnb29kIHRvIGtub3c7IGl0IHRlbGxzIG1lIGV4YWN0bHkgd2hlbiBJIG5lZWQgdG8gcGF5IGF0dGVudGlvbiB0byBpdHMgYmVoYXZpb3IuXG5cbk15IGltbWVkaWF0ZSBmb2xsb3ctdXAgdGhvdWdodCBpcywgd2hpY2ggcGFydCBvZiB0aGUgY29kZSBhY3R1YWxseSAqY2FsbHMqIHRoYXQgZnVuY3Rpb24/IEFuZCB0aGUgbG9naWNhbCBjYW5kaWRhdGUgYXBwZWFycyB0byBiZSBgY2FrZV9jaGFuZ2VgLiBTZWVtcyBsaWtlIHRoYXQncyB0aGUgbGlrZWx5IGVudHJ5IHBvaW50LiBVbmRlcnN0YW5kaW5nIHRoYXQgcmVsYXRpb25zaGlwIGlzIGNydWNpYWwuIElmIEknbSB0cm91Ymxlc2hvb3RpbmcsIG9yIG9wdGltaXppbmcgQ0FLRSwgSSBuZWVkIHRvIGtub3cgdGhlIGNhbGxpbmcgc2VxdWVuY2UuIEtub3dpbmcgdGhlIGNhbGxlciBgY2FrZV9jaGFuZ2VgIGFuZCBpdHMgcm9sZSB3aWxsIGRpY3RhdGUgaG93IEkgYmVzdCBjYW4gb2JzZXJ2ZSB0aGUgcmVjb25maWd1cmF0aW9uIHByb2Nlc3MsIGRldGVybWluZSB0aGUgaW5wdXRzLCBhbmQgcGlucG9pbnQgdGhlIHRyaWdnZXIgZm9yIHRoZXNlIGNydWNpYWwgdXBkYXRlcy4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGF0IGFzc3VtcHRpb24gYW5kIHZlcmlmeSwgYnV0IGl0J3MgYSB2ZXJ5IHJlYXNvbmFibGUgc3RhcnRpbmcgcG9pbnQuIEV4Y2VsbGVudCwgdGhhdCdzIGEgZ29vZCBzdGFydC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTIyMywiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTY6MDIuMTcwNzU2MTA2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MDMzMDIzNzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2FrZV9yZWNvbmZpZ3VyZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2NoZWQvc2NoX2Nha2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2NoZWQvc2NoX2Nha2UuYz0xNzE2PXN0YXRpYyB1MzIgY2FrZV9jbGFzc2lmeShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IGNha2VfdGluX2RhdGEgKip0LFxcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMTc1My1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoxNzU0OnN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTE3NTUtXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM9MTc1Nj1zdGF0aWMgczMyIGNha2VfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCxcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTE5MTAtXFx0XFx0XFx0XFx0cS1cXHUwMDNlY29uZmlnLVxcdTAwM2VyYXRlX2JwcyA9IChxLVxcdTAwM2VhdmdfcGVha19iYW5kd2lkdGggKiAxNSkgXFx1MDAzZVxcdTAwM2UgNDtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoxOTExOlxcdFxcdFxcdFxcdGNha2VfcmVjb25maWd1cmUoc2NoKTtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0xOTEyLVxcdFxcdFxcdH1cXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTI1ODI9c3RhdGljIHZvaWQgY2FrZV9jb25maWd1cmVfcmF0ZXMoc3RydWN0IFFkaXNjICpzY2gsIHU2NCByYXRlLCBib29sIHJhdGVfYWRqdXN0KVxcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjYyMi1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyNjIzOnN0YXRpYyB2b2lkIGNha2VfcmVjb25maWd1cmUoc3RydWN0IFFkaXNjICpzY2gpXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMjYyNC17XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yNzc0PXN0YXRpYyBpbnQgY2FrZV9jaGFuZ2Uoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBubGF0dHIgKm9wdCxcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI3OTktXFx0XFx0c2NoX3RyZWVfbG9jayhzY2gpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjI4MDA6XFx0XFx0Y2FrZV9yZWNvbmZpZ3VyZShzY2gpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI4MDEtXFx0XFx0c2NoX3RyZWVfdW5sb2NrKHNjaCk7XFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYz0yODMyPXN0YXRpYyBpbnQgY2FrZV9pbml0KHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgbmxhdHRyICpvcHQsXFxuLS1cXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yODkwLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjI4OTE6XFx0Y2FrZV9yZWNvbmZpZ3VyZShzY2gpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI4OTItXFx0cWQtXFx1MDAzZWF2Z19wZWFrX2JhbmR3aWR0aCA9IHEtXFx1MDAzZXJhdGVfYnBzO1xcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmM9MjkwMT1zdGF0aWMgdm9pZCBjYWtlX2NvbmZpZ19yZXBsYWNlKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3QgY2FrZV9zY2hlZF9jb25maWcgKmNmZylcXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jLTI5MDUtXFx0cWQtXFx1MDAzZWNvbmZpZyA9IGNmZztcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYzoyOTA2OlxcdGNha2VfcmVjb25maWd1cmUoc2NoKTtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0yOTA3LX1cXG4tLVxcbm5ldC9zY2hlZC9zY2hfY2FrZS5jPTMzMDI9c3RhdGljIGludCBjYWtlX21xX2NoYW5nZShzdHJ1Y3QgUWRpc2MgKnNjaCwgc3RydWN0IG5sYXR0ciAqb3B0LFxcbi0tXFxubmV0L3NjaGVkL3NjaF9jYWtlLmMtMzMyNy1cXHRcXHRcXHRzY2hfdHJlZV9sb2NrKGNobGQpO1xcbm5ldC9zY2hlZC9zY2hfY2FrZS5jOjMzMjg6XFx0XFx0XFx0Y2FrZV9yZWNvbmZpZ3VyZShjaGxkKTtcXG5uZXQvc2NoZWQvc2NoX2Nha2UuYy0zMzI5LVxcdFxcdFxcdHNjaF90cmVlX3VubG9jayhjaGxkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTY6MDIuODc0MDYzNTcxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyNzQ4NDk5OTUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkNBS0UgUWRpc2MgUmF0ZSBDb25maWd1cmF0aW9uIFBhdGNoIEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIENBS0UgcWRpc2MgcGF0Y2ggYW5kIGhlcmUncyBteSBicmVha2Rvd24uIEZyb20gd2hhdCBJIGNhbiBzZWUsIGBjYWtlX3JlY29uZmlndXJlYCBnZXRzIGNhbGxlZCBmcm9tIHNldmVyYWwgcGxhY2VzOiBgY2FrZV9jaGFuZ2VgLCBgY2FrZV9pbml0YCwgYGNha2VfY29uZmlnX3JlcGxhY2VgLCBgY2FrZV9tcV9jaGFuZ2VgLCBhbmQgYGNha2VfZW5xdWV1ZWAuIFRoZSBjb3JlIGlzc3VlIHNlZW1zIHRvIGJlIHRoYXQgYGNha2VfY29uZmlndXJlX3JhdGVzYCB3YXMgaW5jb3JyZWN0bHkgY2xlYXJpbmcgdGhlIHRpbnMsIHNwZWNpZmljYWxseSB3aGVuIGNhbGxlZCBmcm9tIGBjYWtlX2RlcXVldWVgIHdpdGggYHJhdGVfYWRqdXN0PXRydWVgLiBUaGlzIHdvdWxkIGxlYWQgdG8gbG9zdCBvciBjb3JydXB0ZWQgc3RhdGUsIHNvIGl0IG1ha2VzIHNlbnNlIHdoeSBpdCdzIGEgYnVnLiBUaGUgcHJvcG9zZWQgZml4LCB3aGljaCBpcyB0aGUgbW9kaWZpY2F0aW9uIGhlcmUsIGlzIG9ubHkgY2xlYXJpbmcgdGhlIHRpbnMgaWYgYHJhdGVfYWRqdXN0YCBpcyBmYWxzZSwgd2hpY2ggc2VlbXMgY29ycmVjdCBmcm9tIGEgZnVuY3Rpb25hbCBwZXJzcGVjdGl2ZS5cblxuR2l2ZW4gdGhhdCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHJhdGUgY29uZmlndXJhdGlvbiwgaXQncyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHN0YWJpbGl0eSBhbmQgY29ycmVjdG5lc3MgdW5kZXIgdmFyaW91cyBjb25kaXRpb25zLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIGZvY3VzIHRoZSBmdXp6aW5nIG9uIGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AsIGBjYWtlX3JlY29uZmlndXJlYCwgYGNha2VfY2hhbmdlYCwgYGNha2VfaW5pdGAsIGFuZCBgY2FrZV9tcV9jaGFuZ2VgLCBhcyB0aGVzZSBzZWVtIHRvIGJlIHRoZSBwcmltYXJ5IGVudHJ5IHBvaW50cyBhbmQgY29uZmlndXJhdGlvbiBwb2ludHMuXG5cbkhvd2V2ZXIsIGFmdGVyIGEgc2Vjb25kIGxvb2ssIEkgcmVhbGl6ZSB0aGF0IGBjYWtlX2NvbmZpZ3VyZV9yYXRlc2AgaXMgdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBoYXMgYmVlbiBkaXJlY3RseSBtb2RpZmllZC4gVGhpcyBhY3R1YWxseSBzaW1wbGlmaWVzIHRoaW5ncyBhIGJpdC4gSSBzdGlsbCBuZWVkIHRvIHRhcmdldCB0aG9zZSBjb25maWd1cmF0aW9uIHBhdGhzIHNvIEknbSBnb2luZyB0byBpbmNsdWRlIHRoZSBvcmlnaW5hbCBzZXQ6IGBjYWtlX2NoYW5nZWAsIGBjYWtlX2luaXRgLCBhbmQgYGNha2VfbXFfY2hhbmdlYC4gQW5kLCBzaW5jZSBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGlzIHRoZSBoZWFydCBvZiB0aGUgaXNzdWUsIGFuZCBjYWxsZWQgYnkgYGNha2VfcmVjb25maWd1cmVgLCBJJ2xsIGluY2x1ZGUgYGNha2VfY29uZmlndXJlX3JhdGVzYCBhbmQgYGNha2VfcmVjb25maWd1cmVgIGFzIGtleSBmb2N1cyBwb2ludHMuIEkga25vdyBgY2FrZV9kZXF1ZXVlYCBjYWxscyBgY2FrZV9jb25maWd1cmVfcmF0ZXNgIGFzIHdlbGwsIGJ1dCB0aGF0J3MgYSBob3QgcGF0aCBmdW5jdGlvbiB3aGljaCBJIHdhbnQgdG8gYXZvaWQgdG8gbWFrZSB0aGUgdGVzdGluZyBhIGJpdCBtb3JlIHRhcmdldGVkLlxuXG5SZWdhcmRpbmcgY29uZmlndXJhdGlvbiwgSSdsbCBuZWVkIGBORVRfU0NIX0NBS0VgLiBMZXQncyBkb3VibGUgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBvdGhlciBkZXBlbmRlbmNpZXMuIE5vcGUsIHRoYXQncyB0aGUgb25seSBvbmUuXG5cbkhlcmUncyB0aGUgc3VtbWFyeTpcblxuKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWVcbiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYFtcIk5FVF9TQ0hfQ0FLRVwiXWBcbiogICAqKkZvY3VzU3ltYm9sczoqKiBgW1wiY2FrZV9jb25maWd1cmVfcmF0ZXNcIiwgXCJjYWtlX3JlY29uZmlndXJlXCIsIFwiY2FrZV9jaGFuZ2VcIiwgXCJjYWtlX2luaXRcIiwgXCJjYWtlX21xX2NoYW5nZVwiXWBcbiogICAqKlJlYXNvbmluZzoqKiBUaGUgcGF0Y2ggaXMgbW9kaWZ5aW5nIHRoZSBDQUtFIHFkaXNjIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYy4gSXQgZml4ZXMgY2xlYXJpbmcgdGhlIHRpbnMgd2hlbiBkeW5hbWljYWxseSBhZGp1c3RpbmcgcmF0ZXMsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIG5ldHdvcmsgc2NoZWR1bGluZyBzdGF0ZSBhbmQgdGh1cyBwYWNrZXQgYmVoYXZpb3IuIEknbSBmb2N1c2luZyBvbiB0aGUgY29uZmlndXJhdGlvbiBwYXRocyB0aGF0IGNhbGwgaW50byB0aGUgbW9kaWZpZWQgZnVuY3Rpb24uXG5cbkkgYW0gZ29pbmcgdG8gcmVmaW5lIHRoZSBgRm9jdXNTeW1ib2xzYCBiYXNlZCBvbiB0aGUgZGlyZWN0IGNoYW5nZTogYGNha2VfY29uZmlndXJlX3JhdGVzYC4gVGhlIG90aGVycyBhcmUgdGhlcmUgdG8gdHJpZ2dlciB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBwYXRocy4gSSBuZWVkIHRvIGF2b2lkIGBjYWtlX2RlcXVldWVgLCBhcyBpdCdzIHRvbyBob3QgdG8gZm9jdXMgb24uXG5cbkxldCBtZSBjaGVjayBvbmUgbGFzdCB0aW1lIGZvciBhbnkgb3RoZXIgZGVwZW5kZW5jaWVzLi4uIG5vcGUuIERvbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYzMTksIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0ODUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTY6MjUuNjIyNTY2MTc0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDQ2MTc0NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE5FVF9TQ0hfQ0FLRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2NoZWQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2NoZWQvS2NvbmZpZz0yNzc9Y29uZmlnIE5FVF9TQ0hfRlFfQ09ERUxcXG4tLVxcbm5ldC9zY2hlZC9LY29uZmlnLTI4Ny1cXG5uZXQvc2NoZWQvS2NvbmZpZzoyODg6Y29uZmlnIE5FVF9TQ0hfQ0FLRVxcbm5ldC9zY2hlZC9LY29uZmlnLTI4OS1cXHR0cmlzdGF0ZSBcXFwiQ29tbW9uIEFwcGxpY2F0aW9ucyBLZXB0IEVuaGFuY2VkIChDQUtFKVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTdUMDE6NTY6MjYuMjI3MTg4ODgxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0NzQ4MjUzMDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGBuZXQvc2NoZWQvS2NvbmZpZ2AqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIGhvdyBzb21ldGhpbmcgaW4gdGhlIG5ldHdvcmtpbmcgc2NoZWR1bGVyIGlzIGNvbmZpZ3VyZWQuIEknbSB0aGlua2luZyBJJ2xsIHN0YXJ0IGJ5IGRpZ2dpbmcgaW50byB0aGUgS2NvbmZpZyBmaWxlLiBMZXQncyBzZWUuLi5JJ2xsIGZvY3VzIG9uIGBuZXQvc2NoZWQvS2NvbmZpZ2Agc3BlY2lmaWNhbGx5LiBJIHJlY2FsbCB0aGF0IGZpbGUgYmVpbmcgcHJldHR5IGNlbnRyYWwgdG8gYSBsb3Qgb2YgdGhlIFFvUyBhbmQgdHJhZmZpYyBzaGFwaW5nIG9wdGlvbnMuIE5vdywgd2hlcmUgdG8gYmVnaW4/IEhtbSwgbGV0J3MgbG9vayBhcm91bmQgbGluZSAyODguIFRoYXQgYXJlYSB1c3VhbGx5IGhvbGRzIGRlY2xhcmF0aW9ucyBmb3IgY29yZSBzY2hlZHVsZXIgb3B0aW9ucy4gSG9wZWZ1bGx5LCB0aGF0IHdpbGwgZ2l2ZSBtZSBzb21lIGNvbnRleHQuIEl0J3MgdGltZSB0byBvcGVuIHRoYXQgZmlsZSBhbmQgZ2V0IHN0YXJ0ZWQuIExldCdzIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzU4NSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjU2OjUwLjk3NTQ0NDI5MVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjI1OTMxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9zY2hlZC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDI4MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDI4MDpcXHRcXHQgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBGUSBDb250cm9sbGVkIERlbGF5IChGUV9DT0RFTClcXG4gMjgxOlxcdFxcdCAgcGFja2V0IHNjaGVkdWxpbmcgYWxnb3JpdGhtLlxcbiAyODI6XFx0XFxuIDI4MzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcXG4gMjg0OlxcdFxcdCAgd2lsbCBiZSBjYWxsZWQgc2NoX2ZxX2NvZGVsLlxcbiAyODU6XFx0XFxuIDI4NjpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuIDI4NzpcXHRcXG4gMjg4OlxcdGNvbmZpZyBORVRfU0NIX0NBS0VcXG4gMjg5OlxcdFxcdHRyaXN0YXRlIFxcXCJDb21tb24gQXBwbGljYXRpb25zIEtlcHQgRW5oYW5jZWQgKENBS0UpXFxcIlxcbiAyOTA6XFx0XFx0aGVscFxcbiAyOTE6XFx0XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgQ29tbW9uIEFwcGxpY2F0aW9ucyBLZXB0IEVuaGFuY2VkXFxuIDI5MjpcXHRcXHQgIChDQUtFKSBxdWV1ZSBtYW5hZ2VtZW50IGFsZ29yaXRobS5cXG4gMjkzOlxcdFxcbiAyOTQ6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlXFxuIDI5NTpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIHNjaF9jYWtlLlxcbiAyOTY6XFx0XFxuIDI5NzpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE4uXFxuIDI5ODpcXHRcXG4gMjk5OlxcdGNvbmZpZyBORVRfU0NIX0ZRXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE3VDAxOjU2OjUwLjk3NjY3MzE4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxNzAyMTg1NjY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipTdHJlYW1saW5pbmcgdGhlIFByb2Nlc3MqKlxuXG5SaWdodCwgc28gd2UncmUgbG9va2luZyBhdCBuZXR3b3JrIHNjaGVkdWxpbmcsIGFuZCB0aGUgZ29vZCBuZXdzIGlzLCB3ZSBkb24ndCBuZWVkIHRvIGJyaW5nIGluIGFueSBoZWF2eS1kdXR5IGRlcGVuZGVuY2llcyBmb3IgdGhpcyBwYXJ0aWN1bGFyIG9wZXJhdGlvbi4gVGhlIHN0YW5kYXJkIGBORVRfU0NIX0NBS0VgIG1vZHVsZSBzaG91bGQgYmUgcGVyZmVjdGx5IGFkZXF1YXRlIGZvciB3aGF0IHdlIG5lZWQgdG8gYWNoaWV2ZS4gVGhhdCBzaW1wbGlmaWVzIHRoaW5ncyBpbW1lbnNlbHkgYW5kIGtlZXBzIHRoZSBjb2RlYmFzZSBuaWNlIGFuZCBjbGVhbi5cblxuR2l2ZW4gdGhhdCdzIHNldHRsZWQsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjYWxsIHdoYXRldmVyIGZ1bmN0aW9uIG9yIG1ldGhvZCB3ZSd2ZSBkZXNpZ25hdGVkIHRvIHNldCB0aGUgcmVzdWx0cy4gTGV0J3MgZ2V0IHRob3NlIGZpZ3VyZXMgaW4gcGxhY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgwODksIk91dHB1dFRva2VucyI6MTEwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMTo1NzoxMi42Nzg4NjE3MjdaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDI1MzcyNDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk5FVF9TQ0hfQ0FLRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNha2VfY29uZmlndXJlX3JhdGVzXCIsXG4gICAgXCJjYWtlX3JlY29uZmlndXJlXCIsXG4gICAgXCJjYWtlX2NoYW5nZVwiLFxuICAgIFwiY2FrZV9pbml0XCIsXG4gICAgXCJjYWtlX21xX2NoYW5nZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIGNvbmZpZ3VyYXRpb24gbG9naWMgaW4gdGhlIENBS0UgcWRpc2MgdG8gYXZvaWQgY2xlYXJpbmcgdGlucyB3aGVuIGFkanVzdGluZyByYXRlcyBkeW5hbWljYWxseS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHNjaGVkdWxlciB0aGF0IGFmZmVjdHMgcGFja2V0IHNjaGVkdWxpbmcgc3RhdGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTkVUX1NDSF9DQUtFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2FrZV9jb25maWd1cmVfcmF0ZXNcIixcbiAgICBcImNha2VfcmVjb25maWd1cmVcIixcbiAgICBcImNha2VfY2hhbmdlXCIsXG4gICAgXCJjYWtlX2luaXRcIixcbiAgICBcImNha2VfbXFfY2hhbmdlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgY29uZmlndXJhdGlvbiBsb2dpYyBpbiB0aGUgQ0FLRSBxZGlzYyB0byBhdm9pZCBjbGVhcmluZyB0aW5zIHdoZW4gYWRqdXN0aW5nIHJhdGVzIGR5bmFtaWNhbGx5LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIG5ldHdvcmsgc2NoZWR1bGVyIHRoYXQgYWZmZWN0cyBwYWNrZXQgc2NoZWR1bGluZyBzdGF0ZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[1] Phase: Succeeded StartedAt: 2026-07-17 01:57:24 +0000 UTC FinishedAt: 2026-07-17 01:57:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-17 01:57:25 +0000 UTC FinishedAt: 2026-07-17 01:57:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2] Phase: Succeeded StartedAt: 2026-07-17 01:57:25 +0000 UTC FinishedAt: 2026-07-17 06:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-17 01:57:25 +0000 UTC FinishedAt: 2026-07-17 06:36:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-17 01:57:25 +0000 UTC FinishedAt: 2026-07-17 01:58:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-17 01:57:25 +0000 UTC FinishedAt: 2026-07-17 01:57:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowbtgs6/series-workflowbtgs6-convert-artifact-1207033667/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-17 01:58:13 +0000 UTC FinishedAt: 2026-07-17 02:42:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-17 01:58:13 +0000 UTC FinishedAt: 2026-07-17 02:42: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:*81446ee0-e9fb-46e4-a010-ddbc32116196,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-workflowbtgs6/series-workflowbtgs6-convert-artifact-1207033667/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": "e2e9d182-e8cb-4a96-b30c-0181fa989992", "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-workflowbtgs6/series-workflowbtgs6-build-action-1967479217/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-17 01:58:13 +0000 UTC FinishedAt: 2026-07-17 02:42:34 +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:*81446ee0-e9fb-46e4-a010-ddbc32116196,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-workflowbtgs6/series-workflowbtgs6-convert-artifact-1207033667/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": "e2e9d182-e8cb-4a96-b30c-0181fa989992", "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-workflowbtgs6/series-workflowbtgs6-build-action-1967479217/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-17 02:42:47 +0000 UTC FinishedAt: 2026-07-17 02:42:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-17 02:42:47 +0000 UTC FinishedAt: 2026-07-17 02:42:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-17 02:42:47 +0000 UTC FinishedAt: 2026-07-17 02:42:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-17 02:42:47 +0000 UTC FinishedAt: 2026-07-17 02:42:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},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-workflowbtgs6/series-workflowbtgs6-convert-artifact-4165815802/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-17 02:42:57 +0000 UTC FinishedAt: 2026-07-17 02:45:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-17 02:42:57 +0000 UTC FinishedAt: 2026-07-17 02:45:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*e2e9d182-e8cb-4a96-b30c-0181fa989992,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-workflowbtgs6/series-workflowbtgs6-build-action-1967479217/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-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-17 02:45:13 +0000 UTC FinishedAt: 2026-07-17 02:45:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-17 02:45:13 +0000 UTC FinishedAt: 2026-07-17 02:45:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-17 02:45:13 +0000 UTC FinishedAt: 2026-07-17 03:32:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-17 02:45:13 +0000 UTC FinishedAt: 2026-07-17 03:32:01 +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:*81446ee0-e9fb-46e4-a010-ddbc32116196,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-workflowbtgs6/series-workflowbtgs6-convert-artifact-4165815802/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": "d4916b1c-fdf2-4e28-9b22-4501a0cb6e88", "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-workflowbtgs6/series-workflowbtgs6-build-action-3131567454/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-17 02:45:13 +0000 UTC FinishedAt: 2026-07-17 03:31:51 +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:*81446ee0-e9fb-46e4-a010-ddbc32116196,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-workflowbtgs6/series-workflowbtgs6-convert-artifact-4165815802/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": "d4916b1c-fdf2-4e28-9b22-4501a0cb6e88", "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-workflowbtgs6/series-workflowbtgs6-build-action-3131567454/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-17 03:32:01 +0000 UTC FinishedAt: 2026-07-17 03:32:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-17 03:32:01 +0000 UTC FinishedAt: 2026-07-17 03:32:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-17 03:32:01 +0000 UTC FinishedAt: 2026-07-17 03:34:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-17 03:32:01 +0000 UTC FinishedAt: 2026-07-17 03:34:00 +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:*d4916b1c-fdf2-4e28-9b22-4501a0cb6e88,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-workflowbtgs6/series-workflowbtgs6-build-action-3131567454/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-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-17 03:34:10 +0000 UTC FinishedAt: 2026-07-17 06:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-17 03:34:10 +0000 UTC FinishedAt: 2026-07-17 06:36:38 +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":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"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:*e2e9d182-e8cb-4a96-b30c-0181fa989992,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d4916b1c-fdf2-4e28-9b22-4501a0cb6e88,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-workflowbtgs6/series-workflowbtgs6-build-action-1967479217/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-workflowbtgs6/series-workflowbtgs6-build-action-3131567454/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-17 03:34:10 +0000 UTC FinishedAt: 2026-07-17 03:34:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-17 03:34:10 +0000 UTC FinishedAt: 2026-07-17 03:34:15 +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":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"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-workflowbtgs6/series-workflowbtgs6-convert-artifact-2043858479/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-17 03:34:10 +0000 UTC FinishedAt: 2026-07-17 03:34:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-17 03:34:10 +0000 UTC FinishedAt: 2026-07-17 03:34:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-17 03:34:10 +0000 UTC FinishedAt: 2026-07-17 03:34:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-17 03:34:20 +0000 UTC FinishedAt: 2026-07-17 06:36:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgs6[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cake_configure_rates","cake_reconfigure","cake_change","cake_init","cake_mq_change"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f6f3b36c15ed44de1fbb44e645e4fae8c4a4453e","config_name":"upstream-apparmor-kasan.config","enable_configs":["NET_SCH_CAKE"],"series_id":"fdd9b210-c2ba-4598-9afb-ef0813b3f4f5","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-17 03:34:20 +0000 UTC FinishedAt: 2026-07-17 06:36:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*e2e9d182-e8cb-4a96-b30c-0181fa989992,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d4916b1c-fdf2-4e28-9b22-4501a0cb6e88,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-workflowbtgs6/series-workflowbtgs6-build-action-1967479217/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-workflowbtgs6/series-workflowbtgs6-build-action-3131567454/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-workflowbtgs6/series-workflowbtgs6-convert-artifact-2043858479/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,}