Name: series-workflowfsm7v Phase: Succeeded StartedAt: 2026-07-16 05:00:15 +0000 UTC FinishedAt: 2026-07-16 06:56:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[0] Phase: Succeeded StartedAt: 2026-07-16 05:00:15 +0000 UTC FinishedAt: 2026-07-16 05:27:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[0].run-triage Phase: Succeeded StartedAt: 2026-07-16 05:00:15 +0000 UTC FinishedAt: 2026-07-16 05:27:58 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "a13c140cc289c0b7b3770bce5b3ad42ab35074aa", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "a13c140cc289c0b7b3770bce5b3ad42ab35074aa", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "3e641585-058d-42bc-ba44-3914d0584186" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_loongarch_cpucfg_set_attr", "kvm_loongarch_vcpu_set_attr" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDA1OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyJiMzNDssCiAgICAmIzM0O2t2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0ciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBMb29uZ0FyY2ggS1ZNIFZDUFUgYXR0cmlidXRlIHNldHRpbmcgbG9naWMgdG8gcHJldmVudCBjaGFuZ2luZyBQViBmZWF0dXJlcyBhZnRlciB0aGUgVkNQVSBoYXMgcnVuIGF0IGxlYXN0IG9uY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gdGhhdCBjYW4gYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDA1OjI2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZWZkM2M1NTdiMDhmODY2MjllNzIwMWNiY2QwZTEwNTNlZWUyZTM4Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDA1OjI2OjUxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyM2NmYmVjZWJiZDc5YS4uYWYzNzZmYzQ0YzQ0MjggMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTYzLDcgJiM0MzsxNjMsNiBAQCBlbnVtIGVtdWxhdGlvbl9yZXN1bHQge1xuICNkZWZpbmUgS1ZNX0xBUkNIX1NXQ1NSX0xBVEVTVFx0KDB4MSBcdTAwM2NcdTAwM2MgMylcbiAjZGVmaW5lIEtWTV9MQVJDSF9IV0NTUl9VU0FCTEVcdCgweDEgXHUwMDNjXHUwMDNjIDQpXG4gXG4tI2RlZmluZSBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEXHRCSVRfVUxMKDYzKVxuICNkZWZpbmUgTE9PTkdBUkNIX1BWX0ZFQVRfTUFTS1x0XHQoQklUKEtWTV9GRUFUVVJFX0lQSSkgfFx0XHRcXFxuIFx0XHRcdFx0XHQgQklUKEtWTV9GRUFUVVJFX1BSRUVNUFQpIHxcdFxcXG4gXHRcdFx0XHRcdCBCSVQoS1ZNX0ZFQVRVUkVfU1RFQUxfVElNRSkgfFx0XFxcbkBAIC0yNTAsNiAmIzQzOzI0OSw5IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHtcbiBcdC8qIGNwdWNmZyAqL1xuIFx0dTMyIGNwdWNmZ1tLVk1fTUFYX0NQVUNGR19SRUdTXTtcbiBcbiYjNDM7XHQvKiBWQ1BVIHJhbiBhdCBsZWFzdCBvbmNlICovXG4mIzQzO1x0Ym9vbCByYW5fYXRsZWFzdF9vbmNlO1xuJiM0MztcbiBcdC8qIHBhcmF2aXJ0IHN0ZWFsIHRpbWUgKi9cbiBcdHN0cnVjdCB7XG4gXHRcdHU2NCBndWVzdF9hZGRyO1xuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMgYi9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXG5pbmRleCAyMGMyMDdkODBlMzFhZS4uY2U2YTFiMDZkNTBkYjUgMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXG5AQCAtMTE2NCwxMSAmIzQzOzExNjQsMTQgQEAgc3RhdGljIGludCBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRcdGlmICh2YWwgXHUwMDI2IH52YWxpZClcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbi1cdFx0LyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovXG4tXHRcdGlmICgoa3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXHUwMDI2IExPT05HQVJDSF9QVl9GRUFUX1VQREFURUQpXG4tXHRcdFx0XHRcdTAwMjZcdTAwMjYgKChrdm0tXHUwMDNlYXJjaC5wdl9mZWF0dXJlcyBcdTAwMjYgdmFsaWQpICE9IHZhbCkpXG4mIzQzO1x0XHRpZiAoKGt2bS1cdTAwM2VhcmNoLnB2X2ZlYXR1cmVzIFx1MDAyNiB2YWxpZCkgPT0gdmFsKVxuJiM0MztcdFx0XHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0XHRpZiAodmNwdS1cdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UpXG4gXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4tXHRcdGt2bS1cdTAwM2VhcmNoLnB2X2ZlYXR1cmVzID0gdmFsIHwgTE9PTkdBUkNIX1BWX0ZFQVRfVVBEQVRFRDtcbiYjNDM7XG4mIzQzO1x0XHQvKiBBbGwgdkNQVXMgbmVlZCBzZXQgdGhlIHNhbWUgUFYgZmVhdHVyZXMgKi9cbiYjNDM7XHRcdGt2bS1cdTAwM2VhcmNoLnB2X2ZlYXR1cmVzID0gdmFsO1xuIFx0XHRyZXR1cm4gMDtcbiBcdGRlZmF1bHQ6XG4gXHRcdHJldHVybiAtRU5YSU87XG5AQCAtMTg1MSw2ICYjNDM7MTg1NCwxMCBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0aW50IHIgPSAtRUlOVFI7XG4gXHRzdHJ1Y3Qga3ZtX3J1biAqcnVuID0gdmNwdS1cdTAwM2VydW47XG4gXG4mIzQzO1x0LyogTWFyayB0aGlzIFZDUFUgcmFuIGF0IGxlYXN0IG9uY2UgKi9cbiYjNDM7XHRpZiAoIXZjcHUtXHUwMDNlYXJjaC5yYW5fYXRsZWFzdF9vbmNlKVxuJiM0MztcdFx0dmNwdS1cdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UgPSB0cnVlO1xuJiM0MztcbiBcdGlmICh2Y3B1LVx1MDAzZW1taW9fbmVlZGVkKSB7XG4gXHRcdGlmICghdmNwdS1cdTAwM2VtbWlvX2lzX3dyaXRlKVxuIFx0XHRcdGt2bV9jb21wbGV0ZV9tbWlvX3JlYWQodmNwdSwgcnVuKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAwNToyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0ciYjMzQ7LAogICAgJiMzNDtrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgTG9vbmdBcmNoIEtWTSBWQ1BVIGF0dHJpYnV0ZSBzZXR0aW5nIGxvZ2ljIHRvIHByZXZlbnQgY2hhbmdpbmcgUFYgZmVhdHVyZXMgYWZ0ZXIgdGhlIFZDUFUgaGFzIHJ1biBhdCBsZWFzdCBvbmNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZWZkM2M1NTdiMDhmODY2MjllNzIwMWNiY2QwZTEwNTNlZWUyZTM4YwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDE2IDA1OjI2OjUxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5kZXggMjNjZmJlY2ViYmQ3OWEuLmFmMzc2ZmM0NGM0NDI4IDEwMDY0NAotLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTE2Myw3ICYjNDM7MTYzLDYgQEAgZW51bSBlbXVsYXRpb25fcmVzdWx0IHsKICNkZWZpbmUgS1ZNX0xBUkNIX1NXQ1NSX0xBVEVTVAkoMHgxICZsdDsmbHQ7IDMpCiAjZGVmaW5lIEtWTV9MQVJDSF9IV0NTUl9VU0FCTEUJKDB4MSAmbHQ7Jmx0OyA0KQogCi0jZGVmaW5lIExPT05HQVJDSF9QVl9GRUFUX1VQREFURUQJQklUX1VMTCg2MykKICNkZWZpbmUgTE9PTkdBUkNIX1BWX0ZFQVRfTUFTSwkJKEJJVChLVk1fRkVBVFVSRV9JUEkpIHwJCVwKIAkJCQkJIEJJVChLVk1fRkVBVFVSRV9QUkVFTVBUKSB8CVwKIAkJCQkJIEJJVChLVk1fRkVBVFVSRV9TVEVBTF9USU1FKSB8CVwKQEAgLTI1MCw2ICYjNDM7MjQ5LDkgQEAgc3RydWN0IGt2bV92Y3B1X2FyY2ggewogCS8qIGNwdWNmZyAqLwogCXUzMiBjcHVjZmdbS1ZNX01BWF9DUFVDRkdfUkVHU107CiAKJiM0MzsJLyogVkNQVSByYW4gYXQgbGVhc3Qgb25jZSAqLwomIzQzOwlib29sIHJhbl9hdGxlYXN0X29uY2U7CiYjNDM7CiAJLyogcGFyYXZpcnQgc3RlYWwgdGltZSAqLwogCXN0cnVjdCB7CiAJCXU2NCBndWVzdF9hZGRyOwpkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYyBiL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMKaW5kZXggMjBjMjA3ZDgwZTMxYWUuLmNlNmExYjA2ZDUwZGI1IDEwMDY0NAotLS0gYS9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMKQEAgLTExNjQsMTEgJiM0MzsxMTY0LDE0IEBAIHN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQlpZiAodmFsICZhbXA7IH52YWxpZCkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCS8qIEFsbCB2Q1BVcyBuZWVkIHNldCB0aGUgc2FtZSBQViBmZWF0dXJlcyAqLwotCQlpZiAoKGt2bS0mZ3Q7YXJjaC5wdl9mZWF0dXJlcyAmYW1wOyBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEKQotCQkJCSZhbXA7JmFtcDsgKChrdm0tJmd0O2FyY2gucHZfZmVhdHVyZXMgJmFtcDsgdmFsaWQpICE9IHZhbCkpCiYjNDM7CQlpZiAoKGt2bS0mZ3Q7YXJjaC5wdl9mZWF0dXJlcyAmYW1wOyB2YWxpZCkgPT0gdmFsKQomIzQzOwkJCXJldHVybiAwOwomIzQzOwomIzQzOwkJaWYgKHZjcHUtJmd0O2FyY2gucmFuX2F0bGVhc3Rfb25jZSkKIAkJCXJldHVybiAtRUlOVkFMOwotCQlrdm0tJmd0O2FyY2gucHZfZmVhdHVyZXMgPSB2YWwgfCBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEOwomIzQzOwomIzQzOwkJLyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovCiYjNDM7CQlrdm0tJmd0O2FyY2gucHZfZmVhdHVyZXMgPSB2YWw7CiAJCXJldHVybiAwOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRU5YSU87CkBAIC0xODUxLDYgJiM0MzsxODU0LDEwIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJaW50IHIgPSAtRUlOVFI7CiAJc3RydWN0IGt2bV9ydW4gKnJ1biA9IHZjcHUtJmd0O3J1bjsKIAomIzQzOwkvKiBNYXJrIHRoaXMgVkNQVSByYW4gYXQgbGVhc3Qgb25jZSAqLwomIzQzOwlpZiAoIXZjcHUtJmd0O2FyY2gucmFuX2F0bGVhc3Rfb25jZSkKJiM0MzsJCXZjcHUtJmd0O2FyY2gucmFuX2F0bGVhc3Rfb25jZSA9IHRydWU7CiYjNDM7CiAJaWYgKHZjcHUtJmd0O21taW9fbmVlZGVkKSB7CiAJCWlmICghdmNwdS0mZ3Q7bW1pb19pc193cml0ZSkKIAkJCWt2bV9jb21wbGV0ZV9tbWlvX3JlYWQodmNwdSwgcnVuKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUxOQoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDM0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipMb29uZ0FyY2ggS1ZNIE1vZGlmaWNhdGlvbiBSZXZpZXcqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY2AgYW5kIHRoZSBhc3NvY2lhdGVkIGhlYWRlci4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBhZGRpbmcgYSBgcmFuX2F0bGVhc3Rfb25jZWAgYm9vbGVhbiB0byB0aGUgYGt2bV92Y3B1X2FyY2hgIHN0cnVjdC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiBga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJgLCB3aGljaCBpcyBub3cgY2hlY2tpbmcgdGhpcyBuZXcgYHJhbl9hdGxlYXN0X29uY2VgIGZsYWcgaW5zdGVhZCBvZiB0aGUgb2xkIGBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEYCBjb25kaXRpb24uIFRoZW4gSSBzZWUgdGhhdCBga3ZtX2FyY2hfdmNwdV9pb2N0bF9ydW5gIGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGByYW5fYXRsZWFzdF9vbmNlYCB0byB0cnVlLgoKVGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gdG8gdGhlIExvb25nQXJjaCBLVk0gaW1wbGVtZW50YXRpb24uIFNvLCB0aGUgZmlyc3QgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIG1lcml0cyBmdXp6aW5nLiBBYnNvbHV0ZWx5LiBJdCYjMzk7cyB0b3VjaGluZyBLVk0gZnVuY3Rpb25hbGl0eSwgYW5kIHRoYXQmIzM5O3MgYWx3YXlzIGEgZ29vZCBjYW5kaWRhdGUuCgpOb3csIGEgY3JpdGljYWwgcXVlc3Rpb24gYXJpc2VzOiBDYW4gc3l6a2FsbGVyIGV2ZW4gZnV6eiBMb29uZ0FyY2ggS1ZNPyBJdCB0eXBpY2FsbHkgZm9jdXNlcyBvbiB4ODYgYW5kIEFSTTY0LiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gTG9vbmdBcmNoIHN1cHBvcnQuCgpJZiBzeXprYWxsZXIgZG9lcyBzdXBwb3J0IGl0LCB0aGVuIEkgbmVlZCB0byBjb25zaWRlciB3aGV0aGVyIHRoaXMgc3BlY2lmaWMgY2hhbmdlIGlzIHJlYWNoYWJsZS4gVGhlIGRvY3VtZW50YXRpb24gc2F5cyB0byBleGNsdWRlIGNvZGUgcGF0aHMgdGhhdCBhcmVuJiMzOTt0IHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHNwZWNpZmljYWxseSB0aG9zZSB0aGF0IHVzZSBzb2Z0d2FyZSBlbXVsYXRlZCBoYXJkd2FyZS4gTG9vbmdBcmNoIEtWTSBzaG91bGQgYmUgcmVhY2hhYmxlIGlmIHdlIGFyZSBydW5uaW5nIHN5emthbGxlciBvbiBMb29uZ0FyY2guCgpOZXh0LCBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBPYnZpb3VzbHksIGBDT05GSUdfS1ZNYCBpcyBuZWNlc3NhcnkuIEFyZSB0aGVyZSBzcGVjaWZpYyBMb29uZ0FyY2ggS1ZNIGNvbmZpZ3MgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEkgbmVlZCB0byBmaW5kIG91dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAwNToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzM1MgoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDIxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIExvb25nQXJjaCBLVk0gQ29kZSoqCgpPa2F5LCBzbyB0aGUgY29uZmlndXJhdGlvbiBpcyBkZWZpbml0ZWx5IGBLVk1gLiBUaGUgcHJvbXB0JiMzOTtzIGtleSBwaHJhc2UgaXM6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuJiMzNDsgTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyBMb29uZ0FyY2ggS1ZNIHJlYWNoYWJsZSBpbiBlaXRoZXIgR0NFIG9yIFFFTVU/IFRoaXMgaXMgdGhlIGNydXggb2YgdGhlIGRlY2lzaW9uLgoKSWYgd2UmIzM5O3JlIHJ1bm5pbmcgc3l6a2FsbGVyLCB0aGUgYW5zd2VyIGlzICp5ZXMqLiBXZSBrbm93IHdlIGNhbiBmdXp6IG9uIExvb25nQXJjaCB3aXRoIGl0LiBCdXQsIEkgbmVlZCB0byBjb25maXJtIHN5emthbGxlciYjMzk7cyBMb29uZ0FyY2ggc3VwcG9ydC4gQW5kIG9mIGNvdXJzZSwgc3l6a2FsbGVyIHJ1bnMgYWNyb3NzIG1hbnkgYXJjaGl0ZWN0dXJlcyBpbmNsdWRpbmcgeDg2XzY0LCBhcm02NCwgcmlzY3Y2NCwgYW5kIHMzOTB4LiAqRG9lcyogaXQgc3VwcG9ydCBMb29uZ0FyY2g/IFllcywgaXQgZG9lcy4gU28sIHNpbmNlIHN5emthbGxlciBzdXBwb3J0cyBmdXp6aW5nIExvb25nQXJjaCwgdGhlIGNvZGUgaXMgaW5kZWVkIHdvcnRoIGZ1enppbmcuCgpNeSBhdHRlbnRpb24gc2hpZnRzIHRvIHNwZWNpZmljIHN5bWJvbHMsIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAgYW5kIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bmAuIFRob3NlIGFyZSB0aGUgdHdvIEkgd2FudCB0byBzY3J1dGluaXplIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9rdm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9MTEzMj1zdGF0aWMgaW50IGt2bV9sb29uZ2FyY2hfdmNwdV9nZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMTUwLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMTUxOnN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMTUyLVx0XHRcdFx0XHQgc3RydWN0IGt2bV9kZXZpY2VfYXR0ciAqYXR0cilcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jPTEyMTg9c3RhdGljIGludCBrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIyNC1cdGNhc2UgS1ZNX0xPT05HQVJDSF9WQ1BVX0NQVUNGRzpcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM6MTIyNTpcdFx0cmV0ID0ga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHIodmNwdSwgYXR0cik7XG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTEyMjYtXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDA1OjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxOTAKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gQ1BVIENvbmZpZ3VyYXRpb24gaW4gTG9vbmdBcmNoIEtWTSoqCgpPa2F5LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBtb3N0IHJlbGV2YW50IHN5bWJvbHMgdG8gYW5hbHl6ZSBoZXJlLiBJIGJlbGlldmUgYGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyYCBpcyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQuIEl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgYSBzcGVjaWZpYyBmdW5jdGlvbiBmb3Igc2V0dGluZyBDUFUgY29uZmlndXJhdGlvbnMgd2l0aGluIHRoZSBMb29uZ0FyY2ggS1ZNIGltcGxlbWVudGF0aW9uLgoKSW5pdGlhbGx5LCBJIGNvbnNpZGVyZWQgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfcnVuYCBiZWNhdXNlIGl0JiMzOTtzIGEgdmVyeSBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9uIHdpdGhpbiBLVk0uIEJ1dCwgd2FpdCBhIG1pbnV0ZSwgdGhhdCBmdW5jdGlvbiBpcyB0aGUgKnByaW1hcnkqIGVudHJ5IHBvaW50IGZvciBgS1ZNX1JVTmAuIERlZmluaXRlbHkgYSBob3QgcGF0aCwgYnV0IHBlcmhhcHMgdG9vIGdlbmVyaWMgdG8gcHJvdmlkZSB0aGUgc3BlY2lmaWMgaW5zaWdodHMgSSYjMzk7bSBsb29raW5nIGZvciByaWdodCBub3cuIFNvLCBzY3JhdGNoIHRoYXQuIEkmIzM5O20gZ29pbmcgdG8gc3RpY2sgd2l0aCBga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJgLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2guIEFyZSB0aGVyZSAqb3RoZXIqIGZ1bmN0aW9ucyBpbiB0aGUgTG9vbmdBcmNoLXNwZWNpZmljIGNvZGUgcmVsYXRlZCB0byBDUFUgY29uZmlndXJhdGlvbiBJIHNob3VsZCBiZSBhd2FyZSBvZj8gQWgsIHllcywgaGVyZSBpdCBpczogYGt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0cmAgaXMgYW5vdGhlciByZWxldmFudCBmdW5jdGlvbiB0aGF0IG1pZ2h0IGJlIHdvcnRoIGludmVzdGlnYXRpbmcgYWxvbmdzaWRlIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAuIEdvb2QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gva3ZtLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jPTExODE9c3RhdGljIGludCBrdm1fbG9vbmdhcmNoX3B2dGltZV9zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMjE3LVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMjE4OnN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIxOS1cdFx0XHRcdCAgICAgICBzdHJ1Y3Qga3ZtX2RldmljZV9hdHRyICphdHRyKVxuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9MTIzNz1sb25nIGt2bV9hcmNoX3ZjcHVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsXG4tLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMjk4LVx0XHRcdGJyZWFrO1xuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMjk5Olx0XHRyID0ga3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyKHZjcHUsIFx1MDAyNmF0dHIpO1xuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMzAwLVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAwNToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTMyCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgcXVpY2sgcnVuZG93biBvZiB0aGVzZSBpbml0aWFsIHRob3VnaHRzLCBrZWVwaW5nIGluIG1pbmQgbXkgb3duIGV4cGVydCBwZXJzcGVjdGl2ZS4KCioqSW5pdGlhbCBBc3Nlc3NtZW50OiBLVk0gYW5kIExvb25nQXJjaCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHNvIG15IGZpcnN0IHRob3VnaHQgaXMgdGhhdCBga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJgIGFuZCBga3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyYCBzZWVtIGxpa2Ugc29saWQgc3RhcnRpbmcgcG9pbnRzLiBMZXQmIzM5O3MgbWFrZSBzdXJlIHdlIGhhdmUgZXZlcnl0aGluZyBpbiBwbGFjZSB0byBzdXBwb3J0IHRoaXMuIEkgaW1tZWRpYXRlbHkgdGhpbmsgdG8gY2hlY2sgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25zLiBPZiBjb3Vyc2UsIGBLVk1gIGl0c2VsZiBpcyBmdW5kYW1lbnRhbCDigJMgdGhhdCYjMzk7cyBhIGdpdmVuLiBCdXQgSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IHRoZXJlIGFyZSBvZnRlbiBvdGhlciBkZXBlbmRlbmNpZXMgb3Igc3BlY2lmaWMgYXJjaGl0ZWN0dXJhbCBmZWF0dXJlcyB0aGF0IG5lZWQgZW5hYmxpbmcuIEkmIzM5O2xsIG5lZWQgdG8gZHJpbGwgZG93biBkZWVwZXIgdG8gbWFrZSBzdXJlIHdlIGRvbiYjMzk7dCBtaXNzIGFueXRoaW5nLiBUaGVyZWZvcmUsIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHNjcnV0aW5pemUgdGhlIGBhcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZ2AgZmlsZS4gVGhhdCYjMzk7cyB3aGVyZSBhbGwgdGhlIGRldGFpbGVkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgTG9vbmdBcmNoIEtWTSBzaG91bGQgcmVzaWRlLCBhbmQgdGhhdCYjMzk7cyB3aGVyZSBJJiMzOTtsbCBmaW5kIHdoYXQgSSYjMzk7bSBsb29raW5nIGZvci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0I1xuICAgMzpcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0c291cmNlIFwmIzM0O3ZpcnQva3ZtL0tjb25maWdcJiMzNDtcbiAgIDc6XHRcbiAgIDg6XHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXG4gICA5Olx0XHRib29sIFwmIzM0O1ZpcnR1YWxpemF0aW9uXCYjMzQ7XG4gIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFNheSBZIGhlcmUgdG8gZ2V0IHRvIHNlZSBvcHRpb25zIGZvciB1c2luZyB5b3VyIExpbnV4IGhvc3QgdG8gcnVuXG4gIDEyOlx0XHQgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGluc2lkZSB2aXJ0dWFsIG1hY2hpbmVzIChndWVzdHMpLlxuICAxMzpcdFx0ICBUaGlzIG9wdGlvbiBhbG9uZSBkb2VzIG5vdCBhZGQgYW55IGtlcm5lbCBjb2RlLlxuICAxNDpcdFxuICAxNTpcdFx0ICBJZiB5b3Ugc2F5IE4sIGFsbCBvcHRpb25zIGluIHRoaXMgc3VibWVudSB3aWxsIGJlIHNraXBwZWQgYW5kXG4gIDE2Olx0XHQgIGRpc2FibGVkLlxuICAxNzpcdFxuICAxODpcdGlmIFZJUlRVQUxJWkFUSU9OXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEtWTVxuICAyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4gIDIyOlx0XHRkZXBlbmRzIG9uIEFTX0hBU19MVlpfRVhURU5TSU9OIFx1MDAyNlx1MDAyNiA2NEJJVFxuICAyMzpcdFx0c2VsZWN0IEhBVkVfS1ZNX0RJUlRZX1JJTkdfQUNRX1JFTFxuICAyNDpcdFx0c2VsZWN0IEhBVkVfS1ZNX0lSUV9ST1VUSU5HXG4gIDI1Olx0XHRzZWxlY3QgSEFWRV9LVk1fSVJRQ0hJUFxuICAyNjpcdFx0c2VsZWN0IEhBVkVfS1ZNX01TSVxuICAyNzpcdFx0c2VsZWN0IEhBVkVfS1ZNX1JFQURPTkxZX01FTVxuICAyODpcdFx0c2VsZWN0IEtWTV9DT01NT05cbiAgMjk6XHRcdHNlbGVjdCBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcbiAgMzA6XHRcdHNlbGVjdCBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xuICAzMTpcdFx0c2VsZWN0IEtWTV9NTUlPXG4gIDMyOlx0XHRzZWxlY3QgVklSVF9YRkVSX1RPX0dVRVNUX1dPUktcbiAgMzM6XHRcdHNlbGVjdCBTQ0hFRF9JTkZPXG4gIDM0Olx0XHRzZWxlY3QgR1VFU1RfUEVSRl9FVkVOVFMgaWYgUEVSRl9FVkVOVFNcbiAgMzU6XHRcdGhlbHBcbiAgMzY6XHRcdCAgU3VwcG9ydCBob3N0aW5nIHZpcnR1YWxpemVkIGd1ZXN0IG1hY2hpbmVzIHVzaW5nXG4gIDM3Olx0XHQgIGhhcmR3YXJlIHZpcnR1YWxpemF0aW9uIGV4dGVuc2lvbnMuIFlvdSB3aWxsIG5lZWRcbiAgMzg6XHRcdCAgYSBwcm9jZXNzb3IgZXF1aXBwZWQgd2l0aCB2aXJ0dWFsaXphdGlvbiBleHRlbnNpb25zLlxuICAzOTpcdFxuICA0MDpcdFx0ICBJZiB1bnN1cmUsIHNheSBOLlxuICA0MTpcdFxuICA0MjpcdGVuZGlmICMgVklSVFVBTElaQVRJT05cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTgyMAoJCQkJCQkJb3V0cHV0OiAxMTAKCQkJCQkJCXRob3VnaHRzOiAxMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgRnV6emluZyBTdHJhdGVneSBmb3IgVGhpcyBLVk0gUGF0Y2gqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzLCBpdCBzZWVtcyB0aGUgY29yZSBjb25maWd1cmF0aW9uIGJvaWxzIGRvd24gdG8ganVzdCBgS1ZNYC4gVGhhdCYjMzk7cyB0aGUga2V5IG1vZHVsZS4gSSYjMzk7bGwgZmxhZyBgV29ydGhGdXp6aW5nYCBhcyBgdHJ1ZWAgYmVjYXVzZSB0aGlzIGRlZmluaXRlbHkgd2FycmFudHMgYXR0ZW50aW9uLiBNeSBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSB0aGlzIGlzIGEgZ29vZCBjYW5kaWRhdGUsIGdpdmVuIHRoZSBmdW5jdGlvbmFsIG5hdHVyZSBvZiB0aGUgY2hhbmdlLgoKTm93LCBmb3IgYEZvY3VzU3ltYm9sc2AsIEkmIzM5O2xsIHRhcmdldCBgWyYjMzQ7a3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHImIzM0OywgJiMzNDtrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHImIzM0O11gLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyBkaXJlY3RseSBpbnZvbHZlZCBpbiBzZXR0aW5nIHRoZSBWQ1BVIGF0dHJpYnV0ZXMsIGFuZCwgZ2l2ZW4gdGhlIHBhdGNoJiMzOTtzIGRlc2NyaXB0aW9uLCB0aG9zZSBhcmUgdGhlIGZ1bmN0aW9ucyB0aGF0IHdlcmUgbW9kaWZpZWQgaW4gdGhlIHBhdGNoLgoKSSB3aWxsIHNldCBgRW5hYmxlQ29uZmlnc2AgdG8gYFsmIzM0O0tWTSYjMzQ7XWAsIG1ha2luZyBzdXJlIHRvIG9ubHkgZW5hYmxlIHRoaXMgY29uZmlndXJhdGlvbi4KCkFuZCBmaW5hbGx5LCBmb3IgYFJlYXNvbmluZ2AsIEkmIzM5O2xsIGFydGljdWxhdGUgdGhpcyBjbGVhcmx5OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBMb29uZ0FyY2ggS1ZNIFZDUFUgYXR0cmlidXRlIHNldHRpbmcgbG9naWMgdG8gcHJldmVudCBjaGFuZ2luZyBQViBmZWF0dXJlcyBhZnRlciB0aGUgVkNQVSBoYXMgcnVuIGF0IGxlYXN0IG9uY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gdGhhdCBjYW4gYmUgZnV6emVkLiYjMzQ7IFRoaXMgaXMgdGhlIGNvcmUgb2YgdGhlIHJlYXNvbmluZyBhbmQgc2V0cyB0aGUgc3RhZ2UgZm9yIHRoZSBmdXp6aW5nLCBnaXZlbiB0aGUgY2hhbmdlIGluIFBWIGZlYXR1cmUgYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDA1OjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0ciYjMzQ7LAogICAgJiMzNDtrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgTG9vbmdBcmNoIEtWTSBWQ1BVIGF0dHJpYnV0ZSBzZXR0aW5nIGxvZ2ljIHRvIHByZXZlbnQgY2hhbmdpbmcgUFYgZmVhdHVyZXMgYWZ0ZXIgdGhlIFZDUFUgaGFzIHJ1biBhdCBsZWFzdCBvbmNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHImIzM0OywKICAgICYjMzQ7a3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIExvb25nQXJjaCBLVk0gVkNQVSBhdHRyaWJ1dGUgc2V0dGluZyBsb2dpYyB0byBwcmV2ZW50IGNoYW5naW5nIFBWIGZlYXR1cmVzIGFmdGVyIHRoZSBWQ1BVIGhhcyBydW4gYXQgbGVhc3Qgb25jZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSB0aGF0IGNhbiBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNlQwNToyNjo1Mi41MDkwNDM0NzJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjY0MDQ0MjE3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0clwiLFxuICAgIFwia3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgTG9vbmdBcmNoIEtWTSBWQ1BVIGF0dHJpYnV0ZSBzZXR0aW5nIGxvZ2ljIHRvIHByZXZlbnQgY2hhbmdpbmcgUFYgZmVhdHVyZXMgYWZ0ZXIgdGhlIFZDUFUgaGFzIHJ1biBhdCBsZWFzdCBvbmNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHRoYXQgY2FuIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6MjY6NTIuNTA5MDUxNjYyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjgwNTcwNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlZmQzYzU1N2IwOGY4NjYyOWU3MjAxY2JjZDBlMTA1M2VlZTJlMzhjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDE2IDA1OjI2OjUxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggMjNjZmJlY2ViYmQ3OWEuLmFmMzc2ZmM0NGM0NDI4IDEwMDY0NFxcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuQEAgLTE2Myw3ICsxNjMsNiBAQCBlbnVtIGVtdWxhdGlvbl9yZXN1bHQge1xcbiAjZGVmaW5lIEtWTV9MQVJDSF9TV0NTUl9MQVRFU1RcXHQoMHgxIFxcdTAwM2NcXHUwMDNjIDMpXFxuICNkZWZpbmUgS1ZNX0xBUkNIX0hXQ1NSX1VTQUJMRVxcdCgweDEgXFx1MDAzY1xcdTAwM2MgNClcXG4gXFxuLSNkZWZpbmUgTE9PTkdBUkNIX1BWX0ZFQVRfVVBEQVRFRFxcdEJJVF9VTEwoNjMpXFxuICNkZWZpbmUgTE9PTkdBUkNIX1BWX0ZFQVRfTUFTS1xcdFxcdChCSVQoS1ZNX0ZFQVRVUkVfSVBJKSB8XFx0XFx0XFxcXFxcbiBcXHRcXHRcXHRcXHRcXHQgQklUKEtWTV9GRUFUVVJFX1BSRUVNUFQpIHxcXHRcXFxcXFxuIFxcdFxcdFxcdFxcdFxcdCBCSVQoS1ZNX0ZFQVRVUkVfU1RFQUxfVElNRSkgfFxcdFxcXFxcXG5AQCAtMjUwLDYgKzI0OSw5IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHtcXG4gXFx0LyogY3B1Y2ZnICovXFxuIFxcdHUzMiBjcHVjZmdbS1ZNX01BWF9DUFVDRkdfUkVHU107XFxuIFxcbitcXHQvKiBWQ1BVIHJhbiBhdCBsZWFzdCBvbmNlICovXFxuK1xcdGJvb2wgcmFuX2F0bGVhc3Rfb25jZTtcXG4rXFxuIFxcdC8qIHBhcmF2aXJ0IHN0ZWFsIHRpbWUgKi9cXG4gXFx0c3RydWN0IHtcXG4gXFx0XFx0dTY0IGd1ZXN0X2FkZHI7XFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMgYi9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXFxuaW5kZXggMjBjMjA3ZDgwZTMxYWUuLmNlNmExYjA2ZDUwZGI1IDEwMDY0NFxcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmNcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXFxuQEAgLTExNjQsMTEgKzExNjQsMTQgQEAgc3RhdGljIGludCBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuIFxcdFxcdGlmICh2YWwgXFx1MDAyNiB+dmFsaWQpXFxuIFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4tXFx0XFx0LyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovXFxuLVxcdFxcdGlmICgoa3ZtLVxcdTAwM2VhcmNoLnB2X2ZlYXR1cmVzIFxcdTAwMjYgTE9PTkdBUkNIX1BWX0ZFQVRfVVBEQVRFRClcXG4tXFx0XFx0XFx0XFx0XFx1MDAyNlxcdTAwMjYgKChrdm0tXFx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXFx1MDAyNiB2YWxpZCkgIT0gdmFsKSlcXG4rXFx0XFx0aWYgKChrdm0tXFx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXFx1MDAyNiB2YWxpZCkgPT0gdmFsKVxcbitcXHRcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdFxcdGlmICh2Y3B1LVxcdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UpXFxuIFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi1cXHRcXHRrdm0tXFx1MDAzZWFyY2gucHZfZmVhdHVyZXMgPSB2YWwgfCBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEO1xcbitcXG4rXFx0XFx0LyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovXFxuK1xcdFxcdGt2bS1cXHUwMDNlYXJjaC5wdl9mZWF0dXJlcyA9IHZhbDtcXG4gXFx0XFx0cmV0dXJuIDA7XFxuIFxcdGRlZmF1bHQ6XFxuIFxcdFxcdHJldHVybiAtRU5YSU87XFxuQEAgLTE4NTEsNiArMTg1NCwxMCBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbiBcXHRpbnQgciA9IC1FSU5UUjtcXG4gXFx0c3RydWN0IGt2bV9ydW4gKnJ1biA9IHZjcHUtXFx1MDAzZXJ1bjtcXG4gXFxuK1xcdC8qIE1hcmsgdGhpcyBWQ1BVIHJhbiBhdCBsZWFzdCBvbmNlICovXFxuK1xcdGlmICghdmNwdS1cXHUwMDNlYXJjaC5yYW5fYXRsZWFzdF9vbmNlKVxcbitcXHRcXHR2Y3B1LVxcdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UgPSB0cnVlO1xcbitcXG4gXFx0aWYgKHZjcHUtXFx1MDAzZW1taW9fbmVlZGVkKSB7XFxuIFxcdFxcdGlmICghdmNwdS1cXHUwMDNlbW1pb19pc193cml0ZSlcXG4gXFx0XFx0XFx0a3ZtX2NvbXBsZXRlX21taW9fcmVhZCh2Y3B1LCBydW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQwNToyNjo1My4wNzgwNTU0OTlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyMDcxNDIxOTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyXCIsXG4gICAgXCJrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBMb29uZ0FyY2ggS1ZNIFZDUFUgYXR0cmlidXRlIHNldHRpbmcgbG9naWMgdG8gcHJldmVudCBjaGFuZ2luZyBQViBmZWF0dXJlcyBhZnRlciB0aGUgVkNQVSBoYXMgcnVuIGF0IGxlYXN0IG9uY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gdGhhdCBjYW4gYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGVmZDNjNTU3YjA4Zjg2NjI5ZTcyMDFjYmNkMGUxMDUzZWVlMmUzOGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAxNiAwNToyNjo1MSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyM2NmYmVjZWJiZDc5YS4uYWYzNzZmYzQ0YzQ0MjggMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4rKysgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTYzLDcgKzE2Myw2IEBAIGVudW0gZW11bGF0aW9uX3Jlc3VsdCB7XG4gI2RlZmluZSBLVk1fTEFSQ0hfU1dDU1JfTEFURVNUXHQoMHgxIFx1MDAzY1x1MDAzYyAzKVxuICNkZWZpbmUgS1ZNX0xBUkNIX0hXQ1NSX1VTQUJMRVx0KDB4MSBcdTAwM2NcdTAwM2MgNClcbiBcbi0jZGVmaW5lIExPT05HQVJDSF9QVl9GRUFUX1VQREFURURcdEJJVF9VTEwoNjMpXG4gI2RlZmluZSBMT09OR0FSQ0hfUFZfRkVBVF9NQVNLXHRcdChCSVQoS1ZNX0ZFQVRVUkVfSVBJKSB8XHRcdFxcXG4gXHRcdFx0XHRcdCBCSVQoS1ZNX0ZFQVRVUkVfUFJFRU1QVCkgfFx0XFxcbiBcdFx0XHRcdFx0IEJJVChLVk1fRkVBVFVSRV9TVEVBTF9USU1FKSB8XHRcXFxuQEAgLTI1MCw2ICsyNDksOSBAQCBzdHJ1Y3Qga3ZtX3ZjcHVfYXJjaCB7XG4gXHQvKiBjcHVjZmcgKi9cbiBcdHUzMiBjcHVjZmdbS1ZNX01BWF9DUFVDRkdfUkVHU107XG4gXG4rXHQvKiBWQ1BVIHJhbiBhdCBsZWFzdCBvbmNlICovXG4rXHRib29sIHJhbl9hdGxlYXN0X29uY2U7XG4rXG4gXHQvKiBwYXJhdmlydCBzdGVhbCB0aW1lICovXG4gXHRzdHJ1Y3Qge1xuIFx0XHR1NjQgZ3Vlc3RfYWRkcjtcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jIGIvYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY1xuaW5kZXggMjBjMjA3ZDgwZTMxYWUuLmNlNmExYjA2ZDUwZGI1IDEwMDY0NFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY1xuKysrIGIvYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY1xuQEAgLTExNjQsMTEgKzExNjQsMTQgQEAgc3RhdGljIGludCBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRcdGlmICh2YWwgXHUwMDI2IH52YWxpZClcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbi1cdFx0LyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovXG4tXHRcdGlmICgoa3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXHUwMDI2IExPT05HQVJDSF9QVl9GRUFUX1VQREFURUQpXG4tXHRcdFx0XHRcdTAwMjZcdTAwMjYgKChrdm0tXHUwMDNlYXJjaC5wdl9mZWF0dXJlcyBcdTAwMjYgdmFsaWQpICE9IHZhbCkpXG4rXHRcdGlmICgoa3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXHUwMDI2IHZhbGlkKSA9PSB2YWwpXG4rXHRcdFx0cmV0dXJuIDA7XG4rXG4rXHRcdGlmICh2Y3B1LVx1MDAzZWFyY2gucmFuX2F0bGVhc3Rfb25jZSlcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbi1cdFx0a3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgPSB2YWwgfCBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEO1xuK1xuK1x0XHQvKiBBbGwgdkNQVXMgbmVlZCBzZXQgdGhlIHNhbWUgUFYgZmVhdHVyZXMgKi9cbitcdFx0a3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgPSB2YWw7XG4gXHRcdHJldHVybiAwO1xuIFx0ZGVmYXVsdDpcbiBcdFx0cmV0dXJuIC1FTlhJTztcbkBAIC0xODUxLDYgKzE4NTQsMTAgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdGludCByID0gLUVJTlRSO1xuIFx0c3RydWN0IGt2bV9ydW4gKnJ1biA9IHZjcHUtXHUwMDNlcnVuO1xuIFxuK1x0LyogTWFyayB0aGlzIFZDUFUgcmFuIGF0IGxlYXN0IG9uY2UgKi9cbitcdGlmICghdmNwdS1cdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UpXG4rXHRcdHZjcHUtXHUwMDNlYXJjaC5yYW5fYXRsZWFzdF9vbmNlID0gdHJ1ZTtcbitcbiBcdGlmICh2Y3B1LVx1MDAzZW1taW9fbmVlZGVkKSB7XG4gXHRcdGlmICghdmNwdS1cdTAwM2VtbWlvX2lzX3dyaXRlKVxuIFx0XHRcdGt2bV9jb21wbGV0ZV9tbWlvX3JlYWQodmNwdSwgcnVuKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDA1OjI2OjUzLjA3ODA1ODAxOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzMTEwODYzNDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTG9vbmdBcmNoIEtWTSBNb2RpZmljYXRpb24gUmV2aWV3KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY2AgYW5kIHRoZSBhc3NvY2lhdGVkIGhlYWRlci4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIGFkZGluZyBhIGByYW5fYXRsZWFzdF9vbmNlYCBib29sZWFuIHRvIHRoZSBga3ZtX3ZjcHVfYXJjaGAgc3RydWN0LiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAsIHdoaWNoIGlzIG5vdyBjaGVja2luZyB0aGlzIG5ldyBgcmFuX2F0bGVhc3Rfb25jZWAgZmxhZyBpbnN0ZWFkIG9mIHRoZSBvbGQgYExPT05HQVJDSF9QVl9GRUFUX1VQREFURURgIGNvbmRpdGlvbi4gVGhlbiBJIHNlZSB0aGF0IGBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bmAgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgYHJhbl9hdGxlYXN0X29uY2VgIHRvIHRydWUuXG5cblRoaXMgbG9va3MgbGlrZSBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uIHRvIHRoZSBMb29uZ0FyY2ggS1ZNIGltcGxlbWVudGF0aW9uLiBTbywgdGhlIGZpcnN0IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBtZXJpdHMgZnV6emluZy4gQWJzb2x1dGVseS4gSXQncyB0b3VjaGluZyBLVk0gZnVuY3Rpb25hbGl0eSwgYW5kIHRoYXQncyBhbHdheXMgYSBnb29kIGNhbmRpZGF0ZS5cblxuTm93LCBhIGNyaXRpY2FsIHF1ZXN0aW9uIGFyaXNlczogQ2FuIHN5emthbGxlciBldmVuIGZ1enogTG9vbmdBcmNoIEtWTT8gSXQgdHlwaWNhbGx5IGZvY3VzZXMgb24geDg2IGFuZCBBUk02NC4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gTG9vbmdBcmNoIHN1cHBvcnQuXG5cbklmIHN5emthbGxlciBkb2VzIHN1cHBvcnQgaXQsIHRoZW4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyBzcGVjaWZpYyBjaGFuZ2UgaXMgcmVhY2hhYmxlLiBUaGUgZG9jdW1lbnRhdGlvbiBzYXlzIHRvIGV4Y2x1ZGUgY29kZSBwYXRocyB0aGF0IGFyZW4ndCByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBzcGVjaWZpY2FsbHkgdGhvc2UgdGhhdCB1c2Ugc29mdHdhcmUgZW11bGF0ZWQgaGFyZHdhcmUuIExvb25nQXJjaCBLVk0gc2hvdWxkIGJlIHJlYWNoYWJsZSBpZiB3ZSBhcmUgcnVubmluZyBzeXprYWxsZXIgb24gTG9vbmdBcmNoLlxuXG5OZXh0LCBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBPYnZpb3VzbHksIGBDT05GSUdfS1ZNYCBpcyBuZWNlc3NhcnkuIEFyZSB0aGVyZSBzcGVjaWZpYyBMb29uZ0FyY2ggS1ZNIGNvbmZpZ3MgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEkgbmVlZCB0byBmaW5kIG91dC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUxOSwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDA1OjI2OjU4LjM4OTE0NzIzNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDU3OTY1MDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL2xvb25nYXJjaC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6MjY6NTguNTM0OTQ5ODU4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2MzYwMjgzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIExvb25nQXJjaCBLVk0gQ29kZSoqXG5cbk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGlzIGRlZmluaXRlbHkgYEtWTWAuIFRoZSBwcm9tcHQncyBrZXkgcGhyYXNlIGlzOiBcIlJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnMgY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLlwiIE15IGluaXRpYWwgdGhvdWdodCBpcywgaXMgTG9vbmdBcmNoIEtWTSByZWFjaGFibGUgaW4gZWl0aGVyIEdDRSBvciBRRU1VPyBUaGlzIGlzIHRoZSBjcnV4IG9mIHRoZSBkZWNpc2lvbi5cblxuSWYgd2UncmUgcnVubmluZyBzeXprYWxsZXIsIHRoZSBhbnN3ZXIgaXMgKnllcyouIFdlIGtub3cgd2UgY2FuIGZ1enogb24gTG9vbmdBcmNoIHdpdGggaXQuIEJ1dCwgSSBuZWVkIHRvIGNvbmZpcm0gc3l6a2FsbGVyJ3MgTG9vbmdBcmNoIHN1cHBvcnQuIEFuZCBvZiBjb3Vyc2UsIHN5emthbGxlciBydW5zIGFjcm9zcyBtYW55IGFyY2hpdGVjdHVyZXMgaW5jbHVkaW5nIHg4Nl82NCwgYXJtNjQsIHJpc2N2NjQsIGFuZCBzMzkweC4gKkRvZXMqIGl0IHN1cHBvcnQgTG9vbmdBcmNoPyBZZXMsIGl0IGRvZXMuIFNvLCBzaW5jZSBzeXprYWxsZXIgc3VwcG9ydHMgZnV6emluZyBMb29uZ0FyY2gsIHRoZSBjb2RlIGlzIGluZGVlZCB3b3J0aCBmdXp6aW5nLlxuXG5NeSBhdHRlbnRpb24gc2hpZnRzIHRvIHNwZWNpZmljIHN5bWJvbHMsIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAgYW5kIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bmAuIFRob3NlIGFyZSB0aGUgdHdvIEkgd2FudCB0byBzY3J1dGluaXplIGZ1cnRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNTIsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MDMuMTk4NTU0OTMyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyOTExMjg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvbG9vbmdhcmNoL2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYz0xMTMyPXN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF92Y3B1X2dldF9hdHRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTE1MC1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jOjExNTE6c3RhdGljIGludCBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMTUyLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qga3ZtX2RldmljZV9hdHRyICphdHRyKVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYz0xMjE4PXN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIyNC1cXHRjYXNlIEtWTV9MT09OR0FSQ0hfVkNQVV9DUFVDRkc6XFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMjI1OlxcdFxcdHJldCA9IGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyKHZjcHUsIGF0dHIpO1xcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIyNi1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MDMuMjkxNDcyNjA2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIzMjU0MzU2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBvbiBDUFUgQ29uZmlndXJhdGlvbiBpbiBMb29uZ0FyY2ggS1ZNKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IHRoZSBtb3N0IHJlbGV2YW50IHN5bWJvbHMgdG8gYW5hbHl6ZSBoZXJlLiBJIGJlbGlldmUgYGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyYCBpcyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQuIEl0IHNlZW1zIGxpa2UgaXQncyBhIHNwZWNpZmljIGZ1bmN0aW9uIGZvciBzZXR0aW5nIENQVSBjb25maWd1cmF0aW9ucyB3aXRoaW4gdGhlIExvb25nQXJjaCBLVk0gaW1wbGVtZW50YXRpb24uXG5cbkluaXRpYWxseSwgSSBjb25zaWRlcmVkIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bmAgYmVjYXVzZSBpdCdzIGEgdmVyeSBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9uIHdpdGhpbiBLVk0uIEJ1dCwgd2FpdCBhIG1pbnV0ZSwgdGhhdCBmdW5jdGlvbiBpcyB0aGUgKnByaW1hcnkqIGVudHJ5IHBvaW50IGZvciBgS1ZNX1JVTmAuIERlZmluaXRlbHkgYSBob3QgcGF0aCwgYnV0IHBlcmhhcHMgdG9vIGdlbmVyaWMgdG8gcHJvdmlkZSB0aGUgc3BlY2lmaWMgaW5zaWdodHMgSSdtIGxvb2tpbmcgZm9yIHJpZ2h0IG5vdy4gU28sIHNjcmF0Y2ggdGhhdC4gSSdtIGdvaW5nIHRvIHN0aWNrIHdpdGggYGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyYC5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2guIEFyZSB0aGVyZSAqb3RoZXIqIGZ1bmN0aW9ucyBpbiB0aGUgTG9vbmdBcmNoLXNwZWNpZmljIGNvZGUgcmVsYXRlZCB0byBDUFUgY29uZmlndXJhdGlvbiBJIHNob3VsZCBiZSBhd2FyZSBvZj8gQWgsIHllcywgaGVyZSBpdCBpczogYGt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0cmAgaXMgYW5vdGhlciByZWxldmFudCBmdW5jdGlvbiB0aGF0IG1pZ2h0IGJlIHdvcnRoIGludmVzdGlnYXRpbmcgYWxvbmdzaWRlIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAuIEdvb2QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxOTAsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MDcuNTI0MDE5MDI1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5MTkyNTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0clwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL2xvb25nYXJjaC9rdm0vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9MTE4MT1zdGF0aWMgaW50IGt2bV9sb29uZ2FyY2hfcHZ0aW1lX3NldF9hdHRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIxNy1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jOjEyMTg6c3RhdGljIGludCBrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIxOS1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGt2bV9kZXZpY2VfYXR0ciAqYXR0cilcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9MTIzNz1sb25nIGt2bV9hcmNoX3ZjcHVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTEyOTgtXFx0XFx0XFx0YnJlYWs7XFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMjk5OlxcdFxcdHIgPSBrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHIodmNwdSwgXFx1MDAyNmF0dHIpO1xcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTMwMC1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MDcuNTkzMjE2MTNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzE3MzU5ODMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgcXVpY2sgcnVuZG93biBvZiB0aGVzZSBpbml0aWFsIHRob3VnaHRzLCBrZWVwaW5nIGluIG1pbmQgbXkgb3duIGV4cGVydCBwZXJzcGVjdGl2ZS5cblxuKipJbml0aWFsIEFzc2Vzc21lbnQ6IEtWTSBhbmQgTG9vbmdBcmNoIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBzbyBteSBmaXJzdCB0aG91Z2h0IGlzIHRoYXQgYGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyYCBhbmQgYGt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0cmAgc2VlbSBsaWtlIHNvbGlkIHN0YXJ0aW5nIHBvaW50cy4gTGV0J3MgbWFrZSBzdXJlIHdlIGhhdmUgZXZlcnl0aGluZyBpbiBwbGFjZSB0byBzdXBwb3J0IHRoaXMuIEkgaW1tZWRpYXRlbHkgdGhpbmsgdG8gY2hlY2sgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25zLiBPZiBjb3Vyc2UsIGBLVk1gIGl0c2VsZiBpcyBmdW5kYW1lbnRhbCDigJMgdGhhdCdzIGEgZ2l2ZW4uIEJ1dCBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgdGhlcmUgYXJlIG9mdGVuIG90aGVyIGRlcGVuZGVuY2llcyBvciBzcGVjaWZpYyBhcmNoaXRlY3R1cmFsIGZlYXR1cmVzIHRoYXQgbmVlZCBlbmFibGluZy4gSSdsbCBuZWVkIHRvIGRyaWxsIGRvd24gZGVlcGVyIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBtaXNzIGFueXRoaW5nLiBUaGVyZWZvcmUsIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHNjcnV0aW5pemUgdGhlIGBhcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHdoZXJlIGFsbCB0aGUgZGV0YWlsZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBMb29uZ0FyY2ggS1ZNIHNob3VsZCByZXNpZGUsIGFuZCB0aGF0J3Mgd2hlcmUgSSdsbCBmaW5kIHdoYXQgSSdtIGxvb2tpbmcgZm9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTMyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MTAuOTEwNTc4NDcxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTAwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJhcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIEtWTSBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdHNvdXJjZSBcXFwidmlydC9rdm0vS2NvbmZpZ1xcXCJcXG4gICA3OlxcdFxcbiAgIDg6XFx0bWVudWNvbmZpZyBWSVJUVUFMSVpBVElPTlxcbiAgIDk6XFx0XFx0Ym9vbCBcXFwiVmlydHVhbGl6YXRpb25cXFwiXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIFNheSBZIGhlcmUgdG8gZ2V0IHRvIHNlZSBvcHRpb25zIGZvciB1c2luZyB5b3VyIExpbnV4IGhvc3QgdG8gcnVuXFxuICAxMjpcXHRcXHQgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGluc2lkZSB2aXJ0dWFsIG1hY2hpbmVzIChndWVzdHMpLlxcbiAgMTM6XFx0XFx0ICBUaGlzIG9wdGlvbiBhbG9uZSBkb2VzIG5vdCBhZGQgYW55IGtlcm5lbCBjb2RlLlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIElmIHlvdSBzYXkgTiwgYWxsIG9wdGlvbnMgaW4gdGhpcyBzdWJtZW51IHdpbGwgYmUgc2tpcHBlZCBhbmRcXG4gIDE2OlxcdFxcdCAgZGlzYWJsZWQuXFxuICAxNzpcXHRcXG4gIDE4OlxcdGlmIFZJUlRVQUxJWkFUSU9OXFxuICAxOTpcXHRcXG4gIDIwOlxcdGNvbmZpZyBLVk1cXG4gIDIxOlxcdFxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuICAyMjpcXHRcXHRkZXBlbmRzIG9uIEFTX0hBU19MVlpfRVhURU5TSU9OIFxcdTAwMjZcXHUwMDI2IDY0QklUXFxuICAyMzpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fRElSVFlfUklOR19BQ1FfUkVMXFxuICAyNDpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fSVJRX1JPVVRJTkdcXG4gIDI1OlxcdFxcdHNlbGVjdCBIQVZFX0tWTV9JUlFDSElQXFxuICAyNjpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fTVNJXFxuICAyNzpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fUkVBRE9OTFlfTUVNXFxuICAyODpcXHRcXHRzZWxlY3QgS1ZNX0NPTU1PTlxcbiAgMjk6XFx0XFx0c2VsZWN0IEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbiAgMzA6XFx0XFx0c2VsZWN0IEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXFxuICAzMTpcXHRcXHRzZWxlY3QgS1ZNX01NSU9cXG4gIDMyOlxcdFxcdHNlbGVjdCBWSVJUX1hGRVJfVE9fR1VFU1RfV09SS1xcbiAgMzM6XFx0XFx0c2VsZWN0IFNDSEVEX0lORk9cXG4gIDM0OlxcdFxcdHNlbGVjdCBHVUVTVF9QRVJGX0VWRU5UUyBpZiBQRVJGX0VWRU5UU1xcbiAgMzU6XFx0XFx0aGVscFxcbiAgMzY6XFx0XFx0ICBTdXBwb3J0IGhvc3RpbmcgdmlydHVhbGl6ZWQgZ3Vlc3QgbWFjaGluZXMgdXNpbmdcXG4gIDM3OlxcdFxcdCAgaGFyZHdhcmUgdmlydHVhbGl6YXRpb24gZXh0ZW5zaW9ucy4gWW91IHdpbGwgbmVlZFxcbiAgMzg6XFx0XFx0ICBhIHByb2Nlc3NvciBlcXVpcHBlZCB3aXRoIHZpcnR1YWxpemF0aW9uIGV4dGVuc2lvbnMuXFxuICAzOTpcXHRcXG4gIDQwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDQxOlxcdFxcbiAgNDI6XFx0ZW5kaWYgIyBWSVJUVUFMSVpBVElPTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQwNToyNzoxMC45MTA3MDE2MjFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA1NDE2ODQ4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciBUaGlzIEtWTSBQYXRjaCoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcywgaXQgc2VlbXMgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBib2lscyBkb3duIHRvIGp1c3QgYEtWTWAuIFRoYXQncyB0aGUga2V5IG1vZHVsZS4gSSdsbCBmbGFnIGBXb3J0aEZ1enppbmdgIGFzIGB0cnVlYCBiZWNhdXNlIHRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBhdHRlbnRpb24uIE15IGludHVpdGlvbiBpcyB0ZWxsaW5nIG1lIHRoaXMgaXMgYSBnb29kIGNhbmRpZGF0ZSwgZ2l2ZW4gdGhlIGZ1bmN0aW9uYWwgbmF0dXJlIG9mIHRoZSBjaGFuZ2UuXG5cbk5vdywgZm9yIGBGb2N1c1N5bWJvbHNgLCBJJ2xsIHRhcmdldCBgW1wia3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJcIiwgXCJrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHJcIl1gLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyBkaXJlY3RseSBpbnZvbHZlZCBpbiBzZXR0aW5nIHRoZSBWQ1BVIGF0dHJpYnV0ZXMsIGFuZCwgZ2l2ZW4gdGhlIHBhdGNoJ3MgZGVzY3JpcHRpb24sIHRob3NlIGFyZSB0aGUgZnVuY3Rpb25zIHRoYXQgd2VyZSBtb2RpZmllZCBpbiB0aGUgcGF0Y2guXG5cbkkgd2lsbCBzZXQgYEVuYWJsZUNvbmZpZ3NgIHRvIGBbXCJLVk1cIl1gLCBtYWtpbmcgc3VyZSB0byBvbmx5IGVuYWJsZSB0aGlzIGNvbmZpZ3VyYXRpb24uXG5cbkFuZCBmaW5hbGx5LCBmb3IgYFJlYXNvbmluZ2AsIEknbGwgYXJ0aWN1bGF0ZSB0aGlzIGNsZWFybHk6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIExvb25nQXJjaCBLVk0gVkNQVSBhdHRyaWJ1dGUgc2V0dGluZyBsb2dpYyB0byBwcmV2ZW50IGNoYW5naW5nIFBWIGZlYXR1cmVzIGFmdGVyIHRoZSBWQ1BVIGhhcyBydW4gYXQgbGVhc3Qgb25jZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIgVGhpcyBpcyB0aGUgY29yZSBvZiB0aGUgcmVhc29uaW5nIGFuZCBzZXRzIHRoZSBzdGFnZSBmb3IgdGhlIGZ1enppbmcsIGdpdmVuIHRoZSBjaGFuZ2UgaW4gUFYgZmVhdHVyZSBiZWhhdmlvci5cblxuXG4iLCJJbnB1dFRva2VucyI6NTgyMCwiT3V0cHV0VG9rZW5zIjoxMTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQwNToyNzoxNC45NjQ4NzE2NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDYwMTU2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJcIixcbiAgICBcImt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0clwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIExvb25nQXJjaCBLVk0gVkNQVSBhdHRyaWJ1dGUgc2V0dGluZyBsb2dpYyB0byBwcmV2ZW50IGNoYW5naW5nIFBWIGZlYXR1cmVzIGFmdGVyIHRoZSBWQ1BVIGhhcyBydW4gYXQgbGVhc3Qgb25jZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJcIixcbiAgICBcImt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0clwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIExvb25nQXJjaCBLVk0gVkNQVSBhdHRyaWJ1dGUgc2V0dGluZyBsb2dpYyB0byBwcmV2ZW50IGNoYW5naW5nIFBWIGZlYXR1cmVzIGFmdGVyIHRoZSBWQ1BVIGhhcyBydW4gYXQgbGVhc3Qgb25jZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-16 05:00:15 +0000 UTC FinishedAt: 2026-07-16 05:27:17 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "a13c140cc289c0b7b3770bce5b3ad42ab35074aa", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "a13c140cc289c0b7b3770bce5b3ad42ab35074aa", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "3e641585-058d-42bc-ba44-3914d0584186" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_loongarch_cpucfg_set_attr", "kvm_loongarch_vcpu_set_attr" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDA1OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyJiMzNDssCiAgICAmIzM0O2t2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0ciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBMb29uZ0FyY2ggS1ZNIFZDUFUgYXR0cmlidXRlIHNldHRpbmcgbG9naWMgdG8gcHJldmVudCBjaGFuZ2luZyBQViBmZWF0dXJlcyBhZnRlciB0aGUgVkNQVSBoYXMgcnVuIGF0IGxlYXN0IG9uY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gdGhhdCBjYW4gYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDA1OjI2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZWZkM2M1NTdiMDhmODY2MjllNzIwMWNiY2QwZTEwNTNlZWUyZTM4Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDA1OjI2OjUxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyM2NmYmVjZWJiZDc5YS4uYWYzNzZmYzQ0YzQ0MjggMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTYzLDcgJiM0MzsxNjMsNiBAQCBlbnVtIGVtdWxhdGlvbl9yZXN1bHQge1xuICNkZWZpbmUgS1ZNX0xBUkNIX1NXQ1NSX0xBVEVTVFx0KDB4MSBcdTAwM2NcdTAwM2MgMylcbiAjZGVmaW5lIEtWTV9MQVJDSF9IV0NTUl9VU0FCTEVcdCgweDEgXHUwMDNjXHUwMDNjIDQpXG4gXG4tI2RlZmluZSBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEXHRCSVRfVUxMKDYzKVxuICNkZWZpbmUgTE9PTkdBUkNIX1BWX0ZFQVRfTUFTS1x0XHQoQklUKEtWTV9GRUFUVVJFX0lQSSkgfFx0XHRcXFxuIFx0XHRcdFx0XHQgQklUKEtWTV9GRUFUVVJFX1BSRUVNUFQpIHxcdFxcXG4gXHRcdFx0XHRcdCBCSVQoS1ZNX0ZFQVRVUkVfU1RFQUxfVElNRSkgfFx0XFxcbkBAIC0yNTAsNiAmIzQzOzI0OSw5IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHtcbiBcdC8qIGNwdWNmZyAqL1xuIFx0dTMyIGNwdWNmZ1tLVk1fTUFYX0NQVUNGR19SRUdTXTtcbiBcbiYjNDM7XHQvKiBWQ1BVIHJhbiBhdCBsZWFzdCBvbmNlICovXG4mIzQzO1x0Ym9vbCByYW5fYXRsZWFzdF9vbmNlO1xuJiM0MztcbiBcdC8qIHBhcmF2aXJ0IHN0ZWFsIHRpbWUgKi9cbiBcdHN0cnVjdCB7XG4gXHRcdHU2NCBndWVzdF9hZGRyO1xuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMgYi9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXG5pbmRleCAyMGMyMDdkODBlMzFhZS4uY2U2YTFiMDZkNTBkYjUgMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXG5AQCAtMTE2NCwxMSAmIzQzOzExNjQsMTQgQEAgc3RhdGljIGludCBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRcdGlmICh2YWwgXHUwMDI2IH52YWxpZClcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbi1cdFx0LyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovXG4tXHRcdGlmICgoa3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXHUwMDI2IExPT05HQVJDSF9QVl9GRUFUX1VQREFURUQpXG4tXHRcdFx0XHRcdTAwMjZcdTAwMjYgKChrdm0tXHUwMDNlYXJjaC5wdl9mZWF0dXJlcyBcdTAwMjYgdmFsaWQpICE9IHZhbCkpXG4mIzQzO1x0XHRpZiAoKGt2bS1cdTAwM2VhcmNoLnB2X2ZlYXR1cmVzIFx1MDAyNiB2YWxpZCkgPT0gdmFsKVxuJiM0MztcdFx0XHRyZXR1cm4gMDtcbiYjNDM7XG4mIzQzO1x0XHRpZiAodmNwdS1cdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UpXG4gXHRcdFx0cmV0dXJuIC1FSU5WQUw7XG4tXHRcdGt2bS1cdTAwM2VhcmNoLnB2X2ZlYXR1cmVzID0gdmFsIHwgTE9PTkdBUkNIX1BWX0ZFQVRfVVBEQVRFRDtcbiYjNDM7XG4mIzQzO1x0XHQvKiBBbGwgdkNQVXMgbmVlZCBzZXQgdGhlIHNhbWUgUFYgZmVhdHVyZXMgKi9cbiYjNDM7XHRcdGt2bS1cdTAwM2VhcmNoLnB2X2ZlYXR1cmVzID0gdmFsO1xuIFx0XHRyZXR1cm4gMDtcbiBcdGRlZmF1bHQ6XG4gXHRcdHJldHVybiAtRU5YSU87XG5AQCAtMTg1MSw2ICYjNDM7MTg1NCwxMCBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0aW50IHIgPSAtRUlOVFI7XG4gXHRzdHJ1Y3Qga3ZtX3J1biAqcnVuID0gdmNwdS1cdTAwM2VydW47XG4gXG4mIzQzO1x0LyogTWFyayB0aGlzIFZDUFUgcmFuIGF0IGxlYXN0IG9uY2UgKi9cbiYjNDM7XHRpZiAoIXZjcHUtXHUwMDNlYXJjaC5yYW5fYXRsZWFzdF9vbmNlKVxuJiM0MztcdFx0dmNwdS1cdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UgPSB0cnVlO1xuJiM0MztcbiBcdGlmICh2Y3B1LVx1MDAzZW1taW9fbmVlZGVkKSB7XG4gXHRcdGlmICghdmNwdS1cdTAwM2VtbWlvX2lzX3dyaXRlKVxuIFx0XHRcdGt2bV9jb21wbGV0ZV9tbWlvX3JlYWQodmNwdSwgcnVuKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAwNToyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0ciYjMzQ7LAogICAgJiMzNDtrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgTG9vbmdBcmNoIEtWTSBWQ1BVIGF0dHJpYnV0ZSBzZXR0aW5nIGxvZ2ljIHRvIHByZXZlbnQgY2hhbmdpbmcgUFYgZmVhdHVyZXMgYWZ0ZXIgdGhlIFZDUFUgaGFzIHJ1biBhdCBsZWFzdCBvbmNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZWZkM2M1NTdiMDhmODY2MjllNzIwMWNiY2QwZTEwNTNlZWUyZTM4YwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUaHUgSnVsIDE2IDA1OjI2OjUxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5kZXggMjNjZmJlY2ViYmQ3OWEuLmFmMzc2ZmM0NGM0NDI4IDEwMDY0NAotLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTE2Myw3ICYjNDM7MTYzLDYgQEAgZW51bSBlbXVsYXRpb25fcmVzdWx0IHsKICNkZWZpbmUgS1ZNX0xBUkNIX1NXQ1NSX0xBVEVTVAkoMHgxICZsdDsmbHQ7IDMpCiAjZGVmaW5lIEtWTV9MQVJDSF9IV0NTUl9VU0FCTEUJKDB4MSAmbHQ7Jmx0OyA0KQogCi0jZGVmaW5lIExPT05HQVJDSF9QVl9GRUFUX1VQREFURUQJQklUX1VMTCg2MykKICNkZWZpbmUgTE9PTkdBUkNIX1BWX0ZFQVRfTUFTSwkJKEJJVChLVk1fRkVBVFVSRV9JUEkpIHwJCVwKIAkJCQkJIEJJVChLVk1fRkVBVFVSRV9QUkVFTVBUKSB8CVwKIAkJCQkJIEJJVChLVk1fRkVBVFVSRV9TVEVBTF9USU1FKSB8CVwKQEAgLTI1MCw2ICYjNDM7MjQ5LDkgQEAgc3RydWN0IGt2bV92Y3B1X2FyY2ggewogCS8qIGNwdWNmZyAqLwogCXUzMiBjcHVjZmdbS1ZNX01BWF9DUFVDRkdfUkVHU107CiAKJiM0MzsJLyogVkNQVSByYW4gYXQgbGVhc3Qgb25jZSAqLwomIzQzOwlib29sIHJhbl9hdGxlYXN0X29uY2U7CiYjNDM7CiAJLyogcGFyYXZpcnQgc3RlYWwgdGltZSAqLwogCXN0cnVjdCB7CiAJCXU2NCBndWVzdF9hZGRyOwpkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYyBiL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMKaW5kZXggMjBjMjA3ZDgwZTMxYWUuLmNlNmExYjA2ZDUwZGI1IDEwMDY0NAotLS0gYS9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMKQEAgLTExNjQsMTEgJiM0MzsxMTY0LDE0IEBAIHN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQlpZiAodmFsICZhbXA7IH52YWxpZCkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCS8qIEFsbCB2Q1BVcyBuZWVkIHNldCB0aGUgc2FtZSBQViBmZWF0dXJlcyAqLwotCQlpZiAoKGt2bS0mZ3Q7YXJjaC5wdl9mZWF0dXJlcyAmYW1wOyBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEKQotCQkJCSZhbXA7JmFtcDsgKChrdm0tJmd0O2FyY2gucHZfZmVhdHVyZXMgJmFtcDsgdmFsaWQpICE9IHZhbCkpCiYjNDM7CQlpZiAoKGt2bS0mZ3Q7YXJjaC5wdl9mZWF0dXJlcyAmYW1wOyB2YWxpZCkgPT0gdmFsKQomIzQzOwkJCXJldHVybiAwOwomIzQzOwomIzQzOwkJaWYgKHZjcHUtJmd0O2FyY2gucmFuX2F0bGVhc3Rfb25jZSkKIAkJCXJldHVybiAtRUlOVkFMOwotCQlrdm0tJmd0O2FyY2gucHZfZmVhdHVyZXMgPSB2YWwgfCBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEOwomIzQzOwomIzQzOwkJLyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovCiYjNDM7CQlrdm0tJmd0O2FyY2gucHZfZmVhdHVyZXMgPSB2YWw7CiAJCXJldHVybiAwOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRU5YSU87CkBAIC0xODUxLDYgJiM0MzsxODU0LDEwIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJaW50IHIgPSAtRUlOVFI7CiAJc3RydWN0IGt2bV9ydW4gKnJ1biA9IHZjcHUtJmd0O3J1bjsKIAomIzQzOwkvKiBNYXJrIHRoaXMgVkNQVSByYW4gYXQgbGVhc3Qgb25jZSAqLwomIzQzOwlpZiAoIXZjcHUtJmd0O2FyY2gucmFuX2F0bGVhc3Rfb25jZSkKJiM0MzsJCXZjcHUtJmd0O2FyY2gucmFuX2F0bGVhc3Rfb25jZSA9IHRydWU7CiYjNDM7CiAJaWYgKHZjcHUtJmd0O21taW9fbmVlZGVkKSB7CiAJCWlmICghdmNwdS0mZ3Q7bW1pb19pc193cml0ZSkKIAkJCWt2bV9jb21wbGV0ZV9tbWlvX3JlYWQodmNwdSwgcnVuKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUxOQoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDM0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipMb29uZ0FyY2ggS1ZNIE1vZGlmaWNhdGlvbiBSZXZpZXcqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY2AgYW5kIHRoZSBhc3NvY2lhdGVkIGhlYWRlci4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBhZGRpbmcgYSBgcmFuX2F0bGVhc3Rfb25jZWAgYm9vbGVhbiB0byB0aGUgYGt2bV92Y3B1X2FyY2hgIHN0cnVjdC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiBga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJgLCB3aGljaCBpcyBub3cgY2hlY2tpbmcgdGhpcyBuZXcgYHJhbl9hdGxlYXN0X29uY2VgIGZsYWcgaW5zdGVhZCBvZiB0aGUgb2xkIGBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEYCBjb25kaXRpb24uIFRoZW4gSSBzZWUgdGhhdCBga3ZtX2FyY2hfdmNwdV9pb2N0bF9ydW5gIGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIGByYW5fYXRsZWFzdF9vbmNlYCB0byB0cnVlLgoKVGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBtb2RpZmljYXRpb24gdG8gdGhlIExvb25nQXJjaCBLVk0gaW1wbGVtZW50YXRpb24uIFNvLCB0aGUgZmlyc3QgcXVlc3Rpb24gaXMgd2hldGhlciB0aGlzIG1lcml0cyBmdXp6aW5nLiBBYnNvbHV0ZWx5LiBJdCYjMzk7cyB0b3VjaGluZyBLVk0gZnVuY3Rpb25hbGl0eSwgYW5kIHRoYXQmIzM5O3MgYWx3YXlzIGEgZ29vZCBjYW5kaWRhdGUuCgpOb3csIGEgY3JpdGljYWwgcXVlc3Rpb24gYXJpc2VzOiBDYW4gc3l6a2FsbGVyIGV2ZW4gZnV6eiBMb29uZ0FyY2ggS1ZNPyBJdCB0eXBpY2FsbHkgZm9jdXNlcyBvbiB4ODYgYW5kIEFSTTY0LiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gTG9vbmdBcmNoIHN1cHBvcnQuCgpJZiBzeXprYWxsZXIgZG9lcyBzdXBwb3J0IGl0LCB0aGVuIEkgbmVlZCB0byBjb25zaWRlciB3aGV0aGVyIHRoaXMgc3BlY2lmaWMgY2hhbmdlIGlzIHJlYWNoYWJsZS4gVGhlIGRvY3VtZW50YXRpb24gc2F5cyB0byBleGNsdWRlIGNvZGUgcGF0aHMgdGhhdCBhcmVuJiMzOTt0IHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHNwZWNpZmljYWxseSB0aG9zZSB0aGF0IHVzZSBzb2Z0d2FyZSBlbXVsYXRlZCBoYXJkd2FyZS4gTG9vbmdBcmNoIEtWTSBzaG91bGQgYmUgcmVhY2hhYmxlIGlmIHdlIGFyZSBydW5uaW5nIHN5emthbGxlciBvbiBMb29uZ0FyY2guCgpOZXh0LCBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBPYnZpb3VzbHksIGBDT05GSUdfS1ZNYCBpcyBuZWNlc3NhcnkuIEFyZSB0aGVyZSBzcGVjaWZpYyBMb29uZ0FyY2ggS1ZNIGNvbmZpZ3MgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEkgbmVlZCB0byBmaW5kIG91dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAwNToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzM1MgoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDIxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIExvb25nQXJjaCBLVk0gQ29kZSoqCgpPa2F5LCBzbyB0aGUgY29uZmlndXJhdGlvbiBpcyBkZWZpbml0ZWx5IGBLVk1gLiBUaGUgcHJvbXB0JiMzOTtzIGtleSBwaHJhc2UgaXM6ICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucyBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuJiMzNDsgTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyBMb29uZ0FyY2ggS1ZNIHJlYWNoYWJsZSBpbiBlaXRoZXIgR0NFIG9yIFFFTVU/IFRoaXMgaXMgdGhlIGNydXggb2YgdGhlIGRlY2lzaW9uLgoKSWYgd2UmIzM5O3JlIHJ1bm5pbmcgc3l6a2FsbGVyLCB0aGUgYW5zd2VyIGlzICp5ZXMqLiBXZSBrbm93IHdlIGNhbiBmdXp6IG9uIExvb25nQXJjaCB3aXRoIGl0LiBCdXQsIEkgbmVlZCB0byBjb25maXJtIHN5emthbGxlciYjMzk7cyBMb29uZ0FyY2ggc3VwcG9ydC4gQW5kIG9mIGNvdXJzZSwgc3l6a2FsbGVyIHJ1bnMgYWNyb3NzIG1hbnkgYXJjaGl0ZWN0dXJlcyBpbmNsdWRpbmcgeDg2XzY0LCBhcm02NCwgcmlzY3Y2NCwgYW5kIHMzOTB4LiAqRG9lcyogaXQgc3VwcG9ydCBMb29uZ0FyY2g/IFllcywgaXQgZG9lcy4gU28sIHNpbmNlIHN5emthbGxlciBzdXBwb3J0cyBmdXp6aW5nIExvb25nQXJjaCwgdGhlIGNvZGUgaXMgaW5kZWVkIHdvcnRoIGZ1enppbmcuCgpNeSBhdHRlbnRpb24gc2hpZnRzIHRvIHNwZWNpZmljIHN5bWJvbHMsIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAgYW5kIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bmAuIFRob3NlIGFyZSB0aGUgdHdvIEkgd2FudCB0byBzY3J1dGluaXplIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9rdm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9MTEzMj1zdGF0aWMgaW50IGt2bV9sb29uZ2FyY2hfdmNwdV9nZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMTUwLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMTUxOnN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMTUyLVx0XHRcdFx0XHQgc3RydWN0IGt2bV9kZXZpY2VfYXR0ciAqYXR0cilcbi0tXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jPTEyMTg9c3RhdGljIGludCBrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIyNC1cdGNhc2UgS1ZNX0xPT05HQVJDSF9WQ1BVX0NQVUNGRzpcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM6MTIyNTpcdFx0cmV0ID0ga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHIodmNwdSwgYXR0cik7XG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTEyMjYtXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDA1OjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxOTAKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gQ1BVIENvbmZpZ3VyYXRpb24gaW4gTG9vbmdBcmNoIEtWTSoqCgpPa2F5LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBtb3N0IHJlbGV2YW50IHN5bWJvbHMgdG8gYW5hbHl6ZSBoZXJlLiBJIGJlbGlldmUgYGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyYCBpcyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQuIEl0IHNlZW1zIGxpa2UgaXQmIzM5O3MgYSBzcGVjaWZpYyBmdW5jdGlvbiBmb3Igc2V0dGluZyBDUFUgY29uZmlndXJhdGlvbnMgd2l0aGluIHRoZSBMb29uZ0FyY2ggS1ZNIGltcGxlbWVudGF0aW9uLgoKSW5pdGlhbGx5LCBJIGNvbnNpZGVyZWQgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfcnVuYCBiZWNhdXNlIGl0JiMzOTtzIGEgdmVyeSBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9uIHdpdGhpbiBLVk0uIEJ1dCwgd2FpdCBhIG1pbnV0ZSwgdGhhdCBmdW5jdGlvbiBpcyB0aGUgKnByaW1hcnkqIGVudHJ5IHBvaW50IGZvciBgS1ZNX1JVTmAuIERlZmluaXRlbHkgYSBob3QgcGF0aCwgYnV0IHBlcmhhcHMgdG9vIGdlbmVyaWMgdG8gcHJvdmlkZSB0aGUgc3BlY2lmaWMgaW5zaWdodHMgSSYjMzk7bSBsb29raW5nIGZvciByaWdodCBub3cuIFNvLCBzY3JhdGNoIHRoYXQuIEkmIzM5O20gZ29pbmcgdG8gc3RpY2sgd2l0aCBga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJgLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2guIEFyZSB0aGVyZSAqb3RoZXIqIGZ1bmN0aW9ucyBpbiB0aGUgTG9vbmdBcmNoLXNwZWNpZmljIGNvZGUgcmVsYXRlZCB0byBDUFUgY29uZmlndXJhdGlvbiBJIHNob3VsZCBiZSBhd2FyZSBvZj8gQWgsIHllcywgaGVyZSBpdCBpczogYGt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0cmAgaXMgYW5vdGhlciByZWxldmFudCBmdW5jdGlvbiB0aGF0IG1pZ2h0IGJlIHdvcnRoIGludmVzdGlnYXRpbmcgYWxvbmdzaWRlIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAuIEdvb2QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9sb29uZ2FyY2gva3ZtLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jPTExODE9c3RhdGljIGludCBrdm1fbG9vbmdhcmNoX3B2dGltZV9zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMjE3LVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMjE4OnN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIxOS1cdFx0XHRcdCAgICAgICBzdHJ1Y3Qga3ZtX2RldmljZV9hdHRyICphdHRyKVxuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9MTIzNz1sb25nIGt2bV9hcmNoX3ZjcHVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsXG4tLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMjk4LVx0XHRcdGJyZWFrO1xuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMjk5Olx0XHRyID0ga3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyKHZjcHUsIFx1MDAyNmF0dHIpO1xuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMzAwLVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAwNToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0OTMyCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgcXVpY2sgcnVuZG93biBvZiB0aGVzZSBpbml0aWFsIHRob3VnaHRzLCBrZWVwaW5nIGluIG1pbmQgbXkgb3duIGV4cGVydCBwZXJzcGVjdGl2ZS4KCioqSW5pdGlhbCBBc3Nlc3NtZW50OiBLVk0gYW5kIExvb25nQXJjaCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHNvIG15IGZpcnN0IHRob3VnaHQgaXMgdGhhdCBga3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJgIGFuZCBga3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyYCBzZWVtIGxpa2Ugc29saWQgc3RhcnRpbmcgcG9pbnRzLiBMZXQmIzM5O3MgbWFrZSBzdXJlIHdlIGhhdmUgZXZlcnl0aGluZyBpbiBwbGFjZSB0byBzdXBwb3J0IHRoaXMuIEkgaW1tZWRpYXRlbHkgdGhpbmsgdG8gY2hlY2sgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25zLiBPZiBjb3Vyc2UsIGBLVk1gIGl0c2VsZiBpcyBmdW5kYW1lbnRhbCDigJMgdGhhdCYjMzk7cyBhIGdpdmVuLiBCdXQgSSBrbm93IGZyb20gZXhwZXJpZW5jZSB0aGF0IHRoZXJlIGFyZSBvZnRlbiBvdGhlciBkZXBlbmRlbmNpZXMgb3Igc3BlY2lmaWMgYXJjaGl0ZWN0dXJhbCBmZWF0dXJlcyB0aGF0IG5lZWQgZW5hYmxpbmcuIEkmIzM5O2xsIG5lZWQgdG8gZHJpbGwgZG93biBkZWVwZXIgdG8gbWFrZSBzdXJlIHdlIGRvbiYjMzk7dCBtaXNzIGFueXRoaW5nLiBUaGVyZWZvcmUsIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHNjcnV0aW5pemUgdGhlIGBhcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZ2AgZmlsZS4gVGhhdCYjMzk7cyB3aGVyZSBhbGwgdGhlIGRldGFpbGVkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgTG9vbmdBcmNoIEtWTSBzaG91bGQgcmVzaWRlLCBhbmQgdGhhdCYjMzk7cyB3aGVyZSBJJiMzOTtsbCBmaW5kIHdoYXQgSSYjMzk7bSBsb29raW5nIGZvci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDthcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0I1xuICAgMzpcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0c291cmNlIFwmIzM0O3ZpcnQva3ZtL0tjb25maWdcJiMzNDtcbiAgIDc6XHRcbiAgIDg6XHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXG4gICA5Olx0XHRib29sIFwmIzM0O1ZpcnR1YWxpemF0aW9uXCYjMzQ7XG4gIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFNheSBZIGhlcmUgdG8gZ2V0IHRvIHNlZSBvcHRpb25zIGZvciB1c2luZyB5b3VyIExpbnV4IGhvc3QgdG8gcnVuXG4gIDEyOlx0XHQgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGluc2lkZSB2aXJ0dWFsIG1hY2hpbmVzIChndWVzdHMpLlxuICAxMzpcdFx0ICBUaGlzIG9wdGlvbiBhbG9uZSBkb2VzIG5vdCBhZGQgYW55IGtlcm5lbCBjb2RlLlxuICAxNDpcdFxuICAxNTpcdFx0ICBJZiB5b3Ugc2F5IE4sIGFsbCBvcHRpb25zIGluIHRoaXMgc3VibWVudSB3aWxsIGJlIHNraXBwZWQgYW5kXG4gIDE2Olx0XHQgIGRpc2FibGVkLlxuICAxNzpcdFxuICAxODpcdGlmIFZJUlRVQUxJWkFUSU9OXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEtWTVxuICAyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4gIDIyOlx0XHRkZXBlbmRzIG9uIEFTX0hBU19MVlpfRVhURU5TSU9OIFx1MDAyNlx1MDAyNiA2NEJJVFxuICAyMzpcdFx0c2VsZWN0IEhBVkVfS1ZNX0RJUlRZX1JJTkdfQUNRX1JFTFxuICAyNDpcdFx0c2VsZWN0IEhBVkVfS1ZNX0lSUV9ST1VUSU5HXG4gIDI1Olx0XHRzZWxlY3QgSEFWRV9LVk1fSVJRQ0hJUFxuICAyNjpcdFx0c2VsZWN0IEhBVkVfS1ZNX01TSVxuICAyNzpcdFx0c2VsZWN0IEhBVkVfS1ZNX1JFQURPTkxZX01FTVxuICAyODpcdFx0c2VsZWN0IEtWTV9DT01NT05cbiAgMjk6XHRcdHNlbGVjdCBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcbiAgMzA6XHRcdHNlbGVjdCBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xuICAzMTpcdFx0c2VsZWN0IEtWTV9NTUlPXG4gIDMyOlx0XHRzZWxlY3QgVklSVF9YRkVSX1RPX0dVRVNUX1dPUktcbiAgMzM6XHRcdHNlbGVjdCBTQ0hFRF9JTkZPXG4gIDM0Olx0XHRzZWxlY3QgR1VFU1RfUEVSRl9FVkVOVFMgaWYgUEVSRl9FVkVOVFNcbiAgMzU6XHRcdGhlbHBcbiAgMzY6XHRcdCAgU3VwcG9ydCBob3N0aW5nIHZpcnR1YWxpemVkIGd1ZXN0IG1hY2hpbmVzIHVzaW5nXG4gIDM3Olx0XHQgIGhhcmR3YXJlIHZpcnR1YWxpemF0aW9uIGV4dGVuc2lvbnMuIFlvdSB3aWxsIG5lZWRcbiAgMzg6XHRcdCAgYSBwcm9jZXNzb3IgZXF1aXBwZWQgd2l0aCB2aXJ0dWFsaXphdGlvbiBleHRlbnNpb25zLlxuICAzOTpcdFxuICA0MDpcdFx0ICBJZiB1bnN1cmUsIHNheSBOLlxuICA0MTpcdFxuICA0MjpcdGVuZGlmICMgVklSVFVBTElaQVRJT05cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMDU6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTgyMAoJCQkJCQkJb3V0cHV0OiAxMTAKCQkJCQkJCXRob3VnaHRzOiAxMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgRnV6emluZyBTdHJhdGVneSBmb3IgVGhpcyBLVk0gUGF0Y2gqKgoKT2theSwgc28gbG9va2luZyBhdCB0aGlzLCBpdCBzZWVtcyB0aGUgY29yZSBjb25maWd1cmF0aW9uIGJvaWxzIGRvd24gdG8ganVzdCBgS1ZNYC4gVGhhdCYjMzk7cyB0aGUga2V5IG1vZHVsZS4gSSYjMzk7bGwgZmxhZyBgV29ydGhGdXp6aW5nYCBhcyBgdHJ1ZWAgYmVjYXVzZSB0aGlzIGRlZmluaXRlbHkgd2FycmFudHMgYXR0ZW50aW9uLiBNeSBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSB0aGlzIGlzIGEgZ29vZCBjYW5kaWRhdGUsIGdpdmVuIHRoZSBmdW5jdGlvbmFsIG5hdHVyZSBvZiB0aGUgY2hhbmdlLgoKTm93LCBmb3IgYEZvY3VzU3ltYm9sc2AsIEkmIzM5O2xsIHRhcmdldCBgWyYjMzQ7a3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHImIzM0OywgJiMzNDtrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHImIzM0O11gLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyBkaXJlY3RseSBpbnZvbHZlZCBpbiBzZXR0aW5nIHRoZSBWQ1BVIGF0dHJpYnV0ZXMsIGFuZCwgZ2l2ZW4gdGhlIHBhdGNoJiMzOTtzIGRlc2NyaXB0aW9uLCB0aG9zZSBhcmUgdGhlIGZ1bmN0aW9ucyB0aGF0IHdlcmUgbW9kaWZpZWQgaW4gdGhlIHBhdGNoLgoKSSB3aWxsIHNldCBgRW5hYmxlQ29uZmlnc2AgdG8gYFsmIzM0O0tWTSYjMzQ7XWAsIG1ha2luZyBzdXJlIHRvIG9ubHkgZW5hYmxlIHRoaXMgY29uZmlndXJhdGlvbi4KCkFuZCBmaW5hbGx5LCBmb3IgYFJlYXNvbmluZ2AsIEkmIzM5O2xsIGFydGljdWxhdGUgdGhpcyBjbGVhcmx5OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBMb29uZ0FyY2ggS1ZNIFZDUFUgYXR0cmlidXRlIHNldHRpbmcgbG9naWMgdG8gcHJldmVudCBjaGFuZ2luZyBQViBmZWF0dXJlcyBhZnRlciB0aGUgVkNQVSBoYXMgcnVuIGF0IGxlYXN0IG9uY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gdGhhdCBjYW4gYmUgZnV6emVkLiYjMzQ7IFRoaXMgaXMgdGhlIGNvcmUgb2YgdGhlIHJlYXNvbmluZyBhbmQgc2V0cyB0aGUgc3RhZ2UgZm9yIHRoZSBmdXp6aW5nLCBnaXZlbiB0aGUgY2hhbmdlIGluIFBWIGZlYXR1cmUgYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDA1OjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0ciYjMzQ7LAogICAgJiMzNDtrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgTG9vbmdBcmNoIEtWTSBWQ1BVIGF0dHJpYnV0ZSBzZXR0aW5nIGxvZ2ljIHRvIHByZXZlbnQgY2hhbmdpbmcgUFYgZmVhdHVyZXMgYWZ0ZXIgdGhlIFZDUFUgaGFzIHJ1biBhdCBsZWFzdCBvbmNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHRoYXQgY2FuIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHImIzM0OywKICAgICYjMzQ7a3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIExvb25nQXJjaCBLVk0gVkNQVSBhdHRyaWJ1dGUgc2V0dGluZyBsb2dpYyB0byBwcmV2ZW50IGNoYW5naW5nIFBWIGZlYXR1cmVzIGFmdGVyIHRoZSBWQ1BVIGhhcyBydW4gYXQgbGVhc3Qgb25jZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSB0aGF0IGNhbiBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNlQwNToyNjo1Mi41MDkwNDM0NzJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjY0MDQ0MjE3NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0clwiLFxuICAgIFwia3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgTG9vbmdBcmNoIEtWTSBWQ1BVIGF0dHJpYnV0ZSBzZXR0aW5nIGxvZ2ljIHRvIHByZXZlbnQgY2hhbmdpbmcgUFYgZmVhdHVyZXMgYWZ0ZXIgdGhlIFZDUFUgaGFzIHJ1biBhdCBsZWFzdCBvbmNlLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gS1ZNIHRoYXQgY2FuIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6MjY6NTIuNTA5MDUxNjYyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjgwNTcwNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlZmQzYzU1N2IwOGY4NjYyOWU3MjAxY2JjZDBlMTA1M2VlZTJlMzhjXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDE2IDA1OjI2OjUxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggMjNjZmJlY2ViYmQ3OWEuLmFmMzc2ZmM0NGM0NDI4IDEwMDY0NFxcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuQEAgLTE2Myw3ICsxNjMsNiBAQCBlbnVtIGVtdWxhdGlvbl9yZXN1bHQge1xcbiAjZGVmaW5lIEtWTV9MQVJDSF9TV0NTUl9MQVRFU1RcXHQoMHgxIFxcdTAwM2NcXHUwMDNjIDMpXFxuICNkZWZpbmUgS1ZNX0xBUkNIX0hXQ1NSX1VTQUJMRVxcdCgweDEgXFx1MDAzY1xcdTAwM2MgNClcXG4gXFxuLSNkZWZpbmUgTE9PTkdBUkNIX1BWX0ZFQVRfVVBEQVRFRFxcdEJJVF9VTEwoNjMpXFxuICNkZWZpbmUgTE9PTkdBUkNIX1BWX0ZFQVRfTUFTS1xcdFxcdChCSVQoS1ZNX0ZFQVRVUkVfSVBJKSB8XFx0XFx0XFxcXFxcbiBcXHRcXHRcXHRcXHRcXHQgQklUKEtWTV9GRUFUVVJFX1BSRUVNUFQpIHxcXHRcXFxcXFxuIFxcdFxcdFxcdFxcdFxcdCBCSVQoS1ZNX0ZFQVRVUkVfU1RFQUxfVElNRSkgfFxcdFxcXFxcXG5AQCAtMjUwLDYgKzI0OSw5IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHtcXG4gXFx0LyogY3B1Y2ZnICovXFxuIFxcdHUzMiBjcHVjZmdbS1ZNX01BWF9DUFVDRkdfUkVHU107XFxuIFxcbitcXHQvKiBWQ1BVIHJhbiBhdCBsZWFzdCBvbmNlICovXFxuK1xcdGJvb2wgcmFuX2F0bGVhc3Rfb25jZTtcXG4rXFxuIFxcdC8qIHBhcmF2aXJ0IHN0ZWFsIHRpbWUgKi9cXG4gXFx0c3RydWN0IHtcXG4gXFx0XFx0dTY0IGd1ZXN0X2FkZHI7XFxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMgYi9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXFxuaW5kZXggMjBjMjA3ZDgwZTMxYWUuLmNlNmExYjA2ZDUwZGI1IDEwMDY0NFxcbi0tLSBhL2FyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmNcXG4rKysgYi9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jXFxuQEAgLTExNjQsMTEgKzExNjQsMTQgQEAgc3RhdGljIGludCBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuIFxcdFxcdGlmICh2YWwgXFx1MDAyNiB+dmFsaWQpXFxuIFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4tXFx0XFx0LyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovXFxuLVxcdFxcdGlmICgoa3ZtLVxcdTAwM2VhcmNoLnB2X2ZlYXR1cmVzIFxcdTAwMjYgTE9PTkdBUkNIX1BWX0ZFQVRfVVBEQVRFRClcXG4tXFx0XFx0XFx0XFx0XFx1MDAyNlxcdTAwMjYgKChrdm0tXFx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXFx1MDAyNiB2YWxpZCkgIT0gdmFsKSlcXG4rXFx0XFx0aWYgKChrdm0tXFx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXFx1MDAyNiB2YWxpZCkgPT0gdmFsKVxcbitcXHRcXHRcXHRyZXR1cm4gMDtcXG4rXFxuK1xcdFxcdGlmICh2Y3B1LVxcdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UpXFxuIFxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi1cXHRcXHRrdm0tXFx1MDAzZWFyY2gucHZfZmVhdHVyZXMgPSB2YWwgfCBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEO1xcbitcXG4rXFx0XFx0LyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovXFxuK1xcdFxcdGt2bS1cXHUwMDNlYXJjaC5wdl9mZWF0dXJlcyA9IHZhbDtcXG4gXFx0XFx0cmV0dXJuIDA7XFxuIFxcdGRlZmF1bHQ6XFxuIFxcdFxcdHJldHVybiAtRU5YSU87XFxuQEAgLTE4NTEsNiArMTg1NCwxMCBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbiBcXHRpbnQgciA9IC1FSU5UUjtcXG4gXFx0c3RydWN0IGt2bV9ydW4gKnJ1biA9IHZjcHUtXFx1MDAzZXJ1bjtcXG4gXFxuK1xcdC8qIE1hcmsgdGhpcyBWQ1BVIHJhbiBhdCBsZWFzdCBvbmNlICovXFxuK1xcdGlmICghdmNwdS1cXHUwMDNlYXJjaC5yYW5fYXRsZWFzdF9vbmNlKVxcbitcXHRcXHR2Y3B1LVxcdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UgPSB0cnVlO1xcbitcXG4gXFx0aWYgKHZjcHUtXFx1MDAzZW1taW9fbmVlZGVkKSB7XFxuIFxcdFxcdGlmICghdmNwdS1cXHUwMDNlbW1pb19pc193cml0ZSlcXG4gXFx0XFx0XFx0a3ZtX2NvbXBsZXRlX21taW9fcmVhZCh2Y3B1LCBydW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQwNToyNjo1My4wNzgwNTU0OTlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyMDcxNDIxOTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyXCIsXG4gICAgXCJrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBMb29uZ0FyY2ggS1ZNIFZDUFUgYXR0cmlidXRlIHNldHRpbmcgbG9naWMgdG8gcHJldmVudCBjaGFuZ2luZyBQViBmZWF0dXJlcyBhZnRlciB0aGUgVkNQVSBoYXMgcnVuIGF0IGxlYXN0IG9uY2UuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBLVk0gdGhhdCBjYW4gYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGVmZDNjNTU3YjA4Zjg2NjI5ZTcyMDFjYmNkMGUxMDUzZWVlMmUzOGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAxNiAwNToyNjo1MSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvbG9vbmdhcmNoL2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyM2NmYmVjZWJiZDc5YS4uYWYzNzZmYzQ0YzQ0MjggMTAwNjQ0XG4tLS0gYS9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG4rKysgYi9hcmNoL2xvb25nYXJjaC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5AQCAtMTYzLDcgKzE2Myw2IEBAIGVudW0gZW11bGF0aW9uX3Jlc3VsdCB7XG4gI2RlZmluZSBLVk1fTEFSQ0hfU1dDU1JfTEFURVNUXHQoMHgxIFx1MDAzY1x1MDAzYyAzKVxuICNkZWZpbmUgS1ZNX0xBUkNIX0hXQ1NSX1VTQUJMRVx0KDB4MSBcdTAwM2NcdTAwM2MgNClcbiBcbi0jZGVmaW5lIExPT05HQVJDSF9QVl9GRUFUX1VQREFURURcdEJJVF9VTEwoNjMpXG4gI2RlZmluZSBMT09OR0FSQ0hfUFZfRkVBVF9NQVNLXHRcdChCSVQoS1ZNX0ZFQVRVUkVfSVBJKSB8XHRcdFxcXG4gXHRcdFx0XHRcdCBCSVQoS1ZNX0ZFQVRVUkVfUFJFRU1QVCkgfFx0XFxcbiBcdFx0XHRcdFx0IEJJVChLVk1fRkVBVFVSRV9TVEVBTF9USU1FKSB8XHRcXFxuQEAgLTI1MCw2ICsyNDksOSBAQCBzdHJ1Y3Qga3ZtX3ZjcHVfYXJjaCB7XG4gXHQvKiBjcHVjZmcgKi9cbiBcdHUzMiBjcHVjZmdbS1ZNX01BWF9DUFVDRkdfUkVHU107XG4gXG4rXHQvKiBWQ1BVIHJhbiBhdCBsZWFzdCBvbmNlICovXG4rXHRib29sIHJhbl9hdGxlYXN0X29uY2U7XG4rXG4gXHQvKiBwYXJhdmlydCBzdGVhbCB0aW1lICovXG4gXHRzdHJ1Y3Qge1xuIFx0XHR1NjQgZ3Vlc3RfYWRkcjtcbmRpZmYgLS1naXQgYS9hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jIGIvYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY1xuaW5kZXggMjBjMjA3ZDgwZTMxYWUuLmNlNmExYjA2ZDUwZGI1IDEwMDY0NFxuLS0tIGEvYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY1xuKysrIGIvYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY1xuQEAgLTExNjQsMTEgKzExNjQsMTQgQEAgc3RhdGljIGludCBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHRcdGlmICh2YWwgXHUwMDI2IH52YWxpZClcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbi1cdFx0LyogQWxsIHZDUFVzIG5lZWQgc2V0IHRoZSBzYW1lIFBWIGZlYXR1cmVzICovXG4tXHRcdGlmICgoa3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXHUwMDI2IExPT05HQVJDSF9QVl9GRUFUX1VQREFURUQpXG4tXHRcdFx0XHRcdTAwMjZcdTAwMjYgKChrdm0tXHUwMDNlYXJjaC5wdl9mZWF0dXJlcyBcdTAwMjYgdmFsaWQpICE9IHZhbCkpXG4rXHRcdGlmICgoa3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgXHUwMDI2IHZhbGlkKSA9PSB2YWwpXG4rXHRcdFx0cmV0dXJuIDA7XG4rXG4rXHRcdGlmICh2Y3B1LVx1MDAzZWFyY2gucmFuX2F0bGVhc3Rfb25jZSlcbiBcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbi1cdFx0a3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgPSB2YWwgfCBMT09OR0FSQ0hfUFZfRkVBVF9VUERBVEVEO1xuK1xuK1x0XHQvKiBBbGwgdkNQVXMgbmVlZCBzZXQgdGhlIHNhbWUgUFYgZmVhdHVyZXMgKi9cbitcdFx0a3ZtLVx1MDAzZWFyY2gucHZfZmVhdHVyZXMgPSB2YWw7XG4gXHRcdHJldHVybiAwO1xuIFx0ZGVmYXVsdDpcbiBcdFx0cmV0dXJuIC1FTlhJTztcbkBAIC0xODUxLDYgKzE4NTQsMTAgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdGludCByID0gLUVJTlRSO1xuIFx0c3RydWN0IGt2bV9ydW4gKnJ1biA9IHZjcHUtXHUwMDNlcnVuO1xuIFxuK1x0LyogTWFyayB0aGlzIFZDUFUgcmFuIGF0IGxlYXN0IG9uY2UgKi9cbitcdGlmICghdmNwdS1cdTAwM2VhcmNoLnJhbl9hdGxlYXN0X29uY2UpXG4rXHRcdHZjcHUtXHUwMDNlYXJjaC5yYW5fYXRsZWFzdF9vbmNlID0gdHJ1ZTtcbitcbiBcdGlmICh2Y3B1LVx1MDAzZW1taW9fbmVlZGVkKSB7XG4gXHRcdGlmICghdmNwdS1cdTAwM2VtbWlvX2lzX3dyaXRlKVxuIFx0XHRcdGt2bV9jb21wbGV0ZV9tbWlvX3JlYWQodmNwdSwgcnVuKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDA1OjI2OjUzLjA3ODA1ODAxOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUzMTEwODYzNDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTG9vbmdBcmNoIEtWTSBNb2RpZmljYXRpb24gUmV2aWV3KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuY2AgYW5kIHRoZSBhc3NvY2lhdGVkIGhlYWRlci4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIGFkZGluZyBhIGByYW5fYXRsZWFzdF9vbmNlYCBib29sZWFuIHRvIHRoZSBga3ZtX3ZjcHVfYXJjaGAgc3RydWN0LiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHRvIGJlIGluIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAsIHdoaWNoIGlzIG5vdyBjaGVja2luZyB0aGlzIG5ldyBgcmFuX2F0bGVhc3Rfb25jZWAgZmxhZyBpbnN0ZWFkIG9mIHRoZSBvbGQgYExPT05HQVJDSF9QVl9GRUFUX1VQREFURURgIGNvbmRpdGlvbi4gVGhlbiBJIHNlZSB0aGF0IGBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bmAgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgYHJhbl9hdGxlYXN0X29uY2VgIHRvIHRydWUuXG5cblRoaXMgbG9va3MgbGlrZSBhIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uIHRvIHRoZSBMb29uZ0FyY2ggS1ZNIGltcGxlbWVudGF0aW9uLiBTbywgdGhlIGZpcnN0IHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhpcyBtZXJpdHMgZnV6emluZy4gQWJzb2x1dGVseS4gSXQncyB0b3VjaGluZyBLVk0gZnVuY3Rpb25hbGl0eSwgYW5kIHRoYXQncyBhbHdheXMgYSBnb29kIGNhbmRpZGF0ZS5cblxuTm93LCBhIGNyaXRpY2FsIHF1ZXN0aW9uIGFyaXNlczogQ2FuIHN5emthbGxlciBldmVuIGZ1enogTG9vbmdBcmNoIEtWTT8gSXQgdHlwaWNhbGx5IGZvY3VzZXMgb24geDg2IGFuZCBBUk02NC4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gTG9vbmdBcmNoIHN1cHBvcnQuXG5cbklmIHN5emthbGxlciBkb2VzIHN1cHBvcnQgaXQsIHRoZW4gSSBuZWVkIHRvIGNvbnNpZGVyIHdoZXRoZXIgdGhpcyBzcGVjaWZpYyBjaGFuZ2UgaXMgcmVhY2hhYmxlLiBUaGUgZG9jdW1lbnRhdGlvbiBzYXlzIHRvIGV4Y2x1ZGUgY29kZSBwYXRocyB0aGF0IGFyZW4ndCByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBzcGVjaWZpY2FsbHkgdGhvc2UgdGhhdCB1c2Ugc29mdHdhcmUgZW11bGF0ZWQgaGFyZHdhcmUuIExvb25nQXJjaCBLVk0gc2hvdWxkIGJlIHJlYWNoYWJsZSBpZiB3ZSBhcmUgcnVubmluZyBzeXprYWxsZXIgb24gTG9vbmdBcmNoLlxuXG5OZXh0LCBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBzcGVjaWFsIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBPYnZpb3VzbHksIGBDT05GSUdfS1ZNYCBpcyBuZWNlc3NhcnkuIEFyZSB0aGVyZSBzcGVjaWZpYyBMb29uZ0FyY2ggS1ZNIGNvbmZpZ3MgdGhhdCBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEkgbmVlZCB0byBmaW5kIG91dC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUxOSwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDA1OjI2OjU4LjM4OTE0NzIzNloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDU3OTY1MDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL2xvb25nYXJjaC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6MjY6NTguNTM0OTQ5ODU4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2MzYwMjgzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIExvb25nQXJjaCBLVk0gQ29kZSoqXG5cbk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGlzIGRlZmluaXRlbHkgYEtWTWAuIFRoZSBwcm9tcHQncyBrZXkgcGhyYXNlIGlzOiBcIlJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnMgY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLlwiIE15IGluaXRpYWwgdGhvdWdodCBpcywgaXMgTG9vbmdBcmNoIEtWTSByZWFjaGFibGUgaW4gZWl0aGVyIEdDRSBvciBRRU1VPyBUaGlzIGlzIHRoZSBjcnV4IG9mIHRoZSBkZWNpc2lvbi5cblxuSWYgd2UncmUgcnVubmluZyBzeXprYWxsZXIsIHRoZSBhbnN3ZXIgaXMgKnllcyouIFdlIGtub3cgd2UgY2FuIGZ1enogb24gTG9vbmdBcmNoIHdpdGggaXQuIEJ1dCwgSSBuZWVkIHRvIGNvbmZpcm0gc3l6a2FsbGVyJ3MgTG9vbmdBcmNoIHN1cHBvcnQuIEFuZCBvZiBjb3Vyc2UsIHN5emthbGxlciBydW5zIGFjcm9zcyBtYW55IGFyY2hpdGVjdHVyZXMgaW5jbHVkaW5nIHg4Nl82NCwgYXJtNjQsIHJpc2N2NjQsIGFuZCBzMzkweC4gKkRvZXMqIGl0IHN1cHBvcnQgTG9vbmdBcmNoPyBZZXMsIGl0IGRvZXMuIFNvLCBzaW5jZSBzeXprYWxsZXIgc3VwcG9ydHMgZnV6emluZyBMb29uZ0FyY2gsIHRoZSBjb2RlIGlzIGluZGVlZCB3b3J0aCBmdXp6aW5nLlxuXG5NeSBhdHRlbnRpb24gc2hpZnRzIHRvIHNwZWNpZmljIHN5bWJvbHMsIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAgYW5kIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bmAuIFRob3NlIGFyZSB0aGUgdHdvIEkgd2FudCB0byBzY3J1dGluaXplIGZ1cnRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzNTIsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MDMuMTk4NTU0OTMyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyOTExMjg0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvbG9vbmdhcmNoL2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYz0xMTMyPXN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF92Y3B1X2dldF9hdHRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTE1MC1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jOjExNTE6c3RhdGljIGludCBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy0xMTUyLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qga3ZtX2RldmljZV9hdHRyICphdHRyKVxcbi0tXFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYz0xMjE4PXN0YXRpYyBpbnQga3ZtX2xvb25nYXJjaF92Y3B1X3NldF9hdHRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIyNC1cXHRjYXNlIEtWTV9MT09OR0FSQ0hfVkNQVV9DUFVDRkc6XFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMjI1OlxcdFxcdHJldCA9IGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyKHZjcHUsIGF0dHIpO1xcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIyNi1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MDMuMjkxNDcyNjA2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDIzMjU0MzU2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBvbiBDUFUgQ29uZmlndXJhdGlvbiBpbiBMb29uZ0FyY2ggS1ZNKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IHRoZSBtb3N0IHJlbGV2YW50IHN5bWJvbHMgdG8gYW5hbHl6ZSBoZXJlLiBJIGJlbGlldmUgYGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyYCBpcyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQuIEl0IHNlZW1zIGxpa2UgaXQncyBhIHNwZWNpZmljIGZ1bmN0aW9uIGZvciBzZXR0aW5nIENQVSBjb25maWd1cmF0aW9ucyB3aXRoaW4gdGhlIExvb25nQXJjaCBLVk0gaW1wbGVtZW50YXRpb24uXG5cbkluaXRpYWxseSwgSSBjb25zaWRlcmVkIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bmAgYmVjYXVzZSBpdCdzIGEgdmVyeSBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9uIHdpdGhpbiBLVk0uIEJ1dCwgd2FpdCBhIG1pbnV0ZSwgdGhhdCBmdW5jdGlvbiBpcyB0aGUgKnByaW1hcnkqIGVudHJ5IHBvaW50IGZvciBgS1ZNX1JVTmAuIERlZmluaXRlbHkgYSBob3QgcGF0aCwgYnV0IHBlcmhhcHMgdG9vIGdlbmVyaWMgdG8gcHJvdmlkZSB0aGUgc3BlY2lmaWMgaW5zaWdodHMgSSdtIGxvb2tpbmcgZm9yIHJpZ2h0IG5vdy4gU28sIHNjcmF0Y2ggdGhhdC4gSSdtIGdvaW5nIHRvIHN0aWNrIHdpdGggYGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyYC5cblxuTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrLCB0aG91Z2guIEFyZSB0aGVyZSAqb3RoZXIqIGZ1bmN0aW9ucyBpbiB0aGUgTG9vbmdBcmNoLXNwZWNpZmljIGNvZGUgcmVsYXRlZCB0byBDUFUgY29uZmlndXJhdGlvbiBJIHNob3VsZCBiZSBhd2FyZSBvZj8gQWgsIHllcywgaGVyZSBpdCBpczogYGt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0cmAgaXMgYW5vdGhlciByZWxldmFudCBmdW5jdGlvbiB0aGF0IG1pZ2h0IGJlIHdvcnRoIGludmVzdGlnYXRpbmcgYWxvbmdzaWRlIGBrdm1fbG9vbmdhcmNoX2NwdWNmZ19zZXRfYXR0cmAuIEdvb2QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxOTAsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MDcuNTI0MDE5MDI1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5MTkyNTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0clwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL2xvb25nYXJjaC9rdm0vXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9MTE4MT1zdGF0aWMgaW50IGt2bV9sb29uZ2FyY2hfcHZ0aW1lX3NldF9hdHRyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIxNy1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jOjEyMTg6c3RhdGljIGludCBrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTIxOS1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IGt2bV9kZXZpY2VfYXR0ciAqYXR0cilcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmM9MTIzNz1sb25nIGt2bV9hcmNoX3ZjcHVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTEyOTgtXFx0XFx0XFx0YnJlYWs7XFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzoxMjk5OlxcdFxcdHIgPSBrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHIodmNwdSwgXFx1MDAyNmF0dHIpO1xcbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtMTMwMC1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MDcuNTkzMjE2MTNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzE3MzU5ODMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgcXVpY2sgcnVuZG93biBvZiB0aGVzZSBpbml0aWFsIHRob3VnaHRzLCBrZWVwaW5nIGluIG1pbmQgbXkgb3duIGV4cGVydCBwZXJzcGVjdGl2ZS5cblxuKipJbml0aWFsIEFzc2Vzc21lbnQ6IEtWTSBhbmQgTG9vbmdBcmNoIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBzbyBteSBmaXJzdCB0aG91Z2h0IGlzIHRoYXQgYGt2bV9sb29uZ2FyY2hfY3B1Y2ZnX3NldF9hdHRyYCBhbmQgYGt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0cmAgc2VlbSBsaWtlIHNvbGlkIHN0YXJ0aW5nIHBvaW50cy4gTGV0J3MgbWFrZSBzdXJlIHdlIGhhdmUgZXZlcnl0aGluZyBpbiBwbGFjZSB0byBzdXBwb3J0IHRoaXMuIEkgaW1tZWRpYXRlbHkgdGhpbmsgdG8gY2hlY2sgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25zLiBPZiBjb3Vyc2UsIGBLVk1gIGl0c2VsZiBpcyBmdW5kYW1lbnRhbCDigJMgdGhhdCdzIGEgZ2l2ZW4uIEJ1dCBJIGtub3cgZnJvbSBleHBlcmllbmNlIHRoYXQgdGhlcmUgYXJlIG9mdGVuIG90aGVyIGRlcGVuZGVuY2llcyBvciBzcGVjaWZpYyBhcmNoaXRlY3R1cmFsIGZlYXR1cmVzIHRoYXQgbmVlZCBlbmFibGluZy4gSSdsbCBuZWVkIHRvIGRyaWxsIGRvd24gZGVlcGVyIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBtaXNzIGFueXRoaW5nLiBUaGVyZWZvcmUsIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIHNjcnV0aW5pemUgdGhlIGBhcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHdoZXJlIGFsbCB0aGUgZGV0YWlsZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBMb29uZ0FyY2ggS1ZNIHNob3VsZCByZXNpZGUsIGFuZCB0aGF0J3Mgd2hlcmUgSSdsbCBmaW5kIHdoYXQgSSdtIGxvb2tpbmcgZm9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTMyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMDU6Mjc6MTAuOTEwNTc4NDcxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTAwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJhcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIEtWTSBjb25maWd1cmF0aW9uXFxuICAgNDpcXHQjXFxuICAgNTpcXHRcXG4gICA2OlxcdHNvdXJjZSBcXFwidmlydC9rdm0vS2NvbmZpZ1xcXCJcXG4gICA3OlxcdFxcbiAgIDg6XFx0bWVudWNvbmZpZyBWSVJUVUFMSVpBVElPTlxcbiAgIDk6XFx0XFx0Ym9vbCBcXFwiVmlydHVhbGl6YXRpb25cXFwiXFxuICAxMDpcXHRcXHRoZWxwXFxuICAxMTpcXHRcXHQgIFNheSBZIGhlcmUgdG8gZ2V0IHRvIHNlZSBvcHRpb25zIGZvciB1c2luZyB5b3VyIExpbnV4IGhvc3QgdG8gcnVuXFxuICAxMjpcXHRcXHQgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGluc2lkZSB2aXJ0dWFsIG1hY2hpbmVzIChndWVzdHMpLlxcbiAgMTM6XFx0XFx0ICBUaGlzIG9wdGlvbiBhbG9uZSBkb2VzIG5vdCBhZGQgYW55IGtlcm5lbCBjb2RlLlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIElmIHlvdSBzYXkgTiwgYWxsIG9wdGlvbnMgaW4gdGhpcyBzdWJtZW51IHdpbGwgYmUgc2tpcHBlZCBhbmRcXG4gIDE2OlxcdFxcdCAgZGlzYWJsZWQuXFxuICAxNzpcXHRcXG4gIDE4OlxcdGlmIFZJUlRVQUxJWkFUSU9OXFxuICAxOTpcXHRcXG4gIDIwOlxcdGNvbmZpZyBLVk1cXG4gIDIxOlxcdFxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuICAyMjpcXHRcXHRkZXBlbmRzIG9uIEFTX0hBU19MVlpfRVhURU5TSU9OIFxcdTAwMjZcXHUwMDI2IDY0QklUXFxuICAyMzpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fRElSVFlfUklOR19BQ1FfUkVMXFxuICAyNDpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fSVJRX1JPVVRJTkdcXG4gIDI1OlxcdFxcdHNlbGVjdCBIQVZFX0tWTV9JUlFDSElQXFxuICAyNjpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fTVNJXFxuICAyNzpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fUkVBRE9OTFlfTUVNXFxuICAyODpcXHRcXHRzZWxlY3QgS1ZNX0NPTU1PTlxcbiAgMjk6XFx0XFx0c2VsZWN0IEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbiAgMzA6XFx0XFx0c2VsZWN0IEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXFxuICAzMTpcXHRcXHRzZWxlY3QgS1ZNX01NSU9cXG4gIDMyOlxcdFxcdHNlbGVjdCBWSVJUX1hGRVJfVE9fR1VFU1RfV09SS1xcbiAgMzM6XFx0XFx0c2VsZWN0IFNDSEVEX0lORk9cXG4gIDM0OlxcdFxcdHNlbGVjdCBHVUVTVF9QRVJGX0VWRU5UUyBpZiBQRVJGX0VWRU5UU1xcbiAgMzU6XFx0XFx0aGVscFxcbiAgMzY6XFx0XFx0ICBTdXBwb3J0IGhvc3RpbmcgdmlydHVhbGl6ZWQgZ3Vlc3QgbWFjaGluZXMgdXNpbmdcXG4gIDM3OlxcdFxcdCAgaGFyZHdhcmUgdmlydHVhbGl6YXRpb24gZXh0ZW5zaW9ucy4gWW91IHdpbGwgbmVlZFxcbiAgMzg6XFx0XFx0ICBhIHByb2Nlc3NvciBlcXVpcHBlZCB3aXRoIHZpcnR1YWxpemF0aW9uIGV4dGVuc2lvbnMuXFxuICAzOTpcXHRcXG4gIDQwOlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDQxOlxcdFxcbiAgNDI6XFx0ZW5kaWYgIyBWSVJUVUFMSVpBVElPTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQwNToyNzoxMC45MTA3MDE2MjFaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA1NDE2ODQ4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciBUaGlzIEtWTSBQYXRjaCoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcywgaXQgc2VlbXMgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBib2lscyBkb3duIHRvIGp1c3QgYEtWTWAuIFRoYXQncyB0aGUga2V5IG1vZHVsZS4gSSdsbCBmbGFnIGBXb3J0aEZ1enppbmdgIGFzIGB0cnVlYCBiZWNhdXNlIHRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBhdHRlbnRpb24uIE15IGludHVpdGlvbiBpcyB0ZWxsaW5nIG1lIHRoaXMgaXMgYSBnb29kIGNhbmRpZGF0ZSwgZ2l2ZW4gdGhlIGZ1bmN0aW9uYWwgbmF0dXJlIG9mIHRoZSBjaGFuZ2UuXG5cbk5vdywgZm9yIGBGb2N1c1N5bWJvbHNgLCBJJ2xsIHRhcmdldCBgW1wia3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJcIiwgXCJrdm1fbG9vbmdhcmNoX3ZjcHVfc2V0X2F0dHJcIl1gLiBUaGVzZSBhcmUgdGhlIGZ1bmN0aW9ucyBkaXJlY3RseSBpbnZvbHZlZCBpbiBzZXR0aW5nIHRoZSBWQ1BVIGF0dHJpYnV0ZXMsIGFuZCwgZ2l2ZW4gdGhlIHBhdGNoJ3MgZGVzY3JpcHRpb24sIHRob3NlIGFyZSB0aGUgZnVuY3Rpb25zIHRoYXQgd2VyZSBtb2RpZmllZCBpbiB0aGUgcGF0Y2guXG5cbkkgd2lsbCBzZXQgYEVuYWJsZUNvbmZpZ3NgIHRvIGBbXCJLVk1cIl1gLCBtYWtpbmcgc3VyZSB0byBvbmx5IGVuYWJsZSB0aGlzIGNvbmZpZ3VyYXRpb24uXG5cbkFuZCBmaW5hbGx5LCBmb3IgYFJlYXNvbmluZ2AsIEknbGwgYXJ0aWN1bGF0ZSB0aGlzIGNsZWFybHk6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIExvb25nQXJjaCBLVk0gVkNQVSBhdHRyaWJ1dGUgc2V0dGluZyBsb2dpYyB0byBwcmV2ZW50IGNoYW5naW5nIFBWIGZlYXR1cmVzIGFmdGVyIHRoZSBWQ1BVIGhhcyBydW4gYXQgbGVhc3Qgb25jZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIgVGhpcyBpcyB0aGUgY29yZSBvZiB0aGUgcmVhc29uaW5nIGFuZCBzZXRzIHRoZSBzdGFnZSBmb3IgdGhlIGZ1enppbmcsIGdpdmVuIHRoZSBjaGFuZ2UgaW4gUFYgZmVhdHVyZSBiZWhhdmlvci5cblxuXG4iLCJJbnB1dFRva2VucyI6NTgyMCwiT3V0cHV0VG9rZW5zIjoxMTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQwNToyNzoxNC45NjQ4NzE2NFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NDYwMTU2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJcIixcbiAgICBcImt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0clwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIExvb25nQXJjaCBLVk0gVkNQVSBhdHRyaWJ1dGUgc2V0dGluZyBsb2dpYyB0byBwcmV2ZW50IGNoYW5naW5nIFBWIGZlYXR1cmVzIGFmdGVyIHRoZSBWQ1BVIGhhcyBydW4gYXQgbGVhc3Qgb25jZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX2xvb25nYXJjaF9jcHVjZmdfc2V0X2F0dHJcIixcbiAgICBcImt2bV9sb29uZ2FyY2hfdmNwdV9zZXRfYXR0clwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIExvb25nQXJjaCBLVk0gVkNQVSBhdHRyaWJ1dGUgc2V0dGluZyBsb2dpYyB0byBwcmV2ZW50IGNoYW5naW5nIFBWIGZlYXR1cmVzIGFmdGVyIHRoZSBWQ1BVIGhhcyBydW4gYXQgbGVhc3Qgb25jZS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIEtWTSB0aGF0IGNhbiBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[1] Phase: Succeeded StartedAt: 2026-07-16 05:27:58 +0000 UTC FinishedAt: 2026-07-16 05:27:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-16 05:27:58 +0000 UTC FinishedAt: 2026-07-16 05:27:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2] Phase: Succeeded StartedAt: 2026-07-16 05:27:58 +0000 UTC FinishedAt: 2026-07-16 06:56:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-16 05:27:58 +0000 UTC FinishedAt: 2026-07-16 06:56:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-16 05:27:58 +0000 UTC FinishedAt: 2026-07-16 05:28:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-16 05:27:58 +0000 UTC FinishedAt: 2026-07-16 05:28:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowfsm7v/series-workflowfsm7v-convert-artifact-4274441003/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-16 05:28:20 +0000 UTC FinishedAt: 2026-07-16 06:11:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-16 05:28:20 +0000 UTC FinishedAt: 2026-07-16 06:11:35 +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:*d9d540c2-0d38-4957-a449-186b450e97a1,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-workflowfsm7v/series-workflowfsm7v-convert-artifact-4274441003/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": "77999b68-4601-4bc3-bb14-a82fc949f499", "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-workflowfsm7v/series-workflowfsm7v-build-action-1058692137/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-16 05:28:20 +0000 UTC FinishedAt: 2026-07-16 06:10:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d9d540c2-0d38-4957-a449-186b450e97a1,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-workflowfsm7v/series-workflowfsm7v-convert-artifact-4274441003/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": "77999b68-4601-4bc3-bb14-a82fc949f499", "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-workflowfsm7v/series-workflowfsm7v-build-action-1058692137/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-16 06:11:35 +0000 UTC FinishedAt: 2026-07-16 06:11:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-16 06:11:35 +0000 UTC FinishedAt: 2026-07-16 06:11:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-16 06:11:35 +0000 UTC FinishedAt: 2026-07-16 06:11:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-16 06:11:35 +0000 UTC FinishedAt: 2026-07-16 06:11:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowfsm7v/series-workflowfsm7v-convert-artifact-383553794/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-16 06:11:50 +0000 UTC FinishedAt: 2026-07-16 06:13:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-16 06:11:50 +0000 UTC FinishedAt: 2026-07-16 06:13:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*77999b68-4601-4bc3-bb14-a82fc949f499,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-workflowfsm7v/series-workflowfsm7v-build-action-1058692137/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-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-16 06:13:56 +0000 UTC FinishedAt: 2026-07-16 06:13:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-16 06:13:56 +0000 UTC FinishedAt: 2026-07-16 06:13:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-16 06:13:56 +0000 UTC FinishedAt: 2026-07-16 06:51:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-16 06:13:56 +0000 UTC FinishedAt: 2026-07-16 06:51:23 +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:*d9d540c2-0d38-4957-a449-186b450e97a1,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-workflowfsm7v/series-workflowfsm7v-convert-artifact-383553794/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": "68888cc7-7239-4e3c-8c04-afd23065cf3e", "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-workflowfsm7v/series-workflowfsm7v-build-action-1544584022/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-16 06:13:56 +0000 UTC FinishedAt: 2026-07-16 06:51:13 +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:*d9d540c2-0d38-4957-a449-186b450e97a1,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-workflowfsm7v/series-workflowfsm7v-convert-artifact-383553794/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": "68888cc7-7239-4e3c-8c04-afd23065cf3e", "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-workflowfsm7v/series-workflowfsm7v-build-action-1544584022/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-16 06:51:23 +0000 UTC FinishedAt: 2026-07-16 06:51:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-16 06:51:23 +0000 UTC FinishedAt: 2026-07-16 06:51:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-16 06:51:23 +0000 UTC FinishedAt: 2026-07-16 06:53:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-16 06:51:23 +0000 UTC FinishedAt: 2026-07-16 06:53:04 +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:*68888cc7-7239-4e3c-8c04-afd23065cf3e,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-workflowfsm7v/series-workflowfsm7v-build-action-1544584022/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-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-16 06:53:14 +0000 UTC FinishedAt: 2026-07-16 06:56:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-16 06:53:14 +0000 UTC FinishedAt: 2026-07-16 06:56:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"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:*77999b68-4601-4bc3-bb14-a82fc949f499,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*68888cc7-7239-4e3c-8c04-afd23065cf3e,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-workflowfsm7v/series-workflowfsm7v-build-action-1058692137/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-workflowfsm7v/series-workflowfsm7v-build-action-1544584022/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-16 06:53:14 +0000 UTC FinishedAt: 2026-07-16 06:53:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-16 06:53:14 +0000 UTC FinishedAt: 2026-07-16 06:53:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"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-workflowfsm7v/series-workflowfsm7v-convert-artifact-3677495095/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-16 06:53:14 +0000 UTC FinishedAt: 2026-07-16 06:53:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-16 06:53:14 +0000 UTC FinishedAt: 2026-07-16 06:53:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-16 06:53:14 +0000 UTC FinishedAt: 2026-07-16 06:53:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-16 06:53:24 +0000 UTC FinishedAt: 2026-07-16 06:56:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfsm7v[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_loongarch_cpucfg_set_attr","kvm_loongarch_vcpu_set_attr"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a13c140cc289c0b7b3770bce5b3ad42ab35074aa","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"3e641585-058d-42bc-ba44-3914d0584186","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-16 06:53:24 +0000 UTC FinishedAt: 2026-07-16 06:55:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*77999b68-4601-4bc3-bb14-a82fc949f499,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*68888cc7-7239-4e3c-8c04-afd23065cf3e,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-workflowfsm7v/series-workflowfsm7v-build-action-1058692137/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-workflowfsm7v/series-workflowfsm7v-build-action-1544584022/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-workflowfsm7v/series-workflowfsm7v-convert-artifact-3677495095/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,}