Name: series-workflowzlqq8 Phase: Succeeded StartedAt: 2026-08-19 03:56:07 +0000 UTC FinishedAt: 2026-08-19 07:38:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[0] Phase: Succeeded StartedAt: 2026-08-19 03:56:07 +0000 UTC FinishedAt: 2026-08-19 03:59:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[0].run-triage Phase: Succeeded StartedAt: 2026-08-19 03:56:07 +0000 UTC FinishedAt: 2026-08-19 03:59:53 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "1b731e5ded480bd1e5546aed35584238661ce72e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM", "KVM_INTEL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "1b731e5ded480bd1e5546aed35584238661ce72e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM", "KVM_INTEL" ], "series_id": "a16af01a-0103-4ae9-b992-3f40b0988c79" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_arch_vcpu_ioctl_set_mpstate", "vmx_clear_hlt" ], "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+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlJiMzNDssCiAgICAmIzM0O3ZteF9jbGVhcl9obHQmIzM0OwogIF0sCiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGBjbGVhcl9obHRgIG9wZXJhdGlvbiB0byBga3ZtX3g4Nl9vcHNgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSBvZiBhIHZDUFUgd2hlbiB1c2Vyc3BhY2Ugc2V0cyBpdHMgbXVsdGlwcm9jZXNzaW5nIHN0YXRlIHRvIGBLVk1fTVBfU1RBVEVfUlVOTkFCTEVgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGZpeCBmb3IgS1ZNL1ZNWC4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBtZW1vcnkgYWxsb2NhdGlvbnMsIG9yIGRhdGEgY29waWVkIHRvIHVzZXIgc3BhY2UuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzIGFyZSBzdWZmaWNpZW50IGZvciB0aGlzIGNvZGUuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIEtWTSB2Q1BVIHN0YXRlIG1hbmFnZW1lbnQgYnkgYWRkaW5nIGEgbmV3IGNsZWFyX2hsdCBvcGVyYXRpb24gdG8ga3ZtX3g4Nl9vcHMgYW5kIGNhbGxpbmcgaXQgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBLVk1fTVBfU1RBVEVfUlVOTkFCTEUuIFRoaXMgZm9yY2VzIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBpbmFjdGl2ZSBzdGF0ZSAobGlrZSBWTVgmIzM5O3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwMzo1ODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI3ZWZhNTNlNDMwZTgxZjk3OWI3NGU2MzYxM2RlZGVlMjliODA3MGFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAxOSAwMzo1ODowMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbkBAIC04Miw2ICYjNDM7ODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKVxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChnZXRfbm1pX21hc2spXG4gS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spXG4mIzQzO0tWTV9YODZfT1BfT1BUSU9OQUwoY2xlYXJfaGx0KVxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXG4gS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdylcbiBLVk1fWDg2X09QX09QVElPTkFMKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KVxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuQEAgLTE2MDcsNiAmIzQzOzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcbiBcdGludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gXHRib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkL2luYWN0aXZlIHN0YXRlIHNvXG4mIzQzO1x0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cbiYjNDM7XHQgKiBPbmx5IG5lZWRlZCBieSBWTVgsIHdoZXJlIFZNQ1MuR1VFU1RfQUNUSVZJVFlfU1RBVEUgcGVyc2lzdHMgYWNyb3NzXG4mIzQzO1x0ICogVk0tRXhpdC9WTS1FbnRlcjsgU1ZNIGhhcyBubyBlcXVpdmFsZW50IFZNQ0IgZmllbGQuXG4mIzQzO1x0ICovXG4mIzQzO1x0dm9pZCAoKmNsZWFyX2hsdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cbiBcdGJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHQvKlxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbkBAIC02MDEsNiAmIzQzOzYwMSwxOCBAQCBzdGF0aWMgdm9pZCB2dF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZClcbiBcdHZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4mIzQzO3tcbiYjNDM7XHQvKlxuJiM0MztcdCAqIFREWCBkb2VzbiYjMzk7dCBzdXBwb3J0IGRpc2FibGluZyBITFQtZXhpdGluZywgYW5kIEtWTSBjYW4mIzM5O3QgYWNjZXNzIGFcbiYjNDM7XHQgKiBURCYjMzk7cyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cbkBAIC05NjQsNiAmIzQzOzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXHQubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksXG4gXHQuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSxcbiBcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxuJiM0MztcdC5jbGVhcl9obHQgPSB2dF9vcChjbGVhcl9obHQpLFxuIFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxuIFx0LmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLFxuIFx0LnVwZGF0ZV9jcjhfaW50ZXJjZXB0ID0gdnRfb3AodXBkYXRlX2NyOF9pbnRlcmNlcHQpLFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTE5MDksNyAmIzQzOzE5MDksNyBAQCBpbnQgdm14X3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0cmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qXG4gXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJiMzOTt0IG5lZWQgdG9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5pbmRleCBjZGIzOGQ5NDBjZmI3Li40NWU0N2Y1MDJhMzcwIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5AQCAtOTUsNiAmIzQzOzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gYm9vbCB2bXhfZ2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjc3NzdjZjg4YTk2YjAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTkwNTgsNiAmIzQzOzkwNTgsMTkgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuIFx0fVxuIFxuIFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cdTAwM2VtcF9zdGF0ZSk7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlLCBlLmcuIFZNWCYjMzk7c1xuJiM0MztcdCAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVC4gIFRoYXQgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxuJiM0MztcdCAqIFZNLUVudGVyIGFuZCBpcyBub3QgdG91Y2hlZCBieSBhbnkgb3RoZXIgaW9jdGwsIHNvIGEgdkNQVSB0aGF0IGhhbHRlZFxuJiM0MztcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgKEtWTV9YODZfRElTQUJMRV9FWElUU19ITFQpIHN0YXlzIHdlZGdlZFxuJiM0MztcdCAqIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIGRlY2xhcmVzIGl0IFJVTk5BQkxFIGFuZCByZXdyaXRlcyBpdHMgcmVnaXN0ZXJzLFxuJiM0MztcdCAqIGUuZy4gd2hlbiBhIFZNTSBlbXVsYXRlcyBhIG1hY2hpbmUgcmVzZXQuICBXYWtpbmcgZnJvbSBITFQgaXNcbiYjNDM7XHQgKiBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMgYWx3YXlzIHNhZmUuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKHZjcHUtXHUwMDNlYXJjaC5tcF9zdGF0ZSA9PSBLVk1fTVBfU1RBVEVfUlVOTkFCTEUpXG4mIzQzO1x0XHRrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KTtcbiYjNDM7XG4gXHRrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpO1xuIFxuIFx0cmV0ID0gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwMzo1ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDssCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywKICAgICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJiMzOTtzIEhMVCBzdGF0ZSksIGZpeGluZyBhIGJ1ZyB3aGVyZSBhIHZDUFUgY291bGQgc3RheSB3ZWRnZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyN2VmYTUzZTQzMGU4MWY5NzliNzRlNjM2MTNkZWRlZTI5YjgwNzBhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBBdWcgMTkgMDM6NTg6MDIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaAppbmRleCBlMjEzYzlhZTNlMzAxLi5kZDkwMjZjMTA3MWNlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmgKQEAgLTgyLDYgJiM0Mzs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpCiBLVk1fWDg2X09QKG5taV9hbGxvd2VkKQogS1ZNX1g4Nl9PUChnZXRfbm1pX21hc2spCiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaykKJiM0MztLVk1fWDg2X09QX09QVElPTkFMKGNsZWFyX2hsdCkKIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpCiBLVk1fWDg2X09QKGVuYWJsZV9pcnFfd2luZG93KQogS1ZNX1g4Nl9PUF9PUFRJT05BTCh1cGRhdGVfY3I4X2ludGVyY2VwdCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmluZGV4IDI4Mzg0NzYxOWZmODguLmU1YTA3NTg1MzZlMTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaApAQCAtMTYwNyw2ICYjNDM7MTYwNywxMyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMgewogCWludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7CiAJYm9vbCAoKmdldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIAl2b2lkICgqc2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTsKJiM0MzsJLyoKJiM0MzsJICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZC9pbmFjdGl2ZSBzdGF0ZSBzbwomIzQzOwkgKiB0aGF0IGl0IHdpbGwgZmV0Y2ggYW5kIGV4ZWN1dGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBuZXh0IFZNLUVudGVyLgomIzQzOwkgKiBPbmx5IG5lZWRlZCBieSBWTVgsIHdoZXJlIFZNQ1MuR1VFU1RfQUNUSVZJVFlfU1RBVEUgcGVyc2lzdHMgYWNyb3NzCiYjNDM7CSAqIFZNLUV4aXQvVk0tRW50ZXI7IFNWTSBoYXMgbm8gZXF1aXZhbGVudCBWTUNCIGZpZWxkLgomIzQzOwkgKi8KJiM0MzsJdm9pZCAoKmNsZWFyX2hsdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIAkvKiBXaGV0aGVyIG9yIG5vdCBhIHZpcnR1YWwgTk1JIGlzIHBlbmRpbmcgaW4gaGFyZHdhcmUuICovCiAJYm9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIAkvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uYwppbmRleCAwZmYzMjMwZmQ5NWU4Li43NGNlOWRkNzA0MTkxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uYwpAQCAtNjAxLDYgJiM0Mzs2MDEsMTggQEAgc3RhdGljIHZvaWQgdnRfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpCiAJdm14X3NldF9ubWlfbWFzayh2Y3B1LCBtYXNrZWQpOwogfQogCiYjNDM7c3RhdGljIHZvaWQgdnRfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKJiM0Mzt7CiYjNDM7CS8qCiYjNDM7CSAqIFREWCBkb2VzbiYjMzk7dCBzdXBwb3J0IGRpc2FibGluZyBITFQtZXhpdGluZywgYW5kIEtWTSBjYW4mIzM5O3QgYWNjZXNzIGEKJiM0MzsJICogVEQmIzM5O3MgVk1DUywgc28gdGhlcmUgaXMgbmV2ZXIgYW55IGhhcmR3YXJlIGhhbHRlZCBzdGF0ZSB0byBjbGVhci4KJiM0MzsJICovCiYjNDM7CWlmIChpc190ZF92Y3B1KHZjcHUpKQomIzQzOwkJcmV0dXJuOwomIzQzOwomIzQzOwl2bXhfY2xlYXJfaGx0KHZjcHUpOwomIzQzO30KJiM0MzsKIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAkvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi8KQEAgLTk2NCw2ICYjNDM7OTc2LDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHsKIAkubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksCiAJLmdldF9ubWlfbWFzayA9IHZ0X29wKGdldF9ubWlfbWFzayksCiAJLnNldF9ubWlfbWFzayA9IHZ0X29wKHNldF9ubWlfbWFzayksCiYjNDM7CS5jbGVhcl9obHQgPSB2dF9vcChjbGVhcl9obHQpLAogCS5lbmFibGVfbm1pX3dpbmRvdyA9IHZ0X29wKGVuYWJsZV9ubWlfd2luZG93KSwKIAkuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksCiAJLnVwZGF0ZV9jcjhfaW50ZXJjZXB0ID0gdnRfb3AodXBkYXRlX2NyOF9pbnRlcmNlcHQpLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmMKaW5kZXggZTNiZmU2YWNhMWEwZS4uOGFkNzljNjBlY2M2ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCkBAIC0xOTA5LDcgJiM0MzsxOTA5LDcgQEAgaW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlyZXR1cm4gc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbih2Y3B1KTsKIH0KIAotc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAkvKgogCSAqIEVuc3VyZSB0aGF0IHdlIGNsZWFyIHRoZSBITFQgc3RhdGUgaW4gdGhlIFZNQ1MuICBXZSBkb24mIzM5O3QgbmVlZCB0bwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmggYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaAppbmRleCBjZGIzOGQ5NDBjZmI3Li40NWU0N2Y1MDJhMzcwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaApAQCAtOTUsNiAmIzQzOzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7CiBpbnQgdm14X25taV9hbGxvd2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTsKIGJvb2wgdm14X2dldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpOwomIzQzO3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF91cGRhdGVfY3I4X2ludGVyY2VwdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCB0cHIsIGludCBpcnIpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IGQ5NGI1OTE0MGM0NTIuLjc3NzdjZjg4YTk2YjAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTkwNTgsNiAmIzQzOzkwNTgsMTkgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCX0KIAogCWt2bV9zZXRfbXBfc3RhdGUodmNwdSwgbXBfc3RhdGUtJmd0O21wX3N0YXRlKTsKJiM0MzsKJiM0MzsJLyoKJiM0MzsJICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlLCBlLmcuIFZNWCYjMzk7cwomIzQzOwkgKiBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQuICBUaGF0IHN0YXRlIGlzIHN0aWNreSBhY3Jvc3MgVk0tRXhpdCBhbmQKJiM0MzsJICogVk0tRW50ZXIgYW5kIGlzIG5vdCB0b3VjaGVkIGJ5IGFueSBvdGhlciBpb2N0bCwgc28gYSB2Q1BVIHRoYXQgaGFsdGVkCiYjNDM7CSAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgKEtWTV9YODZfRElTQUJMRV9FWElUU19ITFQpIHN0YXlzIHdlZGdlZAomIzQzOwkgKiBldmVuIGFmdGVyIHVzZXJzcGFjZSBkZWNsYXJlcyBpdCBSVU5OQUJMRSBhbmQgcmV3cml0ZXMgaXRzIHJlZ2lzdGVycywKJiM0MzsJICogZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tIEhMVCBpcwomIzQzOwkgKiBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMgYWx3YXlzIHNhZmUuCiYjNDM7CSAqLwomIzQzOwlpZiAodmNwdS0mZ3Q7YXJjaC5tcF9zdGF0ZSA9PSBLVk1fTVBfU1RBVEVfUlVOTkFCTEUpCiYjNDM7CQlrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KTsKJiM0MzsKIAlrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpOwogCiAJcmV0ID0gMDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkyMgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDQ5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEhMVCBDbGVhcmluZyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IGludHJvZHVjZXMgYSBgY2xlYXJfaGx0YCBvcGVyYXRpb24gdG8gdGhlIGBrdm1feDg2X29wc2Agc3RydWN0dXJlLiBJdCYjMzk7cyBpbXBsZW1lbnRlZCBmb3IgVk1YLCBhbmQgVERYLCB3aGljaCBqdXN0IHJldHVybnMgKGxpa2VseSBiZWNhdXNlIFREWCBoYW5kbGVzIHRoaXMgZGlmZmVyZW50bHkgYXQgYSBsb3dlciBsZXZlbCkuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHRvIGNhbGwgYGt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpYCB3aGVuZXZlciB0aGUgdkNQVSYjMzk7cyBNUCBzdGF0ZSBpcyBzZXQgdG8gYEtWTV9NUF9TVEFURV9SVU5OQUJMRWAuIExldCYjMzk7cyBicmVhayBkb3duIGlmIGl0JiMzOTtzIHJlYWNoYWJsZSBhbmQgYWN0dWFsbHkgZnVuY3Rpb25hbC4KClJpZ2h0LCBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaGFuZGxlcyB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsIG9uIGEgdkNQVS4gVGhhdCBtZWFucyBpdCYjMzk7cyBkZWZpbml0ZWx5IGFjY2Vzc2libGUgZnJvbSB1c2Vyc3BhY2Ug4oCTIHRvb2xzIGxpa2Ugc3l6a2FsbGVyIGNhbiBkaXJlY3RseSB0cmlnZ2VyIHRoaXMsIHNvIHRoYXQmIzM5O3MgZ29vZC4gVGhlIGludGVudCBoZXJlIGlzIHRvIGZpeCBhIHByZXR0eSBuYXN0eSBidWcgd2hlcmUgYSB2Q1BVIHRoYXQgaGFsdGVkIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgd291bGQgZ2V0IHN0dWNrIGV2ZW4gaWYgdXNlcnNwYWNlIHNldHMgaXQgdG8gUlVOTkFCTEUuIFRoaXMgcGF0Y2ggc2hvdWxkIGNsZWFyIHRoZSBITFQgc3RhdGUgaW4gdGhlIFZNQ1MuCgpOb3csIHRoZSBjb2RlLiBJdCYjMzk7cyBpbiBgYXJjaC94ODYva3ZtL3g4Ni5jYC4gVGhlIG5ldyBjb2RlIHRoYXQgdGhlIHBhdGNoIGFkZGVkIGxvb2tzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6CgpgYGBjCglpZiAodmNwdS0mZ3Q7YXJjaC5tcF9zdGF0ZSA9PSBLVk1fTVBfU1RBVEVfUlVOTkFCTEUpCgkJa3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7CmBgYAoKSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZTsgaXQmIzM5O3MgZ29pbmcgdG8gY2xlYXIgdGhlIEhMVCBzdGF0ZSB3aXRoaW4gdGhlIFZNQ1MuIFNlZW1zIHJlYXNvbmFibGUuIE5vdywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyBBYnNvbHV0ZWx5LCBiZWNhdXNlIHRoaXMgaXMgZGVhbGluZyB3aXRoIEtWTSB2Q1BVIHN0YXRlIG1hbmFnZW1lbnQuCgpXaGVyZSBkbyBJIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cz8gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGlzIGEgcHJpbWUgY2FuZGlkYXRlLiBUaGVuLCBvZiBjb3Vyc2UsIHRoZSBhY3R1YWwgYHZ0X2NsZWFyX2hsdGAgYW5kIGB2bXhfY2xlYXJfaGx0YCBmdW5jdGlvbnMgdGhhdCBkbyB0aGUgaGVhdnkgbGlmdGluZyBhcmUgYWxzbyBjcml0aWNhbC4gTGV0JiMzOTtzIHNlZS4uLiBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaXMgYW4gQVBJIGVudHJ5cG9pbnQuIEFuZCBub3cgYHZ0X2NsZWFyX2hsdGAgaXMgc3RhdGljLCB3aGljaCBjYW4gY29tcGxpY2F0ZSBkaXJlY3QgZnV6emluZywgYnV0IGB2bXhfY2xlYXJfaGx0YCBpc24mIzM5O3QuIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgdG8gY2hlY2sgaG93IHRoZSBzdGF0aWMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIHJlbGF0aW9uIHRvIHRoZSB2bXggZnVuY3Rpb24uIEkgd2lsbCB1c2UgYGdyZXBwZXJgIG9uIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjb25maXJtIGl0cyBjYWxsIGdyYXBoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2FybTY0L2t2bS9hcm0uYz03ODY9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvYXJtNjQva3ZtL2FybS5jLTc5My1cbmFyY2gvYXJtNjQva3ZtL2FybS5jOjc5NDppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL2FybTY0L2t2bS9hcm0uYy03OTUtXHRcdFx0XHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXG4tLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYz00Njc9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtNDc0LVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzo0NzU6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy00NzYtXHRcdFx0XHRzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5hcmNoL21pcHMva3ZtL21pcHMuYz01MTU9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvbWlwcy9rdm0vbWlwcy5jLTUyMC1cbmFyY2gvbWlwcy9rdm0vbWlwcy5jOjUyMTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL21pcHMva3ZtL21pcHMuYy01MjItXHRcdFx0XHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmM9MjAxMz1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmMtMjAxOC1cbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jOjIwMTk6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmMtMjAyMC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmM9NDk2PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmMtNTAzLVxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jOjUwNDppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmMtNTA1LVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYz00MjYxPWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDI3NS1cbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYzo0Mjc2OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYy00Mjc3LVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05MDAwPWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTAyNS1cbmFyY2gveDg2L2t2bS94ODYuYzo5MDI2OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gveDg2L2t2bS94ODYuYy05MDI3LVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaD0xNjM5PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaC0xNjQwLVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKTtcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaDoxNjQxOmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaC0xNjQyLVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwMzo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjI2CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIHRoZXNlIHRoaW5nczoKCioqQW5hbHl6aW5nIFBvdGVudGlhbCBGb2N1cyBTeW1ib2xzIGluIEtWTS9WTVgqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gYSBnb29kIGVudHJ5IHBvaW50LiBUaGUgZnVuY3Rpb24gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHNlZW1zIGxpa2UgYSBzb2xpZCBjYW5kaWRhdGUgZm9yIGFuYWx5c2lzLiBJdCYjMzk7cyBvZnRlbiBpbnZvbHZlZCBpbiBtYW5hZ2luZyBwcm9jZXNzb3Igc3RhdGUgd2l0aGluIHRoZSBLVk0gZW52aXJvbm1lbnQsIHNvIHRoYXQmIzM5O3MgbGlrZWx5IGEgY3JpdGljYWwgYXJlYS4gQWxzbywgYHZteF9jbGVhcl9obHRgIGxvb2tzIHByb21pc2luZywgcG90ZW50aWFsbHkgZGVhbGluZyB3aXRoIGNsZWFyaW5nIHRoZSBITFQgaW5zdHJ1Y3Rpb24mIzM5O3MgZWZmZWN0IGluIGEgVk1YIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLgoKRmlyc3QsIEkgc2hvdWxkIHByb2JhYmx5IGRlbHZlIGludG8gdGhlIGRlZmluaXRpb24gb2YgYHZteF9jbGVhcl9obHRgIHRvIGdldCBhIGJldHRlciBncmlwIG9uIHdoYXQgaXQmIzM5O3MgYWN0dWFsbHkgZG9pbmcuIFVuZGVyc3RhbmRpbmcgaXRzIHByZWNpc2UgYmVoYXZpb3Igd2lsbCBiZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgbGFyZ2VyIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XnZvaWQgdm14X2NsZWFyX2hsdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTE5MDY9aW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5MTEtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjE5MTI6dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtMTkxMy17XG4tLVxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg9OTc9dm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg6OTg6dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaC05OS12b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY3NTkKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqRGl2aW5nIGludG8gS1ZNICZhbXA7IENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgS1ZNLCBhbmQgc3BlY2lmaWNhbGx5IHRyeWluZyB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGtleSBhcmVhcy4gSSBuZWVkIHRvIGZvY3VzIG9uIHNvbWUgcmVsZXZhbnQgc3ltYm9scyB0byBwaW5wb2ludCB3aGVyZSB0aGUgaW50ZXJlc3RpbmcgcGFydHMgYXJlLiAgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgdm14X2NsZWFyX2hsdGAganVtcCBvdXQgYXMgbGlrZWx5IGNhbmRpZGF0ZXMuIFRoZXkgbG9vayBsaWtlIHRoZXkmIzM5O3JlIGdvb2QgZW50cnkgcG9pbnRzIGZvciBkaWdnaW5nIGRlZXBlci4KCk5vdywgd2hhdCBhYm91dCB0aGUgY29uZmlndXJhdGlvbnM/IFdoYXQgYXJlIHRoZSBwcmVyZXF1aXNpdGVzPyBLVk0gaXMgdGhlIGJhc2UsIG9idmlvdXNseSwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgY2xlYXJseS4gTGV0IG1lIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgdG8gY29uZmlybSBhbmQgZnVsbHkgZGlnZXN0IGFueSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cywgc3BlY2lmaWNhbGx5IGBhcmNoL3g4Ni9rdm0vS2NvbmZpZ2AuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhpcyBhbmQgc2VlIHdoYXQgaXQgdGVsbHMgbWUgYWJvdXQgdGhlIGJ1aWxkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBLVk0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvYXJtNjQva3ZtL0tjb25maWc6MjA6bWVudWNvbmZpZyBLVk1cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXHRib29sIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnPTE2PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTctXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE5LVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjMxOmNvbmZpZyBLVk1fTUlQU19ERUJVR19DT1AwX0NPVU5URVJTXG5hcmNoL21pcHMva3ZtL0tjb25maWctMzItXHRib29sIFwmIzM0O01haW50YWluIGNvdW50ZXJzIGZvciBDT1AwIGFjY2Vzc2VzXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTktXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxLVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNjpjb25maWcgS1ZNX0JPT0szU19IQU5ETEVSXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTMwLVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozNDpjb25maWcgS1ZNX0JPT0szU182NF9IQU5ETEVSXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM4OmNvbmZpZyBLVk1fQk9PSzNTX1BSX1BPU1NJQkxFXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzktXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDMtXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NDU6Y29uZmlnIEtWTV9CT09LM1NfMzJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O0tWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc18zMiBwcm9jZXNzb3JzXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fQk9PSzNTXzY0XG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy03OC1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTgwLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEwMDpjb25maWcgS1ZNX0JPT0szU182NF9QUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEwMS1cdHRyaXN0YXRlIFwmIzM0O0tWTSBzdXBwb3J0IHdpdGhvdXQgdXNpbmcgaHlwZXJ2aXNvciBtb2RlIGluIGhvc3RcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI1LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyNjpjb25maWcgS1ZNX0JPT0szU19IVl9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cdGJvb2xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEzMC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QOF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNDMtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgaHlwZXJ2aXNvciByZWFsLW1vZGUgY29kZSAoZm9yIFBPV0VSOClcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU2LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE1Nzpjb25maWcgS1ZNX0JPT0szU19IVl9ORVNURURfUE1VX1dPUktBUk9VTkRcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXHRib29sIFwmIzM0O05lc3RlZCBMMCBob3N0IHdvcmthcm91bmQgZm9yIEwxIEtWTSBob3N0IFBNVSBoYW5kbGluZyBidWdcJiMzNDsgaWYgRVhQRVJUXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTczLVx0dHJpc3RhdGUgXCYjMzQ7SHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg0OmNvbmZpZyBLVk1fQk9PS0VfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODUtXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg2LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4Nzpjb25maWcgS1ZNX0VYSVRfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCBleGl0IHRpbWluZ1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTctXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk5LVx0Ym9vbCBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjEzOmNvbmZpZyBLVk1fRTUwME1DXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjE0LVx0Ym9vbCBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwTUMvRTU1MDAvRTY1MDAgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fTVBJQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cdGJvb2wgXCYjMzQ7S1ZNIGluLWtlcm5lbCBNUElDIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDAtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0Mi1cdGJvb2wgXCYjMzQ7S1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjUxOmNvbmZpZyBLVk1fWElWRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1Mi1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc9MjI9c291cmNlIFwmIzM0O2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcJiMzNDtcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yMy1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjUtXHRib29sIFwmIzM0O0tWTSBHdWVzdCBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZz0xNz1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjE5OmNvbmZpZyBLVk1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0yMC1cdGRlZl90cmlzdGF0ZSB5XG4tLVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ2LVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ4LVx0Ym9vbCBcJiMzNDtVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXCYjMzQ7XG4tLVxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFwmIzM0O2FyY2gveDg2L3hlbi9LY29uZmlnXCYjMzQ7XG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cbmFyY2gveDg2L0tjb25maWc6ODI4OmNvbmZpZyBLVk1fR1VFU1RcbmFyY2gveDg2L0tjb25maWctODI5LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydCAoaW5jbHVkaW5nIGt2bWNsb2NrKVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMS1cdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxuYXJjaC94ODYva3ZtL0tjb25maWctNzAtXHRib29sIFwmIzM0O0NvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6ODM6Y29uZmlnIEtWTV9TV19QUk9URUNURURfVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVx0Ym9vbCBcJiMzNDtFbmFibGUgc3VwcG9ydCBmb3IgS1ZNIHNvZnR3YXJlLXByb3RlY3RlZCBWTXNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDgtICAgICAgICBib29sIFwmIzM0O0NoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzMy1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVx0Ym9vbCBcJiMzNDtJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNTY6Y29uZmlnIEtWTV9BTURfU0VWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXHRib29sIFwmIzM0O0FNRCBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIChTRVYpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzM6Y29uZmlnIEtWTV9JT0FQSUNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cdGJvb2wgXCYjMzQ7SS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4NC1cdGJvb2wgXCYjMzQ7U3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxOTQ6Y29uZmlnIEtWTV9IWVBFUlZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgTWljcm9zb2Z0IEh5cGVyLVYgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjA3LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA4OmNvbmZpZyBLVk1fWEVOXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTgtXHRib29sIFwmIzM0O1Byb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzA6Y29uZmlnIEtWTV9FWFRFUk5BTF9XUklURV9UUkFDS0lOR1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMxLVx0Ym9vbFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMzOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXHRpbnQgXCYjMzQ7TWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFwmIzM0O1xuLS1cbnZpcnQva3ZtL0tjb25maWctMy1cbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxudmlydC9rdm0vS2NvbmZpZy01LSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxuLS1cbnZpcnQva3ZtL0tjb25maWctNDItXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xudmlydC9rdm0vS2NvbmZpZy00NC0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy00NS1cbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxudmlydC9rdm0vS2NvbmZpZy00Ny0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXG52aXJ0L2t2bS9LY29uZmlnOjUwOmNvbmZpZyBLVk1fQVNZTkNfUEZfU1lOQ1xudmlydC9rdm0vS2NvbmZpZy01MS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9NTk9Y29uZmlnIEhBVkVfS1ZNX0NQVV9SRUxBWF9JTlRFUkNFUFRcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxudmlydC9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX1ZGSU9cbnZpcnQva3ZtL0tjb25maWctNjMtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTY1PWNvbmZpZyBIQVZFX0tWTV9JTlZBTElEX1dBS0VVUFNcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxudmlydC9rdm0vS2NvbmZpZzo2ODpjb25maWcgS1ZNX0dFTkVSSUNfRElSVFlMT0dfUkVBRF9QUk9URUNUXG52aXJ0L2t2bS9LY29uZmlnLTY5LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxudmlydC9rdm0vS2NvbmZpZzo3MTpjb25maWcgS1ZNX0dFTkVSSUNfUFJFX0ZBVUxUX01FTU9SWVxudmlydC9rdm0vS2NvbmZpZy03Mi0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03My1cbnZpcnQva3ZtL0tjb25maWc6NzQ6Y29uZmlnIEtWTV9DT01QQVRcbnZpcnQva3ZtL0tjb25maWctNzUtICAgICAgIGRlZl9ib29sIHlcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTkxPWNvbmZpZyBIQVZFX0tWTV9QTV9OT1RJRklFUlxuLS1cbnZpcnQva3ZtL0tjb25maWctOTMtXG52aXJ0L2t2bS9LY29uZmlnOjk0OmNvbmZpZyBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xudmlydC9rdm0vS2NvbmZpZy05NS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy05Ni1cbnZpcnQva3ZtL0tjb25maWc6OTc6Y29uZmlnIEtWTV9FTElERV9UTEJfRkxVU0hfSUZfWU9VTkdcbnZpcnQva3ZtL0tjb25maWctOTgtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTktXG52aXJ0L2t2bS9LY29uZmlnOjEwMDpjb25maWcgS1ZNX01NVV9MT0NLTEVTU19BR0lOR1xudmlydC9rdm0vS2NvbmZpZy0xMDEtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTAyLVxudmlydC9rdm0vS2NvbmZpZzoxMDM6Y29uZmlnIEtWTV9HRU5FUklDX01FTU9SWV9BVFRSSUJVVEVTXG52aXJ0L2t2bS9LY29uZmlnLTEwNC0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXG52aXJ0L2t2bS9LY29uZmlnOjEwNjpjb25maWcgS1ZNX0dVRVNUX01FTUZEXG52aXJ0L2t2bS9LY29uZmlnLTEwNy0gICAgICAgc2VsZWN0IFhBUlJBWV9NVUxUSVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExMzA4CgkJCQkJCQlvdXRwdXQ6IDE3MAoJCQkJCQkJdGhvdWdodHM6IDU0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiBhIEtWTSBQYXRjaCBmb3IgRnV6emluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duIGZvciBmdXp6aW5nLiBXZSYjMzk7cmUgbG9va2luZyBhdCBhIHBhdGNoIHJlbGF0ZWQgdG8gS1ZNLCBzcGVjaWZpY2FsbHkgZm9yIHg4NiB3aXRoIFZNWCwgaGVuY2UgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGFyZSBrZXkuIFdlIHNob3VsZCBjaGVjayBgYXJjaC94ODYva3ZtL0tjb25maWdgIGZvciB0aGUgZGVwZW5kZW5jaWVzIG9mIGBLVk1fSU5URUxgOyBpdCYjMzk7cyBnb2luZyB0byBkZXBlbmQgb24gYEtWTWAsIG9idmlvdXNseS4KClNvLCBmb3IgY29uZmlndXJhdGlvbiwgd2UgbmVlZCB0byBlbmFibGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZS4KCk5vdywgZm9yIGZvY3VzIHN5bWJvbHMsIGxldCYjMzk7cyBzZWUuLi4gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSXQmIzM5O3MgYSBLVk0gaW9jdGwgaGFuZGxlciwgc28gaXQmIzM5O3MgYSBkaXJlY3QgZW50cnkgcG9pbnQuIEl0JiMzOTtzIGFsbW9zdCBhbHdheXMgYSBnb29kIGlkZWEgdG8gdGFyZ2V0IGlvY3Rscy4gQW5kLCBgdm14X2NsZWFyX2hsdGAuIE9oLCB3YWl0LCB3YXMgYHZteF9jbGVhcl9obHRgIGV2ZW4gKmluKiB0aGUgcGF0Y2g/IEhtbS4uLgoKWWVzLCBpdCBsb29rcyBsaWtlIGB2bXhfY2xlYXJfaGx0YCB3YXMgcHJlc2VudCwgYnV0IHRoZSBwYXRjaCBjaGFuZ2VkIGl0cyB2aXNpYmlsaXR5LiBJdCB3YXMgc3RhdGljLCBhbmQgbm93IGl0JiMzOTtzIG5vbi1zdGF0aWMuIExldCYjMzk7cyBsb29rIGF0IHRoZSBkaWZmOiBgc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpYCBiZWNhbWUgYHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpYC4gQWhhISBNYWtpbmcgaXQgbm9uLXN0YXRpYyBzdWdnZXN0cyBpdCYjMzk7cyBiZWluZyAqdXNlZCogbW9yZSBnZW5lcmFsbHkgbm93LCB3aGljaCBsaWtlbHkgbWVhbnMgaXQmIzM5O3Mgd29ydGggZnV6emluZyEKCk9rYXksIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXM6IHRoZSBwYXRjaCBmdW5kYW1lbnRhbGx5IGFsdGVycyBob3cgS1ZNIG1hbmFnZXMgdkNQVSBzdGF0ZS4gSXQgaW50cm9kdWNlcyBhIGBjbGVhcl9obHRgIG9wZXJhdGlvbiB3aXRoaW4gYGt2bV94ODZfb3BzYCBhbmQgY2FsbHMgaXQgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGVzIGxpa2UgVk1YJiMzOTtzIEhMVCBzdGF0ZSwgd2hpY2ggYXBwZWFycyB0byBmaXggYSBwcmV0dHkgbmFzdHkgd2VkZ2luZyBidWcuIFRoYXQgbWFrZXMgaXQgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIEtWTSBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSBhbmQgc2hvdWxkIGJlIGZ1enplZCBmb3Igc3VyZS4KClNvLCBsZXQmIzM5O3MgcHJlcGFyZSB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uOgpgV29ydGhGdXp6aW5nYDogVHJ1ZQpgRm9jdXNTeW1ib2xzYDogYFsmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywgJiMzNDt2bXhfY2xlYXJfaGx0JiMzNDtdYApgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtLVk0mIzM0OywgJiMzNDtLVk1fSU5URUwmIzM0O11gCmBSZWFzb25pbmdgOiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJiMzOTtzIEhMVCBzdGF0ZSksIGZpeGluZyBhIGJ1ZyB3aGVyZSBhIHZDUFUgY291bGQgc3RheSB3ZWRnZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDsKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlJiMzNDssCiAgICAmIzM0O3ZteF9jbGVhcl9obHQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgS1ZNIHZDUFUgc3RhdGUgbWFuYWdlbWVudCBieSBhZGRpbmcgYSBuZXcgY2xlYXJfaGx0IG9wZXJhdGlvbiB0byBrdm1feDg2X29wcyBhbmQgY2FsbGluZyBpdCB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIEtWTV9NUF9TVEFURV9SVU5OQUJMRS4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlIChsaWtlIFZNWCYjMzk7cyBITFQgc3RhdGUpLCBmaXhpbmcgYSBidWcgd2hlcmUgYSB2Q1BVIGNvdWxkIHN0YXkgd2VkZ2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OywKICAgICYjMzQ7S1ZNX0lOVEVMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZSYjMzQ7LAogICAgJiMzNDt2bXhfY2xlYXJfaGx0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIEtWTSB2Q1BVIHN0YXRlIG1hbmFnZW1lbnQgYnkgYWRkaW5nIGEgbmV3IGNsZWFyX2hsdCBvcGVyYXRpb24gdG8ga3ZtX3g4Nl9vcHMgYW5kIGNhbGxpbmcgaXQgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBLVk1fTVBfU1RBVEVfUlVOTkFCTEUuIFRoaXMgZm9yY2VzIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBpbmFjdGl2ZSBzdGF0ZSAobGlrZSBWTVgmIzM5O3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwMzo1OTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGBjbGVhcl9obHRgIG9wZXJhdGlvbiB0byBga3ZtX3g4Nl9vcHNgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSBvZiBhIHZDUFUgd2hlbiB1c2Vyc3BhY2Ugc2V0cyBpdHMgbXVsdGlwcm9jZXNzaW5nIHN0YXRlIHRvIGBLVk1fTVBfU1RBVEVfUlVOTkFCTEVgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGZpeCBmb3IgS1ZNL1ZNWC4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBtZW1vcnkgYWxsb2NhdGlvbnMsIG9yIGRhdGEgY29waWVkIHRvIHVzZXIgc3BhY2UuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzIGFyZSBzdWZmaWNpZW50IGZvciB0aGlzIGNvZGUuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI3ZWZhNTNlNDMwZTgxZjk3OWI3NGU2MzYxM2RlZGVlMjliODA3MGEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyAxOSAwMzo1ODowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCmluZGV4IGUyMTNjOWFlM2UzMDEuLmRkOTAyNmMxMDcxY2UgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaApAQCAtODIsNiAmIzQzOzgyLDcgQEAgS1ZNX1g4Nl9PUChpbnRlcnJ1cHRfYWxsb3dlZCkKIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpCiBLVk1fWDg2X09QKGdldF9ubWlfbWFzaykKIEtWTV9YODZfT1Aoc2V0X25taV9tYXNrKQomIzQzO0tWTV9YODZfT1BfT1BUSU9OQUwoY2xlYXJfaGx0KQogS1ZNX1g4Nl9PUChlbmFibGVfbm1pX3dpbmRvdykKIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpCiBLVk1fWDg2X09QX09QVElPTkFMKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC0xNjA3LDYgJiM0MzsxNjA3LDEzIEBAIHN0cnVjdCBrdm1feDg2X29wcyB7CiAJaW50ICgqbm1pX2FsbG93ZWQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTsKIAlib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCXZvaWQgKCpzZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpOwomIzQzOwkvKgomIzQzOwkgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkL2luYWN0aXZlIHN0YXRlIHNvCiYjNDM7CSAqIHRoYXQgaXQgd2lsbCBmZXRjaCBhbmQgZXhlY3V0ZSBpbnN0cnVjdGlvbnMgb24gdGhlIG5leHQgVk0tRW50ZXIuCiYjNDM7CSAqIE9ubHkgbmVlZGVkIGJ5IFZNWCwgd2hlcmUgVk1DUy5HVUVTVF9BQ1RJVklUWV9TVEFURSBwZXJzaXN0cyBhY3Jvc3MKJiM0MzsJICogVk0tRXhpdC9WTS1FbnRlcjsgU1ZNIGhhcyBubyBlcXVpdmFsZW50IFZNQ0IgZmllbGQuCiYjNDM7CSAqLwomIzQzOwl2b2lkICgqY2xlYXJfaGx0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCS8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi8KIAlib29sICgqaXNfdm5taV9wZW5kaW5nKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCS8qCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uYyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCkBAIC02MDEsNiAmIzQzOzYwMSwxOCBAQCBzdGF0aWMgdm9pZCB2dF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCkKIAl2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7CiB9CiAKJiM0MztzdGF0aWMgdm9pZCB2dF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQomIzQzO3sKJiM0MzsJLyoKJiM0MzsJICogVERYIGRvZXNuJiMzOTt0IHN1cHBvcnQgZGlzYWJsaW5nIEhMVC1leGl0aW5nLCBhbmQgS1ZNIGNhbiYjMzk7dCBhY2Nlc3MgYQomIzQzOwkgKiBURCYjMzk7cyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLgomIzQzOwkgKi8KJiM0MzsJaWYgKGlzX3RkX3ZjcHUodmNwdSkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiYjNDM7CXZteF9jbGVhcl9obHQodmNwdSk7CiYjNDM7fQomIzQzOwogc3RhdGljIHZvaWQgdnRfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCS8qIFJlZmVyIHRvIHRoZSBjb21tZW50cyBpbiB0ZHhfaW5qZWN0X25taSgpLiAqLwpAQCAtOTY0LDYgJiM0Mzs5NzYsNyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMgdnRfeDg2X29wcyBfX2luaXRkYXRhID0gewogCS5ubWlfYWxsb3dlZCA9IHZ0X29wKG5taV9hbGxvd2VkKSwKIAkuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSwKIAkuc2V0X25taV9tYXNrID0gdnRfb3Aoc2V0X25taV9tYXNrKSwKJiM0MzsJLmNsZWFyX2hsdCA9IHZ0X29wKGNsZWFyX2hsdCksCiAJLmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLAogCS5lbmFibGVfaXJxX3dpbmRvdyA9IHZ0X29wKGVuYWJsZV9pcnFfd2luZG93KSwKIAkudXBkYXRlX2NyOF9pbnRlcmNlcHQgPSB2dF9vcCh1cGRhdGVfY3I4X2ludGVyY2VwdCksCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwppbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmMKQEAgLTE5MDksNyAmIzQzOzE5MDksNyBAQCBpbnQgdm14X3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCXJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpOwogfQogCi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCS8qCiAJICogRW5zdXJlIHRoYXQgd2UgY2xlYXIgdGhlIEhMVCBzdGF0ZSBpbiB0aGUgVk1DUy4gIFdlIGRvbiYjMzk7dCBuZWVkIHRvCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oCmluZGV4IGNkYjM4ZDk0MGNmYjcuLjQ1ZTQ3ZjUwMmEzNzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oCkBAIC05NSw2ICYjNDM7OTUsNyBAQCBpbnQgdm14X2ludGVycnVwdF9hbGxvd2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTsKIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogYm9vbCB2bXhfZ2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7CiYjNDM7dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfZW5hYmxlX2lycV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X3VwZGF0ZV9jcjhfaW50ZXJjZXB0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHRwciwgaW50IGlycik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmMKaW5kZXggZDk0YjU5MTQwYzQ1Mi4uNzc3N2NmODhhOTZiMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS94ODYuYwpAQCAtOTA1OCw2ICYjNDM7OTA1OCwxOSBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJfQogCiAJa3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS0mZ3Q7bXBfc3RhdGUpOwomIzQzOwomIzQzOwkvKgomIzQzOwkgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUsIGUuZy4gVk1YJiMzOTtzCiYjNDM7CSAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVC4gIFRoYXQgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZAomIzQzOwkgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWQKJiM0MzsJICogd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCAoS1ZNX1g4Nl9ESVNBQkxFX0VYSVRTX0hMVCkgc3RheXMgd2VkZ2VkCiYjNDM7CSAqIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIGRlY2xhcmVzIGl0IFJVTk5BQkxFIGFuZCByZXdyaXRlcyBpdHMgcmVnaXN0ZXJzLAomIzQzOwkgKiBlLmcuIHdoZW4gYSBWTU0gZW11bGF0ZXMgYSBtYWNoaW5lIHJlc2V0LiAgV2FraW5nIGZyb20gSExUIGlzCiYjNDM7CSAqIGFyY2hpdGVjdHVyYWxseSBhbGxvd2VkIHRvIGJlIHNwdXJpb3VzLCBzbyBjbGVhcmluZyBpdCBpcyBhbHdheXMgc2FmZS4KJiM0MzsJICovCiYjNDM7CWlmICh2Y3B1LSZndDthcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9SVU5OQUJMRSkKJiM0MzsJCWt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpOwomIzQzOwogCWt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9FVkVOVCwgdmNwdSk7CiAKIAlyZXQgPSAwOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkxOQoJCQkJCQkJb3V0cHV0OiAxNTMKCQkJCQkJCXRob3VnaHRzOiAzNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNL1ZNWCBITFQtQ2xlYXJpbmcgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHdpdGhpbiBga3ZtX3g4Nl9vcHNgIGFuZCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50cyBpdCBmb3IgVk1YLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQgZ2V0cyBpbnZva2VkIHdpdGhpbiBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgd2hlbmV2ZXIgYSB2Q1BVJiMzOTtzIG11bHRpcHJvY2Vzc2luZyBzdGF0ZSB0cmFuc2l0aW9ucyB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBhZGRyZXNzZXMgYSBrbm93biBpc3N1ZSB3aGVyZSBhIHZDUFUsIGhhbHRlZCB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkLCBjb3VsZCBiZWNvbWUgc3R1Y2sgYWZ0ZXIgdXNlcnNwYWNlIHNpZ25hbHMgdGhhdCBpdCBzaG91bGQgYmVjb21lIHJ1bm5hYmxlLgoKTm93LCBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUsIEkgbmVlZCB0byBldmFsdWF0ZSB0aGUgcG90ZW50aWFsIGZvciB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZS4gQWZ0ZXIgYSBjYXJlZnVsIHJldmlldywgSSYjMzk7dmUgY29uY2x1ZGVkIHRoYXQgdGhlcmUgYXJlIG5vIHN1Y2ggcmlza3MgaW4gdGhpcyBwYXRjaC4gSXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgZml4IGludm9sdmluZyBjb250cm9sIGZsb3cgYW5kIHN0YXRlIG1hbmFnZW1lbnQuIFRoZSBwYXRjaCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IG5ldyBzdHJ1Y3R1cmVzIHRoYXQgYXJlIGV4cG9zZWQgdG8gdXNlcnNwYWNlLiBJdCBkb2VzbiYjMzk7dCB1c2UgYW55IGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIG9yIG1lbW9yeSBhbGxvY2F0aW9ucyB0aGF0IGNvdWxkIGxlYWQgdG8gdnVsbmVyYWJpbGl0aWVzLiBSZWFsbHksIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgc2ltcGx5IGFkZGluZyBhIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYGt2bV94ODZfb3BzYCBhbmQgdGhlbiBjYWxsaW5nIHRoZSBwcmUtZXhpc3RpbmcgYHZteF9jbGVhcl9obHRgIGZ1bmN0aW9uLCB3aGljaCB3YXMgcHJldmlvdXNseSBhIHN0YXRpYyBmdW5jdGlvbi4KCkdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZXMsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgS01TQU4gaXMgbm90IG5lY2Vzc2FyeSBoZXJlLiBTdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycyBzaG91bGQgYmUgc3VmZmljaWVudCB0byBjYXRjaCBhbnkgcG90ZW50aWFsIGlzc3Vlcy4gVGhlcmVmb3JlLCBJIHdpbGwgc2V0IGBOZWVkc0tNU0FOPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2xlYXJfaGx0YCBvcGVyYXRpb24gdG8gYGt2bV94ODZfb3BzYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgb2YgYSB2Q1BVIHdoZW4gdXNlcnNwYWNlIHNldHMgaXRzIG11bHRpcHJvY2Vzc2luZyBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgc3RhdGUgbWFuYWdlbWVudCBmaXggZm9yIEtWTS9WTVguIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgbWVtb3J5IGFsbG9jYXRpb25zLCBvciBkYXRhIGNvcGllZCB0byB1c2VyIHNwYWNlLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycyBhcmUgc3VmZmljaWVudCBmb3IgdGhpcyBjb2RlLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2xlYXJfaGx0YCBvcGVyYXRpb24gdG8gYGt2bV94ODZfb3BzYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgb2YgYSB2Q1BVIHdoZW4gdXNlcnNwYWNlIHNldHMgaXRzIG11bHRpcHJvY2Vzc2luZyBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgc3RhdGUgbWFuYWdlbWVudCBmaXggZm9yIEtWTS9WTVguIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgbWVtb3J5IGFsbG9jYXRpb25zLCBvciBkYXRhIGNvcGllZCB0byB1c2VyIHNwYWNlLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycyBhcmUgc3VmZmljaWVudCBmb3IgdGhpcyBjb2RlLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1ODowMy4zMTM0NDEyMzhaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODY2MTU1NDE4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVcIixcbiAgICBcInZteF9jbGVhcl9obHRcIlxuICBdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHRvIGBrdm1feDg2X29wc2AgdG8gY2xlYXIgdGhlIGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlIG9mIGEgdkNQVSB3aGVuIHVzZXJzcGFjZSBzZXRzIGl0cyBtdWx0aXByb2Nlc3Npbmcgc3RhdGUgdG8gYEtWTV9NUF9TVEFURV9SVU5OQUJMRWAuIFRoaXMgaXMgYSBjb250cm9sIGZsb3cgYW5kIHN0YXRlIG1hbmFnZW1lbnQgZml4IGZvciBLVk0vVk1YLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIG1lbW9yeSBhbGxvY2F0aW9ucywgb3IgZGF0YSBjb3BpZWQgdG8gdXNlciBzcGFjZS4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMgYXJlIHN1ZmZpY2llbnQgZm9yIHRoaXMgY29kZS5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJ3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTg6MDMuMzEzNDQ2MDM4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDU0ODY1MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyN2VmYTUzZTQzMGU4MWY5NzliNzRlNjM2MTNkZWRlZTI5YjgwNzBhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDE5IDAzOjU4OjAyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxcbkBAIC04Miw2ICs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpXFxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXFxuIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKVxcbiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaylcXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpXFxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXFxuIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpXFxuIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxcbkBAIC0xNjA3LDYgKzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcXG4gXFx0aW50ICgqbm1pX2FsbG93ZWQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcXG4gXFx0Ym9vbCAoKmdldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XFxuK1xcdC8qXFxuK1xcdCAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc29cXG4rXFx0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cXG4rXFx0ICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zc1xcbitcXHQgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC5cXG4rXFx0ICovXFxuK1xcdHZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuIFxcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cXG4gXFx0Ym9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0LypcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbkBAIC02MDEsNiArNjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKVxcbiBcXHR2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuK3tcXG4rXFx0LypcXG4rXFx0ICogVERYIGRvZXNuJ3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJ3QgYWNjZXNzIGFcXG4rXFx0ICogVEQncyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxcbitcXHQgKi9cXG4rXFx0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdHZteF9jbGVhcl9obHQodmNwdSk7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cXG5AQCAtOTY0LDYgKzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XFxuIFxcdC5ubWlfYWxsb3dlZCA9IHZ0X29wKG5taV9hbGxvd2VkKSxcXG4gXFx0LmdldF9ubWlfbWFzayA9IHZ0X29wKGdldF9ubWlfbWFzayksXFxuIFxcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxcbitcXHQuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSxcXG4gXFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxcbiBcXHQuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksXFxuIFxcdC51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSxcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuQEAgLTE5MDksNyArMTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdHJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4rdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHQvKlxcbiBcXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJ3QgbmVlZCB0b1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXFxuaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxcbisrKyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXFxuQEAgLTk1LDYgKzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XFxuIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xcbiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfZW5hYmxlX2lycV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuaW5kZXggZDk0YjU5MTQwYzQ1Mi4uNzc3N2NmODhhOTZiMCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5AQCAtOTA1OCw2ICs5MDU4LDE5IEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4gXFx0fVxcbiBcXG4gXFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cXHUwMDNlbXBfc3RhdGUpO1xcbitcXG4rXFx0LypcXG4rXFx0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlLCBlLmcuIFZNWCdzXFxuK1xcdCAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVC4gIFRoYXQgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxcbitcXHQgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWRcXG4rXFx0ICogd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCAoS1ZNX1g4Nl9ESVNBQkxFX0VYSVRTX0hMVCkgc3RheXMgd2VkZ2VkXFxuK1xcdCAqIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIGRlY2xhcmVzIGl0IFJVTk5BQkxFIGFuZCByZXdyaXRlcyBpdHMgcmVnaXN0ZXJzLFxcbitcXHQgKiBlLmcuIHdoZW4gYSBWTU0gZW11bGF0ZXMgYSBtYWNoaW5lIHJlc2V0LiAgV2FraW5nIGZyb20gSExUIGlzXFxuK1xcdCAqIGFyY2hpdGVjdHVyYWxseSBhbGxvd2VkIHRvIGJlIHNwdXJpb3VzLCBzbyBjbGVhcmluZyBpdCBpcyBhbHdheXMgc2FmZS5cXG4rXFx0ICovXFxuK1xcdGlmICh2Y3B1LVxcdTAwM2VhcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9SVU5OQUJMRSlcXG4rXFx0XFx0a3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7XFxuK1xcbiBcXHRrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpO1xcbiBcXG4gXFx0cmV0ID0gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTg6MDMuODE5NTkyODg1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6OTEwMzEwMzIyNjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCIsXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlXCIsXG4gICAgXCJ2bXhfY2xlYXJfaGx0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgS1ZNIHZDUFUgc3RhdGUgbWFuYWdlbWVudCBieSBhZGRpbmcgYSBuZXcgY2xlYXJfaGx0IG9wZXJhdGlvbiB0byBrdm1feDg2X29wcyBhbmQgY2FsbGluZyBpdCB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIEtWTV9NUF9TVEFURV9SVU5OQUJMRS4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlIChsaWtlIFZNWCdzIEhMVCBzdGF0ZSksIGZpeGluZyBhIGJ1ZyB3aGVyZSBhIHZDUFUgY291bGQgc3RheSB3ZWRnZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDI3ZWZhNTNlNDMwZTgxZjk3OWI3NGU2MzYxM2RlZGVlMjliODA3MGFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAxOSAwMzo1ODowMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXG5pbmRleCBlMjEzYzlhZTNlMzAxLi5kZDkwMjZjMTA3MWNlIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuQEAgLTgyLDYgKzgyLDcgQEAgS1ZNX1g4Nl9PUChpbnRlcnJ1cHRfYWxsb3dlZClcbiBLVk1fWDg2X09QKG5taV9hbGxvd2VkKVxuIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKVxuIEtWTV9YODZfT1Aoc2V0X25taV9tYXNrKVxuK0tWTV9YODZfT1BfT1BUSU9OQUwoY2xlYXJfaGx0KVxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXG4gS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdylcbiBLVk1fWDg2X09QX09QVElPTkFMKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KVxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuQEAgLTE2MDcsNiArMTYwNywxMyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMge1xuIFx0aW50ICgqbm1pX2FsbG93ZWQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcbiBcdGJvb2wgKCpnZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHR2b2lkICgqc2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcbitcdC8qXG4rXHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkL2luYWN0aXZlIHN0YXRlIHNvXG4rXHQgKiB0aGF0IGl0IHdpbGwgZmV0Y2ggYW5kIGV4ZWN1dGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBuZXh0IFZNLUVudGVyLlxuK1x0ICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zc1xuK1x0ICogVk0tRXhpdC9WTS1FbnRlcjsgU1ZNIGhhcyBubyBlcXVpdmFsZW50IFZNQ0IgZmllbGQuXG4rXHQgKi9cbitcdHZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHQvKiBXaGV0aGVyIG9yIG5vdCBhIHZpcnR1YWwgTk1JIGlzIHBlbmRpbmcgaW4gaGFyZHdhcmUuICovXG4gXHRib29sICgqaXNfdm5taV9wZW5kaW5nKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0LypcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uYyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG5pbmRleCAwZmYzMjMwZmQ5NWU4Li43NGNlOWRkNzA0MTkxIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbisrKyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG5AQCAtNjAxLDYgKzYwMSwxOCBAQCBzdGF0aWMgdm9pZCB2dF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZClcbiBcdHZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTtcbiB9XG4gXG4rc3RhdGljIHZvaWQgdnRfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbit7XG4rXHQvKlxuK1x0ICogVERYIGRvZXNuJ3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJ3QgYWNjZXNzIGFcbitcdCAqIFREJ3MgVk1DUywgc28gdGhlcmUgaXMgbmV2ZXIgYW55IGhhcmR3YXJlIGhhbHRlZCBzdGF0ZSB0byBjbGVhci5cbitcdCAqL1xuK1x0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXG4rXHRcdHJldHVybjtcbitcbitcdHZteF9jbGVhcl9obHQodmNwdSk7XG4rfVxuK1xuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cbkBAIC05NjQsNiArOTc2LDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcbiBcdC5ubWlfYWxsb3dlZCA9IHZ0X29wKG5taV9hbGxvd2VkKSxcbiBcdC5nZXRfbm1pX21hc2sgPSB2dF9vcChnZXRfbm1pX21hc2spLFxuIFx0LnNldF9ubWlfbWFzayA9IHZ0X29wKHNldF9ubWlfbWFzayksXG4rXHQuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSxcbiBcdC5lbmFibGVfbm1pX3dpbmRvdyA9IHZ0X29wKGVuYWJsZV9ubWlfd2luZG93KSxcbiBcdC5lbmFibGVfaXJxX3dpbmRvdyA9IHZ0X29wKGVuYWJsZV9pcnFfd2luZG93KSxcbiBcdC51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuaW5kZXggZTNiZmU2YWNhMWEwZS4uOGFkNzljNjBlY2M2ZiAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbisrKyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbkBAIC0xOTA5LDcgKzE5MDksNyBAQCBpbnQgdm14X3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0cmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuK3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuIFx0LypcbiBcdCAqIEVuc3VyZSB0aGF0IHdlIGNsZWFyIHRoZSBITFQgc3RhdGUgaW4gdGhlIFZNQ1MuICBXZSBkb24ndCBuZWVkIHRvXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmggYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuQEAgLTk1LDYgKzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gYm9vbCB2bXhfZ2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuK3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfZW5hYmxlX2lycV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF91cGRhdGVfY3I4X2ludGVyY2VwdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCB0cHIsIGludCBpcnIpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggZDk0YjU5MTQwYzQ1Mi4uNzc3N2NmODhhOTZiMCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5AQCAtOTA1OCw2ICs5MDU4LDE5IEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbiBcdH1cbiBcbiBcdGt2bV9zZXRfbXBfc3RhdGUodmNwdSwgbXBfc3RhdGUtXHUwMDNlbXBfc3RhdGUpO1xuK1xuK1x0LypcbitcdCAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBpbmFjdGl2ZSBzdGF0ZSwgZS5nLiBWTVgnc1xuK1x0ICogR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExULiAgVGhhdCBzdGF0ZSBpcyBzdGlja3kgYWNyb3NzIFZNLUV4aXQgYW5kXG4rXHQgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWRcbitcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgKEtWTV9YODZfRElTQUJMRV9FWElUU19ITFQpIHN0YXlzIHdlZGdlZFxuK1x0ICogZXZlbiBhZnRlciB1c2Vyc3BhY2UgZGVjbGFyZXMgaXQgUlVOTkFCTEUgYW5kIHJld3JpdGVzIGl0cyByZWdpc3RlcnMsXG4rXHQgKiBlLmcuIHdoZW4gYSBWTU0gZW11bGF0ZXMgYSBtYWNoaW5lIHJlc2V0LiAgV2FraW5nIGZyb20gSExUIGlzXG4rXHQgKiBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMgYWx3YXlzIHNhZmUuXG4rXHQgKi9cbitcdGlmICh2Y3B1LVx1MDAzZWFyY2gubXBfc3RhdGUgPT0gS1ZNX01QX1NUQVRFX1JVTk5BQkxFKVxuK1x0XHRrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KTtcbitcbiBcdGt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9FVkVOVCwgdmNwdSk7XG4gXG4gXHRyZXQgPSAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTg6MDMuODE5NTk0Mjk1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg2MTI4NjYyMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBITFQgQ2xlYXJpbmcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIGBjbGVhcl9obHRgIG9wZXJhdGlvbiB0byB0aGUgYGt2bV94ODZfb3BzYCBzdHJ1Y3R1cmUuIEl0J3MgaW1wbGVtZW50ZWQgZm9yIFZNWCwgYW5kIFREWCwgd2hpY2gganVzdCByZXR1cm5zIChsaWtlbHkgYmVjYXVzZSBURFggaGFuZGxlcyB0aGlzIGRpZmZlcmVudGx5IGF0IGEgbG93ZXIgbGV2ZWwpLiBUaGUgY29yZSBvZiB0aGlzIHBhdGNoIG1vZGlmaWVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjYWxsIGBrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KWAgd2hlbmV2ZXIgdGhlIHZDUFUncyBNUCBzdGF0ZSBpcyBzZXQgdG8gYEtWTV9NUF9TVEFURV9SVU5OQUJMRWAuIExldCdzIGJyZWFrIGRvd24gaWYgaXQncyByZWFjaGFibGUgYW5kIGFjdHVhbGx5IGZ1bmN0aW9uYWwuXG5cblJpZ2h0LCBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaGFuZGxlcyB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsIG9uIGEgdkNQVS4gVGhhdCBtZWFucyBpdCdzIGRlZmluaXRlbHkgYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZSDigJMgdG9vbHMgbGlrZSBzeXprYWxsZXIgY2FuIGRpcmVjdGx5IHRyaWdnZXIgdGhpcywgc28gdGhhdCdzIGdvb2QuIFRoZSBpbnRlbnQgaGVyZSBpcyB0byBmaXggYSBwcmV0dHkgbmFzdHkgYnVnIHdoZXJlIGEgdkNQVSB0aGF0IGhhbHRlZCB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkIHdvdWxkIGdldCBzdHVjayBldmVuIGlmIHVzZXJzcGFjZSBzZXRzIGl0IHRvIFJVTk5BQkxFLiBUaGlzIHBhdGNoIHNob3VsZCBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLlxuXG5Ob3csIHRoZSBjb2RlLiBJdCdzIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaGUgbmV3IGNvZGUgdGhhdCB0aGUgcGF0Y2ggYWRkZWQgbG9va3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDpcblxuYGBgY1xuXHRpZiAodmNwdS1cdTAwM2VhcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9SVU5OQUJMRSlcblx0XHRrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KTtcbmBgYFxuXG5JdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2U7IGl0J3MgZ29pbmcgdG8gY2xlYXIgdGhlIEhMVCBzdGF0ZSB3aXRoaW4gdGhlIFZNQ1MuIFNlZW1zIHJlYXNvbmFibGUuIE5vdywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyBBYnNvbHV0ZWx5LCBiZWNhdXNlIHRoaXMgaXMgZGVhbGluZyB3aXRoIEtWTSB2Q1BVIHN0YXRlIG1hbmFnZW1lbnQuXG5cbldoZXJlIGRvIEkgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzPyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaXMgYSBwcmltZSBjYW5kaWRhdGUuIFRoZW4sIG9mIGNvdXJzZSwgdGhlIGFjdHVhbCBgdnRfY2xlYXJfaGx0YCBhbmQgYHZteF9jbGVhcl9obHRgIGZ1bmN0aW9ucyB0aGF0IGRvIHRoZSBoZWF2eSBsaWZ0aW5nIGFyZSBhbHNvIGNyaXRpY2FsLiBMZXQncyBzZWUuLi4gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGlzIGFuIEFQSSBlbnRyeXBvaW50LiBBbmQgbm93IGB2dF9jbGVhcl9obHRgIGlzIHN0YXRpYywgd2hpY2ggY2FuIGNvbXBsaWNhdGUgZGlyZWN0IGZ1enppbmcsIGJ1dCBgdm14X2NsZWFyX2hsdGAgaXNuJ3QuIEknbGwgbmVlZCB0byByZW1lbWJlciB0byBjaGVjayBob3cgdGhlIHN0YXRpYyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gcmVsYXRpb24gdG8gdGhlIHZteCBmdW5jdGlvbi4gSSB3aWxsIHVzZSBgZ3JlcHBlcmAgb24gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHRvIGNvbmZpcm0gaXRzIGNhbGwgZ3JhcGguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MjIsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1OToxMi40MzI0NjQyMzlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg4Mzg3NzA5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9rdm0vYXJtLmM9Nzg2PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvYXJtNjQva3ZtL2FybS5jLTc5My1cXG5hcmNoL2FybTY0L2t2bS9hcm0uYzo3OTQ6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvYXJtNjQva3ZtL2FybS5jLTc5NS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jPTQ2Nz1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTQ3NC1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jOjQ3NTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy00NzYtXFx0XFx0XFx0XFx0c3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5hcmNoL21pcHMva3ZtL21pcHMuYz01MTU9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9taXBzL2t2bS9taXBzLmMtNTIwLVxcbmFyY2gvbWlwcy9rdm0vbWlwcy5jOjUyMTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9taXBzL2t2bS9taXBzLmMtNTIyLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jPTIwMTM9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmMtMjAxOC1cXG5hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYzoyMDE5OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYy0yMDIwLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jPTQ5Nj1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmMtNTAzLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHUuYzo1MDQ6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHUuYy01MDUtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jPTQyNjE9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jLTQyNzUtXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jOjQyNzY6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYy00Mjc3LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYz05MDAwPWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYy05MDI1LVxcbmFyY2gveDg2L2t2bS94ODYuYzo5MDI2OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTAyNy1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0Lmg9MTYzOT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuaW5jbHVkZS9saW51eC9rdm1faG9zdC5oLTE2NDAtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKTtcXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0Lmg6MTY0MTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuaW5jbHVkZS9saW51eC9rdm1faG9zdC5oLTE2NDItXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTk6MTUuMzE2MzQ2MjI1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjg1ODQ2NjM1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aGluZ3M6XG5cbioqQW5hbHl6aW5nIFBvdGVudGlhbCBGb2N1cyBTeW1ib2xzIGluIEtWTS9WTVgqKlxuXG5BbHJpZ2h0LCBsZXQncyB6ZXJvIGluIG9uIGEgZ29vZCBlbnRyeSBwb2ludC4gVGhlIGZ1bmN0aW9uIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBzZWVtcyBsaWtlIGEgc29saWQgY2FuZGlkYXRlIGZvciBhbmFseXNpcy4gSXQncyBvZnRlbiBpbnZvbHZlZCBpbiBtYW5hZ2luZyBwcm9jZXNzb3Igc3RhdGUgd2l0aGluIHRoZSBLVk0gZW52aXJvbm1lbnQsIHNvIHRoYXQncyBsaWtlbHkgYSBjcml0aWNhbCBhcmVhLiBBbHNvLCBgdm14X2NsZWFyX2hsdGAgbG9va3MgcHJvbWlzaW5nLCBwb3RlbnRpYWxseSBkZWFsaW5nIHdpdGggY2xlYXJpbmcgdGhlIEhMVCBpbnN0cnVjdGlvbidzIGVmZmVjdCBpbiBhIFZNWCBjb250ZXh0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZS5cblxuRmlyc3QsIEkgc2hvdWxkIHByb2JhYmx5IGRlbHZlIGludG8gdGhlIGRlZmluaXRpb24gb2YgYHZteF9jbGVhcl9obHRgIHRvIGdldCBhIGJldHRlciBncmlwIG9uIHdoYXQgaXQncyBhY3R1YWxseSBkb2luZy4gVW5kZXJzdGFuZGluZyBpdHMgcHJlY2lzZSBiZWhhdmlvciB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBsYXJnZXIgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjIyNiwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE5VDAzOjU5OjE4LjE3NDgxNDQyNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTQzNDE3OTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl52b2lkIHZteF9jbGVhcl9obHRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3ZteC92bXguYz0xOTA2PWludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5MTEtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzoxOTEyOnZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy0xOTEzLXtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oPTk3PXZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaDo5ODp2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaC05OS12b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1OToyMC4zMTgyMzgyMjNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjM4NzE5MzQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqRGl2aW5nIGludG8gS1ZNIFx1MDAyNiBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIEknbSB0aGlua2luZyBhYm91dCBLVk0sIGFuZCBzcGVjaWZpY2FsbHkgdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUga2V5IGFyZWFzLiBJIG5lZWQgdG8gZm9jdXMgb24gc29tZSByZWxldmFudCBzeW1ib2xzIHRvIHBpbnBvaW50IHdoZXJlIHRoZSBpbnRlcmVzdGluZyBwYXJ0cyBhcmUuICBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgYW5kIGB2bXhfY2xlYXJfaGx0YCBqdW1wIG91dCBhcyBsaWtlbHkgY2FuZGlkYXRlcy4gVGhleSBsb29rIGxpa2UgdGhleSdyZSBnb29kIGVudHJ5IHBvaW50cyBmb3IgZGlnZ2luZyBkZWVwZXIuXG5cbk5vdywgd2hhdCBhYm91dCB0aGUgY29uZmlndXJhdGlvbnM/IFdoYXQgYXJlIHRoZSBwcmVyZXF1aXNpdGVzPyBLVk0gaXMgdGhlIGJhc2UsIG9idmlvdXNseSwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgY2xlYXJseS4gTGV0IG1lIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgdG8gY29uZmlybSBhbmQgZnVsbHkgZGlnZXN0IGFueSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cywgc3BlY2lmaWNhbGx5IGBhcmNoL3g4Ni9rdm0vS2NvbmZpZ2AuIEknbGwgc3RhcnQgd2l0aCB0aGlzIGFuZCBzZWUgd2hhdCBpdCB0ZWxscyBtZSBhYm91dCB0aGUgYnVpbGQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3NTksIk91dHB1dFRva2VucyI6MTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1OToyMy45NTY5NjA3MTVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY1ODg4MzI5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWc6MjA6bWVudWNvbmZpZyBLVk1cXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVxcdGJvb2wgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc9MTY9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTctXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MzE6Y29uZmlnIEtWTV9NSVBTX0RFQlVHX0NPUDBfQ09VTlRFUlNcXG5hcmNoL21pcHMva3ZtL0tjb25maWctMzItXFx0Ym9vbCBcXFwiTWFpbnRhaW4gY291bnRlcnMgZm9yIENPUDAgYWNjZXNzZXNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTktXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNjpjb25maWcgS1ZNX0JPT0szU19IQU5ETEVSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjgtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzAtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTMzLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozNDpjb25maWcgS1ZNX0JPT0szU182NF9IQU5ETEVSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mzg6Y29uZmlnIEtWTV9CT09LM1NfUFJfUE9TU0lCTEVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzktXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00My1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0NTpjb25maWcgS1ZNX0JPT0szU18zMlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzMyIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fQk9PSzNTXzY0XFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy03OC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctODAtXFx0dHJpc3RhdGUgXFxcIktWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTAwOmNvbmZpZyBLVk1fQk9PSzNTXzY0X1BSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEwMS1cXHR0cmlzdGF0ZSBcXFwiS1ZNIHN1cHBvcnQgd2l0aG91dCB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyNjpjb25maWcgS1ZNX0JPT0szU19IVl9FWElUX1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjgtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTMwLVxcdGJvb2wgXFxcIkRldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A4X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNDMtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciBoeXBlcnZpc29yIHJlYWwtbW9kZSBjb2RlIChmb3IgUE9XRVI4KVxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTYtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE1Nzpjb25maWcgS1ZNX0JPT0szU19IVl9ORVNURURfUE1VX1dPUktBUk9VTkRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVxcdGJvb2wgXFxcIk5lc3RlZCBMMCBob3N0IHdvcmthcm91bmQgZm9yIEwxIEtWTSBob3N0IFBNVSBoYW5kbGluZyBidWdcXFwiIGlmIEVYUEVSVFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzMtXFx0dHJpc3RhdGUgXFxcIkh5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODQ6Y29uZmlnIEtWTV9CT09LRV9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODUtXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODYtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4Nzpjb25maWcgS1ZNX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJEZXRhaWxlZCBleGl0IHRpbWluZ1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTctXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTktXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMTM6Y29uZmlnIEtWTV9FNTAwTUNcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjE0LVxcdGJvb2wgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIEU1MDBNQy9FNTUwMC9FNjUwMCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fTVBJQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBNUElDIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQyLVxcdGJvb2wgXFxcIktWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNTE6Y29uZmlnIEtWTV9YSVZFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1Mi1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc9MjI9c291cmNlIFxcXCJhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXFxcIlxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yMy1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJLVk0gR3Vlc3Qgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZz0xNz1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWc6MTk6Y29uZmlnIEtWTVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0yMC1cXHRkZWZfdHJpc3RhdGUgeVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ2LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDgtXFx0Ym9vbCBcXFwiVXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1xcXCJcXG4tLVxcbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcXFwiYXJjaC94ODYveGVuL0tjb25maWdcXFwiXFxuYXJjaC94ODYvS2NvbmZpZy04MjctXFxuYXJjaC94ODYvS2NvbmZpZzo4Mjg6Y29uZmlnIEtWTV9HVUVTVFxcbmFyY2gveDg2L0tjb25maWctODI5LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0IChpbmNsdWRpbmcga3ZtY2xvY2spXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxLVxcdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03MC1cXHRib29sIFxcXCJDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4Mzpjb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVxcdGJvb2wgXFxcIkVuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1xcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXFxcIkNoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cXHRib29sIFxcXCJJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1Njpjb25maWcgS1ZNX0FNRF9TRVZcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXFx0Ym9vbCBcXFwiQU1EIFNlY3VyZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gKFNFVikgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzM6Y29uZmlnIEtWTV9JT0FQSUNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzQtXFx0Ym9vbCBcXFwiSS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgzOmNvbmZpZyBLVk1fU01NXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTg0LVxcdGJvb2wgXFxcIlN5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTkzLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE5NDpjb25maWcgS1ZNX0hZUEVSVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NS1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDctXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA4OmNvbmZpZyBLVk1fWEVOXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjA5LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNzpjb25maWcgS1ZNX1BST1ZFX01NVVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxOC1cXHRib29sIFxcXCJQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjI5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMDpjb25maWcgS1ZNX0VYVEVSTkFMX1dSSVRFX1RSQUNLSU5HXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMxLVxcdGJvb2xcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMzOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjM0LVxcdGludCBcXFwiTWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFxcXCJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctMy1cXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cXG52aXJ0L2t2bS9LY29uZmlnLTUtICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDItXFxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cXG52aXJ0L2t2bS9LY29uZmlnLTQ0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy00NS1cXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcXG52aXJ0L2t2bS9LY29uZmlnLTQ3LSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxcbnZpcnQva3ZtL0tjb25maWc6NTA6Y29uZmlnIEtWTV9BU1lOQ19QRl9TWU5DXFxudmlydC9rdm0vS2NvbmZpZy01MS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz01OT1jb25maWcgSEFWRV9LVk1fQ1BVX1JFTEFYX0lOVEVSQ0VQVFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy02MS1cXG52aXJ0L2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fVkZJT1xcbnZpcnQva3ZtL0tjb25maWctNjMtICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9NjU9Y29uZmlnIEhBVkVfS1ZNX0lOVkFMSURfV0FLRVVQU1xcbi0tXFxudmlydC9rdm0vS2NvbmZpZy02Ny1cXG52aXJ0L2t2bS9LY29uZmlnOjY4OmNvbmZpZyBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcXG52aXJ0L2t2bS9LY29uZmlnLTY5LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03MC1cXG52aXJ0L2t2bS9LY29uZmlnOjcxOmNvbmZpZyBLVk1fR0VORVJJQ19QUkVfRkFVTFRfTUVNT1JZXFxudmlydC9rdm0vS2NvbmZpZy03Mi0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctNzMtXFxudmlydC9rdm0vS2NvbmZpZzo3NDpjb25maWcgS1ZNX0NPTVBBVFxcbnZpcnQva3ZtL0tjb25maWctNzUtICAgICAgIGRlZl9ib29sIHlcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9OTE9Y29uZmlnIEhBVkVfS1ZNX1BNX05PVElGSUVSXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxcbnZpcnQva3ZtL0tjb25maWc6OTQ6Y29uZmlnIEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXFxudmlydC9rdm0vS2NvbmZpZy05NS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTYtXFxudmlydC9rdm0vS2NvbmZpZzo5Nzpjb25maWcgS1ZNX0VMSURFX1RMQl9GTFVTSF9JRl9ZT1VOR1xcbnZpcnQva3ZtL0tjb25maWctOTgtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxcbnZpcnQva3ZtL0tjb25maWc6MTAwOmNvbmZpZyBLVk1fTU1VX0xPQ0tMRVNTX0FHSU5HXFxudmlydC9rdm0vS2NvbmZpZy0xMDEtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cXG52aXJ0L2t2bS9LY29uZmlnOjEwMzpjb25maWcgS1ZNX0dFTkVSSUNfTUVNT1JZX0FUVFJJQlVURVNcXG52aXJ0L2t2bS9LY29uZmlnLTEwNC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTA1LVxcbnZpcnQva3ZtL0tjb25maWc6MTA2OmNvbmZpZyBLVk1fR1VFU1RfTUVNRkRcXG52aXJ0L2t2bS9LY29uZmlnLTEwNy0gICAgICAgc2VsZWN0IFhBUlJBWV9NVUxUSVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1OToyNS42MTU4NDk5MjVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MTU4MTk4NTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIGEgS1ZNIFBhdGNoIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duIGZvciBmdXp6aW5nLiBXZSdyZSBsb29raW5nIGF0IGEgcGF0Y2ggcmVsYXRlZCB0byBLVk0sIHNwZWNpZmljYWxseSBmb3IgeDg2IHdpdGggVk1YLCBoZW5jZSBgS1ZNYCBhbmQgYEtWTV9JTlRFTGAgYXJlIGtleS4gV2Ugc2hvdWxkIGNoZWNrIGBhcmNoL3g4Ni9rdm0vS2NvbmZpZ2AgZm9yIHRoZSBkZXBlbmRlbmNpZXMgb2YgYEtWTV9JTlRFTGA7IGl0J3MgZ29pbmcgdG8gZGVwZW5kIG9uIGBLVk1gLCBvYnZpb3VzbHkuXG5cblNvLCBmb3IgY29uZmlndXJhdGlvbiwgd2UgbmVlZCB0byBlbmFibGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgLiBUaGF0J3MgdGhlIGJhc2VsaW5lLlxuXG5Ob3csIGZvciBmb2N1cyBzeW1ib2xzLCBsZXQncyBzZWUuLi4gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSXQncyBhIEtWTSBpb2N0bCBoYW5kbGVyLCBzbyBpdCdzIGEgZGlyZWN0IGVudHJ5IHBvaW50LiBJdCdzIGFsbW9zdCBhbHdheXMgYSBnb29kIGlkZWEgdG8gdGFyZ2V0IGlvY3Rscy4gQW5kLCBgdm14X2NsZWFyX2hsdGAuIE9oLCB3YWl0LCB3YXMgYHZteF9jbGVhcl9obHRgIGV2ZW4gKmluKiB0aGUgcGF0Y2g/IEhtbS4uLlxuXG5ZZXMsIGl0IGxvb2tzIGxpa2UgYHZteF9jbGVhcl9obHRgIHdhcyBwcmVzZW50LCBidXQgdGhlIHBhdGNoIGNoYW5nZWQgaXRzIHZpc2liaWxpdHkuIEl0IHdhcyBzdGF0aWMsIGFuZCBub3cgaXQncyBub24tc3RhdGljLiBMZXQncyBsb29rIGF0IHRoZSBkaWZmOiBgc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpYCBiZWNhbWUgYHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpYC4gQWhhISBNYWtpbmcgaXQgbm9uLXN0YXRpYyBzdWdnZXN0cyBpdCdzIGJlaW5nICp1c2VkKiBtb3JlIGdlbmVyYWxseSBub3csIHdoaWNoIGxpa2VseSBtZWFucyBpdCdzIHdvcnRoIGZ1enppbmchXG5cbk9rYXksIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXM6IHRoZSBwYXRjaCBmdW5kYW1lbnRhbGx5IGFsdGVycyBob3cgS1ZNIG1hbmFnZXMgdkNQVSBzdGF0ZS4gSXQgaW50cm9kdWNlcyBhIGBjbGVhcl9obHRgIG9wZXJhdGlvbiB3aXRoaW4gYGt2bV94ODZfb3BzYCBhbmQgY2FsbHMgaXQgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGVzIGxpa2UgVk1YJ3MgSExUIHN0YXRlLCB3aGljaCBhcHBlYXJzIHRvIGZpeCBhIHByZXR0eSBuYXN0eSB3ZWRnaW5nIGJ1Zy4gVGhhdCBtYWtlcyBpdCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIGFuZCBzaG91bGQgYmUgZnV6emVkIGZvciBzdXJlLlxuXG5TbywgbGV0J3MgcHJlcGFyZSB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uOlxuYFdvcnRoRnV6emluZ2A6IFRydWVcbmBGb2N1c1N5bWJvbHNgOiBgW1wia3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZVwiLCBcInZteF9jbGVhcl9obHRcIl1gXG5gRW5hYmxlQ29uZmlnc2A6IGBbXCJLVk1cIiwgXCJLVk1fSU5URUxcIl1gXG5gUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgS1ZNIHZDUFUgc3RhdGUgbWFuYWdlbWVudCBieSBhZGRpbmcgYSBuZXcgY2xlYXJfaGx0IG9wZXJhdGlvbiB0byBrdm1feDg2X29wcyBhbmQgY2FsbGluZyBpdCB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIEtWTV9NUF9TVEFURV9SVU5OQUJMRS4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlIChsaWtlIFZNWCdzIEhMVCBzdGF0ZSksIGZpeGluZyBhIGJ1ZyB3aGVyZSBhIHZDUFUgY291bGQgc3RheSB3ZWRnZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCJcblxuXG4iLCJJbnB1dFRva2VucyI6MTEzMDgsIk91dHB1dFRva2VucyI6MTcwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE5VDAzOjU5OjM0Ljc3NDA1MTAxMloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2NTcwOTQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVcIixcbiAgICBcInZteF9jbGVhcl9obHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJ3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVcIixcbiAgICBcInZteF9jbGVhcl9obHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJ3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTk6MzQuODUwNjI4NzU1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTI0MzU2MTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTk6MzQuODUxMTEyMTk1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjcxMjM4Njg5NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHRvIGBrdm1feDg2X29wc2AgdG8gY2xlYXIgdGhlIGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlIG9mIGEgdkNQVSB3aGVuIHVzZXJzcGFjZSBzZXRzIGl0cyBtdWx0aXByb2Nlc3Npbmcgc3RhdGUgdG8gYEtWTV9NUF9TVEFURV9SVU5OQUJMRWAuIFRoaXMgaXMgYSBjb250cm9sIGZsb3cgYW5kIHN0YXRlIG1hbmFnZW1lbnQgZml4IGZvciBLVk0vVk1YLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIG1lbW9yeSBhbGxvY2F0aW9ucywgb3IgZGF0YSBjb3BpZWQgdG8gdXNlciBzcGFjZS4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMgYXJlIHN1ZmZpY2llbnQgZm9yIHRoaXMgY29kZS5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyN2VmYTUzZTQzMGU4MWY5NzliNzRlNjM2MTNkZWRlZTI5YjgwNzBhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMTkgMDM6NTg6MDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbkBAIC04Miw2ICs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChubWlfYWxsb3dlZClcbiBLVk1fWDg2X09QKGdldF9ubWlfbWFzaylcbiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaylcbitLVk1fWDg2X09QX09QVElPTkFMKGNsZWFyX2hsdClcbiBLVk1fWDg2X09QKGVuYWJsZV9ubWlfd2luZG93KVxuIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpXG4gS1ZNX1g4Nl9PUF9PUFRJT05BTCh1cGRhdGVfY3I4X2ludGVyY2VwdClcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbkBAIC0xNjA3LDYgKzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcbiBcdGludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gXHRib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4rXHQvKlxuK1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZC9pbmFjdGl2ZSBzdGF0ZSBzb1xuK1x0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cbitcdCAqIE9ubHkgbmVlZGVkIGJ5IFZNWCwgd2hlcmUgVk1DUy5HVUVTVF9BQ1RJVklUWV9TVEFURSBwZXJzaXN0cyBhY3Jvc3NcbitcdCAqIFZNLUV4aXQvVk0tRW50ZXI7IFNWTSBoYXMgbm8gZXF1aXZhbGVudCBWTUNCIGZpZWxkLlxuK1x0ICovXG4rXHR2b2lkICgqY2xlYXJfaGx0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0LyogV2hldGhlciBvciBub3QgYSB2aXJ0dWFsIE5NSSBpcyBwZW5kaW5nIGluIGhhcmR3YXJlLiAqL1xuIFx0Ym9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuaW5kZXggMGZmMzIzMGZkOTVlOC4uNzRjZTlkZDcwNDE5MSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuQEAgLTYwMSw2ICs2MDEsMTggQEAgc3RhdGljIHZvaWQgdnRfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpXG4gXHR2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4re1xuK1x0LypcbitcdCAqIFREWCBkb2Vzbid0IHN1cHBvcnQgZGlzYWJsaW5nIEhMVC1leGl0aW5nLCBhbmQgS1ZNIGNhbid0IGFjY2VzcyBhXG4rXHQgKiBURCdzIFZNQ1MsIHNvIHRoZXJlIGlzIG5ldmVyIGFueSBoYXJkd2FyZSBoYWx0ZWQgc3RhdGUgdG8gY2xlYXIuXG4rXHQgKi9cbitcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuK1x0XHRyZXR1cm47XG4rXG4rXHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuK31cbitcbiBzdGF0aWMgdm9pZCB2dF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuIFx0LyogUmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIHRkeF9pbmplY3Rfbm1pKCkuICovXG5AQCAtOTY0LDYgKzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXHQubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksXG4gXHQuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSxcbiBcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxuK1x0LmNsZWFyX2hsdCA9IHZ0X29wKGNsZWFyX2hsdCksXG4gXHQuZW5hYmxlX25taV93aW5kb3cgPSB2dF9vcChlbmFibGVfbm1pX3dpbmRvdyksXG4gXHQuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksXG4gXHQudXBkYXRlX2NyOF9pbnRlcmNlcHQgPSB2dF9vcCh1cGRhdGVfY3I4X2ludGVyY2VwdCksXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbmluZGV4IGUzYmZlNmFjYTFhMGUuLjhhZDc5YzYwZWNjNmYgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5AQCAtMTkwOSw3ICsxOTA5LDcgQEAgaW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdHJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qXG4gXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJ3QgbmVlZCB0b1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbmluZGV4IGNkYjM4ZDk0MGNmYjcuLjQ1ZTQ3ZjUwMmEzNzAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbkBAIC05NSw2ICs5NSw3IEBAIGludCB2bXhfaW50ZXJydXB0X2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIGJvb2wgdm14X2dldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjc3NzdjZjg4YTk2YjAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbisrKyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTkwNTgsNiArOTA1OCwxOSBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHR9XG4gXG4gXHRrdm1fc2V0X21wX3N0YXRlKHZjcHUsIG1wX3N0YXRlLVx1MDAzZW1wX3N0YXRlKTtcbitcbitcdC8qXG4rXHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUsIGUuZy4gVk1YJ3NcbitcdCAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVC4gIFRoYXQgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxuK1x0ICogVk0tRW50ZXIgYW5kIGlzIG5vdCB0b3VjaGVkIGJ5IGFueSBvdGhlciBpb2N0bCwgc28gYSB2Q1BVIHRoYXQgaGFsdGVkXG4rXHQgKiB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkIChLVk1fWDg2X0RJU0FCTEVfRVhJVFNfSExUKSBzdGF5cyB3ZWRnZWRcbitcdCAqIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIGRlY2xhcmVzIGl0IFJVTk5BQkxFIGFuZCByZXdyaXRlcyBpdHMgcmVnaXN0ZXJzLFxuK1x0ICogZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tIEhMVCBpc1xuK1x0ICogYXJjaGl0ZWN0dXJhbGx5IGFsbG93ZWQgdG8gYmUgc3B1cmlvdXMsIHNvIGNsZWFyaW5nIGl0IGlzIGFsd2F5cyBzYWZlLlxuK1x0ICovXG4rXHRpZiAodmNwdS1cdTAwM2VhcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9SVU5OQUJMRSlcbitcdFx0a3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7XG4rXG4gXHRrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpO1xuIFxuIFx0cmV0ID0gMDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE5VDAzOjU5OjM0Ljg1MTExMjg3NVoiLCJTZXEiOjEzLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MTIzODQ0NzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEtWTS9WTVggSExULUNsZWFyaW5nIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHdpdGhpbiBga3ZtX3g4Nl9vcHNgIGFuZCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50cyBpdCBmb3IgVk1YLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQgZ2V0cyBpbnZva2VkIHdpdGhpbiBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgd2hlbmV2ZXIgYSB2Q1BVJ3MgbXVsdGlwcm9jZXNzaW5nIHN0YXRlIHRyYW5zaXRpb25zIHRvIGBLVk1fTVBfU1RBVEVfUlVOTkFCTEVgLiBUaGlzIGFkZHJlc3NlcyBhIGtub3duIGlzc3VlIHdoZXJlIGEgdkNQVSwgaGFsdGVkIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQsIGNvdWxkIGJlY29tZSBzdHVjayBhZnRlciB1c2Vyc3BhY2Ugc2lnbmFscyB0aGF0IGl0IHNob3VsZCBiZWNvbWUgcnVubmFibGUuXG5cbk5vdywgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLCBJIG5lZWQgdG8gZXZhbHVhdGUgdGhlIHBvdGVudGlhbCBmb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2UuIEFmdGVyIGEgY2FyZWZ1bCByZXZpZXcsIEkndmUgY29uY2x1ZGVkIHRoYXQgdGhlcmUgYXJlIG5vIHN1Y2ggcmlza3MgaW4gdGhpcyBwYXRjaC4gSXQncyBhIHN0cmFpZ2h0Zm9yd2FyZCBmaXggaW52b2x2aW5nIGNvbnRyb2wgZmxvdyBhbmQgc3RhdGUgbWFuYWdlbWVudC4gVGhlIHBhdGNoIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgc3RydWN0dXJlcyB0aGF0IGFyZSBleHBvc2VkIHRvIHVzZXJzcGFjZS4gSXQgZG9lc24ndCB1c2UgYW55IGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIG9yIG1lbW9yeSBhbGxvY2F0aW9ucyB0aGF0IGNvdWxkIGxlYWQgdG8gdnVsbmVyYWJpbGl0aWVzLiBSZWFsbHksIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgc2ltcGx5IGFkZGluZyBhIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYGt2bV94ODZfb3BzYCBhbmQgdGhlbiBjYWxsaW5nIHRoZSBwcmUtZXhpc3RpbmcgYHZteF9jbGVhcl9obHRgIGZ1bmN0aW9uLCB3aGljaCB3YXMgcHJldmlvdXNseSBhIHN0YXRpYyBmdW5jdGlvbi5cblxuR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlcywgSSdtIGNvbmZpZGVudCB0aGF0IEtNU0FOIGlzIG5vdCBuZWNlc3NhcnkgaGVyZS4gU3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gY2F0Y2ggYW55IHBvdGVudGlhbCBpc3N1ZXMuIFRoZXJlZm9yZSwgSSB3aWxsIHNldCBgTmVlZHNLTVNBTj1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MTksIk91dHB1dFRva2VucyI6MTUzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTk6NDEuOTc0OTYwNzU0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg2NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGBjbGVhcl9obHRgIG9wZXJhdGlvbiB0byBga3ZtX3g4Nl9vcHNgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSBvZiBhIHZDUFUgd2hlbiB1c2Vyc3BhY2Ugc2V0cyBpdHMgbXVsdGlwcm9jZXNzaW5nIHN0YXRlIHRvIGBLVk1fTVBfU1RBVEVfUlVOTkFCTEVgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGZpeCBmb3IgS1ZNL1ZNWC4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBtZW1vcnkgYWxsb2NhdGlvbnMsIG9yIGRhdGEgY29waWVkIHRvIHVzZXIgc3BhY2UuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzIGFyZSBzdWZmaWNpZW50IGZvciB0aGlzIGNvZGUuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2xlYXJfaGx0YCBvcGVyYXRpb24gdG8gYGt2bV94ODZfb3BzYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgb2YgYSB2Q1BVIHdoZW4gdXNlcnNwYWNlIHNldHMgaXRzIG11bHRpcHJvY2Vzc2luZyBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgc3RhdGUgbWFuYWdlbWVudCBmaXggZm9yIEtWTS9WTVguIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgbWVtb3J5IGFsbG9jYXRpb25zLCBvciBkYXRhIGNvcGllZCB0byB1c2VyIHNwYWNlLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycyBhcmUgc3VmZmljaWVudCBmb3IgdGhpcyBjb2RlLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowzlqq8[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-19 03:56:07 +0000 UTC FinishedAt: 2026-08-19 03:59:44 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "1b731e5ded480bd1e5546aed35584238661ce72e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM", "KVM_INTEL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-x86", "tree_url": "https://github.com/kvm-x86/linux.git", "commit_hash": "1b731e5ded480bd1e5546aed35584238661ce72e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM", "KVM_INTEL" ], "series_id": "a16af01a-0103-4ae9-b992-3f40b0988c79" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_arch_vcpu_ioctl_set_mpstate", "vmx_clear_hlt" ], "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+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlJiMzNDssCiAgICAmIzM0O3ZteF9jbGVhcl9obHQmIzM0OwogIF0sCiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGBjbGVhcl9obHRgIG9wZXJhdGlvbiB0byBga3ZtX3g4Nl9vcHNgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSBvZiBhIHZDUFUgd2hlbiB1c2Vyc3BhY2Ugc2V0cyBpdHMgbXVsdGlwcm9jZXNzaW5nIHN0YXRlIHRvIGBLVk1fTVBfU1RBVEVfUlVOTkFCTEVgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGZpeCBmb3IgS1ZNL1ZNWC4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBtZW1vcnkgYWxsb2NhdGlvbnMsIG9yIGRhdGEgY29waWVkIHRvIHVzZXIgc3BhY2UuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzIGFyZSBzdWZmaWNpZW50IGZvciB0aGlzIGNvZGUuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIEtWTSB2Q1BVIHN0YXRlIG1hbmFnZW1lbnQgYnkgYWRkaW5nIGEgbmV3IGNsZWFyX2hsdCBvcGVyYXRpb24gdG8ga3ZtX3g4Nl9vcHMgYW5kIGNhbGxpbmcgaXQgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBLVk1fTVBfU1RBVEVfUlVOTkFCTEUuIFRoaXMgZm9yY2VzIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBpbmFjdGl2ZSBzdGF0ZSAobGlrZSBWTVgmIzM5O3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwMzo1ODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI3ZWZhNTNlNDMwZTgxZjk3OWI3NGU2MzYxM2RlZGVlMjliODA3MGFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAxOSAwMzo1ODowMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbkBAIC04Miw2ICYjNDM7ODIsNyBAQCBLVk1fWDg2X09QKGludGVycnVwdF9hbGxvd2VkKVxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChnZXRfbm1pX21hc2spXG4gS1ZNX1g4Nl9PUChzZXRfbm1pX21hc2spXG4mIzQzO0tWTV9YODZfT1BfT1BUSU9OQUwoY2xlYXJfaGx0KVxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXG4gS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdylcbiBLVk1fWDg2X09QX09QVElPTkFMKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KVxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuQEAgLTE2MDcsNiAmIzQzOzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcbiBcdGludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gXHRib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkL2luYWN0aXZlIHN0YXRlIHNvXG4mIzQzO1x0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cbiYjNDM7XHQgKiBPbmx5IG5lZWRlZCBieSBWTVgsIHdoZXJlIFZNQ1MuR1VFU1RfQUNUSVZJVFlfU1RBVEUgcGVyc2lzdHMgYWNyb3NzXG4mIzQzO1x0ICogVk0tRXhpdC9WTS1FbnRlcjsgU1ZNIGhhcyBubyBlcXVpdmFsZW50IFZNQ0IgZmllbGQuXG4mIzQzO1x0ICovXG4mIzQzO1x0dm9pZCAoKmNsZWFyX2hsdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cbiBcdGJvb2wgKCppc192bm1pX3BlbmRpbmcpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHQvKlxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jIGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbkBAIC02MDEsNiAmIzQzOzYwMSwxOCBAQCBzdGF0aWMgdm9pZCB2dF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZClcbiBcdHZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4mIzQzO3tcbiYjNDM7XHQvKlxuJiM0MztcdCAqIFREWCBkb2VzbiYjMzk7dCBzdXBwb3J0IGRpc2FibGluZyBITFQtZXhpdGluZywgYW5kIEtWTSBjYW4mIzM5O3QgYWNjZXNzIGFcbiYjNDM7XHQgKiBURCYjMzk7cyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxuJiM0MztcdCAqL1xuJiM0MztcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cbkBAIC05NjQsNiAmIzQzOzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXHQubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksXG4gXHQuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSxcbiBcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxuJiM0MztcdC5jbGVhcl9obHQgPSB2dF9vcChjbGVhcl9obHQpLFxuIFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxuIFx0LmVuYWJsZV9pcnFfd2luZG93ID0gdnRfb3AoZW5hYmxlX2lycV93aW5kb3cpLFxuIFx0LnVwZGF0ZV9jcjhfaW50ZXJjZXB0ID0gdnRfb3AodXBkYXRlX2NyOF9pbnRlcmNlcHQpLFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuQEAgLTE5MDksNyAmIzQzOzE5MDksNyBAQCBpbnQgdm14X3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0cmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qXG4gXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJiMzOTt0IG5lZWQgdG9cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5pbmRleCBjZGIzOGQ5NDBjZmI3Li40NWU0N2Y1MDJhMzcwIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG5AQCAtOTUsNiAmIzQzOzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gYm9vbCB2bXhfZ2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjc3NzdjZjg4YTk2YjAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTkwNTgsNiAmIzQzOzkwNTgsMTkgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuIFx0fVxuIFxuIFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cdTAwM2VtcF9zdGF0ZSk7XG4mIzQzO1xuJiM0MztcdC8qXG4mIzQzO1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlLCBlLmcuIFZNWCYjMzk7c1xuJiM0MztcdCAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVC4gIFRoYXQgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxuJiM0MztcdCAqIFZNLUVudGVyIGFuZCBpcyBub3QgdG91Y2hlZCBieSBhbnkgb3RoZXIgaW9jdGwsIHNvIGEgdkNQVSB0aGF0IGhhbHRlZFxuJiM0MztcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgKEtWTV9YODZfRElTQUJMRV9FWElUU19ITFQpIHN0YXlzIHdlZGdlZFxuJiM0MztcdCAqIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIGRlY2xhcmVzIGl0IFJVTk5BQkxFIGFuZCByZXdyaXRlcyBpdHMgcmVnaXN0ZXJzLFxuJiM0MztcdCAqIGUuZy4gd2hlbiBhIFZNTSBlbXVsYXRlcyBhIG1hY2hpbmUgcmVzZXQuICBXYWtpbmcgZnJvbSBITFQgaXNcbiYjNDM7XHQgKiBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMgYWx3YXlzIHNhZmUuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKHZjcHUtXHUwMDNlYXJjaC5tcF9zdGF0ZSA9PSBLVk1fTVBfU1RBVEVfUlVOTkFCTEUpXG4mIzQzO1x0XHRrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KTtcbiYjNDM7XG4gXHRrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpO1xuIFxuIFx0cmV0ID0gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwMzo1ODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDssCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywKICAgICYjMzQ7dm14X2NsZWFyX2hsdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJiMzOTtzIEhMVCBzdGF0ZSksIGZpeGluZyBhIGJ1ZyB3aGVyZSBhIHZDUFUgY291bGQgc3RheSB3ZWRnZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyN2VmYTUzZTQzMGU4MWY5NzliNzRlNjM2MTNkZWRlZTI5YjgwNzBhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBBdWcgMTkgMDM6NTg6MDIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaAppbmRleCBlMjEzYzlhZTNlMzAxLi5kZDkwMjZjMTA3MWNlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmgKQEAgLTgyLDYgJiM0Mzs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpCiBLVk1fWDg2X09QKG5taV9hbGxvd2VkKQogS1ZNX1g4Nl9PUChnZXRfbm1pX21hc2spCiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaykKJiM0MztLVk1fWDg2X09QX09QVElPTkFMKGNsZWFyX2hsdCkKIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpCiBLVk1fWDg2X09QKGVuYWJsZV9pcnFfd2luZG93KQogS1ZNX1g4Nl9PUF9PUFRJT05BTCh1cGRhdGVfY3I4X2ludGVyY2VwdCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmluZGV4IDI4Mzg0NzYxOWZmODguLmU1YTA3NTg1MzZlMTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaApAQCAtMTYwNyw2ICYjNDM7MTYwNywxMyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMgewogCWludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7CiAJYm9vbCAoKmdldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIAl2b2lkICgqc2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTsKJiM0MzsJLyoKJiM0MzsJICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZC9pbmFjdGl2ZSBzdGF0ZSBzbwomIzQzOwkgKiB0aGF0IGl0IHdpbGwgZmV0Y2ggYW5kIGV4ZWN1dGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBuZXh0IFZNLUVudGVyLgomIzQzOwkgKiBPbmx5IG5lZWRlZCBieSBWTVgsIHdoZXJlIFZNQ1MuR1VFU1RfQUNUSVZJVFlfU1RBVEUgcGVyc2lzdHMgYWNyb3NzCiYjNDM7CSAqIFZNLUV4aXQvVk0tRW50ZXI7IFNWTSBoYXMgbm8gZXF1aXZhbGVudCBWTUNCIGZpZWxkLgomIzQzOwkgKi8KJiM0MzsJdm9pZCAoKmNsZWFyX2hsdCkoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIAkvKiBXaGV0aGVyIG9yIG5vdCBhIHZpcnR1YWwgTk1JIGlzIHBlbmRpbmcgaW4gaGFyZHdhcmUuICovCiAJYm9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIAkvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uYwppbmRleCAwZmYzMjMwZmQ5NWU4Li43NGNlOWRkNzA0MTkxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uYwpAQCAtNjAxLDYgJiM0Mzs2MDEsMTggQEAgc3RhdGljIHZvaWQgdnRfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpCiAJdm14X3NldF9ubWlfbWFzayh2Y3B1LCBtYXNrZWQpOwogfQogCiYjNDM7c3RhdGljIHZvaWQgdnRfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKJiM0Mzt7CiYjNDM7CS8qCiYjNDM7CSAqIFREWCBkb2VzbiYjMzk7dCBzdXBwb3J0IGRpc2FibGluZyBITFQtZXhpdGluZywgYW5kIEtWTSBjYW4mIzM5O3QgYWNjZXNzIGEKJiM0MzsJICogVEQmIzM5O3MgVk1DUywgc28gdGhlcmUgaXMgbmV2ZXIgYW55IGhhcmR3YXJlIGhhbHRlZCBzdGF0ZSB0byBjbGVhci4KJiM0MzsJICovCiYjNDM7CWlmIChpc190ZF92Y3B1KHZjcHUpKQomIzQzOwkJcmV0dXJuOwomIzQzOwomIzQzOwl2bXhfY2xlYXJfaGx0KHZjcHUpOwomIzQzO30KJiM0MzsKIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAkvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi8KQEAgLTk2NCw2ICYjNDM7OTc2LDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHsKIAkubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksCiAJLmdldF9ubWlfbWFzayA9IHZ0X29wKGdldF9ubWlfbWFzayksCiAJLnNldF9ubWlfbWFzayA9IHZ0X29wKHNldF9ubWlfbWFzayksCiYjNDM7CS5jbGVhcl9obHQgPSB2dF9vcChjbGVhcl9obHQpLAogCS5lbmFibGVfbm1pX3dpbmRvdyA9IHZ0X29wKGVuYWJsZV9ubWlfd2luZG93KSwKIAkuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksCiAJLnVwZGF0ZV9jcjhfaW50ZXJjZXB0ID0gdnRfb3AodXBkYXRlX2NyOF9pbnRlcmNlcHQpLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmMKaW5kZXggZTNiZmU2YWNhMWEwZS4uOGFkNzljNjBlY2M2ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCkBAIC0xOTA5LDcgJiM0MzsxOTA5LDcgQEAgaW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlyZXR1cm4gc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbih2Y3B1KTsKIH0KIAotc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiYjNDM7dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAkvKgogCSAqIEVuc3VyZSB0aGF0IHdlIGNsZWFyIHRoZSBITFQgc3RhdGUgaW4gdGhlIFZNQ1MuICBXZSBkb24mIzM5O3QgbmVlZCB0bwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmggYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaAppbmRleCBjZGIzOGQ5NDBjZmI3Li40NWU0N2Y1MDJhMzcwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaApAQCAtOTUsNiAmIzQzOzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7CiBpbnQgdm14X25taV9hbGxvd2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTsKIGJvb2wgdm14X2dldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpOwomIzQzO3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF91cGRhdGVfY3I4X2ludGVyY2VwdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCB0cHIsIGludCBpcnIpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IGQ5NGI1OTE0MGM0NTIuLjc3NzdjZjg4YTk2YjAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTkwNTgsNiAmIzQzOzkwNTgsMTkgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCX0KIAogCWt2bV9zZXRfbXBfc3RhdGUodmNwdSwgbXBfc3RhdGUtJmd0O21wX3N0YXRlKTsKJiM0MzsKJiM0MzsJLyoKJiM0MzsJICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlLCBlLmcuIFZNWCYjMzk7cwomIzQzOwkgKiBHVUVTVF9BQ1RJVklUWV9TVEFURT1ITFQuICBUaGF0IHN0YXRlIGlzIHN0aWNreSBhY3Jvc3MgVk0tRXhpdCBhbmQKJiM0MzsJICogVk0tRW50ZXIgYW5kIGlzIG5vdCB0b3VjaGVkIGJ5IGFueSBvdGhlciBpb2N0bCwgc28gYSB2Q1BVIHRoYXQgaGFsdGVkCiYjNDM7CSAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgKEtWTV9YODZfRElTQUJMRV9FWElUU19ITFQpIHN0YXlzIHdlZGdlZAomIzQzOwkgKiBldmVuIGFmdGVyIHVzZXJzcGFjZSBkZWNsYXJlcyBpdCBSVU5OQUJMRSBhbmQgcmV3cml0ZXMgaXRzIHJlZ2lzdGVycywKJiM0MzsJICogZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tIEhMVCBpcwomIzQzOwkgKiBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMgYWx3YXlzIHNhZmUuCiYjNDM7CSAqLwomIzQzOwlpZiAodmNwdS0mZ3Q7YXJjaC5tcF9zdGF0ZSA9PSBLVk1fTVBfU1RBVEVfUlVOTkFCTEUpCiYjNDM7CQlrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KTsKJiM0MzsKIAlrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpOwogCiAJcmV0ID0gMDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkyMgoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDQ5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEhMVCBDbGVhcmluZyBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCB0aGF0IGludHJvZHVjZXMgYSBgY2xlYXJfaGx0YCBvcGVyYXRpb24gdG8gdGhlIGBrdm1feDg2X29wc2Agc3RydWN0dXJlLiBJdCYjMzk7cyBpbXBsZW1lbnRlZCBmb3IgVk1YLCBhbmQgVERYLCB3aGljaCBqdXN0IHJldHVybnMgKGxpa2VseSBiZWNhdXNlIFREWCBoYW5kbGVzIHRoaXMgZGlmZmVyZW50bHkgYXQgYSBsb3dlciBsZXZlbCkuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggbW9kaWZpZXMgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHRvIGNhbGwgYGt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpYCB3aGVuZXZlciB0aGUgdkNQVSYjMzk7cyBNUCBzdGF0ZSBpcyBzZXQgdG8gYEtWTV9NUF9TVEFURV9SVU5OQUJMRWAuIExldCYjMzk7cyBicmVhayBkb3duIGlmIGl0JiMzOTtzIHJlYWNoYWJsZSBhbmQgYWN0dWFsbHkgZnVuY3Rpb25hbC4KClJpZ2h0LCBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaGFuZGxlcyB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsIG9uIGEgdkNQVS4gVGhhdCBtZWFucyBpdCYjMzk7cyBkZWZpbml0ZWx5IGFjY2Vzc2libGUgZnJvbSB1c2Vyc3BhY2Ug4oCTIHRvb2xzIGxpa2Ugc3l6a2FsbGVyIGNhbiBkaXJlY3RseSB0cmlnZ2VyIHRoaXMsIHNvIHRoYXQmIzM5O3MgZ29vZC4gVGhlIGludGVudCBoZXJlIGlzIHRvIGZpeCBhIHByZXR0eSBuYXN0eSBidWcgd2hlcmUgYSB2Q1BVIHRoYXQgaGFsdGVkIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgd291bGQgZ2V0IHN0dWNrIGV2ZW4gaWYgdXNlcnNwYWNlIHNldHMgaXQgdG8gUlVOTkFCTEUuIFRoaXMgcGF0Y2ggc2hvdWxkIGNsZWFyIHRoZSBITFQgc3RhdGUgaW4gdGhlIFZNQ1MuCgpOb3csIHRoZSBjb2RlLiBJdCYjMzk7cyBpbiBgYXJjaC94ODYva3ZtL3g4Ni5jYC4gVGhlIG5ldyBjb2RlIHRoYXQgdGhlIHBhdGNoIGFkZGVkIGxvb2tzIHByZXR0eSBzdHJhaWdodGZvcndhcmQ6CgpgYGBjCglpZiAodmNwdS0mZ3Q7YXJjaC5tcF9zdGF0ZSA9PSBLVk1fTVBfU1RBVEVfUlVOTkFCTEUpCgkJa3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7CmBgYAoKSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZTsgaXQmIzM5O3MgZ29pbmcgdG8gY2xlYXIgdGhlIEhMVCBzdGF0ZSB3aXRoaW4gdGhlIFZNQ1MuIFNlZW1zIHJlYXNvbmFibGUuIE5vdywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyBBYnNvbHV0ZWx5LCBiZWNhdXNlIHRoaXMgaXMgZGVhbGluZyB3aXRoIEtWTSB2Q1BVIHN0YXRlIG1hbmFnZW1lbnQuCgpXaGVyZSBkbyBJIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cz8gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGlzIGEgcHJpbWUgY2FuZGlkYXRlLiBUaGVuLCBvZiBjb3Vyc2UsIHRoZSBhY3R1YWwgYHZ0X2NsZWFyX2hsdGAgYW5kIGB2bXhfY2xlYXJfaGx0YCBmdW5jdGlvbnMgdGhhdCBkbyB0aGUgaGVhdnkgbGlmdGluZyBhcmUgYWxzbyBjcml0aWNhbC4gTGV0JiMzOTtzIHNlZS4uLiBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaXMgYW4gQVBJIGVudHJ5cG9pbnQuIEFuZCBub3cgYHZ0X2NsZWFyX2hsdGAgaXMgc3RhdGljLCB3aGljaCBjYW4gY29tcGxpY2F0ZSBkaXJlY3QgZnV6emluZywgYnV0IGB2bXhfY2xlYXJfaGx0YCBpc24mIzM5O3QuIEkmIzM5O2xsIG5lZWQgdG8gcmVtZW1iZXIgdG8gY2hlY2sgaG93IHRoZSBzdGF0aWMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIHJlbGF0aW9uIHRvIHRoZSB2bXggZnVuY3Rpb24uIEkgd2lsbCB1c2UgYGdyZXBwZXJgIG9uIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjb25maXJtIGl0cyBjYWxsIGdyYXBoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL2FybTY0L2t2bS9hcm0uYz03ODY9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvYXJtNjQva3ZtL2FybS5jLTc5My1cbmFyY2gvYXJtNjQva3ZtL2FybS5jOjc5NDppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL2FybTY0L2t2bS9hcm0uYy03OTUtXHRcdFx0XHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXG4tLVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYz00Njc9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS92Y3B1LmMtNDc0LVxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYzo0NzU6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy00NzYtXHRcdFx0XHRzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5hcmNoL21pcHMva3ZtL21pcHMuYz01MTU9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvbWlwcy9rdm0vbWlwcy5jLTUyMC1cbmFyY2gvbWlwcy9rdm0vbWlwcy5jOjUyMTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL21pcHMva3ZtL21pcHMuYy01MjItXHRcdFx0XHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmM9MjAxMz1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmMtMjAxOC1cbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jOjIwMTk6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmMtMjAyMC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmM9NDk2PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmMtNTAzLVxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jOjUwNDppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmMtNTA1LVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYz00MjYxPWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMtNDI3NS1cbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYzo0Mjc2OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYy00Mjc3LVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmFyY2gveDg2L2t2bS94ODYuYz05MDAwPWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbi0tXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTAyNS1cbmFyY2gveDg2L2t2bS94ODYuYzo5MDI2OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmFyY2gveDg2L2t2bS94ODYuYy05MDI3LVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxuLS1cbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaD0xNjM5PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaC0xNjQwLVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKTtcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaDoxNjQxOmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbmluY2x1ZGUvbGludXgva3ZtX2hvc3QuaC0xNjQyLVx0XHRcdFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwMzo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MjI2CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIHRoZXNlIHRoaW5nczoKCioqQW5hbHl6aW5nIFBvdGVudGlhbCBGb2N1cyBTeW1ib2xzIGluIEtWTS9WTVgqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gYSBnb29kIGVudHJ5IHBvaW50LiBUaGUgZnVuY3Rpb24gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHNlZW1zIGxpa2UgYSBzb2xpZCBjYW5kaWRhdGUgZm9yIGFuYWx5c2lzLiBJdCYjMzk7cyBvZnRlbiBpbnZvbHZlZCBpbiBtYW5hZ2luZyBwcm9jZXNzb3Igc3RhdGUgd2l0aGluIHRoZSBLVk0gZW52aXJvbm1lbnQsIHNvIHRoYXQmIzM5O3MgbGlrZWx5IGEgY3JpdGljYWwgYXJlYS4gQWxzbywgYHZteF9jbGVhcl9obHRgIGxvb2tzIHByb21pc2luZywgcG90ZW50aWFsbHkgZGVhbGluZyB3aXRoIGNsZWFyaW5nIHRoZSBITFQgaW5zdHJ1Y3Rpb24mIzM5O3MgZWZmZWN0IGluIGEgVk1YIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLgoKRmlyc3QsIEkgc2hvdWxkIHByb2JhYmx5IGRlbHZlIGludG8gdGhlIGRlZmluaXRpb24gb2YgYHZteF9jbGVhcl9obHRgIHRvIGdldCBhIGJldHRlciBncmlwIG9uIHdoYXQgaXQmIzM5O3MgYWN0dWFsbHkgZG9pbmcuIFVuZGVyc3RhbmRpbmcgaXRzIHByZWNpc2UgYmVoYXZpb3Igd2lsbCBiZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgbGFyZ2VyIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7XnZvaWQgdm14X2NsZWFyX2hsdCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTE5MDY9aW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5MTEtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjE5MTI6dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtMTkxMy17XG4tLVxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg9OTc9dm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg6OTg6dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaC05OS12b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY3NTkKCQkJCQkJCW91dHB1dDogMTcKCQkJCQkJCXRob3VnaHRzOiA2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4KCioqRGl2aW5nIGludG8gS1ZNICZhbXA7IENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgS1ZNLCBhbmQgc3BlY2lmaWNhbGx5IHRyeWluZyB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGtleSBhcmVhcy4gSSBuZWVkIHRvIGZvY3VzIG9uIHNvbWUgcmVsZXZhbnQgc3ltYm9scyB0byBwaW5wb2ludCB3aGVyZSB0aGUgaW50ZXJlc3RpbmcgcGFydHMgYXJlLiAgYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGFuZCBgdm14X2NsZWFyX2hsdGAganVtcCBvdXQgYXMgbGlrZWx5IGNhbmRpZGF0ZXMuIFRoZXkgbG9vayBsaWtlIHRoZXkmIzM5O3JlIGdvb2QgZW50cnkgcG9pbnRzIGZvciBkaWdnaW5nIGRlZXBlci4KCk5vdywgd2hhdCBhYm91dCB0aGUgY29uZmlndXJhdGlvbnM/IFdoYXQgYXJlIHRoZSBwcmVyZXF1aXNpdGVzPyBLVk0gaXMgdGhlIGJhc2UsIG9idmlvdXNseSwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgY2xlYXJseS4gTGV0IG1lIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgdG8gY29uZmlybSBhbmQgZnVsbHkgZGlnZXN0IGFueSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cywgc3BlY2lmaWNhbGx5IGBhcmNoL3g4Ni9rdm0vS2NvbmZpZ2AuIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhpcyBhbmQgc2VlIHdoYXQgaXQgdGVsbHMgbWUgYWJvdXQgdGhlIGJ1aWxkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBLVk0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm02NC9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9hcm02NC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvYXJtNjQva3ZtL0tjb25maWc6MjA6bWVudWNvbmZpZyBLVk1cbmFyY2gvYXJtNjQva3ZtL0tjb25maWctMjEtXHRib29sIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL2xvb25nYXJjaC9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnPTE2PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTctXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MTg6Y29uZmlnIEtWTVxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTE5LVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnLTMwLVxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjMxOmNvbmZpZyBLVk1fTUlQU19ERUJVR19DT1AwX0NPVU5URVJTXG5hcmNoL21pcHMva3ZtL0tjb25maWctMzItXHRib29sIFwmIzM0O01haW50YWluIGNvdW50ZXJzIGZvciBDT1AwIGFjY2Vzc2VzXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTktXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIxLVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNjpjb25maWcgS1ZNX0JPT0szU19IQU5ETEVSXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjctXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mjk6Y29uZmlnIEtWTV9CT09LM1NfMzJfSEFORExFUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTMwLVx0Ym9vbFxuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zMy1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozNDpjb25maWcgS1ZNX0JPT0szU182NF9IQU5ETEVSXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzUtXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM3LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjM4OmNvbmZpZyBLVk1fQk9PSzNTX1BSX1BPU1NJQkxFXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzktXHRib29sXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BPU1NJQkxFXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDMtXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNDQtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6NDU6Y29uZmlnIEtWTV9CT09LM1NfMzJcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O0tWTSBzdXBwb3J0IGZvciBQb3dlclBDIGJvb2szc18zMiBwcm9jZXNzb3JzXCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fQk9PSzNTXzY0XG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjMtXHR0cmlzdGF0ZSBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy03OC1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo3OTpjb25maWcgS1ZNX0JPT0szU182NF9IVlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTgwLVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBQT1dFUjcgYW5kIGxhdGVyIHVzaW5nIGh5cGVydmlzb3IgbW9kZSBpbiBob3N0XCYjMzQ7XG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTk5LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEwMDpjb25maWcgS1ZNX0JPT0szU182NF9QUlxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEwMS1cdHRyaXN0YXRlIFwmIzM0O0tWTSBzdXBwb3J0IHdpdGhvdXQgdXNpbmcgaHlwZXJ2aXNvciBtb2RlIGluIGhvc3RcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTI1LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyNjpjb25maWcgS1ZNX0JPT0szU19IVl9FWElUX1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEyNy1cdGJvb2xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTI5OmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A5X1RJTUlOR1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEzMC1cdGJvb2wgXCYjMzQ7RGV0YWlsZWQgdGltaW5nIGZvciB0aGUgUDkgZW50cnkgcG9pbnRcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTQxLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QOF9USU1JTkdcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNDMtXHRib29sIFwmIzM0O0RldGFpbGVkIHRpbWluZyBmb3IgaHlwZXJ2aXNvciByZWFsLW1vZGUgY29kZSAoZm9yIFBPV0VSOClcJiMzNDtcbi0tXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU2LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE1Nzpjb25maWcgS1ZNX0JPT0szU19IVl9ORVNURURfUE1VX1dPUktBUk9VTkRcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTgtXHRib29sIFwmIzM0O05lc3RlZCBMMCBob3N0IHdvcmthcm91bmQgZm9yIEwxIEtWTSBob3N0IFBNVSBoYW5kbGluZyBidWdcJiMzNDsgaWYgRVhQRVJUXG4tLVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3MS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxNzI6Y29uZmlnIEtWTV9CT09LM1NfSFZfUE1VXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTczLVx0dHJpc3RhdGUgXCYjMzQ7SHlwZXJ2aXNvciBQZXJmIGV2ZW50cyBmb3IgS1ZNIEJvb2szcy1IVlwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODMtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTg0OmNvbmZpZyBLVk1fQk9PS0VfSFZcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODUtXHRib29sXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg2LVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4Nzpjb25maWcgS1ZNX0VYSVRfVElNSU5HXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTg4LVx0Ym9vbCBcJiMzNDtEZXRhaWxlZCBleGl0IHRpbWluZ1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTctXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTk4OmNvbmZpZyBLVk1fRTUwMFYyXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTk5LVx0Ym9vbCBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwdjIgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMTItXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjEzOmNvbmZpZyBLVk1fRTUwME1DXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjE0LVx0Ym9vbCBcJiMzNDtLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBFNTAwTUMvRTU1MDAvRTY1MDAgcHJvY2Vzc29yc1wmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMjgtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fTVBJQ1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIzMC1cdGJvb2wgXCYjMzQ7S1ZNIGluLWtlcm5lbCBNUElDIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDAtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjQxOmNvbmZpZyBLVk1fWElDU1xuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI0Mi1cdGJvb2wgXCYjMzQ7S1ZNIGluLWtlcm5lbCBYSUNTIGVtdWxhdGlvblwmIzM0O1xuLS1cbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNTAtXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjUxOmNvbmZpZyBLVk1fWElWRVxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1Mi1cdGJvb2xcbi0tXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc9MjI9c291cmNlIFwmIzM0O2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWljcm93YXR0L0tjb25maWdcJiMzNDtcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yMy1cbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZzoyNDpjb25maWcgS1ZNX0dVRVNUXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWctMjUtXHRib29sIFwmIzM0O0tWTSBHdWVzdCBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZz0xNz1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTE4LVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjE5OmNvbmZpZyBLVk1cbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0yMC1cdGRlZl90cmlzdGF0ZSB5XG4tLVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ2LVxuYXJjaC9zMzkwL2t2bS9LY29uZmlnOjQ3OmNvbmZpZyBLVk1fUzM5MF9VQ09OVFJPTFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ4LVx0Ym9vbCBcJiMzNDtVc2Vyc3BhY2UgY29udHJvbGxlZCB2aXJ0dWFsIG1hY2hpbmVzXCYjMzQ7XG4tLVxuYXJjaC94ODYvS2NvbmZpZz04MjY9c291cmNlIFwmIzM0O2FyY2gveDg2L3hlbi9LY29uZmlnXCYjMzQ7XG5hcmNoL3g4Ni9LY29uZmlnLTgyNy1cbmFyY2gveDg2L0tjb25maWc6ODI4OmNvbmZpZyBLVk1fR1VFU1RcbmFyY2gveDg2L0tjb25maWctODI5LVx0Ym9vbCBcJiMzNDtLVk0gR3Vlc3Qgc3VwcG9ydCAoaW5jbHVkaW5nIGt2bWNsb2NrKVwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1fWDg2XG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMS1cdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01MS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTUzLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo2OTpjb25maWcgS1ZNX1dFUlJPUlxuYXJjaC94ODYva3ZtL0tjb25maWctNzAtXHRib29sIFwmIzM0O0NvbXBpbGUgS1ZNIHdpdGggLVdlcnJvclwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTgyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6ODM6Y29uZmlnIEtWTV9TV19QUk9URUNURURfVk1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVx0Ym9vbCBcJiMzNDtFbmFibGUgc3VwcG9ydCBmb3IgS1ZNIHNvZnR3YXJlLXByb3RlY3RlZCBWTXNcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05NS1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk3LVx0dHJpc3RhdGUgXCYjMzQ7S1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFwmIzM0O1xuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEwNzpjb25maWcgS1ZNX0lOVEVMX1BST1ZFX1ZFXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xMDgtICAgICAgICBib29sIFwmIzM0O0NoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxuLS1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzMy1cbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxuYXJjaC94ODYva3ZtL0tjb25maWctMTM1LVx0Ym9vbCBcJiMzNDtJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MTQ2OmNvbmZpZyBLVk1fQU1EXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNDctXHR0cmlzdGF0ZSBcJiMzNDtLVk0gZm9yIEFNRCBwcm9jZXNzb3JzIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTUtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNTY6Y29uZmlnIEtWTV9BTURfU0VWXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXHRib29sIFwmIzM0O0FNRCBTZWN1cmUgRW5jcnlwdGVkIFZpcnR1YWxpemF0aW9uIChTRVYpIHN1cHBvcnRcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzM6Y29uZmlnIEtWTV9JT0FQSUNcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3NC1cdGJvb2wgXCYjMzQ7SS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODItXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxODM6Y29uZmlnIEtWTV9TTU1cbmFyY2gveDg2L2t2bS9LY29uZmlnLTE4NC1cdGJvb2wgXCYjMzQ7U3lzdGVtIE1hbmFnZW1lbnQgTW9kZSBlbXVsYXRpb25cJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOTMtXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxOTQ6Y29uZmlnIEtWTV9IWVBFUlZcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgTWljcm9zb2Z0IEh5cGVyLVYgZW11bGF0aW9uXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjA3LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA4OmNvbmZpZyBLVk1fWEVOXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDktXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXCYjMzQ7XG4tLVxuYXJjaC94ODYva3ZtL0tjb25maWctMjE2LVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjE3OmNvbmZpZyBLVk1fUFJPVkVfTU1VXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMTgtXHRib29sIFwmIzM0O1Byb3ZlIEtWTSBNTVUgY29ycmVjdG5lc3NcJiMzNDtcbi0tXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMjktXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMzA6Y29uZmlnIEtWTV9FWFRFUk5BTF9XUklURV9UUkFDS0lOR1xuYXJjaC94ODYva3ZtL0tjb25maWctMjMxLVx0Ym9vbFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMyLVxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMzOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzQtXHRpbnQgXCYjMzQ7TWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFwmIzM0O1xuLS1cbnZpcnQva3ZtL0tjb25maWctMy1cbnZpcnQva3ZtL0tjb25maWc6NDpjb25maWcgS1ZNX0NPTU1PTlxudmlydC9rdm0vS2NvbmZpZy01LSAgICAgICBib29sXG4tLVxudmlydC9rdm0vS2NvbmZpZz0zOT1jb25maWcgTkVFRF9LVk1fRElSVFlfUklOR19XSVRIX0JJVE1BUFxuLS1cbnZpcnQva3ZtL0tjb25maWctNDItXG52aXJ0L2t2bS9LY29uZmlnOjQzOmNvbmZpZyBLVk1fTU1JT1xudmlydC9rdm0vS2NvbmZpZy00NC0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy00NS1cbnZpcnQva3ZtL0tjb25maWc6NDY6Y29uZmlnIEtWTV9BU1lOQ19QRlxudmlydC9rdm0vS2NvbmZpZy00Ny0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWctNDktIyBUb2dnbGUgdG8gc3dpdGNoIGJldHdlZW4gZGlyZWN0IG5vdGlmaWNhdGlvbiBhbmQgYmF0Y2ggam9iXG52aXJ0L2t2bS9LY29uZmlnOjUwOmNvbmZpZyBLVk1fQVNZTkNfUEZfU1lOQ1xudmlydC9rdm0vS2NvbmZpZy01MS0gICAgICAgYm9vbFxuLS1cbnZpcnQva3ZtL0tjb25maWc9NTk9Y29uZmlnIEhBVkVfS1ZNX0NQVV9SRUxBWF9JTlRFUkNFUFRcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTYxLVxudmlydC9rdm0vS2NvbmZpZzo2Mjpjb25maWcgS1ZNX1ZGSU9cbnZpcnQva3ZtL0tjb25maWctNjMtICAgICAgIGJvb2xcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTY1PWNvbmZpZyBIQVZFX0tWTV9JTlZBTElEX1dBS0VVUFNcbi0tXG52aXJ0L2t2bS9LY29uZmlnLTY3LVxudmlydC9rdm0vS2NvbmZpZzo2ODpjb25maWcgS1ZNX0dFTkVSSUNfRElSVFlMT0dfUkVBRF9QUk9URUNUXG52aXJ0L2t2bS9LY29uZmlnLTY5LSAgICAgICBib29sXG52aXJ0L2t2bS9LY29uZmlnLTcwLVxudmlydC9rdm0vS2NvbmZpZzo3MTpjb25maWcgS1ZNX0dFTkVSSUNfUFJFX0ZBVUxUX01FTU9SWVxudmlydC9rdm0vS2NvbmZpZy03Mi0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy03My1cbnZpcnQva3ZtL0tjb25maWc6NzQ6Y29uZmlnIEtWTV9DT01QQVRcbnZpcnQva3ZtL0tjb25maWctNzUtICAgICAgIGRlZl9ib29sIHlcbi0tXG52aXJ0L2t2bS9LY29uZmlnPTkxPWNvbmZpZyBIQVZFX0tWTV9QTV9OT1RJRklFUlxuLS1cbnZpcnQva3ZtL0tjb25maWctOTMtXG52aXJ0L2t2bS9LY29uZmlnOjk0OmNvbmZpZyBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xudmlydC9rdm0vS2NvbmZpZy05NS0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy05Ni1cbnZpcnQva3ZtL0tjb25maWc6OTc6Y29uZmlnIEtWTV9FTElERV9UTEJfRkxVU0hfSUZfWU9VTkdcbnZpcnQva3ZtL0tjb25maWctOTgtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctOTktXG52aXJ0L2t2bS9LY29uZmlnOjEwMDpjb25maWcgS1ZNX01NVV9MT0NLTEVTU19BR0lOR1xudmlydC9rdm0vS2NvbmZpZy0xMDEtICAgICAgIGJvb2xcbnZpcnQva3ZtL0tjb25maWctMTAyLVxudmlydC9rdm0vS2NvbmZpZzoxMDM6Y29uZmlnIEtWTV9HRU5FUklDX01FTU9SWV9BVFRSSUJVVEVTXG52aXJ0L2t2bS9LY29uZmlnLTEwNC0gICAgICAgYm9vbFxudmlydC9rdm0vS2NvbmZpZy0xMDUtXG52aXJ0L2t2bS9LY29uZmlnOjEwNjpjb25maWcgS1ZNX0dVRVNUX01FTUZEXG52aXJ0L2t2bS9LY29uZmlnLTEwNy0gICAgICAgc2VsZWN0IFhBUlJBWV9NVUxUSVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE5IDAzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExMzA4CgkJCQkJCQlvdXRwdXQ6IDE3MAoJCQkJCQkJdGhvdWdodHM6IDU0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiBhIEtWTSBQYXRjaCBmb3IgRnV6emluZyoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duIGZvciBmdXp6aW5nLiBXZSYjMzk7cmUgbG9va2luZyBhdCBhIHBhdGNoIHJlbGF0ZWQgdG8gS1ZNLCBzcGVjaWZpY2FsbHkgZm9yIHg4NiB3aXRoIFZNWCwgaGVuY2UgYEtWTWAgYW5kIGBLVk1fSU5URUxgIGFyZSBrZXkuIFdlIHNob3VsZCBjaGVjayBgYXJjaC94ODYva3ZtL0tjb25maWdgIGZvciB0aGUgZGVwZW5kZW5jaWVzIG9mIGBLVk1fSU5URUxgOyBpdCYjMzk7cyBnb2luZyB0byBkZXBlbmQgb24gYEtWTWAsIG9idmlvdXNseS4KClNvLCBmb3IgY29uZmlndXJhdGlvbiwgd2UgbmVlZCB0byBlbmFibGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgLiBUaGF0JiMzOTtzIHRoZSBiYXNlbGluZS4KCk5vdywgZm9yIGZvY3VzIHN5bWJvbHMsIGxldCYjMzk7cyBzZWUuLi4gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSXQmIzM5O3MgYSBLVk0gaW9jdGwgaGFuZGxlciwgc28gaXQmIzM5O3MgYSBkaXJlY3QgZW50cnkgcG9pbnQuIEl0JiMzOTtzIGFsbW9zdCBhbHdheXMgYSBnb29kIGlkZWEgdG8gdGFyZ2V0IGlvY3Rscy4gQW5kLCBgdm14X2NsZWFyX2hsdGAuIE9oLCB3YWl0LCB3YXMgYHZteF9jbGVhcl9obHRgIGV2ZW4gKmluKiB0aGUgcGF0Y2g/IEhtbS4uLgoKWWVzLCBpdCBsb29rcyBsaWtlIGB2bXhfY2xlYXJfaGx0YCB3YXMgcHJlc2VudCwgYnV0IHRoZSBwYXRjaCBjaGFuZ2VkIGl0cyB2aXNpYmlsaXR5LiBJdCB3YXMgc3RhdGljLCBhbmQgbm93IGl0JiMzOTtzIG5vbi1zdGF0aWMuIExldCYjMzk7cyBsb29rIGF0IHRoZSBkaWZmOiBgc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpYCBiZWNhbWUgYHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpYC4gQWhhISBNYWtpbmcgaXQgbm9uLXN0YXRpYyBzdWdnZXN0cyBpdCYjMzk7cyBiZWluZyAqdXNlZCogbW9yZSBnZW5lcmFsbHkgbm93LCB3aGljaCBsaWtlbHkgbWVhbnMgaXQmIzM5O3Mgd29ydGggZnV6emluZyEKCk9rYXksIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXM6IHRoZSBwYXRjaCBmdW5kYW1lbnRhbGx5IGFsdGVycyBob3cgS1ZNIG1hbmFnZXMgdkNQVSBzdGF0ZS4gSXQgaW50cm9kdWNlcyBhIGBjbGVhcl9obHRgIG9wZXJhdGlvbiB3aXRoaW4gYGt2bV94ODZfb3BzYCBhbmQgY2FsbHMgaXQgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGVzIGxpa2UgVk1YJiMzOTtzIEhMVCBzdGF0ZSwgd2hpY2ggYXBwZWFycyB0byBmaXggYSBwcmV0dHkgbmFzdHkgd2VkZ2luZyBidWcuIFRoYXQgbWFrZXMgaXQgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBjb3JlIEtWTSBsb2dpYyB0aGF0IGlzIHJlYWNoYWJsZSBhbmQgc2hvdWxkIGJlIGZ1enplZCBmb3Igc3VyZS4KClNvLCBsZXQmIzM5O3MgcHJlcGFyZSB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uOgpgV29ydGhGdXp6aW5nYDogVHJ1ZQpgRm9jdXNTeW1ib2xzYDogYFsmIzM0O2t2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUmIzM0OywgJiMzNDt2bXhfY2xlYXJfaGx0JiMzNDtdYApgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtLVk0mIzM0OywgJiMzNDtLVk1fSU5URUwmIzM0O11gCmBSZWFzb25pbmdgOiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJiMzOTtzIEhMVCBzdGF0ZSksIGZpeGluZyBhIGJ1ZyB3aGVyZSBhIHZDUFUgY291bGQgc3RheSB3ZWRnZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDsKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7LAogICAgJiMzNDtLVk1fSU5URUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlJiMzNDssCiAgICAmIzM0O3ZteF9jbGVhcl9obHQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgS1ZNIHZDUFUgc3RhdGUgbWFuYWdlbWVudCBieSBhZGRpbmcgYSBuZXcgY2xlYXJfaGx0IG9wZXJhdGlvbiB0byBrdm1feDg2X29wcyBhbmQgY2FsbGluZyBpdCB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIEtWTV9NUF9TVEFURV9SVU5OQUJMRS4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlIChsaWtlIFZNWCYjMzk7cyBITFQgc3RhdGUpLCBmaXhpbmcgYSBidWcgd2hlcmUgYSB2Q1BVIGNvdWxkIHN0YXkgd2VkZ2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgS1ZNIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtLVk0mIzM0OywKICAgICYjMzQ7S1ZNX0lOVEVMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZSYjMzQ7LAogICAgJiMzNDt2bXhfY2xlYXJfaGx0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIEtWTSB2Q1BVIHN0YXRlIG1hbmFnZW1lbnQgYnkgYWRkaW5nIGEgbmV3IGNsZWFyX2hsdCBvcGVyYXRpb24gdG8ga3ZtX3g4Nl9vcHMgYW5kIGNhbGxpbmcgaXQgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBLVk1fTVBfU1RBVEVfUlVOTkFCTEUuIFRoaXMgZm9yY2VzIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBpbmFjdGl2ZSBzdGF0ZSAobGlrZSBWTVgmIzM5O3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xOSAwMzo1OTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGBjbGVhcl9obHRgIG9wZXJhdGlvbiB0byBga3ZtX3g4Nl9vcHNgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSBvZiBhIHZDUFUgd2hlbiB1c2Vyc3BhY2Ugc2V0cyBpdHMgbXVsdGlwcm9jZXNzaW5nIHN0YXRlIHRvIGBLVk1fTVBfU1RBVEVfUlVOTkFCTEVgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGZpeCBmb3IgS1ZNL1ZNWC4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBtZW1vcnkgYWxsb2NhdGlvbnMsIG9yIGRhdGEgY29waWVkIHRvIHVzZXIgc3BhY2UuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzIGFyZSBzdWZmaWNpZW50IGZvciB0aGlzIGNvZGUuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI3ZWZhNTNlNDMwZTgxZjk3OWI3NGU2MzYxM2RlZGVlMjliODA3MGEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEF1ZyAxOSAwMzo1ODowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oCmluZGV4IGUyMTNjOWFlM2UzMDEuLmRkOTAyNmMxMDcxY2UgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmgKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaApAQCAtODIsNiAmIzQzOzgyLDcgQEAgS1ZNX1g4Nl9PUChpbnRlcnJ1cHRfYWxsb3dlZCkKIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpCiBLVk1fWDg2X09QKGdldF9ubWlfbWFzaykKIEtWTV9YODZfT1Aoc2V0X25taV9tYXNrKQomIzQzO0tWTV9YODZfT1BfT1BUSU9OQUwoY2xlYXJfaGx0KQogS1ZNX1g4Nl9PUChlbmFibGVfbm1pX3dpbmRvdykKIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpCiBLVk1fWDg2X09QX09QVElPTkFMKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC0xNjA3LDYgJiM0MzsxNjA3LDEzIEBAIHN0cnVjdCBrdm1feDg2X29wcyB7CiAJaW50ICgqbm1pX2FsbG93ZWQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTsKIAlib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCXZvaWQgKCpzZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpOwomIzQzOwkvKgomIzQzOwkgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkL2luYWN0aXZlIHN0YXRlIHNvCiYjNDM7CSAqIHRoYXQgaXQgd2lsbCBmZXRjaCBhbmQgZXhlY3V0ZSBpbnN0cnVjdGlvbnMgb24gdGhlIG5leHQgVk0tRW50ZXIuCiYjNDM7CSAqIE9ubHkgbmVlZGVkIGJ5IFZNWCwgd2hlcmUgVk1DUy5HVUVTVF9BQ1RJVklUWV9TVEFURSBwZXJzaXN0cyBhY3Jvc3MKJiM0MzsJICogVk0tRXhpdC9WTS1FbnRlcjsgU1ZNIGhhcyBubyBlcXVpdmFsZW50IFZNQ0IgZmllbGQuCiYjNDM7CSAqLwomIzQzOwl2b2lkICgqY2xlYXJfaGx0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCS8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi8KIAlib29sICgqaXNfdm5taV9wZW5kaW5nKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogCS8qCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uYyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jCkBAIC02MDEsNiAmIzQzOzYwMSwxOCBAQCBzdGF0aWMgdm9pZCB2dF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCkKIAl2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7CiB9CiAKJiM0MztzdGF0aWMgdm9pZCB2dF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQomIzQzO3sKJiM0MzsJLyoKJiM0MzsJICogVERYIGRvZXNuJiMzOTt0IHN1cHBvcnQgZGlzYWJsaW5nIEhMVC1leGl0aW5nLCBhbmQgS1ZNIGNhbiYjMzk7dCBhY2Nlc3MgYQomIzQzOwkgKiBURCYjMzk7cyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLgomIzQzOwkgKi8KJiM0MzsJaWYgKGlzX3RkX3ZjcHUodmNwdSkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiYjNDM7CXZteF9jbGVhcl9obHQodmNwdSk7CiYjNDM7fQomIzQzOwogc3RhdGljIHZvaWQgdnRfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCS8qIFJlZmVyIHRvIHRoZSBjb21tZW50cyBpbiB0ZHhfaW5qZWN0X25taSgpLiAqLwpAQCAtOTY0LDYgJiM0Mzs5NzYsNyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMgdnRfeDg2X29wcyBfX2luaXRkYXRhID0gewogCS5ubWlfYWxsb3dlZCA9IHZ0X29wKG5taV9hbGxvd2VkKSwKIAkuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSwKIAkuc2V0X25taV9tYXNrID0gdnRfb3Aoc2V0X25taV9tYXNrKSwKJiM0MzsJLmNsZWFyX2hsdCA9IHZ0X29wKGNsZWFyX2hsdCksCiAJLmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLAogCS5lbmFibGVfaXJxX3dpbmRvdyA9IHZ0X29wKGVuYWJsZV9pcnFfd2luZG93KSwKIAkudXBkYXRlX2NyOF9pbnRlcmNlcHQgPSB2dF9vcCh1cGRhdGVfY3I4X2ludGVyY2VwdCksCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguYwppbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmMKQEAgLTE5MDksNyAmIzQzOzE5MDksNyBAQCBpbnQgdm14X3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCXJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpOwogfQogCi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKJiM0Mzt2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCS8qCiAJICogRW5zdXJlIHRoYXQgd2UgY2xlYXIgdGhlIEhMVCBzdGF0ZSBpbiB0aGUgVk1DUy4gIFdlIGRvbiYjMzk7dCBuZWVkIHRvCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oCmluZGV4IGNkYjM4ZDk0MGNmYjcuLjQ1ZTQ3ZjUwMmEzNzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oCkBAIC05NSw2ICYjNDM7OTUsNyBAQCBpbnQgdm14X2ludGVycnVwdF9hbGxvd2VkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTsKIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pOwogYm9vbCB2bXhfZ2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7CiYjNDM7dm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCB2bXhfZW5hYmxlX2lycV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIHZvaWQgdm14X3VwZGF0ZV9jcjhfaW50ZXJjZXB0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHRwciwgaW50IGlycik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmMKaW5kZXggZDk0YjU5MTQwYzQ1Mi4uNzc3N2NmODhhOTZiMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3g4Ni5jCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS94ODYuYwpAQCAtOTA1OCw2ICYjNDM7OTA1OCwxOSBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJfQogCiAJa3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS0mZ3Q7bXBfc3RhdGUpOwomIzQzOwomIzQzOwkvKgomIzQzOwkgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUsIGUuZy4gVk1YJiMzOTtzCiYjNDM7CSAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVC4gIFRoYXQgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZAomIzQzOwkgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWQKJiM0MzsJICogd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCAoS1ZNX1g4Nl9ESVNBQkxFX0VYSVRTX0hMVCkgc3RheXMgd2VkZ2VkCiYjNDM7CSAqIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIGRlY2xhcmVzIGl0IFJVTk5BQkxFIGFuZCByZXdyaXRlcyBpdHMgcmVnaXN0ZXJzLAomIzQzOwkgKiBlLmcuIHdoZW4gYSBWTU0gZW11bGF0ZXMgYSBtYWNoaW5lIHJlc2V0LiAgV2FraW5nIGZyb20gSExUIGlzCiYjNDM7CSAqIGFyY2hpdGVjdHVyYWxseSBhbGxvd2VkIHRvIGJlIHNwdXJpb3VzLCBzbyBjbGVhcmluZyBpdCBpcyBhbHdheXMgc2FmZS4KJiM0MzsJICovCiYjNDM7CWlmICh2Y3B1LSZndDthcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9SVU5OQUJMRSkKJiM0MzsJCWt2bV94ODZfY2FsbChjbGVhcl9obHQpKHZjcHUpOwomIzQzOwogCWt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9FVkVOVCwgdmNwdSk7CiAKIAlyZXQgPSAwOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkxOQoJCQkJCQkJb3V0cHV0OiAxNTMKCQkJCQkJCXRob3VnaHRzOiAzNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgS1ZNL1ZNWCBITFQtQ2xlYXJpbmcgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHdpdGhpbiBga3ZtX3g4Nl9vcHNgIGFuZCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50cyBpdCBmb3IgVk1YLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQgZ2V0cyBpbnZva2VkIHdpdGhpbiBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgd2hlbmV2ZXIgYSB2Q1BVJiMzOTtzIG11bHRpcHJvY2Vzc2luZyBzdGF0ZSB0cmFuc2l0aW9ucyB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBhZGRyZXNzZXMgYSBrbm93biBpc3N1ZSB3aGVyZSBhIHZDUFUsIGhhbHRlZCB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkLCBjb3VsZCBiZWNvbWUgc3R1Y2sgYWZ0ZXIgdXNlcnNwYWNlIHNpZ25hbHMgdGhhdCBpdCBzaG91bGQgYmVjb21lIHJ1bm5hYmxlLgoKTm93LCBmcm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUsIEkgbmVlZCB0byBldmFsdWF0ZSB0aGUgcG90ZW50aWFsIGZvciB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZS4gQWZ0ZXIgYSBjYXJlZnVsIHJldmlldywgSSYjMzk7dmUgY29uY2x1ZGVkIHRoYXQgdGhlcmUgYXJlIG5vIHN1Y2ggcmlza3MgaW4gdGhpcyBwYXRjaC4gSXQmIzM5O3MgYSBzdHJhaWdodGZvcndhcmQgZml4IGludm9sdmluZyBjb250cm9sIGZsb3cgYW5kIHN0YXRlIG1hbmFnZW1lbnQuIFRoZSBwYXRjaCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IG5ldyBzdHJ1Y3R1cmVzIHRoYXQgYXJlIGV4cG9zZWQgdG8gdXNlcnNwYWNlLiBJdCBkb2VzbiYjMzk7dCB1c2UgYW55IGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIG9yIG1lbW9yeSBhbGxvY2F0aW9ucyB0aGF0IGNvdWxkIGxlYWQgdG8gdnVsbmVyYWJpbGl0aWVzLiBSZWFsbHksIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgc2ltcGx5IGFkZGluZyBhIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYGt2bV94ODZfb3BzYCBhbmQgdGhlbiBjYWxsaW5nIHRoZSBwcmUtZXhpc3RpbmcgYHZteF9jbGVhcl9obHRgIGZ1bmN0aW9uLCB3aGljaCB3YXMgcHJldmlvdXNseSBhIHN0YXRpYyBmdW5jdGlvbi4KCkdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZXMsIEkmIzM5O20gY29uZmlkZW50IHRoYXQgS01TQU4gaXMgbm90IG5lY2Vzc2FyeSBoZXJlLiBTdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycyBzaG91bGQgYmUgc3VmZmljaWVudCB0byBjYXRjaCBhbnkgcG90ZW50aWFsIGlzc3Vlcy4gVGhlcmVmb3JlLCBJIHdpbGwgc2V0IGBOZWVkc0tNU0FOPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTkgMDM6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2xlYXJfaGx0YCBvcGVyYXRpb24gdG8gYGt2bV94ODZfb3BzYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgb2YgYSB2Q1BVIHdoZW4gdXNlcnNwYWNlIHNldHMgaXRzIG11bHRpcHJvY2Vzc2luZyBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgc3RhdGUgbWFuYWdlbWVudCBmaXggZm9yIEtWTS9WTVguIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgbWVtb3J5IGFsbG9jYXRpb25zLCBvciBkYXRhIGNvcGllZCB0byB1c2VyIHNwYWNlLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycyBhcmUgc3VmZmljaWVudCBmb3IgdGhpcyBjb2RlLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2xlYXJfaGx0YCBvcGVyYXRpb24gdG8gYGt2bV94ODZfb3BzYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgb2YgYSB2Q1BVIHdoZW4gdXNlcnNwYWNlIHNldHMgaXRzIG11bHRpcHJvY2Vzc2luZyBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgc3RhdGUgbWFuYWdlbWVudCBmaXggZm9yIEtWTS9WTVguIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgbWVtb3J5IGFsbG9jYXRpb25zLCBvciBkYXRhIGNvcGllZCB0byB1c2VyIHNwYWNlLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycyBhcmUgc3VmZmljaWVudCBmb3IgdGhpcyBjb2RlLiYjMzQ7LAogICYjMzQ7TmVlZHNLTVNBTiYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1ODowMy4zMTM0NDEyMzhaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5ODY2MTU1NDE4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVcIixcbiAgICBcInZteF9jbGVhcl9obHRcIlxuICBdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHRvIGBrdm1feDg2X29wc2AgdG8gY2xlYXIgdGhlIGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlIG9mIGEgdkNQVSB3aGVuIHVzZXJzcGFjZSBzZXRzIGl0cyBtdWx0aXByb2Nlc3Npbmcgc3RhdGUgdG8gYEtWTV9NUF9TVEFURV9SVU5OQUJMRWAuIFRoaXMgaXMgYSBjb250cm9sIGZsb3cgYW5kIHN0YXRlIG1hbmFnZW1lbnQgZml4IGZvciBLVk0vVk1YLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIG1lbW9yeSBhbGxvY2F0aW9ucywgb3IgZGF0YSBjb3BpZWQgdG8gdXNlciBzcGFjZS4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMgYXJlIHN1ZmZpY2llbnQgZm9yIHRoaXMgY29kZS5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJ3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTg6MDMuMzEzNDQ2MDM4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDU0ODY1MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyN2VmYTUzZTQzMGU4MWY5NzliNzRlNjM2MTNkZWRlZTI5YjgwNzBhXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgQXVnIDE5IDAzOjU4OjAyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxcbkBAIC04Miw2ICs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpXFxuIEtWTV9YODZfT1Aobm1pX2FsbG93ZWQpXFxuIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKVxcbiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaylcXG4rS1ZNX1g4Nl9PUF9PUFRJT05BTChjbGVhcl9obHQpXFxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXFxuIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpXFxuIEtWTV9YODZfT1BfT1BUSU9OQUwodXBkYXRlX2NyOF9pbnRlcmNlcHQpXFxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxcbkBAIC0xNjA3LDYgKzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcXG4gXFx0aW50ICgqbm1pX2FsbG93ZWQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcXG4gXFx0Ym9vbCAoKmdldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XFxuK1xcdC8qXFxuK1xcdCAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQvaW5hY3RpdmUgc3RhdGUgc29cXG4rXFx0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cXG4rXFx0ICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zc1xcbitcXHQgKiBWTS1FeGl0L1ZNLUVudGVyOyBTVk0gaGFzIG5vIGVxdWl2YWxlbnQgVk1DQiBmaWVsZC5cXG4rXFx0ICovXFxuK1xcdHZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuIFxcdC8qIFdoZXRoZXIgb3Igbm90IGEgdmlydHVhbCBOTUkgaXMgcGVuZGluZyBpbiBoYXJkd2FyZS4gKi9cXG4gXFx0Ym9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gXFx0LypcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbmluZGV4IDBmZjMyMzBmZDk1ZTguLjc0Y2U5ZGQ3MDQxOTEgMTAwNjQ0XFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xcbkBAIC02MDEsNiArNjAxLDE4IEBAIHN0YXRpYyB2b2lkIHZ0X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKVxcbiBcXHR2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuK3tcXG4rXFx0LypcXG4rXFx0ICogVERYIGRvZXNuJ3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJ3QgYWNjZXNzIGFcXG4rXFx0ICogVEQncyBWTUNTLCBzbyB0aGVyZSBpcyBuZXZlciBhbnkgaGFyZHdhcmUgaGFsdGVkIHN0YXRlIHRvIGNsZWFyLlxcbitcXHQgKi9cXG4rXFx0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdHZteF9jbGVhcl9obHQodmNwdSk7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cXG5AQCAtOTY0LDYgKzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XFxuIFxcdC5ubWlfYWxsb3dlZCA9IHZ0X29wKG5taV9hbGxvd2VkKSxcXG4gXFx0LmdldF9ubWlfbWFzayA9IHZ0X29wKGdldF9ubWlfbWFzayksXFxuIFxcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxcbitcXHQuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSxcXG4gXFx0LmVuYWJsZV9ubWlfd2luZG93ID0gdnRfb3AoZW5hYmxlX25taV93aW5kb3cpLFxcbiBcXHQuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksXFxuIFxcdC51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSxcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcXG5pbmRleCBlM2JmZTZhY2ExYTBlLi44YWQ3OWM2MGVjYzZmIDEwMDY0NFxcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuQEAgLTE5MDksNyArMTkwOSw3IEBAIGludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuIFxcdHJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4rdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4ge1xcbiBcXHQvKlxcbiBcXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJ3QgbmVlZCB0b1xcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaCBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXFxuaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxcbisrKyBiL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXFxuQEAgLTk1LDYgKzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XFxuIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xcbiBib29sIHZteF9nZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfZW5hYmxlX25taV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfZW5hYmxlX2lycV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jXFxuaW5kZXggZDk0YjU5MTQwYzQ1Mi4uNzc3N2NmODhhOTZiMCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcXG4rKysgYi9hcmNoL3g4Ni9rdm0veDg2LmNcXG5AQCAtOTA1OCw2ICs5MDU4LDE5IEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4gXFx0fVxcbiBcXG4gXFx0a3ZtX3NldF9tcF9zdGF0ZSh2Y3B1LCBtcF9zdGF0ZS1cXHUwMDNlbXBfc3RhdGUpO1xcbitcXG4rXFx0LypcXG4rXFx0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlLCBlLmcuIFZNWCdzXFxuK1xcdCAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVC4gIFRoYXQgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxcbitcXHQgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWRcXG4rXFx0ICogd2l0aCBITFQtZXhpdGluZyBkaXNhYmxlZCAoS1ZNX1g4Nl9ESVNBQkxFX0VYSVRTX0hMVCkgc3RheXMgd2VkZ2VkXFxuK1xcdCAqIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIGRlY2xhcmVzIGl0IFJVTk5BQkxFIGFuZCByZXdyaXRlcyBpdHMgcmVnaXN0ZXJzLFxcbitcXHQgKiBlLmcuIHdoZW4gYSBWTU0gZW11bGF0ZXMgYSBtYWNoaW5lIHJlc2V0LiAgV2FraW5nIGZyb20gSExUIGlzXFxuK1xcdCAqIGFyY2hpdGVjdHVyYWxseSBhbGxvd2VkIHRvIGJlIHNwdXJpb3VzLCBzbyBjbGVhcmluZyBpdCBpcyBhbHdheXMgc2FmZS5cXG4rXFx0ICovXFxuK1xcdGlmICh2Y3B1LVxcdTAwM2VhcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9SVU5OQUJMRSlcXG4rXFx0XFx0a3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7XFxuK1xcbiBcXHRrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpO1xcbiBcXG4gXFx0cmV0ID0gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTg6MDMuODE5NTkyODg1WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6OTEwMzEwMzIyNjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCIsXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlXCIsXG4gICAgXCJ2bXhfY2xlYXJfaGx0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgS1ZNIHZDUFUgc3RhdGUgbWFuYWdlbWVudCBieSBhZGRpbmcgYSBuZXcgY2xlYXJfaGx0IG9wZXJhdGlvbiB0byBrdm1feDg2X29wcyBhbmQgY2FsbGluZyBpdCB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIEtWTV9NUF9TVEFURV9SVU5OQUJMRS4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlIChsaWtlIFZNWCdzIEhMVCBzdGF0ZSksIGZpeGluZyBhIGJ1ZyB3aGVyZSBhIHZDUFUgY291bGQgc3RheSB3ZWRnZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDI3ZWZhNTNlNDMwZTgxZjk3OWI3NGU2MzYxM2RlZGVlMjliODA3MGFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEF1ZyAxOSAwMzo1ODowMiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oXG5pbmRleCBlMjEzYzlhZTNlMzAxLi5kZDkwMjZjMTA3MWNlIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuQEAgLTgyLDYgKzgyLDcgQEAgS1ZNX1g4Nl9PUChpbnRlcnJ1cHRfYWxsb3dlZClcbiBLVk1fWDg2X09QKG5taV9hbGxvd2VkKVxuIEtWTV9YODZfT1AoZ2V0X25taV9tYXNrKVxuIEtWTV9YODZfT1Aoc2V0X25taV9tYXNrKVxuK0tWTV9YODZfT1BfT1BUSU9OQUwoY2xlYXJfaGx0KVxuIEtWTV9YODZfT1AoZW5hYmxlX25taV93aW5kb3cpXG4gS1ZNX1g4Nl9PUChlbmFibGVfaXJxX3dpbmRvdylcbiBLVk1fWDg2X09QX09QVElPTkFMKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KVxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oXG5pbmRleCAyODM4NDc2MTlmZjg4Li5lNWEwNzU4NTM2ZTExIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuQEAgLTE2MDcsNiArMTYwNywxMyBAQCBzdHJ1Y3Qga3ZtX3g4Nl9vcHMge1xuIFx0aW50ICgqbm1pX2FsbG93ZWQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JfaW5qZWN0aW9uKTtcbiBcdGJvb2wgKCpnZXRfbm1pX21hc2spKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHR2b2lkICgqc2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcbitcdC8qXG4rXHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkL2luYWN0aXZlIHN0YXRlIHNvXG4rXHQgKiB0aGF0IGl0IHdpbGwgZmV0Y2ggYW5kIGV4ZWN1dGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBuZXh0IFZNLUVudGVyLlxuK1x0ICogT25seSBuZWVkZWQgYnkgVk1YLCB3aGVyZSBWTUNTLkdVRVNUX0FDVElWSVRZX1NUQVRFIHBlcnNpc3RzIGFjcm9zc1xuK1x0ICogVk0tRXhpdC9WTS1FbnRlcjsgU1ZNIGhhcyBubyBlcXVpdmFsZW50IFZNQ0IgZmllbGQuXG4rXHQgKi9cbitcdHZvaWQgKCpjbGVhcl9obHQpKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gXHQvKiBXaGV0aGVyIG9yIG5vdCBhIHZpcnR1YWwgTk1JIGlzIHBlbmRpbmcgaW4gaGFyZHdhcmUuICovXG4gXHRib29sICgqaXNfdm5taV9wZW5kaW5nKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0LypcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L21haW4uYyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG5pbmRleCAwZmYzMjMwZmQ5NWU4Li43NGNlOWRkNzA0MTkxIDEwMDY0NFxuLS0tIGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmNcbisrKyBiL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG5AQCAtNjAxLDYgKzYwMSwxOCBAQCBzdGF0aWMgdm9pZCB2dF9zZXRfbm1pX21hc2soc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZClcbiBcdHZteF9zZXRfbm1pX21hc2sodmNwdSwgbWFza2VkKTtcbiB9XG4gXG4rc3RhdGljIHZvaWQgdnRfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbit7XG4rXHQvKlxuK1x0ICogVERYIGRvZXNuJ3Qgc3VwcG9ydCBkaXNhYmxpbmcgSExULWV4aXRpbmcsIGFuZCBLVk0gY2FuJ3QgYWNjZXNzIGFcbitcdCAqIFREJ3MgVk1DUywgc28gdGhlcmUgaXMgbmV2ZXIgYW55IGhhcmR3YXJlIGhhbHRlZCBzdGF0ZSB0byBjbGVhci5cbitcdCAqL1xuK1x0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXG4rXHRcdHJldHVybjtcbitcbitcdHZteF9jbGVhcl9obHQodmNwdSk7XG4rfVxuK1xuIHN0YXRpYyB2b2lkIHZ0X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiB7XG4gXHQvKiBSZWZlciB0byB0aGUgY29tbWVudHMgaW4gdGR4X2luamVjdF9ubWkoKS4gKi9cbkBAIC05NjQsNiArOTc2LDcgQEAgc3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcbiBcdC5ubWlfYWxsb3dlZCA9IHZ0X29wKG5taV9hbGxvd2VkKSxcbiBcdC5nZXRfbm1pX21hc2sgPSB2dF9vcChnZXRfbm1pX21hc2spLFxuIFx0LnNldF9ubWlfbWFzayA9IHZ0X29wKHNldF9ubWlfbWFzayksXG4rXHQuY2xlYXJfaGx0ID0gdnRfb3AoY2xlYXJfaGx0KSxcbiBcdC5lbmFibGVfbm1pX3dpbmRvdyA9IHZ0X29wKGVuYWJsZV9ubWlfd2luZG93KSxcbiBcdC5lbmFibGVfaXJxX3dpbmRvdyA9IHZ0X29wKGVuYWJsZV9pcnFfd2luZG93KSxcbiBcdC51cGRhdGVfY3I4X2ludGVyY2VwdCA9IHZ0X29wKHVwZGF0ZV9jcjhfaW50ZXJjZXB0KSxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xuaW5kZXggZTNiZmU2YWNhMWEwZS4uOGFkNzljNjBlY2M2ZiAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbisrKyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbkBAIC0xOTA5LDcgKzE5MDksNyBAQCBpbnQgdm14X3NraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIFx0cmV0dXJuIHNraXBfZW11bGF0ZWRfaW5zdHJ1Y3Rpb24odmNwdSk7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuK3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuIFx0LypcbiBcdCAqIEVuc3VyZSB0aGF0IHdlIGNsZWFyIHRoZSBITFQgc3RhdGUgaW4gdGhlIFZNQ1MuICBXZSBkb24ndCBuZWVkIHRvXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmggYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuaW5kZXggY2RiMzhkOTQwY2ZiNy4uNDVlNDdmNTAyYTM3MCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuQEAgLTk1LDYgKzk1LDcgQEAgaW50IHZteF9pbnRlcnJ1cHRfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gaW50IHZteF9ubWlfYWxsb3dlZChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gYm9vbCB2bXhfZ2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpO1xuK3ZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9ubWlfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfZW5hYmxlX2lycV93aW5kb3coc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF91cGRhdGVfY3I4X2ludGVyY2VwdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCB0cHIsIGludCBpcnIpO1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODYuYyBiL2FyY2gveDg2L2t2bS94ODYuY1xuaW5kZXggZDk0YjU5MTQwYzQ1Mi4uNzc3N2NmODhhOTZiMCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS94ODYuY1xuKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jXG5AQCAtOTA1OCw2ICs5MDU4LDE5IEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcbiBcdH1cbiBcbiBcdGt2bV9zZXRfbXBfc3RhdGUodmNwdSwgbXBfc3RhdGUtXHUwMDNlbXBfc3RhdGUpO1xuK1xuK1x0LypcbitcdCAqIEZvcmNlIHRoZSB2Q1BVIG91dCBvZiBhbnkgaGFyZHdhcmUtdHJhY2tlZCBpbmFjdGl2ZSBzdGF0ZSwgZS5nLiBWTVgnc1xuK1x0ICogR1VFU1RfQUNUSVZJVFlfU1RBVEU9SExULiAgVGhhdCBzdGF0ZSBpcyBzdGlja3kgYWNyb3NzIFZNLUV4aXQgYW5kXG4rXHQgKiBWTS1FbnRlciBhbmQgaXMgbm90IHRvdWNoZWQgYnkgYW55IG90aGVyIGlvY3RsLCBzbyBhIHZDUFUgdGhhdCBoYWx0ZWRcbitcdCAqIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQgKEtWTV9YODZfRElTQUJMRV9FWElUU19ITFQpIHN0YXlzIHdlZGdlZFxuK1x0ICogZXZlbiBhZnRlciB1c2Vyc3BhY2UgZGVjbGFyZXMgaXQgUlVOTkFCTEUgYW5kIHJld3JpdGVzIGl0cyByZWdpc3RlcnMsXG4rXHQgKiBlLmcuIHdoZW4gYSBWTU0gZW11bGF0ZXMgYSBtYWNoaW5lIHJlc2V0LiAgV2FraW5nIGZyb20gSExUIGlzXG4rXHQgKiBhcmNoaXRlY3R1cmFsbHkgYWxsb3dlZCB0byBiZSBzcHVyaW91cywgc28gY2xlYXJpbmcgaXQgaXMgYWx3YXlzIHNhZmUuXG4rXHQgKi9cbitcdGlmICh2Y3B1LVx1MDAzZWFyY2gubXBfc3RhdGUgPT0gS1ZNX01QX1NUQVRFX1JVTk5BQkxFKVxuK1x0XHRrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KTtcbitcbiBcdGt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9FVkVOVCwgdmNwdSk7XG4gXG4gXHRyZXQgPSAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTg6MDMuODE5NTk0Mjk1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg2MTI4NjYyMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBITFQgQ2xlYXJpbmcgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBhIGBjbGVhcl9obHRgIG9wZXJhdGlvbiB0byB0aGUgYGt2bV94ODZfb3BzYCBzdHJ1Y3R1cmUuIEl0J3MgaW1wbGVtZW50ZWQgZm9yIFZNWCwgYW5kIFREWCwgd2hpY2gganVzdCByZXR1cm5zIChsaWtlbHkgYmVjYXVzZSBURFggaGFuZGxlcyB0aGlzIGRpZmZlcmVudGx5IGF0IGEgbG93ZXIgbGV2ZWwpLiBUaGUgY29yZSBvZiB0aGlzIHBhdGNoIG1vZGlmaWVzIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCB0byBjYWxsIGBrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KWAgd2hlbmV2ZXIgdGhlIHZDUFUncyBNUCBzdGF0ZSBpcyBzZXQgdG8gYEtWTV9NUF9TVEFURV9SVU5OQUJMRWAuIExldCdzIGJyZWFrIGRvd24gaWYgaXQncyByZWFjaGFibGUgYW5kIGFjdHVhbGx5IGZ1bmN0aW9uYWwuXG5cblJpZ2h0LCBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaGFuZGxlcyB0aGUgYEtWTV9TRVRfTVBfU1RBVEVgIGlvY3RsIG9uIGEgdkNQVS4gVGhhdCBtZWFucyBpdCdzIGRlZmluaXRlbHkgYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZSDigJMgdG9vbHMgbGlrZSBzeXprYWxsZXIgY2FuIGRpcmVjdGx5IHRyaWdnZXIgdGhpcywgc28gdGhhdCdzIGdvb2QuIFRoZSBpbnRlbnQgaGVyZSBpcyB0byBmaXggYSBwcmV0dHkgbmFzdHkgYnVnIHdoZXJlIGEgdkNQVSB0aGF0IGhhbHRlZCB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkIHdvdWxkIGdldCBzdHVjayBldmVuIGlmIHVzZXJzcGFjZSBzZXRzIGl0IHRvIFJVTk5BQkxFLiBUaGlzIHBhdGNoIHNob3VsZCBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLlxuXG5Ob3csIHRoZSBjb2RlLiBJdCdzIGluIGBhcmNoL3g4Ni9rdm0veDg2LmNgLiBUaGUgbmV3IGNvZGUgdGhhdCB0aGUgcGF0Y2ggYWRkZWQgbG9va3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZDpcblxuYGBgY1xuXHRpZiAodmNwdS1cdTAwM2VhcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9SVU5OQUJMRSlcblx0XHRrdm1feDg2X2NhbGwoY2xlYXJfaGx0KSh2Y3B1KTtcbmBgYFxuXG5JdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2U7IGl0J3MgZ29pbmcgdG8gY2xlYXIgdGhlIEhMVCBzdGF0ZSB3aXRoaW4gdGhlIFZNQ1MuIFNlZW1zIHJlYXNvbmFibGUuIE5vdywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyBBYnNvbHV0ZWx5LCBiZWNhdXNlIHRoaXMgaXMgZGVhbGluZyB3aXRoIEtWTSB2Q1BVIHN0YXRlIG1hbmFnZW1lbnQuXG5cbldoZXJlIGRvIEkgZm9jdXMgbXkgZnV6emluZyBlZmZvcnRzPyBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgaXMgYSBwcmltZSBjYW5kaWRhdGUuIFRoZW4sIG9mIGNvdXJzZSwgdGhlIGFjdHVhbCBgdnRfY2xlYXJfaGx0YCBhbmQgYHZteF9jbGVhcl9obHRgIGZ1bmN0aW9ucyB0aGF0IGRvIHRoZSBoZWF2eSBsaWZ0aW5nIGFyZSBhbHNvIGNyaXRpY2FsLiBMZXQncyBzZWUuLi4gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGlzIGFuIEFQSSBlbnRyeXBvaW50LiBBbmQgbm93IGB2dF9jbGVhcl9obHRgIGlzIHN0YXRpYywgd2hpY2ggY2FuIGNvbXBsaWNhdGUgZGlyZWN0IGZ1enppbmcsIGJ1dCBgdm14X2NsZWFyX2hsdGAgaXNuJ3QuIEknbGwgbmVlZCB0byByZW1lbWJlciB0byBjaGVjayBob3cgdGhlIHN0YXRpYyBmdW5jdGlvbiBpcyBjYWxsZWQgaW4gcmVsYXRpb24gdG8gdGhlIHZteCBmdW5jdGlvbi4gSSB3aWxsIHVzZSBgZ3JlcHBlcmAgb24gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIHRvIGNvbmZpcm0gaXRzIGNhbGwgZ3JhcGguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MjIsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1OToxMi40MzI0NjQyMzlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg4Mzg3NzA5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm02NC9rdm0vYXJtLmM9Nzg2PWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvYXJtNjQva3ZtL2FybS5jLTc5My1cXG5hcmNoL2FybTY0L2t2bS9hcm0uYzo3OTQ6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvYXJtNjQva3ZtL2FybS5jLTc5NS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jPTQ2Nz1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jLTQ3NC1cXG5hcmNoL2xvb25nYXJjaC9rdm0vdmNwdS5jOjQ3NTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9sb29uZ2FyY2gva3ZtL3ZjcHUuYy00NzYtXFx0XFx0XFx0XFx0c3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5hcmNoL21pcHMva3ZtL21pcHMuYz01MTU9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9taXBzL2t2bS9taXBzLmMtNTIwLVxcbmFyY2gvbWlwcy9rdm0vbWlwcy5jOjUyMTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9taXBzL2t2bS9taXBzLmMtNTIyLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vcG93ZXJwYy5jPTIwMTM9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9wb3dlcnBjLmMtMjAxOC1cXG5hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYzoyMDE5OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL3Bvd2VycGMva3ZtL3Bvd2VycGMuYy0yMDIwLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdS5jPTQ5Nj1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1LmMtNTAzLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHUuYzo1MDQ6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHUuYy01MDUtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jPTQyNjE9aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbi0tXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jLTQyNzUtXFxuYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jOjQyNzY6aW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxcbmFyY2gvczM5MC9rdm0va3ZtLXMzOTAuYy00Mjc3LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qga3ZtX21wX3N0YXRlICptcF9zdGF0ZSlcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYz05MDAwPWludCBrdm1fYXJjaF92Y3B1X2lvY3RsX2dldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gveDg2L2t2bS94ODYuYy05MDI1LVxcbmFyY2gveDg2L2t2bS94ODYuYzo5MDI2OmludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG5hcmNoL3g4Ni9rdm0veDg2LmMtOTAyNy1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGt2bV9tcF9zdGF0ZSAqbXBfc3RhdGUpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0Lmg9MTYzOT1pbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9nZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuaW5jbHVkZS9saW51eC9rdm1faG9zdC5oLTE2NDAtXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKTtcXG5pbmNsdWRlL2xpbnV4L2t2bV9ob3N0Lmg6MTY0MTppbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuaW5jbHVkZS9saW51eC9rdm1faG9zdC5oLTE2NDItXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBrdm1fbXBfc3RhdGUgKm1wX3N0YXRlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTk6MTUuMzE2MzQ2MjI1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjg1ODQ2NjM1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aGluZ3M6XG5cbioqQW5hbHl6aW5nIFBvdGVudGlhbCBGb2N1cyBTeW1ib2xzIGluIEtWTS9WTVgqKlxuXG5BbHJpZ2h0LCBsZXQncyB6ZXJvIGluIG9uIGEgZ29vZCBlbnRyeSBwb2ludC4gVGhlIGZ1bmN0aW9uIGBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9tcHN0YXRlYCBzZWVtcyBsaWtlIGEgc29saWQgY2FuZGlkYXRlIGZvciBhbmFseXNpcy4gSXQncyBvZnRlbiBpbnZvbHZlZCBpbiBtYW5hZ2luZyBwcm9jZXNzb3Igc3RhdGUgd2l0aGluIHRoZSBLVk0gZW52aXJvbm1lbnQsIHNvIHRoYXQncyBsaWtlbHkgYSBjcml0aWNhbCBhcmVhLiBBbHNvLCBgdm14X2NsZWFyX2hsdGAgbG9va3MgcHJvbWlzaW5nLCBwb3RlbnRpYWxseSBkZWFsaW5nIHdpdGggY2xlYXJpbmcgdGhlIEhMVCBpbnN0cnVjdGlvbidzIGVmZmVjdCBpbiBhIFZNWCBjb250ZXh0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZS5cblxuRmlyc3QsIEkgc2hvdWxkIHByb2JhYmx5IGRlbHZlIGludG8gdGhlIGRlZmluaXRpb24gb2YgYHZteF9jbGVhcl9obHRgIHRvIGdldCBhIGJldHRlciBncmlwIG9uIHdoYXQgaXQncyBhY3R1YWxseSBkb2luZy4gVW5kZXJzdGFuZGluZyBpdHMgcHJlY2lzZSBiZWhhdmlvciB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBsYXJnZXIgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NjIyNiwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE5VDAzOjU5OjE4LjE3NDgxNDQyNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTQzNDE3OTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl52b2lkIHZteF9jbGVhcl9obHRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC94ODYva3ZtL3ZteC92bXguYz0xOTA2PWludCB2bXhfc2tpcF9lbXVsYXRlZF9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTE5MTEtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzoxOTEyOnZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy0xOTEzLXtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oPTk3PXZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaDo5ODp2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaC05OS12b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1OToyMC4zMTgyMzgyMjNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNjM4NzE5MzQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uXG5cbioqRGl2aW5nIGludG8gS1ZNIFx1MDAyNiBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIEknbSB0aGlua2luZyBhYm91dCBLVk0sIGFuZCBzcGVjaWZpY2FsbHkgdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUga2V5IGFyZWFzLiBJIG5lZWQgdG8gZm9jdXMgb24gc29tZSByZWxldmFudCBzeW1ib2xzIHRvIHBpbnBvaW50IHdoZXJlIHRoZSBpbnRlcmVzdGluZyBwYXJ0cyBhcmUuICBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgYW5kIGB2bXhfY2xlYXJfaGx0YCBqdW1wIG91dCBhcyBsaWtlbHkgY2FuZGlkYXRlcy4gVGhleSBsb29rIGxpa2UgdGhleSdyZSBnb29kIGVudHJ5IHBvaW50cyBmb3IgZGlnZ2luZyBkZWVwZXIuXG5cbk5vdywgd2hhdCBhYm91dCB0aGUgY29uZmlndXJhdGlvbnM/IFdoYXQgYXJlIHRoZSBwcmVyZXF1aXNpdGVzPyBLVk0gaXMgdGhlIGJhc2UsIG9idmlvdXNseSwgYnV0IEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgY2xlYXJseS4gTGV0IG1lIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgdG8gY29uZmlybSBhbmQgZnVsbHkgZGlnZXN0IGFueSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cywgc3BlY2lmaWNhbGx5IGBhcmNoL3g4Ni9rdm0vS2NvbmZpZ2AuIEknbGwgc3RhcnQgd2l0aCB0aGlzIGFuZCBzZWUgd2hhdCBpdCB0ZWxscyBtZSBhYm91dCB0aGUgYnVpbGQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3NTksIk91dHB1dFRva2VucyI6MTcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1OToyMy45NTY5NjA3MTVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY1ODg4MzI5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvYXJtNjQva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvYXJtNjQva3ZtL0tjb25maWc6MjA6bWVudWNvbmZpZyBLVk1cXG5hcmNoL2FybTY0L2t2bS9LY29uZmlnLTIxLVxcdGJvb2wgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWctMTktXFxuYXJjaC9sb29uZ2FyY2gva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvbG9vbmdhcmNoL2t2bS9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcXFwiXFxuLS1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc9MTY9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTctXFxuYXJjaC9taXBzL2t2bS9LY29uZmlnOjE4OmNvbmZpZyBLVk1cXG5hcmNoL21pcHMva3ZtL0tjb25maWctMTktXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvbWlwcy9rdm0vS2NvbmZpZy0zMC1cXG5hcmNoL21pcHMva3ZtL0tjb25maWc6MzE6Y29uZmlnIEtWTV9NSVBTX0RFQlVHX0NPUDBfQ09VTlRFUlNcXG5hcmNoL21pcHMva3ZtL0tjb25maWctMzItXFx0Ym9vbCBcXFwiTWFpbnRhaW4gY291bnRlcnMgZm9yIENPUDAgYWNjZXNzZXNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTktXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjIwOmNvbmZpZyBLVk1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNjpjb25maWcgS1ZNX0JPT0szU19IQU5ETEVSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI3LVxcdGJvb2xcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjgtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI5OmNvbmZpZyBLVk1fQk9PSzNTXzMyX0hBTkRMRVJcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzAtXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTMzLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzozNDpjb25maWcgS1ZNX0JPT0szU182NF9IQU5ETEVSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTM1LVxcdGJvb2xcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0zNy1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Mzg6Y29uZmlnIEtWTV9CT09LM1NfUFJfUE9TU0lCTEVcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMzktXFx0Ym9vbFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQxLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0Mjpjb25maWcgS1ZNX0JPT0szU19IVl9QT1NTSUJMRVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00My1cXHRib29sXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTQ0LVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzo0NTpjb25maWcgS1ZNX0JPT0szU18zMlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgYm9vazNzXzMyIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctNjEtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fQk9PSzNTXzY0XFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTYzLVxcdHRyaXN0YXRlIFxcXCJLVk0gc3VwcG9ydCBmb3IgUG93ZXJQQyBib29rM3NfNjQgcHJvY2Vzc29yc1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy03OC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6Nzk6Y29uZmlnIEtWTV9CT09LM1NfNjRfSFZcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctODAtXFx0dHJpc3RhdGUgXFxcIktWTSBmb3IgUE9XRVI3IGFuZCBsYXRlciB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy05OS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTAwOmNvbmZpZyBLVk1fQk9PSzNTXzY0X1BSXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTEwMS1cXHR0cmlzdGF0ZSBcXFwiS1ZNIHN1cHBvcnQgd2l0aG91dCB1c2luZyBoeXBlcnZpc29yIG1vZGUgaW4gaG9zdFxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjUtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyNjpjb25maWcgS1ZNX0JPT0szU19IVl9FWElUX1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjctXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xMjgtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjEyOTpjb25maWcgS1ZNX0JPT0szU19IVl9QOV9USU1JTkdcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTMwLVxcdGJvb2wgXFxcIkRldGFpbGVkIHRpbWluZyBmb3IgdGhlIFA5IGVudHJ5IHBvaW50XFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE0MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTQyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1A4X1RJTUlOR1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNDMtXFx0Ym9vbCBcXFwiRGV0YWlsZWQgdGltaW5nIGZvciBoeXBlcnZpc29yIHJlYWwtbW9kZSBjb2RlIChmb3IgUE9XRVI4KVxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNTYtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE1Nzpjb25maWcgS1ZNX0JPT0szU19IVl9ORVNURURfUE1VX1dPUktBUk9VTkRcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTU4LVxcdGJvb2wgXFxcIk5lc3RlZCBMMCBob3N0IHdvcmthcm91bmQgZm9yIEwxIEtWTSBob3N0IFBNVSBoYW5kbGluZyBidWdcXFwiIGlmIEVYUEVSVFxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE3MS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MTcyOmNvbmZpZyBLVk1fQk9PSzNTX0hWX1BNVVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xNzMtXFx0dHJpc3RhdGUgXFxcIkh5cGVydmlzb3IgUGVyZiBldmVudHMgZm9yIEtWTSBCb29rM3MtSFZcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMTgzLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoxODQ6Y29uZmlnIEtWTV9CT09LRV9IVlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODUtXFx0Ym9vbFxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xODYtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE4Nzpjb25maWcgS1ZNX0VYSVRfVElNSU5HXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJEZXRhaWxlZCBleGl0IHRpbWluZ1xcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTctXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjE5ODpjb25maWcgS1ZNX0U1MDBWMlxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0xOTktXFx0Ym9vbCBcXFwiS1ZNIHN1cHBvcnQgZm9yIFBvd2VyUEMgRTUwMHYyIHByb2Nlc3NvcnNcXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjEyLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyMTM6Y29uZmlnIEtWTV9FNTAwTUNcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjE0LVxcdGJvb2wgXFxcIktWTSBzdXBwb3J0IGZvciBQb3dlclBDIEU1MDBNQy9FNTUwMC9FNjUwMCBwcm9jZXNzb3JzXFxcIlxcbi0tXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTIyOC1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWc6MjI5OmNvbmZpZyBLVk1fTVBJQ1xcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yMzAtXFx0Ym9vbCBcXFwiS1ZNIGluLWtlcm5lbCBNUElDIGVtdWxhdGlvblxcXCJcXG4tLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZy0yNDAtXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnOjI0MTpjb25maWcgS1ZNX1hJQ1NcXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjQyLVxcdGJvb2wgXFxcIktWTSBpbi1rZXJuZWwgWElDUyBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3Bvd2VycGMva3ZtL0tjb25maWctMjUwLVxcbmFyY2gvcG93ZXJwYy9rdm0vS2NvbmZpZzoyNTE6Y29uZmlnIEtWTV9YSVZFXFxuYXJjaC9wb3dlcnBjL2t2bS9LY29uZmlnLTI1Mi1cXHRib29sXFxuLS1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc9MjI9c291cmNlIFxcXCJhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL21pY3Jvd2F0dC9LY29uZmlnXFxcIlxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yMy1cXG5hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL0tjb25maWc6MjQ6Y29uZmlnIEtWTV9HVUVTVFxcbmFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvS2NvbmZpZy0yNS1cXHRib29sIFxcXCJLVk0gR3Vlc3Qgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMjEtXFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZz0xNz1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0xOC1cXG5hcmNoL3MzOTAva3ZtL0tjb25maWc6MTk6Y29uZmlnIEtWTVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZy0yMC1cXHRkZWZfdHJpc3RhdGUgeVxcbi0tXFxuYXJjaC9zMzkwL2t2bS9LY29uZmlnLTQ2LVxcbmFyY2gvczM5MC9rdm0vS2NvbmZpZzo0Nzpjb25maWcgS1ZNX1MzOTBfVUNPTlRST0xcXG5hcmNoL3MzOTAva3ZtL0tjb25maWctNDgtXFx0Ym9vbCBcXFwiVXNlcnNwYWNlIGNvbnRyb2xsZWQgdmlydHVhbCBtYWNoaW5lc1xcXCJcXG4tLVxcbmFyY2gveDg2L0tjb25maWc9ODI2PXNvdXJjZSBcXFwiYXJjaC94ODYveGVuL0tjb25maWdcXFwiXFxuYXJjaC94ODYvS2NvbmZpZy04MjctXFxuYXJjaC94ODYvS2NvbmZpZzo4Mjg6Y29uZmlnIEtWTV9HVUVTVFxcbmFyY2gveDg2L0tjb25maWctODI5LVxcdGJvb2wgXFxcIktWTSBHdWVzdCBzdXBwb3J0IChpbmNsdWRpbmcga3ZtY2xvY2spXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTg9aWYgVklSVFVBTElaQVRJT05cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xOS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNX1g4NlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxLVxcdGRlZl90cmlzdGF0ZSBLVk0gaWYgKEtWTV9JTlRFTCAhPSBuIHx8IEtWTV9BTUQgIT0gbilcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTUxLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjUyOmNvbmZpZyBLVk1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy01My1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctNjgtXFxuYXJjaC94ODYva3ZtL0tjb25maWc6Njk6Y29uZmlnIEtWTV9XRVJST1JcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy03MC1cXHRib29sIFxcXCJDb21waWxlIEtWTSB3aXRoIC1XZXJyb3JcXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy04Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzo4Mzpjb25maWcgS1ZNX1NXX1BST1RFQ1RFRF9WTVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTg0LVxcdGJvb2wgXFxcIkVuYWJsZSBzdXBwb3J0IGZvciBLVk0gc29mdHdhcmUtcHJvdGVjdGVkIFZNc1xcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTk1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjk2OmNvbmZpZyBLVk1fSU5URUxcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy05Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBJbnRlbCAoYW5kIGNvbXBhdGlibGUpIHByb2Nlc3NvcnMgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwNi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxMDc6Y29uZmlnIEtWTV9JTlRFTF9QUk9WRV9WRVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEwOC0gICAgICAgIGJvb2wgXFxcIkNoZWNrIHRoYXQgZ3Vlc3RzIGRvIG5vdCByZWNlaXZlICNWRSBleGNlcHRpb25zXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWc9MTIyPWNvbmZpZyBYODZfU0dYX0tWTVxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTMzLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjEzNDpjb25maWcgS1ZNX0lOVEVMX1REWFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTEzNS1cXHRib29sIFxcXCJJbnRlbCBUcnVzdCBEb21haW4gRXh0ZW5zaW9ucyAoVERYKSBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTQ1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE0Njpjb25maWcgS1ZNX0FNRFxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE0Ny1cXHR0cmlzdGF0ZSBcXFwiS1ZNIGZvciBBTUQgcHJvY2Vzc29ycyBzdXBwb3J0XFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTU1LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE1Njpjb25maWcgS1ZNX0FNRF9TRVZcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNTctXFx0Ym9vbCBcXFwiQU1EIFNlY3VyZSBFbmNyeXB0ZWQgVmlydHVhbGl6YXRpb24gKFNFVikgc3VwcG9ydFxcXCJcXG4tLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE3Mi1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZzoxNzM6Y29uZmlnIEtWTV9JT0FQSUNcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xNzQtXFx0Ym9vbCBcXFwiSS9PIEFQSUMsIFBJQywgYW5kIFBJVCBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0xODItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MTgzOmNvbmZpZyBLVk1fU01NXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTg0LVxcdGJvb2wgXFxcIlN5c3RlbSBNYW5hZ2VtZW50IE1vZGUgZW11bGF0aW9uXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMTkzLVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjE5NDpjb25maWcgS1ZNX0hZUEVSVlxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTE5NS1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBNaWNyb3NvZnQgSHlwZXItViBlbXVsYXRpb25cXFwiXFxuLS1cXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMDctXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjA4OmNvbmZpZyBLVk1fWEVOXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjA5LVxcdGJvb2wgXFxcIlN1cHBvcnQgZm9yIFhlbiBoeXBlcmNhbGwgaW50ZXJmYWNlXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjE2LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIxNzpjb25maWcgS1ZNX1BST1ZFX01NVVxcbmFyY2gveDg2L2t2bS9LY29uZmlnLTIxOC1cXHRib29sIFxcXCJQcm92ZSBLVk0gTU1VIGNvcnJlY3RuZXNzXFxcIlxcbi0tXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjI5LVxcbmFyY2gveDg2L2t2bS9LY29uZmlnOjIzMDpjb25maWcgS1ZNX0VYVEVSTkFMX1dSSVRFX1RSQUNLSU5HXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjMxLVxcdGJvb2xcXG5hcmNoL3g4Ni9rdm0vS2NvbmZpZy0yMzItXFxuYXJjaC94ODYva3ZtL0tjb25maWc6MjMzOmNvbmZpZyBLVk1fTUFYX05SX1ZDUFVTXFxuYXJjaC94ODYva3ZtL0tjb25maWctMjM0LVxcdGludCBcXFwiTWF4aW11bSBudW1iZXIgb2YgdkNQVXMgcGVyIEtWTSBndWVzdFxcXCJcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctMy1cXG52aXJ0L2t2bS9LY29uZmlnOjQ6Y29uZmlnIEtWTV9DT01NT05cXG52aXJ0L2t2bS9LY29uZmlnLTUtICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9Mzk9Y29uZmlnIE5FRURfS1ZNX0RJUlRZX1JJTkdfV0lUSF9CSVRNQVBcXG4tLVxcbnZpcnQva3ZtL0tjb25maWctNDItXFxudmlydC9rdm0vS2NvbmZpZzo0Mzpjb25maWcgS1ZNX01NSU9cXG52aXJ0L2t2bS9LY29uZmlnLTQ0LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy00NS1cXG52aXJ0L2t2bS9LY29uZmlnOjQ2OmNvbmZpZyBLVk1fQVNZTkNfUEZcXG52aXJ0L2t2bS9LY29uZmlnLTQ3LSAgICAgICBib29sXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTQ5LSMgVG9nZ2xlIHRvIHN3aXRjaCBiZXR3ZWVuIGRpcmVjdCBub3RpZmljYXRpb24gYW5kIGJhdGNoIGpvYlxcbnZpcnQva3ZtL0tjb25maWc6NTA6Y29uZmlnIEtWTV9BU1lOQ19QRl9TWU5DXFxudmlydC9rdm0vS2NvbmZpZy01MS0gICAgICAgYm9vbFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZz01OT1jb25maWcgSEFWRV9LVk1fQ1BVX1JFTEFYX0lOVEVSQ0VQVFxcbi0tXFxudmlydC9rdm0vS2NvbmZpZy02MS1cXG52aXJ0L2t2bS9LY29uZmlnOjYyOmNvbmZpZyBLVk1fVkZJT1xcbnZpcnQva3ZtL0tjb25maWctNjMtICAgICAgIGJvb2xcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9NjU9Y29uZmlnIEhBVkVfS1ZNX0lOVkFMSURfV0FLRVVQU1xcbi0tXFxudmlydC9rdm0vS2NvbmZpZy02Ny1cXG52aXJ0L2t2bS9LY29uZmlnOjY4OmNvbmZpZyBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcXG52aXJ0L2t2bS9LY29uZmlnLTY5LSAgICAgICBib29sXFxudmlydC9rdm0vS2NvbmZpZy03MC1cXG52aXJ0L2t2bS9LY29uZmlnOjcxOmNvbmZpZyBLVk1fR0VORVJJQ19QUkVfRkFVTFRfTUVNT1JZXFxudmlydC9rdm0vS2NvbmZpZy03Mi0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctNzMtXFxudmlydC9rdm0vS2NvbmZpZzo3NDpjb25maWcgS1ZNX0NPTVBBVFxcbnZpcnQva3ZtL0tjb25maWctNzUtICAgICAgIGRlZl9ib29sIHlcXG4tLVxcbnZpcnQva3ZtL0tjb25maWc9OTE9Y29uZmlnIEhBVkVfS1ZNX1BNX05PVElGSUVSXFxuLS1cXG52aXJ0L2t2bS9LY29uZmlnLTkzLVxcbnZpcnQva3ZtL0tjb25maWc6OTQ6Y29uZmlnIEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXFxudmlydC9rdm0vS2NvbmZpZy05NS0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctOTYtXFxudmlydC9rdm0vS2NvbmZpZzo5Nzpjb25maWcgS1ZNX0VMSURFX1RMQl9GTFVTSF9JRl9ZT1VOR1xcbnZpcnQva3ZtL0tjb25maWctOTgtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTk5LVxcbnZpcnQva3ZtL0tjb25maWc6MTAwOmNvbmZpZyBLVk1fTU1VX0xPQ0tMRVNTX0FHSU5HXFxudmlydC9rdm0vS2NvbmZpZy0xMDEtICAgICAgIGJvb2xcXG52aXJ0L2t2bS9LY29uZmlnLTEwMi1cXG52aXJ0L2t2bS9LY29uZmlnOjEwMzpjb25maWcgS1ZNX0dFTkVSSUNfTUVNT1JZX0FUVFJJQlVURVNcXG52aXJ0L2t2bS9LY29uZmlnLTEwNC0gICAgICAgYm9vbFxcbnZpcnQva3ZtL0tjb25maWctMTA1LVxcbnZpcnQva3ZtL0tjb25maWc6MTA2OmNvbmZpZyBLVk1fR1VFU1RfTUVNRkRcXG52aXJ0L2t2bS9LY29uZmlnLTEwNy0gICAgICAgc2VsZWN0IFhBUlJBWV9NVUxUSVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xOVQwMzo1OToyNS42MTU4NDk5MjVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5MTU4MTk4NTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIGEgS1ZNIFBhdGNoIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duIGZvciBmdXp6aW5nLiBXZSdyZSBsb29raW5nIGF0IGEgcGF0Y2ggcmVsYXRlZCB0byBLVk0sIHNwZWNpZmljYWxseSBmb3IgeDg2IHdpdGggVk1YLCBoZW5jZSBgS1ZNYCBhbmQgYEtWTV9JTlRFTGAgYXJlIGtleS4gV2Ugc2hvdWxkIGNoZWNrIGBhcmNoL3g4Ni9rdm0vS2NvbmZpZ2AgZm9yIHRoZSBkZXBlbmRlbmNpZXMgb2YgYEtWTV9JTlRFTGA7IGl0J3MgZ29pbmcgdG8gZGVwZW5kIG9uIGBLVk1gLCBvYnZpb3VzbHkuXG5cblNvLCBmb3IgY29uZmlndXJhdGlvbiwgd2UgbmVlZCB0byBlbmFibGUgYEtWTWAgYW5kIGBLVk1fSU5URUxgLiBUaGF0J3MgdGhlIGJhc2VsaW5lLlxuXG5Ob3csIGZvciBmb2N1cyBzeW1ib2xzLCBsZXQncyBzZWUuLi4gYGt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSXQncyBhIEtWTSBpb2N0bCBoYW5kbGVyLCBzbyBpdCdzIGEgZGlyZWN0IGVudHJ5IHBvaW50LiBJdCdzIGFsbW9zdCBhbHdheXMgYSBnb29kIGlkZWEgdG8gdGFyZ2V0IGlvY3Rscy4gQW5kLCBgdm14X2NsZWFyX2hsdGAuIE9oLCB3YWl0LCB3YXMgYHZteF9jbGVhcl9obHRgIGV2ZW4gKmluKiB0aGUgcGF0Y2g/IEhtbS4uLlxuXG5ZZXMsIGl0IGxvb2tzIGxpa2UgYHZteF9jbGVhcl9obHRgIHdhcyBwcmVzZW50LCBidXQgdGhlIHBhdGNoIGNoYW5nZWQgaXRzIHZpc2liaWxpdHkuIEl0IHdhcyBzdGF0aWMsIGFuZCBub3cgaXQncyBub24tc3RhdGljLiBMZXQncyBsb29rIGF0IHRoZSBkaWZmOiBgc3RhdGljIHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpYCBiZWNhbWUgYHZvaWQgdm14X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpYC4gQWhhISBNYWtpbmcgaXQgbm9uLXN0YXRpYyBzdWdnZXN0cyBpdCdzIGJlaW5nICp1c2VkKiBtb3JlIGdlbmVyYWxseSBub3csIHdoaWNoIGxpa2VseSBtZWFucyBpdCdzIHdvcnRoIGZ1enppbmchXG5cbk9rYXksIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXM6IHRoZSBwYXRjaCBmdW5kYW1lbnRhbGx5IGFsdGVycyBob3cgS1ZNIG1hbmFnZXMgdkNQVSBzdGF0ZS4gSXQgaW50cm9kdWNlcyBhIGBjbGVhcl9obHRgIG9wZXJhdGlvbiB3aXRoaW4gYGt2bV94ODZfb3BzYCBhbmQgY2FsbHMgaXQgd2hlbiB1c2Vyc3BhY2Ugc2V0cyB0aGUgdkNQVSBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGVzIGxpa2UgVk1YJ3MgSExUIHN0YXRlLCB3aGljaCBhcHBlYXJzIHRvIGZpeCBhIHByZXR0eSBuYXN0eSB3ZWRnaW5nIGJ1Zy4gVGhhdCBtYWtlcyBpdCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIGNvcmUgS1ZNIGxvZ2ljIHRoYXQgaXMgcmVhY2hhYmxlIGFuZCBzaG91bGQgYmUgZnV6emVkIGZvciBzdXJlLlxuXG5TbywgbGV0J3MgcHJlcGFyZSB0aGUgZnV6emluZyBjb25maWd1cmF0aW9uOlxuYFdvcnRoRnV6emluZ2A6IFRydWVcbmBGb2N1c1N5bWJvbHNgOiBgW1wia3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZVwiLCBcInZteF9jbGVhcl9obHRcIl1gXG5gRW5hYmxlQ29uZmlnc2A6IGBbXCJLVk1cIiwgXCJLVk1fSU5URUxcIl1gXG5gUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgS1ZNIHZDUFUgc3RhdGUgbWFuYWdlbWVudCBieSBhZGRpbmcgYSBuZXcgY2xlYXJfaGx0IG9wZXJhdGlvbiB0byBrdm1feDg2X29wcyBhbmQgY2FsbGluZyBpdCB3aGVuIHVzZXJzcGFjZSBzZXRzIHRoZSB2Q1BVIHN0YXRlIHRvIEtWTV9NUF9TVEFURV9SVU5OQUJMRS4gVGhpcyBmb3JjZXMgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGluYWN0aXZlIHN0YXRlIChsaWtlIFZNWCdzIEhMVCBzdGF0ZSksIGZpeGluZyBhIGJ1ZyB3aGVyZSBhIHZDUFUgY291bGQgc3RheSB3ZWRnZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBLVk0gbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCJcblxuXG4iLCJJbnB1dFRva2VucyI6MTEzMDgsIk91dHB1dFRva2VucyI6MTcwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQ1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE5VDAzOjU5OjM0Ljc3NDA1MTAxMloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2NTcwOTQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVcIixcbiAgICBcInZteF9jbGVhcl9obHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJ3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIixcbiAgICBcIktWTV9JTlRFTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9hcmNoX3ZjcHVfaW9jdGxfc2V0X21wc3RhdGVcIixcbiAgICBcInZteF9jbGVhcl9obHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBLVk0gdkNQVSBzdGF0ZSBtYW5hZ2VtZW50IGJ5IGFkZGluZyBhIG5ldyBjbGVhcl9obHQgb3BlcmF0aW9uIHRvIGt2bV94ODZfb3BzIGFuZCBjYWxsaW5nIGl0IHdoZW4gdXNlcnNwYWNlIHNldHMgdGhlIHZDUFUgc3RhdGUgdG8gS1ZNX01QX1NUQVRFX1JVTk5BQkxFLiBUaGlzIGZvcmNlcyB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUgKGxpa2UgVk1YJ3MgSExUIHN0YXRlKSwgZml4aW5nIGEgYnVnIHdoZXJlIGEgdkNQVSBjb3VsZCBzdGF5IHdlZGdlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIEtWTSBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTk6MzQuODUwNjI4NzU1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTI0MzU2MTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTk6MzQuODUxMTEyMTk1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjcxMjM4Njg5NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHRvIGBrdm1feDg2X29wc2AgdG8gY2xlYXIgdGhlIGhhcmR3YXJlLXRyYWNrZWQgaGFsdGVkIHN0YXRlIG9mIGEgdkNQVSB3aGVuIHVzZXJzcGFjZSBzZXRzIGl0cyBtdWx0aXByb2Nlc3Npbmcgc3RhdGUgdG8gYEtWTV9NUF9TVEFURV9SVU5OQUJMRWAuIFRoaXMgaXMgYSBjb250cm9sIGZsb3cgYW5kIHN0YXRlIG1hbmFnZW1lbnQgZml4IGZvciBLVk0vVk1YLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBkYXRhIHN0cnVjdHVyZXMsIG1lbW9yeSBhbGxvY2F0aW9ucywgb3IgZGF0YSBjb3BpZWQgdG8gdXNlciBzcGFjZS4gVGhlcmVmb3JlLCB0aGVyZSBpcyBubyByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MgdGhhdCB3b3VsZCByZXF1aXJlIEtNU0FOIHRvIGRldGVjdC4gU3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMgYXJlIHN1ZmZpY2llbnQgZm9yIHRoaXMgY29kZS5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyN2VmYTUzZTQzMGU4MWY5NzliNzRlNjM2MTNkZWRlZTI5YjgwNzBhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBBdWcgMTkgMDM6NTg6MDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm0teDg2LW9wcy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtLXg4Ni1vcHMuaFxuaW5kZXggZTIxM2M5YWUzZTMwMS4uZGQ5MDI2YzEwNzFjZSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bS14ODYtb3BzLmhcbkBAIC04Miw2ICs4Miw3IEBAIEtWTV9YODZfT1AoaW50ZXJydXB0X2FsbG93ZWQpXG4gS1ZNX1g4Nl9PUChubWlfYWxsb3dlZClcbiBLVk1fWDg2X09QKGdldF9ubWlfbWFzaylcbiBLVk1fWDg2X09QKHNldF9ubWlfbWFzaylcbitLVk1fWDg2X09QX09QVElPTkFMKGNsZWFyX2hsdClcbiBLVk1fWDg2X09QKGVuYWJsZV9ubWlfd2luZG93KVxuIEtWTV9YODZfT1AoZW5hYmxlX2lycV93aW5kb3cpXG4gS1ZNX1g4Nl9PUF9PUFRJT05BTCh1cGRhdGVfY3I4X2ludGVyY2VwdClcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtX2hvc3QuaFxuaW5kZXggMjgzODQ3NjE5ZmY4OC4uZTVhMDc1ODUzNmUxMSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmhcbkBAIC0xNjA3LDYgKzE2MDcsMTMgQEAgc3RydWN0IGt2bV94ODZfb3BzIHtcbiBcdGludCAoKm5taV9hbGxvd2VkKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yX2luamVjdGlvbik7XG4gXHRib29sICgqZ2V0X25taV9tYXNrKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0dm9pZCAoKnNldF9ubWlfbWFzaykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIG1hc2tlZCk7XG4rXHQvKlxuK1x0ICogRm9yY2UgdGhlIHZDUFUgb3V0IG9mIGFueSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZC9pbmFjdGl2ZSBzdGF0ZSBzb1xuK1x0ICogdGhhdCBpdCB3aWxsIGZldGNoIGFuZCBleGVjdXRlIGluc3RydWN0aW9ucyBvbiB0aGUgbmV4dCBWTS1FbnRlci5cbitcdCAqIE9ubHkgbmVlZGVkIGJ5IFZNWCwgd2hlcmUgVk1DUy5HVUVTVF9BQ1RJVklUWV9TVEFURSBwZXJzaXN0cyBhY3Jvc3NcbitcdCAqIFZNLUV4aXQvVk0tRW50ZXI7IFNWTSBoYXMgbm8gZXF1aXZhbGVudCBWTUNCIGZpZWxkLlxuK1x0ICovXG4rXHR2b2lkICgqY2xlYXJfaGx0KShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIFx0LyogV2hldGhlciBvciBub3QgYSB2aXJ0dWFsIE5NSSBpcyBwZW5kaW5nIGluIGhhcmR3YXJlLiAqL1xuIFx0Ym9vbCAoKmlzX3ZubWlfcGVuZGluZykoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiBcdC8qXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC9tYWluLmMgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuaW5kZXggMGZmMzIzMGZkOTVlOC4uNzRjZTlkZDcwNDE5MSAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvbWFpbi5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L21haW4uY1xuQEAgLTYwMSw2ICs2MDEsMTggQEAgc3RhdGljIHZvaWQgdnRfc2V0X25taV9tYXNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBtYXNrZWQpXG4gXHR2bXhfc2V0X25taV9tYXNrKHZjcHUsIG1hc2tlZCk7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIHZ0X2NsZWFyX2hsdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4re1xuK1x0LypcbitcdCAqIFREWCBkb2Vzbid0IHN1cHBvcnQgZGlzYWJsaW5nIEhMVC1leGl0aW5nLCBhbmQgS1ZNIGNhbid0IGFjY2VzcyBhXG4rXHQgKiBURCdzIFZNQ1MsIHNvIHRoZXJlIGlzIG5ldmVyIGFueSBoYXJkd2FyZSBoYWx0ZWQgc3RhdGUgdG8gY2xlYXIuXG4rXHQgKi9cbitcdGlmIChpc190ZF92Y3B1KHZjcHUpKVxuK1x0XHRyZXR1cm47XG4rXG4rXHR2bXhfY2xlYXJfaGx0KHZjcHUpO1xuK31cbitcbiBzdGF0aWMgdm9pZCB2dF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4ge1xuIFx0LyogUmVmZXIgdG8gdGhlIGNvbW1lbnRzIGluIHRkeF9pbmplY3Rfbm1pKCkuICovXG5AQCAtOTY0LDYgKzk3Niw3IEBAIHN0cnVjdCBrdm1feDg2X29wcyB2dF94ODZfb3BzIF9faW5pdGRhdGEgPSB7XG4gXHQubm1pX2FsbG93ZWQgPSB2dF9vcChubWlfYWxsb3dlZCksXG4gXHQuZ2V0X25taV9tYXNrID0gdnRfb3AoZ2V0X25taV9tYXNrKSxcbiBcdC5zZXRfbm1pX21hc2sgPSB2dF9vcChzZXRfbm1pX21hc2spLFxuK1x0LmNsZWFyX2hsdCA9IHZ0X29wKGNsZWFyX2hsdCksXG4gXHQuZW5hYmxlX25taV93aW5kb3cgPSB2dF9vcChlbmFibGVfbm1pX3dpbmRvdyksXG4gXHQuZW5hYmxlX2lycV93aW5kb3cgPSB2dF9vcChlbmFibGVfaXJxX3dpbmRvdyksXG4gXHQudXBkYXRlX2NyOF9pbnRlcmNlcHQgPSB2dF9vcCh1cGRhdGVfY3I4X2ludGVyY2VwdCksXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbmluZGV4IGUzYmZlNmFjYTFhMGUuLjhhZDc5YzYwZWNjNmYgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5AQCAtMTkwOSw3ICsxOTA5LDcgQEAgaW50IHZteF9za2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbiBcdHJldHVybiBza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCB2bXhfY2xlYXJfaGx0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuIHtcbiBcdC8qXG4gXHQgKiBFbnN1cmUgdGhhdCB3ZSBjbGVhciB0aGUgSExUIHN0YXRlIGluIHRoZSBWTUNTLiAgV2UgZG9uJ3QgbmVlZCB0b1xuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgveDg2X29wcy5oIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbmluZGV4IGNkYjM4ZDk0MGNmYjcuLjQ1ZTQ3ZjUwMmEzNzAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmhcbkBAIC05NSw2ICs5NSw3IEBAIGludCB2bXhfaW50ZXJydXB0X2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIGludCB2bXhfbm1pX2FsbG93ZWQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcl9pbmplY3Rpb24pO1xuIGJvb2wgdm14X2dldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X3NldF9ubWlfbWFzayhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgbWFza2VkKTtcbit2b2lkIHZteF9jbGVhcl9obHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbiB2b2lkIHZteF9lbmFibGVfbm1pX3dpbmRvdyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xuIHZvaWQgdm14X2VuYWJsZV9pcnFfd2luZG93KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XG4gdm9pZCB2bXhfdXBkYXRlX2NyOF9pbnRlcmNlcHQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgdHByLCBpbnQgaXJyKTtcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmNcbmluZGV4IGQ5NGI1OTE0MGM0NTIuLjc3NzdjZjg4YTk2YjAgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmNcbisrKyBiL2FyY2gveDg2L2t2bS94ODYuY1xuQEAgLTkwNTgsNiArOTA1OCwxOSBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4gXHR9XG4gXG4gXHRrdm1fc2V0X21wX3N0YXRlKHZjcHUsIG1wX3N0YXRlLVx1MDAzZW1wX3N0YXRlKTtcbitcbitcdC8qXG4rXHQgKiBGb3JjZSB0aGUgdkNQVSBvdXQgb2YgYW55IGhhcmR3YXJlLXRyYWNrZWQgaW5hY3RpdmUgc3RhdGUsIGUuZy4gVk1YJ3NcbitcdCAqIEdVRVNUX0FDVElWSVRZX1NUQVRFPUhMVC4gIFRoYXQgc3RhdGUgaXMgc3RpY2t5IGFjcm9zcyBWTS1FeGl0IGFuZFxuK1x0ICogVk0tRW50ZXIgYW5kIGlzIG5vdCB0b3VjaGVkIGJ5IGFueSBvdGhlciBpb2N0bCwgc28gYSB2Q1BVIHRoYXQgaGFsdGVkXG4rXHQgKiB3aXRoIEhMVC1leGl0aW5nIGRpc2FibGVkIChLVk1fWDg2X0RJU0FCTEVfRVhJVFNfSExUKSBzdGF5cyB3ZWRnZWRcbitcdCAqIGV2ZW4gYWZ0ZXIgdXNlcnNwYWNlIGRlY2xhcmVzIGl0IFJVTk5BQkxFIGFuZCByZXdyaXRlcyBpdHMgcmVnaXN0ZXJzLFxuK1x0ICogZS5nLiB3aGVuIGEgVk1NIGVtdWxhdGVzIGEgbWFjaGluZSByZXNldC4gIFdha2luZyBmcm9tIEhMVCBpc1xuK1x0ICogYXJjaGl0ZWN0dXJhbGx5IGFsbG93ZWQgdG8gYmUgc3B1cmlvdXMsIHNvIGNsZWFyaW5nIGl0IGlzIGFsd2F5cyBzYWZlLlxuK1x0ICovXG4rXHRpZiAodmNwdS1cdTAwM2VhcmNoLm1wX3N0YXRlID09IEtWTV9NUF9TVEFURV9SVU5OQUJMRSlcbitcdFx0a3ZtX3g4Nl9jYWxsKGNsZWFyX2hsdCkodmNwdSk7XG4rXG4gXHRrdm1fbWFrZV9yZXF1ZXN0KEtWTV9SRVFfRVZFTlQsIHZjcHUpO1xuIFxuIFx0cmV0ID0gMDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE5VDAzOjU5OjM0Ljg1MTExMjg3NVoiLCJTZXEiOjEzLCJOZXN0aW5nIjozLCJUeXBlIjoibGxtIiwiTmFtZSI6Imttc2FuLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MTIzODQ0NzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEtWTS9WTVggSExULUNsZWFyaW5nIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYGNsZWFyX2hsdGAgb3BlcmF0aW9uIHdpdGhpbiBga3ZtX3g4Nl9vcHNgIGFuZCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50cyBpdCBmb3IgVk1YLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQgZ2V0cyBpbnZva2VkIHdpdGhpbiBga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZWAgd2hlbmV2ZXIgYSB2Q1BVJ3MgbXVsdGlwcm9jZXNzaW5nIHN0YXRlIHRyYW5zaXRpb25zIHRvIGBLVk1fTVBfU1RBVEVfUlVOTkFCTEVgLiBUaGlzIGFkZHJlc3NlcyBhIGtub3duIGlzc3VlIHdoZXJlIGEgdkNQVSwgaGFsdGVkIHdpdGggSExULWV4aXRpbmcgZGlzYWJsZWQsIGNvdWxkIGJlY29tZSBzdHVjayBhZnRlciB1c2Vyc3BhY2Ugc2lnbmFscyB0aGF0IGl0IHNob3VsZCBiZWNvbWUgcnVubmFibGUuXG5cbk5vdywgZnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLCBJIG5lZWQgdG8gZXZhbHVhdGUgdGhlIHBvdGVudGlhbCBmb3IgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2UuIEFmdGVyIGEgY2FyZWZ1bCByZXZpZXcsIEkndmUgY29uY2x1ZGVkIHRoYXQgdGhlcmUgYXJlIG5vIHN1Y2ggcmlza3MgaW4gdGhpcyBwYXRjaC4gSXQncyBhIHN0cmFpZ2h0Zm9yd2FyZCBmaXggaW52b2x2aW5nIGNvbnRyb2wgZmxvdyBhbmQgc3RhdGUgbWFuYWdlbWVudC4gVGhlIHBhdGNoIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBuZXcgc3RydWN0dXJlcyB0aGF0IGFyZSBleHBvc2VkIHRvIHVzZXJzcGFjZS4gSXQgZG9lc24ndCB1c2UgYW55IGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIG9yIG1lbW9yeSBhbGxvY2F0aW9ucyB0aGF0IGNvdWxkIGxlYWQgdG8gdnVsbmVyYWJpbGl0aWVzLiBSZWFsbHksIHRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgc2ltcGx5IGFkZGluZyBhIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYGt2bV94ODZfb3BzYCBhbmQgdGhlbiBjYWxsaW5nIHRoZSBwcmUtZXhpc3RpbmcgYHZteF9jbGVhcl9obHRgIGZ1bmN0aW9uLCB3aGljaCB3YXMgcHJldmlvdXNseSBhIHN0YXRpYyBmdW5jdGlvbi5cblxuR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgY2hhbmdlcywgSSdtIGNvbmZpZGVudCB0aGF0IEtNU0FOIGlzIG5vdCBuZWNlc3NhcnkgaGVyZS4gU3RhbmRhcmQgS0FTQU4gYW5kIG90aGVyIGJ1ZyBkZXRlY3RvcnMgc2hvdWxkIGJlIHN1ZmZpY2llbnQgdG8gY2F0Y2ggYW55IHBvdGVudGlhbCBpc3N1ZXMuIFRoZXJlZm9yZSwgSSB3aWxsIHNldCBgTmVlZHNLTVNBTj1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM5MTksIk91dHB1dFRva2VucyI6MTUzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTlUMDM6NTk6NDEuOTc0OTYwNzU0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjMsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg2NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGBjbGVhcl9obHRgIG9wZXJhdGlvbiB0byBga3ZtX3g4Nl9vcHNgIHRvIGNsZWFyIHRoZSBoYXJkd2FyZS10cmFja2VkIGhhbHRlZCBzdGF0ZSBvZiBhIHZDUFUgd2hlbiB1c2Vyc3BhY2Ugc2V0cyBpdHMgbXVsdGlwcm9jZXNzaW5nIHN0YXRlIHRvIGBLVk1fTVBfU1RBVEVfUlVOTkFCTEVgLiBUaGlzIGlzIGEgY29udHJvbCBmbG93IGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGZpeCBmb3IgS1ZNL1ZNWC4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZGF0YSBzdHJ1Y3R1cmVzLCBtZW1vcnkgYWxsb2NhdGlvbnMsIG9yIGRhdGEgY29waWVkIHRvIHVzZXIgc3BhY2UuIFRoZXJlZm9yZSwgdGhlcmUgaXMgbm8gcmlzayBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSB1c2FnZSBvciBpbmZvLWxlYWtzIHRoYXQgd291bGQgcmVxdWlyZSBLTVNBTiB0byBkZXRlY3QuIFN0YW5kYXJkIEtBU0FOIGFuZCBvdGhlciBidWcgZGV0ZWN0b3JzIGFyZSBzdWZmaWNpZW50IGZvciB0aGlzIGNvZGUuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBgY2xlYXJfaGx0YCBvcGVyYXRpb24gdG8gYGt2bV94ODZfb3BzYCB0byBjbGVhciB0aGUgaGFyZHdhcmUtdHJhY2tlZCBoYWx0ZWQgc3RhdGUgb2YgYSB2Q1BVIHdoZW4gdXNlcnNwYWNlIHNldHMgaXRzIG11bHRpcHJvY2Vzc2luZyBzdGF0ZSB0byBgS1ZNX01QX1NUQVRFX1JVTk5BQkxFYC4gVGhpcyBpcyBhIGNvbnRyb2wgZmxvdyBhbmQgc3RhdGUgbWFuYWdlbWVudCBmaXggZm9yIEtWTS9WTVguIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGRhdGEgc3RydWN0dXJlcywgbWVtb3J5IGFsbG9jYXRpb25zLCBvciBkYXRhIGNvcGllZCB0byB1c2VyIHNwYWNlLiBUaGVyZWZvcmUsIHRoZXJlIGlzIG5vIHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcyB0aGF0IHdvdWxkIHJlcXVpcmUgS01TQU4gdG8gZGV0ZWN0LiBTdGFuZGFyZCBLQVNBTiBhbmQgb3RoZXIgYnVnIGRldGVjdG9ycyBhcmUgc3VmZmljaWVudCBmb3IgdGhpcyBjb2RlLlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowzlqq8[1] Phase: Succeeded StartedAt: 2026-08-19 03:59:53 +0000 UTC FinishedAt: 2026-08-19 03:59:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-19 03:59:53 +0000 UTC FinishedAt: 2026-08-19 03:59:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2] Phase: Succeeded StartedAt: 2026-08-19 03:59:53 +0000 UTC FinishedAt: 2026-08-19 07:38:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-19 03:59:53 +0000 UTC FinishedAt: 2026-08-19 07:38:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-19 03:59:53 +0000 UTC FinishedAt: 2026-08-19 04:00:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-19 03:59:53 +0000 UTC FinishedAt: 2026-08-19 03:59:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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-workflowzlqq8/series-workflowzlqq8-convert-artifact-4274798044/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-19 04:00:03 +0000 UTC FinishedAt: 2026-08-19 04:16:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-19 04:00:03 +0000 UTC FinishedAt: 2026-08-19 04:16:30 +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:*2e4caeec-4c9b-48c1-91d7-0b6f180e61f4,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-workflowzlqq8/series-workflowzlqq8-convert-artifact-4274798044/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": "174e0cfd-da8b-474c-a291-185c66a35616", "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-workflowzlqq8/series-workflowzlqq8-build-action-1302229258/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-19 04:00:03 +0000 UTC FinishedAt: 2026-08-19 04:16:20 +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:*2e4caeec-4c9b-48c1-91d7-0b6f180e61f4,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-workflowzlqq8/series-workflowzlqq8-convert-artifact-4274798044/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": "174e0cfd-da8b-474c-a291-185c66a35616", "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-workflowzlqq8/series-workflowzlqq8-build-action-1302229258/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-19 04:16:30 +0000 UTC FinishedAt: 2026-08-19 04:16:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-19 04:16:30 +0000 UTC FinishedAt: 2026-08-19 04:16:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-19 04:16:30 +0000 UTC FinishedAt: 2026-08-19 04:16:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-19 04:16:30 +0000 UTC FinishedAt: 2026-08-19 04:16:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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-workflowzlqq8/series-workflowzlqq8-convert-artifact-1628461083/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-19 04:16:40 +0000 UTC FinishedAt: 2026-08-19 04:18:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-19 04:16:40 +0000 UTC FinishedAt: 2026-08-19 04:18:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*174e0cfd-da8b-474c-a291-185c66a35616,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-workflowzlqq8/series-workflowzlqq8-build-action-1302229258/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-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-19 04:18:33 +0000 UTC FinishedAt: 2026-08-19 04:18:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-19 04:18:33 +0000 UTC FinishedAt: 2026-08-19 04:18:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-19 04:18:33 +0000 UTC FinishedAt: 2026-08-19 04:34:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-19 04:18:33 +0000 UTC FinishedAt: 2026-08-19 04:34:52 +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:*2e4caeec-4c9b-48c1-91d7-0b6f180e61f4,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-workflowzlqq8/series-workflowzlqq8-convert-artifact-1628461083/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": "2e237c47-a5df-45d2-8297-178d8220c2c6", "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-workflowzlqq8/series-workflowzlqq8-build-action-3277833151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-19 04:18:33 +0000 UTC FinishedAt: 2026-08-19 04:34:42 +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:*2e4caeec-4c9b-48c1-91d7-0b6f180e61f4,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-workflowzlqq8/series-workflowzlqq8-convert-artifact-1628461083/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": "2e237c47-a5df-45d2-8297-178d8220c2c6", "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-workflowzlqq8/series-workflowzlqq8-build-action-3277833151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-19 04:34:52 +0000 UTC FinishedAt: 2026-08-19 04:34:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-19 04:34:52 +0000 UTC FinishedAt: 2026-08-19 04:34:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-19 04:34:52 +0000 UTC FinishedAt: 2026-08-19 04:36:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-19 04:34:52 +0000 UTC FinishedAt: 2026-08-19 04:36:45 +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:*2e237c47-a5df-45d2-8297-178d8220c2c6,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-workflowzlqq8/series-workflowzlqq8-build-action-3277833151/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-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-19 04:36:53 +0000 UTC FinishedAt: 2026-08-19 07:38:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-19 04:36:53 +0000 UTC FinishedAt: 2026-08-19 07:38:21 +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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"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:*174e0cfd-da8b-474c-a291-185c66a35616,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2e237c47-a5df-45d2-8297-178d8220c2c6,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-workflowzlqq8/series-workflowzlqq8-build-action-1302229258/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-workflowzlqq8/series-workflowzlqq8-build-action-3277833151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-19 04:36:53 +0000 UTC FinishedAt: 2026-08-19 04:37:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-19 04:36:53 +0000 UTC FinishedAt: 2026-08-19 04:36:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"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-workflowzlqq8/series-workflowzlqq8-convert-artifact-137037332/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-19 04:36:53 +0000 UTC FinishedAt: 2026-08-19 04:36:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-19 04:36:53 +0000 UTC FinishedAt: 2026-08-19 04:36:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-19 04:36:53 +0000 UTC FinishedAt: 2026-08-19 04:36:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-19 04:37:03 +0000 UTC FinishedAt: 2026-08-19 07:38:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzlqq8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.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_arch_vcpu_ioctl_set_mpstate","vmx_clear_hlt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1b731e5ded480bd1e5546aed35584238661ce72e","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM","KVM_INTEL"],"series_id":"a16af01a-0103-4ae9-b992-3f40b0988c79","tree_name":"kvm-x86","tree_url":"https://github.com/kvm-x86/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-19 04:37:03 +0000 UTC FinishedAt: 2026-08-19 07:38:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*174e0cfd-da8b-474c-a291-185c66a35616,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*2e237c47-a5df-45d2-8297-178d8220c2c6,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-workflowzlqq8/series-workflowzlqq8-build-action-1302229258/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-workflowzlqq8/series-workflowzlqq8-build-action-3277833151/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-workflowzlqq8/series-workflowzlqq8-convert-artifact-137037332/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,}