Name: series-workflowd4mjd Phase: Succeeded StartedAt: 2026-06-20 03:55:48 +0000 UTC FinishedAt: 2026-06-20 07:59:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[0] Phase: Succeeded StartedAt: 2026-06-20 03:55:48 +0000 UTC FinishedAt: 2026-06-20 04:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[0].run-triage Phase: Succeeded StartedAt: 2026-06-20 03:55:48 +0000 UTC FinishedAt: 2026-06-20 04:05:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "b85966adbf5de0668a815c6e3527f87e0c387fb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "b85966adbf5de0668a815c6e3527f87e0c387fb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "4f293a5d-440d-4dcb-9b30-118dbe41e956" }, "track": "KASAN", "fuzz": { "focus": [ "bpf", "net" ], "focus_symbols": [ "may_update_sockmap", "check_map_func_compatibility" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db", "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+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bWF5X3VwZGF0ZV9zb2NrbWFwJiMzNDssCiAgICAmIzM0O2NoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcmVzdHJpY3Qgd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgY2FuIHVwZGF0ZSBzb2NrbWFwcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgcHJvZ3JhbSB2YWxpZGF0aW9uIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTcxYzYxOWEzN2NhMTdmMjE1NjdjYjU1MWMzZjBmY2U3NjVhNWVhMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVuIDIwIDA0OjA0OjI1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuaW5kZXggN2ZiODhlMWNkN2M0ZDAuLjk0ZDIyNTUyMWI1YTE2IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC04NzY2LDExICYjNDM7ODc2Niw3IEBAIHN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcbiBcdFx0XHRyZXR1cm4gdHJ1ZTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUjpcbi1cdGNhc2UgQlBGX1BST0dfVFlQRV9TQ0hFRF9DTFM6XG4tXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0NIRURfQUNUOlxuLVx0Y2FzZSBCUEZfUFJPR19UWVBFX1hEUDpcbiBcdGNhc2UgQlBGX1BST0dfVFlQRV9TS19SRVVTRVBPUlQ6XG4tXHRjYXNlIEJQRl9QUk9HX1RZUEVfRkxPV19ESVNTRUNUT1I6XG4gXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0tfTE9PS1VQOlxuIFx0XHRyZXR1cm4gdHJ1ZTtcbiBcdGRlZmF1bHQ6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMDQ6MDQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYXlfdXBkYXRlX3NvY2ttYXAmIzM0OywKICAgICYjMzQ7Y2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byByZXN0cmljdCB3aGljaCBCUEYgcHJvZ3JhbSB0eXBlcyBjYW4gdXBkYXRlIHNvY2ttYXBzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBwcm9ncmFtIHZhbGlkYXRpb24gYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE3MWM2MTlhMzdjYTE3ZjIxNTY3Y2I1NTFjM2YwZmNlNzY1YTVlYTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1biAyMCAwNDowNDoyNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCA3ZmI4OGUxY2Q3YzRkMC4uOTRkMjI1NTIxYjVhMTYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTg3NjYsMTEgJiM0Mzs4NzY2LDcgQEAgc3RhdGljIGJvb2wgbWF5X3VwZGF0ZV9zb2NrbWFwKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBmdW5jX2lkKQogCQkJcmV0dXJuIHRydWU7CiAJCWJyZWFrOwogCWNhc2UgQlBGX1BST0dfVFlQRV9TT0NLRVRfRklMVEVSOgotCWNhc2UgQlBGX1BST0dfVFlQRV9TQ0hFRF9DTFM6Ci0JY2FzZSBCUEZfUFJPR19UWVBFX1NDSEVEX0FDVDoKLQljYXNlIEJQRl9QUk9HX1RZUEVfWERQOgogCWNhc2UgQlBGX1BST0dfVFlQRV9TS19SRVVTRVBPUlQ6Ci0JY2FzZSBCUEZfUFJPR19UWVBFX0ZMT1dfRElTU0VDVE9SOgogCWNhc2UgQlBGX1BST0dfVFlQRV9TS19MT09LVVA6CiAJCXJldHVybiB0cnVlOwogCWRlZmF1bHQ6CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTb2NrbWFwIFVwZGF0ZSBSZXN0cmljdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgbG9va3MgbGlrZSB3ZSYjMzk7dmUgbWFkZSBhIGNoYW5nZSB0byBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgYG1heV91cGRhdGVfc29ja21hcGAgZnVuY3Rpb24gaXMgdGhlIHRhcmdldC4gQWgsIHJpZ2h0LiBJdCYjMzk7cyB0aWdodGVuaW5nIHRoZSByZXN0cmljdGlvbnMgb24gd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgYXJlIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzb2NrbWFwLiBJdCBsb29rcyBsaWtlIGBCUEZfUFJPR19UWVBFX1NDSEVEX0NMU2AsIGBCUEZfUFJPR19UWVBFX1NDSEVEX0FDVGAsIGBCUEZfUFJPR19UWVBFX1hEUGAsIGFuZCBgQlBGX1BST0dfVFlQRV9GTE9XX0RJU1NFQ1RPUmAgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcGVybWlzc2libGUgbGlzdC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgcmVhc29uaW5nIGhlcmUuIFBlcmhhcHMgdGhlcmUgd2FzIGEgc2VjdXJpdHkgY29uY2VybiBvciBzb21lIHVuZXhwZWN0ZWQgYmVoYXZpb3IgaWRlbnRpZmllZC4gSSYjMzk7bGwgbmVlZCB0byByZXZpZXcgdGhlIGNvbnRleHQgc3Vycm91bmRpbmcgdGhpcyBjaGFuZ2UgaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIGFuZCB0aGUgcmF0aW9uYWxlIGJlaGluZCB0aGVzZSBwYXJ0aWN1bGFyIHJlbW92YWxzLiBJJiMzOTtsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhhdCBmdW5jdGlvbiBub3cgYW5kIHNlZSB3aGF0IGl0IHRlbGxzIG1lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21heV91cGRhdGVfc29ja21hcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODQ3Nj1zdGF0aWMgaW50IGNoZWNrX2Z1bmNfYXJnKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBhcmcsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3NDUtXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6ODc0NjpzdGF0aWMgYm9vbCBtYXlfdXBkYXRlX3NvY2ttYXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGZ1bmNfaWQpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODc0Ny17XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTg3ODY9c3RhdGljIGludCBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NjEtXHRcdCAgICBmdW5jX2lkICE9IEJQRl9GVU5DX21hcF9sb29rdXBfZWxlbSBcdTAwMjZcdTAwMjZcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4ODYyOlx0XHQgICAgIW1heV91cGRhdGVfc29ja21hcChlbnYsIGZ1bmNfaWQpKVxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NjMtXHRcdFx0Z290byBlcnJvcjtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg3MC1cdFx0ICAgIGZ1bmNfaWQgIT0gQlBGX0ZVTkNfbWFwX2xvb2t1cF9lbGVtIFx1MDAyNlx1MDAyNlxua2VybmVsL2JwZi92ZXJpZmllci5jOjg4NzE6XHRcdCAgICAhbWF5X3VwZGF0ZV9zb2NrbWFwKGVudiwgZnVuY19pZCkpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg3Mi1cdFx0XHRnb3RvIGVycm9yO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MDIKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipCUEYgVmVyaWZpZXIgQ2hhbmdlOiBTY29wZSBmb3IgRnV6emluZyoqCgpBbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggbG9va3MgbGlrZSBpdCYjMzk7cyB0d2Vha2luZyBgbWF5X3VwZGF0ZV9zb2NrbWFwYCwgd2hpY2ggaXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGZyb20gYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgLiBUaGF0JiMzOTtzIGEga2V5IHNwb3TigJRhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBCUEYgdmVyaWZpZXIgdGhhdCYjMzk7cyBlc3NlbnRpYWxseSByZXN0cmljdGluZyB3aGljaCBCUEYgcHJvZ3JhbSB0eXBlcyBjYW4gYWN0dWFsbHkgbW9kaWZ5IHRoZSBzb2NrbWFwLiBUaGUgdmVyaWZpZXImIzM5O3MgYWx3YXlzIGEgcG9pbnQgb2YgaW50ZXJlc3QsIGFuZCAqdGhpcyogY2hhbmdlIHNjcmVhbXMgJiMzNDtmdXp6IG1lISYjMzQ7IGltbWVkaWF0ZWx5LiBBbnkgbW9kaWZpY2F0aW9uIHRvIHRoZSB2ZXJpZmljYXRpb24gcnVsZXMgb3BlbnMgdXAgcG90ZW50aWFsIGZvciBub3ZlbCBleHBsb2l0IHZlY3RvcnMsIHBhcnRpY3VsYXJseSBpbiBob3cgcHJvZ3JhbXMgaW50ZXJhY3Qgd2l0aCBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLgoKTm93LCBsZXTigJlzIGdldCBzcGVjaWZpYy4gSSBuZWVkIHRvIG5haWwgZG93biB0aGUgcmVsZXZhbnQgY29uZmlnIG9wdGlvbnMgc28gSSBjYW4gdGFyZ2V0IHRoaXMgcHJvcGVybHkuIFdlJiMzOTtyZSBnZW5lcmFsbHkgdGFsa2luZyBhYm91dCBCUEYgZmVhdHVyZXMgaGVyZSwgc28gYENPTkZJR19CUEZfU1lTQ0FMTGAgYW5kIGBDT05GSUdfQ0dST1VQX0JQRmAgYXJlIHRoZSB1c3VhbCBzdXNwZWN0cyBmb3IgZ2V0dGluZyBzb2NrbWFwIHVwIGFuZCBydW5uaW5nLiBCdXQgSSBzaG91bGQgY29uZmlybSB3aGV0aGVyIHRoZXJlJiMzOTtzIGEgbW9yZSB0YXJnZXRlZCBvcHRpb24sIHBlcmhhcHMgaW4gYG5ldC9jb3JlL3NvY2tfbWFwLmNgIG9yIGEgc2ltaWxhciBmaWxlLiBJdCYjMzk7cyBhIGdvb2QgaWRlYSB0byBpZGVudGlmeSBhbGwgdGhlIGRlcGVuZGVuY2llcywgYXMgdGhhdCBjYW4gZ2l2ZSBhIG1vcmUgcmVsaWFibGUgcGxhdGZvcm0gZm9yIGV4cGVyaW1lbnRhdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgcHJlcmVxdWlzaXRlcyB3aWxsIGhlbHAgbWUgY3JlYXRlIGEgcm9idXN0IHRlc3Qgc2V0dXAuIEkmIzM5O2xsIG5lZWQgdG8ga25vdyB0aGUgY29tcGxldGUgY29uZmlndXJhdGlvbiB0byB0cmlnZ2VyIHRoZSBuZXcgYmVoYXZpb3IgYW5kIGNyYWZ0IGVmZmVjdGl2ZSBmdXp6aW5nIGhhcm5lc3Nlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAwNDowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzb2NrbWFwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2NvcmUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL2ZpbHRlci5jPTE2MTE9aW50IHNrX3JldXNlcG9ydF9hdHRhY2hfYnBmKHUzMiB1ZmQsIHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvY29yZS9maWx0ZXIuYy0xNjI2LVx0XHQvKiBMaWtlIG90aGVyIG5vbiBCUEZfUFJPR19UWVBFX1NPQ0tFVF9GSUxURVJcbm5ldC9jb3JlL2ZpbHRlci5jOjE2Mjc6XHRcdCAqIGJwZiBwcm9nIChlLmcuIHNvY2ttYXApLiAgSXQgZGVwZW5kcyBvbiB0aGVcbm5ldC9jb3JlL2ZpbHRlci5jLTE2MjgtXHRcdCAqIGxpbWl0YXRpb24gaW1wb3NlZCBieSBicGZfcHJvZ19sb2FkKCkuXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYz0xNz1zdHJ1Y3QgYnBmX3N0YWIge1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMzEtICovXG5uZXQvY29yZS9zb2NrX21hcC5jOjMyOnN0YXRpYyBERUZJTkVfTVVURVgoc29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTMzLVxuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9Njg9aW50IHNvY2tfbWFwX2dldF9mcm9tX2ZkKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy03OS1cdFx0cmV0dXJuIFBUUl9FUlIobWFwKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6ODA6XHRtdXRleF9sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy04MS1cdHJldCA9IHNvY2tfbWFwX3Byb2dfdXBkYXRlKG1hcCwgcHJvZywgTlVMTCwgTlVMTCwgYXR0ci1cdTAwM2VhdHRhY2hfdHlwZSk7XG5uZXQvY29yZS9zb2NrX21hcC5jOjgyOlx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy04My1cdHJldHVybiByZXQ7XG4tLVxubmV0L2NvcmUvc29ja19tYXAuYz04Nj1pbnQgc29ja19tYXBfcHJvZ19kZXRhY2goY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIsIGVudW0gYnBmX3Byb2dfdHlwZSBwdHlwZSlcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTEwOC1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTA5Olx0bXV0ZXhfbG9jayhcdTAwMjZzb2NrbWFwX211dGV4KTtcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTEwLVx0cmV0ID0gc29ja19tYXBfcHJvZ191cGRhdGUobWFwLCBOVUxMLCBwcm9nLCBOVUxMLCBhdHRyLVx1MDAzZWF0dGFjaF90eXBlKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTExOlx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy0xMTItcHV0X3Byb2c6XG4tLVxubmV0L2NvcmUvc29ja19tYXAuYz03MDQ9c3RydWN0IHNvY2tfbWFwX3NlcV9pbmZvIHtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTcwOS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6NzEwOnN0cnVjdCBicGZfaXRlcl9fc29ja21hcCB7XG5uZXQvY29yZS9zb2NrX21hcC5jLTcxMS1cdF9fYnBmX21kX3B0cihzdHJ1Y3QgYnBmX2l0ZXJfbWV0YSAqLCBtZXRhKTtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTcxNi1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6NzE3OkRFRklORV9CUEZfSVRFUl9GVU5DKHNvY2ttYXAsIHN0cnVjdCBicGZfaXRlcl9tZXRhICptZXRhLFxubmV0L2NvcmUvc29ja19tYXAuYy03MTgtXHRcdCAgICAgc3RydWN0IGJwZl9tYXAgKm1hcCwgdm9pZCAqa2V5LFxuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9NzU2PXN0YXRpYyBpbnQgc29ja19tYXBfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy03NTktXHRzdHJ1Y3Qgc29ja19tYXBfc2VxX2luZm8gKmluZm8gPSBzZXEtXHUwMDNlcHJpdmF0ZTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6NzYwOlx0c3RydWN0IGJwZl9pdGVyX19zb2NrbWFwIGN0eCA9IHt9O1xubmV0L2NvcmUvc29ja19tYXAuYy03NjEtXHRzdHJ1Y3QgYnBmX2l0ZXJfbWV0YSBtZXRhO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9MTM2OD1zdGF0aWMgaW50IHNvY2tfaGFzaF9zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTEzNzEtXHRzdHJ1Y3Qgc29ja19oYXNoX3NlcV9pbmZvICppbmZvID0gc2VxLVx1MDAzZXByaXZhdGU7XG5uZXQvY29yZS9zb2NrX21hcC5jOjEzNzI6XHRzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAgY3R4ID0ge307XG5uZXQvY29yZS9zb2NrX21hcC5jLTEzNzMtXHRzdHJ1Y3QgYnBmX3NodGFiX2VsZW0gKmVsZW0gPSB2O1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9MTcxOD1FWFBPUlRfU1lNQk9MX0dQTChzb2NrX21hcF9jbG9zZSk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3MTktXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3MjA6c3RydWN0IHNvY2ttYXBfbGluayB7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3MjEtXHRzdHJ1Y3QgYnBmX2xpbmsgbGluaztcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jPTE3MjU9c3RhdGljIHZvaWQgc29ja19tYXBfbGlua19yZWxlYXNlKHN0cnVjdCBicGZfbGluayAqbGluaylcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTcyNi17XG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mjc6XHRzdHJ1Y3Qgc29ja21hcF9saW5rICpzb2NrbWFwX2xpbmsgPSBjb250YWluZXJfb2YobGluaywgc3RydWN0IHNvY2ttYXBfbGluaywgbGluayk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3MjgtXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mjk6XHRtdXRleF9sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYzoxNzMwOlx0aWYgKCFzb2NrbWFwX2xpbmstXHUwMDNlbWFwKVxubmV0L2NvcmUvc29ja19tYXAuYy0xNzMxLVx0XHRnb3RvIG91dDtcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTczMi1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTczMzpcdFdBUk5fT05fT05DRShzb2NrX21hcF9wcm9nX3VwZGF0ZShzb2NrbWFwX2xpbmstXHUwMDNlbWFwLCBOVUxMLCBsaW5rLVx1MDAzZXByb2csIGxpbmssXG5uZXQvY29yZS9zb2NrX21hcC5jLTE3MzQtXHRcdFx0XHRcdCAgbGluay1cdTAwM2VhdHRhY2hfdHlwZSkpO1xubmV0L2NvcmUvc29ja19tYXAuYy0xNzM1LVxubmV0L2NvcmUvc29ja19tYXAuYzoxNzM2Olx0YnBmX21hcF9wdXRfd2l0aF91cmVmKHNvY2ttYXBfbGluay1cdTAwM2VtYXApO1xubmV0L2NvcmUvc29ja19tYXAuYzoxNzM3Olx0c29ja21hcF9saW5rLVx1MDAzZW1hcCA9IE5VTEw7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3Mzgtb3V0OlxubmV0L2NvcmUvc29ja19tYXAuYzoxNzM5Olx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy0xNzQwLX1cbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jPTE3NTc9c3RhdGljIGludCBzb2NrX21hcF9saW5rX3VwZGF0ZV9wcm9nKHN0cnVjdCBicGZfbGluayAqbGluayxcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE3NjAte1xubmV0L2NvcmUvc29ja19tYXAuYzoxNzYxOlx0Y29uc3Qgc3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rID0gY29udGFpbmVyX29mKGxpbmssIHN0cnVjdCBzb2NrbWFwX2xpbmssIGxpbmspO1xubmV0L2NvcmUvc29ja19tYXAuYy0xNzYyLVx0c3RydWN0IGJwZl9wcm9nICoqcHByb2csICpvbGRfbGlua19wcm9nO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc2NS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTc2NjpcdG11dGV4X2xvY2soXHUwMDI2c29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3NjctXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy0xNzc4LVx0fVxubmV0L2NvcmUvc29ja19tYXAuYzoxNzc5Olx0aWYgKCFzb2NrbWFwX2xpbmstXHUwMDNlbWFwKSB7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3ODAtXHRcdHJldCA9IC1FTk9MSU5LO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc4My1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTc4NDpcdHJldCA9IHNvY2tfbWFwX3Byb2dfbGlua19sb29rdXAoc29ja21hcF9saW5rLVx1MDAzZW1hcCwgXHUwMDI2cHByb2csIFx1MDAyNnBsaW5rLFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzg1LVx0XHRcdFx0XHRsaW5rLVx1MDAzZWF0dGFjaF90eXBlKTtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MDctb3V0OlxubmV0L2NvcmUvc29ja19tYXAuYzoxODA4Olx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy0xODA5LVx0cmV0dXJuIHJldDtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MTEtXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTI6c3RhdGljIHUzMiBzb2NrX21hcF9saW5rX2dldF9tYXBfaWQoY29uc3Qgc3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rKVxubmV0L2NvcmUvc29ja19tYXAuYy0xODEzLXtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MTUtXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTY6XHRtdXRleF9sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYzoxODE3Olx0aWYgKHNvY2ttYXBfbGluay1cdTAwM2VtYXApXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTg6XHRcdG1hcF9pZCA9IHNvY2ttYXBfbGluay1cdTAwM2VtYXAtXHUwMDNlaWQ7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTk6XHRtdXRleF91bmxvY2soXHUwMDI2c29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MjAtXHRyZXR1cm4gbWFwX2lkO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9MTgyMz1zdGF0aWMgaW50IHNvY2tfbWFwX2xpbmtfZmlsbF9pbmZvKGNvbnN0IHN0cnVjdCBicGZfbGluayAqbGluayxcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MjUte1xubmV0L2NvcmUvc29ja19tYXAuYzoxODI2Olx0Y29uc3Qgc3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rID0gY29udGFpbmVyX29mKGxpbmssIHN0cnVjdCBzb2NrbWFwX2xpbmssIGxpbmspO1xubmV0L2NvcmUvc29ja19tYXAuYzoxODI3Olx0dTMyIG1hcF9pZCA9IHNvY2tfbWFwX2xpbmtfZ2V0X21hcF9pZChzb2NrbWFwX2xpbmspO1xubmV0L2NvcmUvc29ja19tYXAuYy0xODI4LVxubmV0L2NvcmUvc29ja19tYXAuYzoxODI5Olx0aW5mby1cdTAwM2Vzb2NrbWFwLm1hcF9pZCA9IG1hcF9pZDtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzMDpcdGluZm8tXHUwMDNlc29ja21hcC5hdHRhY2hfdHlwZSA9IGxpbmstXHUwMDNlYXR0YWNoX3R5cGU7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MzEtXHRyZXR1cm4gMDtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jPTE4MzQ9c3RhdGljIHZvaWQgc29ja19tYXBfbGlua19zaG93X2ZkaW5mbyhjb25zdCBzdHJ1Y3QgYnBmX2xpbmsgKmxpbmssXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy0xODM2LXtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzNzpcdGNvbnN0IHN0cnVjdCBzb2NrbWFwX2xpbmsgKnNvY2ttYXBfbGluayA9IGNvbnRhaW5lcl9vZihsaW5rLCBzdHJ1Y3Qgc29ja21hcF9saW5rLCBsaW5rKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzODpcdHUzMiBtYXBfaWQgPSBzb2NrX21hcF9saW5rX2dldF9tYXBfaWQoc29ja21hcF9saW5rKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTgzOS1cbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jPTE4NTM9aW50IHNvY2tfbWFwX2xpbmtfY3JlYXRlKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy0xODU1LVx0c3RydWN0IGJwZl9saW5rX3ByaW1lciBsaW5rX3ByaW1lcjtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg1NjpcdHN0cnVjdCBzb2NrbWFwX2xpbmsgKnNvY2ttYXBfbGluaztcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg1Ny1cdGVudW0gYnBmX2F0dGFjaF90eXBlIGF0dGFjaF90eXBlO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg3MS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg3MjpcdHNvY2ttYXBfbGluayA9IGt6YWxsb2Nfb2JqKCpzb2NrbWFwX2xpbmssIEdGUF9VU0VSKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg3MzpcdGlmICghc29ja21hcF9saW5rKSB7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4NzQtXHRcdHJldCA9IC1FTk9NRU07XG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy0xODc4LVx0YXR0YWNoX3R5cGUgPSBhdHRyLVx1MDAzZWxpbmtfY3JlYXRlLmF0dGFjaF90eXBlO1xubmV0L2NvcmUvc29ja19tYXAuYzoxODc5Olx0YnBmX2xpbmtfaW5pdChcdTAwMjZzb2NrbWFwX2xpbmstXHUwMDNlbGluaywgQlBGX0xJTktfVFlQRV9TT0NLTUFQLCBcdTAwMjZzb2NrX21hcF9saW5rX29wcywgcHJvZyxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4MC1cdFx0ICAgICAgYXR0YWNoX3R5cGUpO1xubmV0L2NvcmUvc29ja19tYXAuYzoxODgxOlx0c29ja21hcF9saW5rLVx1MDAzZW1hcCA9IG1hcDtcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4Mi1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg4MzpcdHJldCA9IGJwZl9saW5rX3ByaW1lKFx1MDAyNnNvY2ttYXBfbGluay1cdTAwM2VsaW5rLCBcdTAwMjZsaW5rX3ByaW1lcik7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4ODQtXHRpZiAocmV0KSB7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE4ODU6XHRcdGtmcmVlKHNvY2ttYXBfbGluayk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4ODYtXHRcdGdvdG8gb3V0O1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4OC1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg4OTpcdG11dGV4X2xvY2soXHUwMDI2c29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE4OTA6XHRyZXQgPSBzb2NrX21hcF9wcm9nX3VwZGF0ZShtYXAsIHByb2csIE5VTEwsIFx1MDAyNnNvY2ttYXBfbGluay1cdTAwM2VsaW5rLCBhdHRhY2hfdHlwZSk7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE4OTE6XHRtdXRleF91bmxvY2soXHUwMDI2c29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4OTItXHRpZiAocmV0KSB7XG4tLVxubmV0L2NvcmUvc29ja19tYXAuYz0xOTQ5PXN0YXRpYyBzdHJ1Y3QgYnBmX2l0ZXJfcmVnIHNvY2tfbWFwX2l0ZXJfcmVnID0ge1xubmV0L2NvcmUvc29ja19tYXAuYzoxOTUwOlx0LnRhcmdldFx0XHRcdD0gXCYjMzQ7c29ja21hcFwmIzM0Oyxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk1MS1cdC5hdHRhY2hfdGFyZ2V0XHRcdD0gc29ja19tYXBfaXRlcl9hdHRhY2hfdGFyZ2V0LFxuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk1Ni1cdC5jdHhfYXJnX2luZm9cdFx0PSB7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NTc6XHRcdHsgb2Zmc2V0b2Yoc3RydWN0IGJwZl9pdGVyX19zb2NrbWFwLCBrZXkpLFxubmV0L2NvcmUvc29ja19tYXAuYy0xOTU4LVx0XHQgIFBUUl9UT19CVUYgfCBQVFJfTUFZQkVfTlVMTCB8IE1FTV9SRE9OTFkgfSxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTk1OTpcdFx0eyBvZmZzZXRvZihzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAsIHNrKSxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk2MC1cdFx0ICBQVFJfVE9fQlRGX0lEX09SX05VTEwgfSxcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE5NjMtXG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NjQ6c3RhdGljIGludCBfX2luaXQgYnBmX3NvY2ttYXBfaXRlcl9pbml0KHZvaWQpXG5uZXQvY29yZS9zb2NrX21hcC5jLTE5NjUte1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk2OS19XG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NzA6bGF0ZV9pbml0Y2FsbChicGZfc29ja21hcF9pdGVyX2luaXQpO1xuLS1cbm5ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmM9NDI3PXZvaWQgcmV1c2Vwb3J0X2RldGFjaF9zb2NrKHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jLTQ0MS1cdCAqXG5uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jOjQ0MjpcdCAqIE90aGVyIGJwZiBtYXAgdHlwZXMgdGhhdCB3b3JrIHdpdGggcmV1c2Vwb3J0LCBsaWtlIHNvY2ttYXAsXG5uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jLTQ0My1cdCAqIGRvbiYjMzk7dCBuZWVkIGFuIGV4cGxpY2l0IGNhbGxiYWNrIGZyb20gaGVyZS4gVGhleSBvdmVycmlkZSBza1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY3MDkKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQlBGIFNvY2ttYXAgQ29uZmlndXJhdGlvbiBBdWRpdCoqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgQlBGIHNvY2ttYXAgY29uZmlndXJhdGlvbi4gIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjb25maXJtIHRoZSBwcmVyZXF1aXNpdGVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlncyBhcmUgZW5hYmxlZC4gTGV0JiMzOTtzIHNlZSwgSSBiZWxpZXZlIGl0JiMzOTtzIGBDT05GSUdfQlBGX1NZU0NBTExgIGFuZCBgQ09ORklHX0NHUk9VUF9CUEZgIHRoYXQgYXJlIGNyaXRpY2FsIGZvciB0aGlzIGZ1bmN0aW9uYWxpdHkuIE9rYXksIGxldCYjMzk7cyBqdXN0IG1ha2UgZG91Ymx5IHN1cmUgYWJvdXQgaG93IHRoZSBgc29ja19tYXAub2AgbW9kdWxlIGlzIGJlaW5nIGJ1aWx0IGluIHJlbGF0aW9uIHRvIHRob3NlLiBRdWljayBjaGVjayBvZiB0aGUgYG5ldC9jb3JlL01ha2VmaWxlYCBpcyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuIEl0JiMzOTtzIHRoZSBNYWtlZmlsZSB0aGF0IG9yY2hlc3RyYXRlcyB0aGUgb2JqZWN0IGZpbGUgZ2VuZXJhdGlvbi4gSSYjMzk7bSBnb2luZyB0byBsb29rIGZvciBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gZGlyZWN0aXZlcyB0aGF0IG1pZ2h0IHRpZSB0aGUgaW5jbHVzaW9uIG9mIGBzb2NrX21hcC5vYCB0byBlaXRoZXIgb2YgdGhvc2UgY29uZmlnIG9wdGlvbnMuIEl0IGlzIGltcGVyYXRpdmUgdGhhdCBpdCYjMzk7cyBidWlsdCBvbmx5IHdoZW4gdGhlIG5lY2Vzc2FyeSBzdXBwb3J0IGlzIHByZXNlbnQsIG90aGVyd2lzZSwgd2UmIzM5O2xsIHNlZSBhIGJ1aWxkIGVycm9yLCBvciB3b3JzZSwgaW5jb3JyZWN0IGJlaGF2aW9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NvY2tfbWFwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2NvcmUvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2NvcmUvTWFrZWZpbGU9NDQ9b2JqLSQoQ09ORklHX05FVF9TT0NLX01TRykgJiM0Mzs9IHNrbXNnLm9cbm5ldC9jb3JlL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHNvY2tfbWFwLm9cbm5ldC9jb3JlL01ha2VmaWxlLTQ2LW9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJwZl9za19zdG9yYWdlLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAwNDowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTE2CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTc2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQlBGIFNvY2tldCBNYXAgUmVzdHJpY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBgQ09ORklHX0JQRl9TWVNDQUxMYC4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSByZXN0cmljdGluZyBjZXJ0YWluIEJQRiBwcm9ncmFtIHR5cGVzIOKAkyBzcGVjaWZpY2FsbHkgYEJQRl9QUk9HX1RZUEVfU0NIRURfQ0xTYCwgYEJQRl9QUk9HX1RZUEVfU0NIRURfQUNUYCwgYEJQRl9QUk9HX1RZUEVfWERQYCwgYW5kIGBCUEZfUFJPR19UWVBFX0ZMT1dfRElTU0VDVE9SYCDigJMgZnJvbSBiZWluZyBhYmxlIHRvIHVwZGF0ZSB0aGUgc29ja21hcC4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMuCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmluZCB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZC4gTG9va3MgbGlrZSBgbWF5X3VwZGF0ZV9zb2NrbWFwYCBpcyB0aGUgc3RhdGljIGZ1bmN0aW9uIGRvaW5nIHRoZSBoZWF2eSBsaWZ0aW5nLCBsb2NhdGVkIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBUaGlzIGlzIHRoZW4gY2FsbGVkIGJ5IGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YC4gTXkgaW1tZWRpYXRlIGZvY3VzIHdpbGwgYmUgb24gdGhlc2UgdHdvIGZ1bmN0aW9uczogZWl0aGVyIGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCBvciBgbWF5X3VwZGF0ZV9zb2NrbWFwYC4gTGV0JiMzOTtzIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIGBtYXlfdXBkYXRlX3NvY2ttYXBgIGlzIGlubGluZSBvciBub3QsIHNvIEkgY2FuIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgaXRzIGV4ZWN1dGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWF5X3VwZGF0ZV9zb2NrbWFwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz04NDc2PXN0YXRpYyBpbnQgY2hlY2tfZnVuY19hcmcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgdTMyIGFyZyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODc0NS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4NzQ2OnN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04NzQ3LXtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODc4Nj1zdGF0aWMgaW50IGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHkoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg2MS1cdFx0ICAgIGZ1bmNfaWQgIT0gQlBGX0ZVTkNfbWFwX2xvb2t1cF9lbGVtIFx1MDAyNlx1MDAyNlxua2VybmVsL2JwZi92ZXJpZmllci5jOjg4NjI6XHRcdCAgICAhbWF5X3VwZGF0ZV9zb2NrbWFwKGVudiwgZnVuY19pZCkpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg2My1cdFx0XHRnb3RvIGVycm9yO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04ODcwLVx0XHQgICAgZnVuY19pZCAhPSBCUEZfRlVOQ19tYXBfbG9va3VwX2VsZW0gXHUwMDI2XHUwMDI2XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6ODg3MTpcdFx0ICAgICFtYXlfdXBkYXRlX3NvY2ttYXAoZW52LCBmdW5jX2lkKSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04ODcyLVx0XHRcdGdvdG8gZXJyb3I7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc5MDIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUG90ZW50aWFsIEFyZWFzIGZvciBSZWZpbmVtZW50KioKCk9rYXksIHNvIEkmIzM5O20gaG9uaW5nIGluIG9uIHNvbWUga2V5IGFyZWFzIGluIHRoZSBjb2RlYmFzZS4gTXkgYXR0ZW50aW9uIGlzIGRyYXduIHRvIGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCDigJMgdGhhdCBzZWVtcyBsaWtlIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgaW52ZXN0aWdhdGlvbiwgYSBwb3RlbnRpYWwgZm9jYWwgc3ltYm9sLiBJIGFsc28gc2VlIGBtYXlfdXBkYXRlX3NvY2ttYXBgIGFzIGEgcmVsZXZhbnQgc3ltYm9sIHRvIGNvbnNpZGVyIGluIGNvbmp1bmN0aW9uLiBUbyBkZWVwZW4gbXkgdW5kZXJzdGFuZGluZyBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3Bwb3J0dW5pdGllcyB0byByZWZhY3RvciBvciBlbmhhbmNlIHRoZSBjb2RlYmFzZSwgSSBuZWVkIHRvIGNoZWNrIGhvdyBgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eWAgaXMgdXNlZCB3aXRoaW4gdGhlIHByb2plY3QuIEkmIzM5O2xsIHRyYWNlIGl0cyBjYWxscyB0byBzZWUgd2hlcmUgaXQgaXMgYmVpbmcgdXNlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODc4MD1ib29sIGJwZl9hbGxvd190YWlsX2NhbGxfaW5fc3VicHJvZ3Moc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODc4NS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4Nzg2OnN0YXRpYyBpbnQgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3ODctXHRcdFx0XHRcdHN0cnVjdCBicGZfbWFwICptYXAsIGludCBmdW5jX2lkKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMDI3MT1zdGF0aWMgaW50IGNoZWNrX2hlbHBlcl9jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA3MjYtXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTA3Mjc6XHRlcnIgPSBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5KGVudiwgbWV0YS5tYXAucHRyLCBmdW5jX2lkKTtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDcyOC1cdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzNzYKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIEJQRiBGdW5jdGlvbmFsaXR5IGFuZCBEZXBlbmRlbmNpZXMqKgoKT2theSwgc28gSSYjMzk7dmUgY29uZmlybWVkIHRoYXQgdGhlIGBjaGVja19oZWxwZXJfY2FsbGAgZnVuY3Rpb24gZG9lcyBpbmRlZWQgY2FsbCBgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eWAuIFRoYXQgbWFrZXMgYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgIGEga2V5IGFyZWEgdG8gemVybyBpbiBvbiBmb3IgZnVydGhlciBhbmFseXNpcywgYXMgZG9lcyBgbWF5X3VwZGF0ZV9zb2NrbWFwYC4gQm90aCBvZiB0aGVzZSBzZWVtIGxpa2UgZ29vZCBmb2N1cyBwb2ludHMgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgYWxsIHdvcmtzLgoKTm93LCBJJiMzOTtsbCBzd2l0Y2ggZ2VhcnMgYW5kIHRyeSB0byBpZGVudGlmeSBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9ucy4gT2J2aW91c2x5LCBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyBhIG1ham9yIHBsYXllciwgYnV0IHdoYXQgZWxzZT8gUmlnaHQsIGBDT05GSUdfTkVUYCBpcyBlc3NlbnRpYWwgZm9yIHNvY2ttYXAgZnVuY3Rpb25hbGl0eS4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjcnVjaWFsIGNvbmZpZyBmbGFncy4gTGV0JiMzOTtzIHNlZSB3aGF0IGVsc2UgbWlnaHQgYmUgaW1wb3J0YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAwNDowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX1NZU0NBTEwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvY29yZS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvY29yZS9NYWtlZmlsZT00ND1vYmotJChDT05GSUdfTkVUX1NPQ0tfTVNHKSAmIzQzOz0gc2ttc2cub1xubmV0L2NvcmUvTWFrZWZpbGU6NDU6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gc29ja19tYXAub1xubmV0L2NvcmUvTWFrZWZpbGU6NDY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gYnBmX3NrX3N0b3JhZ2Uub1xubmV0L2NvcmUvTWFrZWZpbGUtNDctb2JqLSQoQ09ORklHX09GKVx0JiM0Mzs9IG9mX25ldC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg3OTgKCQkJCQkJCW91dHB1dDogMTAxCgkJCQkJCQl0aG91Z2h0czogMTA2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJQRiBWZXJpZmllciBDaGFuZ2UqKgoKT2theSwgc28gYmFzZWQgb24gdGhpcyBpbmZvcm1hdGlvbiwgaXQgc2VlbXMgbGlrZSBmb2N1c2luZyBvbiBgQlBGX1NZU0NBTExgIGlzIHRoZSBrZXkuIExldCYjMzk7cyBicmVhayBpdCBkb3duIGluIG15IG1pbmQ6CgpUaGUgY29yZSBpZGVhIGlzIHRoaXM6IHRoaXMgcGF0Y2ggZnVuZGFtZW50YWxseSBhbHRlcnMgaG93IHRoZSBCUEYgdmVyaWZpZXIgd29ya3MsIHNwZWNpZmljYWxseSBhcm91bmQgd2hhdCBCUEYgcHJvZ3JhbSB0eXBlcyBhcmUgKmFsbG93ZWQqIHRvIG1vZGlmeSBzb2NrbWFwcy4gVGhpcyBtZWFucyBhIGNoYW5nZSBpbiBjb3JlIHZhbGlkYXRpb24gbG9naWMgZm9yIEJQRiBwcm9ncmFtcywgd2hpY2ggbWVhbnMgaXQgZGVtYW5kcyBmdXp6aW5nLiBJZiB0aGlzIHZhbGlkYXRpb24gaXMgY2hhbmdlZCwgdGhlcmUgaXMgdGhlIHBvdGVudGlhbCB0byBhbGxvdyBtb3JlIHByb2dyYW1zIHRocm91Z2ggdGhhbiBiZWZvcmUsIGFzIHdlbGwgYXMgdGhlIHBvdGVudGlhbCBmb3IgdW5mb3Jlc2VlbiBpbnRlcmFjdGlvbnMuCgpUaGUgYFdvcnRoRnV6emluZzogdHJ1ZWAgZmxhZyBjb25maXJtcyB0aGF0IHRoZSBjaGFuZ2UgaXMgc2lnbmlmaWNhbnQgZW5vdWdoIHRvIHdhcnJhbnQgZm9jdXNlZCBmdXp6aW5nIGVmZm9ydHMuIFRoZSBjaG9zZW4gZm9jdXMgc3ltYm9scywgYG1heV91cGRhdGVfc29ja21hcGAgYW5kIGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCwgYXJlIHByZWNpc2VseSB0aGUgcmlnaHQgdGFyZ2V0czsgdGhleSYjMzk7cmUgZGlyZWN0IGVudHJ5IHBvaW50cyBpbnRvIHRoZSBuZXcgdmFsaWRhdGlvbiBsb2dpYy4KCkFuZCwgb2YgY291cnNlLCBlbmFibGluZyB0aGUgYEJQRl9TWVNDQUxMYCBjb25maWd1cmF0aW9uIG1ha2VzIHBlcmZlY3Qgc2Vuc2UsIGFzIGl04oCZcyB0aGUgbmVjZXNzYXJ5IHRyaWdnZXIgZm9yIHRoaXMgY2hhbmdlLiBXZSBhcmUgb25seSBjaGFuZ2luZyB0aGUgYWJpbGl0eSBmb3IgcHJvZ3JhbXMgb2YgdGhpcyB0eXBlIHRvIHVwZGF0ZSBgc29ja21hcHNgLCBhbmQgdGhlIGBCUEZfU1lTQ0FMTGAgaXMgcHJlY2lzZWx5IGhvdyB0aGVzZSBwcm9ncmFtcyBhcmUgaW50cm9kdWNlZCBpbnRvIHRoZSBrZXJuZWwsIHNvIHRoaXMgbmVlZHMgdG8gYmUgY2hlY2tlZC4KCkluIGVzc2VuY2UsIHRoaXMgaXMgYSBjbGVhci1jdXQgY2FzZSB3aGVyZSBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uIHRvIGEgY29yZSBjb21wb25lbnQgKHRoZSBCUEYgdmVyaWZpZXIpIG5lZWRzIGV4dGVuc2l2ZSBmdXp6aW5nLiBJdCYjMzk7cyBhIHJpc2sgYXNzZXNzbWVudCBhbmQgdGVzdCBjYXNlIGFsbCByb2xsZWQgaW50byBvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21heV91cGRhdGVfc29ja21hcCYjMzQ7LAogICAgJiMzNDtjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHJlc3RyaWN0IHdoaWNoIEJQRiBwcm9ncmFtIHR5cGVzIGNhbiB1cGRhdGUgc29ja21hcHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIHByb2dyYW0gdmFsaWRhdGlvbiBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYXlfdXBkYXRlX3NvY2ttYXAmIzM0OywKICAgICYjMzQ7Y2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byByZXN0cmljdCB3aGljaCBCUEYgcHJvZ3JhbSB0eXBlcyBjYW4gdXBkYXRlIHNvY2ttYXBzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBwcm9ncmFtIHZhbGlkYXRpb24gYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDoyNi45MDYyODA3NDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTEzODA1MTgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1heV91cGRhdGVfc29ja21hcFwiLFxuICAgIFwiY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHJlc3RyaWN0IHdoaWNoIEJQRiBwcm9ncmFtIHR5cGVzIGNhbiB1cGRhdGUgc29ja21hcHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIHByb2dyYW0gdmFsaWRhdGlvbiBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6MjYuOTA2Mjg4NTgzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzM0MTEzOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNzFjNjE5YTM3Y2ExN2YyMTU2N2NiNTUxYzNmMGZjZTc2NWE1ZWEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVuIDIwIDA0OjA0OjI1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbmluZGV4IDdmYjg4ZTFjZDdjNGQwLi45NGQyMjU1MjFiNWExNiAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG4rKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5AQCAtODc2NiwxMSArODc2Niw3IEBAIHN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcXG4gXFx0XFx0XFx0cmV0dXJuIHRydWU7XFxuIFxcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUjpcXG4tXFx0Y2FzZSBCUEZfUFJPR19UWVBFX1NDSEVEX0NMUzpcXG4tXFx0Y2FzZSBCUEZfUFJPR19UWVBFX1NDSEVEX0FDVDpcXG4tXFx0Y2FzZSBCUEZfUFJPR19UWVBFX1hEUDpcXG4gXFx0Y2FzZSBCUEZfUFJPR19UWVBFX1NLX1JFVVNFUE9SVDpcXG4tXFx0Y2FzZSBCUEZfUFJPR19UWVBFX0ZMT1dfRElTU0VDVE9SOlxcbiBcXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0tfTE9PS1VQOlxcbiBcXHRcXHRyZXR1cm4gdHJ1ZTtcXG4gXFx0ZGVmYXVsdDpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6MjcuMzQwMzEyOTAzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODcwNDAxMTI3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1heV91cGRhdGVfc29ja21hcFwiLFxuICAgIFwiY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHJlc3RyaWN0IHdoaWNoIEJQRiBwcm9ncmFtIHR5cGVzIGNhbiB1cGRhdGUgc29ja21hcHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIHByb2dyYW0gdmFsaWRhdGlvbiBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNzFjNjE5YTM3Y2ExN2YyMTU2N2NiNTUxYzNmMGZjZTc2NWE1ZWEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdW4gMjAgMDQ6MDQ6MjUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDdmYjg4ZTFjZDdjNGQwLi45NGQyMjU1MjFiNWExNiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtODc2NiwxMSArODc2Niw3IEBAIHN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcbiBcdFx0XHRyZXR1cm4gdHJ1ZTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUjpcbi1cdGNhc2UgQlBGX1BST0dfVFlQRV9TQ0hFRF9DTFM6XG4tXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0NIRURfQUNUOlxuLVx0Y2FzZSBCUEZfUFJPR19UWVBFX1hEUDpcbiBcdGNhc2UgQlBGX1BST0dfVFlQRV9TS19SRVVTRVBPUlQ6XG4tXHRjYXNlIEJQRl9QUk9HX1RZUEVfRkxPV19ESVNTRUNUT1I6XG4gXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0tfTE9PS1VQOlxuIFx0XHRyZXR1cm4gdHJ1ZTtcbiBcdGRlZmF1bHQ6XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDoyNy4zNDAzMTQyOTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTM1NTMzNjA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU29ja21hcCBVcGRhdGUgUmVzdHJpY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBsb29rcyBsaWtlIHdlJ3ZlIG1hZGUgYSBjaGFuZ2UgdG8gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFNwZWNpZmljYWxseSwgdGhlIGBtYXlfdXBkYXRlX3NvY2ttYXBgIGZ1bmN0aW9uIGlzIHRoZSB0YXJnZXQuIEFoLCByaWdodC4gSXQncyB0aWdodGVuaW5nIHRoZSByZXN0cmljdGlvbnMgb24gd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgYXJlIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzb2NrbWFwLiBJdCBsb29rcyBsaWtlIGBCUEZfUFJPR19UWVBFX1NDSEVEX0NMU2AsIGBCUEZfUFJPR19UWVBFX1NDSEVEX0FDVGAsIGBCUEZfUFJPR19UWVBFX1hEUGAsIGFuZCBgQlBGX1BST0dfVFlQRV9GTE9XX0RJU1NFQ1RPUmAgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcGVybWlzc2libGUgbGlzdC4gVGhhdCdzIGludGVyZXN0aW5nLCBJIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSByZWFzb25pbmcgaGVyZS4gUGVyaGFwcyB0aGVyZSB3YXMgYSBzZWN1cml0eSBjb25jZXJuIG9yIHNvbWUgdW5leHBlY3RlZCBiZWhhdmlvciBpZGVudGlmaWVkLiBJJ2xsIG5lZWQgdG8gcmV2aWV3IHRoZSBjb250ZXh0IHN1cnJvdW5kaW5nIHRoaXMgY2hhbmdlIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBhbmQgdGhlIHJhdGlvbmFsZSBiZWhpbmQgdGhlc2UgcGFydGljdWxhciByZW1vdmFscy4gSSdsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhhdCBmdW5jdGlvbiBub3cgYW5kIHNlZSB3aGF0IGl0IHRlbGxzIG1lLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODkwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6MzEuMjc1ODQ5Njg4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNDUxMjk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1heV91cGRhdGVfc29ja21hcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jPTg0NzY9c3RhdGljIGludCBjaGVja19mdW5jX2FyZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCB1MzIgYXJnLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3NDUtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg3NDY6c3RhdGljIGJvb2wgbWF5X3VwZGF0ZV9zb2NrbWFwKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBmdW5jX2lkKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04NzQ3LXtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz04Nzg2PXN0YXRpYyBpbnQgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NjEtXFx0XFx0ICAgIGZ1bmNfaWQgIT0gQlBGX0ZVTkNfbWFwX2xvb2t1cF9lbGVtIFxcdTAwMjZcXHUwMDI2XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg4NjI6XFx0XFx0ICAgICFtYXlfdXBkYXRlX3NvY2ttYXAoZW52LCBmdW5jX2lkKSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg2My1cXHRcXHRcXHRnb3RvIGVycm9yO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NzAtXFx0XFx0ICAgIGZ1bmNfaWQgIT0gQlBGX0ZVTkNfbWFwX2xvb2t1cF9lbGVtIFxcdTAwMjZcXHUwMDI2XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg4NzE6XFx0XFx0ICAgICFtYXlfdXBkYXRlX3NvY2ttYXAoZW52LCBmdW5jX2lkKSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg3Mi1cXHRcXHRcXHRnb3RvIGVycm9yO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDozMS4zMjkzMDUwMTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjQyMjc0MTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOlxuXG4qKkJQRiBWZXJpZmllciBDaGFuZ2U6IFNjb3BlIGZvciBGdXp6aW5nKipcblxuQWxyaWdodCwgc28gdGhlIHBhdGNoIGxvb2tzIGxpa2UgaXQncyB0d2Vha2luZyBgbWF5X3VwZGF0ZV9zb2NrbWFwYCwgd2hpY2ggaXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGZyb20gYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgLiBUaGF0J3MgYSBrZXkgc3BvdOKAlGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEJQRiB2ZXJpZmllciB0aGF0J3MgZXNzZW50aWFsbHkgcmVzdHJpY3Rpbmcgd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgY2FuIGFjdHVhbGx5IG1vZGlmeSB0aGUgc29ja21hcC4gVGhlIHZlcmlmaWVyJ3MgYWx3YXlzIGEgcG9pbnQgb2YgaW50ZXJlc3QsIGFuZCAqdGhpcyogY2hhbmdlIHNjcmVhbXMgXCJmdXp6IG1lIVwiIGltbWVkaWF0ZWx5LiBBbnkgbW9kaWZpY2F0aW9uIHRvIHRoZSB2ZXJpZmljYXRpb24gcnVsZXMgb3BlbnMgdXAgcG90ZW50aWFsIGZvciBub3ZlbCBleHBsb2l0IHZlY3RvcnMsIHBhcnRpY3VsYXJseSBpbiBob3cgcHJvZ3JhbXMgaW50ZXJhY3Qgd2l0aCBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLlxuXG5Ob3csIGxldOKAmXMgZ2V0IHNwZWNpZmljLiBJIG5lZWQgdG8gbmFpbCBkb3duIHRoZSByZWxldmFudCBjb25maWcgb3B0aW9ucyBzbyBJIGNhbiB0YXJnZXQgdGhpcyBwcm9wZXJseS4gV2UncmUgZ2VuZXJhbGx5IHRhbGtpbmcgYWJvdXQgQlBGIGZlYXR1cmVzIGhlcmUsIHNvIGBDT05GSUdfQlBGX1NZU0NBTExgIGFuZCBgQ09ORklHX0NHUk9VUF9CUEZgIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIGdldHRpbmcgc29ja21hcCB1cCBhbmQgcnVubmluZy4gQnV0IEkgc2hvdWxkIGNvbmZpcm0gd2hldGhlciB0aGVyZSdzIGEgbW9yZSB0YXJnZXRlZCBvcHRpb24sIHBlcmhhcHMgaW4gYG5ldC9jb3JlL3NvY2tfbWFwLmNgIG9yIGEgc2ltaWxhciBmaWxlLiBJdCdzIGEgZ29vZCBpZGVhIHRvIGlkZW50aWZ5IGFsbCB0aGUgZGVwZW5kZW5jaWVzLCBhcyB0aGF0IGNhbiBnaXZlIGEgbW9yZSByZWxpYWJsZSBwbGF0Zm9ybSBmb3IgZXhwZXJpbWVudGF0aW9uLiBVbmRlcnN0YW5kaW5nIHRoZSBwcmVyZXF1aXNpdGVzIHdpbGwgaGVscCBtZSBjcmVhdGUgYSByb2J1c3QgdGVzdCBzZXR1cC4gSSdsbCBuZWVkIHRvIGtub3cgdGhlIGNvbXBsZXRlIGNvbmZpZ3VyYXRpb24gdG8gdHJpZ2dlciB0aGUgbmV3IGJlaGF2aW9yIGFuZCBjcmFmdCBlZmZlY3RpdmUgZnV6emluZyBoYXJuZXNzZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MDIsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6MzUuNTcxNTgxNDA0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0OTc4MjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNvY2ttYXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9jb3JlL2ZpbHRlci5jPTE2MTE9aW50IHNrX3JldXNlcG9ydF9hdHRhY2hfYnBmKHUzMiB1ZmQsIHN0cnVjdCBzb2NrICpzaylcXG4tLVxcbm5ldC9jb3JlL2ZpbHRlci5jLTE2MjYtXFx0XFx0LyogTGlrZSBvdGhlciBub24gQlBGX1BST0dfVFlQRV9TT0NLRVRfRklMVEVSXFxubmV0L2NvcmUvZmlsdGVyLmM6MTYyNzpcXHRcXHQgKiBicGYgcHJvZyAoZS5nLiBzb2NrbWFwKS4gIEl0IGRlcGVuZHMgb24gdGhlXFxubmV0L2NvcmUvZmlsdGVyLmMtMTYyOC1cXHRcXHQgKiBsaW1pdGF0aW9uIGltcG9zZWQgYnkgYnBmX3Byb2dfbG9hZCgpLlxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xNz1zdHJ1Y3QgYnBmX3N0YWIge1xcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0zMS0gKi9cXG5uZXQvY29yZS9zb2NrX21hcC5jOjMyOnN0YXRpYyBERUZJTkVfTVVURVgoc29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0zMy1cXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM9Njg9aW50IHNvY2tfbWFwX2dldF9mcm9tX2ZkKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTc5LVxcdFxcdHJldHVybiBQVFJfRVJSKG1hcCk7XFxubmV0L2NvcmUvc29ja19tYXAuYzo4MDpcXHRtdXRleF9sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTgxLVxcdHJldCA9IHNvY2tfbWFwX3Byb2dfdXBkYXRlKG1hcCwgcHJvZywgTlVMTCwgTlVMTCwgYXR0ci1cXHUwMDNlYXR0YWNoX3R5cGUpO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6ODI6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTgzLVxcdHJldHVybiByZXQ7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jPTg2PWludCBzb2NrX21hcF9wcm9nX2RldGFjaChjb25zdCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgZW51bSBicGZfcHJvZ190eXBlIHB0eXBlKVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xMDgtXFxubmV0L2NvcmUvc29ja19tYXAuYzoxMDk6XFx0bXV0ZXhfbG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xMTAtXFx0cmV0ID0gc29ja19tYXBfcHJvZ191cGRhdGUobWFwLCBOVUxMLCBwcm9nLCBOVUxMLCBhdHRyLVxcdTAwM2VhdHRhY2hfdHlwZSk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxMTE6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTExMi1wdXRfcHJvZzpcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM9NzA0PXN0cnVjdCBzb2NrX21hcF9zZXFfaW5mbyB7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTcwOS1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjcxMDpzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAge1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtNzExLVxcdF9fYnBmX21kX3B0cihzdHJ1Y3QgYnBmX2l0ZXJfbWV0YSAqLCBtZXRhKTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtNzE2LVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6NzE3OkRFRklORV9CUEZfSVRFUl9GVU5DKHNvY2ttYXAsIHN0cnVjdCBicGZfaXRlcl9tZXRhICptZXRhLFxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtNzE4LVxcdFxcdCAgICAgc3RydWN0IGJwZl9tYXAgKm1hcCwgdm9pZCAqa2V5LFxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz03NTY9c3RhdGljIGludCBzb2NrX21hcF9zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtNzU5LVxcdHN0cnVjdCBzb2NrX21hcF9zZXFfaW5mbyAqaW5mbyA9IHNlcS1cXHUwMDNlcHJpdmF0ZTtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjc2MDpcXHRzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAgY3R4ID0ge307XFxubmV0L2NvcmUvc29ja19tYXAuYy03NjEtXFx0c3RydWN0IGJwZl9pdGVyX21ldGEgbWV0YTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM9MTM2OD1zdGF0aWMgaW50IHNvY2tfaGFzaF9zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTM3MS1cXHRzdHJ1Y3Qgc29ja19oYXNoX3NlcV9pbmZvICppbmZvID0gc2VxLVxcdTAwM2Vwcml2YXRlO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTM3MjpcXHRzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAgY3R4ID0ge307XFxubmV0L2NvcmUvc29ja19tYXAuYy0xMzczLVxcdHN0cnVjdCBicGZfc2h0YWJfZWxlbSAqZWxlbSA9IHY7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jPTE3MTg9RVhQT1JUX1NZTUJPTF9HUEwoc29ja19tYXBfY2xvc2UpO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTcxOS1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3MjA6c3RydWN0IHNvY2ttYXBfbGluayB7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzIxLVxcdHN0cnVjdCBicGZfbGluayBsaW5rO1xcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xNzI1PXN0YXRpYyB2b2lkIHNvY2tfbWFwX2xpbmtfcmVsZWFzZShzdHJ1Y3QgYnBmX2xpbmsgKmxpbmspXFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzI2LXtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mjc6XFx0c3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rID0gY29udGFpbmVyX29mKGxpbmssIHN0cnVjdCBzb2NrbWFwX2xpbmssIGxpbmspO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTcyOC1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mjk6XFx0bXV0ZXhfbG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxNzMwOlxcdGlmICghc29ja21hcF9saW5rLVxcdTAwM2VtYXApXFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzMxLVxcdFxcdGdvdG8gb3V0O1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTczMi1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3MzM6XFx0V0FSTl9PTl9PTkNFKHNvY2tfbWFwX3Byb2dfdXBkYXRlKHNvY2ttYXBfbGluay1cXHUwMDNlbWFwLCBOVUxMLCBsaW5rLVxcdTAwM2Vwcm9nLCBsaW5rLFxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTczNC1cXHRcXHRcXHRcXHRcXHQgIGxpbmstXFx1MDAzZWF0dGFjaF90eXBlKSk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzM1LVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTczNjpcXHRicGZfbWFwX3B1dF93aXRoX3VyZWYoc29ja21hcF9saW5rLVxcdTAwM2VtYXApO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTczNzpcXHRzb2NrbWFwX2xpbmstXFx1MDAzZW1hcCA9IE5VTEw7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzM4LW91dDpcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mzk6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE3NDAtfVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xNzU3PXN0YXRpYyBpbnQgc29ja19tYXBfbGlua191cGRhdGVfcHJvZyhzdHJ1Y3QgYnBmX2xpbmsgKmxpbmssXFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTE3NjAte1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTc2MTpcXHRjb25zdCBzdHJ1Y3Qgc29ja21hcF9saW5rICpzb2NrbWFwX2xpbmsgPSBjb250YWluZXJfb2YobGluaywgc3RydWN0IHNvY2ttYXBfbGluaywgbGluayk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzYyLVxcdHN0cnVjdCBicGZfcHJvZyAqKnBwcm9nLCAqb2xkX2xpbmtfcHJvZztcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc2NS1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3NjY6XFx0bXV0ZXhfbG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzY3LVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzc4LVxcdH1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Nzk6XFx0aWYgKCFzb2NrbWFwX2xpbmstXFx1MDAzZW1hcCkge1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc4MC1cXHRcXHRyZXQgPSAtRU5PTElOSztcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc4My1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3ODQ6XFx0cmV0ID0gc29ja19tYXBfcHJvZ19saW5rX2xvb2t1cChzb2NrbWFwX2xpbmstXFx1MDAzZW1hcCwgXFx1MDAyNnBwcm9nLCBcXHUwMDI2cGxpbmssXFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzg1LVxcdFxcdFxcdFxcdFxcdGxpbmstXFx1MDAzZWF0dGFjaF90eXBlKTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTgwNy1vdXQ6XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODA4OlxcdG11dGV4X3VubG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xODA5LVxcdHJldHVybiByZXQ7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MTEtXFxubmV0L2NvcmUvc29ja19tYXAuYzoxODEyOnN0YXRpYyB1MzIgc29ja19tYXBfbGlua19nZXRfbWFwX2lkKGNvbnN0IHN0cnVjdCBzb2NrbWFwX2xpbmsgKnNvY2ttYXBfbGluaylcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MTMte1xcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xODE1LVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgxNjpcXHRtdXRleF9sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTc6XFx0aWYgKHNvY2ttYXBfbGluay1cXHUwMDNlbWFwKVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgxODpcXHRcXHRtYXBfaWQgPSBzb2NrbWFwX2xpbmstXFx1MDAzZW1hcC1cXHUwMDNlaWQ7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODE5OlxcdG11dGV4X3VubG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xODIwLVxcdHJldHVybiBtYXBfaWQ7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jPTE4MjM9c3RhdGljIGludCBzb2NrX21hcF9saW5rX2ZpbGxfaW5mbyhjb25zdCBzdHJ1Y3QgYnBmX2xpbmsgKmxpbmssXFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MjUte1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgyNjpcXHRjb25zdCBzdHJ1Y3Qgc29ja21hcF9saW5rICpzb2NrbWFwX2xpbmsgPSBjb250YWluZXJfb2YobGluaywgc3RydWN0IHNvY2ttYXBfbGluaywgbGluayk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODI3OlxcdHUzMiBtYXBfaWQgPSBzb2NrX21hcF9saW5rX2dldF9tYXBfaWQoc29ja21hcF9saW5rKTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MjgtXFxubmV0L2NvcmUvc29ja19tYXAuYzoxODI5OlxcdGluZm8tXFx1MDAzZXNvY2ttYXAubWFwX2lkID0gbWFwX2lkO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzMDpcXHRpbmZvLVxcdTAwM2Vzb2NrbWFwLmF0dGFjaF90eXBlID0gbGluay1cXHUwMDNlYXR0YWNoX3R5cGU7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xODMxLVxcdHJldHVybiAwO1xcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xODM0PXN0YXRpYyB2b2lkIHNvY2tfbWFwX2xpbmtfc2hvd19mZGluZm8oY29uc3Qgc3RydWN0IGJwZl9saW5rICpsaW5rLFxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xODM2LXtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4Mzc6XFx0Y29uc3Qgc3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rID0gY29udGFpbmVyX29mKGxpbmssIHN0cnVjdCBzb2NrbWFwX2xpbmssIGxpbmspO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzODpcXHR1MzIgbWFwX2lkID0gc29ja19tYXBfbGlua19nZXRfbWFwX2lkKHNvY2ttYXBfbGluayk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xODM5LVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xODUzPWludCBzb2NrX21hcF9saW5rX2NyZWF0ZShjb25zdCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xODU1LVxcdHN0cnVjdCBicGZfbGlua19wcmltZXIgbGlua19wcmltZXI7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODU2OlxcdHN0cnVjdCBzb2NrbWFwX2xpbmsgKnNvY2ttYXBfbGluaztcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4NTctXFx0ZW51bSBicGZfYXR0YWNoX3R5cGUgYXR0YWNoX3R5cGU7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4NzEtXFxubmV0L2NvcmUvc29ja19tYXAuYzoxODcyOlxcdHNvY2ttYXBfbGluayA9IGt6YWxsb2Nfb2JqKCpzb2NrbWFwX2xpbmssIEdGUF9VU0VSKTtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4NzM6XFx0aWYgKCFzb2NrbWFwX2xpbmspIHtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4NzQtXFx0XFx0cmV0ID0gLUVOT01FTTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg3OC1cXHRhdHRhY2hfdHlwZSA9IGF0dHItXFx1MDAzZWxpbmtfY3JlYXRlLmF0dGFjaF90eXBlO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg3OTpcXHRicGZfbGlua19pbml0KFxcdTAwMjZzb2NrbWFwX2xpbmstXFx1MDAzZWxpbmssIEJQRl9MSU5LX1RZUEVfU09DS01BUCwgXFx1MDAyNnNvY2tfbWFwX2xpbmtfb3BzLCBwcm9nLFxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4MC1cXHRcXHQgICAgICBhdHRhY2hfdHlwZSk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODgxOlxcdHNvY2ttYXBfbGluay1cXHUwMDNlbWFwID0gbWFwO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4Mi1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4ODM6XFx0cmV0ID0gYnBmX2xpbmtfcHJpbWUoXFx1MDAyNnNvY2ttYXBfbGluay1cXHUwMDNlbGluaywgXFx1MDAyNmxpbmtfcHJpbWVyKTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4ODQtXFx0aWYgKHJldCkge1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg4NTpcXHRcXHRrZnJlZShzb2NrbWFwX2xpbmspO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4Ni1cXHRcXHRnb3RvIG91dDtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4OC1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4ODk6XFx0bXV0ZXhfbG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODkwOlxcdHJldCA9IHNvY2tfbWFwX3Byb2dfdXBkYXRlKG1hcCwgcHJvZywgTlVMTCwgXFx1MDAyNnNvY2ttYXBfbGluay1cXHUwMDNlbGluaywgYXR0YWNoX3R5cGUpO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg5MTpcXHRtdXRleF91bmxvY2soXFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg5Mi1cXHRpZiAocmV0KSB7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jPTE5NDk9c3RhdGljIHN0cnVjdCBicGZfaXRlcl9yZWcgc29ja19tYXBfaXRlcl9yZWcgPSB7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxOTUwOlxcdC50YXJnZXRcXHRcXHRcXHQ9IFxcXCJzb2NrbWFwXFxcIixcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE5NTEtXFx0LmF0dGFjaF90YXJnZXRcXHRcXHQ9IHNvY2tfbWFwX2l0ZXJfYXR0YWNoX3RhcmdldCxcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk1Ni1cXHQuY3R4X2FyZ19pbmZvXFx0XFx0PSB7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxOTU3OlxcdFxcdHsgb2Zmc2V0b2Yoc3RydWN0IGJwZl9pdGVyX19zb2NrbWFwLCBrZXkpLFxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk1OC1cXHRcXHQgIFBUUl9UT19CVUYgfCBQVFJfTUFZQkVfTlVMTCB8IE1FTV9SRE9OTFkgfSxcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NTk6XFx0XFx0eyBvZmZzZXRvZihzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAsIHNrKSxcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE5NjAtXFx0XFx0ICBQVFJfVE9fQlRGX0lEX09SX05VTEwgfSxcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk2My1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NjQ6c3RhdGljIGludCBfX2luaXQgYnBmX3NvY2ttYXBfaXRlcl9pbml0KHZvaWQpXFxubmV0L2NvcmUvc29ja19tYXAuYy0xOTY1LXtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk2OS19XFxubmV0L2NvcmUvc29ja19tYXAuYzoxOTcwOmxhdGVfaW5pdGNhbGwoYnBmX3NvY2ttYXBfaXRlcl9pbml0KTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmM9NDI3PXZvaWQgcmV1c2Vwb3J0X2RldGFjaF9zb2NrKHN0cnVjdCBzb2NrICpzaylcXG4tLVxcbm5ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmMtNDQxLVxcdCAqXFxubmV0L2NvcmUvc29ja19yZXVzZXBvcnQuYzo0NDI6XFx0ICogT3RoZXIgYnBmIG1hcCB0eXBlcyB0aGF0IHdvcmsgd2l0aCByZXVzZXBvcnQsIGxpa2Ugc29ja21hcCxcXG5uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jLTQ0My1cXHQgKiBkb24ndCBuZWVkIGFuIGV4cGxpY2l0IGNhbGxiYWNrIGZyb20gaGVyZS4gVGhleSBvdmVycmlkZSBza1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDozNS42MjY1NjM4MTNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjc2NzI0NDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipCUEYgU29ja21hcCBDb25maWd1cmF0aW9uIEF1ZGl0KipcblxuQWxyaWdodCwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgQlBGIHNvY2ttYXAgY29uZmlndXJhdGlvbi4gIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjb25maXJtIHRoZSBwcmVyZXF1aXNpdGVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlncyBhcmUgZW5hYmxlZC4gTGV0J3Mgc2VlLCBJIGJlbGlldmUgaXQncyBgQ09ORklHX0JQRl9TWVNDQUxMYCBhbmQgYENPTkZJR19DR1JPVVBfQlBGYCB0aGF0IGFyZSBjcml0aWNhbCBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5LiBPa2F5LCBsZXQncyBqdXN0IG1ha2UgZG91Ymx5IHN1cmUgYWJvdXQgaG93IHRoZSBgc29ja19tYXAub2AgbW9kdWxlIGlzIGJlaW5nIGJ1aWx0IGluIHJlbGF0aW9uIHRvIHRob3NlLiBRdWljayBjaGVjayBvZiB0aGUgYG5ldC9jb3JlL01ha2VmaWxlYCBpcyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuIEl0J3MgdGhlIE1ha2VmaWxlIHRoYXQgb3JjaGVzdHJhdGVzIHRoZSBvYmplY3QgZmlsZSBnZW5lcmF0aW9uLiBJJ20gZ29pbmcgdG8gbG9vayBmb3IgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGRpcmVjdGl2ZXMgdGhhdCBtaWdodCB0aWUgdGhlIGluY2x1c2lvbiBvZiBgc29ja19tYXAub2AgdG8gZWl0aGVyIG9mIHRob3NlIGNvbmZpZyBvcHRpb25zLiBJdCBpcyBpbXBlcmF0aXZlIHRoYXQgaXQncyBidWlsdCBvbmx5IHdoZW4gdGhlIG5lY2Vzc2FyeSBzdXBwb3J0IGlzIHByZXNlbnQsIG90aGVyd2lzZSwgd2UnbGwgc2VlIGEgYnVpbGQgZXJyb3IsIG9yIHdvcnNlLCBpbmNvcnJlY3QgYmVoYXZpb3IuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3MDksIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDozOS4zMDMyOTAzNTRaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2MjIxNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic29ja19tYXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvTWFrZWZpbGU9NDQ9b2JqLSQoQ09ORklHX05FVF9TT0NLX01TRykgKz0gc2ttc2cub1xcbm5ldC9jb3JlL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gc29ja19tYXAub1xcbm5ldC9jb3JlL01ha2VmaWxlLTQ2LW9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnBmX3NrX3N0b3JhZ2Uub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDozOS4zNTc5MTc0NTNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODEwMDQ5NDc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQlBGIFNvY2tldCBNYXAgUmVzdHJpY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGRlYWxpbmcgd2l0aCBgQ09ORklHX0JQRl9TWVNDQUxMYC4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSByZXN0cmljdGluZyBjZXJ0YWluIEJQRiBwcm9ncmFtIHR5cGVzIOKAkyBzcGVjaWZpY2FsbHkgYEJQRl9QUk9HX1RZUEVfU0NIRURfQ0xTYCwgYEJQRl9QUk9HX1RZUEVfU0NIRURfQUNUYCwgYEJQRl9QUk9HX1RZUEVfWERQYCwgYW5kIGBCUEZfUFJPR19UWVBFX0ZMT1dfRElTU0VDVE9SYCDigJMgZnJvbSBiZWluZyBhYmxlIHRvIHVwZGF0ZSB0aGUgc29ja21hcC4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaW5kIHRoZSBrZXkgZnVuY3Rpb25zIGludm9sdmVkLiBMb29rcyBsaWtlIGBtYXlfdXBkYXRlX3NvY2ttYXBgIGlzIHRoZSBzdGF0aWMgZnVuY3Rpb24gZG9pbmcgdGhlIGhlYXZ5IGxpZnRpbmcsIGxvY2F0ZWQgaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFRoaXMgaXMgdGhlbiBjYWxsZWQgYnkgYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgLiBNeSBpbW1lZGlhdGUgZm9jdXMgd2lsbCBiZSBvbiB0aGVzZSB0d28gZnVuY3Rpb25zOiBlaXRoZXIgYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgIG9yIGBtYXlfdXBkYXRlX3NvY2ttYXBgLiBMZXQncyBxdWlja2x5IGRldGVybWluZSBpZiBgbWF5X3VwZGF0ZV9zb2NrbWFwYCBpcyBpbmxpbmUgb3Igbm90LCBzbyBJIGNhbiB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IG9mIGl0cyBleGVjdXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxMTYsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6NDQuMTY3OTY4ODM3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODA2NzUyOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYXlfdXBkYXRlX3NvY2ttYXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuYz04NDc2PXN0YXRpYyBpbnQgY2hlY2tfZnVuY19hcmcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgdTMyIGFyZyxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04NzQ1LVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4NzQ2OnN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODc0Ny17XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODc4Nj1zdGF0aWMgaW50IGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHkoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04ODYxLVxcdFxcdCAgICBmdW5jX2lkICE9IEJQRl9GVU5DX21hcF9sb29rdXBfZWxlbSBcXHUwMDI2XFx1MDAyNlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4ODYyOlxcdFxcdCAgICAhbWF5X3VwZGF0ZV9zb2NrbWFwKGVudiwgZnVuY19pZCkpXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NjMtXFx0XFx0XFx0Z290byBlcnJvcjtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04ODcwLVxcdFxcdCAgICBmdW5jX2lkICE9IEJQRl9GVU5DX21hcF9sb29rdXBfZWxlbSBcXHUwMDI2XFx1MDAyNlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4ODcxOlxcdFxcdCAgICAhbWF5X3VwZGF0ZV9zb2NrbWFwKGVudiwgZnVuY19pZCkpXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NzItXFx0XFx0XFx0Z290byBlcnJvcjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6NDQuMjI2MDM5NjM1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNTAzNDU1NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBBcmVhcyBmb3IgUmVmaW5lbWVudCoqXG5cbk9rYXksIHNvIEknbSBob25pbmcgaW4gb24gc29tZSBrZXkgYXJlYXMgaW4gdGhlIGNvZGViYXNlLiBNeSBhdHRlbnRpb24gaXMgZHJhd24gdG8gYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgIOKAkyB0aGF0IHNlZW1zIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBpbnZlc3RpZ2F0aW9uLCBhIHBvdGVudGlhbCBmb2NhbCBzeW1ib2wuIEkgYWxzbyBzZWUgYG1heV91cGRhdGVfc29ja21hcGAgYXMgYSByZWxldmFudCBzeW1ib2wgdG8gY29uc2lkZXIgaW4gY29uanVuY3Rpb24uIFRvIGRlZXBlbiBteSB1bmRlcnN0YW5kaW5nIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBvcHBvcnR1bml0aWVzIHRvIHJlZmFjdG9yIG9yIGVuaGFuY2UgdGhlIGNvZGViYXNlLCBJIG5lZWQgdG8gY2hlY2sgaG93IGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCBpcyB1c2VkIHdpdGhpbiB0aGUgcHJvamVjdC4gSSdsbCB0cmFjZSBpdHMgY2FsbHMgdG8gc2VlIHdoZXJlIGl0IGlzIGJlaW5nIHVzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc5MDIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDo0Ny4zNzYzODc5MTlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzODA4OTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuYz04NzgwPWJvb2wgYnBmX2FsbG93X3RhaWxfY2FsbF9pbl9zdWJwcm9ncyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3ODUtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg3ODY6c3RhdGljIGludCBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3ODctXFx0XFx0XFx0XFx0XFx0c3RydWN0IGJwZl9tYXAgKm1hcCwgaW50IGZ1bmNfaWQpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTAyNzE9c3RhdGljIGludCBjaGVja19oZWxwZXJfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA3MjYtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjEwNzI3OlxcdGVyciA9IGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHkoZW52LCBtZXRhLm1hcC5wdHIsIGZ1bmNfaWQpO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDcyOC1cXHRpZiAoZXJyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDo0Ny40MzAyMDQ2NzhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkwODUwOTg1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgQlBGIEZ1bmN0aW9uYWxpdHkgYW5kIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIEkndmUgY29uZmlybWVkIHRoYXQgdGhlIGBjaGVja19oZWxwZXJfY2FsbGAgZnVuY3Rpb24gZG9lcyBpbmRlZWQgY2FsbCBgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eWAuIFRoYXQgbWFrZXMgYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgIGEga2V5IGFyZWEgdG8gemVybyBpbiBvbiBmb3IgZnVydGhlciBhbmFseXNpcywgYXMgZG9lcyBgbWF5X3VwZGF0ZV9zb2NrbWFwYC4gQm90aCBvZiB0aGVzZSBzZWVtIGxpa2UgZ29vZCBmb2N1cyBwb2ludHMgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgYWxsIHdvcmtzLlxuXG5Ob3csIEknbGwgc3dpdGNoIGdlYXJzIGFuZCB0cnkgdG8gaWRlbnRpZnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIE9idmlvdXNseSwgYENPTkZJR19CUEZfU1lTQ0FMTGAgaXMgYSBtYWpvciBwbGF5ZXIsIGJ1dCB3aGF0IGVsc2U/IFJpZ2h0LCBgQ09ORklHX05FVGAgaXMgZXNzZW50aWFsIGZvciBzb2NrbWFwIGZ1bmN0aW9uYWxpdHkuIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjcnVjaWFsIGNvbmZpZyBmbGFncy4gTGV0J3Mgc2VlIHdoYXQgZWxzZSBtaWdodCBiZSBpbXBvcnRhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgzNzYsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6NTEuMzM4NzE2ODk0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTI2MDIxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfQlBGX1NZU0NBTExcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvTWFrZWZpbGU9NDQ9b2JqLSQoQ09ORklHX05FVF9TT0NLX01TRykgKz0gc2ttc2cub1xcbm5ldC9jb3JlL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gc29ja19tYXAub1xcbm5ldC9jb3JlL01ha2VmaWxlOjQ2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnBmX3NrX3N0b3JhZ2Uub1xcbm5ldC9jb3JlL01ha2VmaWxlLTQ3LW9iai0kKENPTkZJR19PRilcXHQrPSBvZl9uZXQub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDo1MS4zOTM5ODI4MzJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU3NTQ3NTI5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCUEYgVmVyaWZpZXIgQ2hhbmdlKipcblxuT2theSwgc28gYmFzZWQgb24gdGhpcyBpbmZvcm1hdGlvbiwgaXQgc2VlbXMgbGlrZSBmb2N1c2luZyBvbiBgQlBGX1NZU0NBTExgIGlzIHRoZSBrZXkuIExldCdzIGJyZWFrIGl0IGRvd24gaW4gbXkgbWluZDpcblxuVGhlIGNvcmUgaWRlYSBpcyB0aGlzOiB0aGlzIHBhdGNoIGZ1bmRhbWVudGFsbHkgYWx0ZXJzIGhvdyB0aGUgQlBGIHZlcmlmaWVyIHdvcmtzLCBzcGVjaWZpY2FsbHkgYXJvdW5kIHdoYXQgQlBGIHByb2dyYW0gdHlwZXMgYXJlICphbGxvd2VkKiB0byBtb2RpZnkgc29ja21hcHMuIFRoaXMgbWVhbnMgYSBjaGFuZ2UgaW4gY29yZSB2YWxpZGF0aW9uIGxvZ2ljIGZvciBCUEYgcHJvZ3JhbXMsIHdoaWNoIG1lYW5zIGl0IGRlbWFuZHMgZnV6emluZy4gSWYgdGhpcyB2YWxpZGF0aW9uIGlzIGNoYW5nZWQsIHRoZXJlIGlzIHRoZSBwb3RlbnRpYWwgdG8gYWxsb3cgbW9yZSBwcm9ncmFtcyB0aHJvdWdoIHRoYW4gYmVmb3JlLCBhcyB3ZWxsIGFzIHRoZSBwb3RlbnRpYWwgZm9yIHVuZm9yZXNlZW4gaW50ZXJhY3Rpb25zLlxuXG5UaGUgYFdvcnRoRnV6emluZzogdHJ1ZWAgZmxhZyBjb25maXJtcyB0aGF0IHRoZSBjaGFuZ2UgaXMgc2lnbmlmaWNhbnQgZW5vdWdoIHRvIHdhcnJhbnQgZm9jdXNlZCBmdXp6aW5nIGVmZm9ydHMuIFRoZSBjaG9zZW4gZm9jdXMgc3ltYm9scywgYG1heV91cGRhdGVfc29ja21hcGAgYW5kIGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCwgYXJlIHByZWNpc2VseSB0aGUgcmlnaHQgdGFyZ2V0czsgdGhleSdyZSBkaXJlY3QgZW50cnkgcG9pbnRzIGludG8gdGhlIG5ldyB2YWxpZGF0aW9uIGxvZ2ljLlxuXG5BbmQsIG9mIGNvdXJzZSwgZW5hYmxpbmcgdGhlIGBCUEZfU1lTQ0FMTGAgY29uZmlndXJhdGlvbiBtYWtlcyBwZXJmZWN0IHNlbnNlLCBhcyBpdOKAmXMgdGhlIG5lY2Vzc2FyeSB0cmlnZ2VyIGZvciB0aGlzIGNoYW5nZS4gV2UgYXJlIG9ubHkgY2hhbmdpbmcgdGhlIGFiaWxpdHkgZm9yIHByb2dyYW1zIG9mIHRoaXMgdHlwZSB0byB1cGRhdGUgYHNvY2ttYXBzYCwgYW5kIHRoZSBgQlBGX1NZU0NBTExgIGlzIHByZWNpc2VseSBob3cgdGhlc2UgcHJvZ3JhbXMgYXJlIGludHJvZHVjZWQgaW50byB0aGUga2VybmVsLCBzbyB0aGlzIG5lZWRzIHRvIGJlIGNoZWNrZWQuXG5cbkluIGVzc2VuY2UsIHRoaXMgaXMgYSBjbGVhci1jdXQgY2FzZSB3aGVyZSBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uIHRvIGEgY29yZSBjb21wb25lbnQgKHRoZSBCUEYgdmVyaWZpZXIpIG5lZWRzIGV4dGVuc2l2ZSBmdXp6aW5nLiBJdCdzIGEgcmlzayBhc3Nlc3NtZW50IGFuZCB0ZXN0IGNhc2UgYWxsIHJvbGxlZCBpbnRvIG9uZS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODc5OCwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6NTUuOTY5NDYwNTIyWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ4NjA1ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWF5X3VwZGF0ZV9zb2NrbWFwXCIsXG4gICAgXCJjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcmVzdHJpY3Qgd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgY2FuIHVwZGF0ZSBzb2NrbWFwcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgcHJvZ3JhbSB2YWxpZGF0aW9uIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWF5X3VwZGF0ZV9zb2NrbWFwXCIsXG4gICAgXCJjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcmVzdHJpY3Qgd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgY2FuIHVwZGF0ZSBzb2NrbWFwcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgcHJvZ3JhbSB2YWxpZGF0aW9uIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-20 03:55:48 +0000 UTC FinishedAt: 2026-06-20 04:04:57 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "b85966adbf5de0668a815c6e3527f87e0c387fb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git", "commit_hash": "b85966adbf5de0668a815c6e3527f87e0c387fb4", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BPF_SYSCALL" ], "series_id": "4f293a5d-440d-4dcb-9b30-118dbe41e956" }, "track": "KASAN", "fuzz": { "focus": [ "bpf", "net" ], "focus_symbols": [ "may_update_sockmap", "check_map_func_compatibility" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db", "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+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JQRl9TWVNDQUxMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bWF5X3VwZGF0ZV9zb2NrbWFwJiMzNDssCiAgICAmIzM0O2NoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcmVzdHJpY3Qgd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgY2FuIHVwZGF0ZSBzb2NrbWFwcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgcHJvZ3JhbSB2YWxpZGF0aW9uIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYTcxYzYxOWEzN2NhMTdmMjE1NjdjYjU1MWMzZjBmY2U3NjVhNWVhMlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVuIDIwIDA0OjA0OjI1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuaW5kZXggN2ZiODhlMWNkN2M0ZDAuLjk0ZDIyNTUyMWI1YTE2IDEwMDY0NFxuLS0tIGEva2VybmVsL2JwZi92ZXJpZmllci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbkBAIC04NzY2LDExICYjNDM7ODc2Niw3IEBAIHN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcbiBcdFx0XHRyZXR1cm4gdHJ1ZTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUjpcbi1cdGNhc2UgQlBGX1BST0dfVFlQRV9TQ0hFRF9DTFM6XG4tXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0NIRURfQUNUOlxuLVx0Y2FzZSBCUEZfUFJPR19UWVBFX1hEUDpcbiBcdGNhc2UgQlBGX1BST0dfVFlQRV9TS19SRVVTRVBPUlQ6XG4tXHRjYXNlIEJQRl9QUk9HX1RZUEVfRkxPV19ESVNTRUNUT1I6XG4gXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0tfTE9PS1VQOlxuIFx0XHRyZXR1cm4gdHJ1ZTtcbiBcdGRlZmF1bHQ6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMDQ6MDQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYXlfdXBkYXRlX3NvY2ttYXAmIzM0OywKICAgICYjMzQ7Y2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byByZXN0cmljdCB3aGljaCBCUEYgcHJvZ3JhbSB0eXBlcyBjYW4gdXBkYXRlIHNvY2ttYXBzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBwcm9ncmFtIHZhbGlkYXRpb24gYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGE3MWM2MTlhMzdjYTE3ZjIxNTY3Y2I1NTFjM2YwZmNlNzY1YTVlYTIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1biAyMCAwNDowNDoyNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuYwppbmRleCA3ZmI4OGUxY2Q3YzRkMC4uOTRkMjI1NTIxYjVhMTYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYwomIzQzOyYjNDM7JiM0MzsgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKQEAgLTg3NjYsMTEgJiM0Mzs4NzY2LDcgQEAgc3RhdGljIGJvb2wgbWF5X3VwZGF0ZV9zb2NrbWFwKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBmdW5jX2lkKQogCQkJcmV0dXJuIHRydWU7CiAJCWJyZWFrOwogCWNhc2UgQlBGX1BST0dfVFlQRV9TT0NLRVRfRklMVEVSOgotCWNhc2UgQlBGX1BST0dfVFlQRV9TQ0hFRF9DTFM6Ci0JY2FzZSBCUEZfUFJPR19UWVBFX1NDSEVEX0FDVDoKLQljYXNlIEJQRl9QUk9HX1RZUEVfWERQOgogCWNhc2UgQlBGX1BST0dfVFlQRV9TS19SRVVTRVBPUlQ6Ci0JY2FzZSBCUEZfUFJPR19UWVBFX0ZMT1dfRElTU0VDVE9SOgogCWNhc2UgQlBGX1BST0dfVFlQRV9TS19MT09LVVA6CiAJCXJldHVybiB0cnVlOwogCWRlZmF1bHQ6CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTb2NrbWFwIFVwZGF0ZSBSZXN0cmljdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQgbG9va3MgbGlrZSB3ZSYjMzk7dmUgbWFkZSBhIGNoYW5nZSB0byBga2VybmVsL2JwZi92ZXJpZmllci5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgYG1heV91cGRhdGVfc29ja21hcGAgZnVuY3Rpb24gaXMgdGhlIHRhcmdldC4gQWgsIHJpZ2h0LiBJdCYjMzk7cyB0aWdodGVuaW5nIHRoZSByZXN0cmljdGlvbnMgb24gd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgYXJlIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzb2NrbWFwLiBJdCBsb29rcyBsaWtlIGBCUEZfUFJPR19UWVBFX1NDSEVEX0NMU2AsIGBCUEZfUFJPR19UWVBFX1NDSEVEX0FDVGAsIGBCUEZfUFJPR19UWVBFX1hEUGAsIGFuZCBgQlBGX1BST0dfVFlQRV9GTE9XX0RJU1NFQ1RPUmAgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcGVybWlzc2libGUgbGlzdC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgcmVhc29uaW5nIGhlcmUuIFBlcmhhcHMgdGhlcmUgd2FzIGEgc2VjdXJpdHkgY29uY2VybiBvciBzb21lIHVuZXhwZWN0ZWQgYmVoYXZpb3IgaWRlbnRpZmllZC4gSSYjMzk7bGwgbmVlZCB0byByZXZpZXcgdGhlIGNvbnRleHQgc3Vycm91bmRpbmcgdGhpcyBjaGFuZ2UgaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIGFuZCB0aGUgcmF0aW9uYWxlIGJlaGluZCB0aGVzZSBwYXJ0aWN1bGFyIHJlbW92YWxzLiBJJiMzOTtsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhhdCBmdW5jdGlvbiBub3cgYW5kIHNlZSB3aGF0IGl0IHRlbGxzIG1lLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21heV91cGRhdGVfc29ja21hcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODQ3Nj1zdGF0aWMgaW50IGNoZWNrX2Z1bmNfYXJnKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHUzMiBhcmcsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3NDUtXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6ODc0NjpzdGF0aWMgYm9vbCBtYXlfdXBkYXRlX3NvY2ttYXAoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgaW50IGZ1bmNfaWQpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODc0Ny17XG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jPTg3ODY9c3RhdGljIGludCBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXG4tLVxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NjEtXHRcdCAgICBmdW5jX2lkICE9IEJQRl9GVU5DX21hcF9sb29rdXBfZWxlbSBcdTAwMjZcdTAwMjZcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4ODYyOlx0XHQgICAgIW1heV91cGRhdGVfc29ja21hcChlbnYsIGZ1bmNfaWQpKVxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NjMtXHRcdFx0Z290byBlcnJvcjtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg3MC1cdFx0ICAgIGZ1bmNfaWQgIT0gQlBGX0ZVTkNfbWFwX2xvb2t1cF9lbGVtIFx1MDAyNlx1MDAyNlxua2VybmVsL2JwZi92ZXJpZmllci5jOjg4NzE6XHRcdCAgICAhbWF5X3VwZGF0ZV9zb2NrbWFwKGVudiwgZnVuY19pZCkpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg3Mi1cdFx0XHRnb3RvIGVycm9yO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MDIKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOgoKKipCUEYgVmVyaWZpZXIgQ2hhbmdlOiBTY29wZSBmb3IgRnV6emluZyoqCgpBbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggbG9va3MgbGlrZSBpdCYjMzk7cyB0d2Vha2luZyBgbWF5X3VwZGF0ZV9zb2NrbWFwYCwgd2hpY2ggaXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGZyb20gYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgLiBUaGF0JiMzOTtzIGEga2V5IHNwb3TigJRhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBCUEYgdmVyaWZpZXIgdGhhdCYjMzk7cyBlc3NlbnRpYWxseSByZXN0cmljdGluZyB3aGljaCBCUEYgcHJvZ3JhbSB0eXBlcyBjYW4gYWN0dWFsbHkgbW9kaWZ5IHRoZSBzb2NrbWFwLiBUaGUgdmVyaWZpZXImIzM5O3MgYWx3YXlzIGEgcG9pbnQgb2YgaW50ZXJlc3QsIGFuZCAqdGhpcyogY2hhbmdlIHNjcmVhbXMgJiMzNDtmdXp6IG1lISYjMzQ7IGltbWVkaWF0ZWx5LiBBbnkgbW9kaWZpY2F0aW9uIHRvIHRoZSB2ZXJpZmljYXRpb24gcnVsZXMgb3BlbnMgdXAgcG90ZW50aWFsIGZvciBub3ZlbCBleHBsb2l0IHZlY3RvcnMsIHBhcnRpY3VsYXJseSBpbiBob3cgcHJvZ3JhbXMgaW50ZXJhY3Qgd2l0aCBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLgoKTm93LCBsZXTigJlzIGdldCBzcGVjaWZpYy4gSSBuZWVkIHRvIG5haWwgZG93biB0aGUgcmVsZXZhbnQgY29uZmlnIG9wdGlvbnMgc28gSSBjYW4gdGFyZ2V0IHRoaXMgcHJvcGVybHkuIFdlJiMzOTtyZSBnZW5lcmFsbHkgdGFsa2luZyBhYm91dCBCUEYgZmVhdHVyZXMgaGVyZSwgc28gYENPTkZJR19CUEZfU1lTQ0FMTGAgYW5kIGBDT05GSUdfQ0dST1VQX0JQRmAgYXJlIHRoZSB1c3VhbCBzdXNwZWN0cyBmb3IgZ2V0dGluZyBzb2NrbWFwIHVwIGFuZCBydW5uaW5nLiBCdXQgSSBzaG91bGQgY29uZmlybSB3aGV0aGVyIHRoZXJlJiMzOTtzIGEgbW9yZSB0YXJnZXRlZCBvcHRpb24sIHBlcmhhcHMgaW4gYG5ldC9jb3JlL3NvY2tfbWFwLmNgIG9yIGEgc2ltaWxhciBmaWxlLiBJdCYjMzk7cyBhIGdvb2QgaWRlYSB0byBpZGVudGlmeSBhbGwgdGhlIGRlcGVuZGVuY2llcywgYXMgdGhhdCBjYW4gZ2l2ZSBhIG1vcmUgcmVsaWFibGUgcGxhdGZvcm0gZm9yIGV4cGVyaW1lbnRhdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgcHJlcmVxdWlzaXRlcyB3aWxsIGhlbHAgbWUgY3JlYXRlIGEgcm9idXN0IHRlc3Qgc2V0dXAuIEkmIzM5O2xsIG5lZWQgdG8ga25vdyB0aGUgY29tcGxldGUgY29uZmlndXJhdGlvbiB0byB0cmlnZ2VyIHRoZSBuZXcgYmVoYXZpb3IgYW5kIGNyYWZ0IGVmZmVjdGl2ZSBmdXp6aW5nIGhhcm5lc3Nlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAwNDowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzb2NrbWFwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2NvcmUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9jb3JlL2ZpbHRlci5jPTE2MTE9aW50IHNrX3JldXNlcG9ydF9hdHRhY2hfYnBmKHUzMiB1ZmQsIHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvY29yZS9maWx0ZXIuYy0xNjI2LVx0XHQvKiBMaWtlIG90aGVyIG5vbiBCUEZfUFJPR19UWVBFX1NPQ0tFVF9GSUxURVJcbm5ldC9jb3JlL2ZpbHRlci5jOjE2Mjc6XHRcdCAqIGJwZiBwcm9nIChlLmcuIHNvY2ttYXApLiAgSXQgZGVwZW5kcyBvbiB0aGVcbm5ldC9jb3JlL2ZpbHRlci5jLTE2MjgtXHRcdCAqIGxpbWl0YXRpb24gaW1wb3NlZCBieSBicGZfcHJvZ19sb2FkKCkuXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYz0xNz1zdHJ1Y3QgYnBmX3N0YWIge1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMzEtICovXG5uZXQvY29yZS9zb2NrX21hcC5jOjMyOnN0YXRpYyBERUZJTkVfTVVURVgoc29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTMzLVxuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9Njg9aW50IHNvY2tfbWFwX2dldF9mcm9tX2ZkKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy03OS1cdFx0cmV0dXJuIFBUUl9FUlIobWFwKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6ODA6XHRtdXRleF9sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy04MS1cdHJldCA9IHNvY2tfbWFwX3Byb2dfdXBkYXRlKG1hcCwgcHJvZywgTlVMTCwgTlVMTCwgYXR0ci1cdTAwM2VhdHRhY2hfdHlwZSk7XG5uZXQvY29yZS9zb2NrX21hcC5jOjgyOlx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy04My1cdHJldHVybiByZXQ7XG4tLVxubmV0L2NvcmUvc29ja19tYXAuYz04Nj1pbnQgc29ja19tYXBfcHJvZ19kZXRhY2goY29uc3QgdW5pb24gYnBmX2F0dHIgKmF0dHIsIGVudW0gYnBmX3Byb2dfdHlwZSBwdHlwZSlcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTEwOC1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTA5Olx0bXV0ZXhfbG9jayhcdTAwMjZzb2NrbWFwX211dGV4KTtcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTEwLVx0cmV0ID0gc29ja19tYXBfcHJvZ191cGRhdGUobWFwLCBOVUxMLCBwcm9nLCBOVUxMLCBhdHRyLVx1MDAzZWF0dGFjaF90eXBlKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTExOlx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy0xMTItcHV0X3Byb2c6XG4tLVxubmV0L2NvcmUvc29ja19tYXAuYz03MDQ9c3RydWN0IHNvY2tfbWFwX3NlcV9pbmZvIHtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTcwOS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6NzEwOnN0cnVjdCBicGZfaXRlcl9fc29ja21hcCB7XG5uZXQvY29yZS9zb2NrX21hcC5jLTcxMS1cdF9fYnBmX21kX3B0cihzdHJ1Y3QgYnBmX2l0ZXJfbWV0YSAqLCBtZXRhKTtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTcxNi1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6NzE3OkRFRklORV9CUEZfSVRFUl9GVU5DKHNvY2ttYXAsIHN0cnVjdCBicGZfaXRlcl9tZXRhICptZXRhLFxubmV0L2NvcmUvc29ja19tYXAuYy03MTgtXHRcdCAgICAgc3RydWN0IGJwZl9tYXAgKm1hcCwgdm9pZCAqa2V5LFxuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9NzU2PXN0YXRpYyBpbnQgc29ja19tYXBfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy03NTktXHRzdHJ1Y3Qgc29ja19tYXBfc2VxX2luZm8gKmluZm8gPSBzZXEtXHUwMDNlcHJpdmF0ZTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6NzYwOlx0c3RydWN0IGJwZl9pdGVyX19zb2NrbWFwIGN0eCA9IHt9O1xubmV0L2NvcmUvc29ja19tYXAuYy03NjEtXHRzdHJ1Y3QgYnBmX2l0ZXJfbWV0YSBtZXRhO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9MTM2OD1zdGF0aWMgaW50IHNvY2tfaGFzaF9zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTEzNzEtXHRzdHJ1Y3Qgc29ja19oYXNoX3NlcV9pbmZvICppbmZvID0gc2VxLVx1MDAzZXByaXZhdGU7XG5uZXQvY29yZS9zb2NrX21hcC5jOjEzNzI6XHRzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAgY3R4ID0ge307XG5uZXQvY29yZS9zb2NrX21hcC5jLTEzNzMtXHRzdHJ1Y3QgYnBmX3NodGFiX2VsZW0gKmVsZW0gPSB2O1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9MTcxOD1FWFBPUlRfU1lNQk9MX0dQTChzb2NrX21hcF9jbG9zZSk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3MTktXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3MjA6c3RydWN0IHNvY2ttYXBfbGluayB7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3MjEtXHRzdHJ1Y3QgYnBmX2xpbmsgbGluaztcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jPTE3MjU9c3RhdGljIHZvaWQgc29ja19tYXBfbGlua19yZWxlYXNlKHN0cnVjdCBicGZfbGluayAqbGluaylcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTcyNi17XG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mjc6XHRzdHJ1Y3Qgc29ja21hcF9saW5rICpzb2NrbWFwX2xpbmsgPSBjb250YWluZXJfb2YobGluaywgc3RydWN0IHNvY2ttYXBfbGluaywgbGluayk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3MjgtXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mjk6XHRtdXRleF9sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYzoxNzMwOlx0aWYgKCFzb2NrbWFwX2xpbmstXHUwMDNlbWFwKVxubmV0L2NvcmUvc29ja19tYXAuYy0xNzMxLVx0XHRnb3RvIG91dDtcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTczMi1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTczMzpcdFdBUk5fT05fT05DRShzb2NrX21hcF9wcm9nX3VwZGF0ZShzb2NrbWFwX2xpbmstXHUwMDNlbWFwLCBOVUxMLCBsaW5rLVx1MDAzZXByb2csIGxpbmssXG5uZXQvY29yZS9zb2NrX21hcC5jLTE3MzQtXHRcdFx0XHRcdCAgbGluay1cdTAwM2VhdHRhY2hfdHlwZSkpO1xubmV0L2NvcmUvc29ja19tYXAuYy0xNzM1LVxubmV0L2NvcmUvc29ja19tYXAuYzoxNzM2Olx0YnBmX21hcF9wdXRfd2l0aF91cmVmKHNvY2ttYXBfbGluay1cdTAwM2VtYXApO1xubmV0L2NvcmUvc29ja19tYXAuYzoxNzM3Olx0c29ja21hcF9saW5rLVx1MDAzZW1hcCA9IE5VTEw7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3Mzgtb3V0OlxubmV0L2NvcmUvc29ja19tYXAuYzoxNzM5Olx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy0xNzQwLX1cbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jPTE3NTc9c3RhdGljIGludCBzb2NrX21hcF9saW5rX3VwZGF0ZV9wcm9nKHN0cnVjdCBicGZfbGluayAqbGluayxcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE3NjAte1xubmV0L2NvcmUvc29ja19tYXAuYzoxNzYxOlx0Y29uc3Qgc3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rID0gY29udGFpbmVyX29mKGxpbmssIHN0cnVjdCBzb2NrbWFwX2xpbmssIGxpbmspO1xubmV0L2NvcmUvc29ja19tYXAuYy0xNzYyLVx0c3RydWN0IGJwZl9wcm9nICoqcHByb2csICpvbGRfbGlua19wcm9nO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc2NS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTc2NjpcdG11dGV4X2xvY2soXHUwMDI2c29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3NjctXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy0xNzc4LVx0fVxubmV0L2NvcmUvc29ja19tYXAuYzoxNzc5Olx0aWYgKCFzb2NrbWFwX2xpbmstXHUwMDNlbWFwKSB7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE3ODAtXHRcdHJldCA9IC1FTk9MSU5LO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc4My1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTc4NDpcdHJldCA9IHNvY2tfbWFwX3Byb2dfbGlua19sb29rdXAoc29ja21hcF9saW5rLVx1MDAzZW1hcCwgXHUwMDI2cHByb2csIFx1MDAyNnBsaW5rLFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzg1LVx0XHRcdFx0XHRsaW5rLVx1MDAzZWF0dGFjaF90eXBlKTtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MDctb3V0OlxubmV0L2NvcmUvc29ja19tYXAuYzoxODA4Olx0bXV0ZXhfdW5sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYy0xODA5LVx0cmV0dXJuIHJldDtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MTEtXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTI6c3RhdGljIHUzMiBzb2NrX21hcF9saW5rX2dldF9tYXBfaWQoY29uc3Qgc3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rKVxubmV0L2NvcmUvc29ja19tYXAuYy0xODEzLXtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MTUtXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTY6XHRtdXRleF9sb2NrKFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xubmV0L2NvcmUvc29ja19tYXAuYzoxODE3Olx0aWYgKHNvY2ttYXBfbGluay1cdTAwM2VtYXApXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTg6XHRcdG1hcF9pZCA9IHNvY2ttYXBfbGluay1cdTAwM2VtYXAtXHUwMDNlaWQ7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTk6XHRtdXRleF91bmxvY2soXHUwMDI2c29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MjAtXHRyZXR1cm4gbWFwX2lkO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM9MTgyMz1zdGF0aWMgaW50IHNvY2tfbWFwX2xpbmtfZmlsbF9pbmZvKGNvbnN0IHN0cnVjdCBicGZfbGluayAqbGluayxcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MjUte1xubmV0L2NvcmUvc29ja19tYXAuYzoxODI2Olx0Y29uc3Qgc3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rID0gY29udGFpbmVyX29mKGxpbmssIHN0cnVjdCBzb2NrbWFwX2xpbmssIGxpbmspO1xubmV0L2NvcmUvc29ja19tYXAuYzoxODI3Olx0dTMyIG1hcF9pZCA9IHNvY2tfbWFwX2xpbmtfZ2V0X21hcF9pZChzb2NrbWFwX2xpbmspO1xubmV0L2NvcmUvc29ja19tYXAuYy0xODI4LVxubmV0L2NvcmUvc29ja19tYXAuYzoxODI5Olx0aW5mby1cdTAwM2Vzb2NrbWFwLm1hcF9pZCA9IG1hcF9pZDtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzMDpcdGluZm8tXHUwMDNlc29ja21hcC5hdHRhY2hfdHlwZSA9IGxpbmstXHUwMDNlYXR0YWNoX3R5cGU7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MzEtXHRyZXR1cm4gMDtcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jPTE4MzQ9c3RhdGljIHZvaWQgc29ja19tYXBfbGlua19zaG93X2ZkaW5mbyhjb25zdCBzdHJ1Y3QgYnBmX2xpbmsgKmxpbmssXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy0xODM2LXtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzNzpcdGNvbnN0IHN0cnVjdCBzb2NrbWFwX2xpbmsgKnNvY2ttYXBfbGluayA9IGNvbnRhaW5lcl9vZihsaW5rLCBzdHJ1Y3Qgc29ja21hcF9saW5rLCBsaW5rKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzODpcdHUzMiBtYXBfaWQgPSBzb2NrX21hcF9saW5rX2dldF9tYXBfaWQoc29ja21hcF9saW5rKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTgzOS1cbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jPTE4NTM9aW50IHNvY2tfbWFwX2xpbmtfY3JlYXRlKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy0xODU1LVx0c3RydWN0IGJwZl9saW5rX3ByaW1lciBsaW5rX3ByaW1lcjtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg1NjpcdHN0cnVjdCBzb2NrbWFwX2xpbmsgKnNvY2ttYXBfbGluaztcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg1Ny1cdGVudW0gYnBmX2F0dGFjaF90eXBlIGF0dGFjaF90eXBlO1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg3MS1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg3MjpcdHNvY2ttYXBfbGluayA9IGt6YWxsb2Nfb2JqKCpzb2NrbWFwX2xpbmssIEdGUF9VU0VSKTtcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg3MzpcdGlmICghc29ja21hcF9saW5rKSB7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4NzQtXHRcdHJldCA9IC1FTk9NRU07XG4tLVxubmV0L2NvcmUvc29ja19tYXAuYy0xODc4LVx0YXR0YWNoX3R5cGUgPSBhdHRyLVx1MDAzZWxpbmtfY3JlYXRlLmF0dGFjaF90eXBlO1xubmV0L2NvcmUvc29ja19tYXAuYzoxODc5Olx0YnBmX2xpbmtfaW5pdChcdTAwMjZzb2NrbWFwX2xpbmstXHUwMDNlbGluaywgQlBGX0xJTktfVFlQRV9TT0NLTUFQLCBcdTAwMjZzb2NrX21hcF9saW5rX29wcywgcHJvZyxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4MC1cdFx0ICAgICAgYXR0YWNoX3R5cGUpO1xubmV0L2NvcmUvc29ja19tYXAuYzoxODgxOlx0c29ja21hcF9saW5rLVx1MDAzZW1hcCA9IG1hcDtcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4Mi1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg4MzpcdHJldCA9IGJwZl9saW5rX3ByaW1lKFx1MDAyNnNvY2ttYXBfbGluay1cdTAwM2VsaW5rLCBcdTAwMjZsaW5rX3ByaW1lcik7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4ODQtXHRpZiAocmV0KSB7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE4ODU6XHRcdGtmcmVlKHNvY2ttYXBfbGluayk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4ODYtXHRcdGdvdG8gb3V0O1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4OC1cbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg4OTpcdG11dGV4X2xvY2soXHUwMDI2c29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE4OTA6XHRyZXQgPSBzb2NrX21hcF9wcm9nX3VwZGF0ZShtYXAsIHByb2csIE5VTEwsIFx1MDAyNnNvY2ttYXBfbGluay1cdTAwM2VsaW5rLCBhdHRhY2hfdHlwZSk7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE4OTE6XHRtdXRleF91bmxvY2soXHUwMDI2c29ja21hcF9tdXRleCk7XG5uZXQvY29yZS9zb2NrX21hcC5jLTE4OTItXHRpZiAocmV0KSB7XG4tLVxubmV0L2NvcmUvc29ja19tYXAuYz0xOTQ5PXN0YXRpYyBzdHJ1Y3QgYnBmX2l0ZXJfcmVnIHNvY2tfbWFwX2l0ZXJfcmVnID0ge1xubmV0L2NvcmUvc29ja19tYXAuYzoxOTUwOlx0LnRhcmdldFx0XHRcdD0gXCYjMzQ7c29ja21hcFwmIzM0Oyxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk1MS1cdC5hdHRhY2hfdGFyZ2V0XHRcdD0gc29ja19tYXBfaXRlcl9hdHRhY2hfdGFyZ2V0LFxuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk1Ni1cdC5jdHhfYXJnX2luZm9cdFx0PSB7XG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NTc6XHRcdHsgb2Zmc2V0b2Yoc3RydWN0IGJwZl9pdGVyX19zb2NrbWFwLCBrZXkpLFxubmV0L2NvcmUvc29ja19tYXAuYy0xOTU4LVx0XHQgIFBUUl9UT19CVUYgfCBQVFJfTUFZQkVfTlVMTCB8IE1FTV9SRE9OTFkgfSxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTk1OTpcdFx0eyBvZmZzZXRvZihzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAsIHNrKSxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk2MC1cdFx0ICBQVFJfVE9fQlRGX0lEX09SX05VTEwgfSxcbi0tXG5uZXQvY29yZS9zb2NrX21hcC5jLTE5NjMtXG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NjQ6c3RhdGljIGludCBfX2luaXQgYnBmX3NvY2ttYXBfaXRlcl9pbml0KHZvaWQpXG5uZXQvY29yZS9zb2NrX21hcC5jLTE5NjUte1xuLS1cbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk2OS19XG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NzA6bGF0ZV9pbml0Y2FsbChicGZfc29ja21hcF9pdGVyX2luaXQpO1xuLS1cbm5ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmM9NDI3PXZvaWQgcmV1c2Vwb3J0X2RldGFjaF9zb2NrKHN0cnVjdCBzb2NrICpzaylcbi0tXG5uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jLTQ0MS1cdCAqXG5uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jOjQ0MjpcdCAqIE90aGVyIGJwZiBtYXAgdHlwZXMgdGhhdCB3b3JrIHdpdGggcmV1c2Vwb3J0LCBsaWtlIHNvY2ttYXAsXG5uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jLTQ0My1cdCAqIGRvbiYjMzk7dCBuZWVkIGFuIGV4cGxpY2l0IGNhbGxiYWNrIGZyb20gaGVyZS4gVGhleSBvdmVycmlkZSBza1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY3MDkKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQlBGIFNvY2ttYXAgQ29uZmlndXJhdGlvbiBBdWRpdCoqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGRpdmluZyBpbnRvIHRoaXMgQlBGIHNvY2ttYXAgY29uZmlndXJhdGlvbi4gIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjb25maXJtIHRoZSBwcmVyZXF1aXNpdGVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlncyBhcmUgZW5hYmxlZC4gTGV0JiMzOTtzIHNlZSwgSSBiZWxpZXZlIGl0JiMzOTtzIGBDT05GSUdfQlBGX1NZU0NBTExgIGFuZCBgQ09ORklHX0NHUk9VUF9CUEZgIHRoYXQgYXJlIGNyaXRpY2FsIGZvciB0aGlzIGZ1bmN0aW9uYWxpdHkuIE9rYXksIGxldCYjMzk7cyBqdXN0IG1ha2UgZG91Ymx5IHN1cmUgYWJvdXQgaG93IHRoZSBgc29ja19tYXAub2AgbW9kdWxlIGlzIGJlaW5nIGJ1aWx0IGluIHJlbGF0aW9uIHRvIHRob3NlLiBRdWljayBjaGVjayBvZiB0aGUgYG5ldC9jb3JlL01ha2VmaWxlYCBpcyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuIEl0JiMzOTtzIHRoZSBNYWtlZmlsZSB0aGF0IG9yY2hlc3RyYXRlcyB0aGUgb2JqZWN0IGZpbGUgZ2VuZXJhdGlvbi4gSSYjMzk7bSBnb2luZyB0byBsb29rIGZvciBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gZGlyZWN0aXZlcyB0aGF0IG1pZ2h0IHRpZSB0aGUgaW5jbHVzaW9uIG9mIGBzb2NrX21hcC5vYCB0byBlaXRoZXIgb2YgdGhvc2UgY29uZmlnIG9wdGlvbnMuIEl0IGlzIGltcGVyYXRpdmUgdGhhdCBpdCYjMzk7cyBidWlsdCBvbmx5IHdoZW4gdGhlIG5lY2Vzc2FyeSBzdXBwb3J0IGlzIHByZXNlbnQsIG90aGVyd2lzZSwgd2UmIzM5O2xsIHNlZSBhIGJ1aWxkIGVycm9yLCBvciB3b3JzZSwgaW5jb3JyZWN0IGJlaGF2aW9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NvY2tfbWFwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2NvcmUvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2NvcmUvTWFrZWZpbGU9NDQ9b2JqLSQoQ09ORklHX05FVF9TT0NLX01TRykgJiM0Mzs9IHNrbXNnLm9cbm5ldC9jb3JlL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IHNvY2tfbWFwLm9cbm5ldC9jb3JlL01ha2VmaWxlLTQ2LW9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgJiM0Mzs9IGJwZl9za19zdG9yYWdlLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAwNDowNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTE2CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTc2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQlBGIFNvY2tldCBNYXAgUmVzdHJpY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIGRlYWxpbmcgd2l0aCBgQ09ORklHX0JQRl9TWVNDQUxMYC4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSByZXN0cmljdGluZyBjZXJ0YWluIEJQRiBwcm9ncmFtIHR5cGVzIOKAkyBzcGVjaWZpY2FsbHkgYEJQRl9QUk9HX1RZUEVfU0NIRURfQ0xTYCwgYEJQRl9QUk9HX1RZUEVfU0NIRURfQUNUYCwgYEJQRl9QUk9HX1RZUEVfWERQYCwgYW5kIGBCUEZfUFJPR19UWVBFX0ZMT1dfRElTU0VDVE9SYCDigJMgZnJvbSBiZWluZyBhYmxlIHRvIHVwZGF0ZSB0aGUgc29ja21hcC4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMuCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmluZCB0aGUga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZC4gTG9va3MgbGlrZSBgbWF5X3VwZGF0ZV9zb2NrbWFwYCBpcyB0aGUgc3RhdGljIGZ1bmN0aW9uIGRvaW5nIHRoZSBoZWF2eSBsaWZ0aW5nLCBsb2NhdGVkIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgLiBUaGlzIGlzIHRoZW4gY2FsbGVkIGJ5IGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YC4gTXkgaW1tZWRpYXRlIGZvY3VzIHdpbGwgYmUgb24gdGhlc2UgdHdvIGZ1bmN0aW9uczogZWl0aGVyIGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCBvciBgbWF5X3VwZGF0ZV9zb2NrbWFwYC4gTGV0JiMzOTtzIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIGBtYXlfdXBkYXRlX3NvY2ttYXBgIGlzIGlubGluZSBvciBub3QsIHNvIEkgY2FuIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgb2YgaXRzIGV4ZWN1dGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWF5X3VwZGF0ZV9zb2NrbWFwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7a2VybmVsL2JwZi92ZXJpZmllci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYz04NDc2PXN0YXRpYyBpbnQgY2hlY2tfZnVuY19hcmcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgdTMyIGFyZyxcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODc0NS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4NzQ2OnN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04NzQ3LXtcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODc4Nj1zdGF0aWMgaW50IGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHkoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg2MS1cdFx0ICAgIGZ1bmNfaWQgIT0gQlBGX0ZVTkNfbWFwX2xvb2t1cF9lbGVtIFx1MDAyNlx1MDAyNlxua2VybmVsL2JwZi92ZXJpZmllci5jOjg4NjI6XHRcdCAgICAhbWF5X3VwZGF0ZV9zb2NrbWFwKGVudiwgZnVuY19pZCkpXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg2My1cdFx0XHRnb3RvIGVycm9yO1xuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04ODcwLVx0XHQgICAgZnVuY19pZCAhPSBCUEZfRlVOQ19tYXBfbG9va3VwX2VsZW0gXHUwMDI2XHUwMDI2XG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6ODg3MTpcdFx0ICAgICFtYXlfdXBkYXRlX3NvY2ttYXAoZW52LCBmdW5jX2lkKSlcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04ODcyLVx0XHRcdGdvdG8gZXJyb3I7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc5MDIKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiA1MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgUG90ZW50aWFsIEFyZWFzIGZvciBSZWZpbmVtZW50KioKCk9rYXksIHNvIEkmIzM5O20gaG9uaW5nIGluIG9uIHNvbWUga2V5IGFyZWFzIGluIHRoZSBjb2RlYmFzZS4gTXkgYXR0ZW50aW9uIGlzIGRyYXduIHRvIGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCDigJMgdGhhdCBzZWVtcyBsaWtlIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgaW52ZXN0aWdhdGlvbiwgYSBwb3RlbnRpYWwgZm9jYWwgc3ltYm9sLiBJIGFsc28gc2VlIGBtYXlfdXBkYXRlX3NvY2ttYXBgIGFzIGEgcmVsZXZhbnQgc3ltYm9sIHRvIGNvbnNpZGVyIGluIGNvbmp1bmN0aW9uLiBUbyBkZWVwZW4gbXkgdW5kZXJzdGFuZGluZyBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3Bwb3J0dW5pdGllcyB0byByZWZhY3RvciBvciBlbmhhbmNlIHRoZSBjb2RlYmFzZSwgSSBuZWVkIHRvIGNoZWNrIGhvdyBgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eWAgaXMgdXNlZCB3aXRoaW4gdGhlIHByb2plY3QuIEkmIzM5O2xsIHRyYWNlIGl0cyBjYWxscyB0byBzZWUgd2hlcmUgaXQgaXMgYmVpbmcgdXNlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjAgMDQ6MDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9icGYvdmVyaWZpZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtrZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODc4MD1ib29sIGJwZl9hbGxvd190YWlsX2NhbGxfaW5fc3VicHJvZ3Moc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudilcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODc4NS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4Nzg2OnN0YXRpYyBpbnQgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3ODctXHRcdFx0XHRcdHN0cnVjdCBicGZfbWFwICptYXAsIGludCBmdW5jX2lkKVxuLS1cbmtlcm5lbC9icGYvdmVyaWZpZXIuYz0xMDI3MT1zdGF0aWMgaW50IGNoZWNrX2hlbHBlcl9jYWxsKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIHN0cnVjdCBicGZfaW5zbiAqaW5zbixcbi0tXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA3MjYtXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM6MTA3Mjc6XHRlcnIgPSBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5KGVudiwgbWV0YS5tYXAucHRyLCBmdW5jX2lkKTtcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDcyOC1cdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzNzYKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIEJQRiBGdW5jdGlvbmFsaXR5IGFuZCBEZXBlbmRlbmNpZXMqKgoKT2theSwgc28gSSYjMzk7dmUgY29uZmlybWVkIHRoYXQgdGhlIGBjaGVja19oZWxwZXJfY2FsbGAgZnVuY3Rpb24gZG9lcyBpbmRlZWQgY2FsbCBgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eWAuIFRoYXQgbWFrZXMgYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgIGEga2V5IGFyZWEgdG8gemVybyBpbiBvbiBmb3IgZnVydGhlciBhbmFseXNpcywgYXMgZG9lcyBgbWF5X3VwZGF0ZV9zb2NrbWFwYC4gQm90aCBvZiB0aGVzZSBzZWVtIGxpa2UgZ29vZCBmb2N1cyBwb2ludHMgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgYWxsIHdvcmtzLgoKTm93LCBJJiMzOTtsbCBzd2l0Y2ggZ2VhcnMgYW5kIHRyeSB0byBpZGVudGlmeSBvdGhlciByZWxldmFudCBjb25maWd1cmF0aW9ucy4gT2J2aW91c2x5LCBgQ09ORklHX0JQRl9TWVNDQUxMYCBpcyBhIG1ham9yIHBsYXllciwgYnV0IHdoYXQgZWxzZT8gUmlnaHQsIGBDT05GSUdfTkVUYCBpcyBlc3NlbnRpYWwgZm9yIHNvY2ttYXAgZnVuY3Rpb25hbGl0eS4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjcnVjaWFsIGNvbmZpZyBmbGFncy4gTGV0JiMzOTtzIHNlZSB3aGF0IGVsc2UgbWlnaHQgYmUgaW1wb3J0YW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yMCAwNDowNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfQlBGX1NZU0NBTEwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvY29yZS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvY29yZS9NYWtlZmlsZT00ND1vYmotJChDT05GSUdfTkVUX1NPQ0tfTVNHKSAmIzQzOz0gc2ttc2cub1xubmV0L2NvcmUvTWFrZWZpbGU6NDU6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gc29ja19tYXAub1xubmV0L2NvcmUvTWFrZWZpbGU6NDY6b2JqLSQoQ09ORklHX0JQRl9TWVNDQUxMKSAmIzQzOz0gYnBmX3NrX3N0b3JhZ2Uub1xubmV0L2NvcmUvTWFrZWZpbGUtNDctb2JqLSQoQ09ORklHX09GKVx0JiM0Mzs9IG9mX25ldC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg3OTgKCQkJCQkJCW91dHB1dDogMTAxCgkJCQkJCQl0aG91Z2h0czogMTA2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIEJQRiBWZXJpZmllciBDaGFuZ2UqKgoKT2theSwgc28gYmFzZWQgb24gdGhpcyBpbmZvcm1hdGlvbiwgaXQgc2VlbXMgbGlrZSBmb2N1c2luZyBvbiBgQlBGX1NZU0NBTExgIGlzIHRoZSBrZXkuIExldCYjMzk7cyBicmVhayBpdCBkb3duIGluIG15IG1pbmQ6CgpUaGUgY29yZSBpZGVhIGlzIHRoaXM6IHRoaXMgcGF0Y2ggZnVuZGFtZW50YWxseSBhbHRlcnMgaG93IHRoZSBCUEYgdmVyaWZpZXIgd29ya3MsIHNwZWNpZmljYWxseSBhcm91bmQgd2hhdCBCUEYgcHJvZ3JhbSB0eXBlcyBhcmUgKmFsbG93ZWQqIHRvIG1vZGlmeSBzb2NrbWFwcy4gVGhpcyBtZWFucyBhIGNoYW5nZSBpbiBjb3JlIHZhbGlkYXRpb24gbG9naWMgZm9yIEJQRiBwcm9ncmFtcywgd2hpY2ggbWVhbnMgaXQgZGVtYW5kcyBmdXp6aW5nLiBJZiB0aGlzIHZhbGlkYXRpb24gaXMgY2hhbmdlZCwgdGhlcmUgaXMgdGhlIHBvdGVudGlhbCB0byBhbGxvdyBtb3JlIHByb2dyYW1zIHRocm91Z2ggdGhhbiBiZWZvcmUsIGFzIHdlbGwgYXMgdGhlIHBvdGVudGlhbCBmb3IgdW5mb3Jlc2VlbiBpbnRlcmFjdGlvbnMuCgpUaGUgYFdvcnRoRnV6emluZzogdHJ1ZWAgZmxhZyBjb25maXJtcyB0aGF0IHRoZSBjaGFuZ2UgaXMgc2lnbmlmaWNhbnQgZW5vdWdoIHRvIHdhcnJhbnQgZm9jdXNlZCBmdXp6aW5nIGVmZm9ydHMuIFRoZSBjaG9zZW4gZm9jdXMgc3ltYm9scywgYG1heV91cGRhdGVfc29ja21hcGAgYW5kIGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCwgYXJlIHByZWNpc2VseSB0aGUgcmlnaHQgdGFyZ2V0czsgdGhleSYjMzk7cmUgZGlyZWN0IGVudHJ5IHBvaW50cyBpbnRvIHRoZSBuZXcgdmFsaWRhdGlvbiBsb2dpYy4KCkFuZCwgb2YgY291cnNlLCBlbmFibGluZyB0aGUgYEJQRl9TWVNDQUxMYCBjb25maWd1cmF0aW9uIG1ha2VzIHBlcmZlY3Qgc2Vuc2UsIGFzIGl04oCZcyB0aGUgbmVjZXNzYXJ5IHRyaWdnZXIgZm9yIHRoaXMgY2hhbmdlLiBXZSBhcmUgb25seSBjaGFuZ2luZyB0aGUgYWJpbGl0eSBmb3IgcHJvZ3JhbXMgb2YgdGhpcyB0eXBlIHRvIHVwZGF0ZSBgc29ja21hcHNgLCBhbmQgdGhlIGBCUEZfU1lTQ0FMTGAgaXMgcHJlY2lzZWx5IGhvdyB0aGVzZSBwcm9ncmFtcyBhcmUgaW50cm9kdWNlZCBpbnRvIHRoZSBrZXJuZWwsIHNvIHRoaXMgbmVlZHMgdG8gYmUgY2hlY2tlZC4KCkluIGVzc2VuY2UsIHRoaXMgaXMgYSBjbGVhci1jdXQgY2FzZSB3aGVyZSBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uIHRvIGEgY29yZSBjb21wb25lbnQgKHRoZSBCUEYgdmVyaWZpZXIpIG5lZWRzIGV4dGVuc2l2ZSBmdXp6aW5nLiBJdCYjMzk7cyBhIHJpc2sgYXNzZXNzbWVudCBhbmQgdGVzdCBjYXNlIGFsbCByb2xsZWQgaW50byBvbmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzIwIDA0OjA0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUEZfU1lTQ0FMTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O21heV91cGRhdGVfc29ja21hcCYjMzQ7LAogICAgJiMzNDtjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHJlc3RyaWN0IHdoaWNoIEJQRiBwcm9ncmFtIHR5cGVzIGNhbiB1cGRhdGUgc29ja21hcHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIHByb2dyYW0gdmFsaWRhdGlvbiBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlBGX1NZU0NBTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttYXlfdXBkYXRlX3NvY2ttYXAmIzM0OywKICAgICYjMzQ7Y2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIEJQRiB2ZXJpZmllciB0byByZXN0cmljdCB3aGljaCBCUEYgcHJvZ3JhbSB0eXBlcyBjYW4gdXBkYXRlIHNvY2ttYXBzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgQlBGIHZlcmlmaWVyIGxvZ2ljIHRoYXQgYWZmZWN0cyBwcm9ncmFtIHZhbGlkYXRpb24gYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDoyNi45MDYyODA3NDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTEzODA1MTgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1heV91cGRhdGVfc29ja21hcFwiLFxuICAgIFwiY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHJlc3RyaWN0IHdoaWNoIEJQRiBwcm9ncmFtIHR5cGVzIGNhbiB1cGRhdGUgc29ja21hcHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIHByb2dyYW0gdmFsaWRhdGlvbiBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6MjYuOTA2Mjg4NTgzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzM0MTEzOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhNzFjNjE5YTM3Y2ExN2YyMTU2N2NiNTUxYzNmMGZjZTc2NWE1ZWEyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgSnVuIDIwIDA0OjA0OjI1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYyBiL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xcbmluZGV4IDdmYjg4ZTFjZDdjNGQwLi45NGQyMjU1MjFiNWExNiAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG4rKysgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcXG5AQCAtODc2NiwxMSArODc2Niw3IEBAIHN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcXG4gXFx0XFx0XFx0cmV0dXJuIHRydWU7XFxuIFxcdFxcdGJyZWFrO1xcbiBcXHRjYXNlIEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUjpcXG4tXFx0Y2FzZSBCUEZfUFJPR19UWVBFX1NDSEVEX0NMUzpcXG4tXFx0Y2FzZSBCUEZfUFJPR19UWVBFX1NDSEVEX0FDVDpcXG4tXFx0Y2FzZSBCUEZfUFJPR19UWVBFX1hEUDpcXG4gXFx0Y2FzZSBCUEZfUFJPR19UWVBFX1NLX1JFVVNFUE9SVDpcXG4tXFx0Y2FzZSBCUEZfUFJPR19UWVBFX0ZMT1dfRElTU0VDVE9SOlxcbiBcXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0tfTE9PS1VQOlxcbiBcXHRcXHRyZXR1cm4gdHJ1ZTtcXG4gXFx0ZGVmYXVsdDpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6MjcuMzQwMzEyOTAzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODcwNDAxMTI3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUEZfU1lTQ0FMTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm1heV91cGRhdGVfc29ja21hcFwiLFxuICAgIFwiY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgQlBGIHZlcmlmaWVyIHRvIHJlc3RyaWN0IHdoaWNoIEJQRiBwcm9ncmFtIHR5cGVzIGNhbiB1cGRhdGUgc29ja21hcHMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBCUEYgdmVyaWZpZXIgbG9naWMgdGhhdCBhZmZlY3RzIHByb2dyYW0gdmFsaWRhdGlvbiBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhNzFjNjE5YTM3Y2ExN2YyMTU2N2NiNTUxYzNmMGZjZTc2NWE1ZWEyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdW4gMjAgMDQ6MDQ6MjUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmNcbmluZGV4IDdmYjg4ZTFjZDdjNGQwLi45NGQyMjU1MjFiNWExNiAxMDA2NDRcbi0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuY1xuKysrIGIva2VybmVsL2JwZi92ZXJpZmllci5jXG5AQCAtODc2NiwxMSArODc2Niw3IEBAIHN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcbiBcdFx0XHRyZXR1cm4gdHJ1ZTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIEJQRl9QUk9HX1RZUEVfU09DS0VUX0ZJTFRFUjpcbi1cdGNhc2UgQlBGX1BST0dfVFlQRV9TQ0hFRF9DTFM6XG4tXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0NIRURfQUNUOlxuLVx0Y2FzZSBCUEZfUFJPR19UWVBFX1hEUDpcbiBcdGNhc2UgQlBGX1BST0dfVFlQRV9TS19SRVVTRVBPUlQ6XG4tXHRjYXNlIEJQRl9QUk9HX1RZUEVfRkxPV19ESVNTRUNUT1I6XG4gXHRjYXNlIEJQRl9QUk9HX1RZUEVfU0tfTE9PS1VQOlxuIFx0XHRyZXR1cm4gdHJ1ZTtcbiBcdGRlZmF1bHQ6XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDoyNy4zNDAzMTQyOTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTM1NTMzNjA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU29ja21hcCBVcGRhdGUgUmVzdHJpY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBsb29rcyBsaWtlIHdlJ3ZlIG1hZGUgYSBjaGFuZ2UgdG8gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFNwZWNpZmljYWxseSwgdGhlIGBtYXlfdXBkYXRlX3NvY2ttYXBgIGZ1bmN0aW9uIGlzIHRoZSB0YXJnZXQuIEFoLCByaWdodC4gSXQncyB0aWdodGVuaW5nIHRoZSByZXN0cmljdGlvbnMgb24gd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgYXJlIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzb2NrbWFwLiBJdCBsb29rcyBsaWtlIGBCUEZfUFJPR19UWVBFX1NDSEVEX0NMU2AsIGBCUEZfUFJPR19UWVBFX1NDSEVEX0FDVGAsIGBCUEZfUFJPR19UWVBFX1hEUGAsIGFuZCBgQlBGX1BST0dfVFlQRV9GTE9XX0RJU1NFQ1RPUmAgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcGVybWlzc2libGUgbGlzdC4gVGhhdCdzIGludGVyZXN0aW5nLCBJIG5lZWQgdG8gZGlnIGRlZXBlciBpbnRvIHRoZSByZWFzb25pbmcgaGVyZS4gUGVyaGFwcyB0aGVyZSB3YXMgYSBzZWN1cml0eSBjb25jZXJuIG9yIHNvbWUgdW5leHBlY3RlZCBiZWhhdmlvciBpZGVudGlmaWVkLiBJJ2xsIG5lZWQgdG8gcmV2aWV3IHRoZSBjb250ZXh0IHN1cnJvdW5kaW5nIHRoaXMgY2hhbmdlIGluIGBrZXJuZWwvYnBmL3ZlcmlmaWVyLmNgIHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBhbmQgdGhlIHJhdGlvbmFsZSBiZWhpbmQgdGhlc2UgcGFydGljdWxhciByZW1vdmFscy4gSSdsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhhdCBmdW5jdGlvbiBub3cgYW5kIHNlZSB3aGF0IGl0IHRlbGxzIG1lLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODkwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6MzEuMjc1ODQ5Njg4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzNDUxMjk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1heV91cGRhdGVfc29ja21hcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvYnBmL3ZlcmlmaWVyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jPTg0NzY9c3RhdGljIGludCBjaGVja19mdW5jX2FyZyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCB1MzIgYXJnLFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3NDUtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg3NDY6c3RhdGljIGJvb2wgbWF5X3VwZGF0ZV9zb2NrbWFwKHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsIGludCBmdW5jX2lkKVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04NzQ3LXtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYz04Nzg2PXN0YXRpYyBpbnQgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eShzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LFxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NjEtXFx0XFx0ICAgIGZ1bmNfaWQgIT0gQlBGX0ZVTkNfbWFwX2xvb2t1cF9lbGVtIFxcdTAwMjZcXHUwMDI2XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg4NjI6XFx0XFx0ICAgICFtYXlfdXBkYXRlX3NvY2ttYXAoZW52LCBmdW5jX2lkKSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg2My1cXHRcXHRcXHRnb3RvIGVycm9yO1xcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NzAtXFx0XFx0ICAgIGZ1bmNfaWQgIT0gQlBGX0ZVTkNfbWFwX2xvb2t1cF9lbGVtIFxcdTAwMjZcXHUwMDI2XFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg4NzE6XFx0XFx0ICAgICFtYXlfdXBkYXRlX3NvY2ttYXAoZW52LCBmdW5jX2lkKSlcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODg3Mi1cXHRcXHRcXHRnb3RvIGVycm9yO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDozMS4zMjkzMDUwMTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjQyMjc0MTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZyb20gbXkgZXhwZXJ0IHBlcnNwZWN0aXZlOlxuXG4qKkJQRiBWZXJpZmllciBDaGFuZ2U6IFNjb3BlIGZvciBGdXp6aW5nKipcblxuQWxyaWdodCwgc28gdGhlIHBhdGNoIGxvb2tzIGxpa2UgaXQncyB0d2Vha2luZyBgbWF5X3VwZGF0ZV9zb2NrbWFwYCwgd2hpY2ggaXMgYSBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIGZyb20gYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgLiBUaGF0J3MgYSBrZXkgc3BvdOKAlGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIEJQRiB2ZXJpZmllciB0aGF0J3MgZXNzZW50aWFsbHkgcmVzdHJpY3Rpbmcgd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgY2FuIGFjdHVhbGx5IG1vZGlmeSB0aGUgc29ja21hcC4gVGhlIHZlcmlmaWVyJ3MgYWx3YXlzIGEgcG9pbnQgb2YgaW50ZXJlc3QsIGFuZCAqdGhpcyogY2hhbmdlIHNjcmVhbXMgXCJmdXp6IG1lIVwiIGltbWVkaWF0ZWx5LiBBbnkgbW9kaWZpY2F0aW9uIHRvIHRoZSB2ZXJpZmljYXRpb24gcnVsZXMgb3BlbnMgdXAgcG90ZW50aWFsIGZvciBub3ZlbCBleHBsb2l0IHZlY3RvcnMsIHBhcnRpY3VsYXJseSBpbiBob3cgcHJvZ3JhbXMgaW50ZXJhY3Qgd2l0aCBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLlxuXG5Ob3csIGxldOKAmXMgZ2V0IHNwZWNpZmljLiBJIG5lZWQgdG8gbmFpbCBkb3duIHRoZSByZWxldmFudCBjb25maWcgb3B0aW9ucyBzbyBJIGNhbiB0YXJnZXQgdGhpcyBwcm9wZXJseS4gV2UncmUgZ2VuZXJhbGx5IHRhbGtpbmcgYWJvdXQgQlBGIGZlYXR1cmVzIGhlcmUsIHNvIGBDT05GSUdfQlBGX1NZU0NBTExgIGFuZCBgQ09ORklHX0NHUk9VUF9CUEZgIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIGdldHRpbmcgc29ja21hcCB1cCBhbmQgcnVubmluZy4gQnV0IEkgc2hvdWxkIGNvbmZpcm0gd2hldGhlciB0aGVyZSdzIGEgbW9yZSB0YXJnZXRlZCBvcHRpb24sIHBlcmhhcHMgaW4gYG5ldC9jb3JlL3NvY2tfbWFwLmNgIG9yIGEgc2ltaWxhciBmaWxlLiBJdCdzIGEgZ29vZCBpZGVhIHRvIGlkZW50aWZ5IGFsbCB0aGUgZGVwZW5kZW5jaWVzLCBhcyB0aGF0IGNhbiBnaXZlIGEgbW9yZSByZWxpYWJsZSBwbGF0Zm9ybSBmb3IgZXhwZXJpbWVudGF0aW9uLiBVbmRlcnN0YW5kaW5nIHRoZSBwcmVyZXF1aXNpdGVzIHdpbGwgaGVscCBtZSBjcmVhdGUgYSByb2J1c3QgdGVzdCBzZXR1cC4gSSdsbCBuZWVkIHRvIGtub3cgdGhlIGNvbXBsZXRlIGNvbmZpZ3VyYXRpb24gdG8gdHJpZ2dlciB0aGUgbmV3IGJlaGF2aW9yIGFuZCBjcmFmdCBlZmZlY3RpdmUgZnV6emluZyBoYXJuZXNzZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MDIsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6MzUuNTcxNTgxNDA0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0OTc4MjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNvY2ttYXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9jb3JlL2ZpbHRlci5jPTE2MTE9aW50IHNrX3JldXNlcG9ydF9hdHRhY2hfYnBmKHUzMiB1ZmQsIHN0cnVjdCBzb2NrICpzaylcXG4tLVxcbm5ldC9jb3JlL2ZpbHRlci5jLTE2MjYtXFx0XFx0LyogTGlrZSBvdGhlciBub24gQlBGX1BST0dfVFlQRV9TT0NLRVRfRklMVEVSXFxubmV0L2NvcmUvZmlsdGVyLmM6MTYyNzpcXHRcXHQgKiBicGYgcHJvZyAoZS5nLiBzb2NrbWFwKS4gIEl0IGRlcGVuZHMgb24gdGhlXFxubmV0L2NvcmUvZmlsdGVyLmMtMTYyOC1cXHRcXHQgKiBsaW1pdGF0aW9uIGltcG9zZWQgYnkgYnBmX3Byb2dfbG9hZCgpLlxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xNz1zdHJ1Y3QgYnBmX3N0YWIge1xcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0zMS0gKi9cXG5uZXQvY29yZS9zb2NrX21hcC5jOjMyOnN0YXRpYyBERUZJTkVfTVVURVgoc29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0zMy1cXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM9Njg9aW50IHNvY2tfbWFwX2dldF9mcm9tX2ZkKGNvbnN0IHVuaW9uIGJwZl9hdHRyICphdHRyLCBzdHJ1Y3QgYnBmX3Byb2cgKnByb2cpXFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTc5LVxcdFxcdHJldHVybiBQVFJfRVJSKG1hcCk7XFxubmV0L2NvcmUvc29ja19tYXAuYzo4MDpcXHRtdXRleF9sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTgxLVxcdHJldCA9IHNvY2tfbWFwX3Byb2dfdXBkYXRlKG1hcCwgcHJvZywgTlVMTCwgTlVMTCwgYXR0ci1cXHUwMDNlYXR0YWNoX3R5cGUpO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6ODI6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTgzLVxcdHJldHVybiByZXQ7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jPTg2PWludCBzb2NrX21hcF9wcm9nX2RldGFjaChjb25zdCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgZW51bSBicGZfcHJvZ190eXBlIHB0eXBlKVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xMDgtXFxubmV0L2NvcmUvc29ja19tYXAuYzoxMDk6XFx0bXV0ZXhfbG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xMTAtXFx0cmV0ID0gc29ja19tYXBfcHJvZ191cGRhdGUobWFwLCBOVUxMLCBwcm9nLCBOVUxMLCBhdHRyLVxcdTAwM2VhdHRhY2hfdHlwZSk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxMTE6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTExMi1wdXRfcHJvZzpcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM9NzA0PXN0cnVjdCBzb2NrX21hcF9zZXFfaW5mbyB7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTcwOS1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjcxMDpzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAge1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtNzExLVxcdF9fYnBmX21kX3B0cihzdHJ1Y3QgYnBmX2l0ZXJfbWV0YSAqLCBtZXRhKTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtNzE2LVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6NzE3OkRFRklORV9CUEZfSVRFUl9GVU5DKHNvY2ttYXAsIHN0cnVjdCBicGZfaXRlcl9tZXRhICptZXRhLFxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtNzE4LVxcdFxcdCAgICAgc3RydWN0IGJwZl9tYXAgKm1hcCwgdm9pZCAqa2V5LFxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz03NTY9c3RhdGljIGludCBzb2NrX21hcF9zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtNzU5LVxcdHN0cnVjdCBzb2NrX21hcF9zZXFfaW5mbyAqaW5mbyA9IHNlcS1cXHUwMDNlcHJpdmF0ZTtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjc2MDpcXHRzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAgY3R4ID0ge307XFxubmV0L2NvcmUvc29ja19tYXAuYy03NjEtXFx0c3RydWN0IGJwZl9pdGVyX21ldGEgbWV0YTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM9MTM2OD1zdGF0aWMgaW50IHNvY2tfaGFzaF9zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTM3MS1cXHRzdHJ1Y3Qgc29ja19oYXNoX3NlcV9pbmZvICppbmZvID0gc2VxLVxcdTAwM2Vwcml2YXRlO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTM3MjpcXHRzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAgY3R4ID0ge307XFxubmV0L2NvcmUvc29ja19tYXAuYy0xMzczLVxcdHN0cnVjdCBicGZfc2h0YWJfZWxlbSAqZWxlbSA9IHY7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jPTE3MTg9RVhQT1JUX1NZTUJPTF9HUEwoc29ja19tYXBfY2xvc2UpO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTcxOS1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3MjA6c3RydWN0IHNvY2ttYXBfbGluayB7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzIxLVxcdHN0cnVjdCBicGZfbGluayBsaW5rO1xcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xNzI1PXN0YXRpYyB2b2lkIHNvY2tfbWFwX2xpbmtfcmVsZWFzZShzdHJ1Y3QgYnBmX2xpbmsgKmxpbmspXFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzI2LXtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mjc6XFx0c3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rID0gY29udGFpbmVyX29mKGxpbmssIHN0cnVjdCBzb2NrbWFwX2xpbmssIGxpbmspO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTcyOC1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mjk6XFx0bXV0ZXhfbG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxNzMwOlxcdGlmICghc29ja21hcF9saW5rLVxcdTAwM2VtYXApXFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzMxLVxcdFxcdGdvdG8gb3V0O1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTczMi1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3MzM6XFx0V0FSTl9PTl9PTkNFKHNvY2tfbWFwX3Byb2dfdXBkYXRlKHNvY2ttYXBfbGluay1cXHUwMDNlbWFwLCBOVUxMLCBsaW5rLVxcdTAwM2Vwcm9nLCBsaW5rLFxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTczNC1cXHRcXHRcXHRcXHRcXHQgIGxpbmstXFx1MDAzZWF0dGFjaF90eXBlKSk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzM1LVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTczNjpcXHRicGZfbWFwX3B1dF93aXRoX3VyZWYoc29ja21hcF9saW5rLVxcdTAwM2VtYXApO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTczNzpcXHRzb2NrbWFwX2xpbmstXFx1MDAzZW1hcCA9IE5VTEw7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzM4LW91dDpcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Mzk6XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE3NDAtfVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xNzU3PXN0YXRpYyBpbnQgc29ja19tYXBfbGlua191cGRhdGVfcHJvZyhzdHJ1Y3QgYnBmX2xpbmsgKmxpbmssXFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTE3NjAte1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTc2MTpcXHRjb25zdCBzdHJ1Y3Qgc29ja21hcF9saW5rICpzb2NrbWFwX2xpbmsgPSBjb250YWluZXJfb2YobGluaywgc3RydWN0IHNvY2ttYXBfbGluaywgbGluayk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzYyLVxcdHN0cnVjdCBicGZfcHJvZyAqKnBwcm9nLCAqb2xkX2xpbmtfcHJvZztcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc2NS1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3NjY6XFx0bXV0ZXhfbG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzY3LVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzc4LVxcdH1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3Nzk6XFx0aWYgKCFzb2NrbWFwX2xpbmstXFx1MDAzZW1hcCkge1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc4MC1cXHRcXHRyZXQgPSAtRU5PTElOSztcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTc4My1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE3ODQ6XFx0cmV0ID0gc29ja19tYXBfcHJvZ19saW5rX2xvb2t1cChzb2NrbWFwX2xpbmstXFx1MDAzZW1hcCwgXFx1MDAyNnBwcm9nLCBcXHUwMDI2cGxpbmssXFxubmV0L2NvcmUvc29ja19tYXAuYy0xNzg1LVxcdFxcdFxcdFxcdFxcdGxpbmstXFx1MDAzZWF0dGFjaF90eXBlKTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTgwNy1vdXQ6XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODA4OlxcdG11dGV4X3VubG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xODA5LVxcdHJldHVybiByZXQ7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MTEtXFxubmV0L2NvcmUvc29ja19tYXAuYzoxODEyOnN0YXRpYyB1MzIgc29ja19tYXBfbGlua19nZXRfbWFwX2lkKGNvbnN0IHN0cnVjdCBzb2NrbWFwX2xpbmsgKnNvY2ttYXBfbGluaylcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MTMte1xcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xODE1LVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgxNjpcXHRtdXRleF9sb2NrKFxcdTAwMjZzb2NrbWFwX211dGV4KTtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4MTc6XFx0aWYgKHNvY2ttYXBfbGluay1cXHUwMDNlbWFwKVxcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgxODpcXHRcXHRtYXBfaWQgPSBzb2NrbWFwX2xpbmstXFx1MDAzZW1hcC1cXHUwMDNlaWQ7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODE5OlxcdG11dGV4X3VubG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xODIwLVxcdHJldHVybiBtYXBfaWQ7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jPTE4MjM9c3RhdGljIGludCBzb2NrX21hcF9saW5rX2ZpbGxfaW5mbyhjb25zdCBzdHJ1Y3QgYnBmX2xpbmsgKmxpbmssXFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MjUte1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgyNjpcXHRjb25zdCBzdHJ1Y3Qgc29ja21hcF9saW5rICpzb2NrbWFwX2xpbmsgPSBjb250YWluZXJfb2YobGluaywgc3RydWN0IHNvY2ttYXBfbGluaywgbGluayk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODI3OlxcdHUzMiBtYXBfaWQgPSBzb2NrX21hcF9saW5rX2dldF9tYXBfaWQoc29ja21hcF9saW5rKTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4MjgtXFxubmV0L2NvcmUvc29ja19tYXAuYzoxODI5OlxcdGluZm8tXFx1MDAzZXNvY2ttYXAubWFwX2lkID0gbWFwX2lkO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzMDpcXHRpbmZvLVxcdTAwM2Vzb2NrbWFwLmF0dGFjaF90eXBlID0gbGluay1cXHUwMDNlYXR0YWNoX3R5cGU7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xODMxLVxcdHJldHVybiAwO1xcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xODM0PXN0YXRpYyB2b2lkIHNvY2tfbWFwX2xpbmtfc2hvd19mZGluZm8oY29uc3Qgc3RydWN0IGJwZl9saW5rICpsaW5rLFxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xODM2LXtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4Mzc6XFx0Y29uc3Qgc3RydWN0IHNvY2ttYXBfbGluayAqc29ja21hcF9saW5rID0gY29udGFpbmVyX29mKGxpbmssIHN0cnVjdCBzb2NrbWFwX2xpbmssIGxpbmspO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTgzODpcXHR1MzIgbWFwX2lkID0gc29ja19tYXBfbGlua19nZXRfbWFwX2lkKHNvY2ttYXBfbGluayk7XFxubmV0L2NvcmUvc29ja19tYXAuYy0xODM5LVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYz0xODUzPWludCBzb2NrX21hcF9saW5rX2NyZWF0ZShjb25zdCB1bmlvbiBicGZfYXR0ciAqYXR0ciwgc3RydWN0IGJwZl9wcm9nICpwcm9nKVxcbi0tXFxubmV0L2NvcmUvc29ja19tYXAuYy0xODU1LVxcdHN0cnVjdCBicGZfbGlua19wcmltZXIgbGlua19wcmltZXI7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODU2OlxcdHN0cnVjdCBzb2NrbWFwX2xpbmsgKnNvY2ttYXBfbGluaztcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4NTctXFx0ZW51bSBicGZfYXR0YWNoX3R5cGUgYXR0YWNoX3R5cGU7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4NzEtXFxubmV0L2NvcmUvc29ja19tYXAuYzoxODcyOlxcdHNvY2ttYXBfbGluayA9IGt6YWxsb2Nfb2JqKCpzb2NrbWFwX2xpbmssIEdGUF9VU0VSKTtcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4NzM6XFx0aWYgKCFzb2NrbWFwX2xpbmspIHtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4NzQtXFx0XFx0cmV0ID0gLUVOT01FTTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg3OC1cXHRhdHRhY2hfdHlwZSA9IGF0dHItXFx1MDAzZWxpbmtfY3JlYXRlLmF0dGFjaF90eXBlO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg3OTpcXHRicGZfbGlua19pbml0KFxcdTAwMjZzb2NrbWFwX2xpbmstXFx1MDAzZWxpbmssIEJQRl9MSU5LX1RZUEVfU09DS01BUCwgXFx1MDAyNnNvY2tfbWFwX2xpbmtfb3BzLCBwcm9nLFxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4MC1cXHRcXHQgICAgICBhdHRhY2hfdHlwZSk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODgxOlxcdHNvY2ttYXBfbGluay1cXHUwMDNlbWFwID0gbWFwO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4Mi1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4ODM6XFx0cmV0ID0gYnBmX2xpbmtfcHJpbWUoXFx1MDAyNnNvY2ttYXBfbGluay1cXHUwMDNlbGluaywgXFx1MDAyNmxpbmtfcHJpbWVyKTtcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE4ODQtXFx0aWYgKHJldCkge1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg4NTpcXHRcXHRrZnJlZShzb2NrbWFwX2xpbmspO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4Ni1cXHRcXHRnb3RvIG91dDtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg4OC1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE4ODk6XFx0bXV0ZXhfbG9jayhcXHUwMDI2c29ja21hcF9tdXRleCk7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxODkwOlxcdHJldCA9IHNvY2tfbWFwX3Byb2dfdXBkYXRlKG1hcCwgcHJvZywgTlVMTCwgXFx1MDAyNnNvY2ttYXBfbGluay1cXHUwMDNlbGluaywgYXR0YWNoX3R5cGUpO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmM6MTg5MTpcXHRtdXRleF91bmxvY2soXFx1MDAyNnNvY2ttYXBfbXV0ZXgpO1xcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTg5Mi1cXHRpZiAocmV0KSB7XFxuLS1cXG5uZXQvY29yZS9zb2NrX21hcC5jPTE5NDk9c3RhdGljIHN0cnVjdCBicGZfaXRlcl9yZWcgc29ja19tYXBfaXRlcl9yZWcgPSB7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxOTUwOlxcdC50YXJnZXRcXHRcXHRcXHQ9IFxcXCJzb2NrbWFwXFxcIixcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE5NTEtXFx0LmF0dGFjaF90YXJnZXRcXHRcXHQ9IHNvY2tfbWFwX2l0ZXJfYXR0YWNoX3RhcmdldCxcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk1Ni1cXHQuY3R4X2FyZ19pbmZvXFx0XFx0PSB7XFxubmV0L2NvcmUvc29ja19tYXAuYzoxOTU3OlxcdFxcdHsgb2Zmc2V0b2Yoc3RydWN0IGJwZl9pdGVyX19zb2NrbWFwLCBrZXkpLFxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk1OC1cXHRcXHQgIFBUUl9UT19CVUYgfCBQVFJfTUFZQkVfTlVMTCB8IE1FTV9SRE9OTFkgfSxcXG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NTk6XFx0XFx0eyBvZmZzZXRvZihzdHJ1Y3QgYnBmX2l0ZXJfX3NvY2ttYXAsIHNrKSxcXG5uZXQvY29yZS9zb2NrX21hcC5jLTE5NjAtXFx0XFx0ICBQVFJfVE9fQlRGX0lEX09SX05VTEwgfSxcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk2My1cXG5uZXQvY29yZS9zb2NrX21hcC5jOjE5NjQ6c3RhdGljIGludCBfX2luaXQgYnBmX3NvY2ttYXBfaXRlcl9pbml0KHZvaWQpXFxubmV0L2NvcmUvc29ja19tYXAuYy0xOTY1LXtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfbWFwLmMtMTk2OS19XFxubmV0L2NvcmUvc29ja19tYXAuYzoxOTcwOmxhdGVfaW5pdGNhbGwoYnBmX3NvY2ttYXBfaXRlcl9pbml0KTtcXG4tLVxcbm5ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmM9NDI3PXZvaWQgcmV1c2Vwb3J0X2RldGFjaF9zb2NrKHN0cnVjdCBzb2NrICpzaylcXG4tLVxcbm5ldC9jb3JlL3NvY2tfcmV1c2Vwb3J0LmMtNDQxLVxcdCAqXFxubmV0L2NvcmUvc29ja19yZXVzZXBvcnQuYzo0NDI6XFx0ICogT3RoZXIgYnBmIG1hcCB0eXBlcyB0aGF0IHdvcmsgd2l0aCByZXVzZXBvcnQsIGxpa2Ugc29ja21hcCxcXG5uZXQvY29yZS9zb2NrX3JldXNlcG9ydC5jLTQ0My1cXHQgKiBkb24ndCBuZWVkIGFuIGV4cGxpY2l0IGNhbGxiYWNrIGZyb20gaGVyZS4gVGhleSBvdmVycmlkZSBza1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDozNS42MjY1NjM4MTNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjc2NzI0NDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipCUEYgU29ja21hcCBDb25maWd1cmF0aW9uIEF1ZGl0KipcblxuQWxyaWdodCwgc28gSSdtIGRpdmluZyBpbnRvIHRoaXMgQlBGIHNvY2ttYXAgY29uZmlndXJhdGlvbi4gIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBjb25maXJtIHRoZSBwcmVyZXF1aXNpdGVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlncyBhcmUgZW5hYmxlZC4gTGV0J3Mgc2VlLCBJIGJlbGlldmUgaXQncyBgQ09ORklHX0JQRl9TWVNDQUxMYCBhbmQgYENPTkZJR19DR1JPVVBfQlBGYCB0aGF0IGFyZSBjcml0aWNhbCBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5LiBPa2F5LCBsZXQncyBqdXN0IG1ha2UgZG91Ymx5IHN1cmUgYWJvdXQgaG93IHRoZSBgc29ja19tYXAub2AgbW9kdWxlIGlzIGJlaW5nIGJ1aWx0IGluIHJlbGF0aW9uIHRvIHRob3NlLiBRdWljayBjaGVjayBvZiB0aGUgYG5ldC9jb3JlL01ha2VmaWxlYCBpcyB0aGUgbG9naWNhbCBuZXh0IHN0ZXAuIEl0J3MgdGhlIE1ha2VmaWxlIHRoYXQgb3JjaGVzdHJhdGVzIHRoZSBvYmplY3QgZmlsZSBnZW5lcmF0aW9uLiBJJ20gZ29pbmcgdG8gbG9vayBmb3IgYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGRpcmVjdGl2ZXMgdGhhdCBtaWdodCB0aWUgdGhlIGluY2x1c2lvbiBvZiBgc29ja19tYXAub2AgdG8gZWl0aGVyIG9mIHRob3NlIGNvbmZpZyBvcHRpb25zLiBJdCBpcyBpbXBlcmF0aXZlIHRoYXQgaXQncyBidWlsdCBvbmx5IHdoZW4gdGhlIG5lY2Vzc2FyeSBzdXBwb3J0IGlzIHByZXNlbnQsIG90aGVyd2lzZSwgd2UnbGwgc2VlIGEgYnVpbGQgZXJyb3IsIG9yIHdvcnNlLCBpbmNvcnJlY3QgYmVoYXZpb3IuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3MDksIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDozOS4zMDMyOTAzNTRaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ2MjIxNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic29ja19tYXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvTWFrZWZpbGU9NDQ9b2JqLSQoQ09ORklHX05FVF9TT0NLX01TRykgKz0gc2ttc2cub1xcbm5ldC9jb3JlL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gc29ja19tYXAub1xcbm5ldC9jb3JlL01ha2VmaWxlLTQ2LW9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnBmX3NrX3N0b3JhZ2Uub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDozOS4zNTc5MTc0NTNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODEwMDQ5NDc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQlBGIFNvY2tldCBNYXAgUmVzdHJpY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGRlYWxpbmcgd2l0aCBgQ09ORklHX0JQRl9TWVNDQUxMYC4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSByZXN0cmljdGluZyBjZXJ0YWluIEJQRiBwcm9ncmFtIHR5cGVzIOKAkyBzcGVjaWZpY2FsbHkgYEJQRl9QUk9HX1RZUEVfU0NIRURfQ0xTYCwgYEJQRl9QUk9HX1RZUEVfU0NIRURfQUNUYCwgYEJQRl9QUk9HX1RZUEVfWERQYCwgYW5kIGBCUEZfUFJPR19UWVBFX0ZMT1dfRElTU0VDVE9SYCDigJMgZnJvbSBiZWluZyBhYmxlIHRvIHVwZGF0ZSB0aGUgc29ja21hcC4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaW5kIHRoZSBrZXkgZnVuY3Rpb25zIGludm9sdmVkLiBMb29rcyBsaWtlIGBtYXlfdXBkYXRlX3NvY2ttYXBgIGlzIHRoZSBzdGF0aWMgZnVuY3Rpb24gZG9pbmcgdGhlIGhlYXZ5IGxpZnRpbmcsIGxvY2F0ZWQgaW4gYGtlcm5lbC9icGYvdmVyaWZpZXIuY2AuIFRoaXMgaXMgdGhlbiBjYWxsZWQgYnkgYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgLiBNeSBpbW1lZGlhdGUgZm9jdXMgd2lsbCBiZSBvbiB0aGVzZSB0d28gZnVuY3Rpb25zOiBlaXRoZXIgYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgIG9yIGBtYXlfdXBkYXRlX3NvY2ttYXBgLiBMZXQncyBxdWlja2x5IGRldGVybWluZSBpZiBgbWF5X3VwZGF0ZV9zb2NrbWFwYCBpcyBpbmxpbmUgb3Igbm90LCBzbyBJIGNhbiB1bmRlcnN0YW5kIHRoZSBjb250ZXh0IG9mIGl0cyBleGVjdXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxMTYsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6NDQuMTY3OTY4ODM3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODA2NzUyOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYXlfdXBkYXRlX3NvY2ttYXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuYz04NDc2PXN0YXRpYyBpbnQgY2hlY2tfZnVuY19hcmcoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudiwgdTMyIGFyZyxcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04NzQ1LVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4NzQ2OnN0YXRpYyBib29sIG1heV91cGRhdGVfc29ja21hcChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBpbnQgZnVuY19pZClcXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtODc0Ny17XFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9ODc4Nj1zdGF0aWMgaW50IGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHkoc3RydWN0IGJwZl92ZXJpZmllcl9lbnYgKmVudixcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04ODYxLVxcdFxcdCAgICBmdW5jX2lkICE9IEJQRl9GVU5DX21hcF9sb29rdXBfZWxlbSBcXHUwMDI2XFx1MDAyNlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4ODYyOlxcdFxcdCAgICAhbWF5X3VwZGF0ZV9zb2NrbWFwKGVudiwgZnVuY19pZCkpXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NjMtXFx0XFx0XFx0Z290byBlcnJvcjtcXG4tLVxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy04ODcwLVxcdFxcdCAgICBmdW5jX2lkICE9IEJQRl9GVU5DX21hcF9sb29rdXBfZWxlbSBcXHUwMDI2XFx1MDAyNlxcbmtlcm5lbC9icGYvdmVyaWZpZXIuYzo4ODcxOlxcdFxcdCAgICAhbWF5X3VwZGF0ZV9zb2NrbWFwKGVudiwgZnVuY19pZCkpXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg4NzItXFx0XFx0XFx0Z290byBlcnJvcjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6NDQuMjI2MDM5NjM1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNTAzNDU1NTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFBvdGVudGlhbCBBcmVhcyBmb3IgUmVmaW5lbWVudCoqXG5cbk9rYXksIHNvIEknbSBob25pbmcgaW4gb24gc29tZSBrZXkgYXJlYXMgaW4gdGhlIGNvZGViYXNlLiBNeSBhdHRlbnRpb24gaXMgZHJhd24gdG8gYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgIOKAkyB0aGF0IHNlZW1zIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBpbnZlc3RpZ2F0aW9uLCBhIHBvdGVudGlhbCBmb2NhbCBzeW1ib2wuIEkgYWxzbyBzZWUgYG1heV91cGRhdGVfc29ja21hcGAgYXMgYSByZWxldmFudCBzeW1ib2wgdG8gY29uc2lkZXIgaW4gY29uanVuY3Rpb24uIFRvIGRlZXBlbiBteSB1bmRlcnN0YW5kaW5nIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSBvcHBvcnR1bml0aWVzIHRvIHJlZmFjdG9yIG9yIGVuaGFuY2UgdGhlIGNvZGViYXNlLCBJIG5lZWQgdG8gY2hlY2sgaG93IGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCBpcyB1c2VkIHdpdGhpbiB0aGUgcHJvamVjdC4gSSdsbCB0cmFjZSBpdHMgY2FsbHMgdG8gc2VlIHdoZXJlIGl0IGlzIGJlaW5nIHVzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc5MDIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDo0Ny4zNzYzODc5MTlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzODA4OTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwia2VybmVsL2JwZi92ZXJpZmllci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9icGYvdmVyaWZpZXIuYz04NzgwPWJvb2wgYnBmX2FsbG93X3RhaWxfY2FsbF9pbl9zdWJwcm9ncyhzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52KVxcbi0tXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3ODUtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjg3ODY6c3RhdGljIGludCBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5KHN0cnVjdCBicGZfdmVyaWZpZXJfZW52ICplbnYsXFxua2VybmVsL2JwZi92ZXJpZmllci5jLTg3ODctXFx0XFx0XFx0XFx0XFx0c3RydWN0IGJwZl9tYXAgKm1hcCwgaW50IGZ1bmNfaWQpXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmM9MTAyNzE9c3RhdGljIGludCBjaGVja19oZWxwZXJfY2FsbChzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LCBzdHJ1Y3QgYnBmX2luc24gKmluc24sXFxuLS1cXG5rZXJuZWwvYnBmL3ZlcmlmaWVyLmMtMTA3MjYtXFxua2VybmVsL2JwZi92ZXJpZmllci5jOjEwNzI3OlxcdGVyciA9IGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHkoZW52LCBtZXRhLm1hcC5wdHIsIGZ1bmNfaWQpO1xcbmtlcm5lbC9icGYvdmVyaWZpZXIuYy0xMDcyOC1cXHRpZiAoZXJyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDo0Ny40MzAyMDQ2NzhaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkwODUwOTg1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgQlBGIEZ1bmN0aW9uYWxpdHkgYW5kIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIEkndmUgY29uZmlybWVkIHRoYXQgdGhlIGBjaGVja19oZWxwZXJfY2FsbGAgZnVuY3Rpb24gZG9lcyBpbmRlZWQgY2FsbCBgY2hlY2tfbWFwX2Z1bmNfY29tcGF0aWJpbGl0eWAuIFRoYXQgbWFrZXMgYGNoZWNrX21hcF9mdW5jX2NvbXBhdGliaWxpdHlgIGEga2V5IGFyZWEgdG8gemVybyBpbiBvbiBmb3IgZnVydGhlciBhbmFseXNpcywgYXMgZG9lcyBgbWF5X3VwZGF0ZV9zb2NrbWFwYC4gQm90aCBvZiB0aGVzZSBzZWVtIGxpa2UgZ29vZCBmb2N1cyBwb2ludHMgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgYWxsIHdvcmtzLlxuXG5Ob3csIEknbGwgc3dpdGNoIGdlYXJzIGFuZCB0cnkgdG8gaWRlbnRpZnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIE9idmlvdXNseSwgYENPTkZJR19CUEZfU1lTQ0FMTGAgaXMgYSBtYWpvciBwbGF5ZXIsIGJ1dCB3aGF0IGVsc2U/IFJpZ2h0LCBgQ09ORklHX05FVGAgaXMgZXNzZW50aWFsIGZvciBzb2NrbWFwIGZ1bmN0aW9uYWxpdHkuIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBvdGhlciBjcnVjaWFsIGNvbmZpZyBmbGFncy4gTGV0J3Mgc2VlIHdoYXQgZWxzZSBtaWdodCBiZSBpbXBvcnRhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgzNzYsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6NTEuMzM4NzE2ODk0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTI2MDIxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfQlBGX1NZU0NBTExcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2NvcmUvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2NvcmUvTWFrZWZpbGU9NDQ9b2JqLSQoQ09ORklHX05FVF9TT0NLX01TRykgKz0gc2ttc2cub1xcbm5ldC9jb3JlL01ha2VmaWxlOjQ1Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gc29ja19tYXAub1xcbm5ldC9jb3JlL01ha2VmaWxlOjQ2Om9iai0kKENPTkZJR19CUEZfU1lTQ0FMTCkgKz0gYnBmX3NrX3N0b3JhZ2Uub1xcbm5ldC9jb3JlL01ha2VmaWxlLTQ3LW9iai0kKENPTkZJR19PRilcXHQrPSBvZl9uZXQub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yMFQwNDowNDo1MS4zOTM5ODI4MzJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU3NTQ3NTI5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCUEYgVmVyaWZpZXIgQ2hhbmdlKipcblxuT2theSwgc28gYmFzZWQgb24gdGhpcyBpbmZvcm1hdGlvbiwgaXQgc2VlbXMgbGlrZSBmb2N1c2luZyBvbiBgQlBGX1NZU0NBTExgIGlzIHRoZSBrZXkuIExldCdzIGJyZWFrIGl0IGRvd24gaW4gbXkgbWluZDpcblxuVGhlIGNvcmUgaWRlYSBpcyB0aGlzOiB0aGlzIHBhdGNoIGZ1bmRhbWVudGFsbHkgYWx0ZXJzIGhvdyB0aGUgQlBGIHZlcmlmaWVyIHdvcmtzLCBzcGVjaWZpY2FsbHkgYXJvdW5kIHdoYXQgQlBGIHByb2dyYW0gdHlwZXMgYXJlICphbGxvd2VkKiB0byBtb2RpZnkgc29ja21hcHMuIFRoaXMgbWVhbnMgYSBjaGFuZ2UgaW4gY29yZSB2YWxpZGF0aW9uIGxvZ2ljIGZvciBCUEYgcHJvZ3JhbXMsIHdoaWNoIG1lYW5zIGl0IGRlbWFuZHMgZnV6emluZy4gSWYgdGhpcyB2YWxpZGF0aW9uIGlzIGNoYW5nZWQsIHRoZXJlIGlzIHRoZSBwb3RlbnRpYWwgdG8gYWxsb3cgbW9yZSBwcm9ncmFtcyB0aHJvdWdoIHRoYW4gYmVmb3JlLCBhcyB3ZWxsIGFzIHRoZSBwb3RlbnRpYWwgZm9yIHVuZm9yZXNlZW4gaW50ZXJhY3Rpb25zLlxuXG5UaGUgYFdvcnRoRnV6emluZzogdHJ1ZWAgZmxhZyBjb25maXJtcyB0aGF0IHRoZSBjaGFuZ2UgaXMgc2lnbmlmaWNhbnQgZW5vdWdoIHRvIHdhcnJhbnQgZm9jdXNlZCBmdXp6aW5nIGVmZm9ydHMuIFRoZSBjaG9zZW4gZm9jdXMgc3ltYm9scywgYG1heV91cGRhdGVfc29ja21hcGAgYW5kIGBjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5YCwgYXJlIHByZWNpc2VseSB0aGUgcmlnaHQgdGFyZ2V0czsgdGhleSdyZSBkaXJlY3QgZW50cnkgcG9pbnRzIGludG8gdGhlIG5ldyB2YWxpZGF0aW9uIGxvZ2ljLlxuXG5BbmQsIG9mIGNvdXJzZSwgZW5hYmxpbmcgdGhlIGBCUEZfU1lTQ0FMTGAgY29uZmlndXJhdGlvbiBtYWtlcyBwZXJmZWN0IHNlbnNlLCBhcyBpdOKAmXMgdGhlIG5lY2Vzc2FyeSB0cmlnZ2VyIGZvciB0aGlzIGNoYW5nZS4gV2UgYXJlIG9ubHkgY2hhbmdpbmcgdGhlIGFiaWxpdHkgZm9yIHByb2dyYW1zIG9mIHRoaXMgdHlwZSB0byB1cGRhdGUgYHNvY2ttYXBzYCwgYW5kIHRoZSBgQlBGX1NZU0NBTExgIGlzIHByZWNpc2VseSBob3cgdGhlc2UgcHJvZ3JhbXMgYXJlIGludHJvZHVjZWQgaW50byB0aGUga2VybmVsLCBzbyB0aGlzIG5lZWRzIHRvIGJlIGNoZWNrZWQuXG5cbkluIGVzc2VuY2UsIHRoaXMgaXMgYSBjbGVhci1jdXQgY2FzZSB3aGVyZSBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uIHRvIGEgY29yZSBjb21wb25lbnQgKHRoZSBCUEYgdmVyaWZpZXIpIG5lZWRzIGV4dGVuc2l2ZSBmdXp6aW5nLiBJdCdzIGEgcmlzayBhc3Nlc3NtZW50IGFuZCB0ZXN0IGNhc2UgYWxsIHJvbGxlZCBpbnRvIG9uZS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODc5OCwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjBUMDQ6MDQ6NTUuOTY5NDYwNTIyWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzQ4NjA1ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWF5X3VwZGF0ZV9zb2NrbWFwXCIsXG4gICAgXCJjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcmVzdHJpY3Qgd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgY2FuIHVwZGF0ZSBzb2NrbWFwcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgcHJvZ3JhbSB2YWxpZGF0aW9uIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJQRl9TWVNDQUxMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibWF5X3VwZGF0ZV9zb2NrbWFwXCIsXG4gICAgXCJjaGVja19tYXBfZnVuY19jb21wYXRpYmlsaXR5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBCUEYgdmVyaWZpZXIgdG8gcmVzdHJpY3Qgd2hpY2ggQlBGIHByb2dyYW0gdHlwZXMgY2FuIHVwZGF0ZSBzb2NrbWFwcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIEJQRiB2ZXJpZmllciBsb2dpYyB0aGF0IGFmZmVjdHMgcHJvZ3JhbSB2YWxpZGF0aW9uIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[1] Phase: Succeeded StartedAt: 2026-06-20 04:05:07 +0000 UTC FinishedAt: 2026-06-20 04:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-20 04:05:07 +0000 UTC FinishedAt: 2026-06-20 04:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2] Phase: Succeeded StartedAt: 2026-06-20 04:05:07 +0000 UTC FinishedAt: 2026-06-20 07:59:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-20 04:05:07 +0000 UTC FinishedAt: 2026-06-20 07:59:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-20 04:05:07 +0000 UTC FinishedAt: 2026-06-20 04:05:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-20 04:05:07 +0000 UTC FinishedAt: 2026-06-20 04:05:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowd4mjd/series-workflowd4mjd-convert-artifact-221394675/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-20 04:05:17 +0000 UTC FinishedAt: 2026-06-20 04:26:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-20 04:05:17 +0000 UTC FinishedAt: 2026-06-20 04:26:52 +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:*e0dced17-daca-4128-ac7c-399433643c93,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-workflowd4mjd/series-workflowd4mjd-convert-artifact-221394675/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": "b7cdada2-a3a0-46ea-b8a8-0135c5f46754", "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-workflowd4mjd/series-workflowd4mjd-build-action-1137482145/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-20 04:05:17 +0000 UTC FinishedAt: 2026-06-20 04:26:42 +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:*e0dced17-daca-4128-ac7c-399433643c93,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-workflowd4mjd/series-workflowd4mjd-convert-artifact-221394675/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": "b7cdada2-a3a0-46ea-b8a8-0135c5f46754", "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-workflowd4mjd/series-workflowd4mjd-build-action-1137482145/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-20 04:26:52 +0000 UTC FinishedAt: 2026-06-20 04:26:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-20 04:26:52 +0000 UTC FinishedAt: 2026-06-20 04:26:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-20 04:26:52 +0000 UTC FinishedAt: 2026-06-20 04:27:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-20 04:26:52 +0000 UTC FinishedAt: 2026-06-20 04:26:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowd4mjd/series-workflowd4mjd-convert-artifact-2406586090/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-20 04:27:02 +0000 UTC FinishedAt: 2026-06-20 04:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-20 04:27:02 +0000 UTC FinishedAt: 2026-06-20 04:28:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b7cdada2-a3a0-46ea-b8a8-0135c5f46754,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-workflowd4mjd/series-workflowd4mjd-build-action-1137482145/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-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-20 04:28:52 +0000 UTC FinishedAt: 2026-06-20 04:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-20 04:28:52 +0000 UTC FinishedAt: 2026-06-20 04:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-20 04:28:52 +0000 UTC FinishedAt: 2026-06-20 04:50:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-20 04:28:52 +0000 UTC FinishedAt: 2026-06-20 04:50:39 +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:*e0dced17-daca-4128-ac7c-399433643c93,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-workflowd4mjd/series-workflowd4mjd-convert-artifact-2406586090/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": "536b3e1a-06ef-4e51-8751-d73953bfb96e", "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-workflowd4mjd/series-workflowd4mjd-build-action-33145614/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-20 04:28:52 +0000 UTC FinishedAt: 2026-06-20 04:50:29 +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:*e0dced17-daca-4128-ac7c-399433643c93,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-workflowd4mjd/series-workflowd4mjd-convert-artifact-2406586090/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": "536b3e1a-06ef-4e51-8751-d73953bfb96e", "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-workflowd4mjd/series-workflowd4mjd-build-action-33145614/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-20 04:50:39 +0000 UTC FinishedAt: 2026-06-20 04:50:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-20 04:50:39 +0000 UTC FinishedAt: 2026-06-20 04:50:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-20 04:50:39 +0000 UTC FinishedAt: 2026-06-20 04:52:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-20 04:50:39 +0000 UTC FinishedAt: 2026-06-20 04:52:42 +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:*536b3e1a-06ef-4e51-8751-d73953bfb96e,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-workflowd4mjd/series-workflowd4mjd-build-action-33145614/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-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-20 04:52:52 +0000 UTC FinishedAt: 2026-06-20 07:59:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-20 04:52:52 +0000 UTC FinishedAt: 2026-06-20 07:59:51 +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-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"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:*b7cdada2-a3a0-46ea-b8a8-0135c5f46754,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*536b3e1a-06ef-4e51-8751-d73953bfb96e,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-workflowd4mjd/series-workflowd4mjd-build-action-1137482145/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-workflowd4mjd/series-workflowd4mjd-build-action-33145614/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-20 04:52:52 +0000 UTC FinishedAt: 2026-06-20 04:53:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-20 04:52:52 +0000 UTC FinishedAt: 2026-06-20 04:52:58 +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-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"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-workflowd4mjd/series-workflowd4mjd-convert-artifact-3332386687/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-20 04:52:52 +0000 UTC FinishedAt: 2026-06-20 04:52:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-20 04:52:52 +0000 UTC FinishedAt: 2026-06-20 04:52:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-20 04:52:52 +0000 UTC FinishedAt: 2026-06-20 04:52:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-20 04:53:02 +0000 UTC FinishedAt: 2026-06-20 07:59:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowd4mjd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-bpf-kasan-gce-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["bpf","net"],"focus_symbols":["may_update_sockmap","check_map_func_compatibility"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"b85966adbf5de0668a815c6e3527f87e0c387fb4","config_name":"upstream-apparmor-kasan.config","enable_configs":["BPF_SYSCALL"],"series_id":"4f293a5d-440d-4dcb-9b30-118dbe41e956","tree_name":"bpf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-20 04:53:02 +0000 UTC FinishedAt: 2026-06-20 07:59:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b7cdada2-a3a0-46ea-b8a8-0135c5f46754,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*536b3e1a-06ef-4e51-8751-d73953bfb96e,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-workflowd4mjd/series-workflowd4mjd-build-action-1137482145/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-workflowd4mjd/series-workflowd4mjd-build-action-33145614/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-workflowd4mjd/series-workflowd4mjd-convert-artifact-3332386687/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,}