Name: series-workflowmnk5s Phase: Succeeded StartedAt: 2026-07-22 20:13:10 +0000 UTC FinishedAt: 2026-07-22 22:36:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[0] Phase: Succeeded StartedAt: 2026-07-22 20:13:10 +0000 UTC FinishedAt: 2026-07-22 20:25:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[0].run-triage Phase: Succeeded StartedAt: 2026-07-22 20:13:10 +0000 UTC FinishedAt: 2026-07-22 20:25:57 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U", "MT7925U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U", "MT7925U" ], "series_id": "d03a8447-2c6e-47bf-9b13-bdc85096605b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt76_phy_init", "mt792x_init_wiphy" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzZfcGh5X2luaXQmIzM0OywKICAgICYjMzQ7bXQ3OTJ4X2luaXRfd2lwaHkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNVDc2IHdpcmVsZXNzIGRyaXZlciB0byBkaXNhYmxlIHRoZSBhY3RpdmUgbW9uaXRvciBmZWF0dXJlIGZvciBNVDc5MnggZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgZHJpdmVyIHRoYXQgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFVTQiBlbXVsYXRpb24gKE1UNzkyMVUgYW5kIE1UNzkyNVUpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZTQ5OTU2NzE2MWE3ZjI2YTdmYmI0ODk2NTk3ZTc2MmRjZGVmNGRkM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDIwOjIzOjQ1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xuaW5kZXggMTNjNGU4YWJlMjgxOTEuLmRhYTI5MDhkODQ0ZjA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcbkBAIC00MzksOCAmIzQzOzQzOSw5IEBAIG10NzZfcGh5X2luaXQoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuIFx0U0VUX0lFRUU4MDIxMV9ERVYoaHcsIGRldi1cdTAwM2VkZXYpO1xuIFx0U0VUX0lFRUU4MDIxMV9QRVJNX0FERFIoaHcsIHBoeS1cdTAwM2VtYWNhZGRyKTtcbiBcbi1cdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUiB8XG4tXHRcdFx0ICAgTkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0U7XG4mIzQzO1x0d2lwaHktXHUwMDNlZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0U7XG4mIzQzO1x0aWYgKCFwaHktXHUwMDNlbm9fYWN0aXZlX21vbml0b3IpXG4mIzQzO1x0XHR3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I7XG4gXHR3aXBoeS1cdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX0hBU19DSEFOTkVMX1NXSVRDSCB8XG4gXHRcdFx0V0lQSFlfRkxBR19TVVBQT1JUU19URExTIHxcbiBcdFx0XHRXSVBIWV9GTEFHX0FQX1VBUFNEO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmhcbmluZGV4IDA3OTU1NTU1Zjg0ZDgzLi41OTE5ODMwNzhjNmY1NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaFxuQEAgLTg3MSw2ICYjNDM7ODcxLDcgQEAgc3RydWN0IG10NzZfcGh5IHtcbiBcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiBtYWluX2NoYW5kZWY7XG4gXHRib29sIG9mZmNoYW5uZWw7XG4gXHRib29sIHJhZGFyX2VuYWJsZWQ7XG4mIzQzO1x0Ym9vbCBub19hY3RpdmVfbW9uaXRvcjtcbiBcbiBcdHN0cnVjdCBkZWxheWVkX3dvcmsgcm9jX3dvcms7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqcm9jX3ZpZjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmNcbmluZGV4IGI1MDgyNWVjY2RhZmVlLi42YTcxYTYxMzRhNTRmNSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jXG5AQCAtNzEyLDYgJiM0Mzs3MTIsNyBAQCBpbnQgbXQ3OTJ4X2luaXRfd2lwaHkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4gXG4gXHR3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0NIRURfU0NBTl9SQU5ET01fTUFDX0FERFIgfFxuIFx0XHRcdCAgIE5MODAyMTFfRkVBVFVSRV9TQ0FOX1JBTkRPTV9NQUNfQUREUjtcbiYjNDM7XHRwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vub19hY3RpdmVfbW9uaXRvciA9IHRydWU7XG4gXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksIE5MODAyMTFfRVhUX0ZFQVRVUkVfU0VUX1NDQU5fRFdFTEwpO1xuIFx0d2lwaHlfZXh0X2ZlYXR1cmVfc2V0KHdpcGh5LCBOTDgwMjExX0VYVF9GRUFUVVJFX0JFQUNPTl9SQVRFX0xFR0FDWSk7XG4gXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksIE5MODAyMTFfRVhUX0ZFQVRVUkVfQkVBQ09OX1JBVEVfSFQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjFVJiMzNDssCiAgICAmIzM0O01UNzkyNVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc2X3BoeV9pbml0JiMzNDssCiAgICAmIzM0O210NzkyeF9pbml0X3dpcGh5JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTQ5OTU2NzE2MWE3ZjI2YTdmYmI0ODk2NTk3ZTc2MmRjZGVmNGRkMwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDIyIDIwOjIzOjQ1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jCmluZGV4IDEzYzRlOGFiZTI4MTkxLi5kYWEyOTA4ZDg0NGYwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYwpAQCAtNDM5LDggJiM0Mzs0MzksOSBAQCBtdDc2X3BoeV9pbml0KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykKIAlTRVRfSUVFRTgwMjExX0RFVihodywgZGV2LSZndDtkZXYpOwogCVNFVF9JRUVFODAyMTFfUEVSTV9BRERSKGh3LCBwaHktJmd0O21hY2FkZHIpOwogCi0Jd2lwaHktJmd0O2ZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUiB8Ci0JCQkgICBOTDgwMjExX0ZFQVRVUkVfQVBfTU9ERV9DSEFOX1dJRFRIX0NIQU5HRTsKJiM0MzsJd2lwaHktJmd0O2ZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFOwomIzQzOwlpZiAoIXBoeS0mZ3Q7bm9fYWN0aXZlX21vbml0b3IpCiYjNDM7CQl3aXBoeS0mZ3Q7ZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SOwogCXdpcGh5LSZndDtmbGFncyB8PSBXSVBIWV9GTEFHX0hBU19DSEFOTkVMX1NXSVRDSCB8CiAJCQlXSVBIWV9GTEFHX1NVUFBPUlRTX1RETFMgfAogCQkJV0lQSFlfRkxBR19BUF9VQVBTRDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgKaW5kZXggMDc5NTU1NTVmODRkODMuLjU5MTk4MzA3OGM2ZjU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaApAQCAtODcxLDYgJiM0Mzs4NzEsNyBAQCBzdHJ1Y3QgbXQ3Nl9waHkgewogCXN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiBtYWluX2NoYW5kZWY7CiAJYm9vbCBvZmZjaGFubmVsOwogCWJvb2wgcmFkYXJfZW5hYmxlZDsKJiM0MzsJYm9vbCBub19hY3RpdmVfbW9uaXRvcjsKIAogCXN0cnVjdCBkZWxheWVkX3dvcmsgcm9jX3dvcms7CiAJc3RydWN0IGllZWU4MDIxMV92aWYgKnJvY192aWY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMKaW5kZXggYjUwODI1ZWNjZGFmZWUuLjZhNzFhNjEzNGE1NGY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jCkBAIC03MTIsNiAmIzQzOzcxMiw3IEBAIGludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykKIAogCXdpcGh5LSZndDtmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0NIRURfU0NBTl9SQU5ET01fTUFDX0FERFIgfAogCQkJICAgTkw4MDIxMV9GRUFUVVJFX1NDQU5fUkFORE9NX01BQ19BRERSOwomIzQzOwlwaHktJmd0O210NzYtJmd0O25vX2FjdGl2ZV9tb25pdG9yID0gdHJ1ZTsKIAl3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksIE5MODAyMTFfRVhUX0ZFQVRVUkVfU0VUX1NDQU5fRFdFTEwpOwogCXdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9CRUFDT05fUkFURV9MRUdBQ1kpOwogCXdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9CRUFDT05fUkFURV9IVCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NDAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAzMDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWVkaWF0ZWsgTVQ3NiBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdG91Y2hpbmcgYG1hYzgwMjExLmNgLCBgbXQ3Ni5oYCwgYW5kIGBtdDc5MnhfY29yZS5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBpbnRyb2R1Y2UgYSBgbm9fYWN0aXZlX21vbml0b3JgIGJvb2xlYW4gd2l0aGluIHRoZSBgc3RydWN0IG10NzZfcGh5YC4gVGhpcyBib29sZWFuIGlzIHRoZW4gdXNlZCB0byBjb25kaXRpb25hbGx5IGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmZWF0dXJlIGR1cmluZyB0aGUgYG10NzZfcGh5X2luaXRgIHByb2Nlc3MuICBFc3NlbnRpYWxseSwgaXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBkaXNhYmxpbmcgYWN0aXZlIG1vbml0b3IgbW9kZSBvbiB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCwgYnV0IGl0JiMzOTtzIGEgaGFyZHdhcmUtc3BlY2lmaWMgY2hhbmdlIHRvIHRoZSBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlci4gVGhlIHJlYWwgcXVlc3Rpb24gaW4gbXkgbWluZCwgZ2l2ZW4gdGhhdCB0aGlzIGFmZmVjdHMgYSB3aXJlbGVzcyBkcml2ZXIsIGlzICpob3cqIHJlYWNoYWJsZSBpcyB0aGlzIGRyaXZlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyAgTW9zdCBvZiB0aGVzZSBoYXJkd2FyZS1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXJzLCBhcyBJIGtub3csIGFyZSBnZW5lcmFsbHkgbm90IGVhc2lseSBhY2Nlc3NpYmxlIHVubGVzcyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGVtdWxhdGlvbiBvciwgaWYgaXQmIzM5O3MgYSBVU0IgZHJpdmVyLCB0aHJvdWdoIHNvbWUgVVNCIGVtdWxhdGlvbiBzZXR1cC4KClNvLCB0aGUgbmV4dCB0aGluZyBJJiMzOTttIGRvaW5nIGlzIGNoZWNraW5nIGlmIHRoaXMgTVQ3NiBhY3R1YWxseSBoYXMgYSBVU0IgZHJpdmVyLiBJIGtub3cgYG10NzkyeGAgaXMgcGFydCBvZiBNVDc2LCBzbyBJJiMzOTtsbCBjaGVjayBpbnNpZGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY2AgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBpbmRpY2F0aW9uIG9mIFVTQiBzdXBwb3J0LiBUaGUgcGF0Y2ggaXRzZWxmIGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgbWVudGlvbiBVU0IsIGJ1dCBpdCYjMzk7cyBhIGNyaXRpY2FsIGZhY3RvciBpbiBkZXRlcm1pbmluZyBob3cgd2UgY2FuIHJlYWxpc3RpY2FsbHkgdGVzdCBvciBpbnRlcmFjdCB3aXRoIHRoaXMgY2hhbmdlIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudC4gSWYgaXQmIzM5O3MgVVNCLCB3ZSBoYXZlIHNvbWUgb3B0aW9ucy4gSWYgbm90LCBpdCBiZWNvbWVzIGEgbXVjaCBtb3JlIGludm9sdmVkIHNjZW5hcmlvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyeCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MDUyIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX01UNzZfQ09OTkFDX0xJQikgJiM0Mzs9IG10NzYtY29ubmFjLWxpYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX01UNzkyeF9MSUIpICYjNDM7PSBtdDc5MngtbGliLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTVQ3OTJ4X1VTQikgJiM0Mzs9IG10NzkyeC11c2Iub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0xMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTI0PUNGTEFHU19tdDc2eDAyX3RyYWNlLm8gOj0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MjU6Q0ZMQUdTX210NzkyeF90cmFjZS5vIDo9IC1JJChzcmMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTI2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MzQ9bXQ3Ni1jb25uYWMtbGliLXkgOj0gbXQ3Nl9jb25uYWNfbWN1Lm8gbXQ3Nl9jb25uYWNfbWFjLm8gbXQ3Nl9jb25uYWMzX21hYy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTozNjptdDc5MngtbGliLXkgOj0gbXQ3OTJ4X2NvcmUubyBtdDc5MnhfbWFjLm8gbXQ3OTJ4X3RyYWNlLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6Mzc6XHRcdG10NzkyeF9kZWJ1Z2ZzLm8gbXQ3OTJ4X2RtYS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjM4Om10NzkyeC1saWItJChDT05GSUdfQUNQSSkgJiM0Mzs9IG10NzkyeF9hY3BpX3Nhci5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjM5Om10NzkyeC11c2IteSA6PSBtdDc5MnhfdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy02LSNpbmNsdWRlIFwmIzM0O210NzZfY29ubmFjX21jdS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jOjc6I2luY2x1ZGUgXCYjMzQ7bXQ3OTJ4X3JlZ3MuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz03PW10NzkyMV9yZWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjExOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMi1cdG10NzZfd3IoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMzpcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE5PW10NzkyMV9yZWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIzOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNC1cdCp2YWwgPSBtdDc2X3JyKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI1Olx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MzM9bXQ3OTIxX2Z3X2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzozNTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjM3Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NDI6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTQzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz00OD1tdDc5MjFfZndfZGVidWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTQ5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzo1MDpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTUxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz01Nz1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1ZywgbXQ3OTIxX2Z3X2RlYnVnX2dldCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NjA6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10NzkyeF90eF9zdGF0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTkxPW10NzkyMV90eHB3cihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjkzOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVx1MDAzZXByaXZhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk0LVx0c3RydWN0IG10NzkyMV90eHB3ciB0eHB3cjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTc6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk4LVx0cmV0ID0gbXQ3OTIxX2dldF90eHB3cl9pbmZvKGRldiwgXHUwMDI2dHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjk5Olx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE0Mz1tdDc5MjFfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNDU6XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNDYtXHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtID0gXHUwMDI2ZGV2LVx1MDAzZXBtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xNzY9bXQ3OTIxX3BtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNzcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE3ODpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE3OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTg4PW10NzkyMV9kZWVwX3NsZWVwX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE4OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTkwOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTkxLVx0c3RydWN0IG10NzZfY29ubmFjX3BtICpwbSA9IFx1MDAyNmRldi1cdTAwM2VwbTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE5ODpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk5LVx0aWYgKHBtLVx1MDAzZWRzX2VuYWJsZV91c2VyID09IGVuYWJsZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjA1LW91dDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMDY6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIwNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjEyPW10NzkyMV9kZWVwX3NsZWVwX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIxNDpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIxNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjIxPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2RzLCBtdDc5MjFfZGVlcF9zbGVlcF9nZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjQ6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcG1faWRsZV90aW1lb3V0LCBtdDc5MnhfcG1faWRsZV90aW1lb3V0X2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjU6XHRcdFx0IG10NzkyeF9wbV9pZGxlX3RpbWVvdXRfc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI3PXN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIyOTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzMC1cdGludCByZXQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMzQtXHRcdC8qIFJlc2V0IHdpZmlzeXMgZGlyZWN0bHkuICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjM1Olx0XHRtdDc5MnhfcmVzZXQoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzNi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzOC1cdFx0LyogQ29sbGVjdCB0aGUgY29yZSBkdW1wIGJlZm9yZSByZXNldCB3aWZpc3lzLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIzOTpcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDAtXHRcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjQxOlx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0Mi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTI1MT1tdDc5MjFzX3NjaGVkX3F1b3RhX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI1Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjUzOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVx1MDAzZXByaXZhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI1NC1cdHN0cnVjdCBtdDc2X3NkaW8gKnNkaW8gPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5zZGlvO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjY0OmludCBtdDc5MjFfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjY1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjcxLVx0XHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDt4bWl0LXF1ZXVlc1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNzI6XHRcdFx0XHRcdCAgICBkaXIsIG10NzkyeF9xdWV1ZXNfcmVhZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjczLVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNzctXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDthY3FcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNzg6XHRcdFx0XHQgICAgbXQ3OTJ4X3F1ZXVlc19hY3EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI3OS1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3R4cG93ZXJfc2t1XCYjMzQ7LCBkaXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjgwLVx0XHRcdFx0ICAgIG10NzkyMV90eHB3cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjgxOlx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDt0eF9zdGF0c1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsIFx1MDAyNm10NzkyeF90eF9zdGF0c19mb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yODItXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2Z3X2RlYnVnXCYjMzQ7LCAwNjAwLCBkaXIsIGRldiwgXHUwMDI2Zm9wc19md19kZWJ1Zyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI4Ny1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3J1bnRpbWVfcG1fc3RhdHNcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyODg6XHRcdFx0XHQgICAgbXQ3OTJ4X3BtX3N0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yODktXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2RlZXAtc2xlZXBcJiMzNDssIDA2MDAsIGRpciwgZGV2LCBcdTAwMjZmb3BzX2RzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM9MTQ9c3RhdGljIHNzaXplX3QgbXQ3OTIxX3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTktXHRjYXNlIDA6IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMDpcdFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIxOlx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqbWRldiA9IHBoeS1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjItXHRcdGludCB0ZW1wZXJhdHVyZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyNDpcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjUtXHRcdHRlbXBlcmF0dXJlID0gbXQ3OTIxX21jdV9nZXRfdGVtcGVyYXR1cmUocGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyNjpcdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTQzPUFUVFJJQlVURV9HUk9VUFMobXQ3OTIxX2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyMV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjY0OmludCBtdDc5MjFfbWFjX2luaXQoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy02NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTc3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgMjsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6Nzg6XHRcdG10NzkyeF9tYWNfaW5pdF9iYW5kKGRldiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTgyPUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tYWNfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6ODQ6c3RhdGljIGludCBfX210NzkyMV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtODUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy05MS1cdG10NzZfd3IoZGV2LCBNVF9TV0RFRl9NT0RFLCBNVF9TV0RFRl9OT1JNQUxfTU9ERSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6OTI6XHRyZXQgPSBtdDc5MnhfbWN1X2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy05My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMDk6c3RhdGljIGludCBtdDc5MjFfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTExMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTExOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMjA6XHRcdG10NzkyeF9pbml0X3Jlc2V0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTIxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYz0xMzE9c3RhdGljIHZvaWQgbXQ3OTIxX2luaXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMzM6XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEzNC1cdFx0XHRcdFx0ICAgICAgaW5pdF93b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTQyLVx0bXQ3OTIxX3NldF9zdHJlYW1faGVfY2FwcyhcdTAwMjZkZXYtXHUwMDNlcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxNDM6XHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxNzA6aW50IG10NzkyMV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNzEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNzctXHRkZXYtXHUwMDNlbXQ3Ni5waHkucHJpdiA9IFx1MDAyNmRldi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTc4Olx0ZGV2LVx1MDAzZW10NzYudHhfd29ya2VyLmZuID0gbXQ3OTJ4X3R4X3dvcmtlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTgwOlx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXBtLnBzX3dvcmssIG10NzkyeF9wbV9wb3dlcl9zYXZlX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE4MTpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcG0ud2FrZV93b3JrLCBtdDc5MnhfcG1fd2FrZV93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xODItXHRzcGluX2xvY2tfaW5pdChcdTAwMjZkZXYtXHUwMDNlcG0ud2FrZS5sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTg4LVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2ZGV2LVx1MDAzZXBtLnR4cV9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxODk6XHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xOTAtXHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlcGh5LnNjYW5fd29yaywgbXQ3OTIxX3NjYW5fd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwMi1cdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcGh5LnJvY193b3JrLCBtdDc5MjFfcm9jX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIwMzpcdHRpbWVyX3NldHVwKFx1MDAyNmRldi1cdTAwM2VwaHkucm9jX3RpbWVyLCBtdDc5Mnhfcm9jX3RpbWVyLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMDQtXHRpbml0X3dhaXRxdWV1ZV9oZWFkKFx1MDAyNmRldi1cdTAwM2VwaHkucm9jX3dhaXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjIxOlx0bXQ3OTJ4X2luaXRfYWNwaV9zYXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjIzOlx0cmV0ID0gbXQ3OTJ4X2luaXRfd2NpZChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyNC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMjc6XHRyZXQgPSBtdDc5MnhfaW5pdF93aXBoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjI4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE5OmJvb2wgbXQ3OTIxX21hY193dGJsX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBpbnQgaWR4LCB1MzIgbWFzaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz0yOD1zdGF0aWMgdTMyIG10NzkyMV9tYWNfd3RibF9sbWFjX2FkZHIoaW50IGlkeCwgdTggb2Zmc2V0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MzM6c3RhdGljIHZvaWQgbXQ3OTIxX21hY19zdGFfcG9sbChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQxLVx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjQyOlx0c3RydWN0IG10NzkyeF9zdGEgKm1zdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0MzpcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDQtXHR1MzIgdHhfdGltZVtJRUVFODAyMTFfTlVNX0FDU10sIHJ4X3RpbWVbSUVFRTgwMjExX05VTV9BQ1NdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY1LVx0XHRtbGluayA9IGxpc3RfZmlyc3RfZW50cnkoXHUwMDI2c3RhX3BvbGxfbGlzdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY2Olx0XHRcdFx0XHQgc3RydWN0IG10NzkyeF9saW5rX3N0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY3LVx0XHRcdFx0XHQgd2NpZC5wb2xsX2xpc3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6Njg6XHRcdG1zdGEgPSBjb250YWluZXJfb2YobWxpbmssIHN0cnVjdCBtdDc5Mnhfc3RhLCBkZWZsaW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY5LVx0XHRsaXN0X2RlbF9pbml0KFx1MDAyNm1saW5rLVx1MDAzZXdjaWQucG9sbF9saXN0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz0xNjg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTY5Om10NzkyMV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xNzctXHRzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5waHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxNzg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3OS1cdHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE4NS1cdHUzMiByeGQ0ID0gbGUzMl90b19jcHUocnhkWzRdKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE4NjpcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE4NzpcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTg4LVx0dTE2IHNlcV9jdHJsID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMTQtXHRpZHggPSBGSUVMRF9HRVQoTVRfUlhEMV9OT1JNQUxfV0xBTl9JRFgsIHJ4ZDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MjE1Olx0c3RhdHVzLVx1MDAzZXdjaWQgPSBtdDc5MnhfcnhfZ2V0X3djaWQoZGV2LCBpZHgsIHVuaWNhc3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjE3LVx0aWYgKHN0YXR1cy1cdTAwM2V3Y2lkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMTg6XHRcdG1saW5rID0gY29udGFpbmVyX29mKHN0YXR1cy1cdTAwM2V3Y2lkLCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLCB3Y2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjIxOTpcdFx0bXN0YSA9IGNvbnRhaW5lcl9vZihtbGluaywgc3RydWN0IG10NzkyeF9zdGEsIGRlZmxpbmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjIwLVx0XHRtdDc2X3djaWRfYWRkX3BvbGwoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFx1MDAyNm1saW5rLVx1MDAzZXdjaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjIyMzpcdG10NzkyeF9nZXRfc3RhdHVzX2ZyZXFfaW5mbyhzdGF0dXMsIGNoZnJlcSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDMyOlx0bXQ3OTJ4X21hY19hc3NvY19yc3NpKGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0NDc6dm9pZCBtdDc5MjFfbWFjX2FkZF90eHMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ0OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0NDk6XHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ1MC1cdHN0cnVjdCBtdDc2X3djaWQgKndjaWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDczOlx0bWxpbmsgPSBjb250YWluZXJfb2Yod2NpZCwgc3RydWN0IG10NzkyeF9saW5rX3N0YSwgd2NpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDg1OnN0YXRpYyB2b2lkIG10NzkyMV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDg2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01MTQtXHRcdGlmIChpbmZvIFx1MDAyNiBNVF9UWF9GUkVFX1BBSVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjUxNTpcdFx0XHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTUxNi1cdFx0XHR1MTYgaWR4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTUyNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjUyNTpcdFx0XHRtbGluayA9IGNvbnRhaW5lcl9vZih3Y2lkLCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLCB3Y2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTUyNi1cdFx0XHRtdDc2X3djaWRfYWRkX3BvbGwoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFx1MDAyNm1saW5rLVx1MDAzZXdjaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU2Mj1ib29sIG10NzkyMV9yeF9jaGVjayhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NjMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTY0Olx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NjUtXHRfX2xlMzIgKnJ4ZCA9IChfX2xlMzIgKilkYXRhO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU4Nj12b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjU4OTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzkyeF9kZXYsIG10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTkwLVx0X19sZTMyICpyeGQgPSAoX19sZTMyICopc2tiLVx1MDAzZWRhdGE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NjMwPW10NzkyMV92aWZfY29ubmVjdF9pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYzMzpcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjM0Olx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG12aWYtXHUwMDNlcGh5LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYzNS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gbXQ3Nl9odyhkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTY1NT12b2lkIG10NzkyMV9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NTYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjU3Olx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY1OC1cdFx0XHRcdFx0ICAgICAgcmVzZXRfd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjczLVx0XHRtdXRleF9sb2NrKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm11dGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY3NDpcdFx0cmV0ID0gbXQ3OTJ4X2Rldl9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjc1LVx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZW10NzYubXV0ZXgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTcwOD12b2lkIG10NzkyMV9jb3JlZHVtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTcwOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3MTA6XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzExLVx0Y2hhciAqZHVtcCwgKmRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3MTM6XHRkZXYgPSAoc3RydWN0IG10NzkyeF9kZXYgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MTQtXHRcdFx0XHRcdFx0Y29yZWR1bXAud29yay53b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3NTI6XHRtdDc5MnhfcmVzZXQoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzUzLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz03NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjc1NzptdDc5MjFfdXNiX3NkaW9fd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzU4LVx0XHRcdCAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTc2OT1pbnQgbXQ3OTIxX3VzYl9zZGlvX3R4X3ByZXBhcmVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqdHh3aV9wdHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzczLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjc3NDpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzkyeF9kZXYsIG10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzc1LVx0c3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvID0gSUVFRTgwMjExX1NLQl9DQih0eF9pbmZvLVx1MDAzZXNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzkwLVx0aWYgKHN0YSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzkxOlx0XHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc5Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDItXHR0eXBlID0gbXQ3Nl9pc19zZGlvKG1kZXYpID8gTVQ3OTIxX1NESU9fREFUQSA6IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MDM6XHRtdDc5Mnhfc2tiX2FkZF91c2Jfc2Rpb19oZHIoZGV2LCBza2IsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODA0LVx0cGFkID0gcm91bmRfdXAoc2tiLVx1MDAzZWxlbiwgNCkgLSBza2ItXHUwMDNlbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTgzOD1ib29sIG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHU4ICp1cGRhdGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04Mzkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQwOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NDI6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQzLVx0bXQ3OTIxX21hY19zdGFfcG9sbChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQ0Olx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg0NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz04NTE9dm9pZCBtdDc5MjFfc2V0X2lwdjZfbnNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NTIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODUzOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg1NC1cdFx0XHRcdFx0ICAgICAgaXB2Nl9uc193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NjQ6XHRcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NjUtXHRcdHJldCA9IG10NzZfbWN1X3NrYl9zZW5kX21zZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Niwgc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY2LVx0XHRcdFx0XHQgICAgTUNVX1VOSV9DTUQoT0ZGTE9BRCksIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODY3Olx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQ6bXQ3OTIxX2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE5Njp2b2lkIG10NzkyMV9zZXRfc3RyZWFtX2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xOTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjI3OmludCBfX210NzkyMV9zdGFydChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNDg6XHRtdDc5MnhfbWFjX3Jlc2V0X2NvdW50ZXJzKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjQ5LVx0c2V0X2JpdChNVDc2X1NUQVRFX1JVTk5JTkcsIFx1MDAyNm1waHktXHUwMDNlc3RhdGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0yNzI9c3RhdGljIGludCBtdDc5MjFfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjczLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzQ6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjc1LVx0aW50IGVycjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mjc3Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjc4LVx0ZXJyID0gX19tdDc5MjFfc3RhcnQocGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzk6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTI4ND1zdGF0aWMgdm9pZCBtdDc5MjFfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgYm9vbCBzdXNwZW5kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mjg2Olx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4Ny1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODktXHRpZiAobXQ3Nl9pc19tbWlvKFx1MDAyNmRldi1cdTAwM2VtdDc2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI5MDpcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yOTEtXHRcdGVyciA9IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwoZGV2LCBFWFRfQ01EX1JBRElPX09GRl9MRUQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI5MjpcdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yOTMtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTc6XHRtdDc5Mnhfc3RvcChodywgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI5OC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTMwMT1tdDc5MjFfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zMDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwMzpcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwNDpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMDU6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA2LVx0c3RydWN0IG10NzZfdHhxICptdHhxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zMDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzA5Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zMTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1NC1cdElOSVRfV09SSyhcdTAwMjZtdmlmLVx1MDAzZWNzYV93b3JrLCBtdDc5MjFfY3NhX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM1NTpcdHRpbWVyX3NldHVwKFx1MDAyNm12aWYtXHUwMDNlY3NhX3RpbWVyLCBtdDc5MnhfY3NhX3RpbWVyLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNTYtb3V0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM1NzpcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzU4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zNjI9c3RhdGljIHZvaWQgbXQ3OTIxX3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzY1Olx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzY2Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IHByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzY3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzcxOnZvaWQgbXQ3OTIxX3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozNzM6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTM4Nz12b2lkIG10NzkyMV9yb2Nfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzg4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozODk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozOTE6XHRwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9waHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkyLVx0XHRcdFx0XHRcdHJvY193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mzk0Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzk1LVx0aWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoTVQ3Nl9TVEFURV9ST0MsIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXN0YXRlKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM5NjpcdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzk3LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQwMS1cdFx0XHRcdFx0ICAgIG10NzkyMV9yb2NfaXRlciwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MDI6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MDMtXHRpZWVlODAyMTFfcmVtYWluX29uX2NoYW5uZWxfZXhwaXJlZChwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vodyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQwNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MDY6c3RhdGljIGludCBtdDc5MjFfYWJvcnRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDA3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQxMzpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQxNC1cdGlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTVQ3Nl9TVEFURV9ST0MsIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXN0YXRlKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTUtXHRcdGVyciA9IG10NzkyMV9tY3VfYWJvcnRfcm9jKHBoeSwgdmlmLCBwaHktXHUwMDNlcm9jX3Rva2VuX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MTY6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MjE6c3RhdGljIGludCBtdDc5MjFfc2V0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQyMjpcdFx0XHQgIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDIzLVx0XHRcdCAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00NTE9c3RhdGljIGludCBtdDc5MjFfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDU3Olx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDU4Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1OS1cdGludCBlcnI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ2MTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ2Mi1cdGVyciA9IG10NzkyMV9zZXRfcm9jKHBoeSwgbXZpZiwgY2hhbiwgZHVyYXRpb24sIE1UNzkyMV9ST0NfUkVRX1JPQyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDYzOlx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDY0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00Njg9c3RhdGljIGludCBtdDc5MjFfY2FuY2VsX3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NzAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ3MTpcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ3MjpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NzMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ3Nz1pbnQgbXQ3OTIxX3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00Nzgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ3OTpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVx1MDAzZXByaXY7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTkxMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDk1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoOiBNZWRpYXRlayBNVDc2IERyaXZlciBGZWF0dXJlIENoYW5nZSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBzcG90dGVkIGBtdDc5MngtdXNiLXlgIGluIHRoZSBgbXQ3NmAgTWFrZWZpbGUuIEFuZCBgbXQ3OTIxYCBpcyBzcGVjaWZpY2FsbHkgYSBkcml2ZXIgbGlzdGVkIHRoZXJlLiBUaGF0IG1lYW5zIHRoZSBgbXQ3NmAgZmFtaWx5IGhhcyBhIFVTQiBkcml2ZXIgdGhhdCBpcyBhIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gVGhpcyBwYXRjaCBtb2RpZmllcyBgbWFjODAyMTEuY2AgYW5kIGBtdDc5MnhfY29yZS5jYCwgd2hpY2ggaW1tZWRpYXRlbHkgcmFpc2VzIG15IGludGVyZXN0IOKAkyBhbnl0aGluZyB0b3VjaGluZyBjb3JlIGZ1bmN0aW9uYWxpdHkgaXMgd29ydGggYSBjbG9zZXIgbG9vay4KCkkga25vdyBgbXQ3NmAgaGFzIG90aGVyIFVTQiBkcml2ZXJzIGxpa2UgYG10NzZ4MDItdXNiYCwgYG10NzZ4MnVgLCBhbmQgYG10NzkyMXVgLCBhbmQgYmVjYXVzZSBpdCYjMzk7cyBhIFVTQiBkcml2ZXIsIHRoZSBVU0IgZ2FkZ2V0IGZyYW1ld29yayAodmhjaSkgb3BlbnMgdXAgZnV6emluZyBwb3NzaWJpbGl0aWVzIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLgoKTm93LCBsZXQmIzM5O3MgZGlzc2VjdCB0aGUgY29kZSBjaGFuZ2VzIG1vcmUgY2FyZWZ1bGx5LiBJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBkaXNhYmxlcyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmb3IgYG10NzkyeGAgZGV2aWNlcy4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGl0JiMzOTtzIGEgcmVsYXRpdmVseSBzaW1wbGUgb25lLCBvbmx5IHJlbW92aW5nIGEgZmVhdHVyZSBmbGFnIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIHBhdGhzIGluIGBtdDc5MnhfaW5pdF93aXBoeWAgYW5kIGBtdDc2X3BoeV9pbml0YC4gQmFzaWNhbGx5LCBzZXR0aW5nIGEgYm9vbGVhbiBhbmQgY2hlY2tpbmcgaXQuCgpUaGUgcmVhbCBxdWVzdGlvbiBpcywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyBJdCBpc24mIzM5O3QgYWRkaW5nIGNvbXBsZXggbmV3IGxvZ2ljLCBqdXN0IHJlbW92aW5nIGEgZmVhdHVyZSBhZHZlcnRpc2VtZW50LiBIb3dldmVyLCBpdCAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgVVNCLXJlYWNoYWJsZSBkcml2ZXIsIGFuZCBJIGtub3cgdGhhdCBldmVuIHNtYWxsIGNoYW5nZXMgY2FuIHNvbWV0aW1lcyBoYXZlIHVuZXhwZWN0ZWQgaW1wbGljYXRpb25zIGluIGNvbXBsZXggc3lzdGVtcy4gSXQmIzM5O3Mgd29ydGggZGlnZ2luZyBpbnRvIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGBtdDc2YCBhbmQgYG10NzkyMXVgIHRvIHNlZSBob3cgdGhpcyBmZWF0dXJlIGZsYWcgaW1wYWN0cyB0aGUgb3ZlcmFsbCBkcml2ZXIgYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMVUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnPTE3PWNvbmZpZyBNVDc5MjFTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjg6Y29uZmlnIE1UNzkyMVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMjktXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjFVIChVU0IpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ1NwoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggdGhhdCBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGNoZWNrOgoKKipFeGFtaW5pbmcgdGhlIE1UNzkyMSBhbmQgTVQ3OTJ4IEtjb25maWcgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGUgYE1UNzkyMVVgIGFuZCBgTVQ3OTJ4YCB3aXJlbGVzcyBkcml2ZXJzIGFyZSBjb25maWd1cmVkIHdpdGhpbiB0aGUgTWVkaWF0ZWsgZnJhbWV3b3JrLiBNeSBmaXJzdCBzdG9wIHdpbGwgYmUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWdgLiBUaGlzIEtjb25maWcgZmlsZSB3aWxsIGJlIHRoZSBjZW50cmFsIHBvaW50IG9mIHRydXRoIGZvciBob3cgdGhlc2UgZHJpdmVycyBhcmUgYnJvdWdodCBpbnRvIHRoZSBrZXJuZWwgYnVpbGQuIEkmIzM5O2xsIGJlIGxvb2tpbmcgc3BlY2lmaWNhbGx5IGZvciBhbnkgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzIHJlbGF0ZWQgdG8gYE1UNzkyMVVgIGFuZCB0aGUgYnJvYWRlciBgTVQ3OTJ4YCBmYW1pbHkuIFRoZXNlIGRlcGVuZGVuY2llcyBjb3VsZCBpbnZvbHZlIG90aGVyIGtlcm5lbCBmZWF0dXJlcywgaGFyZHdhcmUgY29uZmlndXJhdGlvbnMsIG9yIGV2ZW4gc3BlY2lmaWMgTWVkaWF0ZWsgcGxhdGZvcm0gZGVmaW5lcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBuZWVkcyB0byBiZSBlbmFibGVkIG9yIGRlZmluZWQgdG8gZW5zdXJlIHByb3BlciBzdXBwb3J0IGZvciB0aGVzZSBwYXJ0aWN1bGFyIHdpcmVsZXNzIGNoaXBzLiBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gdHJhY2sgZG93biBob3cgdGhlc2UgY2hpcHMgYXJlIGltcGxlbWVudGVkIGluIHRoZSB3aXJlbGVzcyBzdGFjay4gVGhlIGdvYWwgaGVyZSBpcyB0byBnZXQgYSBoYW5kbGUgb24gd2hhdCBvdGhlciBzZXR0aW5ncyB3aWxsIGVuYWJsZSBwcm9wZXIgYnVpbGQgb3B0aW9ucyBmb3IgdGhlc2UgY29tcG9uZW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3OTIxX0NPTU1PTlxuICAgMzpcdFx0dHJpc3RhdGVcbiAgIDQ6XHRcdHNlbGVjdCBNVDc5MnhfTElCXG4gICA1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgIDY6XHRcbiAgIDc6XHRjb25maWcgTVQ3OTIxRVxuICAgODpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuICAgOTpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMTA6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMTE6XHRcdGRlcGVuZHMgb24gUENJXG4gIDEyOlx0XHRoZWxwXG4gIDEzOlx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFFIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgTVQ3OTIxU1xuICAxODpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxUyAoU0RJTykgc3VwcG9ydFwmIzM0O1xuICAxOTpcdFx0c2VsZWN0IE1UNzZfU0RJT1xuICAyMDpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMjE6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMjI6XHRcdGRlcGVuZHMgb24gTU1DXG4gIDIzOlx0XHRoZWxwXG4gIDI0Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFTIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMjU6XHRcbiAgMjY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMjc6XHRcbiAgMjg6XHRjb25maWcgTVQ3OTIxVVxuICAyOTpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4gIDMwOlx0XHRzZWxlY3QgTVQ3OTJ4X1VTQlxuICAzMTpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMzI6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMzM6XHRcdGRlcGVuZHMgb24gVVNCXG4gIDM0Olx0XHRoZWxwXG4gIDM1Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFVIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMzY6XHRcbiAgMzc6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjMzNwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDMyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1UNzkyMVUgVVNCIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGBNVDc5MjFVYCBVU0IgZHJpdmVyLiBTZWVtcyBsaWtlIGl0JiMzOTtzIHByaW1hcmlseSB0b3VjaGluZyBgbXQ3Nl9waHlfaW5pdGAgYW5kIGBtdDc5MnhfaW5pdF93aXBoeWAsIGJvdGggb2Ygd2hpY2ggYXJlIGNyaXRpY2FsIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24g4oCTIHRoZSB1c3VhbCBzdXNwZWN0cy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgZnV6emFibGUsIGFuZCBpcyBpdCB3b3J0aCB0aGUgZWZmb3J0PyYjMzQ7CgpUaGUgcGF0Y2ggaXRzZWxmIGlzIHJpZGljdWxvdXNseSBzaW1wbGU7IGl0JiMzOTtzIGp1c3Qgc2V0dGluZyBhIGNvdXBsZSBvZiBmZWF0dXJlIGZsYWdzOiBzZXR0aW5nICBgTkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0VgIGFuZCBwb3RlbnRpYWxseSBzZXR0aW5nIGBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1JgLCBhbmQgaXQgYWxzbyBzZXRzIGBwaHktJmd0O210NzYtJmd0O25vX2FjdGl2ZV9tb25pdG9yID0gdHJ1ZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGl0JiMzOTtzIGp1c3QgZmxpcHBpbmcgYSBmZXcgYml0cy4gRnV6emluZyAqdGhpcyBzcGVjaWZpYyBjb2RlKiBpcyB1bmxpa2VseSB0byB1bmNvdmVyIGFueXRoaW5nIGludGVyZXN0aW5nIGJlY2F1c2UgdGhlIGxvZ2ljIGlzIHNvIHRyaXZpYWwuIEJ1dC4uLiBpdCBkb2VzIG1vZGlmeSBkcml2ZXIgYmVoYXZpb3IuIEl0JiMzOTtzIG5vdyAqbm90KiBhZHZlcnRpc2luZyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYC4KCklmIHRoZSBnb2FsIGlzIHRvIGZ1enogdGhlIGRyaXZlciBlZmZlY3RpdmVseSwgZm9jdXNpbmcgb24gYG10NzZfcGh5X2luaXRgIGFuZCBgbXQ3OTJ4X2luaXRfd2lwaHlgIGlzIHRoZSB3YXkgdG8gZ28uIEhvd2V2ZXIsIGEgcXVpY2sgcmVtaW5kZXI6IGBtdDc2X3BoeV9pbml0YCBpcyBhIGdlbmVyYWwgZnVuY3Rpb24gdXNlZCBhY3Jvc3MgKmFsbCogYG10NzZgIGRyaXZlcnMuIGBtdDc5MnhfaW5pdF93aXBoeWAsIGhvd2V2ZXIsIGlzIHNwZWNpZmljIHRvIHRoZSBgbXQ3OTJ4YCBmYW1pbHkuIE5vdywgSSBuZWVkIHRvIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIgZHJpdmVycyB0aGF0IHVzZSB0aGlzIGBtdDc5MnhgIHByZWZpeCwgdG8gc2VlIGlmIHRoZSBmdXp6aW5nIGVmZm9ydCBpcyBiZXN0IGFwcGxpZWQgdG8gdGhlIHNwZWNpZmljIGNoaXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwOTUKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBkaXZlIGludG8gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZSwgc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCBkZWZpbmVzIHRoZSBidWlsZCBvcHRpb25zIGZvciB0aGF0IE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIuIEkmIzM5O2Qgc3RhcnQgd2l0aCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ2AsIG9yIHNvbWV0aGluZyB2ZXJ5IHNpbWlsYXIsIGFzIHRoYXQmIzM5O3MgdXN1YWxseSB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgY29uZmlndXJhdGlvbiBsaXZlcy4gR290dGEgYmUgZWZmaWNpZW50IGhlcmUuIFRoaXMgS2NvbmZpZyBmaWxlIHdpbGwgYmUgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaXMgYmVpbmcgY29tcGlsZWQsIHdoYXQgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIGFuZCBhbnkgZGVwZW5kZW5jaWVzIGl0IG1pZ2h0IGhhdmUuIFVuZGVyc3RhbmRpbmcgdGhpcyBmaWxlIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBzeXN0ZW0gZm9yIHRoZSBkcml2ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7YWdnLXJ4LmMmIzM0OywKICAgICYjMzQ7Y2hhbm5lbC5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtkbWEuYyYjMzQ7LAogICAgJiMzNDtkbWEuaCYjMzQ7LAogICAgJiMzNDtlZXByb20uYyYjMzQ7LAogICAgJiMzNDttYWM4MDIxMS5jJiMzNDssCiAgICAmIzM0O21jdS5jJiMzNDssCiAgICAmIzM0O21taW8uYyYjMzQ7LAogICAgJiMzNDttdDc2LmgmIzM0OywKICAgICYjMzQ7bXQ3Nl9jb25uYWMuaCYjMzQ7LAogICAgJiMzNDttdDc2X2Nvbm5hYzJfbWFjLmgmIzM0OywKICAgICYjMzQ7bXQ3Nl9jb25uYWMzX21hYy5jJiMzNDssCiAgICAmIzM0O210NzZfY29ubmFjM19tYWMuaCYjMzQ7LAogICAgJiMzNDttdDc2X2Nvbm5hY19tYWMuYyYjMzQ7LAogICAgJiMzNDttdDc2X2Nvbm5hY19tY3UuYyYjMzQ7LAogICAgJiMzNDttdDc2X2Nvbm5hY19tY3UuaCYjMzQ7LAogICAgJiMzNDttdDc2eDAyLmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9iZWFjb24uYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX2Rmcy5jJiMzNDssCiAgICAmIzM0O210NzZ4MDJfZGZzLmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9kbWEuaCYjMzQ7LAogICAgJiMzNDttdDc2eDAyX2VlcHJvbS5jJiMzNDssCiAgICAmIzM0O210NzZ4MDJfZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9tYWMuYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX21hYy5oJiMzNDssCiAgICAmIzM0O210NzZ4MDJfbWN1LmMmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9tY3UuaCYjMzQ7LAogICAgJiMzNDttdDc2eDAyX21taW8uYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3BoeS5jJiMzNDssCiAgICAmIzM0O210NzZ4MDJfcGh5LmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9yZWdzLmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl90cmFjZS5jJiMzNDssCiAgICAmIzM0O210NzZ4MDJfdHJhY2UuaCYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3R4cnguYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3VzYi5oJiMzNDssCiAgICAmIzM0O210NzZ4MDJfdXNiX2NvcmUuYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3VzYl9tY3UuYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3V0aWwuYyYjMzQ7LAogICAgJiMzNDttdDc5MnguaCYjMzQ7LAogICAgJiMzNDttdDc5MnhfYWNwaV9zYXIuYyYjMzQ7LAogICAgJiMzNDttdDc5MnhfYWNwaV9zYXIuaCYjMzQ7LAogICAgJiMzNDttdDc5MnhfY29yZS5jJiMzNDssCiAgICAmIzM0O210NzkyeF9kZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7bXQ3OTJ4X2RtYS5jJiMzNDssCiAgICAmIzM0O210NzkyeF9tYWMuYyYjMzQ7LAogICAgJiMzNDttdDc5MnhfcmVncy5oJiMzNDssCiAgICAmIzM0O210NzkyeF90cmFjZS5jJiMzNDssCiAgICAmIzM0O210NzkyeF90cmFjZS5oJiMzNDssCiAgICAmIzM0O210NzkyeF91c2IuYyYjMzQ7LAogICAgJiMzNDtucHUuYyYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtzY2FuLmMmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzZGlvX3R4cnguYyYjMzQ7LAogICAgJiMzNDt0ZXN0bW9kZS5jJiMzNDssCiAgICAmIzM0O3Rlc3Rtb2RlLmgmIzM0OywKICAgICYjMzQ7dHJhY2UuYyYjMzQ7LAogICAgJiMzNDt0cmFjZS5oJiMzNDssCiAgICAmIzM0O3R4LmMmIzM0OywKICAgICYjMzQ7dXNiLmMmIzM0OywKICAgICYjMzQ7dXNiX3RyYWNlLmMmIzM0OywKICAgICYjMzQ7dXNiX3RyYWNlLmgmIzM0OywKICAgICYjMzQ7dXRpbC5jJiMzNDssCiAgICAmIzM0O3V0aWwuaCYjMzQ7LAogICAgJiMzNDt3ZWQuYyYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogWwogICAgJiMzNDttdDc2MDMmIzM0OywKICAgICYjMzQ7bXQ3NjE1JiMzNDssCiAgICAmIzM0O210NzZ4MCYjMzQ7LAogICAgJiMzNDttdDc2eDImIzM0OywKICAgICYjMzQ7bXQ3OTE1JiMzNDssCiAgICAmIzM0O210NzkyMSYjMzQ7LAogICAgJiMzNDttdDc5MjUmIzM0OywKICAgICYjMzQ7bXQ3OTk2JiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQxMDYKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk5hdmlnYXRpbmcgdGhlIE1UNzkyNSBEcml2ZXIgTGFuZHNjYXBlKioKClJpZ2h0LCB0aGVyZSYjMzk7cyBgbXQ3OTI1YC4gTXkgaW1tZWRpYXRlIHJlZmxleCBpcyB0byBkaXZlIGludG8gaXRzIGNvbmZpZ3VyYXRpb24g4oCTIHNwZWNpZmljYWxseSwgdGhlIGBLY29uZmlnYCBmaWxlLiBJJiMzOTttIGdvaW5nIHN0cmFpZ2h0IHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgaW5pdGlhbCBkZWNpc2lvbi1tYWtpbmcgaGFwcGVucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgaG93IHRoZXkmIzM5O3JlIGV4cG9zZWQgdGhyb3VnaCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFuZCwgb2YgY291cnNlLCBhbnkgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGtlcm5lbCBzdWJzeXN0ZW1zIG9yIGZlYXR1cmVzLiBUaGlzIGZpbGUgaXMgdGhlIGJlZHJvY2sgZm9yIGN1c3RvbWl6aW5nIHRoZSBidWlsZCBmb3IgYSBzcGVjaWZpYyB1c2UgY2FzZSwgc28gaXQgaXMgdGhlIG9idmlvdXMgcGxhY2UgdG8gc3RhcnQuIExvb2tpbmcgYXQgYEtjb25maWdgIGltbWVkaWF0ZWx5IGdpdmVzIGEgaGlnaC1sZXZlbCB2aWV3IG9mIHdoYXQmIzM5O3MgKnBvc3NpYmxlKiB3aXRoIHRoaXMgZHJpdmVyLiBGcm9tIHRoZXJlLCBJIGNhbiBnZXQgYSBmZWVsIGZvciB0aGUgZGVzaWduIGNob2ljZXMgYW5kIHBvdGVudGlhbCBhcmVhcyB0byBzY3J1dGluaXplIGJhc2VkIG9uIHBlcmZvcm1hbmNlIGFuZCBwb3dlciBjb25zdW1wdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIE1UNzkyNV9DT01NT05cbiAgIDM6XHRcdHRyaXN0YXRlXG4gICA0Olx0XHRzZWxlY3QgTVQ3OTJ4X0xJQlxuICAgNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gICA2Olx0XG4gICA3Olx0Y29uZmlnIE1UNzkyNUVcbiAgIDg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbiAgIDk6XHRcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXG4gIDEwOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDExOlx0XHRkZXBlbmRzIG9uIFBDSVxuICAxMjpcdFx0aGVscFxuICAxMzpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFBDSWUgZGV2aWNlcyxcbiAgMTQ6XHRcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXG4gIDE1Olx0XHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cbiAgMTY6XHRcbiAgMTc6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgTVQ3OTI1VVxuICAyMDpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTI1VSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4gIDIxOlx0XHRzZWxlY3QgTVQ3OTJ4X1VTQlxuICAyMjpcdFx0c2VsZWN0IE1UNzkyNV9DT01NT05cbiAgMjM6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMjQ6XHRcdGRlcGVuZHMgb24gVVNCXG4gIDI1Olx0XHRoZWxwXG4gIDI2Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjUtYmFzZWQgd2lyZWxlc3MgVVNCIGRldmljZXMsXG4gIDI3Olx0XHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxuICAyODpcdFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXG4gIDI5Olx0XG4gIDMwOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0ODkwCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIHRoZSBgTVQ3OTI1VWAgVVNCIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBgTVQ3OTI1VWAgaXMgaW5kZWVkIGEgVVNCIGRyaXZlciwgd2hpY2ggaXMgZ29vZCB0byBrbm93LiBUaGlzIHBhdGNoIHNwZWNpZmljYWxseSBkaXNhYmxlcyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmb3IgdGhlIGBtdDc5MnhgIGZhbWlseSBvZiBkZXZpY2VzLiBUaGUgcXVlc3Rpb24gbm93IGlzOiBkb2VzIHRoaXMgd2FycmFudCBmdXp6aW5nPyBBYnNvbHV0ZWx5LCBpdCBkb2VzLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBhIGRyaXZlciB0aGF0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLCBtYWtpbmcgaXQgYSBwcmltZSB0YXJnZXQuCgpNeSBpbml0aWFsIGZvY3VzIHN5bWJvbHMgd291bGQgYmUgYG10NzZfcGh5X2luaXRgIGFuZCBgbXQ3OTJ4X2luaXRfd2lwaHlgLiBCdXQgaG9sZCBvbi4uLiBgbXQ3Nl9waHlfaW5pdGAgc2VlbXMgdG8gYmUgdXNlZCBhY3Jvc3MgKmFsbCogYG10NzZgIGRyaXZlcnMsIHNvIGl0JiMzOTtzIHByb2JhYmx5IG5vdCBhcyBzcGVjaWZpYyBhIGNoYW5nZSBhcyBJIGluaXRpYWxseSB0aG91Z2h0LiBMZXQmIzM5O3MgcXVpY2tseSB2ZXJpZnkgdGhhdCB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBtb2RpZmllZCBmdW5jdGlvbnMuIE5vcGUsIGxvb2tzIGxpa2UgYG10NzkyeF9pbml0X3dpcGh5YCBpcyB0aGUga2V5IGZ1bmN0aW9uIHRvIGludmVzdGlnYXRlIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyeF9pbml0X3dpcGh5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE3MD1pbnQgbXQ3OTIxX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjI3Olx0cmV0ID0gbXQ3OTJ4X2luaXRfd2lwaHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyOC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTIwNj1pbnQgbXQ3OTI1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjYxOlx0cmV0ID0gbXQ3OTJ4X2luaXRfd2lwaHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2Mi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD00NjI9aW50IG10NzkyeF9wbV9pZGxlX3RpbWVvdXRfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDYzOmludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTQ2NC1zdHJ1Y3QgaWVlZTgwMjExX29wcyAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jPTY1OT1FWFBPUlRfU1lNQk9MX0dQTChtdDc5Mnhfc2V0X2NvdmVyYWdlX2NsYXNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy02NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmM6NjYxOmludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy02NjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy03NDUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jOjc0NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfaW5pdF93aXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMtNzQ3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjAzNAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGEgU2ltcGxlIERyaXZlciBDaGFuZ2UqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBtdDc2X3BoeV9pbml0YCBhbmQgYG10NzkyeF9pbml0X3dpcGh5YCwgYW5kIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBgTVQ3OTIxVWAgYW5kIGBNVDc5MjVVYC4gVGhlIHBhdGNoIGl0c2VsZiBpcyB0cml2aWFsOiBpdCYjMzk7cyBhZGRpbmcgb3IgcmVtb3ZpbmcgYSBjb3VwbGUgb2YgZmVhdHVyZSBmbGFnczoKCmBgYGMKCXdpcGh5LSZndDtmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQVBfTU9ERV9DSEFOX1dJRFRIX0NIQU5HRTsKCWlmICghcGh5LSZndDtub19hY3RpdmVfbW9uaXRvcikKCQl3aXBoeS0mZ3Q7ZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SOwpgYGAKCkl0IGxvb2tzIGxpa2Ugd2UmIzM5O3JlIGp1c3QgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoZXNlIGZsYWdzLiBUaGUgcXVlc3Rpb24gaXMsIHNob3VsZCBJIGZ1enogdGhpcz8gVGhlIHByb21wdCYjMzk7cyBndWlkZWxpbmVzIGFyZSBjbGVhcjogY2hhbmdlcyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb21tZW50cywgbG9nZ2luZywgb3IgcHVyZWx5IGRlY29yYXRpdmUgY29uc3RhbnRzIGdldCBhIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBDaGFuZ2VzIHRvIHVucmVhY2hhYmxlIGNvZGUgcGF0aHMgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBsaWtlIFVTQiBnYWRnZXQgbW9kZSwgd291bGQgYWxzbyBnZXQgYSBmYWxzZS4gSG93ZXZlciwgSWYgaXQgdG91Y2hlcyAqcmVhY2hhYmxlKiBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgKnRoZW4qIGl0JiMzOTtzIGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpUaGlzIG1vZGlmaWNhdGlvbiBjbGVhcmx5IHRvdWNoZXMgZHJpdmVyIGxvZ2ljLCBhbmQgVVNCIGVtdWxhdGlvbiBtZWFucyBpdCAqaXMqIHJlYWNoYWJsZS4gU28sIHRlY2huaWNhbGx5LCBieSB0aGUgYm9vaywgaXQmIzM5O3MgYFdvcnRoRnV6emluZz10cnVlYC4gSG93ZXZlciwgbXkgZ3V0IGlzIHRlbGxpbmcgbWUgdGhpcyBpcyBhbiBpbmNyZWRpYmx5IHNpbXBsZSBjaGFuZ2UuIFdlJiMzOTtyZSBqdXN0IGVuYWJsaW5nL2Rpc2FibGluZyBhIGZlYXR1cmUuIEl0IGRvZXNuJiMzOTt0IGludHJvZHVjZSBtdWNoIGNvbXBsZXhpdHkuIEl0JiMzOTtzIGEgYml0IG9mIGEgJiMzNDt5ZWFoLCBidXQuLi4mIzM0OyBzaXR1YXRpb24uIFlldCwgSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIG1ha2UgdGhlIGRlY2lzaW9uIHRoYXQsIGJhc2VkIG9uIHRoZSByZXF1aXJlbWVudHMsIG15IGFuc3dlciBpcyBgV29ydGhGdXp6aW5nPXRydWVgLCBidXQgbGV0JiMzOTtzIGRvdWJsZSBjaGVjayB0byBzZWUgaWYgYG10NzZfcGh5X2luaXRgIGlzIGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIGp1c3QgaW4gY2FzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Nl9waHlfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz00MjY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjQyNzptdDc2X3BoeV9pbml0KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy00Mjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz01NTE9aW50IG10NzZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBib29sIHZodCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjU1NjpcdHJldCA9IG10NzZfcGh5X2luaXQocGh5LCBwaHktXHUwMDNlaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTU1Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTc0Nz1pbnQgbXQ3Nl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZfZGV2ICpkZXYsIGJvb2wgdmh0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy03NTUtXHRtdDc2X3djaWRfaW5pdChcdTAwMjZkZXYtXHUwMDNlZ2xvYmFsX3djaWQsIHBoeS1cdTAwM2ViYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6NzU2Olx0cmV0ID0gbXQ3Nl9waHlfaW5pdChwaHksIGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy03NTctXHRpZiAocmV0KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzM0NQoJCQkJCQkJb3V0cHV0OiAxMzEKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNVDc2IFdpcmVsZXNzIERyaXZlciBJbml0aWFsaXphdGlvbiBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgY29kZSBpbiBxdWVzdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBwYXJ0IEkmIzM5O20gaW50ZXJlc3RlZCBpbiwgaXMgY2FsbGVkIGR1cmluZyBgbXQ3Nl9yZWdpc3Rlcl9kZXZpY2VgIGFuZCBgbXQ3Nl9yZWdpc3Rlcl9waHlgLiBUaGF0IG1lYW5zIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLiBHb29kLCB0aGF0JiMzOTtzIHRoZSBmaXJzdCBodXJkbGUgY2xlYXJlZC4KCk5vdywgbGV0JiMzOTtzIGdldCBpbnRvIHRoZSBzcGVjaWZpY3MuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIGNvbmZpZ3VyYXRpb25zIGFyZSByZWxldmFudC4gVGhlIHRleHQgbWVudGlvbnMgYE1UNzkyMVVgIGFuZCBgTVQ3OTI1VWAgYXMgVVNCIGRyaXZlcnMsIGJ1dCBhcmUgdGhvc2UgKnRoZSBvbmx5KiBvbmVzIGZvciBgbXQ3NmA/IExldCYjMzk7cyBzZWUuLi4gbG9va2luZyBiYWNrLCB0aGVyZSYjMzk7cyBhbHNvIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3NjE1VWAgKHdhaXQsIGlzIHRoZXJlIGV2ZW4gYSBVU0IgdmVyc2lvbiBvZiB0aGUgNzYxNT8pIGFuZCB0aGVuLCB5ZXMsIGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgIGFnYWluLgoKVGhlIHBhdGNoIGl0c2VsZiBzcGVjaWZpY2FsbHkgY2hhbmdlcyBgbXQ3OTJ4X2luaXRfd2lwaHlgLCB3aGljaCBpcywgb2YgY291cnNlLCB1c2VkIGJ5IGBtdDc5MjFgIGFuZCBgbXQ3OTI1YC4gQnV0LCBoYW5nIG9uLCB0aGUgYG10NzZfcGh5X2luaXRgIGZ1bmN0aW9uICppcyogbW9kaWZpZWQsIGFuZCB0aGF0IGlzIHVzZWQgYnkgKmFsbCogYG10NzZgIGRyaXZlcnMuIFNvLCBhbnkgb2YgdGhlIGBtdDc2YCBVU0IgZHJpdmVycyBjb3VsZCAqcG90ZW50aWFsbHkqIHRyaWdnZXIgdGhlIG1vZGlmaWVkIGBtdDc2X3BoeV9pbml0YCBjb2RlLiBIb3dldmVyLCB0aGUga2V5IG1vZGlmaWNhdGlvbiB0YXJnZXRpbmcgYG10NzkyeF9pbml0X3dpcGh5YCBtYWtlcyBgTVQ3OTIxVWAgYW5kIGBNVDc5MjVVYCB0aGUgbW9zdCByZWxldmFudCBjb25maWd1cmF0aW9ucy4gVGhleSYjMzk7cmUgZGVmaW5pdGVseSB0aGUgYmVzdCBjYW5kaWRhdGVzLgoKTGV0JiMzOTtzIHF1aWNrbHkgY2hlY2sgZGVwZW5kZW5jaWVzIGZvciB0aG9zZSB0d28uIFRoZXkgZGVwZW5kIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLiBBbHJpZ2h0LCBub3RoaW5nIHVuZXhwZWN0ZWQgdGhlcmUuIFNvLCB5ZXMsIHRoZSBjb25maWdzIEkgd2FudCB0byBmb2N1cyBvbiBhcmUgYE1UNzkyMVVgIGFuZCBgTVQ3OTI1VWAuCgpPa2F5LCB0aW1lIHRvIGZvcm11bGF0ZSBhIGNvbmNpc2UgcmVzcG9uc2UuIExldCYjMzk7cyBzZWU6CgoqICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAtIHRoaXMgaXMgY2xlYXJseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGRyaXZlciBtb2RpZmljYXRpb24sIHRoYXQmIzM5O3Mgd29ydGggdGVzdGluZy4KKiAgICoqRm9jdXNTeW1ib2xzOioqIGBtdDc2X3BoeV9pbml0YCwgYG10NzkyeF9pbml0X3dpcGh5YCAtIFRoZXNlIGFyZSB0aGUga2V5IGZ1bmN0aW9ucyBtb2RpZmllZCBieSB0aGUgcGF0Y2guCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYE1UNzkyMVVgLCBgTVQ3OTI1VWAgLSBCZWNhdXNlIHRoZXNlIGNvbmZpZ3MgcmVwcmVzZW50IHRoZSByZWxldmFudCBVU0IgZHJpdmVycywgSSB3YW50IHRvIGVuYWJsZSBib3RoLgoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS4KClRoYXQgc2hvdWxkIGNvdmVyIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7LAogICAgJiMzNDtNVDc5MjVVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3Nl9waHlfaW5pdCYjMzQ7LAogICAgJiMzNDttdDc5MnhfaW5pdF93aXBoeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gbG9naWMgb2YgdGhlIE1UNzYgd2lyZWxlc3MgZHJpdmVyIHRvIGRpc2FibGUgdGhlIGFjdGl2ZSBtb25pdG9yIGZlYXR1cmUgZm9yIE1UNzkyeCBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBkcml2ZXIgdGhhdCBpcyByZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGVtdWxhdGlvbiAoTVQ3OTIxVSBhbmQgTVQ3OTI1VSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzZfcGh5X2luaXQmIzM0OywKICAgICYjMzQ7bXQ3OTJ4X2luaXRfd2lwaHkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNVDc2IHdpcmVsZXNzIGRyaXZlciB0byBkaXNhYmxlIHRoZSBhY3RpdmUgbW9uaXRvciBmZWF0dXJlIGZvciBNVDc5MnggZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgZHJpdmVyIHRoYXQgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFVTQiBlbXVsYXRpb24gKE1UNzkyMVUgYW5kIE1UNzkyNVUpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjM6NDYuNjYxMzg2OTIxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4NDQ4NjE3MTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMVVcIixcbiAgICBcIk1UNzkyNVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc2X3BoeV9pbml0XCIsXG4gICAgXCJtdDc5MnhfaW5pdF93aXBoeVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjM6NDYuNjYxMzk2NjQxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Mjg0NjgzODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlNDk5NTY3MTYxYTdmMjZhN2ZiYjQ4OTY1OTdlNzYyZGNkZWY0ZGQzXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDIyIDIwOjIzOjQ1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xcbmluZGV4IDEzYzRlOGFiZTI4MTkxLi5kYWEyOTA4ZDg0NGYwOCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcXG5AQCAtNDM5LDggKzQzOSw5IEBAIG10NzZfcGh5X2luaXQoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbiBcXHRTRVRfSUVFRTgwMjExX0RFVihodywgZGV2LVxcdTAwM2VkZXYpO1xcbiBcXHRTRVRfSUVFRTgwMjExX1BFUk1fQUREUihodywgcGh5LVxcdTAwM2VtYWNhZGRyKTtcXG4gXFxuLVxcdHdpcGh5LVxcdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1IgfFxcbi1cXHRcXHRcXHQgICBOTDgwMjExX0ZFQVRVUkVfQVBfTU9ERV9DSEFOX1dJRFRIX0NIQU5HRTtcXG4rXFx0d2lwaHktXFx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFO1xcbitcXHRpZiAoIXBoeS1cXHUwMDNlbm9fYWN0aXZlX21vbml0b3IpXFxuK1xcdFxcdHdpcGh5LVxcdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I7XFxuIFxcdHdpcGh5LVxcdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX0hBU19DSEFOTkVMX1NXSVRDSCB8XFxuIFxcdFxcdFxcdFdJUEhZX0ZMQUdfU1VQUE9SVFNfVERMUyB8XFxuIFxcdFxcdFxcdFdJUEhZX0ZMQUdfQVBfVUFQU0Q7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmhcXG5pbmRleCAwNzk1NTU1NWY4NGQ4My4uNTkxOTgzMDc4YzZmNTcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaFxcbkBAIC04NzEsNiArODcxLDcgQEAgc3RydWN0IG10NzZfcGh5IHtcXG4gXFx0c3RydWN0IGNmZzgwMjExX2NoYW5fZGVmIG1haW5fY2hhbmRlZjtcXG4gXFx0Ym9vbCBvZmZjaGFubmVsO1xcbiBcXHRib29sIHJhZGFyX2VuYWJsZWQ7XFxuK1xcdGJvb2wgbm9fYWN0aXZlX21vbml0b3I7XFxuIFxcbiBcXHRzdHJ1Y3QgZGVsYXllZF93b3JrIHJvY193b3JrO1xcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqcm9jX3ZpZjtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jXFxuaW5kZXggYjUwODI1ZWNjZGFmZWUuLjZhNzFhNjEzNGE1NGY1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY1xcbkBAIC03MTIsNiArNzEyLDcgQEAgaW50IG10NzkyeF9pbml0X3dpcGh5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbiBcXG4gXFx0d2lwaHktXFx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9TQ0hFRF9TQ0FOX1JBTkRPTV9NQUNfQUREUiB8XFxuIFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9TQ0FOX1JBTkRPTV9NQUNfQUREUjtcXG4rXFx0cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2Vub19hY3RpdmVfbW9uaXRvciA9IHRydWU7XFxuIFxcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9TRVRfU0NBTl9EV0VMTCk7XFxuIFxcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9CRUFDT05fUkFURV9MRUdBQ1kpO1xcbiBcXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksIE5MODAyMTFfRVhUX0ZFQVRVUkVfQkVBQ09OX1JBVEVfSFQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyMzo0Ny4xOTAzNzU5MjRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMTc5MTk2MTQ4OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxVVwiLFxuICAgIFwiTVQ3OTI1VVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZfcGh5X2luaXRcIixcbiAgICBcIm10NzkyeF9pbml0X3dpcGh5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNVDc2IHdpcmVsZXNzIGRyaXZlciB0byBkaXNhYmxlIHRoZSBhY3RpdmUgbW9uaXRvciBmZWF0dXJlIGZvciBNVDc5MnggZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgZHJpdmVyIHRoYXQgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFVTQiBlbXVsYXRpb24gKE1UNzkyMVUgYW5kIE1UNzkyNVUpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGU0OTk1NjcxNjFhN2YyNmE3ZmJiNDg5NjU5N2U3NjJkY2RlZjRkZDNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyMiAyMDoyMzo0NSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xuaW5kZXggMTNjNGU4YWJlMjgxOTEuLmRhYTI5MDhkODQ0ZjA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcbkBAIC00MzksOCArNDM5LDkgQEAgbXQ3Nl9waHlfaW5pdChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4gXHRTRVRfSUVFRTgwMjExX0RFVihodywgZGV2LVx1MDAzZWRldik7XG4gXHRTRVRfSUVFRTgwMjExX1BFUk1fQUREUihodywgcGh5LVx1MDAzZW1hY2FkZHIpO1xuIFxuLVx0d2lwaHktXHUwMDNlZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SIHxcbi1cdFx0XHQgICBOTDgwMjExX0ZFQVRVUkVfQVBfTU9ERV9DSEFOX1dJRFRIX0NIQU5HRTtcbitcdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFO1xuK1x0aWYgKCFwaHktXHUwMDNlbm9fYWN0aXZlX21vbml0b3IpXG4rXHRcdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUjtcbiBcdHdpcGh5LVx1MDAzZWZsYWdzIHw9IFdJUEhZX0ZMQUdfSEFTX0NIQU5ORUxfU1dJVENIIHxcbiBcdFx0XHRXSVBIWV9GTEFHX1NVUFBPUlRTX1RETFMgfFxuIFx0XHRcdFdJUEhZX0ZMQUdfQVBfVUFQU0Q7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaFxuaW5kZXggMDc5NTU1NTVmODRkODMuLjU5MTk4MzA3OGM2ZjU3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oXG5AQCAtODcxLDYgKzg3MSw3IEBAIHN0cnVjdCBtdDc2X3BoeSB7XG4gXHRzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgbWFpbl9jaGFuZGVmO1xuIFx0Ym9vbCBvZmZjaGFubmVsO1xuIFx0Ym9vbCByYWRhcl9lbmFibGVkO1xuK1x0Ym9vbCBub19hY3RpdmVfbW9uaXRvcjtcbiBcbiBcdHN0cnVjdCBkZWxheWVkX3dvcmsgcm9jX3dvcms7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqcm9jX3ZpZjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmNcbmluZGV4IGI1MDgyNWVjY2RhZmVlLi42YTcxYTYxMzRhNTRmNSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jXG5AQCAtNzEyLDYgKzcxMiw3IEBAIGludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbiBcbiBcdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9TQ0hFRF9TQ0FOX1JBTkRPTV9NQUNfQUREUiB8XG4gXHRcdFx0ICAgTkw4MDIxMV9GRUFUVVJFX1NDQU5fUkFORE9NX01BQ19BRERSO1xuK1x0cGh5LVx1MDAzZW10NzYtXHUwMDNlbm9fYWN0aXZlX21vbml0b3IgPSB0cnVlO1xuIFx0d2lwaHlfZXh0X2ZlYXR1cmVfc2V0KHdpcGh5LCBOTDgwMjExX0VYVF9GRUFUVVJFX1NFVF9TQ0FOX0RXRUxMKTtcbiBcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9CRUFDT05fUkFURV9MRUdBQ1kpO1xuIFx0d2lwaHlfZXh0X2ZlYXR1cmVfc2V0KHdpcGh5LCBOTDgwMjExX0VYVF9GRUFUVVJFX0JFQUNPTl9SQVRFX0hUKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjIzOjQ3LjE5MDM3NzE2NFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU5NzkwNDAxNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWVkaWF0ZWsgTVQ3NiBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRvdWNoaW5nIGBtYWM4MDIxMS5jYCwgYG10NzYuaGAsIGFuZCBgbXQ3OTJ4X2NvcmUuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2Ugc2VlbXMgdG8gaW50cm9kdWNlIGEgYG5vX2FjdGl2ZV9tb25pdG9yYCBib29sZWFuIHdpdGhpbiB0aGUgYHN0cnVjdCBtdDc2X3BoeWAuIFRoaXMgYm9vbGVhbiBpcyB0aGVuIHVzZWQgdG8gY29uZGl0aW9uYWxseSBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUmAgZmVhdHVyZSBkdXJpbmcgdGhlIGBtdDc2X3BoeV9pbml0YCBwcm9jZXNzLiAgRXNzZW50aWFsbHksIGl0IGxvb2tzIGxpa2UgdGhleSdyZSBkaXNhYmxpbmcgYWN0aXZlIG1vbml0b3IgbW9kZSBvbiB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMsIHRoaXMgaXMgZGVmaW5pdGVseSBmdW5jdGlvbmFsLCBidXQgaXQncyBhIGhhcmR3YXJlLXNwZWNpZmljIGNoYW5nZSB0byB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIuIFRoZSByZWFsIHF1ZXN0aW9uIGluIG15IG1pbmQsIGdpdmVuIHRoYXQgdGhpcyBhZmZlY3RzIGEgd2lyZWxlc3MgZHJpdmVyLCBpcyAqaG93KiByZWFjaGFibGUgaXMgdGhpcyBkcml2ZXIgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gIE1vc3Qgb2YgdGhlc2UgaGFyZHdhcmUtc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVycywgYXMgSSBrbm93LCBhcmUgZ2VuZXJhbGx5IG5vdCBlYXNpbHkgYWNjZXNzaWJsZSB1bmxlc3Mgd2UncmUgZGVhbGluZyB3aXRoIGVtdWxhdGlvbiBvciwgaWYgaXQncyBhIFVTQiBkcml2ZXIsIHRocm91Z2ggc29tZSBVU0IgZW11bGF0aW9uIHNldHVwLlxuXG5TbywgdGhlIG5leHQgdGhpbmcgSSdtIGRvaW5nIGlzIGNoZWNraW5nIGlmIHRoaXMgTVQ3NiBhY3R1YWxseSBoYXMgYSBVU0IgZHJpdmVyLiBJIGtub3cgYG10NzkyeGAgaXMgcGFydCBvZiBNVDc2LCBzbyBJJ2xsIGNoZWNrIGluc2lkZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jYCB0byBzZWUgaWYgdGhlcmUncyBhbnkgaW5kaWNhdGlvbiBvZiBVU0Igc3VwcG9ydC4gVGhlIHBhdGNoIGl0c2VsZiBkb2Vzbid0IGV4cGxpY2l0bHkgbWVudGlvbiBVU0IsIGJ1dCBpdCdzIGEgY3JpdGljYWwgZmFjdG9yIGluIGRldGVybWluaW5nIGhvdyB3ZSBjYW4gcmVhbGlzdGljYWxseSB0ZXN0IG9yIGludGVyYWN0IHdpdGggdGhpcyBjaGFuZ2UgaW4gYSBjb250cm9sbGVkIGVudmlyb25tZW50LiBJZiBpdCdzIFVTQiwgd2UgaGF2ZSBzb21lIG9wdGlvbnMuIElmIG5vdCwgaXQgYmVjb21lcyBhIG11Y2ggbW9yZSBpbnZvbHZlZCBzY2VuYXJpby5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjIzOjUzLjE2OTQyMjcyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMDY5MzA5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MnhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MDUyIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX01UNzZfQ09OTkFDX0xJQikgKz0gbXQ3Ni1jb25uYWMtbGliLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX01UNzkyeF9MSUIpICs9IG10NzkyeC1saWIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTVQ3OTJ4X1VTQikgKz0gbXQ3OTJ4LXVzYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MjQ9Q0ZMQUdTX210NzZ4MDJfdHJhY2UubyA6PSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MjU6Q0ZMQUdTX210NzkyeF90cmFjZS5vIDo9IC1JJChzcmMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0yNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MzQ9bXQ3Ni1jb25uYWMtbGliLXkgOj0gbXQ3Nl9jb25uYWNfbWN1Lm8gbXQ3Nl9jb25uYWNfbWFjLm8gbXQ3Nl9jb25uYWMzX21hYy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjM2Om10NzkyeC1saWIteSA6PSBtdDc5MnhfY29yZS5vIG10NzkyeF9tYWMubyBtdDc5MnhfdHJhY2UubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTozNzpcXHRcXHRtdDc5MnhfZGVidWdmcy5vIG10NzkyeF9kbWEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6Mzg6bXQ3OTJ4LWxpYi0kKENPTkZJR19BQ1BJKSArPSBtdDc5MnhfYWNwaV9zYXIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6Mzk6bXQ3OTJ4LXVzYi15IDo9IG10NzkyeF91c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTYtI2luY2x1ZGUgXFxcIm10NzZfY29ubmFjX21jdS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6NzojaW5jbHVkZSBcXFwibXQ3OTJ4X3JlZ3MuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9Nz1tdDc5MjFfcmVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy04LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjExOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEyLVxcdG10NzZfd3IoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjEzOlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE5PW10NzkyMV9yZWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIxOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjM6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjQtXFx0KnZhbCA9IG10NzZfcnIoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNTpcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0zMz1tdDc5MjFfZndfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MzU6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzozNzpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy00MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NDI6XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNDMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9NDg9bXQ3OTIxX2Z3X2RlYnVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNDkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzo1MDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9NTc9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyMV9md19kZWJ1Z19nZXQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjYwOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5MnhfdHhfc3RhdHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy02MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz05MT1tdDc5MjFfdHhwd3Ioc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy05Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjkzOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk0LVxcdHN0cnVjdCBtdDc5MjFfdHhwd3IgdHhwd3I7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjk3OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk4LVxcdHJldCA9IG10NzkyMV9nZXRfdHhwd3JfaW5mbyhkZXYsIFxcdTAwMjZ0eHB3cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjk5OlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xNDM9bXQ3OTIxX3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNDQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNDU6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE0Ni1cXHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtID0gXFx1MDAyNmRldi1cXHUwMDNlcG07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTc2PW10NzkyMV9wbV9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE3Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE3ODpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE4OD1tdDc5MjFfZGVlcF9zbGVlcF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTg5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTkwOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xOTEtXFx0c3RydWN0IG10NzZfY29ubmFjX3BtICpwbSA9IFxcdTAwMjZkZXYtXFx1MDAzZXBtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTk4OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE5OS1cXHRpZiAocG0tXFx1MDAzZWRzX2VuYWJsZV91c2VyID09IGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMDUtb3V0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMDY6XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjA3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTIxMj1tdDc5MjFfZGVlcF9zbGVlcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIxMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIxNDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjE1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTIyMT1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19kcywgbXQ3OTIxX2RlZXBfc2xlZXBfZ2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjI0OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIyNTpcXHRcXHRcXHQgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0yMjc9c3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjk6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzMC1cXHRpbnQgcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMzQtXFx0XFx0LyogUmVzZXQgd2lmaXN5cyBkaXJlY3RseS4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjM1OlxcdFxcdG10NzkyeF9yZXNldChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjM2LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzOC1cXHRcXHQvKiBDb2xsZWN0IHRoZSBjb3JlIGR1bXAgYmVmb3JlIHJlc2V0IHdpZmlzeXMuICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIzOTpcXHRcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDAtXFx0XFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNDE6XFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjQyLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTI1MT1tdDc5MjFzX3NjaGVkX3F1b3RhX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNTIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNTM6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjU0LVxcdHN0cnVjdCBtdDc2X3NkaW8gKnNkaW8gPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnNkaW87XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNjQ6aW50IG10NzkyMV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNzEtXFx0XFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJ4bWl0LXF1ZXVlc1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI3MjpcXHRcXHRcXHRcXHRcXHQgICAgZGlyLCBtdDc5MnhfcXVldWVzX3JlYWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNzMtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI3Ny1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcImFjcVxcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6Mjc4OlxcdFxcdFxcdFxcdCAgICBtdDc5MnhfcXVldWVzX2FjcSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI3OS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInR4cG93ZXJfc2t1XFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yODAtXFx0XFx0XFx0XFx0ICAgIG10NzkyMV90eHB3cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI4MTpcXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJ0eF9zdGF0c1xcXCIsIDA0MDAsIGRpciwgZGV2LCBcXHUwMDI2bXQ3OTJ4X3R4X3N0YXRzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yODItXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiZndfZGVidWdcXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfZndfZGVidWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI4Ny1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInJ1bnRpbWVfcG1fc3RhdHNcXFwiLCBkaXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI4ODpcXHRcXHRcXHRcXHQgICAgbXQ3OTJ4X3BtX3N0YXRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjg5LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcImRlZXAtc2xlZXBcXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfZHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE0PXN0YXRpYyBzc2l6ZV90IG10NzkyMV90aGVybWFsX3RlbXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTktXFx0Y2FzZSAwOiB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIwOlxcdFxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjE6XFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKm1kZXYgPSBwaHktXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjItXFx0XFx0aW50IHRlbXBlcmF0dXJlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjQ6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI1LVxcdFxcdHRlbXBlcmF0dXJlID0gbXQ3OTIxX21jdV9nZXRfdGVtcGVyYXR1cmUocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjY6XFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTQzPUFUVFJJQlVURV9HUk9VUFMobXQ3OTIxX2h3bW9uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjQ1OnN0YXRpYyBpbnQgbXQ3OTIxX3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjY0OmludCBtdDc5MjFfbWFjX2luaXQoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTc3LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyAyOyBpKyspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjc4OlxcdFxcdG10NzkyeF9tYWNfaW5pdF9iYW5kKGRldiwgaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTgyPUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tYWNfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo4NDpzdGF0aWMgaW50IF9fbXQ3OTIxX2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtODUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTkxLVxcdG10NzZfd3IoZGV2LCBNVF9TV0RFRl9NT0RFLCBNVF9TV0RFRl9OT1JNQUxfTU9ERSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjkyOlxcdHJldCA9IG10NzkyeF9tY3VfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy05My1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTA5OnN0YXRpYyBpbnQgbXQ3OTIxX2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjEyMDpcXHRcXHRtdDc5MnhfaW5pdF9yZXNldChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTEzMT1zdGF0aWMgdm9pZCBtdDc5MjFfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTMyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTMzOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEzNC1cXHRcXHRcXHRcXHRcXHQgICAgICBpbml0X3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE0Mi1cXHRtdDc5MjFfc2V0X3N0cmVhbV9oZV9jYXBzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE0MzpcXHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTcwOmludCBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE3MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTc3LVxcdGRldi1cXHUwMDNlbXQ3Ni5waHkucHJpdiA9IFxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTc4OlxcdGRldi1cXHUwMDNlbXQ3Ni50eF93b3JrZXIuZm4gPSBtdDc5MnhfdHhfd29ya2VyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE4MDpcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VwbS5wc193b3JrLCBtdDc5MnhfcG1fcG93ZXJfc2F2ZV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTgxOlxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VwbS53YWtlX3dvcmssIG10NzkyeF9wbV93YWtlX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xODItXFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlcG0ud2FrZS5sb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xODgtXFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlcG0udHhxX2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxODk6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTkwLVxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zY2FuX3dvcmssIG10NzkyMV9zY2FuX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwMi1cXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnJvY193b3JrLCBtdDc5MjFfcm9jX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMDM6XFx0dGltZXJfc2V0dXAoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnJvY190aW1lciwgbXQ3OTJ4X3JvY190aW1lciwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwNC1cXHRpbml0X3dhaXRxdWV1ZV9oZWFkKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5yb2Nfd2FpdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMjE6XFx0bXQ3OTJ4X2luaXRfYWNwaV9zYXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMjM6XFx0cmV0ID0gbXQ3OTJ4X2luaXRfd2NpZChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIyNzpcXHRyZXQgPSBtdDc5MnhfaW5pdF93aXBoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyOC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTk6Ym9vbCBtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIGludCBpZHgsIHUzMiBtYXNrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTI4PXN0YXRpYyB1MzIgbXQ3OTIxX21hY193dGJsX2xtYWNfYWRkcihpbnQgaWR4LCB1OCBvZmZzZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzozMzpzdGF0aWMgdm9pZCBtdDc5MjFfbWFjX3N0YV9wb2xsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDEtXFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0MjpcXHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0MzpcXHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NC1cXHR1MzIgdHhfdGltZVtJRUVFODAyMTFfTlVNX0FDU10sIHJ4X3RpbWVbSUVFRTgwMjExX05VTV9BQ1NdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjUtXFx0XFx0bWxpbmsgPSBsaXN0X2ZpcnN0X2VudHJ5KFxcdTAwMjZzdGFfcG9sbF9saXN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY2OlxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY3LVxcdFxcdFxcdFxcdFxcdCB3Y2lkLnBvbGxfbGlzdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6Njg6XFx0XFx0bXN0YSA9IGNvbnRhaW5lcl9vZihtbGluaywgc3RydWN0IG10NzkyeF9zdGEsIGRlZmxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY5LVxcdFxcdGxpc3RfZGVsX2luaXQoXFx1MDAyNm1saW5rLVxcdTAwM2V3Y2lkLnBvbGxfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz0xNjg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE2OTptdDc5MjFfbWFjX2ZpbGxfcngoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTc3LVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE3ODpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE4NS1cXHR1MzIgcnhkNCA9IGxlMzJfdG9fY3B1KHJ4ZFs0XSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTg2OlxcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxODc6XFx0c3RydWN0IG10NzkyeF9saW5rX3N0YSAqbWxpbms7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTg4LVxcdHUxNiBzZXFfY3RybCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMTQtXFx0aWR4ID0gRklFTERfR0VUKE1UX1JYRDFfTk9STUFMX1dMQU5fSURYLCByeGQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMTU6XFx0c3RhdHVzLVxcdTAwM2V3Y2lkID0gbXQ3OTJ4X3J4X2dldF93Y2lkKGRldiwgaWR4LCB1bmljYXN0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjE3LVxcdGlmIChzdGF0dXMtXFx1MDAzZXdjaWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMTg6XFx0XFx0bWxpbmsgPSBjb250YWluZXJfb2Yoc3RhdHVzLVxcdTAwM2V3Y2lkLCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLCB3Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMTk6XFx0XFx0bXN0YSA9IGNvbnRhaW5lcl9vZihtbGluaywgc3RydWN0IG10NzkyeF9zdGEsIGRlZmxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIyMC1cXHRcXHRtdDc2X3djaWRfYWRkX3BvbGwoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgXFx1MDAyNm1saW5rLVxcdTAwM2V3Y2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMjM6XFx0bXQ3OTJ4X2dldF9zdGF0dXNfZnJlcV9pbmZvKHN0YXR1cywgY2hmcmVxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00MzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDMyOlxcdG10NzkyeF9tYWNfYXNzb2NfcnNzaShkZXYsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDMzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjQ0Nzp2b2lkIG10NzkyMV9tYWNfYWRkX3R4cyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ0OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDQ5OlxcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ1MC1cXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjQ3MzpcXHRtbGluayA9IGNvbnRhaW5lcl9vZih3Y2lkLCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLCB3Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDg1OnN0YXRpYyB2b2lkIG10NzkyMV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ4Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01MTQtXFx0XFx0aWYgKGluZm8gXFx1MDAyNiBNVF9UWF9GUkVFX1BBSVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1MTU6XFx0XFx0XFx0c3RydWN0IG10NzkyeF9saW5rX3N0YSAqbWxpbms7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTE2LVxcdFxcdFxcdHUxNiBpZHg7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01MjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTI1OlxcdFxcdFxcdG1saW5rID0gY29udGFpbmVyX29mKHdjaWQsIHN0cnVjdCBtdDc5MnhfbGlua19zdGEsIHdjaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTUyNi1cXHRcXHRcXHRtdDc2X3djaWRfYWRkX3BvbGwoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgXFx1MDAyNm1saW5rLVxcdTAwM2V3Y2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU2Mj1ib29sIG10NzkyMV9yeF9jaGVjayhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTYzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1NjQ6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTY1LVxcdF9fbGUzMiAqcnhkID0gKF9fbGUzMiAqKWRhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz01ODY9dm9pZCBtdDc5MjFfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1ODk6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTkwLVxcdF9fbGUzMiAqcnhkID0gKF9fbGUzMiAqKXNrYi1cXHUwMDNlZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTYzMD1tdDc5MjFfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjMyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2MzM6XFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYzNDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXZpZi1cXHUwMDNlcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjM1LVxcdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gbXQ3Nl9odyhkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NjU1PXZvaWQgbXQ3OTIxX21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY1NzpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY1OC1cXHRcXHRcXHRcXHRcXHQgICAgICByZXNldF93b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY3My1cXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubXV0ZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY3NDpcXHRcXHRyZXQgPSBtdDc5MnhfZGV2X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjc1LVxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm11dGV4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTcwOD12b2lkIG10NzkyMV9jb3JlZHVtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MDkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjcxMDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTcxMS1cXHRjaGFyICpkdW1wLCAqZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzEzOlxcdGRldiA9IChzdHJ1Y3QgbXQ3OTJ4X2RldiAqKWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MTQtXFx0XFx0XFx0XFx0XFx0XFx0Y29yZWR1bXAud29yay53b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3NTI6XFx0bXQ3OTJ4X3Jlc2V0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc1My19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz03NTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3NTc6bXQ3OTIxX3VzYl9zZGlvX3dyaXRlX3R4d2koc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03NTgtXFx0XFx0XFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz03Njk9aW50IG10NzkyMV91c2Jfc2Rpb190eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzczLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3NzQ6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzc1LVxcdHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0IodHhfaW5mby1cXHUwMDNlc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc5MC1cXHRpZiAoc3RhKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzkxOlxcdFxcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03OTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDItXFx0dHlwZSA9IG10NzZfaXNfc2RpbyhtZGV2KSA/IE1UNzkyMV9TRElPX0RBVEEgOiAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjgwMzpcXHRtdDc5Mnhfc2tiX2FkZF91c2Jfc2Rpb19oZHIoZGV2LCBza2IsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgwNC1cXHRwYWQgPSByb3VuZF91cChza2ItXFx1MDAzZWxlbiwgNCkgLSBza2ItXFx1MDAzZWxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTgzOD1ib29sIG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHU4ICp1cGRhdGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODM5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NDA6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjg0MjpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg0My1cXHRtdDc5MjFfbWFjX3N0YV9wb2xsKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQ0OlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQ1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9ODUxPXZvaWQgbXQ3OTIxX3NldF9pcHY2X25zX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg1Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODUzOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODU0LVxcdFxcdFxcdFxcdFxcdCAgICAgIGlwdjZfbnNfd29yayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODY0OlxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY1LVxcdFxcdHJldCA9IG10NzZfbWN1X3NrYl9zZW5kX21zZyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY2LVxcdFxcdFxcdFxcdFxcdCAgICBNQ1VfVU5JX0NNRChPRkZMT0FEKSwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODY3OlxcdFxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQ6bXQ3OTIxX2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNS1cXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE5Njp2b2lkIG10NzkyMV9zZXRfc3RyZWFtX2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjIyNzppbnQgX19tdDc5MjFfc3RhcnQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI0ODpcXHRtdDc5MnhfbWFjX3Jlc2V0X2NvdW50ZXJzKHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI0OS1cXHRzZXRfYml0KE1UNzZfU1RBVEVfUlVOTklORywgXFx1MDAyNm1waHktXFx1MDAzZXN0YXRlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0yNzI9c3RhdGljIGludCBtdDc5MjFfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI3NDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3NS1cXHRpbnQgZXJyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI3NzpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3OC1cXHRlcnIgPSBfX210NzkyMV9zdGFydChwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzk6XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Mjg0PXN0YXRpYyB2b2lkIG10NzkyMV9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBib29sIHN1c3BlbmQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI4NjpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4Ny1cXHRpbnQgZXJyID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODktXFx0aWYgKG10NzZfaXNfbW1pbyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTA6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjkxLVxcdFxcdGVyciA9IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwoZGV2LCBFWFRfQ01EX1JBRElPX09GRl9MRUQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTI6XFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjkzLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTc6XFx0bXQ3OTJ4X3N0b3AoaHcsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjk4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zMDE9bXQ3OTIxX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMwMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwMzpcXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwNDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwNTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMwNi1cXHRzdHJ1Y3QgbXQ3Nl90eHEgKm10eHE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMDk6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzEwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1NC1cXHRJTklUX1dPUksoXFx1MDAyNm12aWYtXFx1MDAzZWNzYV93b3JrLCBtdDc5MjFfY3NhX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozNTU6XFx0dGltZXJfc2V0dXAoXFx1MDAyNm12aWYtXFx1MDAzZWNzYV90aW1lciwgbXQ3OTJ4X2NzYV90aW1lciwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1Ni1vdXQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM1NzpcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MzYyPXN0YXRpYyB2b2lkIG10NzkyMV9yb2NfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM2NTpcXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM2NjpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzY3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzcxOnZvaWQgbXQ3OTIxX3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM3Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM3MzpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Mzg3PXZvaWQgbXQ3OTIxX3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mzg5OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzkxOlxcdHBoeSA9IChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqKWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X3BoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkyLVxcdFxcdFxcdFxcdFxcdFxcdHJvY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozOTQ6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zOTUtXFx0aWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoTVQ3Nl9TVEFURV9ST0MsIFxcdTAwMjZwaHktXFx1MDAzZW10NzYtXFx1MDAzZXN0YXRlKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozOTY6XFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zOTctXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQwMS1cXHRcXHRcXHRcXHRcXHQgICAgbXQ3OTIxX3JvY19pdGVyLCBwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MDI6XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MDMtXFx0aWVlZTgwMjExX3JlbWFpbl9vbl9jaGFubmVsX2V4cGlyZWQocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2Vodyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MDY6c3RhdGljIGludCBtdDc5MjFfYWJvcnRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQwNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MTM6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTQtXFx0aWYgKHRlc3RfYW5kX2NsZWFyX2JpdChNVDc2X1NUQVRFX1JPQywgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc3RhdGUpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTUtXFx0XFx0ZXJyID0gbXQ3OTIxX21jdV9hYm9ydF9yb2MocGh5LCB2aWYsIHBoeS1cXHUwMDNlcm9jX3Rva2VuX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDE2OlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKHBoeS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDIxOnN0YXRpYyBpbnQgbXQ3OTIxX3NldF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDIyOlxcdFxcdFxcdCAgc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDIzLVxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ1MT1zdGF0aWMgaW50IG10NzkyMV9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NTc6XFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NTg6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NTktXFx0aW50IGVycjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NjE6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NjItXFx0ZXJyID0gbXQ3OTIxX3NldF9yb2MocGh5LCBtdmlmLCBjaGFuLCBkdXJhdGlvbiwgTVQ3OTIxX1JPQ19SRVFfUk9DKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDYzOlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKHBoeS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDY0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ2OD1zdGF0aWMgaW50IG10NzkyMV9jYW5jZWxfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDcwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDcxOlxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDcyOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ3Nz1pbnQgbXQ3OTIxX3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDc4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDc5OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVxcdTAwM2Vwcml2O1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyMzo1My4zMDAxMjI4MDFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTczMjQ1MzcwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoOiBNZWRpYXRlayBNVDc2IERyaXZlciBGZWF0dXJlIENoYW5nZSoqXG5cbk9rYXksIHNvIEkndmUgc3BvdHRlZCBgbXQ3OTJ4LXVzYi15YCBpbiB0aGUgYG10NzZgIE1ha2VmaWxlLiBBbmQgYG10NzkyMWAgaXMgc3BlY2lmaWNhbGx5IGEgZHJpdmVyIGxpc3RlZCB0aGVyZS4gVGhhdCBtZWFucyB0aGUgYG10NzZgIGZhbWlseSBoYXMgYSBVU0IgZHJpdmVyIHRoYXQgaXMgYSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIFRoaXMgcGF0Y2ggbW9kaWZpZXMgYG1hYzgwMjExLmNgIGFuZCBgbXQ3OTJ4X2NvcmUuY2AsIHdoaWNoIGltbWVkaWF0ZWx5IHJhaXNlcyBteSBpbnRlcmVzdCDigJMgYW55dGhpbmcgdG91Y2hpbmcgY29yZSBmdW5jdGlvbmFsaXR5IGlzIHdvcnRoIGEgY2xvc2VyIGxvb2suXG5cbkkga25vdyBgbXQ3NmAgaGFzIG90aGVyIFVTQiBkcml2ZXJzIGxpa2UgYG10NzZ4MDItdXNiYCwgYG10NzZ4MnVgLCBhbmQgYG10NzkyMXVgLCBhbmQgYmVjYXVzZSBpdCdzIGEgVVNCIGRyaXZlciwgdGhlIFVTQiBnYWRnZXQgZnJhbWV3b3JrICh2aGNpKSBvcGVucyB1cCBmdXp6aW5nIHBvc3NpYmlsaXRpZXMgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoaXMgcGF0Y2ggaXMgZGVmaW5pdGVseSByZWFjaGFibGUuXG5cbk5vdywgbGV0J3MgZGlzc2VjdCB0aGUgY29kZSBjaGFuZ2VzIG1vcmUgY2FyZWZ1bGx5LiBJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBkaXNhYmxlcyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmb3IgYG10NzkyeGAgZGV2aWNlcy4gSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgaXQncyBhIHJlbGF0aXZlbHkgc2ltcGxlIG9uZSwgb25seSByZW1vdmluZyBhIGZlYXR1cmUgZmxhZyBkdXJpbmcgaW5pdGlhbGl6YXRpb24uIEl0IG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBwYXRocyBpbiBgbXQ3OTJ4X2luaXRfd2lwaHlgIGFuZCBgbXQ3Nl9waHlfaW5pdGAuIEJhc2ljYWxseSwgc2V0dGluZyBhIGJvb2xlYW4gYW5kIGNoZWNraW5nIGl0LlxuXG5UaGUgcmVhbCBxdWVzdGlvbiBpcywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyBJdCBpc24ndCBhZGRpbmcgY29tcGxleCBuZXcgbG9naWMsIGp1c3QgcmVtb3ZpbmcgYSBmZWF0dXJlIGFkdmVydGlzZW1lbnQuIEhvd2V2ZXIsIGl0ICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gYSBVU0ItcmVhY2hhYmxlIGRyaXZlciwgYW5kIEkga25vdyB0aGF0IGV2ZW4gc21hbGwgY2hhbmdlcyBjYW4gc29tZXRpbWVzIGhhdmUgdW5leHBlY3RlZCBpbXBsaWNhdGlvbnMgaW4gY29tcGxleCBzeXN0ZW1zLiBJdCdzIHdvcnRoIGRpZ2dpbmcgaW50byB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBgbXQ3NmAgYW5kIGBtdDc5MjF1YCB0byBzZWUgaG93IHRoaXMgZmVhdHVyZSBmbGFnIGltcGFjdHMgdGhlIG92ZXJhbGwgZHJpdmVyIGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTkxMywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyNDowNS4wMzI1Nzk2MzdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIyMjExMzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc5MjFVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9MTc9Y29uZmlnIE1UNzkyMVNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMjktXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjQ6MDUuMTU0ODAxNjQ4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ1MzQ0NTU3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBob3cgSSdkIGFwcHJvYWNoIHRoYXQga2VybmVsIGNvbmZpZ3VyYXRpb24gZmlsZSBjaGVjazpcblxuKipFeGFtaW5pbmcgdGhlIE1UNzkyMSBhbmQgTVQ3OTJ4IEtjb25maWcgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaG93IHRoZSBgTVQ3OTIxVWAgYW5kIGBNVDc5MnhgIHdpcmVsZXNzIGRyaXZlcnMgYXJlIGNvbmZpZ3VyZWQgd2l0aGluIHRoZSBNZWRpYXRlayBmcmFtZXdvcmsuIE15IGZpcnN0IHN0b3Agd2lsbCBiZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ2AuIFRoaXMgS2NvbmZpZyBmaWxlIHdpbGwgYmUgdGhlIGNlbnRyYWwgcG9pbnQgb2YgdHJ1dGggZm9yIGhvdyB0aGVzZSBkcml2ZXJzIGFyZSBicm91Z2h0IGludG8gdGhlIGtlcm5lbCBidWlsZC4gSSdsbCBiZSBsb29raW5nIHNwZWNpZmljYWxseSBmb3IgYW55IGNvbmRpdGlvbmFsIGRlcGVuZGVuY2llcyByZWxhdGVkIHRvIGBNVDc5MjFVYCBhbmQgdGhlIGJyb2FkZXIgYE1UNzkyeGAgZmFtaWx5LiBUaGVzZSBkZXBlbmRlbmNpZXMgY291bGQgaW52b2x2ZSBvdGhlciBrZXJuZWwgZmVhdHVyZXMsIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLCBvciBldmVuIHNwZWNpZmljIE1lZGlhdGVrIHBsYXRmb3JtIGRlZmluZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgbmVlZHMgdG8gYmUgZW5hYmxlZCBvciBkZWZpbmVkIHRvIGVuc3VyZSBwcm9wZXIgc3VwcG9ydCBmb3IgdGhlc2UgcGFydGljdWxhciB3aXJlbGVzcyBjaGlwcy4gVGhpcyB3aWxsIGFsbG93IG1lIHRvIHRyYWNrIGRvd24gaG93IHRoZXNlIGNoaXBzIGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUgd2lyZWxlc3Mgc3RhY2suIFRoZSBnb2FsIGhlcmUgaXMgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQgb3RoZXIgc2V0dGluZ3Mgd2lsbCBlbmFibGUgcHJvcGVyIGJ1aWxkIG9wdGlvbnMgZm9yIHRoZXNlIGNvbXBvbmVudHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNDU3LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjQ6MDkuNjA4MjUwMDY0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA2MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyMV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjFFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIE1UNzkyMVNcXG4gIDE4OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFTIChTRElPKSBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0c2VsZWN0IE1UNzZfU0RJT1xcbiAgMjA6XFx0XFx0c2VsZWN0IE1UNzkyMV9DT01NT05cXG4gIDIxOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gTU1DXFxuICAyMzpcXHRcXHRoZWxwXFxuICAyNDpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFTIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cXG4gIDI1OlxcdFxcbiAgMjY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMjc6XFx0XFxuICAyODpcXHRjb25maWcgTVQ3OTIxVVxcbiAgMjk6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFxcXCJcXG4gIDMwOlxcdFxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuICAzMTpcXHRcXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxcbiAgMzI6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMzM6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDM0OlxcdFxcdGhlbHBcXG4gIDM1OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyMVUgODAyLjExYXggMngyOjJTUyB3aXJlbGVzcyBkZXZpY2VzLlxcbiAgMzY6XFx0XFxuICAzNzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI0OjA5LjYwODMxMjIyNFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIzMjE0NTYwNTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3OTIxVSBVU0IgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGBNVDc5MjFVYCBVU0IgZHJpdmVyLiBTZWVtcyBsaWtlIGl0J3MgcHJpbWFyaWx5IHRvdWNoaW5nIGBtdDc2X3BoeV9pbml0YCBhbmQgYG10NzkyeF9pbml0X3dpcGh5YCwgYm90aCBvZiB3aGljaCBhcmUgY3JpdGljYWwgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiDigJMgdGhlIHVzdWFsIHN1c3BlY3RzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBmdXp6YWJsZSwgYW5kIGlzIGl0IHdvcnRoIHRoZSBlZmZvcnQ/XCJcblxuVGhlIHBhdGNoIGl0c2VsZiBpcyByaWRpY3Vsb3VzbHkgc2ltcGxlOyBpdCdzIGp1c3Qgc2V0dGluZyBhIGNvdXBsZSBvZiBmZWF0dXJlIGZsYWdzOiBzZXR0aW5nICBgTkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0VgIGFuZCBwb3RlbnRpYWxseSBzZXR0aW5nIGBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1JgLCBhbmQgaXQgYWxzbyBzZXRzIGBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vub19hY3RpdmVfbW9uaXRvciA9IHRydWVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGJ1dCBpdCdzIGp1c3QgZmxpcHBpbmcgYSBmZXcgYml0cy4gRnV6emluZyAqdGhpcyBzcGVjaWZpYyBjb2RlKiBpcyB1bmxpa2VseSB0byB1bmNvdmVyIGFueXRoaW5nIGludGVyZXN0aW5nIGJlY2F1c2UgdGhlIGxvZ2ljIGlzIHNvIHRyaXZpYWwuIEJ1dC4uLiBpdCBkb2VzIG1vZGlmeSBkcml2ZXIgYmVoYXZpb3IuIEl0J3Mgbm93ICpub3QqIGFkdmVydGlzaW5nIGBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1JgLlxuXG5JZiB0aGUgZ29hbCBpcyB0byBmdXp6IHRoZSBkcml2ZXIgZWZmZWN0aXZlbHksIGZvY3VzaW5nIG9uIGBtdDc2X3BoeV9pbml0YCBhbmQgYG10NzkyeF9pbml0X3dpcGh5YCBpcyB0aGUgd2F5IHRvIGdvLiBIb3dldmVyLCBhIHF1aWNrIHJlbWluZGVyOiBgbXQ3Nl9waHlfaW5pdGAgaXMgYSBnZW5lcmFsIGZ1bmN0aW9uIHVzZWQgYWNyb3NzICphbGwqIGBtdDc2YCBkcml2ZXJzLiBgbXQ3OTJ4X2luaXRfd2lwaHlgLCBob3dldmVyLCBpcyBzcGVjaWZpYyB0byB0aGUgYG10NzkyeGAgZmFtaWx5LiBOb3csIEkgbmVlZCB0byBjaGVjayB0byBzZWUgaWYgdGhlcmUgYXJlIG90aGVyIGRyaXZlcnMgdGhhdCB1c2UgdGhpcyBgbXQ3OTJ4YCBwcmVmaXgsIHRvIHNlZSBpZiB0aGUgZnV6emluZyBlZmZvcnQgaXMgYmVzdCBhcHBsaWVkIHRvIHRoZSBzcGVjaWZpYyBjaGlwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMzNywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyMiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI0OjMyLjgyMjg3NjEwOFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODQ2MTg4ODQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc5MjJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI0OjMyLjkwNzUwMjYyMloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTg3ODM5NTQxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZSB0cmVlLCBzcGVjaWZpY2FsbHkgbG9va2luZyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IGRlZmluZXMgdGhlIGJ1aWxkIG9wdGlvbnMgZm9yIHRoYXQgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlci4gSSdkIHN0YXJ0IHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWdgLCBvciBzb21ldGhpbmcgdmVyeSBzaW1pbGFyLCBhcyB0aGF0J3MgdXN1YWxseSB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgY29uZmlndXJhdGlvbiBsaXZlcy4gR290dGEgYmUgZWZmaWNpZW50IGhlcmUuIFRoaXMgS2NvbmZpZyBmaWxlIHdpbGwgYmUgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaXMgYmVpbmcgY29tcGlsZWQsIHdoYXQgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIGFuZCBhbnkgZGVwZW5kZW5jaWVzIGl0IG1pZ2h0IGhhdmUuIFVuZGVyc3RhbmRpbmcgdGhpcyBmaWxlIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBzeXN0ZW0gZm9yIHRoZSBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDk1LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjQ6NDguNzg1OTAxNDM0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY0MTkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiYWdnLXJ4LmNcIixcbiAgICBcImNoYW5uZWwuY1wiLFxuICAgIFwiZGVidWdmcy5jXCIsXG4gICAgXCJkbWEuY1wiLFxuICAgIFwiZG1hLmhcIixcbiAgICBcImVlcHJvbS5jXCIsXG4gICAgXCJtYWM4MDIxMS5jXCIsXG4gICAgXCJtY3UuY1wiLFxuICAgIFwibW1pby5jXCIsXG4gICAgXCJtdDc2LmhcIixcbiAgICBcIm10NzZfY29ubmFjLmhcIixcbiAgICBcIm10NzZfY29ubmFjMl9tYWMuaFwiLFxuICAgIFwibXQ3Nl9jb25uYWMzX21hYy5jXCIsXG4gICAgXCJtdDc2X2Nvbm5hYzNfbWFjLmhcIixcbiAgICBcIm10NzZfY29ubmFjX21hYy5jXCIsXG4gICAgXCJtdDc2X2Nvbm5hY19tY3UuY1wiLFxuICAgIFwibXQ3Nl9jb25uYWNfbWN1LmhcIixcbiAgICBcIm10NzZ4MDIuaFwiLFxuICAgIFwibXQ3NngwMl9iZWFjb24uY1wiLFxuICAgIFwibXQ3NngwMl9kZWJ1Z2ZzLmNcIixcbiAgICBcIm10NzZ4MDJfZGZzLmNcIixcbiAgICBcIm10NzZ4MDJfZGZzLmhcIixcbiAgICBcIm10NzZ4MDJfZG1hLmhcIixcbiAgICBcIm10NzZ4MDJfZWVwcm9tLmNcIixcbiAgICBcIm10NzZ4MDJfZWVwcm9tLmhcIixcbiAgICBcIm10NzZ4MDJfbWFjLmNcIixcbiAgICBcIm10NzZ4MDJfbWFjLmhcIixcbiAgICBcIm10NzZ4MDJfbWN1LmNcIixcbiAgICBcIm10NzZ4MDJfbWN1LmhcIixcbiAgICBcIm10NzZ4MDJfbW1pby5jXCIsXG4gICAgXCJtdDc2eDAyX3BoeS5jXCIsXG4gICAgXCJtdDc2eDAyX3BoeS5oXCIsXG4gICAgXCJtdDc2eDAyX3JlZ3MuaFwiLFxuICAgIFwibXQ3NngwMl90cmFjZS5jXCIsXG4gICAgXCJtdDc2eDAyX3RyYWNlLmhcIixcbiAgICBcIm10NzZ4MDJfdHhyeC5jXCIsXG4gICAgXCJtdDc2eDAyX3VzYi5oXCIsXG4gICAgXCJtdDc2eDAyX3VzYl9jb3JlLmNcIixcbiAgICBcIm10NzZ4MDJfdXNiX21jdS5jXCIsXG4gICAgXCJtdDc2eDAyX3V0aWwuY1wiLFxuICAgIFwibXQ3OTJ4LmhcIixcbiAgICBcIm10NzkyeF9hY3BpX3Nhci5jXCIsXG4gICAgXCJtdDc5MnhfYWNwaV9zYXIuaFwiLFxuICAgIFwibXQ3OTJ4X2NvcmUuY1wiLFxuICAgIFwibXQ3OTJ4X2RlYnVnZnMuY1wiLFxuICAgIFwibXQ3OTJ4X2RtYS5jXCIsXG4gICAgXCJtdDc5MnhfbWFjLmNcIixcbiAgICBcIm10NzkyeF9yZWdzLmhcIixcbiAgICBcIm10NzkyeF90cmFjZS5jXCIsXG4gICAgXCJtdDc5MnhfdHJhY2UuaFwiLFxuICAgIFwibXQ3OTJ4X3VzYi5jXCIsXG4gICAgXCJucHUuY1wiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInNjYW4uY1wiLFxuICAgIFwic2Rpby5jXCIsXG4gICAgXCJzZGlvLmhcIixcbiAgICBcInNkaW9fdHhyeC5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5oXCIsXG4gICAgXCJ0cmFjZS5jXCIsXG4gICAgXCJ0cmFjZS5oXCIsXG4gICAgXCJ0eC5jXCIsXG4gICAgXCJ1c2IuY1wiLFxuICAgIFwidXNiX3RyYWNlLmNcIixcbiAgICBcInVzYl90cmFjZS5oXCIsXG4gICAgXCJ1dGlsLmNcIixcbiAgICBcInV0aWwuaFwiLFxuICAgIFwid2VkLmNcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwibXQ3NjAzXCIsXG4gICAgXCJtdDc2MTVcIixcbiAgICBcIm10NzZ4MFwiLFxuICAgIFwibXQ3NngyXCIsXG4gICAgXCJtdDc5MTVcIixcbiAgICBcIm10NzkyMVwiLFxuICAgIFwibXQ3OTI1XCIsXG4gICAgXCJtdDc5OTZcIlxuICBdXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyNDo0OC43ODYwNjc0NTRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkzNTIzOTI1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipOYXZpZ2F0aW5nIHRoZSBNVDc5MjUgRHJpdmVyIExhbmRzY2FwZSoqXG5cblJpZ2h0LCB0aGVyZSdzIGBtdDc5MjVgLiBNeSBpbW1lZGlhdGUgcmVmbGV4IGlzIHRvIGRpdmUgaW50byBpdHMgY29uZmlndXJhdGlvbiDigJMgc3BlY2lmaWNhbGx5LCB0aGUgYEtjb25maWdgIGZpbGUuIEknbSBnb2luZyBzdHJhaWdodCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSB0aGUgaW5pdGlhbCBkZWNpc2lvbi1tYWtpbmcgaGFwcGVucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgaG93IHRoZXkncmUgZXhwb3NlZCB0aHJvdWdoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYW5kLCBvZiBjb3Vyc2UsIGFueSBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgb24gb3RoZXIga2VybmVsIHN1YnN5c3RlbXMgb3IgZmVhdHVyZXMuIFRoaXMgZmlsZSBpcyB0aGUgYmVkcm9jayBmb3IgY3VzdG9taXppbmcgdGhlIGJ1aWxkIGZvciBhIHNwZWNpZmljIHVzZSBjYXNlLCBzbyBpdCBpcyB0aGUgb2J2aW91cyBwbGFjZSB0byBzdGFydC4gTG9va2luZyBhdCBgS2NvbmZpZ2AgaW1tZWRpYXRlbHkgZ2l2ZXMgYSBoaWdoLWxldmVsIHZpZXcgb2Ygd2hhdCdzICpwb3NzaWJsZSogd2l0aCB0aGlzIGRyaXZlci4gRnJvbSB0aGVyZSwgSSBjYW4gZ2V0IGEgZmVlbCBmb3IgdGhlIGRlc2lnbiBjaG9pY2VzIGFuZCBwb3RlbnRpYWwgYXJlYXMgdG8gc2NydXRpbml6ZSBiYXNlZCBvbiBwZXJmb3JtYW5jZSBhbmQgcG93ZXIgY29uc3VtcHRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MTA2LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI0OjU0LjcyMTMwOTU1NloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTA4OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyNV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjVFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTI1RSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFBDSWUgZGV2aWNlcyxcXG4gIDE0OlxcdFxcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXFxuICAxNTpcXHRcXHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgTVQ3OTI1VVxcbiAgMjA6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFxcXCJcXG4gIDIxOlxcdFxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuICAyMjpcXHRcXHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxcbiAgMjM6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMjQ6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDI1OlxcdFxcdGhlbHBcXG4gIDI2OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBVU0IgZGV2aWNlcyxcXG4gIDI3OlxcdFxcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXFxuICAyODpcXHRcXHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cXG4gIDI5OlxcdFxcbiAgMzA6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyNDo1NC43MjE0MjI3MzZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMyNTY0NTUxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEltcGFjdCBvZiB0aGUgYE1UNzkyNVVgIFVTQiBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBgTVQ3OTI1VWAgaXMgaW5kZWVkIGEgVVNCIGRyaXZlciwgd2hpY2ggaXMgZ29vZCB0byBrbm93LiBUaGlzIHBhdGNoIHNwZWNpZmljYWxseSBkaXNhYmxlcyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmb3IgdGhlIGBtdDc5MnhgIGZhbWlseSBvZiBkZXZpY2VzLiBUaGUgcXVlc3Rpb24gbm93IGlzOiBkb2VzIHRoaXMgd2FycmFudCBmdXp6aW5nPyBBYnNvbHV0ZWx5LCBpdCBkb2VzLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgZHJpdmVyIHRoYXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZSwgbWFraW5nIGl0IGEgcHJpbWUgdGFyZ2V0LlxuXG5NeSBpbml0aWFsIGZvY3VzIHN5bWJvbHMgd291bGQgYmUgYG10NzZfcGh5X2luaXRgIGFuZCBgbXQ3OTJ4X2luaXRfd2lwaHlgLiBCdXQgaG9sZCBvbi4uLiBgbXQ3Nl9waHlfaW5pdGAgc2VlbXMgdG8gYmUgdXNlZCBhY3Jvc3MgKmFsbCogYG10NzZgIGRyaXZlcnMsIHNvIGl0J3MgcHJvYmFibHkgbm90IGFzIHNwZWNpZmljIGEgY2hhbmdlIGFzIEkgaW5pdGlhbGx5IHRob3VnaHQuIExldCdzIHF1aWNrbHkgdmVyaWZ5IHRoYXQgdGhlcmUgYXJlbid0IGFueSBvdGhlciBtb2RpZmllZCBmdW5jdGlvbnMuIE5vcGUsIGxvb2tzIGxpa2UgYG10NzkyeF9pbml0X3dpcGh5YCBpcyB0aGUga2V5IGZ1bmN0aW9uIHRvIGludmVzdGlnYXRlIGZ1cnRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0ODkwLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjQ6NTkuMDQ3MDcxNTgxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDY2MDc1NDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyeF9pbml0X3dpcGh5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYz0xNzA9aW50IG10NzkyMV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIyNzpcXHRyZXQgPSBtdDc5MnhfaW5pdF93aXBoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyOC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTIwNj1pbnQgbXQ3OTI1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjYxOlxcdHJldCA9IG10NzkyeF9pbml0X3dpcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjYyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTQ2Mj1pbnQgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDYzOmludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NjQtc3RydWN0IGllZWU4MDIxMV9vcHMgKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jPTY1OT1FWFBPUlRfU1lNQk9MX0dQTChtdDc5Mnhfc2V0X2NvdmVyYWdlX2NsYXNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMtNjYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYzo2NjE6aW50IG10NzkyeF9pbml0X3dpcGh5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy02NjIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTc0NS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jOjc0NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfaW5pdF93aXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTc0Ny1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjU6MDAuNTEzMTU0NDc4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMTc3OTE1NDU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgYSBTaW1wbGUgRHJpdmVyIENoYW5nZSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBtdDc2X3BoeV9pbml0YCBhbmQgYG10NzkyeF9pbml0X3dpcGh5YCwgYW5kIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBgTVQ3OTIxVWAgYW5kIGBNVDc5MjVVYC4gVGhlIHBhdGNoIGl0c2VsZiBpcyB0cml2aWFsOiBpdCdzIGFkZGluZyBvciByZW1vdmluZyBhIGNvdXBsZSBvZiBmZWF0dXJlIGZsYWdzOlxuXG5gYGBjXG5cdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFO1xuXHRpZiAoIXBoeS1cdTAwM2Vub19hY3RpdmVfbW9uaXRvcilcblx0XHR3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I7XG5gYGBcblxuSXQgbG9va3MgbGlrZSB3ZSdyZSBqdXN0IGVuYWJsaW5nIG9yIGRpc2FibGluZyB0aGVzZSBmbGFncy4gVGhlIHF1ZXN0aW9uIGlzLCBzaG91bGQgSSBmdXp6IHRoaXM/IFRoZSBwcm9tcHQncyBndWlkZWxpbmVzIGFyZSBjbGVhcjogY2hhbmdlcyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb21tZW50cywgbG9nZ2luZywgb3IgcHVyZWx5IGRlY29yYXRpdmUgY29uc3RhbnRzIGdldCBhIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBDaGFuZ2VzIHRvIHVucmVhY2hhYmxlIGNvZGUgcGF0aHMgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBsaWtlIFVTQiBnYWRnZXQgbW9kZSwgd291bGQgYWxzbyBnZXQgYSBmYWxzZS4gSG93ZXZlciwgSWYgaXQgdG91Y2hlcyAqcmVhY2hhYmxlKiBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgKnRoZW4qIGl0J3MgYFdvcnRoRnV6emluZz10cnVlYC5cblxuVGhpcyBtb2RpZmljYXRpb24gY2xlYXJseSB0b3VjaGVzIGRyaXZlciBsb2dpYywgYW5kIFVTQiBlbXVsYXRpb24gbWVhbnMgaXQgKmlzKiByZWFjaGFibGUuIFNvLCB0ZWNobmljYWxseSwgYnkgdGhlIGJvb2ssIGl0J3MgYFdvcnRoRnV6emluZz10cnVlYC4gSG93ZXZlciwgbXkgZ3V0IGlzIHRlbGxpbmcgbWUgdGhpcyBpcyBhbiBpbmNyZWRpYmx5IHNpbXBsZSBjaGFuZ2UuIFdlJ3JlIGp1c3QgZW5hYmxpbmcvZGlzYWJsaW5nIGEgZmVhdHVyZS4gSXQgZG9lc24ndCBpbnRyb2R1Y2UgbXVjaCBjb21wbGV4aXR5LiBJdCdzIGEgYml0IG9mIGEgXCJ5ZWFoLCBidXQuLi5cIiBzaXR1YXRpb24uIFlldCwgSSdtIGdvaW5nIHRvIGhhdmUgdG8gbWFrZSB0aGUgZGVjaXNpb24gdGhhdCwgYmFzZWQgb24gdGhlIHJlcXVpcmVtZW50cywgbXkgYW5zd2VyIGlzIGBXb3J0aEZ1enppbmc9dHJ1ZWAsIGJ1dCBsZXQncyBkb3VibGUgY2hlY2sgdG8gc2VlIGlmIGBtdDc2X3BoeV9pbml0YCBpcyBjYWxsZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBqdXN0IGluIGNhc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MDM0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI1OjMwLjY5MTA3MjEyMloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE0OTExMDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfcGh5X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTQyNj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjQyNzptdDc2X3BoeV9pbml0KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNDI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz01NTE9aW50IG10NzZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBib29sIHZodCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy01NTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjU1NjpcXHRyZXQgPSBtdDc2X3BoeV9pbml0KHBoeSwgcGh5LVxcdTAwM2Vodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTU1Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTc0Nz1pbnQgbXQ3Nl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZfZGV2ICpkZXYsIGJvb2wgdmh0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTc1NS1cXHRtdDc2X3djaWRfaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VnbG9iYWxfd2NpZCwgcGh5LVxcdTAwM2ViYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjc1NjpcXHRyZXQgPSBtdDc2X3BoeV9pbml0KHBoeSwgaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy03NTctXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjU6MzEuMTA1OTg3ODQzWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzODY0NDk2MjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3NiBXaXJlbGVzcyBEcml2ZXIgSW5pdGlhbGl6YXRpb24gUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGUgY29kZSBpbiBxdWVzdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBwYXJ0IEknbSBpbnRlcmVzdGVkIGluLCBpcyBjYWxsZWQgZHVyaW5nIGBtdDc2X3JlZ2lzdGVyX2RldmljZWAgYW5kIGBtdDc2X3JlZ2lzdGVyX3BoeWAuIFRoYXQgbWVhbnMgaXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gR29vZCwgdGhhdCdzIHRoZSBmaXJzdCBodXJkbGUgY2xlYXJlZC5cblxuTm93LCBsZXQncyBnZXQgaW50byB0aGUgc3BlY2lmaWNzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBjb25maWd1cmF0aW9ucyBhcmUgcmVsZXZhbnQuIFRoZSB0ZXh0IG1lbnRpb25zIGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgIGFzIFVTQiBkcml2ZXJzLCBidXQgYXJlIHRob3NlICp0aGUgb25seSogb25lcyBmb3IgYG10NzZgPyBMZXQncyBzZWUuLi4gbG9va2luZyBiYWNrLCB0aGVyZSdzIGFsc28gYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc2MTVVYCAod2FpdCwgaXMgdGhlcmUgZXZlbiBhIFVTQiB2ZXJzaW9uIG9mIHRoZSA3NjE1PykgYW5kIHRoZW4sIHllcywgYE1UNzkyMVVgIGFuZCBgTVQ3OTI1VWAgYWdhaW4uXG5cblRoZSBwYXRjaCBpdHNlbGYgc3BlY2lmaWNhbGx5IGNoYW5nZXMgYG10NzkyeF9pbml0X3dpcGh5YCwgd2hpY2ggaXMsIG9mIGNvdXJzZSwgdXNlZCBieSBgbXQ3OTIxYCBhbmQgYG10NzkyNWAuIEJ1dCwgaGFuZyBvbiwgdGhlIGBtdDc2X3BoeV9pbml0YCBmdW5jdGlvbiAqaXMqIG1vZGlmaWVkLCBhbmQgdGhhdCBpcyB1c2VkIGJ5ICphbGwqIGBtdDc2YCBkcml2ZXJzLiBTbywgYW55IG9mIHRoZSBgbXQ3NmAgVVNCIGRyaXZlcnMgY291bGQgKnBvdGVudGlhbGx5KiB0cmlnZ2VyIHRoZSBtb2RpZmllZCBgbXQ3Nl9waHlfaW5pdGAgY29kZS4gSG93ZXZlciwgdGhlIGtleSBtb2RpZmljYXRpb24gdGFyZ2V0aW5nIGBtdDc5MnhfaW5pdF93aXBoeWAgbWFrZXMgYE1UNzkyMVVgIGFuZCBgTVQ3OTI1VWAgdGhlIG1vc3QgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIFRoZXkncmUgZGVmaW5pdGVseSB0aGUgYmVzdCBjYW5kaWRhdGVzLlxuXG5MZXQncyBxdWlja2x5IGNoZWNrIGRlcGVuZGVuY2llcyBmb3IgdGhvc2UgdHdvLiBUaGV5IGRlcGVuZCBvbiBgTUFDODAyMTFgIGFuZCBgVVNCYC4gQWxyaWdodCwgbm90aGluZyB1bmV4cGVjdGVkIHRoZXJlLiBTbywgeWVzLCB0aGUgY29uZmlncyBJIHdhbnQgdG8gZm9jdXMgb24gYXJlIGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgLlxuXG5Pa2F5LCB0aW1lIHRvIGZvcm11bGF0ZSBhIGNvbmNpc2UgcmVzcG9uc2UuIExldCdzIHNlZTpcblxuKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWUgLSB0aGlzIGlzIGNsZWFybHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBkcml2ZXIgbW9kaWZpY2F0aW9uLCB0aGF0J3Mgd29ydGggdGVzdGluZy5cbiogICAqKkZvY3VzU3ltYm9sczoqKiBgbXQ3Nl9waHlfaW5pdGAsIGBtdDc5MnhfaW5pdF93aXBoeWAgLSBUaGVzZSBhcmUgdGhlIGtleSBmdW5jdGlvbnMgbW9kaWZpZWQgYnkgdGhlIHBhdGNoLlxuKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgTVQ3OTIxVWAsIGBNVDc5MjVVYCAtIEJlY2F1c2UgdGhlc2UgY29uZmlncyByZXByZXNlbnQgdGhlIHJlbGV2YW50IFVTQiBkcml2ZXJzLCBJIHdhbnQgdG8gZW5hYmxlIGJvdGguXG4qICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS5cblxuVGhhdCBzaG91bGQgY292ZXIgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MzQ1LCJPdXRwdXRUb2tlbnMiOjEzMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyNTo0NC45NzA0ODgyNTZaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzk0OTkyODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMVVcIixcbiAgICBcIk1UNzkyNVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc2X3BoeV9pbml0XCIsXG4gICAgXCJtdDc5MnhfaW5pdF93aXBoeVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3Nl9waHlfaW5pdFwiLFxuICAgIFwibXQ3OTJ4X2luaXRfd2lwaHlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gbG9naWMgb2YgdGhlIE1UNzYgd2lyZWxlc3MgZHJpdmVyIHRvIGRpc2FibGUgdGhlIGFjdGl2ZSBtb25pdG9yIGZlYXR1cmUgZm9yIE1UNzkyeCBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBkcml2ZXIgdGhhdCBpcyByZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGVtdWxhdGlvbiAoTVQ3OTIxVSBhbmQgTVQ3OTI1VSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowmnk5s[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-22 20:13:10 +0000 UTC FinishedAt: 2026-07-22 20:25:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U", "MT7925U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U", "MT7925U" ], "series_id": "d03a8447-2c6e-47bf-9b13-bdc85096605b" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt76_phy_init", "mt792x_init_wiphy" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzZfcGh5X2luaXQmIzM0OywKICAgICYjMzQ7bXQ3OTJ4X2luaXRfd2lwaHkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNVDc2IHdpcmVsZXNzIGRyaXZlciB0byBkaXNhYmxlIHRoZSBhY3RpdmUgbW9uaXRvciBmZWF0dXJlIGZvciBNVDc5MnggZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgZHJpdmVyIHRoYXQgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFVTQiBlbXVsYXRpb24gKE1UNzkyMVUgYW5kIE1UNzkyNVUpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZTQ5OTU2NzE2MWE3ZjI2YTdmYmI0ODk2NTk3ZTc2MmRjZGVmNGRkM1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDIyIDIwOjIzOjQ1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xuaW5kZXggMTNjNGU4YWJlMjgxOTEuLmRhYTI5MDhkODQ0ZjA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcbkBAIC00MzksOCAmIzQzOzQzOSw5IEBAIG10NzZfcGh5X2luaXQoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuIFx0U0VUX0lFRUU4MDIxMV9ERVYoaHcsIGRldi1cdTAwM2VkZXYpO1xuIFx0U0VUX0lFRUU4MDIxMV9QRVJNX0FERFIoaHcsIHBoeS1cdTAwM2VtYWNhZGRyKTtcbiBcbi1cdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUiB8XG4tXHRcdFx0ICAgTkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0U7XG4mIzQzO1x0d2lwaHktXHUwMDNlZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0U7XG4mIzQzO1x0aWYgKCFwaHktXHUwMDNlbm9fYWN0aXZlX21vbml0b3IpXG4mIzQzO1x0XHR3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I7XG4gXHR3aXBoeS1cdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX0hBU19DSEFOTkVMX1NXSVRDSCB8XG4gXHRcdFx0V0lQSFlfRkxBR19TVVBQT1JUU19URExTIHxcbiBcdFx0XHRXSVBIWV9GTEFHX0FQX1VBUFNEO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmhcbmluZGV4IDA3OTU1NTU1Zjg0ZDgzLi41OTE5ODMwNzhjNmY1NyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaFxuQEAgLTg3MSw2ICYjNDM7ODcxLDcgQEAgc3RydWN0IG10NzZfcGh5IHtcbiBcdHN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiBtYWluX2NoYW5kZWY7XG4gXHRib29sIG9mZmNoYW5uZWw7XG4gXHRib29sIHJhZGFyX2VuYWJsZWQ7XG4mIzQzO1x0Ym9vbCBub19hY3RpdmVfbW9uaXRvcjtcbiBcbiBcdHN0cnVjdCBkZWxheWVkX3dvcmsgcm9jX3dvcms7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqcm9jX3ZpZjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmNcbmluZGV4IGI1MDgyNWVjY2RhZmVlLi42YTcxYTYxMzRhNTRmNSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jXG5AQCAtNzEyLDYgJiM0Mzs3MTIsNyBAQCBpbnQgbXQ3OTJ4X2luaXRfd2lwaHkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4gXG4gXHR3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0NIRURfU0NBTl9SQU5ET01fTUFDX0FERFIgfFxuIFx0XHRcdCAgIE5MODAyMTFfRkVBVFVSRV9TQ0FOX1JBTkRPTV9NQUNfQUREUjtcbiYjNDM7XHRwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vub19hY3RpdmVfbW9uaXRvciA9IHRydWU7XG4gXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksIE5MODAyMTFfRVhUX0ZFQVRVUkVfU0VUX1NDQU5fRFdFTEwpO1xuIFx0d2lwaHlfZXh0X2ZlYXR1cmVfc2V0KHdpcGh5LCBOTDgwMjExX0VYVF9GRUFUVVJFX0JFQUNPTl9SQVRFX0xFR0FDWSk7XG4gXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksIE5MODAyMTFfRVhUX0ZFQVRVUkVfQkVBQ09OX1JBVEVfSFQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjFVJiMzNDssCiAgICAmIzM0O01UNzkyNVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc2X3BoeV9pbml0JiMzNDssCiAgICAmIzM0O210NzkyeF9pbml0X3dpcGh5JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTQ5OTU2NzE2MWE3ZjI2YTdmYmI0ODk2NTk3ZTc2MmRjZGVmNGRkMwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDIyIDIwOjIzOjQ1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jCmluZGV4IDEzYzRlOGFiZTI4MTkxLi5kYWEyOTA4ZDg0NGYwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYwpAQCAtNDM5LDggJiM0Mzs0MzksOSBAQCBtdDc2X3BoeV9pbml0KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykKIAlTRVRfSUVFRTgwMjExX0RFVihodywgZGV2LSZndDtkZXYpOwogCVNFVF9JRUVFODAyMTFfUEVSTV9BRERSKGh3LCBwaHktJmd0O21hY2FkZHIpOwogCi0Jd2lwaHktJmd0O2ZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUiB8Ci0JCQkgICBOTDgwMjExX0ZFQVRVUkVfQVBfTU9ERV9DSEFOX1dJRFRIX0NIQU5HRTsKJiM0MzsJd2lwaHktJmd0O2ZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFOwomIzQzOwlpZiAoIXBoeS0mZ3Q7bm9fYWN0aXZlX21vbml0b3IpCiYjNDM7CQl3aXBoeS0mZ3Q7ZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SOwogCXdpcGh5LSZndDtmbGFncyB8PSBXSVBIWV9GTEFHX0hBU19DSEFOTkVMX1NXSVRDSCB8CiAJCQlXSVBIWV9GTEFHX1NVUFBPUlRTX1RETFMgfAogCQkJV0lQSFlfRkxBR19BUF9VQVBTRDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgKaW5kZXggMDc5NTU1NTVmODRkODMuLjU5MTk4MzA3OGM2ZjU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaApAQCAtODcxLDYgJiM0Mzs4NzEsNyBAQCBzdHJ1Y3QgbXQ3Nl9waHkgewogCXN0cnVjdCBjZmc4MDIxMV9jaGFuX2RlZiBtYWluX2NoYW5kZWY7CiAJYm9vbCBvZmZjaGFubmVsOwogCWJvb2wgcmFkYXJfZW5hYmxlZDsKJiM0MzsJYm9vbCBub19hY3RpdmVfbW9uaXRvcjsKIAogCXN0cnVjdCBkZWxheWVkX3dvcmsgcm9jX3dvcms7CiAJc3RydWN0IGllZWU4MDIxMV92aWYgKnJvY192aWY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMKaW5kZXggYjUwODI1ZWNjZGFmZWUuLjZhNzFhNjEzNGE1NGY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jCkBAIC03MTIsNiAmIzQzOzcxMiw3IEBAIGludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykKIAogCXdpcGh5LSZndDtmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfU0NIRURfU0NBTl9SQU5ET01fTUFDX0FERFIgfAogCQkJICAgTkw4MDIxMV9GRUFUVVJFX1NDQU5fUkFORE9NX01BQ19BRERSOwomIzQzOwlwaHktJmd0O210NzYtJmd0O25vX2FjdGl2ZV9tb25pdG9yID0gdHJ1ZTsKIAl3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksIE5MODAyMTFfRVhUX0ZFQVRVUkVfU0VUX1NDQU5fRFdFTEwpOwogCXdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9CRUFDT05fUkFURV9MRUdBQ1kpOwogCXdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9CRUFDT05fUkFURV9IVCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2NDAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAzMDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWVkaWF0ZWsgTVQ3NiBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCB0d2Vha3MgdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgdG91Y2hpbmcgYG1hYzgwMjExLmNgLCBgbXQ3Ni5oYCwgYW5kIGBtdDc5MnhfY29yZS5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBpbnRyb2R1Y2UgYSBgbm9fYWN0aXZlX21vbml0b3JgIGJvb2xlYW4gd2l0aGluIHRoZSBgc3RydWN0IG10NzZfcGh5YC4gVGhpcyBib29sZWFuIGlzIHRoZW4gdXNlZCB0byBjb25kaXRpb25hbGx5IGVuYWJsZSBvciBkaXNhYmxlIHRoZSBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmZWF0dXJlIGR1cmluZyB0aGUgYG10NzZfcGh5X2luaXRgIHByb2Nlc3MuICBFc3NlbnRpYWxseSwgaXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBkaXNhYmxpbmcgYWN0aXZlIG1vbml0b3IgbW9kZSBvbiB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCwgYnV0IGl0JiMzOTtzIGEgaGFyZHdhcmUtc3BlY2lmaWMgY2hhbmdlIHRvIHRoZSBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlci4gVGhlIHJlYWwgcXVlc3Rpb24gaW4gbXkgbWluZCwgZ2l2ZW4gdGhhdCB0aGlzIGFmZmVjdHMgYSB3aXJlbGVzcyBkcml2ZXIsIGlzICpob3cqIHJlYWNoYWJsZSBpcyB0aGlzIGRyaXZlciBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyAgTW9zdCBvZiB0aGVzZSBoYXJkd2FyZS1zcGVjaWZpYyB3aXJlbGVzcyBkcml2ZXJzLCBhcyBJIGtub3csIGFyZSBnZW5lcmFsbHkgbm90IGVhc2lseSBhY2Nlc3NpYmxlIHVubGVzcyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGVtdWxhdGlvbiBvciwgaWYgaXQmIzM5O3MgYSBVU0IgZHJpdmVyLCB0aHJvdWdoIHNvbWUgVVNCIGVtdWxhdGlvbiBzZXR1cC4KClNvLCB0aGUgbmV4dCB0aGluZyBJJiMzOTttIGRvaW5nIGlzIGNoZWNraW5nIGlmIHRoaXMgTVQ3NiBhY3R1YWxseSBoYXMgYSBVU0IgZHJpdmVyLiBJIGtub3cgYG10NzkyeGAgaXMgcGFydCBvZiBNVDc2LCBzbyBJJiMzOTtsbCBjaGVjayBpbnNpZGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY2AgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBpbmRpY2F0aW9uIG9mIFVTQiBzdXBwb3J0LiBUaGUgcGF0Y2ggaXRzZWxmIGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgbWVudGlvbiBVU0IsIGJ1dCBpdCYjMzk7cyBhIGNyaXRpY2FsIGZhY3RvciBpbiBkZXRlcm1pbmluZyBob3cgd2UgY2FuIHJlYWxpc3RpY2FsbHkgdGVzdCBvciBpbnRlcmFjdCB3aXRoIHRoaXMgY2hhbmdlIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudC4gSWYgaXQmIzM5O3MgVVNCLCB3ZSBoYXZlIHNvbWUgb3B0aW9ucy4gSWYgbm90LCBpdCBiZWNvbWVzIGEgbXVjaCBtb3JlIGludm9sdmVkIHNjZW5hcmlvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjIzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyeCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MDUyIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX01UNzZfQ09OTkFDX0xJQikgJiM0Mzs9IG10NzYtY29ubmFjLWxpYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX01UNzkyeF9MSUIpICYjNDM7PSBtdDc5MngtbGliLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTVQ3OTJ4X1VTQikgJiM0Mzs9IG10NzkyeC11c2Iub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0xMC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTI0PUNGTEFHU19tdDc2eDAyX3RyYWNlLm8gOj0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MjU6Q0ZMQUdTX210NzkyeF90cmFjZS5vIDo9IC1JJChzcmMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTI2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MzQ9bXQ3Ni1jb25uYWMtbGliLXkgOj0gbXQ3Nl9jb25uYWNfbWN1Lm8gbXQ3Nl9jb25uYWNfbWFjLm8gbXQ3Nl9jb25uYWMzX21hYy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTozNjptdDc5MngtbGliLXkgOj0gbXQ3OTJ4X2NvcmUubyBtdDc5MnhfbWFjLm8gbXQ3OTJ4X3RyYWNlLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6Mzc6XHRcdG10NzkyeF9kZWJ1Z2ZzLm8gbXQ3OTJ4X2RtYS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjM4Om10NzkyeC1saWItJChDT05GSUdfQUNQSSkgJiM0Mzs9IG10NzkyeF9hY3BpX3Nhci5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjM5Om10NzkyeC11c2IteSA6PSBtdDc5MnhfdXNiLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy02LSNpbmNsdWRlIFwmIzM0O210NzZfY29ubmFjX21jdS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jOjc6I2luY2x1ZGUgXCYjMzQ7bXQ3OTJ4X3JlZ3MuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2X2Nvbm5hY19tY3UuYy04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz03PW10NzkyMV9yZWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjExOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMi1cdG10NzZfd3IoZGV2LCBkZXYtXHUwMDNlbXQ3Ni5kZWJ1Z2ZzX3JlZywgdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxMzpcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE5PW10NzkyMV9yZWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIzOlx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNC1cdCp2YWwgPSBtdDc2X3JyKGRldiwgZGV2LVx1MDAzZW10NzYuZGVidWdmc19yZWcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI1Olx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MzM9bXQ3OTIxX2Z3X2RlYnVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzozNTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjM3Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NDI6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTQzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz00OD1tdDc5MjFfZndfZGVidWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTQ5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzo1MDpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTUxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz01Nz1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19md19kZWJ1ZywgbXQ3OTIxX2Z3X2RlYnVnX2dldCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NjA6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10NzkyeF90eF9zdGF0cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTkxPW10NzkyMV90eHB3cihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjkzOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVx1MDAzZXByaXZhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk0LVx0c3RydWN0IG10NzkyMV90eHB3ciB0eHB3cjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTc6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk4LVx0cmV0ID0gbXQ3OTIxX2dldF90eHB3cl9pbmZvKGRldiwgXHUwMDI2dHhwd3IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjk5Olx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xMDAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE0Mz1tdDc5MjFfcG1fc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNDU6XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNDYtXHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtID0gXHUwMDI2ZGV2LVx1MDAzZXBtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xNzY9bXQ3OTIxX3BtX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNzcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE3ODpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE3OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTg4PW10NzkyMV9kZWVwX3NsZWVwX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE4OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTkwOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTkxLVx0c3RydWN0IG10NzZfY29ubmFjX3BtICpwbSA9IFx1MDAyNmRldi1cdTAwM2VwbTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE5ODpcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTk5LVx0aWYgKHBtLVx1MDAzZWRzX2VuYWJsZV91c2VyID09IGVuYWJsZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjA1LW91dDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMDY6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIwNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjEyPW10NzkyMV9kZWVwX3NsZWVwX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMTMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIxNDpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIxNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjIxPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2RzLCBtdDc5MjFfZGVlcF9zbGVlcF9nZXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjQ6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcG1faWRsZV90aW1lb3V0LCBtdDc5MnhfcG1faWRsZV90aW1lb3V0X2dldCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjU6XHRcdFx0IG10NzkyeF9wbV9pZGxlX3RpbWVvdXRfc2V0LCBcJiMzNDslbGxkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MjI3PXN0YXRpYyBpbnQgbXQ3OTIxX2NoaXBfcmVzZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIyOTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzMC1cdGludCByZXQgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMzQtXHRcdC8qIFJlc2V0IHdpZmlzeXMgZGlyZWN0bHkuICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjM1Olx0XHRtdDc5MnhfcmVzZXQoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzNi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzOC1cdFx0LyogQ29sbGVjdCB0aGUgY29yZSBkdW1wIGJlZm9yZSByZXNldCB3aWZpc3lzLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIzOTpcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDAtXHRcdHJldCA9IG10NzZfY29ubmFjX21jdV9jaGlwX2NvbmZpZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjQxOlx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI0Mi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTI1MT1tdDc5MjFzX3NjaGVkX3F1b3RhX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI1Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjUzOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVx1MDAzZXByaXZhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI1NC1cdHN0cnVjdCBtdDc2X3NkaW8gKnNkaW8gPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5zZGlvO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjY0OmludCBtdDc5MjFfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjY1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjcxLVx0XHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDt4bWl0LXF1ZXVlc1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNzI6XHRcdFx0XHRcdCAgICBkaXIsIG10NzkyeF9xdWV1ZXNfcmVhZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjczLVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNzctXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVx1MDAzZW10NzYuZGV2LCBcJiMzNDthY3FcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNzg6XHRcdFx0XHQgICAgbXQ3OTJ4X3F1ZXVlc19hY3EpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI3OS1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3R4cG93ZXJfc2t1XCYjMzQ7LCBkaXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjgwLVx0XHRcdFx0ICAgIG10NzkyMV90eHB3cik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjgxOlx0ZGVidWdmc19jcmVhdGVfZmlsZShcJiMzNDt0eF9zdGF0c1wmIzM0OywgMDQwMCwgZGlyLCBkZXYsIFx1MDAyNm10NzkyeF90eF9zdGF0c19mb3BzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yODItXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2Z3X2RlYnVnXCYjMzQ7LCAwNjAwLCBkaXIsIGRldiwgXHUwMDI2Zm9wc19md19kZWJ1Zyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI4Ny1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3J1bnRpbWVfcG1fc3RhdHNcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyODg6XHRcdFx0XHQgICAgbXQ3OTJ4X3BtX3N0YXRzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yODktXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFwmIzM0O2RlZXAtc2xlZXBcJiMzNDssIDA2MDAsIGRpciwgZGV2LCBcdTAwMjZmb3BzX2RzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM9MTQ9c3RhdGljIHNzaXplX3QgbXQ3OTIxX3RoZXJtYWxfdGVtcF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTktXHRjYXNlIDA6IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMDpcdFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIxOlx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqbWRldiA9IHBoeS1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjItXHRcdGludCB0ZW1wZXJhdHVyZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyNDpcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjUtXHRcdHRlbXBlcmF0dXJlID0gbXQ3OTIxX21jdV9nZXRfdGVtcGVyYXR1cmUocGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyNjpcdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTQzPUFUVFJJQlVURV9HUk9VUFMobXQ3OTIxX2h3bW9uKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo0NTpzdGF0aWMgaW50IG10NzkyMV90aGVybWFsX2luaXQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjY0OmludCBtdDc5MjFfbWFjX2luaXQoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy02NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTc3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgMjsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6Nzg6XHRcdG10NzkyeF9tYWNfaW5pdF9iYW5kKGRldiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTgyPUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tYWNfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6ODQ6c3RhdGljIGludCBfX210NzkyMV9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtODUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy05MS1cdG10NzZfd3IoZGV2LCBNVF9TV0RFRl9NT0RFLCBNVF9TV0RFRl9OT1JNQUxfTU9ERSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6OTI6XHRyZXQgPSBtdDc5MnhfbWN1X2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy05My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMDk6c3RhdGljIGludCBtdDc5MjFfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTExMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTExOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMjA6XHRcdG10NzkyeF9pbml0X3Jlc2V0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTIxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYz0xMzE9c3RhdGljIHZvaWQgbXQ3OTIxX2luaXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxMzM6XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEzNC1cdFx0XHRcdFx0ICAgICAgaW5pdF93b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTQyLVx0bXQ3OTIxX3NldF9zdHJlYW1faGVfY2FwcyhcdTAwMjZkZXYtXHUwMDNlcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxNDM6XHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxNzA6aW50IG10NzkyMV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNzEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNzctXHRkZXYtXHUwMDNlbXQ3Ni5waHkucHJpdiA9IFx1MDAyNmRldi1cdTAwM2VwaHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTc4Olx0ZGV2LVx1MDAzZW10NzYudHhfd29ya2VyLmZuID0gbXQ3OTJ4X3R4X3dvcmtlcjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTgwOlx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXBtLnBzX3dvcmssIG10NzkyeF9wbV9wb3dlcl9zYXZlX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE4MTpcdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcG0ud2FrZV93b3JrLCBtdDc5MnhfcG1fd2FrZV93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xODItXHRzcGluX2xvY2tfaW5pdChcdTAwMjZkZXYtXHUwMDNlcG0ud2FrZS5sb2NrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTg4LVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2ZGV2LVx1MDAzZXBtLnR4cV9sb2NrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxODk6XHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xOTAtXHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZkZXYtXHUwMDNlcGh5LnNjYW5fd29yaywgbXQ3OTIxX3NjYW5fd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwMi1cdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNlcGh5LnJvY193b3JrLCBtdDc5MjFfcm9jX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIwMzpcdHRpbWVyX3NldHVwKFx1MDAyNmRldi1cdTAwM2VwaHkucm9jX3RpbWVyLCBtdDc5Mnhfcm9jX3RpbWVyLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMDQtXHRpbml0X3dhaXRxdWV1ZV9oZWFkKFx1MDAyNmRldi1cdTAwM2VwaHkucm9jX3dhaXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjIxOlx0bXQ3OTJ4X2luaXRfYWNwaV9zYXIoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjIzOlx0cmV0ID0gbXQ3OTJ4X2luaXRfd2NpZChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyNC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMjc6XHRyZXQgPSBtdDc5MnhfaW5pdF93aXBoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjI4LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE5OmJvb2wgbXQ3OTIxX21hY193dGJsX3VwZGF0ZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBpbnQgaWR4LCB1MzIgbWFzaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz0yOD1zdGF0aWMgdTMyIG10NzkyMV9tYWNfd3RibF9sbWFjX2FkZHIoaW50IGlkeCwgdTggb2Zmc2V0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MzM6c3RhdGljIHZvaWQgbXQ3OTIxX21hY19zdGFfcG9sbChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMzQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQxLVx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjQyOlx0c3RydWN0IG10NzkyeF9zdGEgKm1zdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0MzpcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDQtXHR1MzIgdHhfdGltZVtJRUVFODAyMTFfTlVNX0FDU10sIHJ4X3RpbWVbSUVFRTgwMjExX05VTV9BQ1NdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY1LVx0XHRtbGluayA9IGxpc3RfZmlyc3RfZW50cnkoXHUwMDI2c3RhX3BvbGxfbGlzdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY2Olx0XHRcdFx0XHQgc3RydWN0IG10NzkyeF9saW5rX3N0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY3LVx0XHRcdFx0XHQgd2NpZC5wb2xsX2xpc3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6Njg6XHRcdG1zdGEgPSBjb250YWluZXJfb2YobWxpbmssIHN0cnVjdCBtdDc5Mnhfc3RhLCBkZWZsaW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY5LVx0XHRsaXN0X2RlbF9pbml0KFx1MDAyNm1saW5rLVx1MDAzZXdjaWQucG9sbF9saXN0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz0xNjg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTY5Om10NzkyMV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xNzctXHRzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5waHk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxNzg6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3OS1cdHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE4NS1cdHUzMiByeGQ0ID0gbGUzMl90b19jcHUocnhkWzRdKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE4NjpcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE4NzpcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTg4LVx0dTE2IHNlcV9jdHJsID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMTQtXHRpZHggPSBGSUVMRF9HRVQoTVRfUlhEMV9OT1JNQUxfV0xBTl9JRFgsIHJ4ZDEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MjE1Olx0c3RhdHVzLVx1MDAzZXdjaWQgPSBtdDc5MnhfcnhfZ2V0X3djaWQoZGV2LCBpZHgsIHVuaWNhc3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjE3LVx0aWYgKHN0YXR1cy1cdTAwM2V3Y2lkKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMTg6XHRcdG1saW5rID0gY29udGFpbmVyX29mKHN0YXR1cy1cdTAwM2V3Y2lkLCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLCB3Y2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjIxOTpcdFx0bXN0YSA9IGNvbnRhaW5lcl9vZihtbGluaywgc3RydWN0IG10NzkyeF9zdGEsIGRlZmxpbmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjIwLVx0XHRtdDc2X3djaWRfYWRkX3BvbGwoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFx1MDAyNm1saW5rLVx1MDAzZXdjaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjIyMzpcdG10NzkyeF9nZXRfc3RhdHVzX2ZyZXFfaW5mbyhzdGF0dXMsIGNoZnJlcSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDMxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDMyOlx0bXQ3OTJ4X21hY19hc3NvY19yc3NpKGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0NDc6dm9pZCBtdDc5MjFfbWFjX2FkZF90eHMoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ0OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0NDk6XHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ1MC1cdHN0cnVjdCBtdDc2X3djaWQgKndjaWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDczOlx0bWxpbmsgPSBjb250YWluZXJfb2Yod2NpZCwgc3RydWN0IG10NzkyeF9saW5rX3N0YSwgd2NpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDg1OnN0YXRpYyB2b2lkIG10NzkyMV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDg2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01MTQtXHRcdGlmIChpbmZvIFx1MDAyNiBNVF9UWF9GUkVFX1BBSVIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjUxNTpcdFx0XHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTUxNi1cdFx0XHR1MTYgaWR4O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTUyNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjUyNTpcdFx0XHRtbGluayA9IGNvbnRhaW5lcl9vZih3Y2lkLCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLCB3Y2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTUyNi1cdFx0XHRtdDc2X3djaWRfYWRkX3BvbGwoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIFx1MDAyNm1saW5rLVx1MDAzZXdjaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU2Mj1ib29sIG10NzkyMV9yeF9jaGVjayhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NjMte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTY0Olx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01NjUtXHRfX2xlMzIgKnJ4ZCA9IChfX2xlMzIgKilkYXRhO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU4Nj12b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjU4OTpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzkyeF9kZXYsIG10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTkwLVx0X19sZTMyICpyeGQgPSAoX19sZTMyICopc2tiLVx1MDAzZWRhdGE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NjMwPW10NzkyMV92aWZfY29ubmVjdF9pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYzMzpcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjM0Olx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG12aWYtXHUwMDNlcGh5LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYzNS1cdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gbXQ3Nl9odyhkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTY1NT12b2lkIG10NzkyMV9tYWNfcmVzZXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NTYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjU3Olx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY1OC1cdFx0XHRcdFx0ICAgICAgcmVzZXRfd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjczLVx0XHRtdXRleF9sb2NrKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm11dGV4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY3NDpcdFx0cmV0ID0gbXQ3OTJ4X2Rldl9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjc1LVx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZW10NzYubXV0ZXgpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTcwOD12b2lkIG10NzkyMV9jb3JlZHVtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTcwOS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3MTA6XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzExLVx0Y2hhciAqZHVtcCwgKmRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3MTM6XHRkZXYgPSAoc3RydWN0IG10NzkyeF9kZXYgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9kZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MTQtXHRcdFx0XHRcdFx0Y29yZWR1bXAud29yay53b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3NTI6XHRtdDc5MnhfcmVzZXQoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzUzLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz03NTY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjc1NzptdDc5MjFfdXNiX3NkaW9fd3JpdGVfdHh3aShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzU4LVx0XHRcdCAgIGVudW0gbXQ3Nl90eHFfaWQgcWlkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTc2OT1pbnQgbXQ3OTIxX3VzYl9zZGlvX3R4X3ByZXBhcmVfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdm9pZCAqdHh3aV9wdHIsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzczLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjc3NDpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzkyeF9kZXYsIG10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzc1LVx0c3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvID0gSUVFRTgwMjExX1NLQl9DQih0eF9pbmZvLVx1MDAzZXNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzkwLVx0aWYgKHN0YSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzkxOlx0XHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YSA9IChzdHJ1Y3QgbXQ3OTJ4X3N0YSAqKXN0YS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc5Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDItXHR0eXBlID0gbXQ3Nl9pc19zZGlvKG1kZXYpID8gTVQ3OTIxX1NESU9fREFUQSA6IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4MDM6XHRtdDc5Mnhfc2tiX2FkZF91c2Jfc2Rpb19oZHIoZGV2LCBza2IsIHR5cGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODA0LVx0cGFkID0gcm91bmRfdXAoc2tiLVx1MDAzZWxlbiwgNCkgLSBza2ItXHUwMDNlbGVuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTgzOD1ib29sIG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHU4ICp1cGRhdGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04Mzkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQwOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NDI6XHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQzLVx0bXQ3OTIxX21hY19zdGFfcG9sbChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQ0Olx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg0NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz04NTE9dm9pZCBtdDc5MjFfc2V0X2lwdjZfbnNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NTIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODUzOlx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg1NC1cdFx0XHRcdFx0ICAgICAgaXB2Nl9uc193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NjQ6XHRcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NjUtXHRcdHJldCA9IG10NzZfbWN1X3NrYl9zZW5kX21zZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Niwgc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY2LVx0XHRcdFx0XHQgICAgTUNVX1VOSV9DTUQoT0ZGTE9BRCksIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODY3Olx0XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0xMz1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQ6bXQ3OTIxX2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTE1LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE5Njp2b2lkIG10NzkyMV9zZXRfc3RyZWFtX2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xOTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MjI3OmludCBfX210NzkyMV9zdGFydChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTIyOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNDg6XHRtdDc5MnhfbWFjX3Jlc2V0X2NvdW50ZXJzKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjQ5LVx0c2V0X2JpdChNVDc2X1NUQVRFX1JVTk5JTkcsIFx1MDAyNm1waHktXHUwMDNlc3RhdGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0yNzI9c3RhdGljIGludCBtdDc5MjFfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjczLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzQ6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjc1LVx0aW50IGVycjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mjc3Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjc4LVx0ZXJyID0gX19tdDc5MjFfc3RhcnQocGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzk6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTI4ND1zdGF0aWMgdm9pZCBtdDc5MjFfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgYm9vbCBzdXNwZW5kKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mjg2Olx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IG10NzkyeF9od19kZXYoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4Ny1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODktXHRpZiAobXQ3Nl9pc19tbWlvKFx1MDAyNmRldi1cdTAwM2VtdDc2KSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI5MDpcdFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yOTEtXHRcdGVyciA9IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwoZGV2LCBFWFRfQ01EX1JBRElPX09GRl9MRUQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI5MjpcdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yOTMtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI5Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTc6XHRtdDc5Mnhfc3RvcChodywgZmFsc2UpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI5OC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTMwMT1tdDc5MjFfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zMDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwMzpcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwNDpcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMDU6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA2LVx0c3RydWN0IG10NzZfdHhxICptdHhxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zMDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzA5Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zMTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1NC1cdElOSVRfV09SSyhcdTAwMjZtdmlmLVx1MDAzZWNzYV93b3JrLCBtdDc5MjFfY3NhX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM1NTpcdHRpbWVyX3NldHVwKFx1MDAyNm12aWYtXHUwMDNlY3NhX3RpbWVyLCBtdDc5MnhfY3NhX3RpbWVyLCAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNTYtb3V0OlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM1NzpcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzU4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zNjI9c3RhdGljIHZvaWQgbXQ3OTIxX3JvY19pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzY1Olx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzY2Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IHByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzY3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzcxOnZvaWQgbXQ3OTIxX3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozNzM6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXHUwMDI2ZGV2LVx1MDAzZXBoeTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTM4Nz12b2lkIG10NzkyMV9yb2Nfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzg4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozODk6XHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozOTE6XHRwaHkgPSAoc3RydWN0IG10NzkyeF9waHkgKiljb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9waHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkyLVx0XHRcdFx0XHRcdHJvY193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mzk0Olx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzk1LVx0aWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoTVQ3Nl9TVEFURV9ST0MsIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXN0YXRlKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM5NjpcdFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzk3LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQwMS1cdFx0XHRcdFx0ICAgIG10NzkyMV9yb2NfaXRlciwgcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MDI6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MDMtXHRpZWVlODAyMTFfcmVtYWluX29uX2NoYW5uZWxfZXhwaXJlZChwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vodyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQwNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MDY6c3RhdGljIGludCBtdDc5MjFfYWJvcnRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDA3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQxMzpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQxNC1cdGlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoTVQ3Nl9TVEFURV9ST0MsIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXN0YXRlKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTUtXHRcdGVyciA9IG10NzkyMV9tY3VfYWJvcnRfcm9jKHBoeSwgdmlmLCBwaHktXHUwMDNlcm9jX3Rva2VuX2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MTY6XHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShwaHktXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MjE6c3RhdGljIGludCBtdDc5MjFfc2V0X3JvYyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQyMjpcdFx0XHQgIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDIzLVx0XHRcdCAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00NTE9c3RhdGljIGludCBtdDc5MjFfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDU3Olx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDU4Olx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ1OS1cdGludCBlcnI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ2MTpcdG10NzkyeF9tdXRleF9hY3F1aXJlKHBoeS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQ2Mi1cdGVyciA9IG10NzkyMV9zZXRfcm9jKHBoeSwgbXZpZiwgY2hhbiwgZHVyYXRpb24sIE1UNzkyMV9ST0NfUkVRX1JPQyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDYzOlx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVx1MDAzZWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDY0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz00Njg9c3RhdGljIGludCBtdDc5MjFfY2FuY2VsX3JlbWFpbl9vbl9jaGFubmVsKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NzAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ3MTpcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ3MjpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NzMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ3Nz1pbnQgbXQ3OTIxX3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00Nzgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjQ3OTpcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVx1MDAzZXByaXY7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTkxMwoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDk1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoOiBNZWRpYXRlayBNVDc2IERyaXZlciBGZWF0dXJlIENoYW5nZSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBzcG90dGVkIGBtdDc5MngtdXNiLXlgIGluIHRoZSBgbXQ3NmAgTWFrZWZpbGUuIEFuZCBgbXQ3OTIxYCBpcyBzcGVjaWZpY2FsbHkgYSBkcml2ZXIgbGlzdGVkIHRoZXJlLiBUaGF0IG1lYW5zIHRoZSBgbXQ3NmAgZmFtaWx5IGhhcyBhIFVTQiBkcml2ZXIgdGhhdCBpcyBhIGNhbmRpZGF0ZSBmb3IgZnV6emluZy4gVGhpcyBwYXRjaCBtb2RpZmllcyBgbWFjODAyMTEuY2AgYW5kIGBtdDc5MnhfY29yZS5jYCwgd2hpY2ggaW1tZWRpYXRlbHkgcmFpc2VzIG15IGludGVyZXN0IOKAkyBhbnl0aGluZyB0b3VjaGluZyBjb3JlIGZ1bmN0aW9uYWxpdHkgaXMgd29ydGggYSBjbG9zZXIgbG9vay4KCkkga25vdyBgbXQ3NmAgaGFzIG90aGVyIFVTQiBkcml2ZXJzIGxpa2UgYG10NzZ4MDItdXNiYCwgYG10NzZ4MnVgLCBhbmQgYG10NzkyMXVgLCBhbmQgYmVjYXVzZSBpdCYjMzk7cyBhIFVTQiBkcml2ZXIsIHRoZSBVU0IgZ2FkZ2V0IGZyYW1ld29yayAodmhjaSkgb3BlbnMgdXAgZnV6emluZyBwb3NzaWJpbGl0aWVzIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLgoKTm93LCBsZXQmIzM5O3MgZGlzc2VjdCB0aGUgY29kZSBjaGFuZ2VzIG1vcmUgY2FyZWZ1bGx5LiBJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBkaXNhYmxlcyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmb3IgYG10NzkyeGAgZGV2aWNlcy4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGl0JiMzOTtzIGEgcmVsYXRpdmVseSBzaW1wbGUgb25lLCBvbmx5IHJlbW92aW5nIGEgZmVhdHVyZSBmbGFnIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIHBhdGhzIGluIGBtdDc5MnhfaW5pdF93aXBoeWAgYW5kIGBtdDc2X3BoeV9pbml0YC4gQmFzaWNhbGx5LCBzZXR0aW5nIGEgYm9vbGVhbiBhbmQgY2hlY2tpbmcgaXQuCgpUaGUgcmVhbCBxdWVzdGlvbiBpcywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyBJdCBpc24mIzM5O3QgYWRkaW5nIGNvbXBsZXggbmV3IGxvZ2ljLCBqdXN0IHJlbW92aW5nIGEgZmVhdHVyZSBhZHZlcnRpc2VtZW50LiBIb3dldmVyLCBpdCAqaXMqIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgVVNCLXJlYWNoYWJsZSBkcml2ZXIsIGFuZCBJIGtub3cgdGhhdCBldmVuIHNtYWxsIGNoYW5nZXMgY2FuIHNvbWV0aW1lcyBoYXZlIHVuZXhwZWN0ZWQgaW1wbGljYXRpb25zIGluIGNvbXBsZXggc3lzdGVtcy4gSXQmIzM5O3Mgd29ydGggZGlnZ2luZyBpbnRvIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGBtdDc2YCBhbmQgYG10NzkyMXVgIHRvIHNlZSBob3cgdGhpcyBmZWF0dXJlIGZsYWcgaW1wYWN0cyB0aGUgb3ZlcmFsbCBkcml2ZXIgYmVoYXZpb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMVUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnPTE3PWNvbmZpZyBNVDc5MjFTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjg6Y29uZmlnIE1UNzkyMVVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMjktXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MjFVIChVU0IpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTQ1NwoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggdGhhdCBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGNoZWNrOgoKKipFeGFtaW5pbmcgdGhlIE1UNzkyMSBhbmQgTVQ3OTJ4IEtjb25maWcgRGVwZW5kZW5jaWVzKioKCkFscmlnaHQsIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGUgYE1UNzkyMVVgIGFuZCBgTVQ3OTJ4YCB3aXJlbGVzcyBkcml2ZXJzIGFyZSBjb25maWd1cmVkIHdpdGhpbiB0aGUgTWVkaWF0ZWsgZnJhbWV3b3JrLiBNeSBmaXJzdCBzdG9wIHdpbGwgYmUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWdgLiBUaGlzIEtjb25maWcgZmlsZSB3aWxsIGJlIHRoZSBjZW50cmFsIHBvaW50IG9mIHRydXRoIGZvciBob3cgdGhlc2UgZHJpdmVycyBhcmUgYnJvdWdodCBpbnRvIHRoZSBrZXJuZWwgYnVpbGQuIEkmIzM5O2xsIGJlIGxvb2tpbmcgc3BlY2lmaWNhbGx5IGZvciBhbnkgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzIHJlbGF0ZWQgdG8gYE1UNzkyMVVgIGFuZCB0aGUgYnJvYWRlciBgTVQ3OTJ4YCBmYW1pbHkuIFRoZXNlIGRlcGVuZGVuY2llcyBjb3VsZCBpbnZvbHZlIG90aGVyIGtlcm5lbCBmZWF0dXJlcywgaGFyZHdhcmUgY29uZmlndXJhdGlvbnMsIG9yIGV2ZW4gc3BlY2lmaWMgTWVkaWF0ZWsgcGxhdGZvcm0gZGVmaW5lcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBuZWVkcyB0byBiZSBlbmFibGVkIG9yIGRlZmluZWQgdG8gZW5zdXJlIHByb3BlciBzdXBwb3J0IGZvciB0aGVzZSBwYXJ0aWN1bGFyIHdpcmVsZXNzIGNoaXBzLiBUaGlzIHdpbGwgYWxsb3cgbWUgdG8gdHJhY2sgZG93biBob3cgdGhlc2UgY2hpcHMgYXJlIGltcGxlbWVudGVkIGluIHRoZSB3aXJlbGVzcyBzdGFjay4gVGhlIGdvYWwgaGVyZSBpcyB0byBnZXQgYSBoYW5kbGUgb24gd2hhdCBvdGhlciBzZXR0aW5ncyB3aWxsIGVuYWJsZSBwcm9wZXIgYnVpbGQgb3B0aW9ucyBmb3IgdGhlc2UgY29tcG9uZW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3OTIxX0NPTU1PTlxuICAgMzpcdFx0dHJpc3RhdGVcbiAgIDQ6XHRcdHNlbGVjdCBNVDc5MnhfTElCXG4gICA1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgIDY6XHRcbiAgIDc6XHRjb25maWcgTVQ3OTIxRVxuICAgODpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuICAgOTpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMTA6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMTE6XHRcdGRlcGVuZHMgb24gUENJXG4gIDEyOlx0XHRoZWxwXG4gIDEzOlx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFFIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMTQ6XHRcbiAgMTU6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgTVQ3OTIxU1xuICAxODpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxUyAoU0RJTykgc3VwcG9ydFwmIzM0O1xuICAxOTpcdFx0c2VsZWN0IE1UNzZfU0RJT1xuICAyMDpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMjE6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMjI6XHRcdGRlcGVuZHMgb24gTU1DXG4gIDIzOlx0XHRoZWxwXG4gIDI0Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFTIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMjU6XHRcbiAgMjY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMjc6XHRcbiAgMjg6XHRjb25maWcgTVQ3OTIxVVxuICAyOTpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4gIDMwOlx0XHRzZWxlY3QgTVQ3OTJ4X1VTQlxuICAzMTpcdFx0c2VsZWN0IE1UNzkyMV9DT01NT05cbiAgMzI6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMzM6XHRcdGRlcGVuZHMgb24gVVNCXG4gIDM0Olx0XHRoZWxwXG4gIDM1Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFVIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cbiAgMzY6XHRcbiAgMzc6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjMzNwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDMyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1UNzkyMVUgVVNCIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGBNVDc5MjFVYCBVU0IgZHJpdmVyLiBTZWVtcyBsaWtlIGl0JiMzOTtzIHByaW1hcmlseSB0b3VjaGluZyBgbXQ3Nl9waHlfaW5pdGAgYW5kIGBtdDc5MnhfaW5pdF93aXBoeWAsIGJvdGggb2Ygd2hpY2ggYXJlIGNyaXRpY2FsIGR1cmluZyBkZXZpY2UgaW5pdGlhbGl6YXRpb24g4oCTIHRoZSB1c3VhbCBzdXNwZWN0cy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCAmIzM0O0lzIHRoaXMgZnV6emFibGUsIGFuZCBpcyBpdCB3b3J0aCB0aGUgZWZmb3J0PyYjMzQ7CgpUaGUgcGF0Y2ggaXRzZWxmIGlzIHJpZGljdWxvdXNseSBzaW1wbGU7IGl0JiMzOTtzIGp1c3Qgc2V0dGluZyBhIGNvdXBsZSBvZiBmZWF0dXJlIGZsYWdzOiBzZXR0aW5nICBgTkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0VgIGFuZCBwb3RlbnRpYWxseSBzZXR0aW5nIGBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1JgLCBhbmQgaXQgYWxzbyBzZXRzIGBwaHktJmd0O210NzYtJmd0O25vX2FjdGl2ZV9tb25pdG9yID0gdHJ1ZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYnV0IGl0JiMzOTtzIGp1c3QgZmxpcHBpbmcgYSBmZXcgYml0cy4gRnV6emluZyAqdGhpcyBzcGVjaWZpYyBjb2RlKiBpcyB1bmxpa2VseSB0byB1bmNvdmVyIGFueXRoaW5nIGludGVyZXN0aW5nIGJlY2F1c2UgdGhlIGxvZ2ljIGlzIHNvIHRyaXZpYWwuIEJ1dC4uLiBpdCBkb2VzIG1vZGlmeSBkcml2ZXIgYmVoYXZpb3IuIEl0JiMzOTtzIG5vdyAqbm90KiBhZHZlcnRpc2luZyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYC4KCklmIHRoZSBnb2FsIGlzIHRvIGZ1enogdGhlIGRyaXZlciBlZmZlY3RpdmVseSwgZm9jdXNpbmcgb24gYG10NzZfcGh5X2luaXRgIGFuZCBgbXQ3OTJ4X2luaXRfd2lwaHlgIGlzIHRoZSB3YXkgdG8gZ28uIEhvd2V2ZXIsIGEgcXVpY2sgcmVtaW5kZXI6IGBtdDc2X3BoeV9pbml0YCBpcyBhIGdlbmVyYWwgZnVuY3Rpb24gdXNlZCBhY3Jvc3MgKmFsbCogYG10NzZgIGRyaXZlcnMuIGBtdDc5MnhfaW5pdF93aXBoeWAsIGhvd2V2ZXIsIGlzIHNwZWNpZmljIHRvIHRoZSBgbXQ3OTJ4YCBmYW1pbHkuIE5vdywgSSBuZWVkIHRvIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIgZHJpdmVycyB0aGF0IHVzZSB0aGlzIGBtdDc5MnhgIHByZWZpeCwgdG8gc2VlIGlmIHRoZSBmdXp6aW5nIGVmZm9ydCBpcyBiZXN0IGFwcGxpZWQgdG8gdGhlIHNwZWNpZmljIGNoaXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwOTUKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBkaXZlIGludG8gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZSwgc3BlY2lmaWNhbGx5IGxvb2tpbmcgZm9yIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCBkZWZpbmVzIHRoZSBidWlsZCBvcHRpb25zIGZvciB0aGF0IE1lZGlhdGVrIE1UNzkyNSB3aXJlbGVzcyBkcml2ZXIuIEkmIzM5O2Qgc3RhcnQgd2l0aCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ2AsIG9yIHNvbWV0aGluZyB2ZXJ5IHNpbWlsYXIsIGFzIHRoYXQmIzM5O3MgdXN1YWxseSB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgY29uZmlndXJhdGlvbiBsaXZlcy4gR290dGEgYmUgZWZmaWNpZW50IGhlcmUuIFRoaXMgS2NvbmZpZyBmaWxlIHdpbGwgYmUgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaXMgYmVpbmcgY29tcGlsZWQsIHdoYXQgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIGFuZCBhbnkgZGVwZW5kZW5jaWVzIGl0IG1pZ2h0IGhhdmUuIFVuZGVyc3RhbmRpbmcgdGhpcyBmaWxlIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBzeXN0ZW0gZm9yIHRoZSBkcml2ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7YWdnLXJ4LmMmIzM0OywKICAgICYjMzQ7Y2hhbm5lbC5jJiMzNDssCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtkbWEuYyYjMzQ7LAogICAgJiMzNDtkbWEuaCYjMzQ7LAogICAgJiMzNDtlZXByb20uYyYjMzQ7LAogICAgJiMzNDttYWM4MDIxMS5jJiMzNDssCiAgICAmIzM0O21jdS5jJiMzNDssCiAgICAmIzM0O21taW8uYyYjMzQ7LAogICAgJiMzNDttdDc2LmgmIzM0OywKICAgICYjMzQ7bXQ3Nl9jb25uYWMuaCYjMzQ7LAogICAgJiMzNDttdDc2X2Nvbm5hYzJfbWFjLmgmIzM0OywKICAgICYjMzQ7bXQ3Nl9jb25uYWMzX21hYy5jJiMzNDssCiAgICAmIzM0O210NzZfY29ubmFjM19tYWMuaCYjMzQ7LAogICAgJiMzNDttdDc2X2Nvbm5hY19tYWMuYyYjMzQ7LAogICAgJiMzNDttdDc2X2Nvbm5hY19tY3UuYyYjMzQ7LAogICAgJiMzNDttdDc2X2Nvbm5hY19tY3UuaCYjMzQ7LAogICAgJiMzNDttdDc2eDAyLmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9iZWFjb24uYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX2Rmcy5jJiMzNDssCiAgICAmIzM0O210NzZ4MDJfZGZzLmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9kbWEuaCYjMzQ7LAogICAgJiMzNDttdDc2eDAyX2VlcHJvbS5jJiMzNDssCiAgICAmIzM0O210NzZ4MDJfZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9tYWMuYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX21hYy5oJiMzNDssCiAgICAmIzM0O210NzZ4MDJfbWN1LmMmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9tY3UuaCYjMzQ7LAogICAgJiMzNDttdDc2eDAyX21taW8uYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3BoeS5jJiMzNDssCiAgICAmIzM0O210NzZ4MDJfcGh5LmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl9yZWdzLmgmIzM0OywKICAgICYjMzQ7bXQ3NngwMl90cmFjZS5jJiMzNDssCiAgICAmIzM0O210NzZ4MDJfdHJhY2UuaCYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3R4cnguYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3VzYi5oJiMzNDssCiAgICAmIzM0O210NzZ4MDJfdXNiX2NvcmUuYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3VzYl9tY3UuYyYjMzQ7LAogICAgJiMzNDttdDc2eDAyX3V0aWwuYyYjMzQ7LAogICAgJiMzNDttdDc5MnguaCYjMzQ7LAogICAgJiMzNDttdDc5MnhfYWNwaV9zYXIuYyYjMzQ7LAogICAgJiMzNDttdDc5MnhfYWNwaV9zYXIuaCYjMzQ7LAogICAgJiMzNDttdDc5MnhfY29yZS5jJiMzNDssCiAgICAmIzM0O210NzkyeF9kZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7bXQ3OTJ4X2RtYS5jJiMzNDssCiAgICAmIzM0O210NzkyeF9tYWMuYyYjMzQ7LAogICAgJiMzNDttdDc5MnhfcmVncy5oJiMzNDssCiAgICAmIzM0O210NzkyeF90cmFjZS5jJiMzNDssCiAgICAmIzM0O210NzkyeF90cmFjZS5oJiMzNDssCiAgICAmIzM0O210NzkyeF91c2IuYyYjMzQ7LAogICAgJiMzNDtucHUuYyYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtzY2FuLmMmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzZGlvX3R4cnguYyYjMzQ7LAogICAgJiMzNDt0ZXN0bW9kZS5jJiMzNDssCiAgICAmIzM0O3Rlc3Rtb2RlLmgmIzM0OywKICAgICYjMzQ7dHJhY2UuYyYjMzQ7LAogICAgJiMzNDt0cmFjZS5oJiMzNDssCiAgICAmIzM0O3R4LmMmIzM0OywKICAgICYjMzQ7dXNiLmMmIzM0OywKICAgICYjMzQ7dXNiX3RyYWNlLmMmIzM0OywKICAgICYjMzQ7dXNiX3RyYWNlLmgmIzM0OywKICAgICYjMzQ7dXRpbC5jJiMzNDssCiAgICAmIzM0O3V0aWwuaCYjMzQ7LAogICAgJiMzNDt3ZWQuYyYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogWwogICAgJiMzNDttdDc2MDMmIzM0OywKICAgICYjMzQ7bXQ3NjE1JiMzNDssCiAgICAmIzM0O210NzZ4MCYjMzQ7LAogICAgJiMzNDttdDc2eDImIzM0OywKICAgICYjMzQ7bXQ3OTE1JiMzNDssCiAgICAmIzM0O210NzkyMSYjMzQ7LAogICAgJiMzNDttdDc5MjUmIzM0OywKICAgICYjMzQ7bXQ3OTk2JiMzNDsKICBdCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQxMDYKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk5hdmlnYXRpbmcgdGhlIE1UNzkyNSBEcml2ZXIgTGFuZHNjYXBlKioKClJpZ2h0LCB0aGVyZSYjMzk7cyBgbXQ3OTI1YC4gTXkgaW1tZWRpYXRlIHJlZmxleCBpcyB0byBkaXZlIGludG8gaXRzIGNvbmZpZ3VyYXRpb24g4oCTIHNwZWNpZmljYWxseSwgdGhlIGBLY29uZmlnYCBmaWxlLiBJJiMzOTttIGdvaW5nIHN0cmFpZ2h0IHRvIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnYC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgaW5pdGlhbCBkZWNpc2lvbi1tYWtpbmcgaGFwcGVucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgaG93IHRoZXkmIzM5O3JlIGV4cG9zZWQgdGhyb3VnaCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFuZCwgb2YgY291cnNlLCBhbnkgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGtlcm5lbCBzdWJzeXN0ZW1zIG9yIGZlYXR1cmVzLiBUaGlzIGZpbGUgaXMgdGhlIGJlZHJvY2sgZm9yIGN1c3RvbWl6aW5nIHRoZSBidWlsZCBmb3IgYSBzcGVjaWZpYyB1c2UgY2FzZSwgc28gaXQgaXMgdGhlIG9idmlvdXMgcGxhY2UgdG8gc3RhcnQuIExvb2tpbmcgYXQgYEtjb25maWdgIGltbWVkaWF0ZWx5IGdpdmVzIGEgaGlnaC1sZXZlbCB2aWV3IG9mIHdoYXQmIzM5O3MgKnBvc3NpYmxlKiB3aXRoIHRoaXMgZHJpdmVyLiBGcm9tIHRoZXJlLCBJIGNhbiBnZXQgYSBmZWVsIGZvciB0aGUgZGVzaWduIGNob2ljZXMgYW5kIHBvdGVudGlhbCBhcmVhcyB0byBzY3J1dGluaXplIGJhc2VkIG9uIHBlcmZvcm1hbmNlIGFuZCBwb3dlciBjb25zdW1wdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIE1UNzkyNV9DT01NT05cbiAgIDM6XHRcdHRyaXN0YXRlXG4gICA0Olx0XHRzZWxlY3QgTVQ3OTJ4X0xJQlxuICAgNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gICA2Olx0XG4gICA3Olx0Y29uZmlnIE1UNzkyNUVcbiAgIDg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyNUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbiAgIDk6XHRcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXG4gIDEwOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDExOlx0XHRkZXBlbmRzIG9uIFBDSVxuICAxMjpcdFx0aGVscFxuICAxMzpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFBDSWUgZGV2aWNlcyxcbiAgMTQ6XHRcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXG4gIDE1Olx0XHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cbiAgMTY6XHRcbiAgMTc6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgTVQ3OTI1VVxuICAyMDpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTI1VSAoVVNCKSBzdXBwb3J0XCYjMzQ7XG4gIDIxOlx0XHRzZWxlY3QgTVQ3OTJ4X1VTQlxuICAyMjpcdFx0c2VsZWN0IE1UNzkyNV9DT01NT05cbiAgMjM6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgMjQ6XHRcdGRlcGVuZHMgb24gVVNCXG4gIDI1Olx0XHRoZWxwXG4gIDI2Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjUtYmFzZWQgd2lyZWxlc3MgVVNCIGRldmljZXMsXG4gIDI3Olx0XHQgIHdoaWNoIHN1cHBvcnQgb3BlcmF0aW9uIGF0IDZHSHosIDVHSHosIGFuZCAyLjRHSHogSUVFRSA4MDIuMTFiZVxuICAyODpcdFx0ICAyeDI6MlNTIDQwOTYtUUFNLCAxNjBNSHogY2hhbm5lbHMuXG4gIDI5Olx0XG4gIDMwOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjI0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0ODkwCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSW1wYWN0IG9mIHRoZSBgTVQ3OTI1VWAgVVNCIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBgTVQ3OTI1VWAgaXMgaW5kZWVkIGEgVVNCIGRyaXZlciwgd2hpY2ggaXMgZ29vZCB0byBrbm93LiBUaGlzIHBhdGNoIHNwZWNpZmljYWxseSBkaXNhYmxlcyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmb3IgdGhlIGBtdDc5MnhgIGZhbWlseSBvZiBkZXZpY2VzLiBUaGUgcXVlc3Rpb24gbm93IGlzOiBkb2VzIHRoaXMgd2FycmFudCBmdXp6aW5nPyBBYnNvbHV0ZWx5LCBpdCBkb2VzLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiBhIGRyaXZlciB0aGF0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLCBtYWtpbmcgaXQgYSBwcmltZSB0YXJnZXQuCgpNeSBpbml0aWFsIGZvY3VzIHN5bWJvbHMgd291bGQgYmUgYG10NzZfcGh5X2luaXRgIGFuZCBgbXQ3OTJ4X2luaXRfd2lwaHlgLiBCdXQgaG9sZCBvbi4uLiBgbXQ3Nl9waHlfaW5pdGAgc2VlbXMgdG8gYmUgdXNlZCBhY3Jvc3MgKmFsbCogYG10NzZgIGRyaXZlcnMsIHNvIGl0JiMzOTtzIHByb2JhYmx5IG5vdCBhcyBzcGVjaWZpYyBhIGNoYW5nZSBhcyBJIGluaXRpYWxseSB0aG91Z2h0LiBMZXQmIzM5O3MgcXVpY2tseSB2ZXJpZnkgdGhhdCB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBtb2RpZmllZCBmdW5jdGlvbnMuIE5vcGUsIGxvb2tzIGxpa2UgYG10NzkyeF9pbml0X3dpcGh5YCBpcyB0aGUga2V5IGZ1bmN0aW9uIHRvIGludmVzdGlnYXRlIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIyIDIwOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyeF9pbml0X3dpcGh5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE3MD1pbnQgbXQ3OTIxX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjI3Olx0cmV0ID0gbXQ3OTJ4X2luaXRfd2lwaHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyOC1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTIwNj1pbnQgbXQ3OTI1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L2luaXQuYy0yNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjYxOlx0cmV0ID0gbXQ3OTJ4X2luaXRfd2lwaHkoaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2Mi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD00NjI9aW50IG10NzkyeF9wbV9pZGxlX3RpbWVvdXRfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDYzOmludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTQ2NC1zdHJ1Y3QgaWVlZTgwMjExX29wcyAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jPTY1OT1FWFBPUlRfU1lNQk9MX0dQTChtdDc5Mnhfc2V0X2NvdmVyYWdlX2NsYXNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy02NjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmM6NjYxOmludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy02NjIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy03NDUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jOjc0NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfaW5pdF93aXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMtNzQ3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjAzNAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQwOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGEgU2ltcGxlIERyaXZlciBDaGFuZ2UqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBtdDc2X3BoeV9pbml0YCBhbmQgYG10NzkyeF9pbml0X3dpcGh5YCwgYW5kIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBgTVQ3OTIxVWAgYW5kIGBNVDc5MjVVYC4gVGhlIHBhdGNoIGl0c2VsZiBpcyB0cml2aWFsOiBpdCYjMzk7cyBhZGRpbmcgb3IgcmVtb3ZpbmcgYSBjb3VwbGUgb2YgZmVhdHVyZSBmbGFnczoKCmBgYGMKCXdpcGh5LSZndDtmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQVBfTU9ERV9DSEFOX1dJRFRIX0NIQU5HRTsKCWlmICghcGh5LSZndDtub19hY3RpdmVfbW9uaXRvcikKCQl3aXBoeS0mZ3Q7ZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SOwpgYGAKCkl0IGxvb2tzIGxpa2Ugd2UmIzM5O3JlIGp1c3QgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoZXNlIGZsYWdzLiBUaGUgcXVlc3Rpb24gaXMsIHNob3VsZCBJIGZ1enogdGhpcz8gVGhlIHByb21wdCYjMzk7cyBndWlkZWxpbmVzIGFyZSBjbGVhcjogY2hhbmdlcyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb21tZW50cywgbG9nZ2luZywgb3IgcHVyZWx5IGRlY29yYXRpdmUgY29uc3RhbnRzIGdldCBhIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBDaGFuZ2VzIHRvIHVucmVhY2hhYmxlIGNvZGUgcGF0aHMgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBsaWtlIFVTQiBnYWRnZXQgbW9kZSwgd291bGQgYWxzbyBnZXQgYSBmYWxzZS4gSG93ZXZlciwgSWYgaXQgdG91Y2hlcyAqcmVhY2hhYmxlKiBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgKnRoZW4qIGl0JiMzOTtzIGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpUaGlzIG1vZGlmaWNhdGlvbiBjbGVhcmx5IHRvdWNoZXMgZHJpdmVyIGxvZ2ljLCBhbmQgVVNCIGVtdWxhdGlvbiBtZWFucyBpdCAqaXMqIHJlYWNoYWJsZS4gU28sIHRlY2huaWNhbGx5LCBieSB0aGUgYm9vaywgaXQmIzM5O3MgYFdvcnRoRnV6emluZz10cnVlYC4gSG93ZXZlciwgbXkgZ3V0IGlzIHRlbGxpbmcgbWUgdGhpcyBpcyBhbiBpbmNyZWRpYmx5IHNpbXBsZSBjaGFuZ2UuIFdlJiMzOTtyZSBqdXN0IGVuYWJsaW5nL2Rpc2FibGluZyBhIGZlYXR1cmUuIEl0IGRvZXNuJiMzOTt0IGludHJvZHVjZSBtdWNoIGNvbXBsZXhpdHkuIEl0JiMzOTtzIGEgYml0IG9mIGEgJiMzNDt5ZWFoLCBidXQuLi4mIzM0OyBzaXR1YXRpb24uIFlldCwgSSYjMzk7bSBnb2luZyB0byBoYXZlIHRvIG1ha2UgdGhlIGRlY2lzaW9uIHRoYXQsIGJhc2VkIG9uIHRoZSByZXF1aXJlbWVudHMsIG15IGFuc3dlciBpcyBgV29ydGhGdXp6aW5nPXRydWVgLCBidXQgbGV0JiMzOTtzIGRvdWJsZSBjaGVjayB0byBzZWUgaWYgYG10NzZfcGh5X2luaXRgIGlzIGNhbGxlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIGp1c3QgaW4gY2FzZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjIgMjA6MjU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Nl9waHlfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz00MjY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjQyNzptdDc2X3BoeV9pbml0KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy00Mjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz01NTE9aW50IG10NzZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBib29sIHZodCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNTU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjU1NjpcdHJldCA9IG10NzZfcGh5X2luaXQocGh5LCBwaHktXHUwMDNlaHcpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTU1Ny1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTc0Nz1pbnQgbXQ3Nl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZfZGV2ICpkZXYsIGJvb2wgdmh0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy03NTUtXHRtdDc2X3djaWRfaW5pdChcdTAwMjZkZXYtXHUwMDNlZ2xvYmFsX3djaWQsIHBoeS1cdTAwM2ViYW5kX2lkeCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6NzU2Olx0cmV0ID0gbXQ3Nl9waHlfaW5pdChwaHksIGh3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy03NTctXHRpZiAocmV0KVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzM0NQoJCQkJCQkJb3V0cHV0OiAxMzEKCQkJCQkJCXRob3VnaHRzOiA0ODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNVDc2IFdpcmVsZXNzIERyaXZlciBJbml0aWFsaXphdGlvbiBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgY29kZSBpbiBxdWVzdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBwYXJ0IEkmIzM5O20gaW50ZXJlc3RlZCBpbiwgaXMgY2FsbGVkIGR1cmluZyBgbXQ3Nl9yZWdpc3Rlcl9kZXZpY2VgIGFuZCBgbXQ3Nl9yZWdpc3Rlcl9waHlgLiBUaGF0IG1lYW5zIGl0JiMzOTtzIGRlZmluaXRlbHkgcmVhY2hhYmxlLiBHb29kLCB0aGF0JiMzOTtzIHRoZSBmaXJzdCBodXJkbGUgY2xlYXJlZC4KCk5vdywgbGV0JiMzOTtzIGdldCBpbnRvIHRoZSBzcGVjaWZpY3MuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoaWNoIGNvbmZpZ3VyYXRpb25zIGFyZSByZWxldmFudC4gVGhlIHRleHQgbWVudGlvbnMgYE1UNzkyMVVgIGFuZCBgTVQ3OTI1VWAgYXMgVVNCIGRyaXZlcnMsIGJ1dCBhcmUgdGhvc2UgKnRoZSBvbmx5KiBvbmVzIGZvciBgbXQ3NmA/IExldCYjMzk7cyBzZWUuLi4gbG9va2luZyBiYWNrLCB0aGVyZSYjMzk7cyBhbHNvIGBNVDc2eDBVYCwgYE1UNzZ4MlVgLCBgTVQ3NjE1VWAgKHdhaXQsIGlzIHRoZXJlIGV2ZW4gYSBVU0IgdmVyc2lvbiBvZiB0aGUgNzYxNT8pIGFuZCB0aGVuLCB5ZXMsIGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgIGFnYWluLgoKVGhlIHBhdGNoIGl0c2VsZiBzcGVjaWZpY2FsbHkgY2hhbmdlcyBgbXQ3OTJ4X2luaXRfd2lwaHlgLCB3aGljaCBpcywgb2YgY291cnNlLCB1c2VkIGJ5IGBtdDc5MjFgIGFuZCBgbXQ3OTI1YC4gQnV0LCBoYW5nIG9uLCB0aGUgYG10NzZfcGh5X2luaXRgIGZ1bmN0aW9uICppcyogbW9kaWZpZWQsIGFuZCB0aGF0IGlzIHVzZWQgYnkgKmFsbCogYG10NzZgIGRyaXZlcnMuIFNvLCBhbnkgb2YgdGhlIGBtdDc2YCBVU0IgZHJpdmVycyBjb3VsZCAqcG90ZW50aWFsbHkqIHRyaWdnZXIgdGhlIG1vZGlmaWVkIGBtdDc2X3BoeV9pbml0YCBjb2RlLiBIb3dldmVyLCB0aGUga2V5IG1vZGlmaWNhdGlvbiB0YXJnZXRpbmcgYG10NzkyeF9pbml0X3dpcGh5YCBtYWtlcyBgTVQ3OTIxVWAgYW5kIGBNVDc5MjVVYCB0aGUgbW9zdCByZWxldmFudCBjb25maWd1cmF0aW9ucy4gVGhleSYjMzk7cmUgZGVmaW5pdGVseSB0aGUgYmVzdCBjYW5kaWRhdGVzLgoKTGV0JiMzOTtzIHF1aWNrbHkgY2hlY2sgZGVwZW5kZW5jaWVzIGZvciB0aG9zZSB0d28uIFRoZXkgZGVwZW5kIG9uIGBNQUM4MDIxMWAgYW5kIGBVU0JgLiBBbHJpZ2h0LCBub3RoaW5nIHVuZXhwZWN0ZWQgdGhlcmUuIFNvLCB5ZXMsIHRoZSBjb25maWdzIEkgd2FudCB0byBmb2N1cyBvbiBhcmUgYE1UNzkyMVVgIGFuZCBgTVQ3OTI1VWAuCgpPa2F5LCB0aW1lIHRvIGZvcm11bGF0ZSBhIGNvbmNpc2UgcmVzcG9uc2UuIExldCYjMzk7cyBzZWU6CgoqICAgKipXb3J0aEZ1enppbmc6KiogVHJ1ZSAtIHRoaXMgaXMgY2xlYXJseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGRyaXZlciBtb2RpZmljYXRpb24sIHRoYXQmIzM5O3Mgd29ydGggdGVzdGluZy4KKiAgICoqRm9jdXNTeW1ib2xzOioqIGBtdDc2X3BoeV9pbml0YCwgYG10NzkyeF9pbml0X3dpcGh5YCAtIFRoZXNlIGFyZSB0aGUga2V5IGZ1bmN0aW9ucyBtb2RpZmllZCBieSB0aGUgcGF0Y2guCiogICAqKkVuYWJsZUNvbmZpZ3M6KiogYE1UNzkyMVVgLCBgTVQ3OTI1VWAgLSBCZWNhdXNlIHRoZXNlIGNvbmZpZ3MgcmVwcmVzZW50IHRoZSByZWxldmFudCBVU0IgZHJpdmVycywgSSB3YW50IHRvIGVuYWJsZSBib3RoLgoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS4KClRoYXQgc2hvdWxkIGNvdmVyIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMiAyMDoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7LAogICAgJiMzNDtNVDc5MjVVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3Nl9waHlfaW5pdCYjMzQ7LAogICAgJiMzNDttdDc5MnhfaW5pdF93aXBoeSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gbG9naWMgb2YgdGhlIE1UNzYgd2lyZWxlc3MgZHJpdmVyIHRvIGRpc2FibGUgdGhlIGFjdGl2ZSBtb25pdG9yIGZlYXR1cmUgZm9yIE1UNzkyeCBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBkcml2ZXIgdGhhdCBpcyByZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGVtdWxhdGlvbiAoTVQ3OTIxVSBhbmQgTVQ3OTI1VSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMVUmIzM0OywKICAgICYjMzQ7TVQ3OTI1VSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzZfcGh5X2luaXQmIzM0OywKICAgICYjMzQ7bXQ3OTJ4X2luaXRfd2lwaHkmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNVDc2IHdpcmVsZXNzIGRyaXZlciB0byBkaXNhYmxlIHRoZSBhY3RpdmUgbW9uaXRvciBmZWF0dXJlIGZvciBNVDc5MnggZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgZHJpdmVyIHRoYXQgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFVTQiBlbXVsYXRpb24gKE1UNzkyMVUgYW5kIE1UNzkyNVUpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjM6NDYuNjYxMzg2OTIxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4NDQ4NjE3MTU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMVVcIixcbiAgICBcIk1UNzkyNVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc2X3BoeV9pbml0XCIsXG4gICAgXCJtdDc5MnhfaW5pdF93aXBoeVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjM6NDYuNjYxMzk2NjQxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Mjg0NjgzODMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlNDk5NTY3MTYxYTdmMjZhN2ZiYjQ4OTY1OTdlNzYyZGNkZWY0ZGQzXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDIyIDIwOjIzOjQ1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xcbmluZGV4IDEzYzRlOGFiZTI4MTkxLi5kYWEyOTA4ZDg0NGYwOCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcXG5AQCAtNDM5LDggKzQzOSw5IEBAIG10NzZfcGh5X2luaXQoc3RydWN0IG10NzZfcGh5ICpwaHksIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbiBcXHRTRVRfSUVFRTgwMjExX0RFVihodywgZGV2LVxcdTAwM2VkZXYpO1xcbiBcXHRTRVRfSUVFRTgwMjExX1BFUk1fQUREUihodywgcGh5LVxcdTAwM2VtYWNhZGRyKTtcXG4gXFxuLVxcdHdpcGh5LVxcdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1IgfFxcbi1cXHRcXHRcXHQgICBOTDgwMjExX0ZFQVRVUkVfQVBfTU9ERV9DSEFOX1dJRFRIX0NIQU5HRTtcXG4rXFx0d2lwaHktXFx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFO1xcbitcXHRpZiAoIXBoeS1cXHUwMDNlbm9fYWN0aXZlX21vbml0b3IpXFxuK1xcdFxcdHdpcGh5LVxcdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I7XFxuIFxcdHdpcGh5LVxcdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX0hBU19DSEFOTkVMX1NXSVRDSCB8XFxuIFxcdFxcdFxcdFdJUEhZX0ZMQUdfU1VQUE9SVFNfVERMUyB8XFxuIFxcdFxcdFxcdFdJUEhZX0ZMQUdfQVBfVUFQU0Q7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmhcXG5pbmRleCAwNzk1NTU1NWY4NGQ4My4uNTkxOTgzMDc4YzZmNTcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaFxcbkBAIC04NzEsNiArODcxLDcgQEAgc3RydWN0IG10NzZfcGh5IHtcXG4gXFx0c3RydWN0IGNmZzgwMjExX2NoYW5fZGVmIG1haW5fY2hhbmRlZjtcXG4gXFx0Ym9vbCBvZmZjaGFubmVsO1xcbiBcXHRib29sIHJhZGFyX2VuYWJsZWQ7XFxuK1xcdGJvb2wgbm9fYWN0aXZlX21vbml0b3I7XFxuIFxcbiBcXHRzdHJ1Y3QgZGVsYXllZF93b3JrIHJvY193b3JrO1xcbiBcXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqcm9jX3ZpZjtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jXFxuaW5kZXggYjUwODI1ZWNjZGFmZWUuLjZhNzFhNjEzNGE1NGY1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY1xcbkBAIC03MTIsNiArNzEyLDcgQEAgaW50IG10NzkyeF9pbml0X3dpcGh5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbiBcXG4gXFx0d2lwaHktXFx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9TQ0hFRF9TQ0FOX1JBTkRPTV9NQUNfQUREUiB8XFxuIFxcdFxcdFxcdCAgIE5MODAyMTFfRkVBVFVSRV9TQ0FOX1JBTkRPTV9NQUNfQUREUjtcXG4rXFx0cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2Vub19hY3RpdmVfbW9uaXRvciA9IHRydWU7XFxuIFxcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9TRVRfU0NBTl9EV0VMTCk7XFxuIFxcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9CRUFDT05fUkFURV9MRUdBQ1kpO1xcbiBcXHR3aXBoeV9leHRfZmVhdHVyZV9zZXQod2lwaHksIE5MODAyMTFfRVhUX0ZFQVRVUkVfQkVBQ09OX1JBVEVfSFQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyMzo0Ny4xOTAzNzU5MjRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMTc5MTk2MTQ4OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxVVwiLFxuICAgIFwiTVQ3OTI1VVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZfcGh5X2luaXRcIixcbiAgICBcIm10NzkyeF9pbml0X3dpcGh5XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGluaXRpYWxpemF0aW9uIGxvZ2ljIG9mIHRoZSBNVDc2IHdpcmVsZXNzIGRyaXZlciB0byBkaXNhYmxlIHRoZSBhY3RpdmUgbW9uaXRvciBmZWF0dXJlIGZvciBNVDc5MnggZGV2aWNlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgZHJpdmVyIHRoYXQgaXMgcmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFVTQiBlbXVsYXRpb24gKE1UNzkyMVUgYW5kIE1UNzkyNVUpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGU0OTk1NjcxNjFhN2YyNmE3ZmJiNDg5NjU5N2U3NjJkY2RlZjRkZDNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyMiAyMDoyMzo0NSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuY1xuaW5kZXggMTNjNGU4YWJlMjgxOTEuLmRhYTI5MDhkODQ0ZjA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmNcbkBAIC00MzksOCArNDM5LDkgQEAgbXQ3Nl9waHlfaW5pdChzdHJ1Y3QgbXQ3Nl9waHkgKnBoeSwgc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4gXHRTRVRfSUVFRTgwMjExX0RFVihodywgZGV2LVx1MDAzZWRldik7XG4gXHRTRVRfSUVFRTgwMjExX1BFUk1fQUREUihodywgcGh5LVx1MDAzZW1hY2FkZHIpO1xuIFxuLVx0d2lwaHktXHUwMDNlZmVhdHVyZXMgfD0gTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SIHxcbi1cdFx0XHQgICBOTDgwMjExX0ZFQVRVUkVfQVBfTU9ERV9DSEFOX1dJRFRIX0NIQU5HRTtcbitcdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFO1xuK1x0aWYgKCFwaHktXHUwMDNlbm9fYWN0aXZlX21vbml0b3IpXG4rXHRcdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUjtcbiBcdHdpcGh5LVx1MDAzZWZsYWdzIHw9IFdJUEhZX0ZMQUdfSEFTX0NIQU5ORUxfU1dJVENIIHxcbiBcdFx0XHRXSVBIWV9GTEFHX1NVUFBPUlRTX1RETFMgfFxuIFx0XHRcdFdJUEhZX0ZMQUdfQVBfVUFQU0Q7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaFxuaW5kZXggMDc5NTU1NTVmODRkODMuLjU5MTk4MzA3OGM2ZjU3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oXG5AQCAtODcxLDYgKzg3MSw3IEBAIHN0cnVjdCBtdDc2X3BoeSB7XG4gXHRzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgbWFpbl9jaGFuZGVmO1xuIFx0Ym9vbCBvZmZjaGFubmVsO1xuIFx0Ym9vbCByYWRhcl9lbmFibGVkO1xuK1x0Ym9vbCBub19hY3RpdmVfbW9uaXRvcjtcbiBcbiBcdHN0cnVjdCBkZWxheWVkX3dvcmsgcm9jX3dvcms7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqcm9jX3ZpZjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmNcbmluZGV4IGI1MDgyNWVjY2RhZmVlLi42YTcxYTYxMzRhNTRmNSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jXG5AQCAtNzEyLDYgKzcxMiw3IEBAIGludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcbiBcbiBcdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9TQ0hFRF9TQ0FOX1JBTkRPTV9NQUNfQUREUiB8XG4gXHRcdFx0ICAgTkw4MDIxMV9GRUFUVVJFX1NDQU5fUkFORE9NX01BQ19BRERSO1xuK1x0cGh5LVx1MDAzZW10NzYtXHUwMDNlbm9fYWN0aXZlX21vbml0b3IgPSB0cnVlO1xuIFx0d2lwaHlfZXh0X2ZlYXR1cmVfc2V0KHdpcGh5LCBOTDgwMjExX0VYVF9GRUFUVVJFX1NFVF9TQ0FOX0RXRUxMKTtcbiBcdHdpcGh5X2V4dF9mZWF0dXJlX3NldCh3aXBoeSwgTkw4MDIxMV9FWFRfRkVBVFVSRV9CRUFDT05fUkFURV9MRUdBQ1kpO1xuIFx0d2lwaHlfZXh0X2ZlYXR1cmVfc2V0KHdpcGh5LCBOTDgwMjExX0VYVF9GRUFUVVJFX0JFQUNPTl9SQVRFX0hUKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjIzOjQ3LjE5MDM3NzE2NFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU5NzkwNDAxNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTWVkaWF0ZWsgTVQ3NiBXaXJlbGVzcyBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIHRoZSBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRvdWNoaW5nIGBtYWM4MDIxMS5jYCwgYG10NzYuaGAsIGFuZCBgbXQ3OTJ4X2NvcmUuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2Ugc2VlbXMgdG8gaW50cm9kdWNlIGEgYG5vX2FjdGl2ZV9tb25pdG9yYCBib29sZWFuIHdpdGhpbiB0aGUgYHN0cnVjdCBtdDc2X3BoeWAuIFRoaXMgYm9vbGVhbiBpcyB0aGVuIHVzZWQgdG8gY29uZGl0aW9uYWxseSBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYE5MODAyMTFfRkVBVFVSRV9BQ1RJVkVfTU9OSVRPUmAgZmVhdHVyZSBkdXJpbmcgdGhlIGBtdDc2X3BoeV9pbml0YCBwcm9jZXNzLiAgRXNzZW50aWFsbHksIGl0IGxvb2tzIGxpa2UgdGhleSdyZSBkaXNhYmxpbmcgYWN0aXZlIG1vbml0b3IgbW9kZSBvbiB0aGlzIHNwZWNpZmljIGhhcmR3YXJlLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMsIHRoaXMgaXMgZGVmaW5pdGVseSBmdW5jdGlvbmFsLCBidXQgaXQncyBhIGhhcmR3YXJlLXNwZWNpZmljIGNoYW5nZSB0byB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIuIFRoZSByZWFsIHF1ZXN0aW9uIGluIG15IG1pbmQsIGdpdmVuIHRoYXQgdGhpcyBhZmZlY3RzIGEgd2lyZWxlc3MgZHJpdmVyLCBpcyAqaG93KiByZWFjaGFibGUgaXMgdGhpcyBkcml2ZXIgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gIE1vc3Qgb2YgdGhlc2UgaGFyZHdhcmUtc3BlY2lmaWMgd2lyZWxlc3MgZHJpdmVycywgYXMgSSBrbm93LCBhcmUgZ2VuZXJhbGx5IG5vdCBlYXNpbHkgYWNjZXNzaWJsZSB1bmxlc3Mgd2UncmUgZGVhbGluZyB3aXRoIGVtdWxhdGlvbiBvciwgaWYgaXQncyBhIFVTQiBkcml2ZXIsIHRocm91Z2ggc29tZSBVU0IgZW11bGF0aW9uIHNldHVwLlxuXG5TbywgdGhlIG5leHQgdGhpbmcgSSdtIGRvaW5nIGlzIGNoZWNraW5nIGlmIHRoaXMgTVQ3NiBhY3R1YWxseSBoYXMgYSBVU0IgZHJpdmVyLiBJIGtub3cgYG10NzkyeGAgaXMgcGFydCBvZiBNVDc2LCBzbyBJJ2xsIGNoZWNrIGluc2lkZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jYCB0byBzZWUgaWYgdGhlcmUncyBhbnkgaW5kaWNhdGlvbiBvZiBVU0Igc3VwcG9ydC4gVGhlIHBhdGNoIGl0c2VsZiBkb2Vzbid0IGV4cGxpY2l0bHkgbWVudGlvbiBVU0IsIGJ1dCBpdCdzIGEgY3JpdGljYWwgZmFjdG9yIGluIGRldGVybWluaW5nIGhvdyB3ZSBjYW4gcmVhbGlzdGljYWxseSB0ZXN0IG9yIGludGVyYWN0IHdpdGggdGhpcyBjaGFuZ2UgaW4gYSBjb250cm9sbGVkIGVudmlyb25tZW50LiBJZiBpdCdzIFVTQiwgd2UgaGF2ZSBzb21lIG9wdGlvbnMuIElmIG5vdCwgaXQgYmVjb21lcyBhIG11Y2ggbW9yZSBpbnZvbHZlZCBzY2VuYXJpby5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY0MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwMCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjIzOjUzLjE2OTQyMjcyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMDY5MzA5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MnhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA2MDUyIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX01UNzZfQ09OTkFDX0xJQikgKz0gbXQ3Ni1jb25uYWMtbGliLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX01UNzkyeF9MSUIpICs9IG10NzkyeC1saWIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTVQ3OTJ4X1VTQikgKz0gbXQ3OTJ4LXVzYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MjQ9Q0ZMQUdTX210NzZ4MDJfdHJhY2UubyA6PSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MjU6Q0ZMQUdTX210NzkyeF90cmFjZS5vIDo9IC1JJChzcmMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0yNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MzQ9bXQ3Ni1jb25uYWMtbGliLXkgOj0gbXQ3Nl9jb25uYWNfbWN1Lm8gbXQ3Nl9jb25uYWNfbWFjLm8gbXQ3Nl9jb25uYWMzX21hYy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjM2Om10NzkyeC1saWIteSA6PSBtdDc5MnhfY29yZS5vIG10NzkyeF9tYWMubyBtdDc5MnhfdHJhY2UubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTozNzpcXHRcXHRtdDc5MnhfZGVidWdmcy5vIG10NzkyeF9kbWEub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6Mzg6bXQ3OTJ4LWxpYi0kKENPTkZJR19BQ1BJKSArPSBtdDc5MnhfYWNwaV9zYXIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6Mzk6bXQ3OTJ4LXVzYi15IDo9IG10NzkyeF91c2Iub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTYtI2luY2x1ZGUgXFxcIm10NzZfY29ubmFjX21jdS5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Nl9jb25uYWNfbWN1LmM6NzojaW5jbHVkZSBcXFwibXQ3OTJ4X3JlZ3MuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZfY29ubmFjX21jdS5jLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9Nz1tdDc5MjFfcmVnX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy04LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6OTpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjExOlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEyLVxcdG10NzZfd3IoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjEzOlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE5PW10NzkyMV9yZWdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIxOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjM6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjQtXFx0KnZhbCA9IG10NzZfcnIoZGV2LCBkZXYtXFx1MDAzZW10NzYuZGVidWdmc19yZWcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNTpcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0zMz1tdDc5MjFfZndfZGVidWdfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MzU6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTM2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzozNzpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0zOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy00MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6NDI6XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNDMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9NDg9bXQ3OTIxX2Z3X2RlYnVnX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNDkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzo1MDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9NTc9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZndfZGVidWcsIG10NzkyMV9md19kZWJ1Z19nZXQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjYwOkRFRklORV9TSE9XX0FUVFJJQlVURShtdDc5MnhfdHhfc3RhdHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy02MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz05MT1tdDc5MjFfdHhwd3Ioc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy05Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjkzOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk0LVxcdHN0cnVjdCBtdDc5MjFfdHhwd3IgdHhwd3I7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtOTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjk3OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTk4LVxcdHJldCA9IG10NzkyMV9nZXRfdHhwd3JfaW5mbyhkZXYsIFxcdTAwMjZ0eHB3cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjk5OlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTEwMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0xNDM9bXQ3OTIxX3BtX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xNDQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoxNDU6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE0Ni1cXHRzdHJ1Y3QgbXQ3Nl9jb25uYWNfcG0gKnBtID0gXFx1MDAyNmRldi1cXHUwMDNlcG07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM9MTc2PW10NzkyMV9wbV9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE3Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjE3ODpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTE4OD1tdDc5MjFfZGVlcF9zbGVlcF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMTg5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTkwOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0xOTEtXFx0c3RydWN0IG10NzZfY29ubmFjX3BtICpwbSA9IFxcdTAwMjZkZXYtXFx1MDAzZXBtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MTk4OlxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTE5OS1cXHRpZiAocG0tXFx1MDAzZWRzX2VuYWJsZV91c2VyID09IGVuYWJsZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMDUtb3V0OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMDY6XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjA3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTIxMj1tdDc5MjFfZGVlcF9zbGVlcF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIxMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIxNDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjE1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTIyMT1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19kcywgbXQ3OTIxX2RlZXBfc2xlZXBfZ2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjI0OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3BtX2lkbGVfdGltZW91dCwgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIyNTpcXHRcXHRcXHQgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9zZXQsIFxcXCIlbGxkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYz0yMjc9c3RhdGljIGludCBtdDc5MjFfY2hpcF9yZXNldCh2b2lkICpkYXRhLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMjgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyMjk6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzMC1cXHRpbnQgcmV0ID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yMzQtXFx0XFx0LyogUmVzZXQgd2lmaXN5cyBkaXJlY3RseS4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6MjM1OlxcdFxcdG10NzkyeF9yZXNldChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjM2LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTIzOC1cXHRcXHQvKiBDb2xsZWN0IHRoZSBjb3JlIGR1bXAgYmVmb3JlIHJlc2V0IHdpZmlzeXMuICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjIzOTpcXHRcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNDAtXFx0XFx0cmV0ID0gbXQ3Nl9jb25uYWNfbWN1X2NoaXBfY29uZmlnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNDE6XFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjQyLVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jPTI1MT1tdDc5MjFzX3NjaGVkX3F1b3RhX3JlYWQoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNTIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNTM6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGRldl9nZXRfZHJ2ZGF0YShzLVxcdTAwM2Vwcml2YXRlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjU0LVxcdHN0cnVjdCBtdDc2X3NkaW8gKnNkaW8gPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnNkaW87XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjYzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYzoyNjQ6aW50IG10NzkyMV9pbml0X2RlYnVnZnMoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNzEtXFx0XFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJ4bWl0LXF1ZXVlc1xcXCIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI3MjpcXHRcXHRcXHRcXHRcXHQgICAgZGlyLCBtdDc5MnhfcXVldWVzX3JlYWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yNzMtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI3Ny1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcImFjcVxcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmM6Mjc4OlxcdFxcdFxcdFxcdCAgICBtdDc5MnhfcXVldWVzX2FjcSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI3OS1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInR4cG93ZXJfc2t1XFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yODAtXFx0XFx0XFx0XFx0ICAgIG10NzkyMV90eHB3cik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI4MTpcXHRkZWJ1Z2ZzX2NyZWF0ZV9maWxlKFxcXCJ0eF9zdGF0c1xcXCIsIDA0MDAsIGRpciwgZGV2LCBcXHUwMDI2bXQ3OTJ4X3R4X3N0YXRzX2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2RlYnVnZnMuYy0yODItXFx0ZGVidWdmc19jcmVhdGVfZmlsZShcXFwiZndfZGVidWdcXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfZndfZGVidWcpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jLTI4Ny1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInJ1bnRpbWVfcG1fc3RhdHNcXFwiLCBkaXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvZGVidWdmcy5jOjI4ODpcXHRcXHRcXHRcXHQgICAgbXQ3OTJ4X3BtX3N0YXRzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9kZWJ1Z2ZzLmMtMjg5LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcImRlZXAtc2xlZXBcXFwiLCAwNjAwLCBkaXIsIGRldiwgXFx1MDAyNmZvcHNfZHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTE0PXN0YXRpYyBzc2l6ZV90IG10NzkyMV90aGVybWFsX3RlbXBfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTktXFx0Y2FzZSAwOiB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIwOlxcdFxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjE6XFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKm1kZXYgPSBwaHktXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjItXFx0XFx0aW50IHRlbXBlcmF0dXJlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjQ6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI1LVxcdFxcdHRlbXBlcmF0dXJlID0gbXQ3OTIxX21jdV9nZXRfdGVtcGVyYXR1cmUocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MjY6XFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTI3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTQzPUFUVFJJQlVURV9HUk9VUFMobXQ3OTIxX2h3bW9uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjQ1OnN0YXRpYyBpbnQgbXQ3OTIxX3RoZXJtYWxfaW5pdChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy00Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjY0OmludCBtdDc5MjFfbWFjX2luaXQoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTc3LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyAyOyBpKyspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjc4OlxcdFxcdG10NzkyeF9tYWNfaW5pdF9iYW5kKGRldiwgaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTgyPUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9tYWNfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzo4NDpzdGF0aWMgaW50IF9fbXQ3OTIxX2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtODUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTkxLVxcdG10NzZfd3IoZGV2LCBNVF9TV0RFRl9NT0RFLCBNVF9TV0RFRl9OT1JNQUxfTU9ERSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjkyOlxcdHJldCA9IG10NzkyeF9tY3VfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy05My1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTA5OnN0YXRpYyBpbnQgbXQ3OTIxX2luaXRfaGFyZHdhcmUoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjEyMDpcXHRcXHRtdDc5MnhfaW5pdF9yZXNldChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xMjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jPTEzMT1zdGF0aWMgdm9pZCBtdDc5MjFfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTMyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTMzOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTEzNC1cXHRcXHRcXHRcXHRcXHQgICAgICBpbml0X3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE0Mi1cXHRtdDc5MjFfc2V0X3N0cmVhbV9oZV9jYXBzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE0MzpcXHRtdDc5MnhfY29uZmlnX21hY19hZGRyX2xpc3QoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTcwOmludCBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTE3MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTc3LVxcdGRldi1cXHUwMDNlbXQ3Ni5waHkucHJpdiA9IFxcdTAwMjZkZXYtXFx1MDAzZXBoeTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTc4OlxcdGRldi1cXHUwMDNlbXQ3Ni50eF93b3JrZXIuZm4gPSBtdDc5MnhfdHhfd29ya2VyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjE4MDpcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VwbS5wc193b3JrLCBtdDc5MnhfcG1fcG93ZXJfc2F2ZV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmM6MTgxOlxcdElOSVRfV09SSyhcXHUwMDI2ZGV2LVxcdTAwM2VwbS53YWtlX3dvcmssIG10NzkyeF9wbV93YWtlX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xODItXFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlcG0ud2FrZS5sb2NrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0xODgtXFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNmRldi1cXHUwMDNlcG0udHhxX2xvY2spO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoxODk6XFx0SU5JVF9ERUxBWUVEX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5tYWNfd29yaywgbXQ3OTJ4X21hY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMTkwLVxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5zY2FuX3dvcmssIG10NzkyMV9zY2FuX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwMi1cXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnJvY193b3JrLCBtdDc5MjFfcm9jX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMDM6XFx0dGltZXJfc2V0dXAoXFx1MDAyNmRldi1cXHUwMDNlcGh5LnJvY190aW1lciwgbXQ3OTJ4X3JvY190aW1lciwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIwNC1cXHRpbml0X3dhaXRxdWV1ZV9oZWFkKFxcdTAwMjZkZXYtXFx1MDAzZXBoeS5yb2Nfd2FpdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMjE6XFx0bXQ3OTJ4X2luaXRfYWNwaV9zYXIoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9pbml0LmMtMjIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYzoyMjM6XFx0cmV0ID0gbXQ3OTJ4X2luaXRfd2NpZChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIyNzpcXHRyZXQgPSBtdDc5MnhfaW5pdF93aXBoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyOC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTk6Ym9vbCBtdDc5MjFfbWFjX3d0YmxfdXBkYXRlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIGludCBpZHgsIHUzMiBtYXNrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTI4PXN0YXRpYyB1MzIgbXQ3OTIxX21hY193dGJsX2xtYWNfYWRkcihpbnQgaWR4LCB1OCBvZmZzZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0zMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzozMzpzdGF0aWMgdm9pZCBtdDc5MjFfbWFjX3N0YV9wb2xsKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDEtXFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0MjpcXHRzdHJ1Y3QgbXQ3OTJ4X3N0YSAqbXN0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo0MzpcXHRzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhICptbGluaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NC1cXHR1MzIgdHhfdGltZVtJRUVFODAyMTFfTlVNX0FDU10sIHJ4X3RpbWVbSUVFRTgwMjExX05VTV9BQ1NdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjUtXFx0XFx0bWxpbmsgPSBsaXN0X2ZpcnN0X2VudHJ5KFxcdTAwMjZzdGFfcG9sbF9saXN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY2OlxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY3LVxcdFxcdFxcdFxcdFxcdCB3Y2lkLnBvbGxfbGlzdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6Njg6XFx0XFx0bXN0YSA9IGNvbnRhaW5lcl9vZihtbGluaywgc3RydWN0IG10NzkyeF9zdGEsIGRlZmxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY5LVxcdFxcdGxpc3RfZGVsX2luaXQoXFx1MDAyNm1saW5rLVxcdTAwM2V3Y2lkLnBvbGxfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz0xNjg9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE2OTptdDc5MjFfbWFjX2ZpbGxfcngoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0xNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTc3LVxcdHN0cnVjdCBtdDc2X3BoeSAqbXBoeSA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjE3ODpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE3OS1cXHRzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTE4NS1cXHR1MzIgcnhkNCA9IGxlMzJfdG9fY3B1KHJ4ZFs0XSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6MTg2OlxcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gTlVMTDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoxODc6XFx0c3RydWN0IG10NzkyeF9saW5rX3N0YSAqbWxpbms7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMTg4LVxcdHUxNiBzZXFfY3RybCA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMTQtXFx0aWR4ID0gRklFTERfR0VUKE1UX1JYRDFfTk9STUFMX1dMQU5fSURYLCByeGQxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMTU6XFx0c3RhdHVzLVxcdTAwM2V3Y2lkID0gbXQ3OTJ4X3J4X2dldF93Y2lkKGRldiwgaWR4LCB1bmljYXN0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtMjE3LVxcdGlmIChzdGF0dXMtXFx1MDAzZXdjaWQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMTg6XFx0XFx0bWxpbmsgPSBjb250YWluZXJfb2Yoc3RhdHVzLVxcdTAwM2V3Y2lkLCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLCB3Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMTk6XFx0XFx0bXN0YSA9IGNvbnRhaW5lcl9vZihtbGluaywgc3RydWN0IG10NzkyeF9zdGEsIGRlZmxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIyMC1cXHRcXHRtdDc2X3djaWRfYWRkX3BvbGwoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgXFx1MDAyNm1saW5rLVxcdTAwM2V3Y2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTIyMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzoyMjM6XFx0bXQ3OTJ4X2dldF9zdGF0dXNfZnJlcV9pbmZvKHN0YXR1cywgY2hmcmVxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy0yMjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00MzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDMyOlxcdG10NzkyeF9tYWNfYXNzb2NfcnNzaShkZXYsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDMzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjQ0Nzp2b2lkIG10NzkyMV9tYWNfYWRkX3R4cyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ0OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDQ5OlxcdHN0cnVjdCBtdDc5MnhfbGlua19zdGEgKm1saW5rO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ1MC1cXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNDcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjQ3MzpcXHRtbGluayA9IGNvbnRhaW5lcl9vZih3Y2lkLCBzdHJ1Y3QgbXQ3OTJ4X2xpbmtfc3RhLCB3Y2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00NzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy00ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NDg1OnN0YXRpYyB2b2lkIG10NzkyMV9tYWNfdHhfZnJlZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTQ4Ni17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01MTQtXFx0XFx0aWYgKGluZm8gXFx1MDAyNiBNVF9UWF9GUkVFX1BBSVIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1MTU6XFx0XFx0XFx0c3RydWN0IG10NzkyeF9saW5rX3N0YSAqbWxpbms7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTE2LVxcdFxcdFxcdHUxNiBpZHg7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01MjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTI1OlxcdFxcdFxcdG1saW5rID0gY29udGFpbmVyX29mKHdjaWQsIHN0cnVjdCBtdDc5MnhfbGlua19zdGEsIHdjaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTUyNi1cXHRcXHRcXHRtdDc2X3djaWRfYWRkX3BvbGwoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NiwgXFx1MDAyNm1saW5rLVxcdTAwM2V3Y2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU2Mj1ib29sIG10NzkyMV9yeF9jaGVjayhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTYzLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1NjQ6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTY1LVxcdF9fbGUzMiAqcnhkID0gKF9fbGUzMiAqKWRhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz01ODY9dm9pZCBtdDc5MjFfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1ODk6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTkwLVxcdF9fbGUzMiAqcnhkID0gKF9fbGUzMiAqKXNrYi1cXHUwMDNlZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTYzMD1tdDc5MjFfdmlmX2Nvbm5lY3RfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjMyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo2MzM6XFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYzNDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXZpZi1cXHUwMDNlcGh5LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjM1LVxcdHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3ID0gbXQ3Nl9odyhkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NjU1PXZvaWQgbXQ3OTIxX21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02NTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY1NzpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtdDc5MnhfZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY1OC1cXHRcXHRcXHRcXHRcXHQgICAgICByZXNldF93b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTY3My1cXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubXV0ZXgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjY3NDpcXHRcXHRyZXQgPSBtdDc5MnhfZGV2X3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjc1LVxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm11dGV4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTcwOD12b2lkIG10NzkyMV9jb3JlZHVtcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MDkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjcxMDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTcxMS1cXHRjaGFyICpkdW1wLCAqZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzEzOlxcdGRldiA9IChzdHJ1Y3QgbXQ3OTJ4X2RldiAqKWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03MTQtXFx0XFx0XFx0XFx0XFx0XFx0Y29yZWR1bXAud29yay53b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3NTI6XFx0bXQ3OTJ4X3Jlc2V0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc1My19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz03NTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3NTc6bXQ3OTIxX3VzYl9zZGlvX3dyaXRlX3R4d2koc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IG10NzZfd2NpZCAqd2NpZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03NTgtXFx0XFx0XFx0ICAgZW51bSBtdDc2X3R4cV9pZCBxaWQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz03Njk9aW50IG10NzkyMV91c2Jfc2Rpb190eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKnR4d2lfcHRyLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzczLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo3NzQ6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNzc1LVxcdHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0IodHhfaW5mby1cXHUwMDNlc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTc5MC1cXHRpZiAoc3RhKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NzkxOlxcdFxcdHN0cnVjdCBtdDc5Mnhfc3RhICptc3RhID0gKHN0cnVjdCBtdDc5Mnhfc3RhICopc3RhLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy03OTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04MDItXFx0dHlwZSA9IG10NzZfaXNfc2RpbyhtZGV2KSA/IE1UNzkyMV9TRElPX0RBVEEgOiAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjgwMzpcXHRtdDc5Mnhfc2tiX2FkZF91c2Jfc2Rpb19oZHIoZGV2LCBza2IsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTgwNC1cXHRwYWQgPSByb3VuZF91cChza2ItXFx1MDAzZWxlbiwgNCkgLSBza2ItXFx1MDAzZWxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTgzOD1ib29sIG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHU4ICp1cGRhdGUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODM5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo4NDA6XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjg0MjpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg0My1cXHRtdDc5MjFfbWFjX3N0YV9wb2xsKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODQ0OlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODQ1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9ODUxPXZvaWQgbXQ3OTIxX3NldF9pcHY2X25zX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTg1Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODUzOlxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IG10NzkyeF9kZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODU0LVxcdFxcdFxcdFxcdFxcdCAgICAgIGlwdjZfbnNfd29yayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy04NjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODY0OlxcdFxcdG10NzkyeF9tdXRleF9hY3F1aXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY1LVxcdFxcdHJldCA9IG10NzZfbWN1X3NrYl9zZW5kX21zZyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY2LVxcdFxcdFxcdFxcdFxcdCAgICBNQ1VfVU5JX0NNRChPRkZMT0FEKSwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6ODY3OlxcdFxcdG10NzkyeF9tdXRleF9yZWxlYXNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtODY4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTEzPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MTQ6bXQ3OTIxX2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xNS1cXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0xOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjE5Njp2b2lkIG10NzkyMV9zZXRfc3RyZWFtX2hlX2NhcHMoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMTk3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjIyNzppbnQgX19tdDc5MjFfc3RhcnQoc3RydWN0IG10NzkyeF9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI0ODpcXHRtdDc5MnhfbWFjX3Jlc2V0X2NvdW50ZXJzKHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI0OS1cXHRzZXRfYml0KE1UNzZfU1RBVEVfUlVOTklORywgXFx1MDAyNm1waHktXFx1MDAzZXN0YXRlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0yNzI9c3RhdGljIGludCBtdDc5MjFfc3RhcnQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI3NDpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3NS1cXHRpbnQgZXJyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI3NzpcXHRtdDc5MnhfbXV0ZXhfYWNxdWlyZShwaHktXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI3OC1cXHRlcnIgPSBfX210NzkyMV9zdGFydChwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyNzk6XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Mjg0PXN0YXRpYyB2b2lkIG10NzkyMV9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBib29sIHN1c3BlbmQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4NS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjI4NjpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTI4Ny1cXHRpbnQgZXJyID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0yODktXFx0aWYgKG10NzZfaXNfbW1pbyhcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTA6XFx0XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjkxLVxcdFxcdGVyciA9IG10NzkyMV9tY3VfcmFkaW9fbGVkX2N0cmwoZGV2LCBFWFRfQ01EX1JBRElPX09GRl9MRUQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTI6XFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjkzLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjk2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzoyOTc6XFx0bXQ3OTJ4X3N0b3AoaHcsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMjk4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYz0zMDE9bXQ3OTIxX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMwMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwMzpcXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwNDpcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gbXQ3OTJ4X2h3X2Rldihodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjMwNTpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gbXQ3OTJ4X2h3X3BoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTMwNi1cXHRzdHJ1Y3QgbXQ3Nl90eHEgKm10eHE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozMDk6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzEwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1NC1cXHRJTklUX1dPUksoXFx1MDAyNm12aWYtXFx1MDAzZWNzYV93b3JrLCBtdDc5MjFfY3NhX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozNTU6XFx0dGltZXJfc2V0dXAoXFx1MDAyNm12aWYtXFx1MDAzZWNzYV90aW1lciwgbXQ3OTJ4X2NzYV90aW1lciwgMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM1Ni1vdXQ6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM1NzpcXHRtdDc5MnhfbXV0ZXhfcmVsZWFzZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9MzYyPXN0YXRpYyB2b2lkIG10NzkyMV9yb2NfaXRlcih2b2lkICpwcml2LCB1OCAqbWFjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM2NTpcXHRzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqbXZpZiA9IChzdHJ1Y3QgbXQ3OTJ4X3ZpZiAqKXZpZi1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM2NjpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzY3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzcxOnZvaWQgbXQ3OTIxX3JvY19hYm9ydF9zeW5jKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM3Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jOjM3MzpcXHRzdHJ1Y3QgbXQ3OTJ4X3BoeSAqcGh5ID0gXFx1MDAyNmRldi1cXHUwMDNlcGh5O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM9Mzg3PXZvaWQgbXQ3OTIxX3JvY193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6Mzg5OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTM5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6MzkxOlxcdHBoeSA9IChzdHJ1Y3QgbXQ3OTJ4X3BoeSAqKWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbXQ3OTJ4X3BoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkyLVxcdFxcdFxcdFxcdFxcdFxcdHJvY193b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtMzkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozOTQ6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zOTUtXFx0aWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoTVQ3Nl9TVEFURV9ST0MsIFxcdTAwMjZwaHktXFx1MDAzZW10NzYtXFx1MDAzZXN0YXRlKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzozOTY6XFx0XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy0zOTctXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQwMS1cXHRcXHRcXHRcXHRcXHQgICAgbXQ3OTIxX3JvY19pdGVyLCBwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MDI6XFx0bXQ3OTJ4X211dGV4X3JlbGVhc2UocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MDMtXFx0aWVlZTgwMjExX3JlbWFpbl9vbl9jaGFubmVsX2V4cGlyZWQocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2Vodyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDA1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MDY6c3RhdGljIGludCBtdDc5MjFfYWJvcnRfcm9jKHN0cnVjdCBtdDc5MnhfcGh5ICpwaHksIHN0cnVjdCBtdDc5MnhfdmlmICp2aWYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQwNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0MTM6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTQtXFx0aWYgKHRlc3RfYW5kX2NsZWFyX2JpdChNVDc2X1NUQVRFX1JPQywgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc3RhdGUpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00MTUtXFx0XFx0ZXJyID0gbXQ3OTIxX21jdV9hYm9ydF9yb2MocGh5LCB2aWYsIHBoeS1cXHUwMDNlcm9jX3Rva2VuX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDE2OlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKHBoeS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jLTQyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDIxOnN0YXRpYyBpbnQgbXQ3OTIxX3NldF9yb2Moc3RydWN0IG10NzkyeF9waHkgKnBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDIyOlxcdFxcdFxcdCAgc3RydWN0IG10NzkyeF92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDIzLVxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ1MT1zdGF0aWMgaW50IG10NzkyMV9yZW1haW5fb25fY2hhbm5lbChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NTYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NTc6XFx0c3RydWN0IG10NzkyeF92aWYgKm12aWYgPSAoc3RydWN0IG10NzkyeF92aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NTg6XFx0c3RydWN0IG10NzkyeF9waHkgKnBoeSA9IG10NzkyeF9od19waHkoaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NTktXFx0aW50IGVycjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYzo0NjE6XFx0bXQ3OTJ4X211dGV4X2FjcXVpcmUocGh5LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21haW4uYy00NjItXFx0ZXJyID0gbXQ3OTIxX3NldF9yb2MocGh5LCBtdmlmLCBjaGFuLCBkdXJhdGlvbiwgTVQ3OTIxX1JPQ19SRVFfUk9DKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDYzOlxcdG10NzkyeF9tdXRleF9yZWxlYXNlKHBoeS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDY0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ2OD1zdGF0aWMgaW50IG10NzkyMV9jYW5jZWxfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDcwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDcxOlxcdHN0cnVjdCBtdDc5MnhfdmlmICptdmlmID0gKHN0cnVjdCBtdDc5MnhfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDcyOlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtdDc5MnhfaHdfcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFpbi5jPTQ3Nz1pbnQgbXQ3OTIxX3NldF9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmMtNDc4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWluLmM6NDc5OlxcdHN0cnVjdCBtdDc5MnhfcGh5ICpwaHkgPSBtcGh5LVxcdTAwM2Vwcml2O1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyMzo1My4zMDAxMjI4MDFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTczMjQ1MzcwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFBhdGNoOiBNZWRpYXRlayBNVDc2IERyaXZlciBGZWF0dXJlIENoYW5nZSoqXG5cbk9rYXksIHNvIEkndmUgc3BvdHRlZCBgbXQ3OTJ4LXVzYi15YCBpbiB0aGUgYG10NzZgIE1ha2VmaWxlLiBBbmQgYG10NzkyMWAgaXMgc3BlY2lmaWNhbGx5IGEgZHJpdmVyIGxpc3RlZCB0aGVyZS4gVGhhdCBtZWFucyB0aGUgYG10NzZgIGZhbWlseSBoYXMgYSBVU0IgZHJpdmVyIHRoYXQgaXMgYSBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIFRoaXMgcGF0Y2ggbW9kaWZpZXMgYG1hYzgwMjExLmNgIGFuZCBgbXQ3OTJ4X2NvcmUuY2AsIHdoaWNoIGltbWVkaWF0ZWx5IHJhaXNlcyBteSBpbnRlcmVzdCDigJMgYW55dGhpbmcgdG91Y2hpbmcgY29yZSBmdW5jdGlvbmFsaXR5IGlzIHdvcnRoIGEgY2xvc2VyIGxvb2suXG5cbkkga25vdyBgbXQ3NmAgaGFzIG90aGVyIFVTQiBkcml2ZXJzIGxpa2UgYG10NzZ4MDItdXNiYCwgYG10NzZ4MnVgLCBhbmQgYG10NzkyMXVgLCBhbmQgYmVjYXVzZSBpdCdzIGEgVVNCIGRyaXZlciwgdGhlIFVTQiBnYWRnZXQgZnJhbWV3b3JrICh2aGNpKSBvcGVucyB1cCBmdXp6aW5nIHBvc3NpYmlsaXRpZXMgd2l0aGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoaXMgcGF0Y2ggaXMgZGVmaW5pdGVseSByZWFjaGFibGUuXG5cbk5vdywgbGV0J3MgZGlzc2VjdCB0aGUgY29kZSBjaGFuZ2VzIG1vcmUgY2FyZWZ1bGx5LiBJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBkaXNhYmxlcyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmb3IgYG10NzkyeGAgZGV2aWNlcy4gSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgaXQncyBhIHJlbGF0aXZlbHkgc2ltcGxlIG9uZSwgb25seSByZW1vdmluZyBhIGZlYXR1cmUgZmxhZyBkdXJpbmcgaW5pdGlhbGl6YXRpb24uIEl0IG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBwYXRocyBpbiBgbXQ3OTJ4X2luaXRfd2lwaHlgIGFuZCBgbXQ3Nl9waHlfaW5pdGAuIEJhc2ljYWxseSwgc2V0dGluZyBhIGJvb2xlYW4gYW5kIGNoZWNraW5nIGl0LlxuXG5UaGUgcmVhbCBxdWVzdGlvbiBpcywgaXMgdGhpcyB3b3J0aCBmdXp6aW5nPyBJdCBpc24ndCBhZGRpbmcgY29tcGxleCBuZXcgbG9naWMsIGp1c3QgcmVtb3ZpbmcgYSBmZWF0dXJlIGFkdmVydGlzZW1lbnQuIEhvd2V2ZXIsIGl0ICppcyogYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gYSBVU0ItcmVhY2hhYmxlIGRyaXZlciwgYW5kIEkga25vdyB0aGF0IGV2ZW4gc21hbGwgY2hhbmdlcyBjYW4gc29tZXRpbWVzIGhhdmUgdW5leHBlY3RlZCBpbXBsaWNhdGlvbnMgaW4gY29tcGxleCBzeXN0ZW1zLiBJdCdzIHdvcnRoIGRpZ2dpbmcgaW50byB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBgbXQ3NmAgYW5kIGBtdDc5MjF1YCB0byBzZWUgaG93IHRoaXMgZmVhdHVyZSBmbGFnIGltcGFjdHMgdGhlIG92ZXJhbGwgZHJpdmVyIGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTkxMywiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk1OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyNDowNS4wMzI1Nzk2MzdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIyMjExMzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc5MjFVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9MTc9Y29uZmlnIE1UNzkyMVNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMjktXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjQ6MDUuMTU0ODAxNjQ4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQ1MzQ0NTU3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBob3cgSSdkIGFwcHJvYWNoIHRoYXQga2VybmVsIGNvbmZpZ3VyYXRpb24gZmlsZSBjaGVjazpcblxuKipFeGFtaW5pbmcgdGhlIE1UNzkyMSBhbmQgTVQ3OTJ4IEtjb25maWcgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaG93IHRoZSBgTVQ3OTIxVWAgYW5kIGBNVDc5MnhgIHdpcmVsZXNzIGRyaXZlcnMgYXJlIGNvbmZpZ3VyZWQgd2l0aGluIHRoZSBNZWRpYXRlayBmcmFtZXdvcmsuIE15IGZpcnN0IHN0b3Agd2lsbCBiZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ2AuIFRoaXMgS2NvbmZpZyBmaWxlIHdpbGwgYmUgdGhlIGNlbnRyYWwgcG9pbnQgb2YgdHJ1dGggZm9yIGhvdyB0aGVzZSBkcml2ZXJzIGFyZSBicm91Z2h0IGludG8gdGhlIGtlcm5lbCBidWlsZC4gSSdsbCBiZSBsb29raW5nIHNwZWNpZmljYWxseSBmb3IgYW55IGNvbmRpdGlvbmFsIGRlcGVuZGVuY2llcyByZWxhdGVkIHRvIGBNVDc5MjFVYCBhbmQgdGhlIGJyb2FkZXIgYE1UNzkyeGAgZmFtaWx5LiBUaGVzZSBkZXBlbmRlbmNpZXMgY291bGQgaW52b2x2ZSBvdGhlciBrZXJuZWwgZmVhdHVyZXMsIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLCBvciBldmVuIHNwZWNpZmljIE1lZGlhdGVrIHBsYXRmb3JtIGRlZmluZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgbmVlZHMgdG8gYmUgZW5hYmxlZCBvciBkZWZpbmVkIHRvIGVuc3VyZSBwcm9wZXIgc3VwcG9ydCBmb3IgdGhlc2UgcGFydGljdWxhciB3aXJlbGVzcyBjaGlwcy4gVGhpcyB3aWxsIGFsbG93IG1lIHRvIHRyYWNrIGRvd24gaG93IHRoZXNlIGNoaXBzIGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUgd2lyZWxlc3Mgc3RhY2suIFRoZSBnb2FsIGhlcmUgaXMgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQgb3RoZXIgc2V0dGluZ3Mgd2lsbCBlbmFibGUgcHJvcGVyIGJ1aWxkIG9wdGlvbnMgZm9yIHRoZXNlIGNvbXBvbmVudHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNDU3LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjQ6MDkuNjA4MjUwMDY0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA2MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyMV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjFFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIE1UNzkyMVNcXG4gIDE4OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFTIChTRElPKSBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0c2VsZWN0IE1UNzZfU0RJT1xcbiAgMjA6XFx0XFx0c2VsZWN0IE1UNzkyMV9DT01NT05cXG4gIDIxOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gTU1DXFxuICAyMzpcXHRcXHRoZWxwXFxuICAyNDpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFTIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cXG4gIDI1OlxcdFxcbiAgMjY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMjc6XFx0XFxuICAyODpcXHRjb25maWcgTVQ3OTIxVVxcbiAgMjk6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFxcXCJcXG4gIDMwOlxcdFxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuICAzMTpcXHRcXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxcbiAgMzI6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMzM6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDM0OlxcdFxcdGhlbHBcXG4gIDM1OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyMVUgODAyLjExYXggMngyOjJTUyB3aXJlbGVzcyBkZXZpY2VzLlxcbiAgMzY6XFx0XFxuICAzNzpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI0OjA5LjYwODMxMjIyNFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIzMjE0NTYwNTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3OTIxVSBVU0IgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIGBNVDc5MjFVYCBVU0IgZHJpdmVyLiBTZWVtcyBsaWtlIGl0J3MgcHJpbWFyaWx5IHRvdWNoaW5nIGBtdDc2X3BoeV9pbml0YCBhbmQgYG10NzkyeF9pbml0X3dpcGh5YCwgYm90aCBvZiB3aGljaCBhcmUgY3JpdGljYWwgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiDigJMgdGhlIHVzdWFsIHN1c3BlY3RzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIFwiSXMgdGhpcyBmdXp6YWJsZSwgYW5kIGlzIGl0IHdvcnRoIHRoZSBlZmZvcnQ/XCJcblxuVGhlIHBhdGNoIGl0c2VsZiBpcyByaWRpY3Vsb3VzbHkgc2ltcGxlOyBpdCdzIGp1c3Qgc2V0dGluZyBhIGNvdXBsZSBvZiBmZWF0dXJlIGZsYWdzOiBzZXR0aW5nICBgTkw4MDIxMV9GRUFUVVJFX0FQX01PREVfQ0hBTl9XSURUSF9DSEFOR0VgIGFuZCBwb3RlbnRpYWxseSBzZXR0aW5nIGBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1JgLCBhbmQgaXQgYWxzbyBzZXRzIGBwaHktXHUwMDNlbXQ3Ni1cdTAwM2Vub19hY3RpdmVfbW9uaXRvciA9IHRydWVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGJ1dCBpdCdzIGp1c3QgZmxpcHBpbmcgYSBmZXcgYml0cy4gRnV6emluZyAqdGhpcyBzcGVjaWZpYyBjb2RlKiBpcyB1bmxpa2VseSB0byB1bmNvdmVyIGFueXRoaW5nIGludGVyZXN0aW5nIGJlY2F1c2UgdGhlIGxvZ2ljIGlzIHNvIHRyaXZpYWwuIEJ1dC4uLiBpdCBkb2VzIG1vZGlmeSBkcml2ZXIgYmVoYXZpb3IuIEl0J3Mgbm93ICpub3QqIGFkdmVydGlzaW5nIGBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1JgLlxuXG5JZiB0aGUgZ29hbCBpcyB0byBmdXp6IHRoZSBkcml2ZXIgZWZmZWN0aXZlbHksIGZvY3VzaW5nIG9uIGBtdDc2X3BoeV9pbml0YCBhbmQgYG10NzkyeF9pbml0X3dpcGh5YCBpcyB0aGUgd2F5IHRvIGdvLiBIb3dldmVyLCBhIHF1aWNrIHJlbWluZGVyOiBgbXQ3Nl9waHlfaW5pdGAgaXMgYSBnZW5lcmFsIGZ1bmN0aW9uIHVzZWQgYWNyb3NzICphbGwqIGBtdDc2YCBkcml2ZXJzLiBgbXQ3OTJ4X2luaXRfd2lwaHlgLCBob3dldmVyLCBpcyBzcGVjaWZpYyB0byB0aGUgYG10NzkyeGAgZmFtaWx5LiBOb3csIEkgbmVlZCB0byBjaGVjayB0byBzZWUgaWYgdGhlcmUgYXJlIG90aGVyIGRyaXZlcnMgdGhhdCB1c2UgdGhpcyBgbXQ3OTJ4YCBwcmVmaXgsIHRvIHNlZSBpZiB0aGUgZnV6emluZyBlZmZvcnQgaXMgYmVzdCBhcHBsaWVkIHRvIHRoZSBzcGVjaWZpYyBjaGlwLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjMzNywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMyMiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI0OjMyLjgyMjg3NjEwOFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODQ2MTg4ODQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc5MjJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI0OjMyLjkwNzUwMjYyMloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNTg3ODM5NTQxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpdmUgaW50byB0aGUga2VybmVsIHNvdXJjZSB0cmVlLCBzcGVjaWZpY2FsbHkgbG9va2luZyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IGRlZmluZXMgdGhlIGJ1aWxkIG9wdGlvbnMgZm9yIHRoYXQgTWVkaWF0ZWsgTVQ3OTI1IHdpcmVsZXNzIGRyaXZlci4gSSdkIHN0YXJ0IHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L0tjb25maWdgLCBvciBzb21ldGhpbmcgdmVyeSBzaW1pbGFyLCBhcyB0aGF0J3MgdXN1YWxseSB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgY29uZmlndXJhdGlvbiBsaXZlcy4gR290dGEgYmUgZWZmaWNpZW50IGhlcmUuIFRoaXMgS2NvbmZpZyBmaWxlIHdpbGwgYmUgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaXMgYmVpbmcgY29tcGlsZWQsIHdoYXQgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIGFuZCBhbnkgZGVwZW5kZW5jaWVzIGl0IG1pZ2h0IGhhdmUuIFVuZGVyc3RhbmRpbmcgdGhpcyBmaWxlIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBidWlsZCBzeXN0ZW0gZm9yIHRoZSBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDk1LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjQ6NDguNzg1OTAxNDM0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImNvZGVzZWFyY2gtZGlyLWluZGV4IiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY0MTkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiYWdnLXJ4LmNcIixcbiAgICBcImNoYW5uZWwuY1wiLFxuICAgIFwiZGVidWdmcy5jXCIsXG4gICAgXCJkbWEuY1wiLFxuICAgIFwiZG1hLmhcIixcbiAgICBcImVlcHJvbS5jXCIsXG4gICAgXCJtYWM4MDIxMS5jXCIsXG4gICAgXCJtY3UuY1wiLFxuICAgIFwibW1pby5jXCIsXG4gICAgXCJtdDc2LmhcIixcbiAgICBcIm10NzZfY29ubmFjLmhcIixcbiAgICBcIm10NzZfY29ubmFjMl9tYWMuaFwiLFxuICAgIFwibXQ3Nl9jb25uYWMzX21hYy5jXCIsXG4gICAgXCJtdDc2X2Nvbm5hYzNfbWFjLmhcIixcbiAgICBcIm10NzZfY29ubmFjX21hYy5jXCIsXG4gICAgXCJtdDc2X2Nvbm5hY19tY3UuY1wiLFxuICAgIFwibXQ3Nl9jb25uYWNfbWN1LmhcIixcbiAgICBcIm10NzZ4MDIuaFwiLFxuICAgIFwibXQ3NngwMl9iZWFjb24uY1wiLFxuICAgIFwibXQ3NngwMl9kZWJ1Z2ZzLmNcIixcbiAgICBcIm10NzZ4MDJfZGZzLmNcIixcbiAgICBcIm10NzZ4MDJfZGZzLmhcIixcbiAgICBcIm10NzZ4MDJfZG1hLmhcIixcbiAgICBcIm10NzZ4MDJfZWVwcm9tLmNcIixcbiAgICBcIm10NzZ4MDJfZWVwcm9tLmhcIixcbiAgICBcIm10NzZ4MDJfbWFjLmNcIixcbiAgICBcIm10NzZ4MDJfbWFjLmhcIixcbiAgICBcIm10NzZ4MDJfbWN1LmNcIixcbiAgICBcIm10NzZ4MDJfbWN1LmhcIixcbiAgICBcIm10NzZ4MDJfbW1pby5jXCIsXG4gICAgXCJtdDc2eDAyX3BoeS5jXCIsXG4gICAgXCJtdDc2eDAyX3BoeS5oXCIsXG4gICAgXCJtdDc2eDAyX3JlZ3MuaFwiLFxuICAgIFwibXQ3NngwMl90cmFjZS5jXCIsXG4gICAgXCJtdDc2eDAyX3RyYWNlLmhcIixcbiAgICBcIm10NzZ4MDJfdHhyeC5jXCIsXG4gICAgXCJtdDc2eDAyX3VzYi5oXCIsXG4gICAgXCJtdDc2eDAyX3VzYl9jb3JlLmNcIixcbiAgICBcIm10NzZ4MDJfdXNiX21jdS5jXCIsXG4gICAgXCJtdDc2eDAyX3V0aWwuY1wiLFxuICAgIFwibXQ3OTJ4LmhcIixcbiAgICBcIm10NzkyeF9hY3BpX3Nhci5jXCIsXG4gICAgXCJtdDc5MnhfYWNwaV9zYXIuaFwiLFxuICAgIFwibXQ3OTJ4X2NvcmUuY1wiLFxuICAgIFwibXQ3OTJ4X2RlYnVnZnMuY1wiLFxuICAgIFwibXQ3OTJ4X2RtYS5jXCIsXG4gICAgXCJtdDc5MnhfbWFjLmNcIixcbiAgICBcIm10NzkyeF9yZWdzLmhcIixcbiAgICBcIm10NzkyeF90cmFjZS5jXCIsXG4gICAgXCJtdDc5MnhfdHJhY2UuaFwiLFxuICAgIFwibXQ3OTJ4X3VzYi5jXCIsXG4gICAgXCJucHUuY1wiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInNjYW4uY1wiLFxuICAgIFwic2Rpby5jXCIsXG4gICAgXCJzZGlvLmhcIixcbiAgICBcInNkaW9fdHhyeC5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5jXCIsXG4gICAgXCJ0ZXN0bW9kZS5oXCIsXG4gICAgXCJ0cmFjZS5jXCIsXG4gICAgXCJ0cmFjZS5oXCIsXG4gICAgXCJ0eC5jXCIsXG4gICAgXCJ1c2IuY1wiLFxuICAgIFwidXNiX3RyYWNlLmNcIixcbiAgICBcInVzYl90cmFjZS5oXCIsXG4gICAgXCJ1dGlsLmNcIixcbiAgICBcInV0aWwuaFwiLFxuICAgIFwid2VkLmNcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogW1xuICAgIFwibXQ3NjAzXCIsXG4gICAgXCJtdDc2MTVcIixcbiAgICBcIm10NzZ4MFwiLFxuICAgIFwibXQ3NngyXCIsXG4gICAgXCJtdDc5MTVcIixcbiAgICBcIm10NzkyMVwiLFxuICAgIFwibXQ3OTI1XCIsXG4gICAgXCJtdDc5OTZcIlxuICBdXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyNDo0OC43ODYwNjc0NTRaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkzNTIzOTI1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipOYXZpZ2F0aW5nIHRoZSBNVDc5MjUgRHJpdmVyIExhbmRzY2FwZSoqXG5cblJpZ2h0LCB0aGVyZSdzIGBtdDc5MjVgLiBNeSBpbW1lZGlhdGUgcmVmbGV4IGlzIHRvIGRpdmUgaW50byBpdHMgY29uZmlndXJhdGlvbiDigJMgc3BlY2lmaWNhbGx5LCB0aGUgYEtjb25maWdgIGZpbGUuIEknbSBnb2luZyBzdHJhaWdodCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ2AuIFRoYXQncyB3aGVyZSB0aGUgaW5pdGlhbCBkZWNpc2lvbi1tYWtpbmcgaGFwcGVucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hpY2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCwgaG93IHRoZXkncmUgZXhwb3NlZCB0aHJvdWdoIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgYW5kLCBvZiBjb3Vyc2UsIGFueSBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgb24gb3RoZXIga2VybmVsIHN1YnN5c3RlbXMgb3IgZmVhdHVyZXMuIFRoaXMgZmlsZSBpcyB0aGUgYmVkcm9jayBmb3IgY3VzdG9taXppbmcgdGhlIGJ1aWxkIGZvciBhIHNwZWNpZmljIHVzZSBjYXNlLCBzbyBpdCBpcyB0aGUgb2J2aW91cyBwbGFjZSB0byBzdGFydC4gTG9va2luZyBhdCBgS2NvbmZpZ2AgaW1tZWRpYXRlbHkgZ2l2ZXMgYSBoaWdoLWxldmVsIHZpZXcgb2Ygd2hhdCdzICpwb3NzaWJsZSogd2l0aCB0aGlzIGRyaXZlci4gRnJvbSB0aGVyZSwgSSBjYW4gZ2V0IGEgZmVlbCBmb3IgdGhlIGRlc2lnbiBjaG9pY2VzIGFuZCBwb3RlbnRpYWwgYXJlYXMgdG8gc2NydXRpbml6ZSBiYXNlZCBvbiBwZXJmb3JtYW5jZSBhbmQgcG93ZXIgY29uc3VtcHRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MTA2LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI0OjU0LjcyMTMwOTU1NloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTA4OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyNV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjVFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTI1RSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjVfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTI1LWJhc2VkIHdpcmVsZXNzIFBDSWUgZGV2aWNlcyxcXG4gIDE0OlxcdFxcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXFxuICAxNTpcXHRcXHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgTVQ3OTI1VVxcbiAgMjA6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyNVUgKFVTQikgc3VwcG9ydFxcXCJcXG4gIDIxOlxcdFxcdHNlbGVjdCBNVDc5MnhfVVNCXFxuICAyMjpcXHRcXHRzZWxlY3QgTVQ3OTI1X0NPTU1PTlxcbiAgMjM6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMjQ6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDI1OlxcdFxcdGhlbHBcXG4gIDI2OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyNS1iYXNlZCB3aXJlbGVzcyBVU0IgZGV2aWNlcyxcXG4gIDI3OlxcdFxcdCAgd2hpY2ggc3VwcG9ydCBvcGVyYXRpb24gYXQgNkdIeiwgNUdIeiwgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWJlXFxuICAyODpcXHRcXHQgIDJ4MjoyU1MgNDA5Ni1RQU0sIDE2ME1IeiBjaGFubmVscy5cXG4gIDI5OlxcdFxcbiAgMzA6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyNDo1NC43MjE0MjI3MzZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDMyNTY0NTUxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEltcGFjdCBvZiB0aGUgYE1UNzkyNVVgIFVTQiBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBgTVQ3OTI1VWAgaXMgaW5kZWVkIGEgVVNCIGRyaXZlciwgd2hpY2ggaXMgZ29vZCB0byBrbm93LiBUaGlzIHBhdGNoIHNwZWNpZmljYWxseSBkaXNhYmxlcyBgTkw4MDIxMV9GRUFUVVJFX0FDVElWRV9NT05JVE9SYCBmb3IgdGhlIGBtdDc5MnhgIGZhbWlseSBvZiBkZXZpY2VzLiBUaGUgcXVlc3Rpb24gbm93IGlzOiBkb2VzIHRoaXMgd2FycmFudCBmdXp6aW5nPyBBYnNvbHV0ZWx5LCBpdCBkb2VzLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIGEgZHJpdmVyIHRoYXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZSwgbWFraW5nIGl0IGEgcHJpbWUgdGFyZ2V0LlxuXG5NeSBpbml0aWFsIGZvY3VzIHN5bWJvbHMgd291bGQgYmUgYG10NzZfcGh5X2luaXRgIGFuZCBgbXQ3OTJ4X2luaXRfd2lwaHlgLiBCdXQgaG9sZCBvbi4uLiBgbXQ3Nl9waHlfaW5pdGAgc2VlbXMgdG8gYmUgdXNlZCBhY3Jvc3MgKmFsbCogYG10NzZgIGRyaXZlcnMsIHNvIGl0J3MgcHJvYmFibHkgbm90IGFzIHNwZWNpZmljIGEgY2hhbmdlIGFzIEkgaW5pdGlhbGx5IHRob3VnaHQuIExldCdzIHF1aWNrbHkgdmVyaWZ5IHRoYXQgdGhlcmUgYXJlbid0IGFueSBvdGhlciBtb2RpZmllZCBmdW5jdGlvbnMuIE5vcGUsIGxvb2tzIGxpa2UgYG10NzkyeF9pbml0X3dpcGh5YCBpcyB0aGUga2V5IGZ1bmN0aW9uIHRvIGludmVzdGlnYXRlIGZ1cnRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0ODkwLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQ3LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjQ6NTkuMDQ3MDcxNTgxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDY2MDc1NDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyeF9pbml0X3dpcGh5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYz0xNzA9aW50IG10NzkyMV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2luaXQuYy0yMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jOjIyNzpcXHRyZXQgPSBtdDc5MnhfaW5pdF93aXBoeShodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvaW5pdC5jLTIyOC1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jPTIwNj1pbnQgbXQ3OTI1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvaW5pdC5jLTI2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmM6MjYxOlxcdHJldCA9IG10NzkyeF9pbml0X3dpcGh5KGh3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9pbml0LmMtMjYyLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTQ2Mj1pbnQgbXQ3OTJ4X3BtX2lkbGVfdGltZW91dF9nZXQodm9pZCAqZGF0YSwgdTY0ICp2YWwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDYzOmludCBtdDc5MnhfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NjQtc3RydWN0IGllZWU4MDIxMV9vcHMgKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jPTY1OT1FWFBPUlRfU1lNQk9MX0dQTChtdDc5Mnhfc2V0X2NvdmVyYWdlX2NsYXNzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9jb3JlLmMtNjYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYzo2NjE6aW50IG10NzkyeF9pbml0X3dpcGh5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2NvcmUuYy02NjIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTc0NS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jOjc0NjpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfaW5pdF93aXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfY29yZS5jLTc0Ny1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjU6MDAuNTEzMTU0NDc4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwMTc3OTE1NDU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZyBEZWNpc2lvbiBmb3IgYSBTaW1wbGUgRHJpdmVyIENoYW5nZSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb25zIGBtdDc2X3BoeV9pbml0YCBhbmQgYG10NzkyeF9pbml0X3dpcGh5YCwgYW5kIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9ucyBgTVQ3OTIxVWAgYW5kIGBNVDc5MjVVYC4gVGhlIHBhdGNoIGl0c2VsZiBpcyB0cml2aWFsOiBpdCdzIGFkZGluZyBvciByZW1vdmluZyBhIGNvdXBsZSBvZiBmZWF0dXJlIGZsYWdzOlxuXG5gYGBjXG5cdHdpcGh5LVx1MDAzZWZlYXR1cmVzIHw9IE5MODAyMTFfRkVBVFVSRV9BUF9NT0RFX0NIQU5fV0lEVEhfQ0hBTkdFO1xuXHRpZiAoIXBoeS1cdTAwM2Vub19hY3RpdmVfbW9uaXRvcilcblx0XHR3aXBoeS1cdTAwM2VmZWF0dXJlcyB8PSBOTDgwMjExX0ZFQVRVUkVfQUNUSVZFX01PTklUT1I7XG5gYGBcblxuSXQgbG9va3MgbGlrZSB3ZSdyZSBqdXN0IGVuYWJsaW5nIG9yIGRpc2FibGluZyB0aGVzZSBmbGFncy4gVGhlIHF1ZXN0aW9uIGlzLCBzaG91bGQgSSBmdXp6IHRoaXM/IFRoZSBwcm9tcHQncyBndWlkZWxpbmVzIGFyZSBjbGVhcjogY2hhbmdlcyB0byBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb21tZW50cywgbG9nZ2luZywgb3IgcHVyZWx5IGRlY29yYXRpdmUgY29uc3RhbnRzIGdldCBhIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBDaGFuZ2VzIHRvIHVucmVhY2hhYmxlIGNvZGUgcGF0aHMgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBsaWtlIFVTQiBnYWRnZXQgbW9kZSwgd291bGQgYWxzbyBnZXQgYSBmYWxzZS4gSG93ZXZlciwgSWYgaXQgdG91Y2hlcyAqcmVhY2hhYmxlKiBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgKnRoZW4qIGl0J3MgYFdvcnRoRnV6emluZz10cnVlYC5cblxuVGhpcyBtb2RpZmljYXRpb24gY2xlYXJseSB0b3VjaGVzIGRyaXZlciBsb2dpYywgYW5kIFVTQiBlbXVsYXRpb24gbWVhbnMgaXQgKmlzKiByZWFjaGFibGUuIFNvLCB0ZWNobmljYWxseSwgYnkgdGhlIGJvb2ssIGl0J3MgYFdvcnRoRnV6emluZz10cnVlYC4gSG93ZXZlciwgbXkgZ3V0IGlzIHRlbGxpbmcgbWUgdGhpcyBpcyBhbiBpbmNyZWRpYmx5IHNpbXBsZSBjaGFuZ2UuIFdlJ3JlIGp1c3QgZW5hYmxpbmcvZGlzYWJsaW5nIGEgZmVhdHVyZS4gSXQgZG9lc24ndCBpbnRyb2R1Y2UgbXVjaCBjb21wbGV4aXR5LiBJdCdzIGEgYml0IG9mIGEgXCJ5ZWFoLCBidXQuLi5cIiBzaXR1YXRpb24uIFlldCwgSSdtIGdvaW5nIHRvIGhhdmUgdG8gbWFrZSB0aGUgZGVjaXNpb24gdGhhdCwgYmFzZWQgb24gdGhlIHJlcXVpcmVtZW50cywgbXkgYW5zd2VyIGlzIGBXb3J0aEZ1enppbmc9dHJ1ZWAsIGJ1dCBsZXQncyBkb3VibGUgY2hlY2sgdG8gc2VlIGlmIGBtdDc2X3BoeV9pbml0YCBpcyBjYWxsZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBqdXN0IGluIGNhc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MDM0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDA5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIyVDIwOjI1OjMwLjY5MTA3MjEyMloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE0OTExMDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfcGh5X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTQyNj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjQyNzptdDc2X3BoeV9pbml0KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtNDI4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz01NTE9aW50IG10NzZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc2X3BoeSAqcGh5LCBib29sIHZodCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy01NTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjU1NjpcXHRyZXQgPSBtdDc2X3BoeV9pbml0KHBoeSwgcGh5LVxcdTAwM2Vodyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTU1Ny1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTc0Nz1pbnQgbXQ3Nl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZfZGV2ICpkZXYsIGJvb2wgdmh0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTc1NS1cXHRtdDc2X3djaWRfaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VnbG9iYWxfd2NpZCwgcGh5LVxcdTAwM2ViYW5kX2lkeCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjc1NjpcXHRyZXQgPSBtdDc2X3BoeV9pbml0KHBoeSwgaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy03NTctXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjJUMjA6MjU6MzEuMTA1OTg3ODQzWiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzODY0NDk2MjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTVQ3NiBXaXJlbGVzcyBEcml2ZXIgSW5pdGlhbGl6YXRpb24gUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGUgY29kZSBpbiBxdWVzdGlvbiwgc3BlY2lmaWNhbGx5IHRoZSBwYXJ0IEknbSBpbnRlcmVzdGVkIGluLCBpcyBjYWxsZWQgZHVyaW5nIGBtdDc2X3JlZ2lzdGVyX2RldmljZWAgYW5kIGBtdDc2X3JlZ2lzdGVyX3BoeWAuIFRoYXQgbWVhbnMgaXQncyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gR29vZCwgdGhhdCdzIHRoZSBmaXJzdCBodXJkbGUgY2xlYXJlZC5cblxuTm93LCBsZXQncyBnZXQgaW50byB0aGUgc3BlY2lmaWNzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBjb25maWd1cmF0aW9ucyBhcmUgcmVsZXZhbnQuIFRoZSB0ZXh0IG1lbnRpb25zIGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgIGFzIFVTQiBkcml2ZXJzLCBidXQgYXJlIHRob3NlICp0aGUgb25seSogb25lcyBmb3IgYG10NzZgPyBMZXQncyBzZWUuLi4gbG9va2luZyBiYWNrLCB0aGVyZSdzIGFsc28gYE1UNzZ4MFVgLCBgTVQ3NngyVWAsIGBNVDc2MTVVYCAod2FpdCwgaXMgdGhlcmUgZXZlbiBhIFVTQiB2ZXJzaW9uIG9mIHRoZSA3NjE1PykgYW5kIHRoZW4sIHllcywgYE1UNzkyMVVgIGFuZCBgTVQ3OTI1VWAgYWdhaW4uXG5cblRoZSBwYXRjaCBpdHNlbGYgc3BlY2lmaWNhbGx5IGNoYW5nZXMgYG10NzkyeF9pbml0X3dpcGh5YCwgd2hpY2ggaXMsIG9mIGNvdXJzZSwgdXNlZCBieSBgbXQ3OTIxYCBhbmQgYG10NzkyNWAuIEJ1dCwgaGFuZyBvbiwgdGhlIGBtdDc2X3BoeV9pbml0YCBmdW5jdGlvbiAqaXMqIG1vZGlmaWVkLCBhbmQgdGhhdCBpcyB1c2VkIGJ5ICphbGwqIGBtdDc2YCBkcml2ZXJzLiBTbywgYW55IG9mIHRoZSBgbXQ3NmAgVVNCIGRyaXZlcnMgY291bGQgKnBvdGVudGlhbGx5KiB0cmlnZ2VyIHRoZSBtb2RpZmllZCBgbXQ3Nl9waHlfaW5pdGAgY29kZS4gSG93ZXZlciwgdGhlIGtleSBtb2RpZmljYXRpb24gdGFyZ2V0aW5nIGBtdDc5MnhfaW5pdF93aXBoeWAgbWFrZXMgYE1UNzkyMVVgIGFuZCBgTVQ3OTI1VWAgdGhlIG1vc3QgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuIFRoZXkncmUgZGVmaW5pdGVseSB0aGUgYmVzdCBjYW5kaWRhdGVzLlxuXG5MZXQncyBxdWlja2x5IGNoZWNrIGRlcGVuZGVuY2llcyBmb3IgdGhvc2UgdHdvLiBUaGV5IGRlcGVuZCBvbiBgTUFDODAyMTFgIGFuZCBgVVNCYC4gQWxyaWdodCwgbm90aGluZyB1bmV4cGVjdGVkIHRoZXJlLiBTbywgeWVzLCB0aGUgY29uZmlncyBJIHdhbnQgdG8gZm9jdXMgb24gYXJlIGBNVDc5MjFVYCBhbmQgYE1UNzkyNVVgLlxuXG5Pa2F5LCB0aW1lIHRvIGZvcm11bGF0ZSBhIGNvbmNpc2UgcmVzcG9uc2UuIExldCdzIHNlZTpcblxuKiAgICoqV29ydGhGdXp6aW5nOioqIFRydWUgLSB0aGlzIGlzIGNsZWFybHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBkcml2ZXIgbW9kaWZpY2F0aW9uLCB0aGF0J3Mgd29ydGggdGVzdGluZy5cbiogICAqKkZvY3VzU3ltYm9sczoqKiBgbXQ3Nl9waHlfaW5pdGAsIGBtdDc5MnhfaW5pdF93aXBoeWAgLSBUaGVzZSBhcmUgdGhlIGtleSBmdW5jdGlvbnMgbW9kaWZpZWQgYnkgdGhlIHBhdGNoLlxuKiAgICoqRW5hYmxlQ29uZmlnczoqKiBgTVQ3OTIxVWAsIGBNVDc5MjVVYCAtIEJlY2F1c2UgdGhlc2UgY29uZmlncyByZXByZXNlbnQgdGhlIHJlbGV2YW50IFVTQiBkcml2ZXJzLCBJIHdhbnQgdG8gZW5hYmxlIGJvdGguXG4qICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS5cblxuVGhhdCBzaG91bGQgY292ZXIgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MzQ1LCJPdXRwdXRUb2tlbnMiOjEzMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMlQyMDoyNTo0NC45NzA0ODgyNTZaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzk0OTkyODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMVVcIixcbiAgICBcIk1UNzkyNVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc2X3BoeV9pbml0XCIsXG4gICAgXCJtdDc5MnhfaW5pdF93aXBoeVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpbml0aWFsaXphdGlvbiBsb2dpYyBvZiB0aGUgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgdG8gZGlzYWJsZSB0aGUgYWN0aXZlIG1vbml0b3IgZmVhdHVyZSBmb3IgTVQ3OTJ4IGRldmljZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIGRyaXZlciB0aGF0IGlzIHJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBVU0IgZW11bGF0aW9uIChNVDc5MjFVIGFuZCBNVDc5MjVVKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjFVXCIsXG4gICAgXCJNVDc5MjVVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3Nl9waHlfaW5pdFwiLFxuICAgIFwibXQ3OTJ4X2luaXRfd2lwaHlcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaW5pdGlhbGl6YXRpb24gbG9naWMgb2YgdGhlIE1UNzYgd2lyZWxlc3MgZHJpdmVyIHRvIGRpc2FibGUgdGhlIGFjdGl2ZSBtb25pdG9yIGZlYXR1cmUgZm9yIE1UNzkyeCBkZXZpY2VzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBkcml2ZXIgdGhhdCBpcyByZWFjaGFibGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgVVNCIGVtdWxhdGlvbiAoTVQ3OTIxVSBhbmQgTVQ3OTI1VSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowmnk5s[1] Phase: Succeeded StartedAt: 2026-07-22 20:25:57 +0000 UTC FinishedAt: 2026-07-22 20:25:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-22 20:25:57 +0000 UTC FinishedAt: 2026-07-22 20:25:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2] Phase: Succeeded StartedAt: 2026-07-22 20:25:57 +0000 UTC FinishedAt: 2026-07-22 22:36:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-22 20:25:57 +0000 UTC FinishedAt: 2026-07-22 22:36:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-22 20:25:57 +0000 UTC FinishedAt: 2026-07-22 20:26:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-22 20:25:57 +0000 UTC FinishedAt: 2026-07-22 20:26:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.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-workflowmnk5s/series-workflowmnk5s-convert-artifact-3837703809/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-22 20:26:07 +0000 UTC FinishedAt: 2026-07-22 21:24:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-22 20:26:07 +0000 UTC FinishedAt: 2026-07-22 21:24:55 +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:*0e7cb6b9-faec-452c-a179-0fea0272fb11,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-workflowmnk5s/series-workflowmnk5s-convert-artifact-3837703809/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": "49434862-f1d9-466d-807a-a0f95ed86718", "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-workflowmnk5s/series-workflowmnk5s-build-action-1528173487/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-22 20:26:07 +0000 UTC FinishedAt: 2026-07-22 21:24:00 +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:*0e7cb6b9-faec-452c-a179-0fea0272fb11,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-workflowmnk5s/series-workflowmnk5s-convert-artifact-3837703809/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": "49434862-f1d9-466d-807a-a0f95ed86718", "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-workflowmnk5s/series-workflowmnk5s-build-action-1528173487/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-22 21:24:55 +0000 UTC FinishedAt: 2026-07-22 21:24:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-22 21:24:55 +0000 UTC FinishedAt: 2026-07-22 21:24:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-22 21:24:55 +0000 UTC FinishedAt: 2026-07-22 21:25:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-22 21:24:55 +0000 UTC FinishedAt: 2026-07-22 21:25:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.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-workflowmnk5s/series-workflowmnk5s-convert-artifact-889987412/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-22 21:25:15 +0000 UTC FinishedAt: 2026-07-22 21:27:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-22 21:25:15 +0000 UTC FinishedAt: 2026-07-22 21:27:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*49434862-f1d9-466d-807a-a0f95ed86718,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-workflowmnk5s/series-workflowmnk5s-build-action-1528173487/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-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-22 21:27:49 +0000 UTC FinishedAt: 2026-07-22 21:27:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-22 21:27:49 +0000 UTC FinishedAt: 2026-07-22 21:27:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-22 21:27:49 +0000 UTC FinishedAt: 2026-07-22 22:31:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-22 21:27:49 +0000 UTC FinishedAt: 2026-07-22 22:31:36 +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:*0e7cb6b9-faec-452c-a179-0fea0272fb11,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-workflowmnk5s/series-workflowmnk5s-convert-artifact-889987412/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": "ff01e95d-106a-4d2d-ba1c-00a1784cb125", "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-workflowmnk5s/series-workflowmnk5s-build-action-514102560/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-22 21:27:49 +0000 UTC FinishedAt: 2026-07-22 22:30:53 +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:*0e7cb6b9-faec-452c-a179-0fea0272fb11,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-workflowmnk5s/series-workflowmnk5s-convert-artifact-889987412/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": "ff01e95d-106a-4d2d-ba1c-00a1784cb125", "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-workflowmnk5s/series-workflowmnk5s-build-action-514102560/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-22 22:31:36 +0000 UTC FinishedAt: 2026-07-22 22:31:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-22 22:31:36 +0000 UTC FinishedAt: 2026-07-22 22:31:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-22 22:31:36 +0000 UTC FinishedAt: 2026-07-22 22:33:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-22 22:31:36 +0000 UTC FinishedAt: 2026-07-22 22:33:30 +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:*ff01e95d-106a-4d2d-ba1c-00a1784cb125,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-workflowmnk5s/series-workflowmnk5s-build-action-514102560/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-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-22 22:33:40 +0000 UTC FinishedAt: 2026-07-22 22:36:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-22 22:33:40 +0000 UTC FinishedAt: 2026-07-22 22:36:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"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:*49434862-f1d9-466d-807a-a0f95ed86718,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ff01e95d-106a-4d2d-ba1c-00a1784cb125,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-workflowmnk5s/series-workflowmnk5s-build-action-1528173487/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-workflowmnk5s/series-workflowmnk5s-build-action-514102560/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-22 22:33:40 +0000 UTC FinishedAt: 2026-07-22 22:33:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-22 22:33:40 +0000 UTC FinishedAt: 2026-07-22 22:33:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"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-workflowmnk5s/series-workflowmnk5s-convert-artifact-2378189949/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-22 22:33:40 +0000 UTC FinishedAt: 2026-07-22 22:33:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-22 22:33:40 +0000 UTC FinishedAt: 2026-07-22 22:33:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-22 22:33:40 +0000 UTC FinishedAt: 2026-07-22 22:33:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-22 22:33:50 +0000 UTC FinishedAt: 2026-07-22 22:36:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowmnk5s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt76_phy_init","mt792x_init_wiphy"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U","MT7925U"],"series_id":"d03a8447-2c6e-47bf-9b13-bdc85096605b","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-22 22:33:50 +0000 UTC FinishedAt: 2026-07-22 22:36:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*49434862-f1d9-466d-807a-a0f95ed86718,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ff01e95d-106a-4d2d-ba1c-00a1784cb125,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-workflowmnk5s/series-workflowmnk5s-build-action-1528173487/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-workflowmnk5s/series-workflowmnk5s-build-action-514102560/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-workflowmnk5s/series-workflowmnk5s-convert-artifact-2378189949/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,}