Name: series-workflowh66tq Phase: Succeeded StartedAt: 2026-07-22 02:03:34 +0000 UTC FinishedAt: 2026-07-22 06:27:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[0] Phase: Succeeded StartedAt: 2026-07-22 02:03:34 +0000 UTC FinishedAt: 2026-07-22 02:23:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 02:03:34 +0000 UTC FinishedAt: 2026-07-22 02:23:34 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "248951ddc14de84de3910f9b13f51491a8cd91df", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BINFMT_MISC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "248951ddc14de84de3910f9b13f51491a8cd91df", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BINFMT_MISC" ], "series_id": "0630ffd2-2369-4833-82f7-b5ffa3fe109e" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "put_binfmt_handler", "load_misc_binary", "bm_evict_inode", "bm_entry_write", "bm_register_write" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JJTkZNVF9NSVNDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHV0X2JpbmZtdF9oYW5kbGVyJiMzNDssCiAgICAmIzM0O2xvYWRfbWlzY19iaW5hcnkmIzM0OywKICAgICYjMzQ7Ym1fZXZpY3RfaW5vZGUmIzM0OywKICAgICYjMzQ7Ym1fZW50cnlfd3JpdGUmIzM0OywKICAgICYjMzQ7Ym1fcmVnaXN0ZXJfd3JpdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDc0ZmY2NjUwYWJkODUzOGZkMDAxODVmMzBkZTdjM2MzYmFmZjkwOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDAyOjIyOjU4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9taXNjLmMgYi9mcy9iaW5mbXRfbWlzYy5jXG5pbmRleCA4NDM0OWZjYjkzZjEzYS4uZGU1MGE3NDY4YjA3OWQgMTAwNjQ0XG4tLS0gYS9mcy9iaW5mbXRfbWlzYy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9iaW5mbXRfbWlzYy5jXG5AQCAtMTYyLDggJiM0MzsxNjIsMTAgQEAgc3RhdGljIE5vZGUgKmdldF9iaW5mbXRfaGFuZGxlcihzdHJ1Y3QgYmluZm10X21pc2MgKm1pc2MsXG4gc3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpXG4ge1xuIFx0aWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdChcdTAwMjZlLVx1MDAzZXVzZXJzKSkge1xuLVx0XHRpZiAoZS1cdTAwM2VmbGFncyBcdTAwMjYgTUlTQ19GTVRfT1BFTl9GSUxFKVxuJiM0MztcdFx0aWYgKGUtXHUwMDNlZmxhZ3MgXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSkge1xuJiM0MztcdFx0XHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoZS1cdTAwM2VpbnRlcnBfZmlsZSk7XG4gXHRcdFx0ZmlscF9jbG9zZShlLVx1MDAzZWludGVycF9maWxlLCBOVUxMKTtcbiYjNDM7XHRcdH1cbiBcdFx0a2ZyZWUoZSk7XG4gXHR9XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCSU5GTVRfTUlTQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3B1dF9iaW5mbXRfaGFuZGxlciYjMzQ7LAogICAgJiMzNDtsb2FkX21pc2NfYmluYXJ5JiMzNDssCiAgICAmIzM0O2JtX2V2aWN0X2lub2RlJiMzNDssCiAgICAmIzM0O2JtX2VudHJ5X3dyaXRlJiMzNDssCiAgICAmIzM0O2JtX3JlZ2lzdGVyX3dyaXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIHdoZXJlIGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGlzIG5vdCBjYWxsZWQgYmVmb3JlIGBmaWxwX2Nsb3NlYCBpbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyB0aGUgYmluZm10X21pc2MgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDc0ZmY2NjUwYWJkODUzOGZkMDAxODVmMzBkZTdjM2MzYmFmZjkwOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDIyIDAyOjIyOjU4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvYmluZm10X21pc2MuYyBiL2ZzL2JpbmZtdF9taXNjLmMKaW5kZXggODQzNDlmY2I5M2YxM2EuLmRlNTBhNzQ2OGIwNzlkIDEwMDY0NAotLS0gYS9mcy9iaW5mbXRfbWlzYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2JpbmZtdF9taXNjLmMKQEAgLTE2Miw4ICYjNDM7MTYyLDEwIEBAIHN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLAogc3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpCiB7CiAJaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgmYW1wO2UtJmd0O3VzZXJzKSkgewotCQlpZiAoZS0mZ3Q7ZmxhZ3MgJmFtcDsgTUlTQ19GTVRfT1BFTl9GSUxFKQomIzQzOwkJaWYgKGUtJmd0O2ZsYWdzICZhbXA7IE1JU0NfRk1UX09QRU5fRklMRSkgewomIzQzOwkJCWV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhlLSZndDtpbnRlcnBfZmlsZSk7CiAJCQlmaWxwX2Nsb3NlKGUtJmd0O2ludGVycF9maWxlLCBOVUxMKTsKJiM0MzsJCX0KIAkJa2ZyZWUoZSk7CiAJfQogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTMzCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQmluRm10X01pc2MgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIG1ha2luZyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGBmcy9iaW5mbXRfbWlzYy5jYC4gSXQmIzM5O3MgYWRkaW5nIGEgY2FsbCB0byBgZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGUtJmd0O2ludGVycF9maWxlKWAgcmlnaHQgYmVmb3JlIGBmaWxwX2Nsb3NlKGUtJmd0O2ludGVycF9maWxlLCBOVUxMKWAgaW4gdGhlIGBwdXRfYmluZm10X2hhbmRsZXJgIGZ1bmN0aW9uLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgd2hhdCYjMzk7cyB0aGUgcHVycG9zZSBvZiB0aGlzIHdyaXRlIGFjY2VzcyBjaGVjayBiZWZvcmUgY2xvc2luZyB0aGUgaW50ZXJwcmV0ZXIgZmlsZT8gQW5kIHdoeSBoZXJlLCBzcGVjaWZpY2FsbHk/CgpMZXQgbWUgcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gSSByZWNhbGwgaXQgYmVpbmcgY2FsbGVkIHdoZW4gYSBiaW5mbXRfbWlzYyBoYW5kbGVyIGlzIHJlbW92ZWQsIHBvdGVudGlhbGx5IGR1cmluZyB1bm1vdW50aW5nIG9mIHRoZSBmaWxlc3lzdGVtLCBvciBzaW1wbHkgd2hlbiBhIGhhbmRsZXImIzM5O3MgcmVmZXJlbmNlIGNvdW50IGRyb3BzIHRvIHplcm8uIFRoYXQmIzM5O3MgdGhlIGNvbnRleHQgSSBuZWVkIHRvIGtlZXAgaW4gbWluZCBoZXJlLiBJdCYjMzk7cyB0aGUgY2xlYW51cCBwYXRoLiBHaXZlbiB0aGF0IGNvbnRleHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgZG9pbmcuIFRoaXMgbGlrZWx5IGludm9sdmVzIHNvbWUga2luZCBvZiBwZXJtaXNzaW9uIGNoZWNrIG9yIGFkanVzdG1lbnQuCgpUaW1lIHRvIGRpdmUgaW50byBgZnMvYmluZm10X21pc2MuY2AgYW5kIGNvbmZpcm0gd2hlcmUgZXhhY3RseSBgcHV0X2JpbmZtdF9oYW5kbGVyYCBpcyBiZWluZyBjYWxsZWQgYW5kIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGF0IGZ1bmN0aW9uJiMzOTtzIG92ZXJhbGwgcHVycG9zZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGFkZGl0aW9uIHRvIHRoZSBleGVjdXRpb24gZmxvdy4gVGhpcyBtaWdodCByZXZlYWwgYSBwb3RlbnRpYWwgc2VjdXJpdHkgaGFyZGVuaW5nLCBvciBtYXliZSBpdCYjMzk7cyBqdXN0IGFkZHJlc3NpbmcgYSBzdWJ0bGUgcmFjZSBjb25kaXRpb24gcmVsYXRlZCB0byBmaWxlIHBlcm1pc3Npb25zLiBMZXQmIzM5O3Mgc2VlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3B1dF9iaW5mbXRfaGFuZGxlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2JpbmZtdF9taXNjLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvYmluZm10X21pc2MuYz0xNDE9c3RhdGljIE5vZGUgKmdldF9iaW5mbXRfaGFuZGxlcihzdHJ1Y3QgYmluZm10X21pc2MgKm1pc2MsXG4tLVxuZnMvYmluZm10X21pc2MuYy0xNTQtLyoqXG5mcy9iaW5mbXRfbWlzYy5jOjE1NTogKiBwdXRfYmluZm10X2hhbmRsZXIgLSBwdXQgYmluYXJ5IGhhbmRsZXIgbm9kZVxuZnMvYmluZm10X21pc2MuYy0xNTYtICogQGU6IG5vZGUgdG8gcHV0XG4tLVxuZnMvYmluZm10X21pc2MuYy0xNjEtICovXG5mcy9iaW5mbXRfbWlzYy5jOjE2MjpzdGF0aWMgdm9pZCBwdXRfYmluZm10X2hhbmRsZXIoTm9kZSAqZSlcbmZzL2JpbmZtdF9taXNjLmMtMTYzLXtcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTIwNT1zdGF0aWMgaW50IGxvYWRfbWlzY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTI3Ny1cdCAqL1xuZnMvYmluZm10X21pc2MuYzoyNzg6XHRwdXRfYmluZm10X2hhbmRsZXIoZm10KTtcbmZzL2JpbmZtdF9taXNjLmMtMjc5LVxuLS1cbmZzL2JpbmZtdF9taXNjLmM9NjYyPXN0YXRpYyB2b2lkIGJtX2V2aWN0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvYmluZm10X21pc2MuYy02NzUtXHRcdHdyaXRlX3VubG9jayhcdTAwMjZtaXNjLVx1MDAzZWVudHJpZXNfbG9jayk7XG5mcy9iaW5mbXRfbWlzYy5jOjY3NjpcdFx0cHV0X2JpbmZtdF9oYW5kbGVyKGUpO1xuZnMvYmluZm10X21pc2MuYy02NzctXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDI6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc5OQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyBgcHV0X2JpbmZtdF9oYW5kbGVyYCBVc2FnZSoqCgpBbHJpZ2h0LCBzbyBgcHV0X2JpbmZtdF9oYW5kbGVyYCBpcyBjYWxsZWQgd2l0aGluIGJvdGggYGxvYWRfbWlzY19iaW5hcnlgIGFuZCBgYm1fZXZpY3RfaW5vZGVgLiBUaGF0IGltbWVkaWF0ZWx5IHNldHMgb2ZmIGEgZmxhZy4gVHlwaWNhbGx5LCBJJiMzOTtkIGV4cGVjdCBoYW5kbGVyIHVucmVnaXN0cmF0aW9uICh3aGljaCBpcyB3aGF0IGBwdXRfYmluZm10X2hhbmRsZXJgIGRvZXMpIHRvIGJlIG1vcmUgY2xvc2VseSB0aWVkIHRvIHRoZSByZWdpc3RyYXRpb24gcHJvY2VzcywgYW5kIGV2aWN0aW9uIGxvZ2ljIGlzIGEgZGVmaW5pdGUgc2Vjb25kIGxvY2F0aW9uIG9mIG5vdGUuIExldCYjMzk7cyBkaWcgaW50byBgbG9hZF9taXNjX2JpbmFyeWAgZmlyc3QuIEl0JiMzOTtzIHRoZSBtb3JlIGxpa2VseSBjYW5kaWRhdGUgZm9yIGNvbnRhaW5pbmcgdGhlIGNvcmUgbG9naWMgcmVsYXRlZCB0byBiaW5hcnkgZm9ybWF0IGxvYWRpbmcgYW5kIHN1YnNlcXVlbnQgdW5sb2FkaW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgYW5kIHdoZW4gaXQmIzM5O3MgaW52b2tpbmcgYHB1dF9iaW5mbXRfaGFuZGxlcmAgdGhlcmUuIElzIGl0IHNpbXBseSBvbiBhIGNsZWFuIGV4aXQgcGF0aCwgb3IgYXJlIHRoZXJlIGVycm9yIGNhc2VzIHdoZXJlIHRoZSBoYW5kbGVyIG1pZ2h0IG5vdCBiZSBwcm9wZXJseSB1bnJlZ2lzdGVyZWQ/IEFuZCBkb2VzIHRoaXMgdXNhZ2UgcGF0dGVybiBpbiBgbG9hZF9taXNjX2JpbmFyeWAgZGlmZmVyIGZ1bmRhbWVudGFsbHkgZnJvbSBpdHMgdXNlIGluIGBibV9ldmljdF9pbm9kZWA/IFRob3NlIGFyZSB0aGUgcXVlc3Rpb25zIEkgbmVlZCB0byBhbnN3ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDI6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bG9hZF9taXNjX2JpbmFyeSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2JpbmZtdF9taXNjLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvYmluZm10X21pc2MuYz01MD10eXBlZGVmIHN0cnVjdCB7XG4tLVxuZnMvYmluZm10X21pc2MuYy02MC1cdHN0cnVjdCBmaWxlICppbnRlcnBfZmlsZTtcbmZzL2JpbmZtdF9taXNjLmM6NjE6XHRyZWZjb3VudF90IHVzZXJzO1x0XHQvKiBzeW5jIHJlbW92YWwgd2l0aCBsb2FkX21pc2NfYmluYXJ5KCkgKi9cbmZzL2JpbmZtdF9taXNjLmMtNjItfSBOb2RlO1xuLS1cbmZzL2JpbmZtdF9taXNjLmM9MTQxPXN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLFxuLS1cbmZzL2JpbmZtdF9taXNjLmMtMTU3LSAqXG5mcy9iaW5mbXRfbWlzYy5jOjE1ODogKiBGcmVlIG5vZGUgc3luY2luZyB3aXRoIGxvYWRfbWlzY19iaW5hcnkoKSBhbmQgZGVmZXIgZmluYWwgZnJlZSB0b1xuZnMvYmluZm10X21pc2MuYzoxNTk6ICogbG9hZF9taXNjX2JpbmFyeSgpIGluIGNhc2UgaXQgaXMgdXNpbmcgdGhlIGJpbmFyeSB0eXBlIGhhbmRsZXIgd2Ugd2VyZVxuZnMvYmluZm10X21pc2MuYy0xNjAtICogcmVxdWVzdGVkIHRvIHJlbW92ZS5cbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTE2Mj1zdGF0aWMgdm9pZCBwdXRfYmluZm10X2hhbmRsZXIoTm9kZSAqZSlcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTE3NS0gKlxuZnMvYmluZm10X21pc2MuYzoxNzY6ICogVG8gYmUgY2FsbGVkIGluIGxvYWRfbWlzY19iaW5hcnkoKSB0byBsb2FkIHRoZSByZWxldmFudCBzdHJ1Y3QgYmluZm10X21pc2MuXG5mcy9iaW5mbXRfbWlzYy5jLTE3Ny0gKiBJZiBhIHVzZXIgbmFtZXNwYWNlIGRvZXNuJiMzOTt0IGhhdmUgaXRzIG93biBiaW5mbXRfbWlzYyBtb3VudCBpdCBjYW4gbWFrZSB1c2Vcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTE4ND1zdGF0aWMgc3RydWN0IGJpbmZtdF9taXNjICpsb2FkX2JpbmZtdF9taXNjKHZvaWQpXG4tLVxuZnMvYmluZm10X21pc2MuYy0yMDQtICovXG5mcy9iaW5mbXRfbWlzYy5jOjIwNTpzdGF0aWMgaW50IGxvYWRfbWlzY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcbmZzL2JpbmZtdF9taXNjLmMtMjA2LXtcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTI3Mi1cdCAqIElmIHdlIGFjdHVhbGx5IHB1dCB0aGUgbm9kZSBoZXJlIGFsbCBjb25jdXJyZW50IGNhbGxzIHRvXG5mcy9iaW5mbXRfbWlzYy5jOjI3MzpcdCAqIGxvYWRfbWlzY19iaW5hcnkoKSB3aWxsIGhhdmUgZmluaXNoZWQuIFdlIGFsc28ga25vd1xuZnMvYmluZm10X21pc2MuYy0yNzQtXHQgKiB0aGF0IGZvciB0aGUgcmVmY291bnQgdG8gYmUgemVybyBzb21lb25lIG11c3QgaGF2ZSBjb25jdXJlbnRseVxuLS1cbmZzL2JpbmZtdF9taXNjLmM9NzIxPXN0YXRpYyBzc2l6ZV90IGJtX2VudHJ5X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLFxuLS1cbmZzL2JpbmZtdF9taXNjLmMtNzQ2LVx0XHQgKiBUaGUgbG9jayBpcyBleGNsdXNpdmUgZW5zdXJpbmcgdGhhdCB0aGUgbGlzdCBjYW4mIzM5O3QgYmVcbmZzL2JpbmZtdF9taXNjLmM6NzQ3Olx0XHQgKiBtb2RpZmllZC4gT25seSBsb2FkX21pc2NfYmluYXJ5KCkgY2FuIGFjY2VzcyBidXQgZG9lcyBzb1xuZnMvYmluZm10X21pc2MuYy03NDgtXHRcdCAqIHJlYWQtb25seS4gU28gd2Ugb25seSBuZWVkIHRvIHRha2UgdGhlIHdyaXRlIGxvY2sgd2hlbiB3ZVxuLS1cbmZzL2JpbmZtdF9taXNjLmM9ODYzPXN0YXRpYyBzc2l6ZV90IGJtX3N0YXR1c193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlcixcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTg5MC1cdFx0ICogVGhlIGxvY2sgaXMgZXhjbHVzaXZlIGVuc3VyaW5nIHRoYXQgdGhlIGxpc3QgY2FuJiMzOTt0IGJlXG5mcy9iaW5mbXRfbWlzYy5jOjg5MTpcdFx0ICogbW9kaWZpZWQuIE9ubHkgbG9hZF9taXNjX2JpbmFyeSgpIGNhbiBhY2Nlc3MgYnV0IGRvZXMgc29cbmZzL2JpbmZtdF9taXNjLmMtODkyLVx0XHQgKiByZWFkLW9ubHkuIFNvIHdlIG9ubHkgbmVlZCB0byB0YWtlIHRoZSB3cml0ZSBsb2NrIHdoZW4gd2Vcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTkyOT1zdGF0aWMgaW50IGJtX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKVxuLS1cbmZzL2JpbmZtdF9taXNjLmMtOTgyLVx0ICogLVx1MDAzZXB1dF9zdXBlcigpIGlzIGNhbGxlZCB3ZSBrbm93IHRoYXQgdGhlIGJpbmFyeSB0eXBlIGxpc3QgZm9yIHRoaXNcbmZzL2JpbmZtdF9taXNjLmM6OTgzOlx0ICogYmludGZtdF9taXNjIG1vdW50IGlzIGVtcHR5IG1ha2luZyBsb2FkX21pc2NfYmluYXJ5KCkgcmV0dXJuXG5mcy9iaW5mbXRfbWlzYy5jLTk4NC1cdCAqIC1FTk9FWEVDIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgLVx1MDAzZWVuYWJsZWQgaXMgdHJ1ZS4gSW5zdGVhZCwgaWZcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTEwMTg9c3RhdGljIHN0cnVjdCBsaW51eF9iaW5mbXQgbWlzY19mb3JtYXQgPSB7XG5mcy9iaW5mbXRfbWlzYy5jLTEwMTktXHQubW9kdWxlID0gVEhJU19NT0RVTEUsXG5mcy9iaW5mbXRfbWlzYy5jOjEwMjA6XHQubG9hZF9iaW5hcnkgPSBsb2FkX21pc2NfYmluYXJ5LFxuZnMvYmluZm10X21pc2MuYy0xMDIxLX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDI6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDEyMgoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDc1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIENyaXRpY2FsIEJ1ZyBGaXgqKgoKT2theSwgc28gdGhpcyBwYXRjaCBhZGRyZXNzZXMgYSBwcmV0dHkgaW1wb3J0YW50IGlzc3VlIOKAkyBzcGVjaWZpY2FsbHksIHRoYXQgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2Agd2FzbiYjMzk7dCBiZWluZyBjYWxsZWQgKmJlZm9yZSogYGZpbHBfY2xvc2VgIHdpdGhpbiB0aGUgYHB1dF9iaW5mbXRfaGFuZGxlcmAgZnVuY3Rpb24uIFRoaXMgZmVlbHMgbGlrZSBpdCBjb3VsZCBjcmVhdGUgYSBzaWduaWZpY2FudCB2dWxuZXJhYmlsaXR5LCBwb3RlbnRpYWxseSBhbGxvd2luZyBhIHdyaXRlIGFjY2VzcyBpc3N1ZSB0byBzbGlwIHRocm91Z2ggdGhlIGNyYWNrcy4gSXQmIzM5O3MgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCB3YXJyYW50cyByaWdvcm91cyBmdXp6aW5nIHRvIGVuc3VyZSBpdCYjMzk7cyBiZWVuIGNvcnJlY3RseSBhZGRyZXNzZWQgYW5kIHRoYXQgdGhlcmUgYXJlIG5vIHJlbWFpbmluZyBlZGdlIGNhc2VzLiBHaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBmaXgsIGZ1enppbmcgZmVlbHMgbGlrZSBhIGNyaXRpY2FsIG5leHQgc3RlcC4KCkkgbmVlZCB0byBjb25maXJtIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZSBjb25maWcgaXMgbGlzdGVkIGFzIGBCSU5GTVRfTUlTQ2AuIEkmIzM5O2xsIGdvIGNoZWNrIGBmcy9LY29uZmlnLmJpbmZtdGAgb3IgYSBzaW1pbGFyIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBnZXQgdGhlIGNvcnJlY3QgY29udGV4dCBmb3IgdGhlIHBhdGNoLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IHdoYXQgdGhpcyBgQklORk1UX01JU0NgIHNldHRpbmcgY29udHJvbHMgaW4gb3JkZXIgdG8gZWZmZWN0aXZlbHkgdGVzdCB0aGlzIGZpeC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQklORk1UX01JU0MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvS2NvbmZpZy5iaW5mbXQ9MTM4PWNvbmZpZyBCSU5GTVRfWkZMQVRcbi0tXG5mcy9LY29uZmlnLmJpbmZtdC0xNDQtXG5mcy9LY29uZmlnLmJpbmZtdDoxNDU6Y29uZmlnIEJJTkZNVF9NSVNDXG5mcy9LY29uZmlnLmJpbmZtdC0xNDYtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwgc3VwcG9ydCBmb3IgTUlTQyBiaW5hcmllc1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1MjAKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJpbkZtdF9NaXNjIENvbmZpZ3VyYXRpb24gYW5kIFJlbGF0ZWQgRnVuY3Rpb25zKioKCk9rYXksIHNvIHRoZSBrZXJuZWwgY29uZmlnIGlzIGRlZmluaXRlbHkgc2V0IHRvIGBCSU5GTVRfTUlTQ2AuIFRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBOb3csIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZSBrZXkgcGxheWVycyB3aXRoaW4gdGhhdCBjb250ZXh0LiBJIHdhbnQgdG8gcmVhbGx5IHVuZGVyc3RhbmQgdGhlIGludGVyYWN0aW9ucywgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcywgYW5kIG92ZXJhbGwgZGVzaWduLiBNeSBmb2N1cyBpcyBnb2luZyB0byBiZSBvbiBgcHV0X2JpbmZtdF9oYW5kbGVyYCwgYGxvYWRfbWlzY19iaW5hcnlgLCBgYm1fZXZpY3RfaW5vZGVgLCBhbmQgYGJtX2VudHJ5X3dyaXRlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSBjZW50cmFsIHRvIGhvdyB0aGlzIGJpbmFyeSBmb3JtYXQgaXMgaGFuZGxlZCwgbG9hZGVkLCBhbmQgbWFuYWdlZCBhdCBydW50aW1lLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCB0cmFjZSB0aGVpciBmbG93LiBJIGVzcGVjaWFsbHkgd2FudCB0byB1bmRlcnN0YW5kIGhvdyB3cml0ZXMgYXJlIGhhbmRsZWQuIEkgbmVlZCB0byBjaGVjayBob3cgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgYmVpbmcgdXNlZCB3aXRoaW4gdGhhdCBjb250ZXh0OyBpdCBzZWVtcyBsaWtlIGEgcG90ZW50aWFsIHBvaW50IGZvciBwcml2aWxlZ2UgZXNjYWxhdGlvbiBvciB1bmV4cGVjdGVkIGJlaGF2aW9yIGFuZCBuZWVkcyB0byBiZSB0aG9yb3VnaGx5IHNjcnV0aW5pemVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvYmluZm10X2VsZi5jPTgzMj1zdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxuLS1cbmZzL2JpbmZtdF9lbGYuYy0xMjcyLVxuZnMvYmluZm10X2VsZi5jOjEyNzM6XHRcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhpbnRlcnByZXRlcik7XG5mcy9iaW5mbXRfZWxmLmMtMTI3NC1cdFx0ZnB1dChpbnRlcnByZXRlcik7XG4tLVxuZnMvYmluZm10X2VsZi5jLTEzODgtb3V0X2ZyZWVfZmlsZTpcbmZzL2JpbmZtdF9lbGYuYzoxMzg5Olx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGludGVycHJldGVyKTtcbmZzL2JpbmZtdF9lbGYuYy0xMzkwLVx0aWYgKGludGVycHJldGVyKVxuLS1cbmZzL2JpbmZtdF9lbGZfZmRwaWMuYz0xODI9c3RhdGljIGludCBsb2FkX2VsZl9mZHBpY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcbi0tXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtMzk2LVxuZnMvYmluZm10X2VsZl9mZHBpYy5jOjM5NzpcdFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGludGVycHJldGVyKTtcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy0zOTgtXHRcdGZwdXQoaW50ZXJwcmV0ZXIpO1xuLS1cbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy00NjktXHRpZiAoaW50ZXJwcmV0ZXIpIHtcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYzo0NzA6XHRcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhpbnRlcnByZXRlcik7XG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNDcxLVx0XHRmcHV0KGludGVycHJldGVyKTtcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTE2Mj1zdGF0aWMgdm9pZCBwdXRfYmluZm10X2hhbmRsZXIoTm9kZSAqZSlcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTE2NS1cdFx0aWYgKGUtXHUwMDNlZmxhZ3MgXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSkge1xuZnMvYmluZm10X21pc2MuYzoxNjY6XHRcdFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGUtXHUwMDNlaW50ZXJwX2ZpbGUpO1xuZnMvYmluZm10X21pc2MuYy0xNjctXHRcdFx0ZmlscF9jbG9zZShlLVx1MDAzZWludGVycF9maWxlLCBOVUxMKTtcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTgwMT1zdGF0aWMgc3NpemVfdCBibV9yZWdpc3Rlcl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlcixcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTgzNS1cdFx0aWYgKGYpIHtcbmZzL2JpbmZtdF9taXNjLmM6ODM2Olx0XHRcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhmKTtcbmZzL2JpbmZtdF9taXNjLmMtODM3LVx0XHRcdGZpbHBfY2xvc2UoZiwgTlVMTCk7XG4tLVxuZnMvZXhlYy5jPTc2OD1zdGF0aWMgc3RydWN0IGZpbGUgKmRvX29wZW5fZXhlY2F0KGludCBmZCwgc3RydWN0IGZpbGVuYW1lICpuYW1lLCBpbnQgZmxhZ3MpXG4tLVxuZnMvZXhlYy5jLTgxNC0gKiBBcyB0aGlzIGlzIGEgd3JhcHBlciBmb3IgdGhlIGludGVybmFsIGRvX29wZW5fZXhlY2F0KCksIGNhbGxlcnNcbmZzL2V4ZWMuYzo4MTU6ICogbXVzdCBjYWxsIGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcygpIGJlZm9yZSBmcHV0KCkgb24gcmVsZWFzZS4gQWxzbyBzZWVcbmZzL2V4ZWMuYy04MTYtICogZG9fY2xvc2VfZXhlY2F0KCkuXG4tLVxuZnMvZXhlYy5jPTEzODk9c3RhdGljIHZvaWQgZG9fY2xvc2VfZXhlY2F0KHN0cnVjdCBmaWxlICpmaWxlKVxuLS1cbmZzL2V4ZWMuYy0xMzkyLVx0XHRyZXR1cm47XG5mcy9leGVjLmM6MTM5MzpcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhmaWxlKTtcbmZzL2V4ZWMuYy0xMzk0LVx0ZnB1dChmaWxlKTtcbi0tXG5mcy9leGVjLmM9MTcwOT1zdGF0aWMgaW50IGV4ZWNfYmlucHJtKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXG4tLVxuZnMvZXhlYy5jLTE3MzUtXG5mcy9leGVjLmM6MTczNjpcdFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGV4ZWMpO1xuZnMvZXhlYy5jLTE3MzctXHRcdGlmICh1bmxpa2VseShicHJtLVx1MDAzZWhhdmVfZXhlY2ZkKSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzE5CgkJCQkJCQlvdXRwdXQ6IDEzMQoJCQkJCQkJdGhvdWdodHM6IDEwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBCaW5GbXQgU2VjdXJpdHkgRmxhdyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0FoLCBmaW5hbGx5LCBzb21lb25lIGNhdWdodCB0aGlzLiYjMzQ7IEl0IGxvb2tzIGxpa2UgdGhlcmUmIzM5O3MgYSBidWcgaW4gaG93IGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGlzIGhhbmRsZWQgd2l0aGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGxpa2Ugd2Ugd2VyZW4mIzM5O3QgY2FsbGluZyB0aGF0IGNyaXRpY2FsIGZ1bmN0aW9uICpiZWZvcmUqIGBmaWxwX2Nsb3NlYCBpbiB0aGUgY29kZSwgd2hpY2ggY291bGQgbGVhZCB0byBzb21lIG5hc3R5IHNlY3VyaXR5IGltcGxpY2F0aW9ucy4gVGhpcyBpcyBjbGVhcmx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGl0IGltcGFjdHMgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBiaW5hcnkgZm9ybWF0cywgc28gaXQgd2FycmFudHMgY2FyZWZ1bCBzY3J1dGlueS4KCk15IGZvY3VzIGlzIG5hcnJvd2luZyBpbiBvbiB0aGUgYEJJTkZNVF9NSVNDYCBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGBwdXRfYmluZm10X2hhbmRsZXJgIGFuZCB0cmFjZSBpdHMgaW50ZXJhY3Rpb24gd2l0aCB0aGUgb3RoZXIga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZDogYGxvYWRfbWlzY19iaW5hcnlgLCBgYm1fZXZpY3RfaW5vZGVgLCBgYm1fZW50cnlfd3JpdGVgLCBhbmQgYGJtX3JlZ2lzdGVyX3dyaXRlYC4gVGhvc2UgYXJlIHRoZSBwcmltZSBzdXNwZWN0cywgYW5kIEkgbmVlZCB0byBmaWd1cmUgb3V0IGV4YWN0bHkgaG93IHRoZSBsYWNrIG9mIHRoZSBgZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzYCBjYWxsIGltcGFjdHMgdGhlIGludGVyYWN0aW9uIG9mIHRoZXNlIGZ1bmN0aW9ucywgdG8gZGV0ZXJtaW5lIHRoZSBleGFjdCBuYXR1cmUgb2YgdGhlIHByb2JsZW0sIGFuZCBpdHMgcG90ZW50aWFsIGltcGFjdC4KCkxldCYjMzk7cyBjYWxsIHRoaXMgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDI6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JJTkZNVF9NSVNDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHV0X2JpbmZtdF9oYW5kbGVyJiMzNDssCiAgICAmIzM0O2xvYWRfbWlzY19iaW5hcnkmIzM0OywKICAgICYjMzQ7Ym1fZXZpY3RfaW5vZGUmIzM0OywKICAgICYjMzQ7Ym1fZW50cnlfd3JpdGUmIzM0OywKICAgICYjMzQ7Ym1fcmVnaXN0ZXJfd3JpdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCSU5GTVRfTUlTQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3B1dF9iaW5mbXRfaGFuZGxlciYjMzQ7LAogICAgJiMzNDtsb2FkX21pc2NfYmluYXJ5JiMzNDssCiAgICAmIzM0O2JtX2V2aWN0X2lub2RlJiMzNDssCiAgICAmIzM0O2JtX2VudHJ5X3dyaXRlJiMzNDssCiAgICAmIzM0O2JtX3JlZ2lzdGVyX3dyaXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIHdoZXJlIGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGlzIG5vdCBjYWxsZWQgYmVmb3JlIGBmaWxwX2Nsb3NlYCBpbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyB0aGUgYmluZm10X21pc2MgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjAwLjA1ODg3MDQwNVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMTY4OTEyNDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJJTkZNVF9NSVNDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHV0X2JpbmZtdF9oYW5kbGVyXCIsXG4gICAgXCJsb2FkX21pc2NfYmluYXJ5XCIsXG4gICAgXCJibV9ldmljdF9pbm9kZVwiLFxuICAgIFwiYm1fZW50cnlfd3JpdGVcIixcbiAgICBcImJtX3JlZ2lzdGVyX3dyaXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMjoyMzowMC4wNTg4Nzk2OTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MzM1ODI2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ3NGZmNjY1MGFiZDg1MzhmZDAwMTg1ZjMwZGU3YzNjM2JhZmY5MDhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDI6MjI6NTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X21pc2MuYyBiL2ZzL2JpbmZtdF9taXNjLmNcXG5pbmRleCA4NDM0OWZjYjkzZjEzYS4uZGU1MGE3NDY4YjA3OWQgMTAwNjQ0XFxuLS0tIGEvZnMvYmluZm10X21pc2MuY1xcbisrKyBiL2ZzL2JpbmZtdF9taXNjLmNcXG5AQCAtMTYyLDggKzE2MiwxMCBAQCBzdGF0aWMgTm9kZSAqZ2V0X2JpbmZtdF9oYW5kbGVyKHN0cnVjdCBiaW5mbXRfbWlzYyAqbWlzYyxcXG4gc3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpXFxuIHtcXG4gXFx0aWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdChcXHUwMDI2ZS1cXHUwMDNldXNlcnMpKSB7XFxuLVxcdFxcdGlmIChlLVxcdTAwM2VmbGFncyBcXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSlcXG4rXFx0XFx0aWYgKGUtXFx1MDAzZWZsYWdzIFxcdTAwMjYgTUlTQ19GTVRfT1BFTl9GSUxFKSB7XFxuK1xcdFxcdFxcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhlLVxcdTAwM2VpbnRlcnBfZmlsZSk7XFxuIFxcdFxcdFxcdGZpbHBfY2xvc2UoZS1cXHUwMDNlaW50ZXJwX2ZpbGUsIE5VTEwpO1xcbitcXHRcXHR9XFxuIFxcdFxcdGtmcmVlKGUpO1xcbiBcXHR9XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MDAuNjMzMjgwNzM1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjI1OTQ0ODk2MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQklORk1UX01JU0NcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwdXRfYmluZm10X2hhbmRsZXJcIixcbiAgICBcImxvYWRfbWlzY19iaW5hcnlcIixcbiAgICBcImJtX2V2aWN0X2lub2RlXCIsXG4gICAgXCJibV9lbnRyeV93cml0ZVwiLFxuICAgIFwiYm1fcmVnaXN0ZXJfd3JpdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyB3aGVyZSBgZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzYCBpcyBub3QgY2FsbGVkIGJlZm9yZSBgZmlscF9jbG9zZWAgaW4gYHB1dF9iaW5mbXRfaGFuZGxlcmAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgdGhlIGJpbmZtdF9taXNjIGZpbGVzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNDc0ZmY2NjUwYWJkODUzOGZkMDAxODVmMzBkZTdjM2MzYmFmZjkwOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDAyOjIyOjU4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X21pc2MuYyBiL2ZzL2JpbmZtdF9taXNjLmNcbmluZGV4IDg0MzQ5ZmNiOTNmMTNhLi5kZTUwYTc0NjhiMDc5ZCAxMDA2NDRcbi0tLSBhL2ZzL2JpbmZtdF9taXNjLmNcbisrKyBiL2ZzL2JpbmZtdF9taXNjLmNcbkBAIC0xNjIsOCArMTYyLDEwIEBAIHN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLFxuIHN0YXRpYyB2b2lkIHB1dF9iaW5mbXRfaGFuZGxlcihOb2RlICplKVxuIHtcbiBcdGlmIChyZWZjb3VudF9kZWNfYW5kX3Rlc3QoXHUwMDI2ZS1cdTAwM2V1c2VycykpIHtcbi1cdFx0aWYgKGUtXHUwMDNlZmxhZ3MgXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSlcbitcdFx0aWYgKGUtXHUwMDNlZmxhZ3MgXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSkge1xuK1x0XHRcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhlLVx1MDAzZWludGVycF9maWxlKTtcbiBcdFx0XHRmaWxwX2Nsb3NlKGUtXHUwMDNlaW50ZXJwX2ZpbGUsIE5VTEwpO1xuK1x0XHR9XG4gXHRcdGtmcmVlKGUpO1xuIFx0fVxuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjAwLjYzMzI4MzU1NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyMDM2ODY0MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCaW5GbXRfTWlzYyBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgbWFraW5nIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gYGZzL2JpbmZtdF9taXNjLmNgLiBJdCdzIGFkZGluZyBhIGNhbGwgdG8gYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhlLVx1MDAzZWludGVycF9maWxlKWAgcmlnaHQgYmVmb3JlIGBmaWxwX2Nsb3NlKGUtXHUwMDNlaW50ZXJwX2ZpbGUsIE5VTEwpYCBpbiB0aGUgYHB1dF9iaW5mbXRfaGFuZGxlcmAgZnVuY3Rpb24uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCB3aGF0J3MgdGhlIHB1cnBvc2Ugb2YgdGhpcyB3cml0ZSBhY2Nlc3MgY2hlY2sgYmVmb3JlIGNsb3NpbmcgdGhlIGludGVycHJldGVyIGZpbGU/IEFuZCB3aHkgaGVyZSwgc3BlY2lmaWNhbGx5P1xuXG5MZXQgbWUgcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gSSByZWNhbGwgaXQgYmVpbmcgY2FsbGVkIHdoZW4gYSBiaW5mbXRfbWlzYyBoYW5kbGVyIGlzIHJlbW92ZWQsIHBvdGVudGlhbGx5IGR1cmluZyB1bm1vdW50aW5nIG9mIHRoZSBmaWxlc3lzdGVtLCBvciBzaW1wbHkgd2hlbiBhIGhhbmRsZXIncyByZWZlcmVuY2UgY291bnQgZHJvcHMgdG8gemVyby4gVGhhdCdzIHRoZSBjb250ZXh0IEkgbmVlZCB0byBrZWVwIGluIG1pbmQgaGVyZS4gSXQncyB0aGUgY2xlYW51cCBwYXRoLiBHaXZlbiB0aGF0IGNvbnRleHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgZG9pbmcuIFRoaXMgbGlrZWx5IGludm9sdmVzIHNvbWUga2luZCBvZiBwZXJtaXNzaW9uIGNoZWNrIG9yIGFkanVzdG1lbnQuXG5cblRpbWUgdG8gZGl2ZSBpbnRvIGBmcy9iaW5mbXRfbWlzYy5jYCBhbmQgY29uZmlybSB3aGVyZSBleGFjdGx5IGBwdXRfYmluZm10X2hhbmRsZXJgIGlzIGJlaW5nIGNhbGxlZCBhbmQgZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoYXQgZnVuY3Rpb24ncyBvdmVyYWxsIHB1cnBvc2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBhZGRpdGlvbiB0byB0aGUgZXhlY3V0aW9uIGZsb3cuIFRoaXMgbWlnaHQgcmV2ZWFsIGEgcG90ZW50aWFsIHNlY3VyaXR5IGhhcmRlbmluZywgb3IgbWF5YmUgaXQncyBqdXN0IGFkZHJlc3NpbmcgYSBzdWJ0bGUgcmFjZSBjb25kaXRpb24gcmVsYXRlZCB0byBmaWxlIHBlcm1pc3Npb25zLiBMZXQncyBzZWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzMsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMjoyMzowNi44MzY5NzM5NTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQzOTc1NTI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInB1dF9iaW5mbXRfaGFuZGxlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9iaW5mbXRfbWlzYy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2JpbmZtdF9taXNjLmM9MTQxPXN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLFxcbi0tXFxuZnMvYmluZm10X21pc2MuYy0xNTQtLyoqXFxuZnMvYmluZm10X21pc2MuYzoxNTU6ICogcHV0X2JpbmZtdF9oYW5kbGVyIC0gcHV0IGJpbmFyeSBoYW5kbGVyIG5vZGVcXG5mcy9iaW5mbXRfbWlzYy5jLTE1Ni0gKiBAZTogbm9kZSB0byBwdXRcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmMtMTYxLSAqL1xcbmZzL2JpbmZtdF9taXNjLmM6MTYyOnN0YXRpYyB2b2lkIHB1dF9iaW5mbXRfaGFuZGxlcihOb2RlICplKVxcbmZzL2JpbmZtdF9taXNjLmMtMTYzLXtcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmM9MjA1PXN0YXRpYyBpbnQgbG9hZF9taXNjX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxcbi0tXFxuZnMvYmluZm10X21pc2MuYy0yNzctXFx0ICovXFxuZnMvYmluZm10X21pc2MuYzoyNzg6XFx0cHV0X2JpbmZtdF9oYW5kbGVyKGZtdCk7XFxuZnMvYmluZm10X21pc2MuYy0yNzktXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jPTY2Mj1zdGF0aWMgdm9pZCBibV9ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxuZnMvYmluZm10X21pc2MuYy02NzUtXFx0XFx0d3JpdGVfdW5sb2NrKFxcdTAwMjZtaXNjLVxcdTAwM2VlbnRyaWVzX2xvY2spO1xcbmZzL2JpbmZtdF9taXNjLmM6Njc2OlxcdFxcdHB1dF9iaW5mbXRfaGFuZGxlcihlKTtcXG5mcy9iaW5mbXRfbWlzYy5jLTY3Ny1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjA3LjI4MDk1OTgwM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMTU1MDgzMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBgcHV0X2JpbmZtdF9oYW5kbGVyYCBVc2FnZSoqXG5cbkFscmlnaHQsIHNvIGBwdXRfYmluZm10X2hhbmRsZXJgIGlzIGNhbGxlZCB3aXRoaW4gYm90aCBgbG9hZF9taXNjX2JpbmFyeWAgYW5kIGBibV9ldmljdF9pbm9kZWAuIFRoYXQgaW1tZWRpYXRlbHkgc2V0cyBvZmYgYSBmbGFnLiBUeXBpY2FsbHksIEknZCBleHBlY3QgaGFuZGxlciB1bnJlZ2lzdHJhdGlvbiAod2hpY2ggaXMgd2hhdCBgcHV0X2JpbmZtdF9oYW5kbGVyYCBkb2VzKSB0byBiZSBtb3JlIGNsb3NlbHkgdGllZCB0byB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MsIGFuZCBldmljdGlvbiBsb2dpYyBpcyBhIGRlZmluaXRlIHNlY29uZCBsb2NhdGlvbiBvZiBub3RlLiBMZXQncyBkaWcgaW50byBgbG9hZF9taXNjX2JpbmFyeWAgZmlyc3QuIEl0J3MgdGhlIG1vcmUgbGlrZWx5IGNhbmRpZGF0ZSBmb3IgY29udGFpbmluZyB0aGUgY29yZSBsb2dpYyByZWxhdGVkIHRvIGJpbmFyeSBmb3JtYXQgbG9hZGluZyBhbmQgc3Vic2VxdWVudCB1bmxvYWRpbmcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBhbmQgd2hlbiBpdCdzIGludm9raW5nIGBwdXRfYmluZm10X2hhbmRsZXJgIHRoZXJlLiBJcyBpdCBzaW1wbHkgb24gYSBjbGVhbiBleGl0IHBhdGgsIG9yIGFyZSB0aGVyZSBlcnJvciBjYXNlcyB3aGVyZSB0aGUgaGFuZGxlciBtaWdodCBub3QgYmUgcHJvcGVybHkgdW5yZWdpc3RlcmVkPyBBbmQgZG9lcyB0aGlzIHVzYWdlIHBhdHRlcm4gaW4gYGxvYWRfbWlzY19iaW5hcnlgIGRpZmZlciBmdW5kYW1lbnRhbGx5IGZyb20gaXRzIHVzZSBpbiBgYm1fZXZpY3RfaW5vZGVgPyBUaG9zZSBhcmUgdGhlIHF1ZXN0aW9ucyBJIG5lZWQgdG8gYW5zd2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzk5LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MTEuMjk2NDcwOTg0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5MTI2NzY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxvYWRfbWlzY19iaW5hcnlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvYmluZm10X21pc2MuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9iaW5mbXRfbWlzYy5jPTUwPXR5cGVkZWYgc3RydWN0IHtcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmMtNjAtXFx0c3RydWN0IGZpbGUgKmludGVycF9maWxlO1xcbmZzL2JpbmZtdF9taXNjLmM6NjE6XFx0cmVmY291bnRfdCB1c2VycztcXHRcXHQvKiBzeW5jIHJlbW92YWwgd2l0aCBsb2FkX21pc2NfYmluYXJ5KCkgKi9cXG5mcy9iaW5mbXRfbWlzYy5jLTYyLX0gTm9kZTtcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmM9MTQxPXN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLFxcbi0tXFxuZnMvYmluZm10X21pc2MuYy0xNTctICpcXG5mcy9iaW5mbXRfbWlzYy5jOjE1ODogKiBGcmVlIG5vZGUgc3luY2luZyB3aXRoIGxvYWRfbWlzY19iaW5hcnkoKSBhbmQgZGVmZXIgZmluYWwgZnJlZSB0b1xcbmZzL2JpbmZtdF9taXNjLmM6MTU5OiAqIGxvYWRfbWlzY19iaW5hcnkoKSBpbiBjYXNlIGl0IGlzIHVzaW5nIHRoZSBiaW5hcnkgdHlwZSBoYW5kbGVyIHdlIHdlcmVcXG5mcy9iaW5mbXRfbWlzYy5jLTE2MC0gKiByZXF1ZXN0ZWQgdG8gcmVtb3ZlLlxcbi0tXFxuZnMvYmluZm10X21pc2MuYz0xNjI9c3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTE3NS0gKlxcbmZzL2JpbmZtdF9taXNjLmM6MTc2OiAqIFRvIGJlIGNhbGxlZCBpbiBsb2FkX21pc2NfYmluYXJ5KCkgdG8gbG9hZCB0aGUgcmVsZXZhbnQgc3RydWN0IGJpbmZtdF9taXNjLlxcbmZzL2JpbmZtdF9taXNjLmMtMTc3LSAqIElmIGEgdXNlciBuYW1lc3BhY2UgZG9lc24ndCBoYXZlIGl0cyBvd24gYmluZm10X21pc2MgbW91bnQgaXQgY2FuIG1ha2UgdXNlXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jPTE4ND1zdGF0aWMgc3RydWN0IGJpbmZtdF9taXNjICpsb2FkX2JpbmZtdF9taXNjKHZvaWQpXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTIwNC0gKi9cXG5mcy9iaW5mbXRfbWlzYy5jOjIwNTpzdGF0aWMgaW50IGxvYWRfbWlzY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcXG5mcy9iaW5mbXRfbWlzYy5jLTIwNi17XFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTI3Mi1cXHQgKiBJZiB3ZSBhY3R1YWxseSBwdXQgdGhlIG5vZGUgaGVyZSBhbGwgY29uY3VycmVudCBjYWxscyB0b1xcbmZzL2JpbmZtdF9taXNjLmM6MjczOlxcdCAqIGxvYWRfbWlzY19iaW5hcnkoKSB3aWxsIGhhdmUgZmluaXNoZWQuIFdlIGFsc28ga25vd1xcbmZzL2JpbmZtdF9taXNjLmMtMjc0LVxcdCAqIHRoYXQgZm9yIHRoZSByZWZjb3VudCB0byBiZSB6ZXJvIHNvbWVvbmUgbXVzdCBoYXZlIGNvbmN1cmVudGx5XFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jPTcyMT1zdGF0aWMgc3NpemVfdCBibV9lbnRyeV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlcixcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmMtNzQ2LVxcdFxcdCAqIFRoZSBsb2NrIGlzIGV4Y2x1c2l2ZSBlbnN1cmluZyB0aGF0IHRoZSBsaXN0IGNhbid0IGJlXFxuZnMvYmluZm10X21pc2MuYzo3NDc6XFx0XFx0ICogbW9kaWZpZWQuIE9ubHkgbG9hZF9taXNjX2JpbmFyeSgpIGNhbiBhY2Nlc3MgYnV0IGRvZXMgc29cXG5mcy9iaW5mbXRfbWlzYy5jLTc0OC1cXHRcXHQgKiByZWFkLW9ubHkuIFNvIHdlIG9ubHkgbmVlZCB0byB0YWtlIHRoZSB3cml0ZSBsb2NrIHdoZW4gd2VcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmM9ODYzPXN0YXRpYyBzc2l6ZV90IGJtX3N0YXR1c193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlcixcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmMtODkwLVxcdFxcdCAqIFRoZSBsb2NrIGlzIGV4Y2x1c2l2ZSBlbnN1cmluZyB0aGF0IHRoZSBsaXN0IGNhbid0IGJlXFxuZnMvYmluZm10X21pc2MuYzo4OTE6XFx0XFx0ICogbW9kaWZpZWQuIE9ubHkgbG9hZF9taXNjX2JpbmFyeSgpIGNhbiBhY2Nlc3MgYnV0IGRvZXMgc29cXG5mcy9iaW5mbXRfbWlzYy5jLTg5Mi1cXHRcXHQgKiByZWFkLW9ubHkuIFNvIHdlIG9ubHkgbmVlZCB0byB0YWtlIHRoZSB3cml0ZSBsb2NrIHdoZW4gd2VcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmM9OTI5PXN0YXRpYyBpbnQgYm1fZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTk4Mi1cXHQgKiAtXFx1MDAzZXB1dF9zdXBlcigpIGlzIGNhbGxlZCB3ZSBrbm93IHRoYXQgdGhlIGJpbmFyeSB0eXBlIGxpc3QgZm9yIHRoaXNcXG5mcy9iaW5mbXRfbWlzYy5jOjk4MzpcXHQgKiBiaW50Zm10X21pc2MgbW91bnQgaXMgZW1wdHkgbWFraW5nIGxvYWRfbWlzY19iaW5hcnkoKSByZXR1cm5cXG5mcy9iaW5mbXRfbWlzYy5jLTk4NC1cXHQgKiAtRU5PRVhFQyBpbmRlcGVuZGVudCBvZiB3aGV0aGVyIC1cXHUwMDNlZW5hYmxlZCBpcyB0cnVlLiBJbnN0ZWFkLCBpZlxcbi0tXFxuZnMvYmluZm10X21pc2MuYz0xMDE4PXN0YXRpYyBzdHJ1Y3QgbGludXhfYmluZm10IG1pc2NfZm9ybWF0ID0ge1xcbmZzL2JpbmZtdF9taXNjLmMtMTAxOS1cXHQubW9kdWxlID0gVEhJU19NT0RVTEUsXFxuZnMvYmluZm10X21pc2MuYzoxMDIwOlxcdC5sb2FkX2JpbmFyeSA9IGxvYWRfbWlzY19iaW5hcnksXFxuZnMvYmluZm10X21pc2MuYy0xMDIxLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjExLjM2NTYwNTI5OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2Nzg0MzY1MzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQ3JpdGljYWwgQnVnIEZpeCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcHJldHR5IGltcG9ydGFudCBpc3N1ZSDigJMgc3BlY2lmaWNhbGx5LCB0aGF0IGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIHdhc24ndCBiZWluZyBjYWxsZWQgKmJlZm9yZSogYGZpbHBfY2xvc2VgIHdpdGhpbiB0aGUgYHB1dF9iaW5mbXRfaGFuZGxlcmAgZnVuY3Rpb24uIFRoaXMgZmVlbHMgbGlrZSBpdCBjb3VsZCBjcmVhdGUgYSBzaWduaWZpY2FudCB2dWxuZXJhYmlsaXR5LCBwb3RlbnRpYWxseSBhbGxvd2luZyBhIHdyaXRlIGFjY2VzcyBpc3N1ZSB0byBzbGlwIHRocm91Z2ggdGhlIGNyYWNrcy4gSXQncyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0IHdhcnJhbnRzIHJpZ29yb3VzIGZ1enppbmcgdG8gZW5zdXJlIGl0J3MgYmVlbiBjb3JyZWN0bHkgYWRkcmVzc2VkIGFuZCB0aGF0IHRoZXJlIGFyZSBubyByZW1haW5pbmcgZWRnZSBjYXNlcy4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgZml4LCBmdXp6aW5nIGZlZWxzIGxpa2UgYSBjcml0aWNhbCBuZXh0IHN0ZXAuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZSBjb25maWcgaXMgbGlzdGVkIGFzIGBCSU5GTVRfTUlTQ2AuIEknbGwgZ28gY2hlY2sgYGZzL0tjb25maWcuYmluZm10YCBvciBhIHNpbWlsYXIgY29uZmlndXJhdGlvbiBmaWxlIHRvIGdldCB0aGUgY29ycmVjdCBjb250ZXh0IGZvciB0aGUgcGF0Y2guIEkgbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCB0aGlzIGBCSU5GTVRfTUlTQ2Agc2V0dGluZyBjb250cm9scyBpbiBvcmRlciB0byBlZmZlY3RpdmVseSB0ZXN0IHRoaXMgZml4LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTIyLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MTUuMDQ0MDQ0OTQzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMDU4NjE5MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQklORk1UX01JU0NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL0tjb25maWcuYmluZm10PTEzOD1jb25maWcgQklORk1UX1pGTEFUXFxuLS1cXG5mcy9LY29uZmlnLmJpbmZtdC0xNDQtXFxuZnMvS2NvbmZpZy5iaW5mbXQ6MTQ1OmNvbmZpZyBCSU5GTVRfTUlTQ1xcbmZzL0tjb25maWcuYmluZm10LTE0Ni1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsIHN1cHBvcnQgZm9yIE1JU0MgYmluYXJpZXNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjE1LjE0NDYzODEyNloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMzYwMjUxMTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCaW5GbXRfTWlzYyBDb25maWd1cmF0aW9uIGFuZCBSZWxhdGVkIEZ1bmN0aW9ucyoqXG5cbk9rYXksIHNvIHRoZSBrZXJuZWwgY29uZmlnIGlzIGRlZmluaXRlbHkgc2V0IHRvIGBCSU5GTVRfTUlTQ2AuIFRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIE5vdywgSSBuZWVkIHRvIHplcm8gaW4gb24gdGhlIGtleSBwbGF5ZXJzIHdpdGhpbiB0aGF0IGNvbnRleHQuIEkgd2FudCB0byByZWFsbHkgdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb25zLCBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLCBhbmQgb3ZlcmFsbCBkZXNpZ24uIE15IGZvY3VzIGlzIGdvaW5nIHRvIGJlIG9uIGBwdXRfYmluZm10X2hhbmRsZXJgLCBgbG9hZF9taXNjX2JpbmFyeWAsIGBibV9ldmljdF9pbm9kZWAsIGFuZCBgYm1fZW50cnlfd3JpdGVgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIGNlbnRyYWwgdG8gaG93IHRoaXMgYmluYXJ5IGZvcm1hdCBpcyBoYW5kbGVkLCBsb2FkZWQsIGFuZCBtYW5hZ2VkIGF0IHJ1bnRpbWUuIEl0J3MgdGltZSB0byBkaWcgaW50byB0aGUgY29kZSBhbmQgdHJhY2UgdGhlaXIgZmxvdy4gSSBlc3BlY2lhbGx5IHdhbnQgdG8gdW5kZXJzdGFuZCBob3cgd3JpdGVzIGFyZSBoYW5kbGVkLiBJIG5lZWQgdG8gY2hlY2sgaG93IGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGlzIGJlaW5nIHVzZWQgd2l0aGluIHRoYXQgY29udGV4dDsgaXQgc2VlbXMgbGlrZSBhIHBvdGVudGlhbCBwb2ludCBmb3IgcHJpdmlsZWdlIGVzY2FsYXRpb24gb3IgdW5leHBlY3RlZCBiZWhhdmlvciBhbmQgbmVlZHMgdG8gYmUgdGhvcm91Z2hseSBzY3J1dGluaXplZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDUyMCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjE4LjQ4MDY2NjQ1NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTgxNTEwMDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9iaW5mbXRfZWxmLmM9ODMyPXN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXFxuLS1cXG5mcy9iaW5mbXRfZWxmLmMtMTI3Mi1cXG5mcy9iaW5mbXRfZWxmLmM6MTI3MzpcXHRcXHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoaW50ZXJwcmV0ZXIpO1xcbmZzL2JpbmZtdF9lbGYuYy0xMjc0LVxcdFxcdGZwdXQoaW50ZXJwcmV0ZXIpO1xcbi0tXFxuZnMvYmluZm10X2VsZi5jLTEzODgtb3V0X2ZyZWVfZmlsZTpcXG5mcy9iaW5mbXRfZWxmLmM6MTM4OTpcXHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoaW50ZXJwcmV0ZXIpO1xcbmZzL2JpbmZtdF9lbGYuYy0xMzkwLVxcdGlmIChpbnRlcnByZXRlcilcXG4tLVxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYz0xODI9c3RhdGljIGludCBsb2FkX2VsZl9mZHBpY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcXG4tLVxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy0zOTYtXFxuZnMvYmluZm10X2VsZl9mZHBpYy5jOjM5NzpcXHRcXHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoaW50ZXJwcmV0ZXIpO1xcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy0zOTgtXFx0XFx0ZnB1dChpbnRlcnByZXRlcik7XFxuLS1cXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNDY5LVxcdGlmIChpbnRlcnByZXRlcikge1xcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYzo0NzA6XFx0XFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGludGVycHJldGVyKTtcXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNDcxLVxcdFxcdGZwdXQoaW50ZXJwcmV0ZXIpO1xcbi0tXFxuZnMvYmluZm10X21pc2MuYz0xNjI9c3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTE2NS1cXHRcXHRpZiAoZS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBNSVNDX0ZNVF9PUEVOX0ZJTEUpIHtcXG5mcy9iaW5mbXRfbWlzYy5jOjE2NjpcXHRcXHRcXHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoZS1cXHUwMDNlaW50ZXJwX2ZpbGUpO1xcbmZzL2JpbmZtdF9taXNjLmMtMTY3LVxcdFxcdFxcdGZpbHBfY2xvc2UoZS1cXHUwMDNlaW50ZXJwX2ZpbGUsIE5VTEwpO1xcbi0tXFxuZnMvYmluZm10X21pc2MuYz04MDE9c3RhdGljIHNzaXplX3QgYm1fcmVnaXN0ZXJfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTgzNS1cXHRcXHRpZiAoZikge1xcbmZzL2JpbmZtdF9taXNjLmM6ODM2OlxcdFxcdFxcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhmKTtcXG5mcy9iaW5mbXRfbWlzYy5jLTgzNy1cXHRcXHRcXHRmaWxwX2Nsb3NlKGYsIE5VTEwpO1xcbi0tXFxuZnMvZXhlYy5jPTc2OD1zdGF0aWMgc3RydWN0IGZpbGUgKmRvX29wZW5fZXhlY2F0KGludCBmZCwgc3RydWN0IGZpbGVuYW1lICpuYW1lLCBpbnQgZmxhZ3MpXFxuLS1cXG5mcy9leGVjLmMtODE0LSAqIEFzIHRoaXMgaXMgYSB3cmFwcGVyIGZvciB0aGUgaW50ZXJuYWwgZG9fb3Blbl9leGVjYXQoKSwgY2FsbGVyc1xcbmZzL2V4ZWMuYzo4MTU6ICogbXVzdCBjYWxsIGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcygpIGJlZm9yZSBmcHV0KCkgb24gcmVsZWFzZS4gQWxzbyBzZWVcXG5mcy9leGVjLmMtODE2LSAqIGRvX2Nsb3NlX2V4ZWNhdCgpLlxcbi0tXFxuZnMvZXhlYy5jPTEzODk9c3RhdGljIHZvaWQgZG9fY2xvc2VfZXhlY2F0KHN0cnVjdCBmaWxlICpmaWxlKVxcbi0tXFxuZnMvZXhlYy5jLTEzOTItXFx0XFx0cmV0dXJuO1xcbmZzL2V4ZWMuYzoxMzkzOlxcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhmaWxlKTtcXG5mcy9leGVjLmMtMTM5NC1cXHRmcHV0KGZpbGUpO1xcbi0tXFxuZnMvZXhlYy5jPTE3MDk9c3RhdGljIGludCBleGVjX2JpbnBybShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxcbi0tXFxuZnMvZXhlYy5jLTE3MzUtXFxuZnMvZXhlYy5jOjE3MzY6XFx0XFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGV4ZWMpO1xcbmZzL2V4ZWMuYy0xNzM3LVxcdFxcdGlmICh1bmxpa2VseShicHJtLVxcdTAwM2VoYXZlX2V4ZWNmZCkpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MTguNTc4ODI2MjY5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDkxNDM4MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQmluRm10IFNlY3VyaXR5IEZsYXcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIHRob3VnaHQgaXMsIFwiQWgsIGZpbmFsbHksIHNvbWVvbmUgY2F1Z2h0IHRoaXMuXCIgSXQgbG9va3MgbGlrZSB0aGVyZSdzIGEgYnVnIGluIGhvdyBgZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzYCBpcyBoYW5kbGVkIHdpdGhpbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyBsaWtlIHdlIHdlcmVuJ3QgY2FsbGluZyB0aGF0IGNyaXRpY2FsIGZ1bmN0aW9uICpiZWZvcmUqIGBmaWxwX2Nsb3NlYCBpbiB0aGUgY29kZSwgd2hpY2ggY291bGQgbGVhZCB0byBzb21lIG5hc3R5IHNlY3VyaXR5IGltcGxpY2F0aW9ucy4gVGhpcyBpcyBjbGVhcmx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGl0IGltcGFjdHMgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBiaW5hcnkgZm9ybWF0cywgc28gaXQgd2FycmFudHMgY2FyZWZ1bCBzY3J1dGlueS5cblxuTXkgZm9jdXMgaXMgbmFycm93aW5nIGluIG9uIHRoZSBgQklORk1UX01JU0NgIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byBkaXZlIGludG8gYHB1dF9iaW5mbXRfaGFuZGxlcmAgYW5kIHRyYWNlIGl0cyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBvdGhlciBrZXkgZnVuY3Rpb25zIGludm9sdmVkOiBgbG9hZF9taXNjX2JpbmFyeWAsIGBibV9ldmljdF9pbm9kZWAsIGBibV9lbnRyeV93cml0ZWAsIGFuZCBgYm1fcmVnaXN0ZXJfd3JpdGVgLiBUaG9zZSBhcmUgdGhlIHByaW1lIHN1c3BlY3RzLCBhbmQgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgZXhhY3RseSBob3cgdGhlIGxhY2sgb2YgdGhlIGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGNhbGwgaW1wYWN0cyB0aGUgaW50ZXJhY3Rpb24gb2YgdGhlc2UgZnVuY3Rpb25zLCB0byBkZXRlcm1pbmUgdGhlIGV4YWN0IG5hdHVyZSBvZiB0aGUgcHJvYmxlbSwgYW5kIGl0cyBwb3RlbnRpYWwgaW1wYWN0LlxuXG5MZXQncyBjYWxsIHRoaXMgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTcxOSwiT3V0cHV0VG9rZW5zIjoxMzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MjMuMTI3OTc0NDY1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTk3ODg0MzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJJTkZNVF9NSVNDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHV0X2JpbmZtdF9oYW5kbGVyXCIsXG4gICAgXCJsb2FkX21pc2NfYmluYXJ5XCIsXG4gICAgXCJibV9ldmljdF9pbm9kZVwiLFxuICAgIFwiYm1fZW50cnlfd3JpdGVcIixcbiAgICBcImJtX3JlZ2lzdGVyX3dyaXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJJTkZNVF9NSVNDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHV0X2JpbmZtdF9oYW5kbGVyXCIsXG4gICAgXCJsb2FkX21pc2NfYmluYXJ5XCIsXG4gICAgXCJibV9ldmljdF9pbm9kZVwiLFxuICAgIFwiYm1fZW50cnlfd3JpdGVcIixcbiAgICBcImJtX3JlZ2lzdGVyX3dyaXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowh66tq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 02:03:34 +0000 UTC FinishedAt: 2026-07-22 02:23:24 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "248951ddc14de84de3910f9b13f51491a8cd91df", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BINFMT_MISC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "248951ddc14de84de3910f9b13f51491a8cd91df", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BINFMT_MISC" ], "series_id": "0630ffd2-2369-4833-82f7-b5ffa3fe109e" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "put_binfmt_handler", "load_misc_binary", "bm_evict_inode", "bm_entry_write", "bm_register_write" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JJTkZNVF9NSVNDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHV0X2JpbmZtdF9oYW5kbGVyJiMzNDssCiAgICAmIzM0O2xvYWRfbWlzY19iaW5hcnkmIzM0OywKICAgICYjMzQ7Ym1fZXZpY3RfaW5vZGUmIzM0OywKICAgICYjMzQ7Ym1fZW50cnlfd3JpdGUmIzM0OywKICAgICYjMzQ7Ym1fcmVnaXN0ZXJfd3JpdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNDc0ZmY2NjUwYWJkODUzOGZkMDAxODVmMzBkZTdjM2MzYmFmZjkwOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDAyOjIyOjU4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9taXNjLmMgYi9mcy9iaW5mbXRfbWlzYy5jXG5pbmRleCA4NDM0OWZjYjkzZjEzYS4uZGU1MGE3NDY4YjA3OWQgMTAwNjQ0XG4tLS0gYS9mcy9iaW5mbXRfbWlzYy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9iaW5mbXRfbWlzYy5jXG5AQCAtMTYyLDggJiM0MzsxNjIsMTAgQEAgc3RhdGljIE5vZGUgKmdldF9iaW5mbXRfaGFuZGxlcihzdHJ1Y3QgYmluZm10X21pc2MgKm1pc2MsXG4gc3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpXG4ge1xuIFx0aWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdChcdTAwMjZlLVx1MDAzZXVzZXJzKSkge1xuLVx0XHRpZiAoZS1cdTAwM2VmbGFncyBcdTAwMjYgTUlTQ19GTVRfT1BFTl9GSUxFKVxuJiM0MztcdFx0aWYgKGUtXHUwMDNlZmxhZ3MgXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSkge1xuJiM0MztcdFx0XHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoZS1cdTAwM2VpbnRlcnBfZmlsZSk7XG4gXHRcdFx0ZmlscF9jbG9zZShlLVx1MDAzZWludGVycF9maWxlLCBOVUxMKTtcbiYjNDM7XHRcdH1cbiBcdFx0a2ZyZWUoZSk7XG4gXHR9XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCSU5GTVRfTUlTQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3B1dF9iaW5mbXRfaGFuZGxlciYjMzQ7LAogICAgJiMzNDtsb2FkX21pc2NfYmluYXJ5JiMzNDssCiAgICAmIzM0O2JtX2V2aWN0X2lub2RlJiMzNDssCiAgICAmIzM0O2JtX2VudHJ5X3dyaXRlJiMzNDssCiAgICAmIzM0O2JtX3JlZ2lzdGVyX3dyaXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIHdoZXJlIGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGlzIG5vdCBjYWxsZWQgYmVmb3JlIGBmaWxwX2Nsb3NlYCBpbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyB0aGUgYmluZm10X21pc2MgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNDc0ZmY2NjUwYWJkODUzOGZkMDAxODVmMzBkZTdjM2MzYmFmZjkwOApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDIyIDAyOjIyOjU4IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvYmluZm10X21pc2MuYyBiL2ZzL2JpbmZtdF9taXNjLmMKaW5kZXggODQzNDlmY2I5M2YxM2EuLmRlNTBhNzQ2OGIwNzlkIDEwMDY0NAotLS0gYS9mcy9iaW5mbXRfbWlzYy5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2JpbmZtdF9taXNjLmMKQEAgLTE2Miw4ICYjNDM7MTYyLDEwIEBAIHN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLAogc3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpCiB7CiAJaWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdCgmYW1wO2UtJmd0O3VzZXJzKSkgewotCQlpZiAoZS0mZ3Q7ZmxhZ3MgJmFtcDsgTUlTQ19GTVRfT1BFTl9GSUxFKQomIzQzOwkJaWYgKGUtJmd0O2ZsYWdzICZhbXA7IE1JU0NfRk1UX09QRU5fRklMRSkgewomIzQzOwkJCWV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhlLSZndDtpbnRlcnBfZmlsZSk7CiAJCQlmaWxwX2Nsb3NlKGUtJmd0O2ludGVycF9maWxlLCBOVUxMKTsKJiM0MzsJCX0KIAkJa2ZyZWUoZSk7CiAJfQogfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTMzCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQmluRm10X01pc2MgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIG1ha2luZyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGBmcy9iaW5mbXRfbWlzYy5jYC4gSXQmIzM5O3MgYWRkaW5nIGEgY2FsbCB0byBgZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGUtJmd0O2ludGVycF9maWxlKWAgcmlnaHQgYmVmb3JlIGBmaWxwX2Nsb3NlKGUtJmd0O2ludGVycF9maWxlLCBOVUxMKWAgaW4gdGhlIGBwdXRfYmluZm10X2hhbmRsZXJgIGZ1bmN0aW9uLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgd2hhdCYjMzk7cyB0aGUgcHVycG9zZSBvZiB0aGlzIHdyaXRlIGFjY2VzcyBjaGVjayBiZWZvcmUgY2xvc2luZyB0aGUgaW50ZXJwcmV0ZXIgZmlsZT8gQW5kIHdoeSBoZXJlLCBzcGVjaWZpY2FsbHk/CgpMZXQgbWUgcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gSSByZWNhbGwgaXQgYmVpbmcgY2FsbGVkIHdoZW4gYSBiaW5mbXRfbWlzYyBoYW5kbGVyIGlzIHJlbW92ZWQsIHBvdGVudGlhbGx5IGR1cmluZyB1bm1vdW50aW5nIG9mIHRoZSBmaWxlc3lzdGVtLCBvciBzaW1wbHkgd2hlbiBhIGhhbmRsZXImIzM5O3MgcmVmZXJlbmNlIGNvdW50IGRyb3BzIHRvIHplcm8uIFRoYXQmIzM5O3MgdGhlIGNvbnRleHQgSSBuZWVkIHRvIGtlZXAgaW4gbWluZCBoZXJlLiBJdCYjMzk7cyB0aGUgY2xlYW51cCBwYXRoLiBHaXZlbiB0aGF0IGNvbnRleHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgZG9pbmcuIFRoaXMgbGlrZWx5IGludm9sdmVzIHNvbWUga2luZCBvZiBwZXJtaXNzaW9uIGNoZWNrIG9yIGFkanVzdG1lbnQuCgpUaW1lIHRvIGRpdmUgaW50byBgZnMvYmluZm10X21pc2MuY2AgYW5kIGNvbmZpcm0gd2hlcmUgZXhhY3RseSBgcHV0X2JpbmZtdF9oYW5kbGVyYCBpcyBiZWluZyBjYWxsZWQgYW5kIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGF0IGZ1bmN0aW9uJiMzOTtzIG92ZXJhbGwgcHVycG9zZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGFkZGl0aW9uIHRvIHRoZSBleGVjdXRpb24gZmxvdy4gVGhpcyBtaWdodCByZXZlYWwgYSBwb3RlbnRpYWwgc2VjdXJpdHkgaGFyZGVuaW5nLCBvciBtYXliZSBpdCYjMzk7cyBqdXN0IGFkZHJlc3NpbmcgYSBzdWJ0bGUgcmFjZSBjb25kaXRpb24gcmVsYXRlZCB0byBmaWxlIHBlcm1pc3Npb25zLiBMZXQmIzM5O3Mgc2VlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3B1dF9iaW5mbXRfaGFuZGxlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2JpbmZtdF9taXNjLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvYmluZm10X21pc2MuYz0xNDE9c3RhdGljIE5vZGUgKmdldF9iaW5mbXRfaGFuZGxlcihzdHJ1Y3QgYmluZm10X21pc2MgKm1pc2MsXG4tLVxuZnMvYmluZm10X21pc2MuYy0xNTQtLyoqXG5mcy9iaW5mbXRfbWlzYy5jOjE1NTogKiBwdXRfYmluZm10X2hhbmRsZXIgLSBwdXQgYmluYXJ5IGhhbmRsZXIgbm9kZVxuZnMvYmluZm10X21pc2MuYy0xNTYtICogQGU6IG5vZGUgdG8gcHV0XG4tLVxuZnMvYmluZm10X21pc2MuYy0xNjEtICovXG5mcy9iaW5mbXRfbWlzYy5jOjE2MjpzdGF0aWMgdm9pZCBwdXRfYmluZm10X2hhbmRsZXIoTm9kZSAqZSlcbmZzL2JpbmZtdF9taXNjLmMtMTYzLXtcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTIwNT1zdGF0aWMgaW50IGxvYWRfbWlzY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTI3Ny1cdCAqL1xuZnMvYmluZm10X21pc2MuYzoyNzg6XHRwdXRfYmluZm10X2hhbmRsZXIoZm10KTtcbmZzL2JpbmZtdF9taXNjLmMtMjc5LVxuLS1cbmZzL2JpbmZtdF9taXNjLmM9NjYyPXN0YXRpYyB2b2lkIGJtX2V2aWN0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxuZnMvYmluZm10X21pc2MuYy02NzUtXHRcdHdyaXRlX3VubG9jayhcdTAwMjZtaXNjLVx1MDAzZWVudHJpZXNfbG9jayk7XG5mcy9iaW5mbXRfbWlzYy5jOjY3NjpcdFx0cHV0X2JpbmZtdF9oYW5kbGVyKGUpO1xuZnMvYmluZm10X21pc2MuYy02NzctXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDI6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc5OQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyBgcHV0X2JpbmZtdF9oYW5kbGVyYCBVc2FnZSoqCgpBbHJpZ2h0LCBzbyBgcHV0X2JpbmZtdF9oYW5kbGVyYCBpcyBjYWxsZWQgd2l0aGluIGJvdGggYGxvYWRfbWlzY19iaW5hcnlgIGFuZCBgYm1fZXZpY3RfaW5vZGVgLiBUaGF0IGltbWVkaWF0ZWx5IHNldHMgb2ZmIGEgZmxhZy4gVHlwaWNhbGx5LCBJJiMzOTtkIGV4cGVjdCBoYW5kbGVyIHVucmVnaXN0cmF0aW9uICh3aGljaCBpcyB3aGF0IGBwdXRfYmluZm10X2hhbmRsZXJgIGRvZXMpIHRvIGJlIG1vcmUgY2xvc2VseSB0aWVkIHRvIHRoZSByZWdpc3RyYXRpb24gcHJvY2VzcywgYW5kIGV2aWN0aW9uIGxvZ2ljIGlzIGEgZGVmaW5pdGUgc2Vjb25kIGxvY2F0aW9uIG9mIG5vdGUuIExldCYjMzk7cyBkaWcgaW50byBgbG9hZF9taXNjX2JpbmFyeWAgZmlyc3QuIEl0JiMzOTtzIHRoZSBtb3JlIGxpa2VseSBjYW5kaWRhdGUgZm9yIGNvbnRhaW5pbmcgdGhlIGNvcmUgbG9naWMgcmVsYXRlZCB0byBiaW5hcnkgZm9ybWF0IGxvYWRpbmcgYW5kIHN1YnNlcXVlbnQgdW5sb2FkaW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgYW5kIHdoZW4gaXQmIzM5O3MgaW52b2tpbmcgYHB1dF9iaW5mbXRfaGFuZGxlcmAgdGhlcmUuIElzIGl0IHNpbXBseSBvbiBhIGNsZWFuIGV4aXQgcGF0aCwgb3IgYXJlIHRoZXJlIGVycm9yIGNhc2VzIHdoZXJlIHRoZSBoYW5kbGVyIG1pZ2h0IG5vdCBiZSBwcm9wZXJseSB1bnJlZ2lzdGVyZWQ/IEFuZCBkb2VzIHRoaXMgdXNhZ2UgcGF0dGVybiBpbiBgbG9hZF9taXNjX2JpbmFyeWAgZGlmZmVyIGZ1bmRhbWVudGFsbHkgZnJvbSBpdHMgdXNlIGluIGBibV9ldmljdF9pbm9kZWA/IFRob3NlIGFyZSB0aGUgcXVlc3Rpb25zIEkgbmVlZCB0byBhbnN3ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDI6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bG9hZF9taXNjX2JpbmFyeSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2ZzL2JpbmZtdF9taXNjLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvYmluZm10X21pc2MuYz01MD10eXBlZGVmIHN0cnVjdCB7XG4tLVxuZnMvYmluZm10X21pc2MuYy02MC1cdHN0cnVjdCBmaWxlICppbnRlcnBfZmlsZTtcbmZzL2JpbmZtdF9taXNjLmM6NjE6XHRyZWZjb3VudF90IHVzZXJzO1x0XHQvKiBzeW5jIHJlbW92YWwgd2l0aCBsb2FkX21pc2NfYmluYXJ5KCkgKi9cbmZzL2JpbmZtdF9taXNjLmMtNjItfSBOb2RlO1xuLS1cbmZzL2JpbmZtdF9taXNjLmM9MTQxPXN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLFxuLS1cbmZzL2JpbmZtdF9taXNjLmMtMTU3LSAqXG5mcy9iaW5mbXRfbWlzYy5jOjE1ODogKiBGcmVlIG5vZGUgc3luY2luZyB3aXRoIGxvYWRfbWlzY19iaW5hcnkoKSBhbmQgZGVmZXIgZmluYWwgZnJlZSB0b1xuZnMvYmluZm10X21pc2MuYzoxNTk6ICogbG9hZF9taXNjX2JpbmFyeSgpIGluIGNhc2UgaXQgaXMgdXNpbmcgdGhlIGJpbmFyeSB0eXBlIGhhbmRsZXIgd2Ugd2VyZVxuZnMvYmluZm10X21pc2MuYy0xNjAtICogcmVxdWVzdGVkIHRvIHJlbW92ZS5cbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTE2Mj1zdGF0aWMgdm9pZCBwdXRfYmluZm10X2hhbmRsZXIoTm9kZSAqZSlcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTE3NS0gKlxuZnMvYmluZm10X21pc2MuYzoxNzY6ICogVG8gYmUgY2FsbGVkIGluIGxvYWRfbWlzY19iaW5hcnkoKSB0byBsb2FkIHRoZSByZWxldmFudCBzdHJ1Y3QgYmluZm10X21pc2MuXG5mcy9iaW5mbXRfbWlzYy5jLTE3Ny0gKiBJZiBhIHVzZXIgbmFtZXNwYWNlIGRvZXNuJiMzOTt0IGhhdmUgaXRzIG93biBiaW5mbXRfbWlzYyBtb3VudCBpdCBjYW4gbWFrZSB1c2Vcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTE4ND1zdGF0aWMgc3RydWN0IGJpbmZtdF9taXNjICpsb2FkX2JpbmZtdF9taXNjKHZvaWQpXG4tLVxuZnMvYmluZm10X21pc2MuYy0yMDQtICovXG5mcy9iaW5mbXRfbWlzYy5jOjIwNTpzdGF0aWMgaW50IGxvYWRfbWlzY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcbmZzL2JpbmZtdF9taXNjLmMtMjA2LXtcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTI3Mi1cdCAqIElmIHdlIGFjdHVhbGx5IHB1dCB0aGUgbm9kZSBoZXJlIGFsbCBjb25jdXJyZW50IGNhbGxzIHRvXG5mcy9iaW5mbXRfbWlzYy5jOjI3MzpcdCAqIGxvYWRfbWlzY19iaW5hcnkoKSB3aWxsIGhhdmUgZmluaXNoZWQuIFdlIGFsc28ga25vd1xuZnMvYmluZm10X21pc2MuYy0yNzQtXHQgKiB0aGF0IGZvciB0aGUgcmVmY291bnQgdG8gYmUgemVybyBzb21lb25lIG11c3QgaGF2ZSBjb25jdXJlbnRseVxuLS1cbmZzL2JpbmZtdF9taXNjLmM9NzIxPXN0YXRpYyBzc2l6ZV90IGJtX2VudHJ5X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLFxuLS1cbmZzL2JpbmZtdF9taXNjLmMtNzQ2LVx0XHQgKiBUaGUgbG9jayBpcyBleGNsdXNpdmUgZW5zdXJpbmcgdGhhdCB0aGUgbGlzdCBjYW4mIzM5O3QgYmVcbmZzL2JpbmZtdF9taXNjLmM6NzQ3Olx0XHQgKiBtb2RpZmllZC4gT25seSBsb2FkX21pc2NfYmluYXJ5KCkgY2FuIGFjY2VzcyBidXQgZG9lcyBzb1xuZnMvYmluZm10X21pc2MuYy03NDgtXHRcdCAqIHJlYWQtb25seS4gU28gd2Ugb25seSBuZWVkIHRvIHRha2UgdGhlIHdyaXRlIGxvY2sgd2hlbiB3ZVxuLS1cbmZzL2JpbmZtdF9taXNjLmM9ODYzPXN0YXRpYyBzc2l6ZV90IGJtX3N0YXR1c193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlcixcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTg5MC1cdFx0ICogVGhlIGxvY2sgaXMgZXhjbHVzaXZlIGVuc3VyaW5nIHRoYXQgdGhlIGxpc3QgY2FuJiMzOTt0IGJlXG5mcy9iaW5mbXRfbWlzYy5jOjg5MTpcdFx0ICogbW9kaWZpZWQuIE9ubHkgbG9hZF9taXNjX2JpbmFyeSgpIGNhbiBhY2Nlc3MgYnV0IGRvZXMgc29cbmZzL2JpbmZtdF9taXNjLmMtODkyLVx0XHQgKiByZWFkLW9ubHkuIFNvIHdlIG9ubHkgbmVlZCB0byB0YWtlIHRoZSB3cml0ZSBsb2NrIHdoZW4gd2Vcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTkyOT1zdGF0aWMgaW50IGJtX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKVxuLS1cbmZzL2JpbmZtdF9taXNjLmMtOTgyLVx0ICogLVx1MDAzZXB1dF9zdXBlcigpIGlzIGNhbGxlZCB3ZSBrbm93IHRoYXQgdGhlIGJpbmFyeSB0eXBlIGxpc3QgZm9yIHRoaXNcbmZzL2JpbmZtdF9taXNjLmM6OTgzOlx0ICogYmludGZtdF9taXNjIG1vdW50IGlzIGVtcHR5IG1ha2luZyBsb2FkX21pc2NfYmluYXJ5KCkgcmV0dXJuXG5mcy9iaW5mbXRfbWlzYy5jLTk4NC1cdCAqIC1FTk9FWEVDIGluZGVwZW5kZW50IG9mIHdoZXRoZXIgLVx1MDAzZWVuYWJsZWQgaXMgdHJ1ZS4gSW5zdGVhZCwgaWZcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTEwMTg9c3RhdGljIHN0cnVjdCBsaW51eF9iaW5mbXQgbWlzY19mb3JtYXQgPSB7XG5mcy9iaW5mbXRfbWlzYy5jLTEwMTktXHQubW9kdWxlID0gVEhJU19NT0RVTEUsXG5mcy9iaW5mbXRfbWlzYy5jOjEwMjA6XHQubG9hZF9iaW5hcnkgPSBsb2FkX21pc2NfYmluYXJ5LFxuZnMvYmluZm10X21pc2MuYy0xMDIxLX07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDI6MjM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDEyMgoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDc1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIENyaXRpY2FsIEJ1ZyBGaXgqKgoKT2theSwgc28gdGhpcyBwYXRjaCBhZGRyZXNzZXMgYSBwcmV0dHkgaW1wb3J0YW50IGlzc3VlIOKAkyBzcGVjaWZpY2FsbHksIHRoYXQgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2Agd2FzbiYjMzk7dCBiZWluZyBjYWxsZWQgKmJlZm9yZSogYGZpbHBfY2xvc2VgIHdpdGhpbiB0aGUgYHB1dF9iaW5mbXRfaGFuZGxlcmAgZnVuY3Rpb24uIFRoaXMgZmVlbHMgbGlrZSBpdCBjb3VsZCBjcmVhdGUgYSBzaWduaWZpY2FudCB2dWxuZXJhYmlsaXR5LCBwb3RlbnRpYWxseSBhbGxvd2luZyBhIHdyaXRlIGFjY2VzcyBpc3N1ZSB0byBzbGlwIHRocm91Z2ggdGhlIGNyYWNrcy4gSXQmIzM5O3MgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCB3YXJyYW50cyByaWdvcm91cyBmdXp6aW5nIHRvIGVuc3VyZSBpdCYjMzk7cyBiZWVuIGNvcnJlY3RseSBhZGRyZXNzZWQgYW5kIHRoYXQgdGhlcmUgYXJlIG5vIHJlbWFpbmluZyBlZGdlIGNhc2VzLiBHaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBmaXgsIGZ1enppbmcgZmVlbHMgbGlrZSBhIGNyaXRpY2FsIG5leHQgc3RlcC4KCkkgbmVlZCB0byBjb25maXJtIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZSBjb25maWcgaXMgbGlzdGVkIGFzIGBCSU5GTVRfTUlTQ2AuIEkmIzM5O2xsIGdvIGNoZWNrIGBmcy9LY29uZmlnLmJpbmZtdGAgb3IgYSBzaW1pbGFyIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBnZXQgdGhlIGNvcnJlY3QgY29udGV4dCBmb3IgdGhlIHBhdGNoLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IHdoYXQgdGhpcyBgQklORk1UX01JU0NgIHNldHRpbmcgY29udHJvbHMgaW4gb3JkZXIgdG8gZWZmZWN0aXZlbHkgdGVzdCB0aGlzIGZpeC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQklORk1UX01JU0MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvS2NvbmZpZy5iaW5mbXQ9MTM4PWNvbmZpZyBCSU5GTVRfWkZMQVRcbi0tXG5mcy9LY29uZmlnLmJpbmZtdC0xNDQtXG5mcy9LY29uZmlnLmJpbmZtdDoxNDU6Y29uZmlnIEJJTkZNVF9NSVNDXG5mcy9LY29uZmlnLmJpbmZtdC0xNDYtXHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwgc3VwcG9ydCBmb3IgTUlTQyBiaW5hcmllc1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDAyOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1MjAKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEJpbkZtdF9NaXNjIENvbmZpZ3VyYXRpb24gYW5kIFJlbGF0ZWQgRnVuY3Rpb25zKioKCk9rYXksIHNvIHRoZSBrZXJuZWwgY29uZmlnIGlzIGRlZmluaXRlbHkgc2V0IHRvIGBCSU5GTVRfTUlTQ2AuIFRoYXQmIzM5O3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBOb3csIEkgbmVlZCB0byB6ZXJvIGluIG9uIHRoZSBrZXkgcGxheWVycyB3aXRoaW4gdGhhdCBjb250ZXh0LiBJIHdhbnQgdG8gcmVhbGx5IHVuZGVyc3RhbmQgdGhlIGludGVyYWN0aW9ucywgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcywgYW5kIG92ZXJhbGwgZGVzaWduLiBNeSBmb2N1cyBpcyBnb2luZyB0byBiZSBvbiBgcHV0X2JpbmZtdF9oYW5kbGVyYCwgYGxvYWRfbWlzY19iaW5hcnlgLCBgYm1fZXZpY3RfaW5vZGVgLCBhbmQgYGJtX2VudHJ5X3dyaXRlYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSBjZW50cmFsIHRvIGhvdyB0aGlzIGJpbmFyeSBmb3JtYXQgaXMgaGFuZGxlZCwgbG9hZGVkLCBhbmQgbWFuYWdlZCBhdCBydW50aW1lLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCB0cmFjZSB0aGVpciBmbG93LiBJIGVzcGVjaWFsbHkgd2FudCB0byB1bmRlcnN0YW5kIGhvdyB3cml0ZXMgYXJlIGhhbmRsZWQuIEkgbmVlZCB0byBjaGVjayBob3cgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgYmVpbmcgdXNlZCB3aXRoaW4gdGhhdCBjb250ZXh0OyBpdCBzZWVtcyBsaWtlIGEgcG90ZW50aWFsIHBvaW50IGZvciBwcml2aWxlZ2UgZXNjYWxhdGlvbiBvciB1bmV4cGVjdGVkIGJlaGF2aW9yIGFuZCBuZWVkcyB0byBiZSB0aG9yb3VnaGx5IHNjcnV0aW5pemVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvYmluZm10X2VsZi5jPTgzMj1zdGF0aWMgaW50IGxvYWRfZWxmX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxuLS1cbmZzL2JpbmZtdF9lbGYuYy0xMjcyLVxuZnMvYmluZm10X2VsZi5jOjEyNzM6XHRcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhpbnRlcnByZXRlcik7XG5mcy9iaW5mbXRfZWxmLmMtMTI3NC1cdFx0ZnB1dChpbnRlcnByZXRlcik7XG4tLVxuZnMvYmluZm10X2VsZi5jLTEzODgtb3V0X2ZyZWVfZmlsZTpcbmZzL2JpbmZtdF9lbGYuYzoxMzg5Olx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGludGVycHJldGVyKTtcbmZzL2JpbmZtdF9lbGYuYy0xMzkwLVx0aWYgKGludGVycHJldGVyKVxuLS1cbmZzL2JpbmZtdF9lbGZfZmRwaWMuYz0xODI9c3RhdGljIGludCBsb2FkX2VsZl9mZHBpY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcbi0tXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtMzk2LVxuZnMvYmluZm10X2VsZl9mZHBpYy5jOjM5NzpcdFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGludGVycHJldGVyKTtcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy0zOTgtXHRcdGZwdXQoaW50ZXJwcmV0ZXIpO1xuLS1cbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy00NjktXHRpZiAoaW50ZXJwcmV0ZXIpIHtcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYzo0NzA6XHRcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhpbnRlcnByZXRlcik7XG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNDcxLVx0XHRmcHV0KGludGVycHJldGVyKTtcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTE2Mj1zdGF0aWMgdm9pZCBwdXRfYmluZm10X2hhbmRsZXIoTm9kZSAqZSlcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTE2NS1cdFx0aWYgKGUtXHUwMDNlZmxhZ3MgXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSkge1xuZnMvYmluZm10X21pc2MuYzoxNjY6XHRcdFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGUtXHUwMDNlaW50ZXJwX2ZpbGUpO1xuZnMvYmluZm10X21pc2MuYy0xNjctXHRcdFx0ZmlscF9jbG9zZShlLVx1MDAzZWludGVycF9maWxlLCBOVUxMKTtcbi0tXG5mcy9iaW5mbXRfbWlzYy5jPTgwMT1zdGF0aWMgc3NpemVfdCBibV9yZWdpc3Rlcl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlcixcbi0tXG5mcy9iaW5mbXRfbWlzYy5jLTgzNS1cdFx0aWYgKGYpIHtcbmZzL2JpbmZtdF9taXNjLmM6ODM2Olx0XHRcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhmKTtcbmZzL2JpbmZtdF9taXNjLmMtODM3LVx0XHRcdGZpbHBfY2xvc2UoZiwgTlVMTCk7XG4tLVxuZnMvZXhlYy5jPTc2OD1zdGF0aWMgc3RydWN0IGZpbGUgKmRvX29wZW5fZXhlY2F0KGludCBmZCwgc3RydWN0IGZpbGVuYW1lICpuYW1lLCBpbnQgZmxhZ3MpXG4tLVxuZnMvZXhlYy5jLTgxNC0gKiBBcyB0aGlzIGlzIGEgd3JhcHBlciBmb3IgdGhlIGludGVybmFsIGRvX29wZW5fZXhlY2F0KCksIGNhbGxlcnNcbmZzL2V4ZWMuYzo4MTU6ICogbXVzdCBjYWxsIGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcygpIGJlZm9yZSBmcHV0KCkgb24gcmVsZWFzZS4gQWxzbyBzZWVcbmZzL2V4ZWMuYy04MTYtICogZG9fY2xvc2VfZXhlY2F0KCkuXG4tLVxuZnMvZXhlYy5jPTEzODk9c3RhdGljIHZvaWQgZG9fY2xvc2VfZXhlY2F0KHN0cnVjdCBmaWxlICpmaWxlKVxuLS1cbmZzL2V4ZWMuYy0xMzkyLVx0XHRyZXR1cm47XG5mcy9leGVjLmM6MTM5MzpcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhmaWxlKTtcbmZzL2V4ZWMuYy0xMzk0LVx0ZnB1dChmaWxlKTtcbi0tXG5mcy9leGVjLmM9MTcwOT1zdGF0aWMgaW50IGV4ZWNfYmlucHJtKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXG4tLVxuZnMvZXhlYy5jLTE3MzUtXG5mcy9leGVjLmM6MTczNjpcdFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGV4ZWMpO1xuZnMvZXhlYy5jLTE3MzctXHRcdGlmICh1bmxpa2VseShicHJtLVx1MDAzZWhhdmVfZXhlY2ZkKSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAwMjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzE5CgkJCQkJCQlvdXRwdXQ6IDEzMQoJCQkJCQkJdGhvdWdodHM6IDEwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBCaW5GbXQgU2VjdXJpdHkgRmxhdyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0FoLCBmaW5hbGx5LCBzb21lb25lIGNhdWdodCB0aGlzLiYjMzQ7IEl0IGxvb2tzIGxpa2UgdGhlcmUmIzM5O3MgYSBidWcgaW4gaG93IGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGlzIGhhbmRsZWQgd2l0aGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBTcGVjaWZpY2FsbHksIGl0IHNlZW1zIGxpa2Ugd2Ugd2VyZW4mIzM5O3QgY2FsbGluZyB0aGF0IGNyaXRpY2FsIGZ1bmN0aW9uICpiZWZvcmUqIGBmaWxwX2Nsb3NlYCBpbiB0aGUgY29kZSwgd2hpY2ggY291bGQgbGVhZCB0byBzb21lIG5hc3R5IHNlY3VyaXR5IGltcGxpY2F0aW9ucy4gVGhpcyBpcyBjbGVhcmx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGl0IGltcGFjdHMgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBiaW5hcnkgZm9ybWF0cywgc28gaXQgd2FycmFudHMgY2FyZWZ1bCBzY3J1dGlueS4KCk15IGZvY3VzIGlzIG5hcnJvd2luZyBpbiBvbiB0aGUgYEJJTkZNVF9NSVNDYCBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIGBwdXRfYmluZm10X2hhbmRsZXJgIGFuZCB0cmFjZSBpdHMgaW50ZXJhY3Rpb24gd2l0aCB0aGUgb3RoZXIga2V5IGZ1bmN0aW9ucyBpbnZvbHZlZDogYGxvYWRfbWlzY19iaW5hcnlgLCBgYm1fZXZpY3RfaW5vZGVgLCBgYm1fZW50cnlfd3JpdGVgLCBhbmQgYGJtX3JlZ2lzdGVyX3dyaXRlYC4gVGhvc2UgYXJlIHRoZSBwcmltZSBzdXNwZWN0cywgYW5kIEkgbmVlZCB0byBmaWd1cmUgb3V0IGV4YWN0bHkgaG93IHRoZSBsYWNrIG9mIHRoZSBgZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzYCBjYWxsIGltcGFjdHMgdGhlIGludGVyYWN0aW9uIG9mIHRoZXNlIGZ1bmN0aW9ucywgdG8gZGV0ZXJtaW5lIHRoZSBleGFjdCBuYXR1cmUgb2YgdGhlIHByb2JsZW0sIGFuZCBpdHMgcG90ZW50aWFsIGltcGFjdC4KCkxldCYjMzk7cyBjYWxsIHRoaXMgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMDI6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JJTkZNVF9NSVNDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHV0X2JpbmZtdF9oYW5kbGVyJiMzNDssCiAgICAmIzM0O2xvYWRfbWlzY19iaW5hcnkmIzM0OywKICAgICYjMzQ7Ym1fZXZpY3RfaW5vZGUmIzM0OywKICAgICYjMzQ7Ym1fZW50cnlfd3JpdGUmIzM0OywKICAgICYjMzQ7Ym1fcmVnaXN0ZXJfd3JpdGUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCSU5GTVRfTUlTQyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3B1dF9iaW5mbXRfaGFuZGxlciYjMzQ7LAogICAgJiMzNDtsb2FkX21pc2NfYmluYXJ5JiMzNDssCiAgICAmIzM0O2JtX2V2aWN0X2lub2RlJiMzNDssCiAgICAmIzM0O2JtX2VudHJ5X3dyaXRlJiMzNDssCiAgICAmIzM0O2JtX3JlZ2lzdGVyX3dyaXRlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIHdoZXJlIGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGlzIG5vdCBjYWxsZWQgYmVmb3JlIGBmaWxwX2Nsb3NlYCBpbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgYWZmZWN0cyB0aGUgYmluZm10X21pc2MgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjAwLjA1ODg3MDQwNVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMTY4OTEyNDE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJJTkZNVF9NSVNDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHV0X2JpbmZtdF9oYW5kbGVyXCIsXG4gICAgXCJsb2FkX21pc2NfYmluYXJ5XCIsXG4gICAgXCJibV9ldmljdF9pbm9kZVwiLFxuICAgIFwiYm1fZW50cnlfd3JpdGVcIixcbiAgICBcImJtX3JlZ2lzdGVyX3dyaXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMjoyMzowMC4wNTg4Nzk2OTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3MzM1ODI2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDQ3NGZmNjY1MGFiZDg1MzhmZDAwMTg1ZjMwZGU3YzNjM2JhZmY5MDhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgMjIgMDI6MjI6NTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X21pc2MuYyBiL2ZzL2JpbmZtdF9taXNjLmNcXG5pbmRleCA4NDM0OWZjYjkzZjEzYS4uZGU1MGE3NDY4YjA3OWQgMTAwNjQ0XFxuLS0tIGEvZnMvYmluZm10X21pc2MuY1xcbisrKyBiL2ZzL2JpbmZtdF9taXNjLmNcXG5AQCAtMTYyLDggKzE2MiwxMCBAQCBzdGF0aWMgTm9kZSAqZ2V0X2JpbmZtdF9oYW5kbGVyKHN0cnVjdCBiaW5mbXRfbWlzYyAqbWlzYyxcXG4gc3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpXFxuIHtcXG4gXFx0aWYgKHJlZmNvdW50X2RlY19hbmRfdGVzdChcXHUwMDI2ZS1cXHUwMDNldXNlcnMpKSB7XFxuLVxcdFxcdGlmIChlLVxcdTAwM2VmbGFncyBcXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSlcXG4rXFx0XFx0aWYgKGUtXFx1MDAzZWZsYWdzIFxcdTAwMjYgTUlTQ19GTVRfT1BFTl9GSUxFKSB7XFxuK1xcdFxcdFxcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhlLVxcdTAwM2VpbnRlcnBfZmlsZSk7XFxuIFxcdFxcdFxcdGZpbHBfY2xvc2UoZS1cXHUwMDNlaW50ZXJwX2ZpbGUsIE5VTEwpO1xcbitcXHRcXHR9XFxuIFxcdFxcdGtmcmVlKGUpO1xcbiBcXHR9XFxuIH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MDAuNjMzMjgwNzM1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjI1OTQ0ODk2MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQklORk1UX01JU0NcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwdXRfYmluZm10X2hhbmRsZXJcIixcbiAgICBcImxvYWRfbWlzY19iaW5hcnlcIixcbiAgICBcImJtX2V2aWN0X2lub2RlXCIsXG4gICAgXCJibV9lbnRyeV93cml0ZVwiLFxuICAgIFwiYm1fcmVnaXN0ZXJfd3JpdGVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyB3aGVyZSBgZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzYCBpcyBub3QgY2FsbGVkIGJlZm9yZSBgZmlscF9jbG9zZWAgaW4gYHB1dF9iaW5mbXRfaGFuZGxlcmAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IGFmZmVjdHMgdGhlIGJpbmZtdF9taXNjIGZpbGVzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNDc0ZmY2NjUwYWJkODUzOGZkMDAxODVmMzBkZTdjM2MzYmFmZjkwOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDAyOjIyOjU4IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMvYmluZm10X21pc2MuYyBiL2ZzL2JpbmZtdF9taXNjLmNcbmluZGV4IDg0MzQ5ZmNiOTNmMTNhLi5kZTUwYTc0NjhiMDc5ZCAxMDA2NDRcbi0tLSBhL2ZzL2JpbmZtdF9taXNjLmNcbisrKyBiL2ZzL2JpbmZtdF9taXNjLmNcbkBAIC0xNjIsOCArMTYyLDEwIEBAIHN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLFxuIHN0YXRpYyB2b2lkIHB1dF9iaW5mbXRfaGFuZGxlcihOb2RlICplKVxuIHtcbiBcdGlmIChyZWZjb3VudF9kZWNfYW5kX3Rlc3QoXHUwMDI2ZS1cdTAwM2V1c2VycykpIHtcbi1cdFx0aWYgKGUtXHUwMDNlZmxhZ3MgXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSlcbitcdFx0aWYgKGUtXHUwMDNlZmxhZ3MgXHUwMDI2IE1JU0NfRk1UX09QRU5fRklMRSkge1xuK1x0XHRcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhlLVx1MDAzZWludGVycF9maWxlKTtcbiBcdFx0XHRmaWxwX2Nsb3NlKGUtXHUwMDNlaW50ZXJwX2ZpbGUsIE5VTEwpO1xuK1x0XHR9XG4gXHRcdGtmcmVlKGUpO1xuIFx0fVxuIH1cbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjAwLjYzMzI4MzU1NVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYyMDM2ODY0MzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCaW5GbXRfTWlzYyBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgbWFraW5nIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gYGZzL2JpbmZtdF9taXNjLmNgLiBJdCdzIGFkZGluZyBhIGNhbGwgdG8gYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhlLVx1MDAzZWludGVycF9maWxlKWAgcmlnaHQgYmVmb3JlIGBmaWxwX2Nsb3NlKGUtXHUwMDNlaW50ZXJwX2ZpbGUsIE5VTEwpYCBpbiB0aGUgYHB1dF9iaW5mbXRfaGFuZGxlcmAgZnVuY3Rpb24uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCB3aGF0J3MgdGhlIHB1cnBvc2Ugb2YgdGhpcyB3cml0ZSBhY2Nlc3MgY2hlY2sgYmVmb3JlIGNsb3NpbmcgdGhlIGludGVycHJldGVyIGZpbGU/IEFuZCB3aHkgaGVyZSwgc3BlY2lmaWNhbGx5P1xuXG5MZXQgbWUgcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gSSByZWNhbGwgaXQgYmVpbmcgY2FsbGVkIHdoZW4gYSBiaW5mbXRfbWlzYyBoYW5kbGVyIGlzIHJlbW92ZWQsIHBvdGVudGlhbGx5IGR1cmluZyB1bm1vdW50aW5nIG9mIHRoZSBmaWxlc3lzdGVtLCBvciBzaW1wbHkgd2hlbiBhIGhhbmRsZXIncyByZWZlcmVuY2UgY291bnQgZHJvcHMgdG8gemVyby4gVGhhdCdzIHRoZSBjb250ZXh0IEkgbmVlZCB0byBrZWVwIGluIG1pbmQgaGVyZS4gSXQncyB0aGUgY2xlYW51cCBwYXRoLiBHaXZlbiB0aGF0IGNvbnRleHQsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgZG9pbmcuIFRoaXMgbGlrZWx5IGludm9sdmVzIHNvbWUga2luZCBvZiBwZXJtaXNzaW9uIGNoZWNrIG9yIGFkanVzdG1lbnQuXG5cblRpbWUgdG8gZGl2ZSBpbnRvIGBmcy9iaW5mbXRfbWlzYy5jYCBhbmQgY29uZmlybSB3aGVyZSBleGFjdGx5IGBwdXRfYmluZm10X2hhbmRsZXJgIGlzIGJlaW5nIGNhbGxlZCBhbmQgZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoYXQgZnVuY3Rpb24ncyBvdmVyYWxsIHB1cnBvc2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgdGhpcyBhZGRpdGlvbiB0byB0aGUgZXhlY3V0aW9uIGZsb3cuIFRoaXMgbWlnaHQgcmV2ZWFsIGEgcG90ZW50aWFsIHNlY3VyaXR5IGhhcmRlbmluZywgb3IgbWF5YmUgaXQncyBqdXN0IGFkZHJlc3NpbmcgYSBzdWJ0bGUgcmFjZSBjb25kaXRpb24gcmVsYXRlZCB0byBmaWxlIHBlcm1pc3Npb25zLiBMZXQncyBzZWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzMsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQwMjoyMzowNi44MzY5NzM5NTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQzOTc1NTI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInB1dF9iaW5mbXRfaGFuZGxlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9iaW5mbXRfbWlzYy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2JpbmZtdF9taXNjLmM9MTQxPXN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLFxcbi0tXFxuZnMvYmluZm10X21pc2MuYy0xNTQtLyoqXFxuZnMvYmluZm10X21pc2MuYzoxNTU6ICogcHV0X2JpbmZtdF9oYW5kbGVyIC0gcHV0IGJpbmFyeSBoYW5kbGVyIG5vZGVcXG5mcy9iaW5mbXRfbWlzYy5jLTE1Ni0gKiBAZTogbm9kZSB0byBwdXRcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmMtMTYxLSAqL1xcbmZzL2JpbmZtdF9taXNjLmM6MTYyOnN0YXRpYyB2b2lkIHB1dF9iaW5mbXRfaGFuZGxlcihOb2RlICplKVxcbmZzL2JpbmZtdF9taXNjLmMtMTYzLXtcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmM9MjA1PXN0YXRpYyBpbnQgbG9hZF9taXNjX2JpbmFyeShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxcbi0tXFxuZnMvYmluZm10X21pc2MuYy0yNzctXFx0ICovXFxuZnMvYmluZm10X21pc2MuYzoyNzg6XFx0cHV0X2JpbmZtdF9oYW5kbGVyKGZtdCk7XFxuZnMvYmluZm10X21pc2MuYy0yNzktXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jPTY2Mj1zdGF0aWMgdm9pZCBibV9ldmljdF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxuZnMvYmluZm10X21pc2MuYy02NzUtXFx0XFx0d3JpdGVfdW5sb2NrKFxcdTAwMjZtaXNjLVxcdTAwM2VlbnRyaWVzX2xvY2spO1xcbmZzL2JpbmZtdF9taXNjLmM6Njc2OlxcdFxcdHB1dF9iaW5mbXRfaGFuZGxlcihlKTtcXG5mcy9iaW5mbXRfbWlzYy5jLTY3Ny1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjA3LjI4MDk1OTgwM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMTU1MDgzMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBgcHV0X2JpbmZtdF9oYW5kbGVyYCBVc2FnZSoqXG5cbkFscmlnaHQsIHNvIGBwdXRfYmluZm10X2hhbmRsZXJgIGlzIGNhbGxlZCB3aXRoaW4gYm90aCBgbG9hZF9taXNjX2JpbmFyeWAgYW5kIGBibV9ldmljdF9pbm9kZWAuIFRoYXQgaW1tZWRpYXRlbHkgc2V0cyBvZmYgYSBmbGFnLiBUeXBpY2FsbHksIEknZCBleHBlY3QgaGFuZGxlciB1bnJlZ2lzdHJhdGlvbiAod2hpY2ggaXMgd2hhdCBgcHV0X2JpbmZtdF9oYW5kbGVyYCBkb2VzKSB0byBiZSBtb3JlIGNsb3NlbHkgdGllZCB0byB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MsIGFuZCBldmljdGlvbiBsb2dpYyBpcyBhIGRlZmluaXRlIHNlY29uZCBsb2NhdGlvbiBvZiBub3RlLiBMZXQncyBkaWcgaW50byBgbG9hZF9taXNjX2JpbmFyeWAgZmlyc3QuIEl0J3MgdGhlIG1vcmUgbGlrZWx5IGNhbmRpZGF0ZSBmb3IgY29udGFpbmluZyB0aGUgY29yZSBsb2dpYyByZWxhdGVkIHRvIGJpbmFyeSBmb3JtYXQgbG9hZGluZyBhbmQgc3Vic2VxdWVudCB1bmxvYWRpbmcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBhbmQgd2hlbiBpdCdzIGludm9raW5nIGBwdXRfYmluZm10X2hhbmRsZXJgIHRoZXJlLiBJcyBpdCBzaW1wbHkgb24gYSBjbGVhbiBleGl0IHBhdGgsIG9yIGFyZSB0aGVyZSBlcnJvciBjYXNlcyB3aGVyZSB0aGUgaGFuZGxlciBtaWdodCBub3QgYmUgcHJvcGVybHkgdW5yZWdpc3RlcmVkPyBBbmQgZG9lcyB0aGlzIHVzYWdlIHBhdHRlcm4gaW4gYGxvYWRfbWlzY19iaW5hcnlgIGRpZmZlciBmdW5kYW1lbnRhbGx5IGZyb20gaXRzIHVzZSBpbiBgYm1fZXZpY3RfaW5vZGVgPyBUaG9zZSBhcmUgdGhlIHF1ZXN0aW9ucyBJIG5lZWQgdG8gYW5zd2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzk5LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MTEuMjk2NDcwOTg0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5MTI2NzY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxvYWRfbWlzY19iaW5hcnlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvYmluZm10X21pc2MuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9iaW5mbXRfbWlzYy5jPTUwPXR5cGVkZWYgc3RydWN0IHtcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmMtNjAtXFx0c3RydWN0IGZpbGUgKmludGVycF9maWxlO1xcbmZzL2JpbmZtdF9taXNjLmM6NjE6XFx0cmVmY291bnRfdCB1c2VycztcXHRcXHQvKiBzeW5jIHJlbW92YWwgd2l0aCBsb2FkX21pc2NfYmluYXJ5KCkgKi9cXG5mcy9iaW5mbXRfbWlzYy5jLTYyLX0gTm9kZTtcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmM9MTQxPXN0YXRpYyBOb2RlICpnZXRfYmluZm10X2hhbmRsZXIoc3RydWN0IGJpbmZtdF9taXNjICptaXNjLFxcbi0tXFxuZnMvYmluZm10X21pc2MuYy0xNTctICpcXG5mcy9iaW5mbXRfbWlzYy5jOjE1ODogKiBGcmVlIG5vZGUgc3luY2luZyB3aXRoIGxvYWRfbWlzY19iaW5hcnkoKSBhbmQgZGVmZXIgZmluYWwgZnJlZSB0b1xcbmZzL2JpbmZtdF9taXNjLmM6MTU5OiAqIGxvYWRfbWlzY19iaW5hcnkoKSBpbiBjYXNlIGl0IGlzIHVzaW5nIHRoZSBiaW5hcnkgdHlwZSBoYW5kbGVyIHdlIHdlcmVcXG5mcy9iaW5mbXRfbWlzYy5jLTE2MC0gKiByZXF1ZXN0ZWQgdG8gcmVtb3ZlLlxcbi0tXFxuZnMvYmluZm10X21pc2MuYz0xNjI9c3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTE3NS0gKlxcbmZzL2JpbmZtdF9taXNjLmM6MTc2OiAqIFRvIGJlIGNhbGxlZCBpbiBsb2FkX21pc2NfYmluYXJ5KCkgdG8gbG9hZCB0aGUgcmVsZXZhbnQgc3RydWN0IGJpbmZtdF9taXNjLlxcbmZzL2JpbmZtdF9taXNjLmMtMTc3LSAqIElmIGEgdXNlciBuYW1lc3BhY2UgZG9lc24ndCBoYXZlIGl0cyBvd24gYmluZm10X21pc2MgbW91bnQgaXQgY2FuIG1ha2UgdXNlXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jPTE4ND1zdGF0aWMgc3RydWN0IGJpbmZtdF9taXNjICpsb2FkX2JpbmZtdF9taXNjKHZvaWQpXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTIwNC0gKi9cXG5mcy9iaW5mbXRfbWlzYy5jOjIwNTpzdGF0aWMgaW50IGxvYWRfbWlzY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcXG5mcy9iaW5mbXRfbWlzYy5jLTIwNi17XFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTI3Mi1cXHQgKiBJZiB3ZSBhY3R1YWxseSBwdXQgdGhlIG5vZGUgaGVyZSBhbGwgY29uY3VycmVudCBjYWxscyB0b1xcbmZzL2JpbmZtdF9taXNjLmM6MjczOlxcdCAqIGxvYWRfbWlzY19iaW5hcnkoKSB3aWxsIGhhdmUgZmluaXNoZWQuIFdlIGFsc28ga25vd1xcbmZzL2JpbmZtdF9taXNjLmMtMjc0LVxcdCAqIHRoYXQgZm9yIHRoZSByZWZjb3VudCB0byBiZSB6ZXJvIHNvbWVvbmUgbXVzdCBoYXZlIGNvbmN1cmVudGx5XFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jPTcyMT1zdGF0aWMgc3NpemVfdCBibV9lbnRyeV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlcixcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmMtNzQ2LVxcdFxcdCAqIFRoZSBsb2NrIGlzIGV4Y2x1c2l2ZSBlbnN1cmluZyB0aGF0IHRoZSBsaXN0IGNhbid0IGJlXFxuZnMvYmluZm10X21pc2MuYzo3NDc6XFx0XFx0ICogbW9kaWZpZWQuIE9ubHkgbG9hZF9taXNjX2JpbmFyeSgpIGNhbiBhY2Nlc3MgYnV0IGRvZXMgc29cXG5mcy9iaW5mbXRfbWlzYy5jLTc0OC1cXHRcXHQgKiByZWFkLW9ubHkuIFNvIHdlIG9ubHkgbmVlZCB0byB0YWtlIHRoZSB3cml0ZSBsb2NrIHdoZW4gd2VcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmM9ODYzPXN0YXRpYyBzc2l6ZV90IGJtX3N0YXR1c193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlcixcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmMtODkwLVxcdFxcdCAqIFRoZSBsb2NrIGlzIGV4Y2x1c2l2ZSBlbnN1cmluZyB0aGF0IHRoZSBsaXN0IGNhbid0IGJlXFxuZnMvYmluZm10X21pc2MuYzo4OTE6XFx0XFx0ICogbW9kaWZpZWQuIE9ubHkgbG9hZF9taXNjX2JpbmFyeSgpIGNhbiBhY2Nlc3MgYnV0IGRvZXMgc29cXG5mcy9iaW5mbXRfbWlzYy5jLTg5Mi1cXHRcXHQgKiByZWFkLW9ubHkuIFNvIHdlIG9ubHkgbmVlZCB0byB0YWtlIHRoZSB3cml0ZSBsb2NrIHdoZW4gd2VcXG4tLVxcbmZzL2JpbmZtdF9taXNjLmM9OTI5PXN0YXRpYyBpbnQgYm1fZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgZnNfY29udGV4dCAqZmMpXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTk4Mi1cXHQgKiAtXFx1MDAzZXB1dF9zdXBlcigpIGlzIGNhbGxlZCB3ZSBrbm93IHRoYXQgdGhlIGJpbmFyeSB0eXBlIGxpc3QgZm9yIHRoaXNcXG5mcy9iaW5mbXRfbWlzYy5jOjk4MzpcXHQgKiBiaW50Zm10X21pc2MgbW91bnQgaXMgZW1wdHkgbWFraW5nIGxvYWRfbWlzY19iaW5hcnkoKSByZXR1cm5cXG5mcy9iaW5mbXRfbWlzYy5jLTk4NC1cXHQgKiAtRU5PRVhFQyBpbmRlcGVuZGVudCBvZiB3aGV0aGVyIC1cXHUwMDNlZW5hYmxlZCBpcyB0cnVlLiBJbnN0ZWFkLCBpZlxcbi0tXFxuZnMvYmluZm10X21pc2MuYz0xMDE4PXN0YXRpYyBzdHJ1Y3QgbGludXhfYmluZm10IG1pc2NfZm9ybWF0ID0ge1xcbmZzL2JpbmZtdF9taXNjLmMtMTAxOS1cXHQubW9kdWxlID0gVEhJU19NT0RVTEUsXFxuZnMvYmluZm10X21pc2MuYzoxMDIwOlxcdC5sb2FkX2JpbmFyeSA9IGxvYWRfbWlzY19iaW5hcnksXFxuZnMvYmluZm10X21pc2MuYy0xMDIxLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjExLjM2NTYwNTI5OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2Nzg0MzY1MzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQ3JpdGljYWwgQnVnIEZpeCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcHJldHR5IGltcG9ydGFudCBpc3N1ZSDigJMgc3BlY2lmaWNhbGx5LCB0aGF0IGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIHdhc24ndCBiZWluZyBjYWxsZWQgKmJlZm9yZSogYGZpbHBfY2xvc2VgIHdpdGhpbiB0aGUgYHB1dF9iaW5mbXRfaGFuZGxlcmAgZnVuY3Rpb24uIFRoaXMgZmVlbHMgbGlrZSBpdCBjb3VsZCBjcmVhdGUgYSBzaWduaWZpY2FudCB2dWxuZXJhYmlsaXR5LCBwb3RlbnRpYWxseSBhbGxvd2luZyBhIHdyaXRlIGFjY2VzcyBpc3N1ZSB0byBzbGlwIHRocm91Z2ggdGhlIGNyYWNrcy4gSXQncyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0aGF0IHdhcnJhbnRzIHJpZ29yb3VzIGZ1enppbmcgdG8gZW5zdXJlIGl0J3MgYmVlbiBjb3JyZWN0bHkgYWRkcmVzc2VkIGFuZCB0aGF0IHRoZXJlIGFyZSBubyByZW1haW5pbmcgZWRnZSBjYXNlcy4gR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgZml4LCBmdXp6aW5nIGZlZWxzIGxpa2UgYSBjcml0aWNhbCBuZXh0IHN0ZXAuXG5cbkkgbmVlZCB0byBjb25maXJtIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoZSBjb25maWcgaXMgbGlzdGVkIGFzIGBCSU5GTVRfTUlTQ2AuIEknbGwgZ28gY2hlY2sgYGZzL0tjb25maWcuYmluZm10YCBvciBhIHNpbWlsYXIgY29uZmlndXJhdGlvbiBmaWxlIHRvIGdldCB0aGUgY29ycmVjdCBjb250ZXh0IGZvciB0aGUgcGF0Y2guIEkgbmVlZCB0byB1bmRlcnN0YW5kIGV4YWN0bHkgd2hhdCB0aGlzIGBCSU5GTVRfTUlTQ2Agc2V0dGluZyBjb250cm9scyBpbiBvcmRlciB0byBlZmZlY3RpdmVseSB0ZXN0IHRoaXMgZml4LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTIyLCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MTUuMDQ0MDQ0OTQzWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMDU4NjE5MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQklORk1UX01JU0NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL0tjb25maWcuYmluZm10PTEzOD1jb25maWcgQklORk1UX1pGTEFUXFxuLS1cXG5mcy9LY29uZmlnLmJpbmZtdC0xNDQtXFxuZnMvS2NvbmZpZy5iaW5mbXQ6MTQ1OmNvbmZpZyBCSU5GTVRfTUlTQ1xcbmZzL0tjb25maWcuYmluZm10LTE0Ni1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsIHN1cHBvcnQgZm9yIE1JU0MgYmluYXJpZXNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjE1LjE0NDYzODEyNloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMzYwMjUxMTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBCaW5GbXRfTWlzYyBDb25maWd1cmF0aW9uIGFuZCBSZWxhdGVkIEZ1bmN0aW9ucyoqXG5cbk9rYXksIHNvIHRoZSBrZXJuZWwgY29uZmlnIGlzIGRlZmluaXRlbHkgc2V0IHRvIGBCSU5GTVRfTUlTQ2AuIFRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIE5vdywgSSBuZWVkIHRvIHplcm8gaW4gb24gdGhlIGtleSBwbGF5ZXJzIHdpdGhpbiB0aGF0IGNvbnRleHQuIEkgd2FudCB0byByZWFsbHkgdW5kZXJzdGFuZCB0aGUgaW50ZXJhY3Rpb25zLCBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLCBhbmQgb3ZlcmFsbCBkZXNpZ24uIE15IGZvY3VzIGlzIGdvaW5nIHRvIGJlIG9uIGBwdXRfYmluZm10X2hhbmRsZXJgLCBgbG9hZF9taXNjX2JpbmFyeWAsIGBibV9ldmljdF9pbm9kZWAsIGFuZCBgYm1fZW50cnlfd3JpdGVgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIGNlbnRyYWwgdG8gaG93IHRoaXMgYmluYXJ5IGZvcm1hdCBpcyBoYW5kbGVkLCBsb2FkZWQsIGFuZCBtYW5hZ2VkIGF0IHJ1bnRpbWUuIEl0J3MgdGltZSB0byBkaWcgaW50byB0aGUgY29kZSBhbmQgdHJhY2UgdGhlaXIgZmxvdy4gSSBlc3BlY2lhbGx5IHdhbnQgdG8gdW5kZXJzdGFuZCBob3cgd3JpdGVzIGFyZSBoYW5kbGVkLiBJIG5lZWQgdG8gY2hlY2sgaG93IGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGlzIGJlaW5nIHVzZWQgd2l0aGluIHRoYXQgY29udGV4dDsgaXQgc2VlbXMgbGlrZSBhIHBvdGVudGlhbCBwb2ludCBmb3IgcHJpdmlsZWdlIGVzY2FsYXRpb24gb3IgdW5leHBlY3RlZCBiZWhhdmlvciBhbmQgbmVlZHMgdG8gYmUgdGhvcm91Z2hseSBzY3J1dGluaXplZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDUyMCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDAyOjIzOjE4LjQ4MDY2NjQ1NVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTgxNTEwMDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9iaW5mbXRfZWxmLmM9ODMyPXN0YXRpYyBpbnQgbG9hZF9lbGZfYmluYXJ5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pXFxuLS1cXG5mcy9iaW5mbXRfZWxmLmMtMTI3Mi1cXG5mcy9iaW5mbXRfZWxmLmM6MTI3MzpcXHRcXHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoaW50ZXJwcmV0ZXIpO1xcbmZzL2JpbmZtdF9lbGYuYy0xMjc0LVxcdFxcdGZwdXQoaW50ZXJwcmV0ZXIpO1xcbi0tXFxuZnMvYmluZm10X2VsZi5jLTEzODgtb3V0X2ZyZWVfZmlsZTpcXG5mcy9iaW5mbXRfZWxmLmM6MTM4OTpcXHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoaW50ZXJwcmV0ZXIpO1xcbmZzL2JpbmZtdF9lbGYuYy0xMzkwLVxcdGlmIChpbnRlcnByZXRlcilcXG4tLVxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYz0xODI9c3RhdGljIGludCBsb2FkX2VsZl9mZHBpY19iaW5hcnkoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSlcXG4tLVxcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy0zOTYtXFxuZnMvYmluZm10X2VsZl9mZHBpYy5jOjM5NzpcXHRcXHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoaW50ZXJwcmV0ZXIpO1xcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYy0zOTgtXFx0XFx0ZnB1dChpbnRlcnByZXRlcik7XFxuLS1cXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNDY5LVxcdGlmIChpbnRlcnByZXRlcikge1xcbmZzL2JpbmZtdF9lbGZfZmRwaWMuYzo0NzA6XFx0XFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGludGVycHJldGVyKTtcXG5mcy9iaW5mbXRfZWxmX2ZkcGljLmMtNDcxLVxcdFxcdGZwdXQoaW50ZXJwcmV0ZXIpO1xcbi0tXFxuZnMvYmluZm10X21pc2MuYz0xNjI9c3RhdGljIHZvaWQgcHV0X2JpbmZtdF9oYW5kbGVyKE5vZGUgKmUpXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTE2NS1cXHRcXHRpZiAoZS1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBNSVNDX0ZNVF9PUEVOX0ZJTEUpIHtcXG5mcy9iaW5mbXRfbWlzYy5jOjE2NjpcXHRcXHRcXHRleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3MoZS1cXHUwMDNlaW50ZXJwX2ZpbGUpO1xcbmZzL2JpbmZtdF9taXNjLmMtMTY3LVxcdFxcdFxcdGZpbHBfY2xvc2UoZS1cXHUwMDNlaW50ZXJwX2ZpbGUsIE5VTEwpO1xcbi0tXFxuZnMvYmluZm10X21pc2MuYz04MDE9c3RhdGljIHNzaXplX3QgYm1fcmVnaXN0ZXJfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsXFxuLS1cXG5mcy9iaW5mbXRfbWlzYy5jLTgzNS1cXHRcXHRpZiAoZikge1xcbmZzL2JpbmZtdF9taXNjLmM6ODM2OlxcdFxcdFxcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhmKTtcXG5mcy9iaW5mbXRfbWlzYy5jLTgzNy1cXHRcXHRcXHRmaWxwX2Nsb3NlKGYsIE5VTEwpO1xcbi0tXFxuZnMvZXhlYy5jPTc2OD1zdGF0aWMgc3RydWN0IGZpbGUgKmRvX29wZW5fZXhlY2F0KGludCBmZCwgc3RydWN0IGZpbGVuYW1lICpuYW1lLCBpbnQgZmxhZ3MpXFxuLS1cXG5mcy9leGVjLmMtODE0LSAqIEFzIHRoaXMgaXMgYSB3cmFwcGVyIGZvciB0aGUgaW50ZXJuYWwgZG9fb3Blbl9leGVjYXQoKSwgY2FsbGVyc1xcbmZzL2V4ZWMuYzo4MTU6ICogbXVzdCBjYWxsIGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcygpIGJlZm9yZSBmcHV0KCkgb24gcmVsZWFzZS4gQWxzbyBzZWVcXG5mcy9leGVjLmMtODE2LSAqIGRvX2Nsb3NlX2V4ZWNhdCgpLlxcbi0tXFxuZnMvZXhlYy5jPTEzODk9c3RhdGljIHZvaWQgZG9fY2xvc2VfZXhlY2F0KHN0cnVjdCBmaWxlICpmaWxlKVxcbi0tXFxuZnMvZXhlYy5jLTEzOTItXFx0XFx0cmV0dXJuO1xcbmZzL2V4ZWMuYzoxMzkzOlxcdGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2VzcyhmaWxlKTtcXG5mcy9leGVjLmMtMTM5NC1cXHRmcHV0KGZpbGUpO1xcbi0tXFxuZnMvZXhlYy5jPTE3MDk9c3RhdGljIGludCBleGVjX2JpbnBybShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKVxcbi0tXFxuZnMvZXhlYy5jLTE3MzUtXFxuZnMvZXhlYy5jOjE3MzY6XFx0XFx0ZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzKGV4ZWMpO1xcbmZzL2V4ZWMuYy0xNzM3LVxcdFxcdGlmICh1bmxpa2VseShicHJtLVxcdTAwM2VoYXZlX2V4ZWNmZCkpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MTguNTc4ODI2MjY5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDkxNDM4MjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQmluRm10IFNlY3VyaXR5IEZsYXcqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIHRob3VnaHQgaXMsIFwiQWgsIGZpbmFsbHksIHNvbWVvbmUgY2F1Z2h0IHRoaXMuXCIgSXQgbG9va3MgbGlrZSB0aGVyZSdzIGEgYnVnIGluIGhvdyBgZXhlX2ZpbGVfYWxsb3dfd3JpdGVfYWNjZXNzYCBpcyBoYW5kbGVkIHdpdGhpbiBgcHV0X2JpbmZtdF9oYW5kbGVyYC4gU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyBsaWtlIHdlIHdlcmVuJ3QgY2FsbGluZyB0aGF0IGNyaXRpY2FsIGZ1bmN0aW9uICpiZWZvcmUqIGBmaWxwX2Nsb3NlYCBpbiB0aGUgY29kZSwgd2hpY2ggY291bGQgbGVhZCB0byBzb21lIG5hc3R5IHNlY3VyaXR5IGltcGxpY2F0aW9ucy4gVGhpcyBpcyBjbGVhcmx5IGEgZnVuY3Rpb25hbCBjaGFuZ2Ug4oCTIGl0IGltcGFjdHMgaG93IHRoZSBzeXN0ZW0gaGFuZGxlcyBiaW5hcnkgZm9ybWF0cywgc28gaXQgd2FycmFudHMgY2FyZWZ1bCBzY3J1dGlueS5cblxuTXkgZm9jdXMgaXMgbmFycm93aW5nIGluIG9uIHRoZSBgQklORk1UX01JU0NgIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byBkaXZlIGludG8gYHB1dF9iaW5mbXRfaGFuZGxlcmAgYW5kIHRyYWNlIGl0cyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBvdGhlciBrZXkgZnVuY3Rpb25zIGludm9sdmVkOiBgbG9hZF9taXNjX2JpbmFyeWAsIGBibV9ldmljdF9pbm9kZWAsIGBibV9lbnRyeV93cml0ZWAsIGFuZCBgYm1fcmVnaXN0ZXJfd3JpdGVgLiBUaG9zZSBhcmUgdGhlIHByaW1lIHN1c3BlY3RzLCBhbmQgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgZXhhY3RseSBob3cgdGhlIGxhY2sgb2YgdGhlIGBleGVfZmlsZV9hbGxvd193cml0ZV9hY2Nlc3NgIGNhbGwgaW1wYWN0cyB0aGUgaW50ZXJhY3Rpb24gb2YgdGhlc2UgZnVuY3Rpb25zLCB0byBkZXRlcm1pbmUgdGhlIGV4YWN0IG5hdHVyZSBvZiB0aGUgcHJvYmxlbSwgYW5kIGl0cyBwb3RlbnRpYWwgaW1wYWN0LlxuXG5MZXQncyBjYWxsIHRoaXMgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTcxOSwiT3V0cHV0VG9rZW5zIjoxMzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMDI6MjM6MjMuMTI3OTc0NDY1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTk3ODg0MzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJJTkZNVF9NSVNDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHV0X2JpbmZtdF9oYW5kbGVyXCIsXG4gICAgXCJsb2FkX21pc2NfYmluYXJ5XCIsXG4gICAgXCJibV9ldmljdF9pbm9kZVwiLFxuICAgIFwiYm1fZW50cnlfd3JpdGVcIixcbiAgICBcImJtX3JlZ2lzdGVyX3dyaXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJJTkZNVF9NSVNDXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHV0X2JpbmZtdF9oYW5kbGVyXCIsXG4gICAgXCJsb2FkX21pc2NfYmluYXJ5XCIsXG4gICAgXCJibV9ldmljdF9pbm9kZVwiLFxuICAgIFwiYm1fZW50cnlfd3JpdGVcIixcbiAgICBcImJtX3JlZ2lzdGVyX3dyaXRlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgd2hlcmUgYGV4ZV9maWxlX2FsbG93X3dyaXRlX2FjY2Vzc2AgaXMgbm90IGNhbGxlZCBiZWZvcmUgYGZpbHBfY2xvc2VgIGluIGBwdXRfYmluZm10X2hhbmRsZXJgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBhZmZlY3RzIHRoZSBiaW5mbXRfbWlzYyBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowh66tq[1] Phase: Succeeded StartedAt: 2026-07-22 02:23:34 +0000 UTC FinishedAt: 2026-07-22 02:23:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-22 02:23:34 +0000 UTC FinishedAt: 2026-07-22 02:23:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2] Phase: Succeeded StartedAt: 2026-07-22 02:23:34 +0000 UTC FinishedAt: 2026-07-22 06:27:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-22 02:23:34 +0000 UTC FinishedAt: 2026-07-22 06:27:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-22 02:23:34 +0000 UTC FinishedAt: 2026-07-22 02:23:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-22 02:23:34 +0000 UTC FinishedAt: 2026-07-22 02:23:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowh66tq/series-workflowh66tq-convert-artifact-1576468446/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-22 02:23:44 +0000 UTC FinishedAt: 2026-07-22 02:55:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-22 02:23:44 +0000 UTC FinishedAt: 2026-07-22 02:55:57 +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:*6ddfd352-c5e2-450a-af7a-076d66bccfd8,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-workflowh66tq/series-workflowh66tq-convert-artifact-1576468446/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": "5fcb6b6c-cbb7-45e3-bfd1-529f8794f1c2", "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-workflowh66tq/series-workflowh66tq-build-action-863183044/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-22 02:23:44 +0000 UTC FinishedAt: 2026-07-22 02:55:48 +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:*6ddfd352-c5e2-450a-af7a-076d66bccfd8,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-workflowh66tq/series-workflowh66tq-convert-artifact-1576468446/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": "5fcb6b6c-cbb7-45e3-bfd1-529f8794f1c2", "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-workflowh66tq/series-workflowh66tq-build-action-863183044/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-22 02:55:57 +0000 UTC FinishedAt: 2026-07-22 02:55:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-22 02:55:57 +0000 UTC FinishedAt: 2026-07-22 02:55:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-22 02:55:57 +0000 UTC FinishedAt: 2026-07-22 02:56:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-22 02:55:57 +0000 UTC FinishedAt: 2026-07-22 02:56:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowh66tq/series-workflowh66tq-convert-artifact-423788433/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-22 02:56:08 +0000 UTC FinishedAt: 2026-07-22 02:58:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-22 02:56:08 +0000 UTC FinishedAt: 2026-07-22 02:57:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5fcb6b6c-cbb7-45e3-bfd1-529f8794f1c2,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-workflowh66tq/series-workflowh66tq-build-action-863183044/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-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-22 02:58:01 +0000 UTC FinishedAt: 2026-07-22 02:58:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-22 02:58:01 +0000 UTC FinishedAt: 2026-07-22 02:58:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-22 02:58:01 +0000 UTC FinishedAt: 2026-07-22 03:22:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-22 02:58:01 +0000 UTC FinishedAt: 2026-07-22 03:22:17 +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:*6ddfd352-c5e2-450a-af7a-076d66bccfd8,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-workflowh66tq/series-workflowh66tq-convert-artifact-423788433/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": "0e376056-4116-4c6b-8661-ea7381ff7153", "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-workflowh66tq/series-workflowh66tq-build-action-3478744925/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-22 02:58:01 +0000 UTC FinishedAt: 2026-07-22 03:21:20 +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:*6ddfd352-c5e2-450a-af7a-076d66bccfd8,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-workflowh66tq/series-workflowh66tq-convert-artifact-423788433/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": "0e376056-4116-4c6b-8661-ea7381ff7153", "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-workflowh66tq/series-workflowh66tq-build-action-3478744925/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-22 03:22:17 +0000 UTC FinishedAt: 2026-07-22 03:22:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-22 03:22:17 +0000 UTC FinishedAt: 2026-07-22 03:22:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-22 03:22:17 +0000 UTC FinishedAt: 2026-07-22 03:24:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-22 03:22:17 +0000 UTC FinishedAt: 2026-07-22 03:23:59 +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:*0e376056-4116-4c6b-8661-ea7381ff7153,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-workflowh66tq/series-workflowh66tq-build-action-3478744925/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-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-22 03:24:09 +0000 UTC FinishedAt: 2026-07-22 06:27:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-22 03:24:09 +0000 UTC FinishedAt: 2026-07-22 06:27:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"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:*5fcb6b6c-cbb7-45e3-bfd1-529f8794f1c2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0e376056-4116-4c6b-8661-ea7381ff7153,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-workflowh66tq/series-workflowh66tq-build-action-863183044/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-workflowh66tq/series-workflowh66tq-build-action-3478744925/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-22 03:24:09 +0000 UTC FinishedAt: 2026-07-22 03:24:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-22 03:24:09 +0000 UTC FinishedAt: 2026-07-22 03:24:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"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-workflowh66tq/series-workflowh66tq-convert-artifact-3226886854/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-22 03:24:09 +0000 UTC FinishedAt: 2026-07-22 03:24:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-22 03:24:09 +0000 UTC FinishedAt: 2026-07-22 03:24:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-22 03:24:09 +0000 UTC FinishedAt: 2026-07-22 03:24:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-22 03:24:19 +0000 UTC FinishedAt: 2026-07-22 06:27:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh66tq[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_binfmt_handler","load_misc_binary","bm_evict_inode","bm_entry_write","bm_register_write"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"248951ddc14de84de3910f9b13f51491a8cd91df","config_name":"upstream-apparmor-kasan.config","enable_configs":["BINFMT_MISC"],"series_id":"0630ffd2-2369-4833-82f7-b5ffa3fe109e","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-22 03:24:19 +0000 UTC FinishedAt: 2026-07-22 06:27:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*5fcb6b6c-cbb7-45e3-bfd1-529f8794f1c2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*0e376056-4116-4c6b-8661-ea7381ff7153,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-workflowh66tq/series-workflowh66tq-build-action-863183044/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-workflowh66tq/series-workflowh66tq-build-action-3478744925/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-workflowh66tq/series-workflowh66tq-convert-artifact-3226886854/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,}