Name: series-workflowcxfw8 Phase: Running StartedAt: 2026-07-14 16:37:32 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcxfw8[0] Phase: Running StartedAt: 2026-07-14 16:37:32 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcxfw8[0].run-triage Phase: Running StartedAt: 2026-07-14 16:37:32 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowcxfw8[0].run-triage(0) Phase: Running StartedAt: 2026-07-14 16:37:32 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "3b029c035b34bbc693405ddf759f0e9b920c27f1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IWLWIFI", "IWLMVM", "IWLMLD", "IWLWIFI_DEBUGFS", "THERMAL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "3b029c035b34bbc693405ddf759f0e9b920c27f1", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IWLWIFI", "IWLMVM", "IWLMLD", "IWLWIFI_DEBUGFS", "THERMAL" ], "series_id": "432fb6a9-e637-48a0-a485-e18f688f3ff8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "iwl_mvm_rx_beacon_notif", "iwl_mvm_update_mcc", "iwl_mvm_tlc_update_notif", "iwl_mvm_window_status_notif", "iwl_mvm_rx_umac_scan_complete_notif", "iwl_mld_reorder", "iwl_mvm_rx_session_protect_notif", "iwl_mvm_wait_d3_notif", "iwl_mvm_parse_wowlan_info_notif" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE0IDE2OjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MjNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJV0xXSUZJJiMzNDssCiAgICAmIzM0O0lXTE1WTSYjMzQ7LAogICAgJiMzNDtJV0xNTEQmIzM0OywKICAgICYjMzQ7SVdMV0lGSV9ERUJVR0ZTJiMzNDssCiAgICAmIzM0O1RIRVJNQUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3VwZGF0ZV9tY2MmIzM0OywKICAgICYjMzQ7aXdsX212bV90bGNfdXBkYXRlX25vdGlmJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbWxkX3Jlb3JkZXImIzM0OywKICAgICYjMzQ7aXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYmIzM0OywKICAgICYjMzQ7aXdsX212bV93YWl0X2QzX25vdGlmJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWYmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tzIGFuZCBwYXlsb2FkIGxlbmd0aCB2YWxpZGF0aW9ucyBmb3IgZmlybXdhcmUgbm90aWZpY2F0aW9ucyBpbiB0aGUgaXdsd2lmaSBkcml2ZXIgKE1WTSBhbmQgTUxEIGNvbXBvbmVudHMpLiBUaGVzZSBhcmUgY3JpdGljYWwgZm9yIHByZXZlbnRpbmcgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gd2hlbiBwcm9jZXNzaW5nIG1hbGZvcm1lZCBvciBtYWxpY2lvdXMgZmlybXdhcmUgcmVzcG9uc2VzLiBUaGUgZmlybXdhcmUgaW50ZXJmYWNlIGNhbiBiZSBmdXp6ZWQgdmlhIGRlYnVnZnMgaW5qZWN0aW9uIChpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTY6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2ZjUxODMwNzExNWEyZmM5YTlhMjRmZGQ0YzNiZGI3ZjA3YWY1ZTQ2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMTQgMTY6NTg6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY1xuaW5kZXggZTM2MjdhZDAzMjFjOGIuLmE0NjRlYmRlYzU3ZjEzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5AQCAtMSw2ICYjNDM7MSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqL1xuICNpbmNsdWRlIFwmIzM0O2FnZy5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7c3RhLmhcJiMzNDtcbkBAIC0yMjIsNiAmIzQzOzIyMiwxMSBAQCBpd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxuIFx0aWYgKGJhaWQgPT0gSVdMX1JYX1JFT1JERVJfREFUQV9JTlZBTElEX0JBSUQpXG4gXHRcdHJldHVybiBJV0xfTUxEX1BBU1NfU0tCO1xuIFxuJiM0MztcdGlmIChJV0xfRldfQ0hFQ0sobWxkLCBiYWlkIFx1MDAzZT0gQVJSQVlfU0laRShtbGQtXHUwMDNlZndfaWRfdG9fYmEpLFxuJiM0MztcdFx0XHQgXCYjMzQ7R290IG91dC1vZi1yYW5nZSBCQUlEICV1IGluIHJlb3JkZXJfZGF0YT0weCV4XFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgYmFpZCwgcmVvcmRlcikpXG4mIzQzO1x0XHRyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjtcbiYjNDM7XG4gXHQvKiBubyBzdGEgeWV0ICovXG4gXHRpZiAoV0FSTl9PTkNFKCFzdGEsXG4gXHRcdCAgICAgIFwmIzM0O0dvdCB2YWxpZCBCQUlEIHdpdGhvdXQgYSB2YWxpZCBzdGF0aW9uIGFzc2lnbmVkXFxuXCYjMzQ7KSlcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tYWM4MDIxMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWFjODAyMTEuY1xuaW5kZXggMTcyODZiMzM0MWMwMjAuLjlhYzE3YmUzMDQwMDgyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWFjODAyMTEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWFjODAyMTEuY1xuQEAgLTE3MDgsNyAmIzQzOzE3MDgsNyBAQCBzdGF0aWMgdm9pZCBpd2xfbWxkX2NoZWNrX2hlX29ic3NfbmFycm93X2J3X3J1X2l0ZXIoc3RydWN0IHdpcGh5ICp3aXBoeSxcbiBcdGVsZW0gPSBjZmc4MDIxMV9maW5kX2VsZW0oV0xBTl9FSURfRVhUX0NBUEFCSUxJVFksIGllcy1cdTAwM2VkYXRhLFxuIFx0XHRcdFx0ICBpZXMtXHUwMDNlbGVuKTtcbiBcbi1cdGlmICghZWxlbSB8fCBlbGVtLVx1MDAzZWRhdGFsZW4gXHUwMDNjIDEwIHx8XG4mIzQzO1x0aWYgKCFlbGVtIHx8IGVsZW0tXHUwMDNlZGF0YWxlbiBcdTAwM2MgMTEgfHxcbiBcdCAgICAhKGVsZW0tXHUwMDNlZGF0YVsxMF0gXHUwMDI2XG4gXHQgICAgICBXTEFOX0VYVF9DQVBBMTBfT0JTU19OQVJST1dfQldfUlVfVE9MRVJBTkNFX1NVUFBPUlQpKSB7XG4gXHRcdCp0b2xlcmF0ZWQgPSBmYWxzZTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tY2MuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21jYy5jXG5pbmRleCA4NTAyMTI5YWJlNDkzOS4uODMwYzI1MWY0M2FmY2MgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tY2MuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWNjLmNcbkBAIC0xOCw5ICYjNDM7MTgsMTUgQEAgc3RhdGljIHN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3Y4ICpcbiBpd2xfbWxkX2NvcHlfbWNjX3Jlc3AoY29uc3Qgc3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdClcbiB7XG4gXHRjb25zdCBzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92OCAqbWNjX3Jlc3BfdjggPSAoY29uc3Qgdm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuLVx0aW50IG5fY2hhbm5lbHMgPSBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3Y4LVx1MDAzZW5fY2hhbm5lbHMpO1xuIFx0c3RydWN0IGl3bF9tY2NfdXBkYXRlX3Jlc3BfdjggKnJlc3BfY3A7XG4tXHRpbnQgbm90aWZfbGVuID0gc3RydWN0X3NpemUocmVzcF9jcCwgY2hhbm5lbHMsIG5fY2hhbm5lbHMpO1xuJiM0MztcdGludCBuX2NoYW5uZWxzO1xuJiM0MztcdGludCBub3RpZl9sZW47XG4mIzQzO1xuJiM0MztcdGlmIChpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkgXHUwMDNjIHNpemVvZigqbWNjX3Jlc3BfdjgpKVxuJiM0MztcdFx0cmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7XG4mIzQzO1xuJiM0MztcdG5fY2hhbm5lbHMgPSBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3Y4LVx1MDAzZW5fY2hhbm5lbHMpO1xuJiM0MztcdG5vdGlmX2xlbiA9IHN0cnVjdF9zaXplKHJlc3BfY3AsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKTtcbiBcbiBcdGlmIChpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkgIT0gbm90aWZfbGVuKVxuIFx0XHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmNcbmluZGV4IGY4YThjMzUwNjZiZWIyLi5lNDQ1YjFkN2Q0YjAwMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jXG5AQCAtMSw2ICYjNDM7MSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqL1xuICNpZmRlZiBDT05GSUdfVEhFUk1BTFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvcnQuaFx1MDAzZVxuQEAgLTI3Miw2ICYjNDM7MjcyLDcgQEAgc3RhdGljIHZvaWQgaXdsX21sZF90aGVybWFsX3pvbmVfcmVnaXN0ZXIoc3RydWN0IGl3bF9tbGQgKm1sZClcbiBcdGlmIChyZXQpIHtcbiBcdFx0SVdMX0RFQlVHX1RFTVAobWxkLCBcJiMzNDtGYWlsZWQgdG8gZW5hYmxlIHRoZXJtYWwgem9uZVxcblwmIzM0Oyk7XG4gXHRcdHRoZXJtYWxfem9uZV9kZXZpY2VfdW5yZWdpc3RlcihtbGQtXHUwMDNldHpvbmUpO1xuJiM0MztcdFx0bWxkLVx1MDAzZXR6b25lID0gTlVMTDtcbiBcdH1cbiB9XG4gXG5AQCAtMzg1LDEwICYjNDM7Mzg2LDggQEAgc3RhdGljIHZvaWQgaXdsX21sZF90aGVybWFsX3pvbmVfdW5yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRJV0xfREVCVUdfVEVNUChtbGQsIFwmIzM0O1RoZXJtYWwgem9uZSBkZXZpY2UgdW5yZWdpc3RlclxcblwmIzM0Oyk7XG4tXHRpZiAobWxkLVx1MDAzZXR6b25lKSB7XG4tXHRcdHRoZXJtYWxfem9uZV9kZXZpY2VfdW5yZWdpc3RlcihtbGQtXHUwMDNldHpvbmUpO1xuLVx0XHRtbGQtXHUwMDNldHpvbmUgPSBOVUxMO1xuLVx0fVxuJiM0MztcdHRoZXJtYWxfem9uZV9kZXZpY2VfdW5yZWdpc3RlcihtbGQtXHUwMDNldHpvbmUpO1xuJiM0MztcdG1sZC1cdTAwM2V0em9uZSA9IE5VTEw7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIGl3bF9tbGRfY29vbGluZ19kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jXG5pbmRleCA5YTc0ZjYwYzkxODUwZi4uMzQyOWQ5YTEwZTQyMDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jXG5AQCAtMTUzOSw4ICYjNDM7MTUzOSw4IEBAIHN0YXRpYyB2b2lkIGl3bF9tdm1fcmVwb3J0X3dha2V1cF9yZWFzb25zKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXG4gXHRcdFx0LyogaWYgdHJ1bmNhdGVkLCBGQ1MvSUNWIGlzIChwYXJ0aWFsbHkpIGdvbmUgKi9cbiBcdFx0XHRpZiAodHJ1bmNhdGVkIFx1MDAzZT0gaWN2bGVuKSB7XG4tXHRcdFx0XHRpY3ZsZW4gPSAwO1xuIFx0XHRcdFx0dHJ1bmNhdGVkIC09IGljdmxlbjtcbiYjNDM7XHRcdFx0XHRpY3ZsZW4gPSAwO1xuIFx0XHRcdH0gZWxzZSB7XG4gXHRcdFx0XHRpY3ZsZW4gLT0gdHJ1bmNhdGVkO1xuIFx0XHRcdFx0dHJ1bmNhdGVkID0gMDtcbkBAIC0yMTIzLDE2ICYjNDM7MjEyMywxNiBAQCBzdGF0aWMgdm9pZCBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXHRcdFx0XHRcdCAgICBzdHJ1Y3QgaXdsX3dvd2xhbl9zdGF0dXNfZGF0YSAqc3RhdHVzLFxuIFx0XHRcdFx0XHQgICAgdTMyIGxlbilcbiB7XG4tXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgZGF0YS1cdTAwM2VudW1fbWxvX2xpbmtfa2V5cyxcbi1cdFx0XHQgXCYjMzQ7TUxPIGlzIG5vdCBzdXBwb3J0ZWQsIHNob3VsZG4mIzM5O3QgcmVjZWl2ZSBNTE8ga2V5c1xcblwmIzM0OykpXG4tXHRcdHJldHVybjtcbi1cbiBcdGlmIChsZW4gXHUwMDNjIHNpemVvZigqZGF0YSkpIHtcbiBcdFx0SVdMX0VSUihtdm0sIFwmIzM0O0ludmFsaWQgV29XTEFOIGluZm8gbm90aWZpY2F0aW9uIVxcblwmIzM0Oyk7XG4gXHRcdHN0YXR1cyA9IE5VTEw7XG4gXHRcdHJldHVybjtcbiBcdH1cbiBcbiYjNDM7XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgZGF0YS1cdTAwM2VudW1fbWxvX2xpbmtfa2V5cyxcbiYjNDM7XHRcdFx0IFwmIzM0O01MTyBpcyBub3Qgc3VwcG9ydGVkLCBzaG91bGRuJiMzOTt0IHJlY2VpdmUgTUxPIGtleXNcXG5cJiMzNDspKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiBcdGlmIChtdm0tXHUwMDNlZmFzdF9yZXN1bWUpXG4gXHRcdHJldHVybjtcbiBcbkBAIC0yOTQyLDYgJiM0MzsyOTQyLDExIEBAIHN0YXRpYyBib29sIGl3bF9tdm1fd2FpdF9kM19ub3RpZihzdHJ1Y3QgaXdsX25vdGlmX3dhaXRfZGF0YSAqbm90aWZfd2FpdCxcbiBcdGNhc2UgV0lERV9JRChQUk9UX09GRkxPQURfR1JPVVAsIEQzX0VORF9OT1RJRklDQVRJT04pOiB7XG4gXHRcdHN0cnVjdCBpd2xfZDNfZW5kX25vdGlmICpub3RpZiA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG4gXG4mIzQzO1x0XHRpZiAobGVuIFx1MDAzYyBzaXplb2YoKm5vdGlmKSkge1xuJiM0MztcdFx0XHRJV0xfRVJSKG12bSwgXCYjMzQ7SW52YWxpZCBEMyBlbmQgbm90aWZpY2F0aW9uIHNpemVcXG5cJiMzNDspO1xuJiM0MztcdFx0XHRicmVhaztcbiYjNDM7XHRcdH1cbiYjNDM7XG4gXHRcdGQzX2RhdGEtXHUwMDNlZDNfZW5kX2ZsYWdzID0gX19sZTMyX3RvX2NwdShub3RpZi1cdTAwM2VmbGFncyk7XG4gXHRcdGQzX2RhdGEtXHUwMDNlbm90aWZfcmVjZWl2ZWQgfD0gSVdMX0QzX05PVElGX0QzX0VORF9OT1RJRjtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuY1xuaW5kZXggZDZhODYyNGIxYWU1Y2UuLmIyYzViZTIyYzI5M2NmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuY1xuQEAgLTE0OTMsNDkgJiM0MzsxNDkzLDU0IEBAIHZvaWQgaXdsX212bV9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbiB7XG4gXHRzdHJ1Y3QgaXdsX3J4X3BhY2tldCAqcGt0ID0gcnhiX2FkZHIocnhiKTtcbiBcdHVuc2lnbmVkIGludCBwa3RfbGVuID0gaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpO1xuLVx0c3RydWN0IGl3bF9leHRlbmRlZF9iZWFjb25fbm90aWYgKmJlYWNvbiA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG4tXHRzdHJ1Y3QgaXdsX2V4dGVuZGVkX2JlYWNvbl9ub3RpZl92NSAqYmVhY29uX3Y1ID0gKHZvaWQgKilwa3QtXHUwMDNlZGF0YTtcbiBcdHN0cnVjdCBpZWVlODAyMTFfdmlmICpjc2FfdmlmO1xuIFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnR4X2Jsb2NrZWRfdmlmO1xuIFx0c3RydWN0IGFnZ190eF9zdGF0dXMgKmFnZ19zdGF0dXM7XG4mIzQzO1x0dTMyIGJlYWNvbl9ncDI7XG4gXHR1MTYgc3RhdHVzO1xuIFxuIFx0bG9ja2RlcF9hc3NlcnRfaGVsZChcdTAwMjZtdm0tXHUwMDNlbXV0ZXgpO1xuIFxuLVx0bXZtLVx1MDAzZWFwX2xhc3RfYmVhY29uX2dwMiA9IGxlMzJfdG9fY3B1KGJlYWNvbi1cdTAwM2VncDIpO1xuLVxuIFx0aWYgKCFpd2xfbXZtX2lzX3Nob3J0X2JlYWNvbl9ub3RpZl9zdXBwb3J0ZWQobXZtKSkge1xuJiM0MztcdFx0c3RydWN0IGl3bF9leHRlbmRlZF9iZWFjb25fbm90aWZfdjUgKmJlYWNvbiA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG4gXHRcdHN0cnVjdCBpd2xfdHhfcmVzcCAqYmVhY29uX25vdGlmeV9oZHIgPVxuLVx0XHRcdFx1MDAyNmJlYWNvbl92NS1cdTAwM2ViZWFjb25fbm90aWZ5X2hkcjtcbiYjNDM7XHRcdFx0XHUwMDI2YmVhY29uLVx1MDAzZWJlYWNvbl9ub3RpZnlfaGRyO1xuIFxuLVx0XHRpZiAodW5saWtlbHkocGt0X2xlbiBcdTAwM2Mgc2l6ZW9mKCpiZWFjb25fdjUpKSlcbiYjNDM7XHRcdGlmICh1bmxpa2VseShwa3RfbGVuIFx1MDAzYyBzaXplb2YoKmJlYWNvbikpKVxuIFx0XHRcdHJldHVybjtcbiBcbi1cdFx0bXZtLVx1MDAzZWlic3NfbWFuYWdlciA9IGJlYWNvbl92NS1cdTAwM2VpYnNzX21ncl9zdGF0dXMgIT0gMDtcbiYjNDM7XHRcdGJlYWNvbl9ncDIgPSBsZTMyX3RvX2NwdShiZWFjb24tXHUwMDNlZ3AyKTtcbiYjNDM7XG4mIzQzO1x0XHRtdm0tXHUwMDNlaWJzc19tYW5hZ2VyID0gYmVhY29uLVx1MDAzZWlic3NfbWdyX3N0YXR1cyAhPSAwO1xuIFx0XHRhZ2dfc3RhdHVzID0gaXdsX212bV9nZXRfYWdnX3N0YXR1cyhtdm0sIGJlYWNvbl9ub3RpZnlfaGRyKTtcbiBcdFx0c3RhdHVzID0gbGUxNl90b19jcHUoYWdnX3N0YXR1cy1cdTAwM2VzdGF0dXMpIFx1MDAyNiBUWF9TVEFUVVNfTVNLO1xuIFx0XHRJV0xfREVCVUdfUlgobXZtLFxuIFx0XHRcdCAgICAgXCYjMzQ7YmVhY29uIHN0YXR1cyAlI3ggcmV0cmllczolZCB0c2Y6MHglMDE2bGxYIGdwMjoweCVYIHJhdGU6JWRcXG5cJiMzNDssXG4gXHRcdFx0ICAgICBzdGF0dXMsIGJlYWNvbl9ub3RpZnlfaGRyLVx1MDAzZWZhaWx1cmVfZnJhbWUsXG4gXHRcdFx0ICAgICBsZTY0X3RvX2NwdShiZWFjb24tXHUwMDNldHNmKSxcbi1cdFx0XHQgICAgIG12bS1cdTAwM2VhcF9sYXN0X2JlYWNvbl9ncDIsXG4mIzQzO1x0XHRcdCAgICAgYmVhY29uX2dwMixcbiBcdFx0XHQgICAgIGxlMzJfdG9fY3B1KGJlYWNvbl9ub3RpZnlfaGRyLVx1MDAzZWluaXRpYWxfcmF0ZSkpO1xuIFx0fSBlbHNlIHtcbiYjNDM7XHRcdGNvbnN0IHN0cnVjdCBpd2xfZXh0ZW5kZWRfYmVhY29uX25vdGlmICpiZWFjb24gPVxuJiM0MztcdFx0XHQodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuJiM0MztcbiBcdFx0aWYgKHVubGlrZWx5KHBrdF9sZW4gXHUwMDNjIHNpemVvZigqYmVhY29uKSkpXG4gXHRcdFx0cmV0dXJuO1xuIFxuJiM0MztcdFx0YmVhY29uX2dwMiA9IGxlMzJfdG9fY3B1KGJlYWNvbi1cdTAwM2VncDIpO1xuJiM0MztcbiBcdFx0bXZtLVx1MDAzZWlic3NfbWFuYWdlciA9IGJlYWNvbi1cdTAwM2VpYnNzX21ncl9zdGF0dXMgIT0gMDtcbiBcdFx0c3RhdHVzID0gbGUzMl90b19jcHUoYmVhY29uLVx1MDAzZXN0YXR1cykgXHUwMDI2IFRYX1NUQVRVU19NU0s7XG4gXHRcdElXTF9ERUJVR19SWChtdm0sXG4gXHRcdFx0ICAgICBcJiMzNDtiZWFjb24gc3RhdHVzICUjeCB0c2Y6MHglMDE2bGxYIGdwMjoweCVYXFxuXCYjMzQ7LFxuIFx0XHRcdCAgICAgc3RhdHVzLCBsZTY0X3RvX2NwdShiZWFjb24tXHUwMDNldHNmKSxcbi1cdFx0XHQgICAgIG12bS1cdTAwM2VhcF9sYXN0X2JlYWNvbl9ncDIpO1xuJiM0MztcdFx0XHQgICAgIGJlYWNvbl9ncDIpO1xuIFx0fVxuIFxuIFx0Y3NhX3ZpZiA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobXZtLVx1MDAzZWNzYV92aWYsXG4gXHRcdFx0XHRcdCAgICBsb2NrZGVwX2lzX2hlbGQoXHUwMDI2bXZtLVx1MDAzZW11dGV4KSk7XG4gXHRpZiAodW5saWtlbHkoY3NhX3ZpZiBcdTAwMjZcdTAwMjYgY3NhX3ZpZi1cdTAwM2Vic3NfY29uZi5jc2FfYWN0aXZlKSlcbi1cdFx0aXdsX212bV9jc2FfY291bnRfZG93bihtdm0sIGNzYV92aWYsIG12bS1cdTAwM2VhcF9sYXN0X2JlYWNvbl9ncDIsXG4mIzQzO1x0XHRpd2xfbXZtX2NzYV9jb3VudF9kb3duKG12bSwgY3NhX3ZpZiwgYmVhY29uX2dwMixcbiBcdFx0XHRcdCAgICAgICAoc3RhdHVzID09IFRYX1NUQVRVU19TVUNDRVNTKSk7XG4gXG4gXHR0eF9ibG9ja2VkX3ZpZiA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobXZtLVx1MDAzZWNzYV90eF9ibG9ja2VkX3ZpZixcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuY1xuaW5kZXggNzRiZDQwMzhmZDU2MDEuLjNlNzNhNjE5NWZkOWIzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuY1xuQEAgLTYyNSw5ICYjNDM7NjI1LDcgQEAgaW50IGl3bF9tdm1fbWFjX3NldHVwX3JlZ2lzdGVyKHN0cnVjdCBpd2xfbXZtICptdm0pXG4gXHRody1cdTAwM2V3aXBoeS1cdTAwM2VtYXhfc2NoZWRfc2Nhbl9yZXFzID0gMTtcbiBcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZW1heF9zY2hlZF9zY2FuX3NzaWRzID0gUFJPQkVfT1BUSU9OX01BWDtcbiBcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZW1heF9tYXRjaF9zZXRzID0gaXdsX3VtYWNfc2Nhbl9nZXRfbWF4X3Byb2ZpbGVzKG12bS1cdTAwM2Vmdyk7XG4tXHQvKiB3ZSBjcmVhdGUgdGhlIDgwMi4xMSBoZWFkZXIgYW5kIHplcm8gbGVuZ3RoIFNTSUQgSUUuICovXG4tXHRody1cdTAwM2V3aXBoeS1cdTAwM2VtYXhfc2NoZWRfc2Nhbl9pZV9sZW4gPVxuLVx0XHRTQ0FOX09GRkxPQURfUFJPQkVfUkVRX1NJWkUgLSAyNCAtIDI7XG4mIzQzO1x0aHctXHUwMDNld2lwaHktXHUwMDNlbWF4X3NjaGVkX3NjYW5faWVfbGVuID0gaXdsX212bV9tYXhfc2Nhbl9pZV9sZW4obXZtKTtcbiBcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZW1heF9zY2hlZF9zY2FuX3BsYW5zID0gSVdMX01BWF9TQ0hFRF9TQ0FOX1BMQU5TO1xuIFx0aHctXHUwMDNld2lwaHktXHUwMDNlbWF4X3NjaGVkX3NjYW5fcGxhbl9pbnRlcnZhbCA9IFUxNl9NQVg7XG4gXG5AQCAtMzA2MSw3ICYjNDM7MzA1OSw2IEBAIHZvaWQgaXdsX212bV9zdG9wX2FwX2lic3NfY29tbW9uKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXHR9XG4gXG4gXHRtdm12aWYtXHUwMDNlYXBfaWJzc19hY3RpdmUgPSBmYWxzZTtcbi1cdG12bS1cdTAwM2VhcF9sYXN0X2JlYWNvbl9ncDIgPSAwO1xuIFxuIFx0aWYgKHZpZi1cdTAwM2V0eXBlID09IE5MODAyMTFfSUZUWVBFX0FQIFx1MDAyNlx1MDAyNiAhdmlmLVx1MDAzZXAycCkge1xuIFx0XHRpd2xfbXZtX3ZpZl9zZXRfbG93X2xhdGVuY3kobXZtdmlmLCBmYWxzZSxcbkBAIC0zNDkwLDcgJiM0MzszNDg3LDcgQEAgc3RhdGljIHZvaWQgaXdsX212bV9jaGVja19oZV9vYnNzX25hcnJvd19id19ydV9pdGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4gXHRlbGVtID0gY2ZnODAyMTFfZmluZF9lbGVtKFdMQU5fRUlEX0VYVF9DQVBBQklMSVRZLCBpZXMtXHUwMDNlZGF0YSxcbiBcdFx0XHRcdCAgaWVzLVx1MDAzZWxlbik7XG4gXG4tXHRpZiAoIWVsZW0gfHwgZWxlbS1cdTAwM2VkYXRhbGVuIFx1MDAzYyAxMCB8fFxuJiM0MztcdGlmICghZWxlbSB8fCBlbGVtLVx1MDAzZWRhdGFsZW4gXHUwMDNjIDExIHx8XG4gXHQgICAgIShlbGVtLVx1MDAzZWRhdGFbMTBdIFx1MDAyNlxuIFx0ICAgICAgV0xBTl9FWFRfQ0FQQTEwX09CU1NfTkFSUk9XX0JXX1JVX1RPTEVSQU5DRV9TVVBQT1JUKSkge1xuIFx0XHRkYXRhLVx1MDAzZXRvbGVyYXRlZCA9IGZhbHNlO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmhcbmluZGV4IDY4M2NhYzU2ODIyYzg2Li4zMTkxMmY0ZDAxNzVmOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaFxuQEAgLTExNjgsOSAmIzQzOzExNjgsNiBAQCBzdHJ1Y3QgaXdsX212bSB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiBfX3JjdSAqY3NhX3R4X2Jsb2NrZWRfdmlmO1xuIFx0dTggY3NhX3R4X2Jsb2NrX2Jjbl90aW1lb3V0O1xuIFxuLVx0Lyogc3lzdGVtIHRpbWUgb2YgbGFzdCBiZWFjb24gKGZvciBBUC9HTyBpbnRlcmZhY2UpICovXG4tXHR1MzIgYXBfbGFzdF9iZWFjb25fZ3AyO1xuLVxuIFx0LyogaW5kaWNhdGVzIHRoYXQgd2UgdHJhbnNtaXR0ZWQgdGhlIGxhc3QgYmVhY29uICovXG4gXHRib29sIGlic3NfbWFuYWdlcjtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9udm0uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jXG5pbmRleCA5NTMyMThmMWUwMjVhNy4uZjc2ZTU3Mzk5YzFmMzMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9udm0uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbnZtLmNcbkBAIC0xLDYgJiM0MzsxLDYgQEBcbiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbiAvKlxuLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMTksIDIwMjEtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDE5LCAyMDIxLTIwMjYgSW50ZWwgQ29ycG9yYXRpb25cbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBJbnRlbCBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgR21iSFxuICAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkhcbiAgKi9cbkBAIC00MTYsNiAmIzQzOzQxNiw3IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsXG4gXHRpbnQgcmV0LCByZXNwX3ZlcjtcbiBcdHUzMiBzdGF0dXM7XG4gXHRpbnQgcmVzcF9sZW4sIG5fY2hhbm5lbHM7XG4mIzQzO1x0dW5zaWduZWQgaW50IHBrdF9sZW47XG4gXHR1MTYgbWNjO1xuIFxuIFx0aWYgKFdBUk5fT05fT05DRSghaXdsX212bV9pc19sYXJfc3VwcG9ydGVkKG12bSkpKVxuQEAgLTQzMSw2ICYjNDM7NDMyLDcgQEAgaXdsX212bV91cGRhdGVfbWNjKHN0cnVjdCBpd2xfbXZtICptdm0sIGNvbnN0IGNoYXIgKmFscGhhMixcbiBcdFx0cmV0dXJuIEVSUl9QVFIocmV0KTtcbiBcbiBcdHBrdCA9IGNtZC5yZXNwX3BrdDtcbiYjNDM7XHRwa3RfbGVuID0gaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpO1xuIFxuIFx0cmVzcF92ZXIgPSBpd2xfZndfbG9va3VwX25vdGlmX3Zlcihtdm0tXHUwMDNlZncsIElXTF9BTFdBWVNfTE9OR19HUk9VUCxcbiBcdFx0XHRcdFx0ICAgTUNDX1VQREFURV9DTUQsIDApO1xuQEAgLTQzOSw5ICYjNDM7NDQxLDE4IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsXG4gXHRpZiAocmVzcF92ZXIgXHUwMDNlPSA4KSB7XG4gXHRcdHN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3Y4ICptY2NfcmVzcF92OCA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG4gXG4mIzQzO1x0XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgcGt0X2xlbiBcdTAwM2Mgc2l6ZW9mKCptY2NfcmVzcF92OCksXG4mIzQzO1x0XHRcdFx0IFwmIzM0O01DQyB2OCByZXNwb25zZSB0b28gc2hvcnQ6ICV1XFxuXCYjMzQ7LCBwa3RfbGVuKSkge1xuJiM0MztcdFx0XHRyZXNwX2NwID0gRVJSX1BUUigtRUlOVkFMKTtcbiYjNDM7XHRcdFx0Z290byBleGl0O1xuJiM0MztcdFx0fVxuJiM0MztcbiBcdFx0bl9jaGFubmVscyA9ICBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3Y4LVx1MDAzZW5fY2hhbm5lbHMpO1xuLVx0XHRpZiAoaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpICE9XG4tXHRcdCAgICBzdHJ1Y3Rfc2l6ZShtY2NfcmVzcF92OCwgY2hhbm5lbHMsIG5fY2hhbm5lbHMpKSB7XG4mIzQzO1x0XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSxcbiYjNDM7XHRcdFx0XHQgcGt0X2xlbiAhPVxuJiM0MztcdFx0XHRcdCBzdHJ1Y3Rfc2l6ZShtY2NfcmVzcF92OCwgY2hhbm5lbHMsIG5fY2hhbm5lbHMpLFxuJiM0MztcdFx0XHRcdCBcJiMzNDtpbnZhbGlkIE1DQyB2OCByZXNwb25zZSBzaXplOiAldSAobl9jaGFubmVscz0lZClcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0IHBrdF9sZW4sIG5fY2hhbm5lbHMpKSB7XG4gXHRcdFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XG4gXHRcdFx0Z290byBleGl0O1xuIFx0XHR9XG5AQCAtNDY0LDkgJiM0Mzs0NzUsMTggQEAgaXdsX212bV91cGRhdGVfbWNjKHN0cnVjdCBpd2xfbXZtICptdm0sIGNvbnN0IGNoYXIgKmFscGhhMixcbiBcdFx0XHQgICAgICAgSVdMX1VDT0RFX1RMVl9DQVBBX01DQ19VUERBVEVfMTFBWF9TVVBQT1JUKSkge1xuIFx0XHRzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92NCAqbWNjX3Jlc3BfdjQgPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuIFxuJiM0MztcdFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIHBrdF9sZW4gXHUwMDNjIHNpemVvZigqbWNjX3Jlc3BfdjQpLFxuJiM0MztcdFx0XHRcdCBcJiMzNDtNQ0MgdjQgcmVzcG9uc2UgdG9vIHNob3J0OiAldVxcblwmIzM0OywgcGt0X2xlbikpIHtcbiYjNDM7XHRcdFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XG4mIzQzO1x0XHRcdGdvdG8gZXhpdDtcbiYjNDM7XHRcdH1cbiYjNDM7XG4gXHRcdG5fY2hhbm5lbHMgPSAgX19sZTMyX3RvX2NwdShtY2NfcmVzcF92NC1cdTAwM2VuX2NoYW5uZWxzKTtcbi1cdFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSAhPVxuLVx0XHQgICAgc3RydWN0X3NpemUobWNjX3Jlc3BfdjQsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSkge1xuJiM0MztcdFx0aWYgKElXTF9GV19DSEVDSyhtdm0sXG4mIzQzO1x0XHRcdFx0IHBrdF9sZW4gIT1cbiYjNDM7XHRcdFx0XHQgc3RydWN0X3NpemUobWNjX3Jlc3BfdjQsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSxcbiYjNDM7XHRcdFx0XHQgXCYjMzQ7aW52YWxpZCBNQ0MgdjQgcmVzcG9uc2Ugc2l6ZTogJXUgKG5fY2hhbm5lbHM9JWQpXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCBwa3RfbGVuLCBuX2NoYW5uZWxzKSkge1xuIFx0XHRcdHJlc3BfY3AgPSBFUlJfUFRSKC1FSU5WQUwpO1xuIFx0XHRcdGdvdG8gZXhpdDtcbiBcdFx0fVxuQEAgLTQ4OSw5ICYjNDM7NTA5LDE4IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsXG4gXHR9IGVsc2Uge1xuIFx0XHRzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92MyAqbWNjX3Jlc3BfdjMgPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuIFxuJiM0MztcdFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIHBrdF9sZW4gXHUwMDNjIHNpemVvZigqbWNjX3Jlc3BfdjMpLFxuJiM0MztcdFx0XHRcdCBcJiMzNDtNQ0MgdjMgcmVzcG9uc2UgdG9vIHNob3J0OiAldVxcblwmIzM0OywgcGt0X2xlbikpIHtcbiYjNDM7XHRcdFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XG4mIzQzO1x0XHRcdGdvdG8gZXhpdDtcbiYjNDM7XHRcdH1cbiYjNDM7XG4gXHRcdG5fY2hhbm5lbHMgPSAgX19sZTMyX3RvX2NwdShtY2NfcmVzcF92My1cdTAwM2VuX2NoYW5uZWxzKTtcbi1cdFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSAhPVxuLVx0XHQgICAgc3RydWN0X3NpemUobWNjX3Jlc3BfdjMsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSkge1xuJiM0MztcdFx0aWYgKElXTF9GV19DSEVDSyhtdm0sXG4mIzQzO1x0XHRcdFx0IHBrdF9sZW4gIT1cbiYjNDM7XHRcdFx0XHQgc3RydWN0X3NpemUobWNjX3Jlc3BfdjMsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSxcbiYjNDM7XHRcdFx0XHQgXCYjMzQ7aW52YWxpZCBNQ0MgdjMgcmVzcG9uc2Ugc2l6ZTogJXUgKG5fY2hhbm5lbHM9JWQpXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCBwa3RfbGVuLCBuX2NoYW5uZWxzKSkge1xuIFx0XHRcdHJlc3BfY3AgPSBFUlJfUFRSKC1FSU5WQUwpO1xuIFx0XHRcdGdvdG8gZXhpdDtcbiBcdFx0fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jXG5pbmRleCA4OWFjNGM2YjNlNTQzZC4uZTIzODJiZThlZGQ3OGQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jXG5AQCAtMSw3ICYjNDM7MSw3IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSW50ZWwgRGV1dHNjaGxhbmQgR21iSFxuLSAqIENvcHlyaWdodCAoQykgMjAxOC0yMDI1IEludGVsIENvcnBvcmF0aW9uXG4mIzQzOyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDI2IEludGVsIENvcnBvcmF0aW9uXG4gICovXG4gI2luY2x1ZGUgXCYjMzQ7cnMuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2Z3LWFwaS5oXCYjMzQ7XG5AQCAtNDIzLDkgJiM0Mzs0MjMsMTQgQEAgdm9pZCBpd2xfbXZtX3RsY191cGRhdGVfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcdHN0cnVjdCBpd2xfbHFfc3RhX3JzX2Z3ICpscV9zdGE7XG4gXHR1MzIgZmxhZ3M7XG4gXG4mIzQzO1x0bm90aWYgPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuJiM0MztcdGlmIChJV0xfRldfQ0hFQ0sobXZtLCBub3RpZi1cdTAwM2VzdGFfaWQgXHUwMDNlPSBtdm0tXHUwMDNlZnctXHUwMDNldWNvZGVfY2FwYS5udW1fc3RhdGlvbnMsXG4mIzQzO1x0XHRcdCBcJiMzNDtJbnZhbGlkIHN0YSBpZCAoJWQpIGluIFRMQyBub3RpZmljYXRpb25cXG5cJiMzNDssXG4mIzQzO1x0XHRcdCBub3RpZi1cdTAwM2VzdGFfaWQpKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiBcdHJjdV9yZWFkX2xvY2soKTtcbiBcbi1cdG5vdGlmID0gKHZvaWQgKilwa3QtXHUwMDNlZGF0YTtcbiBcdGxpbmtfc3RhID0gcmN1X2RlcmVmZXJlbmNlKG12bS1cdTAwM2Vmd19pZF90b19saW5rX3N0YVtub3RpZi1cdTAwM2VzdGFfaWRdKTtcbiBcdHN0YSA9IHJjdV9kZXJlZmVyZW5jZShtdm0tXHUwMDNlZndfaWRfdG9fbWFjX2lkW25vdGlmLVx1MDAzZXN0YV9pZF0pO1xuIFx0aWYgKElTX0VSUl9PUl9OVUxMKHN0YSkgfHwgIWxpbmtfc3RhKSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3J4LmNcbmluZGV4IDI2OWM0YjQ1ZGU4MDc4Li5hYjFlYjJlYjBjM2NkZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3J4LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3J4LmNcbkBAIC0xMjI3LDYgJiM0MzsxMjI3LDExIEBAIHZvaWQgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXHRcdC8qIGdldCB0aGUgc3RhdGlvbiAqL1xuIFx0XHRzdGFfaWQgPSAocmF0aWQgXHUwMDI2IEJBX1dJTkRPV19TVEFUVVNfU1RBX0lEX01TSylcbiBcdFx0XHQgXHUwMDNlXHUwMDNlIEJBX1dJTkRPV19TVEFUVVNfU1RBX0lEX1BPUztcbiYjNDM7XHRcdGlmIChJV0xfRldfQ0hFQ0sobXZtLFxuJiM0MztcdFx0XHRcdCBzdGFfaWQgXHUwMDNlPSBtdm0tXHUwMDNlZnctXHUwMDNldWNvZGVfY2FwYS5udW1fc3RhdGlvbnMsXG4mIzQzO1x0XHRcdFx0IFwmIzM0O0ludmFsaWQgc3RhIGlkICglZCkgaW4gQkEgd2luZG93IHN0YXR1cyBub3RpZmljYXRpb25cXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0IHN0YV9pZCkpXG4mIzQzO1x0XHRcdGNvbnRpbnVlO1xuIFx0XHRzdGEgPSByY3VfZGVyZWZlcmVuY2UobXZtLVx1MDAzZWZ3X2lkX3RvX21hY19pZFtzdGFfaWRdKTtcbiBcdFx0aWYgKElTX0VSUl9PUl9OVUxMKHN0YSkpXG4gXHRcdFx0Y29udGludWU7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jXG5pbmRleCA3OTgyOWY3NzVjODliZi4uMzgzMWIzYzI3ZTBmMzcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xuQEAgLTEsNiAmIzQzOzEsNiBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxuIC8qXG4tICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI2IEludGVsIENvcnBvcmF0aW9uXG4gICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgSW50ZWwgTW9iaWxlIENvbW11bmljYXRpb25zIEdtYkhcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBJbnRlbCBEZXV0c2NobGFuZCBHbWJIXG4gICovXG5AQCAtMzE0NCw4ICYjNDM7MzE0NCw2IEBAIGludCBpd2xfbXZtX3NjaGVkX3NjYW5fc3RhcnQoc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcdGlmIChyZXQpXG4gXHRcdHJldHVybiByZXQ7XG4gXG4tXHRpd2xfbXZtX2J1aWxkX3NjYW5fcHJvYmUobXZtLCB2aWYsIGllcywgXHUwMDI2cGFyYW1zKTtcbi1cbiBcdC8qIGZvciA2IEdIWiBiYW5kIG9ubHkgUFNDIGNoYW5uZWxzIG5lZWQgdG8gYmUgYWRkZWQgKi9cbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHBhcmFtcy5uX2NoYW5uZWxzOyBpJiM0MzsmIzQzOykge1xuIFx0XHRzdHJ1Y3QgaWVlZTgwMjExX2NoYW5uZWwgKmNoYW5uZWwgPSBwYXJhbXMuY2hhbm5lbHNbaV07XG5AQCAtMzE3OSw2ICYjNDM7MzE3Nyw4IEBAIGludCBpd2xfbXZtX3NjaGVkX3NjYW5fc3RhcnQoc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcdFx0Z290byBvdXQ7XG4gXHR9XG4gXG4mIzQzO1x0aXdsX212bV9idWlsZF9zY2FuX3Byb2JlKG12bSwgdmlmLCBpZXMsIFx1MDAyNnBhcmFtcyk7XG4mIzQzO1xuIFx0dWlkID0gaXdsX212bV9idWlsZF9zY2FuX2NtZChtdm0sIHZpZiwgXHUwMDI2aGNtZCwgXHUwMDI2cGFyYW1zLCB0eXBlKTtcbiBcdGlmICh1aWQgXHUwMDNjIDApIHtcbiBcdFx0cmV0ID0gdWlkO1xuQEAgLTMyMTcsNiAmIzQzOzMyMTcsMTAgQEAgdm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuIFxuIFx0bXZtLVx1MDAzZW1laV9zY2FuX2ZpbHRlci5pc19tZWlfbGltaXRlZF9zY2FuID0gZmFsc2U7XG4gXG4mIzQzO1x0aWYgKElXTF9GV19DSEVDSyhtdm0sIHVpZCBcdTAwM2U9IEFSUkFZX1NJWkUobXZtLVx1MDAzZXNjYW5fdWlkX3N0YXR1cyksXG4mIzQzO1x0XHRcdCBcJiMzNDtGVyByZXBvcnRzIG91dC1vZi1yYW5nZSBzY2FuIFVJRCAlZFxcblwmIzM0OywgdWlkKSlcbiYjNDM7XHRcdHJldHVybjtcbiYjNDM7XG4gXHRJV0xfREVCVUdfU0NBTihtdm0sXG4gXHRcdCAgICAgICBcJiMzNDtTY2FuIGNvbXBsZXRlZDogdWlkPSV1IHR5cGU9JXUsIHN0YXR1cz0lcywgRUJTPSVzXFxuXCYjMzQ7LFxuIFx0XHQgICAgICAgdWlkLCBtdm0tXHUwMDNlc2Nhbl91aWRfc3RhdHVzW3VpZF0sXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5jXG5pbmRleCAxNjkyYjZlNzVmNTc5ZC4uOTNiNDZjOWUyMzMzZDUgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuY1xuQEAgLTk1MSw2ICYjNDM7OTUxLDExIEBAIHZvaWQgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XG4gXHRzdHJ1Y3QgaXdsX212bV92aWYgKm12bXZpZjtcbiBcbiYjNDM7XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgaWQgXHUwMDNlPSBBUlJBWV9TSVpFKG12bS1cdTAwM2V2aWZfaWRfdG9fbWFjKSxcbiYjNDM7XHRcdFx0IFwmIzM0O0ludmFsaWQgbWFjX2xpbmtfaWQgKCVkKSBpbiBzZXNzaW9uIHByb3RlY3Qgbm90aWZcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCBpZCkpXG4mIzQzO1x0XHRyZXR1cm47XG4mIzQzO1xuIFx0cmN1X3JlYWRfbG9jaygpO1xuIFxuIFx0Lyogbm90ZSB3ZSB1c2UgbGluayBJRCA9PSBNQUMgSUQgKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmNcbmluZGV4IGZlMjYzY2RjMmU0ZjQxLi40NjMxZTExZjJhOTY0ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2dlbjFfMi9yeC5jXG5AQCAtMSw2ICYjNDM7MSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNCwgMjAxOC0yMDI0IEludGVsIENvcnBvcmF0aW9uXG4mIzQzOyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE0LCAyMDE4LTIwMjQsIDIwMjYgSW50ZWwgQ29ycG9yYXRpb25cbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBJbnRlbCBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgR21iSFxuICAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkhcbiAgKi9cbkBAIC0xMjM4LDExICYjNDM7MTIzOCwxNiBAQCB2b2lkIGl3bF9wY2llX3J4X2ZyZWUoc3RydWN0IGl3bF90cmFucyAqdHJhbnMpXG4gXHRcdH1cbiBcdH1cbiBcdGtmcmVlKHRyYW5zX3BjaWUtXHUwMDNlcnhfcG9vbCk7XG4mIzQzO1x0dHJhbnNfcGNpZS1cdTAwM2VyeF9wb29sID0gTlVMTDtcbiBcdGtmcmVlKHRyYW5zX3BjaWUtXHUwMDNlZ2xvYmFsX3RhYmxlKTtcbiYjNDM7XHR0cmFuc19wY2llLVx1MDAzZWdsb2JhbF90YWJsZSA9IE5VTEw7XG4gXHRrZnJlZSh0cmFuc19wY2llLVx1MDAzZXJ4cSk7XG4mIzQzO1x0dHJhbnNfcGNpZS1cdTAwM2VyeHEgPSBOVUxMO1xuIFxuLVx0aWYgKHRyYW5zX3BjaWUtXHUwMDNlYWxsb2NfcGFnZSlcbiYjNDM7XHRpZiAodHJhbnNfcGNpZS1cdTAwM2VhbGxvY19wYWdlKSB7XG4gXHRcdF9fZnJlZV9wYWdlcyh0cmFuc19wY2llLVx1MDAzZWFsbG9jX3BhZ2UsIHRyYW5zX3BjaWUtXHUwMDNlcnhfcGFnZV9vcmRlcik7XG4mIzQzO1x0XHR0cmFuc19wY2llLVx1MDAzZWFsbG9jX3BhZ2UgPSBOVUxMO1xuJiM0MztcdH1cbiB9XG4gXG4gc3RhdGljIHZvaWQgaXdsX3BjaWVfcnhfbW92ZV90b19hbGxvY2F0b3Ioc3RydWN0IGl3bF9yeHEgKnJ4cSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNjo1OTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4yMm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVdMV0lGSSYjMzQ7LAogICAgJiMzNDtJV0xNVk0mIzM0OywKICAgICYjMzQ7SVdMTUxEJiMzNDssCiAgICAmIzM0O0lXTFdJRklfREVCVUdGUyYjMzQ7LAogICAgJiMzNDtUSEVSTUFMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aXdsX212bV9yeF9iZWFjb25fbm90aWYmIzM0OywKICAgICYjMzQ7aXdsX212bV91cGRhdGVfbWNjJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWYmIzM0OywKICAgICYjMzQ7aXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWYmIzM0OywKICAgICYjMzQ7aXdsX21sZF9yZW9yZGVyJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fcnhfc2Vzc2lvbl9wcm90ZWN0X25vdGlmJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fd2FpdF9kM19ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYm91bmRzIGNoZWNrcyBhbmQgcGF5bG9hZCBsZW5ndGggdmFsaWRhdGlvbnMgZm9yIGZpcm13YXJlIG5vdGlmaWNhdGlvbnMgaW4gdGhlIGl3bHdpZmkgZHJpdmVyIChNVk0gYW5kIE1MRCBjb21wb25lbnRzKS4gVGhlc2UgYXJlIGNyaXRpY2FsIGZvciBwcmV2ZW50aW5nIG91dC1vZi1ib3VuZHMgYWNjZXNzZXMgYW5kIG1lbW9yeSBjb3JydXB0aW9uIHdoZW4gcHJvY2Vzc2luZyBtYWxmb3JtZWQgb3IgbWFsaWNpb3VzIGZpcm13YXJlIHJlc3BvbnNlcy4gVGhlIGZpcm13YXJlIGludGVyZmFjZSBjYW4gYmUgZnV6emVkIHZpYSBkZWJ1Z2ZzIGluamVjdGlvbiAoaXdsX2RiZ2ZzX2luamVjdF9wYWNrZXRfd3JpdGUpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2ZjUxODMwNzExNWEyZmM5YTlhMjRmZGQ0YzNiZGI3ZjA3YWY1ZTQ2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMTQgMTY6NTg6MzkgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jCmluZGV4IGUzNjI3YWQwMzIxYzhiLi5hNDY0ZWJkZWM1N2YxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMKQEAgLTEsNiAmIzQzOzEsNiBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlCiAvKgotICogQ29weXJpZ2h0IChDKSAyMDI0LTIwMjUgSW50ZWwgQ29ycG9yYXRpb24KJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvbgogICovCiAjaW5jbHVkZSAmIzM0O2FnZy5oJiMzNDsKICNpbmNsdWRlICYjMzQ7c3RhLmgmIzM0OwpAQCAtMjIyLDYgJiM0MzsyMjIsMTEgQEAgaXdsX21sZF9yZW9yZGVyKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwKIAlpZiAoYmFpZCA9PSBJV0xfUlhfUkVPUkRFUl9EQVRBX0lOVkFMSURfQkFJRCkKIAkJcmV0dXJuIElXTF9NTERfUEFTU19TS0I7CiAKJiM0MzsJaWYgKElXTF9GV19DSEVDSyhtbGQsIGJhaWQgJmd0Oz0gQVJSQVlfU0laRShtbGQtJmd0O2Z3X2lkX3RvX2JhKSwKJiM0MzsJCQkgJiMzNDtHb3Qgb3V0LW9mLXJhbmdlIEJBSUQgJXUgaW4gcmVvcmRlcl9kYXRhPTB4JXhcbiYjMzQ7LAomIzQzOwkJCSBiYWlkLCByZW9yZGVyKSkKJiM0MzsJCXJldHVybiBJV0xfTUxEX1BBU1NfU0tCOwomIzQzOwogCS8qIG5vIHN0YSB5ZXQgKi8KIAlpZiAoV0FSTl9PTkNFKCFzdGEsCiAJCSAgICAgICYjMzQ7R290IHZhbGlkIEJBSUQgd2l0aG91dCBhIHZhbGlkIHN0YXRpb24gYXNzaWduZWRcbiYjMzQ7KSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21hYzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tYWM4MDIxMS5jCmluZGV4IDE3Mjg2YjMzNDFjMDIwLi45YWMxN2JlMzA0MDA4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWFjODAyMTEuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tYWM4MDIxMS5jCkBAIC0xNzA4LDcgJiM0MzsxNzA4LDcgQEAgc3RhdGljIHZvaWQgaXdsX21sZF9jaGVja19oZV9vYnNzX25hcnJvd19id19ydV9pdGVyKHN0cnVjdCB3aXBoeSAqd2lwaHksCiAJZWxlbSA9IGNmZzgwMjExX2ZpbmRfZWxlbShXTEFOX0VJRF9FWFRfQ0FQQUJJTElUWSwgaWVzLSZndDtkYXRhLAogCQkJCSAgaWVzLSZndDtsZW4pOwogCi0JaWYgKCFlbGVtIHx8IGVsZW0tJmd0O2RhdGFsZW4gJmx0OyAxMCB8fAomIzQzOwlpZiAoIWVsZW0gfHwgZWxlbS0mZ3Q7ZGF0YWxlbiAmbHQ7IDExIHx8CiAJICAgICEoZWxlbS0mZ3Q7ZGF0YVsxMF0gJmFtcDsKIAkgICAgICBXTEFOX0VYVF9DQVBBMTBfT0JTU19OQVJST1dfQldfUlVfVE9MRVJBTkNFX1NVUFBPUlQpKSB7CiAJCSp0b2xlcmF0ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21jYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWNjLmMKaW5kZXggODUwMjEyOWFiZTQ5MzkuLjgzMGMyNTFmNDNhZmNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tY2MuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tY2MuYwpAQCAtMTgsOSAmIzQzOzE4LDE1IEBAIHN0YXRpYyBzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92OCAqCiBpd2xfbWxkX2NvcHlfbWNjX3Jlc3AoY29uc3Qgc3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCkKIHsKIAljb25zdCBzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92OCAqbWNjX3Jlc3BfdjggPSAoY29uc3Qgdm9pZCAqKXBrdC0mZ3Q7ZGF0YTsKLQlpbnQgbl9jaGFubmVscyA9IF9fbGUzMl90b19jcHUobWNjX3Jlc3BfdjgtJmd0O25fY2hhbm5lbHMpOwogCXN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3Y4ICpyZXNwX2NwOwotCWludCBub3RpZl9sZW4gPSBzdHJ1Y3Rfc2l6ZShyZXNwX2NwLCBjaGFubmVscywgbl9jaGFubmVscyk7CiYjNDM7CWludCBuX2NoYW5uZWxzOwomIzQzOwlpbnQgbm90aWZfbGVuOwomIzQzOwomIzQzOwlpZiAoaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpICZsdDsgc2l6ZW9mKCptY2NfcmVzcF92OCkpCiYjNDM7CQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKJiM0MzsKJiM0MzsJbl9jaGFubmVscyA9IF9fbGUzMl90b19jcHUobWNjX3Jlc3BfdjgtJmd0O25fY2hhbm5lbHMpOwomIzQzOwlub3RpZl9sZW4gPSBzdHJ1Y3Rfc2l6ZShyZXNwX2NwLCBjaGFubmVscywgbl9jaGFubmVscyk7CiAKIAlpZiAoaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpICE9IG5vdGlmX2xlbikKIAkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMKaW5kZXggZjhhOGMzNTA2NmJlYjIuLmU0NDViMWQ3ZDRiMDAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jCkBAIC0xLDYgJiM0MzsxLDYgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZQogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI1IEludGVsIENvcnBvcmF0aW9uCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDI0LTIwMjYgSW50ZWwgQ29ycG9yYXRpb24KICAqLwogI2lmZGVmIENPTkZJR19USEVSTUFMCiAjaW5jbHVkZSAmbHQ7bGludXgvc29ydC5oJmd0OwpAQCAtMjcyLDYgJiM0MzsyNzIsNyBAQCBzdGF0aWMgdm9pZCBpd2xfbWxkX3RoZXJtYWxfem9uZV9yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKQogCWlmIChyZXQpIHsKIAkJSVdMX0RFQlVHX1RFTVAobWxkLCAmIzM0O0ZhaWxlZCB0byBlbmFibGUgdGhlcm1hbCB6b25lXG4mIzM0Oyk7CiAJCXRoZXJtYWxfem9uZV9kZXZpY2VfdW5yZWdpc3RlcihtbGQtJmd0O3R6b25lKTsKJiM0MzsJCW1sZC0mZ3Q7dHpvbmUgPSBOVUxMOwogCX0KIH0KIApAQCAtMzg1LDEwICYjNDM7Mzg2LDggQEAgc3RhdGljIHZvaWQgaXdsX21sZF90aGVybWFsX3pvbmVfdW5yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKQogCQlyZXR1cm47CiAKIAlJV0xfREVCVUdfVEVNUChtbGQsICYjMzQ7VGhlcm1hbCB6b25lIGRldmljZSB1bnJlZ2lzdGVyXG4mIzM0Oyk7Ci0JaWYgKG1sZC0mZ3Q7dHpvbmUpIHsKLQkJdGhlcm1hbF96b25lX2RldmljZV91bnJlZ2lzdGVyKG1sZC0mZ3Q7dHpvbmUpOwotCQltbGQtJmd0O3R6b25lID0gTlVMTDsKLQl9CiYjNDM7CXRoZXJtYWxfem9uZV9kZXZpY2VfdW5yZWdpc3RlcihtbGQtJmd0O3R6b25lKTsKJiM0MzsJbWxkLSZndDt0em9uZSA9IE5VTEw7CiB9CiAKIHN0YXRpYyB2b2lkIGl3bF9tbGRfY29vbGluZ19kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMKaW5kZXggOWE3NGY2MGM5MTg1MGYuLjM0MjlkOWExMGU0MjA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMKQEAgLTE1MzksOCAmIzQzOzE1MzksOCBAQCBzdGF0aWMgdm9pZCBpd2xfbXZtX3JlcG9ydF93YWtldXBfcmVhc29ucyhzdHJ1Y3QgaXdsX212bSAqbXZtLAogCiAJCQkvKiBpZiB0cnVuY2F0ZWQsIEZDUy9JQ1YgaXMgKHBhcnRpYWxseSkgZ29uZSAqLwogCQkJaWYgKHRydW5jYXRlZCAmZ3Q7PSBpY3ZsZW4pIHsKLQkJCQlpY3ZsZW4gPSAwOwogCQkJCXRydW5jYXRlZCAtPSBpY3ZsZW47CiYjNDM7CQkJCWljdmxlbiA9IDA7CiAJCQl9IGVsc2UgewogCQkJCWljdmxlbiAtPSB0cnVuY2F0ZWQ7CiAJCQkJdHJ1bmNhdGVkID0gMDsKQEAgLTIxMjMsMTYgJiM0MzsyMTIzLDE2IEBAIHN0YXRpYyB2b2lkIGl3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSwKIAkJCQkJICAgIHN0cnVjdCBpd2xfd293bGFuX3N0YXR1c19kYXRhICpzdGF0dXMsCiAJCQkJCSAgICB1MzIgbGVuKQogewotCWlmIChJV0xfRldfQ0hFQ0sobXZtLCBkYXRhLSZndDtudW1fbWxvX2xpbmtfa2V5cywKLQkJCSAmIzM0O01MTyBpcyBub3Qgc3VwcG9ydGVkLCBzaG91bGRuJiMzOTt0IHJlY2VpdmUgTUxPIGtleXNcbiYjMzQ7KSkKLQkJcmV0dXJuOwotCiAJaWYgKGxlbiAmbHQ7IHNpemVvZigqZGF0YSkpIHsKIAkJSVdMX0VSUihtdm0sICYjMzQ7SW52YWxpZCBXb1dMQU4gaW5mbyBub3RpZmljYXRpb24hXG4mIzM0Oyk7CiAJCXN0YXR1cyA9IE5VTEw7CiAJCXJldHVybjsKIAl9CiAKJiM0MzsJaWYgKElXTF9GV19DSEVDSyhtdm0sIGRhdGEtJmd0O251bV9tbG9fbGlua19rZXlzLAomIzQzOwkJCSAmIzM0O01MTyBpcyBub3Qgc3VwcG9ydGVkLCBzaG91bGRuJiMzOTt0IHJlY2VpdmUgTUxPIGtleXNcbiYjMzQ7KSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlpZiAobXZtLSZndDtmYXN0X3Jlc3VtZSkKIAkJcmV0dXJuOwogCkBAIC0yOTQyLDYgJiM0MzsyOTQyLDExIEBAIHN0YXRpYyBib29sIGl3bF9tdm1fd2FpdF9kM19ub3RpZihzdHJ1Y3QgaXdsX25vdGlmX3dhaXRfZGF0YSAqbm90aWZfd2FpdCwKIAljYXNlIFdJREVfSUQoUFJPVF9PRkZMT0FEX0dST1VQLCBEM19FTkRfTk9USUZJQ0FUSU9OKTogewogCQlzdHJ1Y3QgaXdsX2QzX2VuZF9ub3RpZiAqbm90aWYgPSAodm9pZCAqKXBrdC0mZ3Q7ZGF0YTsKIAomIzQzOwkJaWYgKGxlbiAmbHQ7IHNpemVvZigqbm90aWYpKSB7CiYjNDM7CQkJSVdMX0VSUihtdm0sICYjMzQ7SW52YWxpZCBEMyBlbmQgbm90aWZpY2F0aW9uIHNpemVcbiYjMzQ7KTsKJiM0MzsJCQlicmVhazsKJiM0MzsJCX0KJiM0MzsKIAkJZDNfZGF0YS0mZ3Q7ZDNfZW5kX2ZsYWdzID0gX19sZTMyX3RvX2NwdShub3RpZi0mZ3Q7ZmxhZ3MpOwogCQlkM19kYXRhLSZndDtub3RpZl9yZWNlaXZlZCB8PSBJV0xfRDNfTk9USUZfRDNfRU5EX05PVElGOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYwppbmRleCBkNmE4NjI0YjFhZTVjZS4uYjJjNWJlMjJjMjkzY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYwpAQCAtMTQ5Myw0OSAmIzQzOzE0OTMsNTQgQEAgdm9pZCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLAogewogCXN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpOwogCXVuc2lnbmVkIGludCBwa3RfbGVuID0gaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpOwotCXN0cnVjdCBpd2xfZXh0ZW5kZWRfYmVhY29uX25vdGlmICpiZWFjb24gPSAodm9pZCAqKXBrdC0mZ3Q7ZGF0YTsKLQlzdHJ1Y3QgaXdsX2V4dGVuZGVkX2JlYWNvbl9ub3RpZl92NSAqYmVhY29uX3Y1ID0gKHZvaWQgKilwa3QtJmd0O2RhdGE7CiAJc3RydWN0IGllZWU4MDIxMV92aWYgKmNzYV92aWY7CiAJc3RydWN0IGllZWU4MDIxMV92aWYgKnR4X2Jsb2NrZWRfdmlmOwogCXN0cnVjdCBhZ2dfdHhfc3RhdHVzICphZ2dfc3RhdHVzOwomIzQzOwl1MzIgYmVhY29uX2dwMjsKIAl1MTYgc3RhdHVzOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmYW1wO212bS0mZ3Q7bXV0ZXgpOwogCi0JbXZtLSZndDthcF9sYXN0X2JlYWNvbl9ncDIgPSBsZTMyX3RvX2NwdShiZWFjb24tJmd0O2dwMik7Ci0KIAlpZiAoIWl3bF9tdm1faXNfc2hvcnRfYmVhY29uX25vdGlmX3N1cHBvcnRlZChtdm0pKSB7CiYjNDM7CQlzdHJ1Y3QgaXdsX2V4dGVuZGVkX2JlYWNvbl9ub3RpZl92NSAqYmVhY29uID0gKHZvaWQgKilwa3QtJmd0O2RhdGE7CiAJCXN0cnVjdCBpd2xfdHhfcmVzcCAqYmVhY29uX25vdGlmeV9oZHIgPQotCQkJJmFtcDtiZWFjb25fdjUtJmd0O2JlYWNvbl9ub3RpZnlfaGRyOwomIzQzOwkJCSZhbXA7YmVhY29uLSZndDtiZWFjb25fbm90aWZ5X2hkcjsKIAotCQlpZiAodW5saWtlbHkocGt0X2xlbiAmbHQ7IHNpemVvZigqYmVhY29uX3Y1KSkpCiYjNDM7CQlpZiAodW5saWtlbHkocGt0X2xlbiAmbHQ7IHNpemVvZigqYmVhY29uKSkpCiAJCQlyZXR1cm47CiAKLQkJbXZtLSZndDtpYnNzX21hbmFnZXIgPSBiZWFjb25fdjUtJmd0O2lic3NfbWdyX3N0YXR1cyAhPSAwOwomIzQzOwkJYmVhY29uX2dwMiA9IGxlMzJfdG9fY3B1KGJlYWNvbi0mZ3Q7Z3AyKTsKJiM0MzsKJiM0MzsJCW12bS0mZ3Q7aWJzc19tYW5hZ2VyID0gYmVhY29uLSZndDtpYnNzX21ncl9zdGF0dXMgIT0gMDsKIAkJYWdnX3N0YXR1cyA9IGl3bF9tdm1fZ2V0X2FnZ19zdGF0dXMobXZtLCBiZWFjb25fbm90aWZ5X2hkcik7CiAJCXN0YXR1cyA9IGxlMTZfdG9fY3B1KGFnZ19zdGF0dXMtJmd0O3N0YXR1cykgJmFtcDsgVFhfU1RBVFVTX01TSzsKIAkJSVdMX0RFQlVHX1JYKG12bSwKIAkJCSAgICAgJiMzNDtiZWFjb24gc3RhdHVzICUjeCByZXRyaWVzOiVkIHRzZjoweCUwMTZsbFggZ3AyOjB4JVggcmF0ZTolZFxuJiMzNDssCiAJCQkgICAgIHN0YXR1cywgYmVhY29uX25vdGlmeV9oZHItJmd0O2ZhaWx1cmVfZnJhbWUsCiAJCQkgICAgIGxlNjRfdG9fY3B1KGJlYWNvbi0mZ3Q7dHNmKSwKLQkJCSAgICAgbXZtLSZndDthcF9sYXN0X2JlYWNvbl9ncDIsCiYjNDM7CQkJICAgICBiZWFjb25fZ3AyLAogCQkJICAgICBsZTMyX3RvX2NwdShiZWFjb25fbm90aWZ5X2hkci0mZ3Q7aW5pdGlhbF9yYXRlKSk7CiAJfSBlbHNlIHsKJiM0MzsJCWNvbnN0IHN0cnVjdCBpd2xfZXh0ZW5kZWRfYmVhY29uX25vdGlmICpiZWFjb24gPQomIzQzOwkJCSh2b2lkICopcGt0LSZndDtkYXRhOwomIzQzOwogCQlpZiAodW5saWtlbHkocGt0X2xlbiAmbHQ7IHNpemVvZigqYmVhY29uKSkpCiAJCQlyZXR1cm47CiAKJiM0MzsJCWJlYWNvbl9ncDIgPSBsZTMyX3RvX2NwdShiZWFjb24tJmd0O2dwMik7CiYjNDM7CiAJCW12bS0mZ3Q7aWJzc19tYW5hZ2VyID0gYmVhY29uLSZndDtpYnNzX21ncl9zdGF0dXMgIT0gMDsKIAkJc3RhdHVzID0gbGUzMl90b19jcHUoYmVhY29uLSZndDtzdGF0dXMpICZhbXA7IFRYX1NUQVRVU19NU0s7CiAJCUlXTF9ERUJVR19SWChtdm0sCiAJCQkgICAgICYjMzQ7YmVhY29uIHN0YXR1cyAlI3ggdHNmOjB4JTAxNmxsWCBncDI6MHglWFxuJiMzNDssCiAJCQkgICAgIHN0YXR1cywgbGU2NF90b19jcHUoYmVhY29uLSZndDt0c2YpLAotCQkJICAgICBtdm0tJmd0O2FwX2xhc3RfYmVhY29uX2dwMik7CiYjNDM7CQkJICAgICBiZWFjb25fZ3AyKTsKIAl9CiAKIAljc2FfdmlmID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChtdm0tJmd0O2NzYV92aWYsCiAJCQkJCSAgICBsb2NrZGVwX2lzX2hlbGQoJmFtcDttdm0tJmd0O211dGV4KSk7CiAJaWYgKHVubGlrZWx5KGNzYV92aWYgJmFtcDsmYW1wOyBjc2FfdmlmLSZndDtic3NfY29uZi5jc2FfYWN0aXZlKSkKLQkJaXdsX212bV9jc2FfY291bnRfZG93bihtdm0sIGNzYV92aWYsIG12bS0mZ3Q7YXBfbGFzdF9iZWFjb25fZ3AyLAomIzQzOwkJaXdsX212bV9jc2FfY291bnRfZG93bihtdm0sIGNzYV92aWYsIGJlYWNvbl9ncDIsCiAJCQkJICAgICAgIChzdGF0dXMgPT0gVFhfU1RBVFVTX1NVQ0NFU1MpKTsKIAogCXR4X2Jsb2NrZWRfdmlmID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChtdm0tJmd0O2NzYV90eF9ibG9ja2VkX3ZpZiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jCmluZGV4IDc0YmQ0MDM4ZmQ1NjAxLi4zZTczYTYxOTVmZDliMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jCkBAIC02MjUsOSAmIzQzOzYyNSw3IEBAIGludCBpd2xfbXZtX21hY19zZXR1cF9yZWdpc3RlcihzdHJ1Y3QgaXdsX212bSAqbXZtKQogCWh3LSZndDt3aXBoeS0mZ3Q7bWF4X3NjaGVkX3NjYW5fcmVxcyA9IDE7CiAJaHctJmd0O3dpcGh5LSZndDttYXhfc2NoZWRfc2Nhbl9zc2lkcyA9IFBST0JFX09QVElPTl9NQVg7CiAJaHctJmd0O3dpcGh5LSZndDttYXhfbWF0Y2hfc2V0cyA9IGl3bF91bWFjX3NjYW5fZ2V0X21heF9wcm9maWxlcyhtdm0tJmd0O2Z3KTsKLQkvKiB3ZSBjcmVhdGUgdGhlIDgwMi4xMSBoZWFkZXIgYW5kIHplcm8gbGVuZ3RoIFNTSUQgSUUuICovCi0JaHctJmd0O3dpcGh5LSZndDttYXhfc2NoZWRfc2Nhbl9pZV9sZW4gPQotCQlTQ0FOX09GRkxPQURfUFJPQkVfUkVRX1NJWkUgLSAyNCAtIDI7CiYjNDM7CWh3LSZndDt3aXBoeS0mZ3Q7bWF4X3NjaGVkX3NjYW5faWVfbGVuID0gaXdsX212bV9tYXhfc2Nhbl9pZV9sZW4obXZtKTsKIAlody0mZ3Q7d2lwaHktJmd0O21heF9zY2hlZF9zY2FuX3BsYW5zID0gSVdMX01BWF9TQ0hFRF9TQ0FOX1BMQU5TOwogCWh3LSZndDt3aXBoeS0mZ3Q7bWF4X3NjaGVkX3NjYW5fcGxhbl9pbnRlcnZhbCA9IFUxNl9NQVg7CiAKQEAgLTMwNjEsNyAmIzQzOzMwNTksNiBAQCB2b2lkIGl3bF9tdm1fc3RvcF9hcF9pYnNzX2NvbW1vbihzdHJ1Y3QgaXdsX212bSAqbXZtLAogCX0KIAogCW12bXZpZi0mZ3Q7YXBfaWJzc19hY3RpdmUgPSBmYWxzZTsKLQltdm0tJmd0O2FwX2xhc3RfYmVhY29uX2dwMiA9IDA7CiAKIAlpZiAodmlmLSZndDt0eXBlID09IE5MODAyMTFfSUZUWVBFX0FQICZhbXA7JmFtcDsgIXZpZi0mZ3Q7cDJwKSB7CiAJCWl3bF9tdm1fdmlmX3NldF9sb3dfbGF0ZW5jeShtdm12aWYsIGZhbHNlLApAQCAtMzQ5MCw3ICYjNDM7MzQ4Nyw3IEBAIHN0YXRpYyB2b2lkIGl3bF9tdm1fY2hlY2tfaGVfb2Jzc19uYXJyb3dfYndfcnVfaXRlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LAogCWVsZW0gPSBjZmc4MDIxMV9maW5kX2VsZW0oV0xBTl9FSURfRVhUX0NBUEFCSUxJVFksIGllcy0mZ3Q7ZGF0YSwKIAkJCQkgIGllcy0mZ3Q7bGVuKTsKIAotCWlmICghZWxlbSB8fCBlbGVtLSZndDtkYXRhbGVuICZsdDsgMTAgfHwKJiM0MzsJaWYgKCFlbGVtIHx8IGVsZW0tJmd0O2RhdGFsZW4gJmx0OyAxMSB8fAogCSAgICAhKGVsZW0tJmd0O2RhdGFbMTBdICZhbXA7CiAJICAgICAgV0xBTl9FWFRfQ0FQQTEwX09CU1NfTkFSUk9XX0JXX1JVX1RPTEVSQU5DRV9TVVBQT1JUKSkgewogCQlkYXRhLSZndDt0b2xlcmF0ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmgKaW5kZXggNjgzY2FjNTY4MjJjODYuLjMxOTEyZjRkMDE3NWY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaApAQCAtMTE2OCw5ICYjNDM7MTE2OCw2IEBAIHN0cnVjdCBpd2xfbXZtIHsKIAlzdHJ1Y3QgaWVlZTgwMjExX3ZpZiBfX3JjdSAqY3NhX3R4X2Jsb2NrZWRfdmlmOwogCXU4IGNzYV90eF9ibG9ja19iY25fdGltZW91dDsKIAotCS8qIHN5c3RlbSB0aW1lIG9mIGxhc3QgYmVhY29uIChmb3IgQVAvR08gaW50ZXJmYWNlKSAqLwotCXUzMiBhcF9sYXN0X2JlYWNvbl9ncDI7Ci0KIAkvKiBpbmRpY2F0ZXMgdGhhdCB3ZSB0cmFuc21pdHRlZCB0aGUgbGFzdCBiZWFjb24gKi8KIAlib29sIGlic3NfbWFuYWdlcjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbnZtLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9udm0uYwppbmRleCA5NTMyMThmMWUwMjVhNy4uZjc2ZTU3Mzk5YzFmMzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jCkBAIC0xLDYgJiM0MzsxLDYgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZQogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMTksIDIwMjEtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvbgomIzQzOyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMTksIDIwMjEtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvbgogICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgSW50ZWwgTW9iaWxlIENvbW11bmljYXRpb25zIEdtYkgKICAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkgKICAqLwpAQCAtNDE2LDYgJiM0Mzs0MTYsNyBAQCBpd2xfbXZtX3VwZGF0ZV9tY2Moc3RydWN0IGl3bF9tdm0gKm12bSwgY29uc3QgY2hhciAqYWxwaGEyLAogCWludCByZXQsIHJlc3BfdmVyOwogCXUzMiBzdGF0dXM7CiAJaW50IHJlc3BfbGVuLCBuX2NoYW5uZWxzOwomIzQzOwl1bnNpZ25lZCBpbnQgcGt0X2xlbjsKIAl1MTYgbWNjOwogCiAJaWYgKFdBUk5fT05fT05DRSghaXdsX212bV9pc19sYXJfc3VwcG9ydGVkKG12bSkpKQpAQCAtNDMxLDYgJiM0Mzs0MzIsNyBAQCBpd2xfbXZtX3VwZGF0ZV9tY2Moc3RydWN0IGl3bF9tdm0gKm12bSwgY29uc3QgY2hhciAqYWxwaGEyLAogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCiAJcGt0ID0gY21kLnJlc3BfcGt0OwomIzQzOwlwa3RfbGVuID0gaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpOwogCiAJcmVzcF92ZXIgPSBpd2xfZndfbG9va3VwX25vdGlmX3Zlcihtdm0tJmd0O2Z3LCBJV0xfQUxXQVlTX0xPTkdfR1JPVVAsCiAJCQkJCSAgIE1DQ19VUERBVEVfQ01ELCAwKTsKQEAgLTQzOSw5ICYjNDM7NDQxLDE4IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsCiAJaWYgKHJlc3BfdmVyICZndDs9IDgpIHsKIAkJc3RydWN0IGl3bF9tY2NfdXBkYXRlX3Jlc3BfdjggKm1jY19yZXNwX3Y4ID0gKHZvaWQgKilwa3QtJmd0O2RhdGE7CiAKJiM0MzsJCWlmIChJV0xfRldfQ0hFQ0sobXZtLCBwa3RfbGVuICZsdDsgc2l6ZW9mKCptY2NfcmVzcF92OCksCiYjNDM7CQkJCSAmIzM0O01DQyB2OCByZXNwb25zZSB0b28gc2hvcnQ6ICV1XG4mIzM0OywgcGt0X2xlbikpIHsKJiM0MzsJCQlyZXNwX2NwID0gRVJSX1BUUigtRUlOVkFMKTsKJiM0MzsJCQlnb3RvIGV4aXQ7CiYjNDM7CQl9CiYjNDM7CiAJCW5fY2hhbm5lbHMgPSAgX19sZTMyX3RvX2NwdShtY2NfcmVzcF92OC0mZ3Q7bl9jaGFubmVscyk7Ci0JCWlmIChpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkgIT0KLQkJICAgIHN0cnVjdF9zaXplKG1jY19yZXNwX3Y4LCBjaGFubmVscywgbl9jaGFubmVscykpIHsKJiM0MzsJCWlmIChJV0xfRldfQ0hFQ0sobXZtLAomIzQzOwkJCQkgcGt0X2xlbiAhPQomIzQzOwkJCQkgc3RydWN0X3NpemUobWNjX3Jlc3BfdjgsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSwKJiM0MzsJCQkJICYjMzQ7aW52YWxpZCBNQ0MgdjggcmVzcG9uc2Ugc2l6ZTogJXUgKG5fY2hhbm5lbHM9JWQpXG4mIzM0OywKJiM0MzsJCQkJIHBrdF9sZW4sIG5fY2hhbm5lbHMpKSB7CiAJCQlyZXNwX2NwID0gRVJSX1BUUigtRUlOVkFMKTsKIAkJCWdvdG8gZXhpdDsKIAkJfQpAQCAtNDY0LDkgJiM0Mzs0NzUsMTggQEAgaXdsX212bV91cGRhdGVfbWNjKHN0cnVjdCBpd2xfbXZtICptdm0sIGNvbnN0IGNoYXIgKmFscGhhMiwKIAkJCSAgICAgICBJV0xfVUNPREVfVExWX0NBUEFfTUNDX1VQREFURV8xMUFYX1NVUFBPUlQpKSB7CiAJCXN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3Y0ICptY2NfcmVzcF92NCA9ICh2b2lkICopcGt0LSZndDtkYXRhOwogCiYjNDM7CQlpZiAoSVdMX0ZXX0NIRUNLKG12bSwgcGt0X2xlbiAmbHQ7IHNpemVvZigqbWNjX3Jlc3BfdjQpLAomIzQzOwkJCQkgJiMzNDtNQ0MgdjQgcmVzcG9uc2UgdG9vIHNob3J0OiAldVxuJiMzNDssIHBrdF9sZW4pKSB7CiYjNDM7CQkJcmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7CiYjNDM7CQkJZ290byBleGl0OwomIzQzOwkJfQomIzQzOwogCQluX2NoYW5uZWxzID0gIF9fbGUzMl90b19jcHUobWNjX3Jlc3BfdjQtJmd0O25fY2hhbm5lbHMpOwotCQlpZiAoaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpICE9Ci0JCSAgICBzdHJ1Y3Rfc2l6ZShtY2NfcmVzcF92NCwgY2hhbm5lbHMsIG5fY2hhbm5lbHMpKSB7CiYjNDM7CQlpZiAoSVdMX0ZXX0NIRUNLKG12bSwKJiM0MzsJCQkJIHBrdF9sZW4gIT0KJiM0MzsJCQkJIHN0cnVjdF9zaXplKG1jY19yZXNwX3Y0LCBjaGFubmVscywgbl9jaGFubmVscyksCiYjNDM7CQkJCSAmIzM0O2ludmFsaWQgTUNDIHY0IHJlc3BvbnNlIHNpemU6ICV1IChuX2NoYW5uZWxzPSVkKVxuJiMzNDssCiYjNDM7CQkJCSBwa3RfbGVuLCBuX2NoYW5uZWxzKSkgewogCQkJcmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7CiAJCQlnb3RvIGV4aXQ7CiAJCX0KQEAgLTQ4OSw5ICYjNDM7NTA5LDE4IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsCiAJfSBlbHNlIHsKIAkJc3RydWN0IGl3bF9tY2NfdXBkYXRlX3Jlc3BfdjMgKm1jY19yZXNwX3YzID0gKHZvaWQgKilwa3QtJmd0O2RhdGE7CiAKJiM0MzsJCWlmIChJV0xfRldfQ0hFQ0sobXZtLCBwa3RfbGVuICZsdDsgc2l6ZW9mKCptY2NfcmVzcF92MyksCiYjNDM7CQkJCSAmIzM0O01DQyB2MyByZXNwb25zZSB0b28gc2hvcnQ6ICV1XG4mIzM0OywgcGt0X2xlbikpIHsKJiM0MzsJCQlyZXNwX2NwID0gRVJSX1BUUigtRUlOVkFMKTsKJiM0MzsJCQlnb3RvIGV4aXQ7CiYjNDM7CQl9CiYjNDM7CiAJCW5fY2hhbm5lbHMgPSAgX19sZTMyX3RvX2NwdShtY2NfcmVzcF92My0mZ3Q7bl9jaGFubmVscyk7Ci0JCWlmIChpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkgIT0KLQkJICAgIHN0cnVjdF9zaXplKG1jY19yZXNwX3YzLCBjaGFubmVscywgbl9jaGFubmVscykpIHsKJiM0MzsJCWlmIChJV0xfRldfQ0hFQ0sobXZtLAomIzQzOwkJCQkgcGt0X2xlbiAhPQomIzQzOwkJCQkgc3RydWN0X3NpemUobWNjX3Jlc3BfdjMsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSwKJiM0MzsJCQkJICYjMzQ7aW52YWxpZCBNQ0MgdjMgcmVzcG9uc2Ugc2l6ZTogJXUgKG5fY2hhbm5lbHM9JWQpXG4mIzM0OywKJiM0MzsJCQkJIHBrdF9sZW4sIG5fY2hhbm5lbHMpKSB7CiAJCQlyZXNwX2NwID0gRVJSX1BUUigtRUlOVkFMKTsKIAkJCWdvdG8gZXhpdDsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMtZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmMKaW5kZXggODlhYzRjNmIzZTU0M2QuLmUyMzgyYmU4ZWRkNzhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmMKQEAgLTEsNyAmIzQzOzEsNyBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlCiAvKgogICogQ29weXJpZ2h0IChDKSAyMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkgKLSAqIENvcHlyaWdodCAoQykgMjAxOC0yMDI1IEludGVsIENvcnBvcmF0aW9uCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjYgSW50ZWwgQ29ycG9yYXRpb24KICAqLwogI2luY2x1ZGUgJiMzNDtycy5oJiMzNDsKICNpbmNsdWRlICYjMzQ7ZnctYXBpLmgmIzM0OwpAQCAtNDIzLDkgJiM0Mzs0MjMsMTQgQEAgdm9pZCBpd2xfbXZtX3RsY191cGRhdGVfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSwKIAlzdHJ1Y3QgaXdsX2xxX3N0YV9yc19mdyAqbHFfc3RhOwogCXUzMiBmbGFnczsKIAomIzQzOwlub3RpZiA9ICh2b2lkICopcGt0LSZndDtkYXRhOwomIzQzOwlpZiAoSVdMX0ZXX0NIRUNLKG12bSwgbm90aWYtJmd0O3N0YV9pZCAmZ3Q7PSBtdm0tJmd0O2Z3LSZndDt1Y29kZV9jYXBhLm51bV9zdGF0aW9ucywKJiM0MzsJCQkgJiMzNDtJbnZhbGlkIHN0YSBpZCAoJWQpIGluIFRMQyBub3RpZmljYXRpb25cbiYjMzQ7LAomIzQzOwkJCSBub3RpZi0mZ3Q7c3RhX2lkKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlyY3VfcmVhZF9sb2NrKCk7CiAKLQlub3RpZiA9ICh2b2lkICopcGt0LSZndDtkYXRhOwogCWxpbmtfc3RhID0gcmN1X2RlcmVmZXJlbmNlKG12bS0mZ3Q7ZndfaWRfdG9fbGlua19zdGFbbm90aWYtJmd0O3N0YV9pZF0pOwogCXN0YSA9IHJjdV9kZXJlZmVyZW5jZShtdm0tJmd0O2Z3X2lkX3RvX21hY19pZFtub3RpZi0mZ3Q7c3RhX2lkXSk7CiAJaWYgKElTX0VSUl9PUl9OVUxMKHN0YSkgfHwgIWxpbmtfc3RhKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9yeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguYwppbmRleCAyNjljNGI0NWRlODA3OC4uYWIxZWIyZWIwYzNjZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3J4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguYwpAQCAtMTIyNyw2ICYjNDM7MTIyNywxMSBAQCB2b2lkIGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLAogCQkvKiBnZXQgdGhlIHN0YXRpb24gKi8KIAkJc3RhX2lkID0gKHJhdGlkICZhbXA7IEJBX1dJTkRPV19TVEFUVVNfU1RBX0lEX01TSykKIAkJCSAmZ3Q7Jmd0OyBCQV9XSU5ET1dfU1RBVFVTX1NUQV9JRF9QT1M7CiYjNDM7CQlpZiAoSVdMX0ZXX0NIRUNLKG12bSwKJiM0MzsJCQkJIHN0YV9pZCAmZ3Q7PSBtdm0tJmd0O2Z3LSZndDt1Y29kZV9jYXBhLm51bV9zdGF0aW9ucywKJiM0MzsJCQkJICYjMzQ7SW52YWxpZCBzdGEgaWQgKCVkKSBpbiBCQSB3aW5kb3cgc3RhdHVzIG5vdGlmaWNhdGlvblxuJiMzNDssCiYjNDM7CQkJCSBzdGFfaWQpKQomIzQzOwkJCWNvbnRpbnVlOwogCQlzdGEgPSByY3VfZGVyZWZlcmVuY2UobXZtLSZndDtmd19pZF90b19tYWNfaWRbc3RhX2lkXSk7CiAJCWlmIChJU19FUlJfT1JfTlVMTChzdGEpKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMKaW5kZXggNzk4MjlmNzc1Yzg5YmYuLjM4MzFiM2MyN2UwZjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jCkBAIC0xLDYgJiM0MzsxLDYgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZQogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMjUgSW50ZWwgQ29ycG9yYXRpb24KJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI2IEludGVsIENvcnBvcmF0aW9uCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBJbnRlbCBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgR21iSAogICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgSW50ZWwgRGV1dHNjaGxhbmQgR21iSAogICovCkBAIC0zMTQ0LDggJiM0MzszMTQ0LDYgQEAgaW50IGl3bF9tdm1fc2NoZWRfc2Nhbl9zdGFydChzdHJ1Y3QgaXdsX212bSAqbXZtLAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpd2xfbXZtX2J1aWxkX3NjYW5fcHJvYmUobXZtLCB2aWYsIGllcywgJmFtcDtwYXJhbXMpOwotCiAJLyogZm9yIDYgR0haIGJhbmQgb25seSBQU0MgY2hhbm5lbHMgbmVlZCB0byBiZSBhZGRlZCAqLwogCWZvciAoaSA9IDA7IGkgJmx0OyBwYXJhbXMubl9jaGFubmVsczsgaSYjNDM7JiM0MzspIHsKIAkJc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFubmVsID0gcGFyYW1zLmNoYW5uZWxzW2ldOwpAQCAtMzE3OSw2ICYjNDM7MzE3Nyw4IEBAIGludCBpd2xfbXZtX3NjaGVkX3NjYW5fc3RhcnQoc3RydWN0IGl3bF9tdm0gKm12bSwKIAkJZ290byBvdXQ7CiAJfQogCiYjNDM7CWl3bF9tdm1fYnVpbGRfc2Nhbl9wcm9iZShtdm0sIHZpZiwgaWVzLCAmYW1wO3BhcmFtcyk7CiYjNDM7CiAJdWlkID0gaXdsX212bV9idWlsZF9zY2FuX2NtZChtdm0sIHZpZiwgJmFtcDtoY21kLCAmYW1wO3BhcmFtcywgdHlwZSk7CiAJaWYgKHVpZCAmbHQ7IDApIHsKIAkJcmV0ID0gdWlkOwpAQCAtMzIxNyw2ICYjNDM7MzIxNywxMCBAQCB2b2lkIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sCiAKIAltdm0tJmd0O21laV9zY2FuX2ZpbHRlci5pc19tZWlfbGltaXRlZF9zY2FuID0gZmFsc2U7CiAKJiM0MzsJaWYgKElXTF9GV19DSEVDSyhtdm0sIHVpZCAmZ3Q7PSBBUlJBWV9TSVpFKG12bS0mZ3Q7c2Nhbl91aWRfc3RhdHVzKSwKJiM0MzsJCQkgJiMzNDtGVyByZXBvcnRzIG91dC1vZi1yYW5nZSBzY2FuIFVJRCAlZFxuJiMzNDssIHVpZCkpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiAJSVdMX0RFQlVHX1NDQU4obXZtLAogCQkgICAgICAgJiMzNDtTY2FuIGNvbXBsZXRlZDogdWlkPSV1IHR5cGU9JXUsIHN0YXR1cz0lcywgRUJTPSVzXG4mIzM0OywKIAkJICAgICAgIHVpZCwgbXZtLSZndDtzY2FuX3VpZF9zdGF0dXNbdWlkXSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuYwppbmRleCAxNjkyYjZlNzVmNTc5ZC4uOTNiNDZjOWUyMzMzZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmMKQEAgLTk1MSw2ICYjNDM7OTUxLDExIEBAIHZvaWQgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSwKIAlzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmOwogCXN0cnVjdCBpd2xfbXZtX3ZpZiAqbXZtdmlmOwogCiYjNDM7CWlmIChJV0xfRldfQ0hFQ0sobXZtLCBpZCAmZ3Q7PSBBUlJBWV9TSVpFKG12bS0mZ3Q7dmlmX2lkX3RvX21hYyksCiYjNDM7CQkJICYjMzQ7SW52YWxpZCBtYWNfbGlua19pZCAoJWQpIGluIHNlc3Npb24gcHJvdGVjdCBub3RpZlxuJiMzNDssCiYjNDM7CQkJIGlkKSkKJiM0MzsJCXJldHVybjsKJiM0MzsKIAlyY3VfcmVhZF9sb2NrKCk7CiAKIAkvKiBub3RlIHdlIHVzZSBsaW5rIElEID09IE1BQyBJRCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2dlbjFfMi9yeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2dlbjFfMi9yeC5jCmluZGV4IGZlMjYzY2RjMmU0ZjQxLi40NjMxZTExZjJhOTY0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2dlbjFfMi9yeC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguYwpAQCAtMSw2ICYjNDM7MSw2IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2UKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNCwgMjAxOC0yMDI0IEludGVsIENvcnBvcmF0aW9uCiYjNDM7ICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTQsIDIwMTgtMjAyNCwgMjAyNiBJbnRlbCBDb3Jwb3JhdGlvbgogICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUgSW50ZWwgTW9iaWxlIENvbW11bmljYXRpb25zIEdtYkgKICAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkgKICAqLwpAQCAtMTIzOCwxMSAmIzQzOzEyMzgsMTYgQEAgdm9pZCBpd2xfcGNpZV9yeF9mcmVlKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKQogCQl9CiAJfQogCWtmcmVlKHRyYW5zX3BjaWUtJmd0O3J4X3Bvb2wpOwomIzQzOwl0cmFuc19wY2llLSZndDtyeF9wb29sID0gTlVMTDsKIAlrZnJlZSh0cmFuc19wY2llLSZndDtnbG9iYWxfdGFibGUpOwomIzQzOwl0cmFuc19wY2llLSZndDtnbG9iYWxfdGFibGUgPSBOVUxMOwogCWtmcmVlKHRyYW5zX3BjaWUtJmd0O3J4cSk7CiYjNDM7CXRyYW5zX3BjaWUtJmd0O3J4cSA9IE5VTEw7CiAKLQlpZiAodHJhbnNfcGNpZS0mZ3Q7YWxsb2NfcGFnZSkKJiM0MzsJaWYgKHRyYW5zX3BjaWUtJmd0O2FsbG9jX3BhZ2UpIHsKIAkJX19mcmVlX3BhZ2VzKHRyYW5zX3BjaWUtJmd0O2FsbG9jX3BhZ2UsIHRyYW5zX3BjaWUtJmd0O3J4X3BhZ2Vfb3JkZXIpOwomIzQzOwkJdHJhbnNfcGNpZS0mZ3Q7YWxsb2NfcGFnZSA9IE5VTEw7CiYjNDM7CX0KIH0KIAogc3RhdGljIHZvaWQgaXdsX3BjaWVfcnhfbW92ZV90b19hbGxvY2F0b3Ioc3RydWN0IGl3bF9yeHEgKnJ4cSwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTY6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxMjAKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxMzQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgSXdsd2lmaSBEcml2ZXIgUGF0Y2hlcyBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggc2VyaWVzIGZvciB0aGUgYGl3bHdpZmlgIGRyaXZlciwgYW5kIGl0IGxvb2tzIGxpa2UgYSB3aG9sZSBidW5jaCBvZiBmaXhlcywgbW9zdGx5IHJlbGF0ZWQgdG8gYm91bmRzIGNoZWNrcyBhbmQgbGVuZ3RoIGNoZWNrcyBpbiB2YXJpb3VzIGZ1bmN0aW9ucyBkZWFsaW5nIHdpdGggZmlybXdhcmUgbm90aWZpY2F0aW9ucyB3aXRoaW4gdGhlIE1WTSBhbmQgTUxEIGNvbXBvbmVudHMuIE15IGluaXRpYWwgdGhvdWdodCBpczogdGhpcyBpcyBhIGRyaXZlciBmb3IgSW50ZWwgV2ktRmkgaGFyZHdhcmUuIFJpZ2h0PyBDYW4gSSBldmVuIHJlYWNoIHRoaXMgdGhpbmcgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoYXQgYmVjYXVzZSBpZiBJIGNhbiYjMzk7dCByZWFjaCBpdCwgSSBzaG91bGRuJiMzOTt0IGJlIHNwZW5kaW5nIHRpbWUgb24gaXQsIG5vPwoKSSBpbW1lZGlhdGVseSBydWxlIG91dCBgbWFjODAyMTFfaHdzaW1gIGJlY2F1c2UsIHdlbGwsIHRoYXQmIzM5O3Mgbm90IGl3bHdpZmkuIEFuZCBJIGRvbiYjMzk7dCB0aGluayB0aGVyZSYjMzk7cyBhbnkgZGlyZWN0IGl3bHdpZmkgZW11bGF0b3IgdGhhdCBzeXprYWxsZXIsIG9yIGFueSB0b29sLCBmb3IgdGhhdCBtYXR0ZXIsIHdvdWxkIGJlIGFibGUgdG8gbGV2ZXJhZ2UuIFRoZXNlIGRyaXZlcnMgbmVlZCB0aGUgYWN0dWFsIGhhcmR3YXJlLCBvciBhdCBsZWFzdCBhIHJlYWxseSBzb3BoaXN0aWNhdGVkIFBDSSBkZXZpY2UgZW11bGF0b3IsIHJpZ2h0PyBBbmQgSSBrbm93IHN5emthbGxlciAqY2FuKiBmdXp6IHNvbWUgUENJIHN0dWZmLCBidXQgdHlwaWNhbGx5IHRoYXTigJlzIG5vdCB0YXJnZXRlZCBhdCBzcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXJzIHVubGVzcyB0aGVyZeKAmXMgYSBzcGVjaWZpYyBlbXVsYXRvciBvciBpZiBpdCYjMzk7cyBVU0IuCgpXYWl0IGEgc2Vjb25k4oCmIHRoZSBhdXRob3IgaXMgYHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDtgPyAqVGhhdCYjMzk7cyogdGhlIGNsdWUhIFN5emthbGxlciBpcyBmaW5kaW5nIGJ1Z3MgaGVyZSEgSG93IGlzIHRoYXQgcG9zc2libGU/IEkgaGF2ZSB0byBmaWd1cmUgb3V0IHRoZSBtZXRob2QuCgpJcyBpdCB0aHJvdWdoIG1hYzgwMjExPyBObywgYGl3bHdpZmlgIGlzIGEgc3BlY2lmaWMgZHJpdmVyLiBPa2F5LCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgc29tZXRoaW5nIGxpa2UgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgLCBidXQgdGhhdCYjMzk7cyBmb3IgbWFjODAyMTEuIEFoYSEgSXQmIzM5O3MgKnJlY2VudCogc3VwcG9ydCBmb3IgZnV6emluZyBXaS1GaSBkcml2ZXJzLCBwZXJoYXBzIHZpYSBzb21lIHZpcnR1YWwgUENJIG9yLCBtYXliZSwgZnV6emluZyB0aGUgbmV0bGluayBpbnRlcmZhY2UgdG8gYGl3bHdpZmlgLiBUaGF0IHNlZW1zIGxpa2VseSwgZ2l2ZW4gdGhlIHByZXZhbGVuY2Ugb2YgcGFyc2luZyBmaXJtd2FyZSBub3RpZmljYXRpb25zLCB3aGljaCBzdWdnZXN0cyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBkZXZpY2UuCgpUaGVzZSBjaGFuZ2VzIGFyZSBtb3N0bHkgYWJvdXQgcGFyc2luZyBmaXJtd2FyZSBub3RpZmljYXRpb25zOiBgaXdsX212bV9yeF9iZWFjb25fbm90aWZgLCBgaXdsX212bV91cGRhdGVfbWNjYCwgYGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZmAsIGBpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWZgLiBGaXJtd2FyZSBub3RpZmljYXRpb25zIGFyZSAqZnJvbSogdGhlIGRldmljZSwgcmlnaHQ/IEhvdyBjYW4gc3l6a2FsbGVyIGV2ZW4gdHJpZ2dlciB0aG9zZT8gTXkgYmVzdCBndWVzcyBub3cgaXMgdGhhdCBzeXprYWxsZXIgKmZ1enplcyogdGhlIGZpcm13YXJlIGludGVyZmFjZS4KCk9rYXksIEkgbmVlZCB0byBjb25maXJtIGhvdyBpdCYjMzk7cyBiZWluZyByZWFjaGVkLiBEb2VzIHN5emthbGxlciBoYXZlIGNvZGUgdG8gaW5qZWN0IGZpcm13YXJlIHBhY2tldHM/IEkgaGF2ZSB0byB2ZXJpZnkgdGhhdCBpd2x3aWZpIGlzLCBpbmRlZWQsIGZ1enphYmxlLiBJIG5lZWQgdG8gZ3JlcCBmb3IgZnVuY3Rpb25zIGxpa2UgYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYCBhbmQgYGl3bF9tdm1fdXBkYXRlX21jY2AgdG8gc2VlIGlmIHRoZXkgYXJlIHJlYWNoYWJsZS4KCkJ1dCB0aGUgcHJvbXB0IHNheXM6ICYjMzQ7Q29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4uLiBzaG91bGQgcmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSYjMzQ7LiBJZiBpd2x3aWZpICpjYW4mIzM5O3QqIGJlIHJlYWNoZWQgaW4gUUVNVSwgdGhlbiBteSBhbmFseXNpcyBpcyBiYXNpY2FsbHkgZG9uZS4gUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZXNlIEludGVsIFdpLUZpIGNhcmRzLgoKTGV0JiMzOTtzIGNoZWNrIFFFTVUmIzM5O3MgUENJIGRldmljZXM6IGBlMTAwMGAsIGBlMTAwMGVgLCBgaTgyNTU5ZXJgLCBgcnRsODEzOWAsIGBwY25ldGAsIGB2aXJ0aW8tbmV0YCwgYHZteG5ldDNgLCBgdHVsaXBgLCBgbmUya19wY2lgLiBObyBgaXdsd2lmaWAuCgpDb3VsZCBzeXprYWxsZXIgYmUgZmFraW5nIGl0IHdpdGggc29tZSBraW5kIG9mIHZpcnR1YWwgUENJIGRldmljZT8gU3l6a2FsbGVyIGhhcyBgc3l6X3VzYl9jb25uZWN0YCBmb3IgVVNCLCBgc3l6XzgwMjExXy4uLmAgZm9yIG1hYzgwMjExX2h3c2ltLCBhbmQgaGFzIGBzeXpfZ2VuZXRsaW5rX2dldF9mYW1pbHlfaWRgIGV0Yy4uLiBUaGlzIHN1Z2dlc3RzIGEgbmV0bGluayBpbnRlcmZhY2UuCgpVbHRpbWF0ZWx5LCBJIG5lZWQgdG8gZGlnIGludG8gaG93IHN5emthbGxlciBpcyByZWFjaGluZyBgaXdsd2lmaWAuIEJ1dCB0aGUgcHJvbXB0IHNlZW1zIHRvIGJlIHBvaW50aW5nIG1lIHRvd2FyZHMgJiMzNDtjYW4mIzM5O3QgcmVhY2ggaXQgPSBXb3J0aEZ1enppbmc9ZmFsc2UmIzM0Oy4gQW5kIEkmIzM5O20gcHJldHR5IHN1cmUgUUVNVSBjYW4mIzM5O3QgZW11bGF0ZSB0aGlzLgpTbyBJIHdvdWxkIHJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UsIHVubGVzcyBJIGZpbmQgc29tZSBldmlkZW5jZSB0aGF0IHN5emthbGxlciBpcyB1c2luZyBhIGNsZXZlciB0cmljayB0byBlbXVsYXRlL3JlYWNoIHRoZSBpd2x3aWZpIGRyaXZlci4KSSB3aWxsIHNlYXJjaCB0aGUga2VybmVsIHRyZWUgZm9yIGFueSBpd2x3aWZpIGZ1enppbmcgb3IgdGVzdCBtb2R1bGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTY6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXdsd2lmaSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDt0b29scy9wZXJmL0RvY3VtZW50YXRpb24vcGVyZi10cmFjZS50eHQ9MzQyPXdpdGggYSBiYWNrdHJhY2Ugb2YgYXQgbW9zdCAxNiBlbnRyaWVzLCBzeXN0ZW0gd2lkZTpcbi0tXG50b29scy9wZXJmL0RvY3VtZW50YXRpb24vcGVyZi10cmFjZS50eHQtMzQ2LSAgICAgMC4wMTUgcmN1X3NjaGVkLzEwIHNjaGVkOnNjaGVkX3N3aXRjaDpyY3Vfc2NoZWQ6MTAgWzEyMF0gUiA9PVx1MDAzZSBzd2FwcGVyLzI6MCBbMTIwXVxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtdHJhY2UudHh0OjM0NzogICAyNTQuMTk4IGlycS81MC1pd2x3aWZpLzY4MCBuZXQ6bmV0X2Rldl9xdWV1ZTpkZXY9d2xwM3MwIHNrYmFkZHI9MHhmZmZmOTM0OTgwNTFmNjAwIGxlbj02NlxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtdHJhY2UudHh0LTM0OC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2Rldl9xdWV1ZV94bWl0IChba2VybmVsLmthbGxzeW1zXSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNjo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjY0NAoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O2QgYXBwcm9hY2ggdGhhdCBrZXJuZWwgUENJIGZ1enppbmcgdGhvdWdodCwgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIFBDSSBGdXp6aW5nIGluIHRoZSBLZXJuZWwqKgoKQWxyaWdodCwgbXkgYnJhaW4ganVzdCBwaW5nZWQgb24gUENJIGZ1enppbmcgcG9zc2liaWxpdGllcyB3aXRoaW4gdGhlIGtlcm5lbC4gQmVmb3JlIEkgZ2V0IHRvbyBkZWVwIGludG8gYW55dGhpbmcsIEkgbmVlZCB0byBnZXQgYSBsYXkgb2YgdGhlIGxhbmQuIFRoZSBmaXJzdCBzdGVwIGlzIHRvIHF1aWNrbHkgYXNzZXNzIGlmIGFueW9uZSBoYXMgYWxyZWFkeSBpbnZlc3RpZ2F0ZWQgYW5kIGltcGxlbWVudGVkIGZ1enppbmcgc3RyYXRlZ2llcyBhcm91bmQgdGhlIFBDSSBzdWJzeXN0ZW0gd2l0aGluIHRoZSBrZXJuZWwuIEkgbmVlZCB0byBzZWUgd2hhdCYjMzk7cyBjdXJyZW50bHkga25vd24sIHdoYXQgdG9vbHMgYXJlIGJlaW5nIHVzZWQsIHdoYXQgdGhlIHR5cGljYWwgYXBwcm9hY2hlcyBhcmUsIGFuZCBpZiBhbnkgdnVsbmVyYWJpbGl0aWVzIGhhdmUgYWxyZWFkeSBiZWVuIHVuZWFydGhlZCB0aGlzIHdheS4gVGhpcyBxdWljayBjaGVjayB3aWxsIGd1aWRlIG15IG5leHQgc3RlcHMuIEFyZSB0aGVyZSBleGlzdGluZyBmdXp6aW5nIGZyYW1ld29ya3Mgb3IgY3VzdG9tIHNvbHV0aW9ucyBpbiBwbGF5PyBBcmUgdGhlcmUga25vd24gdGFyZ2V0IGFyZWFzIHdpdGhpbiB0aGUga2VybmVsJiMzOTtzIFBDSSBjb2RlIHRoYXQgYXJlIGF0dHJhY3RpbmcgdGhlIG1vc3QgYXR0ZW50aW9uPyBLbm93aW5nIHRoaXMgZm91bmRhdGlvbiB3b3VsZCBhbGxvdyBtZSB0byBrbm93IHdoZXJlIHRvIHN0YXJ0IGFuZCBub3Qgd2FzdGUgdGltZSByZS10cmVhZGluZyBwcmV2aW91c2x5IGV4cGxvcmVkIHRlcnJpdG9yaWVzLiBUaW1lIGlzIGZpbml0ZSwgZXNwZWNpYWxseSBpbiBrZXJuZWwtbGFuZCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNjo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpd2x3aWZpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1MTUgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0yPWNvbmZpZyBJV0xXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MzpcdHRyaXN0YXRlIFwmIzM0O0ludGVsIFdpcmVsZXNzIFdpRmkgTmV4dCBHZW4gQUdOIC0gV2lyZWxlc3MtTi9BZHZhbmNlZC1OL1VsdGltYXRlLU4gKGl3bHdpZmkpIFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTQtXHRkZXBlbmRzIG9uIFBDSSBcdTAwMjZcdTAwMjYgSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiBDRkc4MDIxMVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0zNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzozNTpcdCAgICAgICAgICBcdTAwM2NodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9Ecml2ZXJzL2l3bHdpZmlcdTAwM2UuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTQ0LVx0ICBzYXkgTSBoZXJlIGFuZCByZWFkIFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9rYnVpbGQvbW9kdWxlcy5yc3RcdTAwM2UuICBUaGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo0NTpcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGl3bHdpZmkuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNDYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTQ5PWNvbmZpZyBJV0xXSUZJX0tVTklUX1RFU1RTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTUzLVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjU0Olx0ICBFbmFibGUgdGhpcyBvcHRpb24gZm9yIGl3bHdpZmkga3VuaXQgdGVzdHMuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTY2PWNvbmZpZyBJV0xEVk1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNzEtXHQgIG9mIHRoZSBkZXZpY2VzIHRoYXQgdXNlIHRoaXMgZmlybXdhcmUgaXMgYXZhaWxhYmxlIGhlcmU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NzI6XHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL2RyaXZlcnMvaXdsd2lmaSNmaXJtd2FyZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTczLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTc0PWNvbmZpZyBJV0xNVk1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctODEtXHQgIG9mIHRoZSBkZXZpY2VzIHRoYXQgdXNlIHRoaXMgZmlybXdhcmUgaXMgYXZhaWxhYmxlIGhlcmU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6ODI6XHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL2RyaXZlcnMvaXdsd2lmaSNmaXJtd2FyZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTg0PWNvbmZpZyBJV0xNTERcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctOTEtXHQgIFRoZSBsaXN0IG9mIHRoZSBkZXZpY2VzIHRoYXQgdXNlIHRoaXMgZmlybXdhcmUgaXMgYXZhaWxhYmxlIGhlcmU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6OTI6XHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL2RyaXZlcnMvaXdsd2lmaSNmaXJtd2FyZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTkzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz05NT1jb25maWcgSVdMV0lGSV9PUE1PREVfTU9EVUxBUlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTAyOmNvbW1lbnQgXCYjMzQ7V0FSTklORzogaXdsd2lmaSBpcyB1c2VsZXNzIHdpdGhvdXQgSVdMRFZNIG9yIElXTE1WTSBvciBJV0xNTERcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMDMtXHRkZXBlbmRzIG9uIElXTERWTT1uIFx1MDAyNlx1MDAyNiBJV0xNVk09biBcdTAwMjZcdTAwMjYgSVdMTUxEPW5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTA3PWNvbmZpZyBJV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTA4Olx0Ym9vbCBcJiMzNDtFbmFibGUgZnVsbCBkZWJ1Z2dpbmcgb3V0cHV0IGluIHRoZSBpd2x3aWZpIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwOS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMTA6XHQgIFRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIGRlYnVnIHRyYWNpbmcgb3V0cHV0IGZvciB0aGUgaXdsd2lmaSBkcml2ZXJzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTExLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTE2Olx0XHQvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMjI6XHRcdCAgJSBlY2hvIDB4NDNmZmYgXHUwMDNlIC9zeXMvbW9kdWxlL2l3bHdpZmkvcGFyYW1ldGVycy9kZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjQtXHQgIFlvdSBjYW4gZmluZCB0aGUgbGlzdCBvZiBkZWJ1ZyBtYXNrIHZhbHVlcyBpbjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMjU6XHRcdCAgZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtZGVidWcuaFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTMxPWNvbmZpZyBJV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMzI6XHRib29sIFwmIzM0O2l3bHdpZmkgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMzLVx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTM0LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzNTpcdCAgRW5hYmxlIGNyZWF0aW9uIG9mIGRlYnVnZnMgZmlsZXMgZm9yIHRoZSBpd2x3aWZpIGRyaXZlcnMuIFRoaXNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzYtXHQgIGlzIGEgbG93LWltcGFjdCBvcHRpb24gdGhhdCBhbGxvd3MgZ2V0dGluZyBpbnNpZ2h0IGludG8gdGhlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEzOT1jb25maWcgSVdMV0lGSV9ERVZJQ0VfVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjE0MDpcdGJvb2wgXCYjMzQ7aXdsd2lmaSBkZXZpY2UgYWNjZXNzIHRyYWNpbmdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xNDEtXHRkZXBlbmRzIG9uIEVWRU5UX1RSQUNJTkdcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTQ0LVx0ICBTYXkgWSBoZXJlIHRvIHRyYWNlIGFsbCBjb21tYW5kcywgaW5jbHVkaW5nIFRYIGZyYW1lcyBhbmQgSU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxNDU6XHQgIGFjY2Vzc2VzLCBzZW50IHRvIHRoZSBkZXZpY2UuIElmIHlvdSBzYXkgeWVzLCBpd2x3aWZpIHdpbGxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xNDYtXHQgIHJlZ2lzdGVyIHdpdGggdGhlIGZ0cmFjZSBmcmFtZXdvcmsgZm9yIGV2ZW50IHRyYWNpbmcgYW5kIGR1bXBcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTItIyBjb21tb25cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMV0lGSSlcdCYjNDM7PSBpd2x3aWZpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1pby5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjU6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtZHJ2Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Njppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1kZWJ1Zy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjc6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtbnZtLXV0aWxzLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6ODppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC11dGlscy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjk6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtcGh5LWRiLm8gaXdsLW52bS1wYXJzZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xMS0jIEJ1c1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxMjppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IHBjaWUvY3R4dC1pbmZvLm8gcGNpZS9jdHh0LWluZm8tdjIubyBwY2llL2Rydi5vIHBjaWUvdXRpbHMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxMzppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IHBjaWUvZ2VuMV8yL3J4Lm8gcGNpZS9nZW4xXzIvdHgubyBwY2llL2dlbjFfMi90cmFucy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjE0Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gcGNpZS9nZW4xXzIvdHJhbnMtZ2VuMi5vIHBjaWUvZ2VuMV8yL3R4LWdlbjIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MTY9Q0ZMQUdTX3BjaWUvZHJ2Lm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTgtIyBjb21iaW5lZCBNQUMvUkYgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTk6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICYjNDM7PSBjZmcvMTAwMC5vIGNmZy8yMDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjA6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICYjNDM7PSBjZmcvNTAwMC5vIGNmZy82MDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjE6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvNzAwMC5vIGNmZy84MDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMjItIyBNQUMgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjM6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvOTAwMC5vIGNmZy8yMjAwMC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI0Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnL2F4MjEwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjU6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvYnoubyBjZmcvc2Mub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNjppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgJiM0Mzs9IGNmZy9iei5vIGNmZy9zYy5vIGNmZy9kci5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTI3LSMgUkYgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mjg6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvcmYtamYubyBjZmcvcmYtaHIubyBjZmcvcmYtZ2Yub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyOTppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgJiM0Mzs9IGNmZy9yZi1mbS5vIGNmZy9yZi13aC5vIGNmZy9yZi1wZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozMTppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1kYmctdGx2Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzI6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtdHJhbnMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0zMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzQ6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBmdy9pbWcubyBmdy9ub3RpZi13YWl0Lm8gZncvcnMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNTppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGZ3L2RiZy5vIGZ3L2RiZy1vbGQubyBmdy9wbnZtLm8gZncvZHVtcC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM2Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gZncvcmVndWxhdG9yeS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM3Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gZncvcGFnaW5nLm8gZncvc21lbS5vIGZ3L2luaXQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozODppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgJiM0Mzs9IGZ3L3NtZW0ubyBmdy9pbml0Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzk6aXdsd2lmaS0kKENPTkZJR19BQ1BJKSAmIzQzOz0gZncvYWNwaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQwOml3bHdpZmktJChDT05GSUdfRUZJKVx0JiM0Mzs9IGZ3L3VlZmkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0MTppd2x3aWZpLSQoQ09ORklHX0lXTFdJRklfREVCVUdGUykgJiM0Mzs9IGZ3L2RlYnVnZnMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDM6aXdsd2lmaS1vYmpzICYjNDM7PSAkKGl3bHdpZmktbSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQ1Oml3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lORykgJiM0Mzs9IGl3bC1kZXZ0cmFjZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQ2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYy0yNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYzoyNTojZGVmaW5lIElXTDEwMDBfRldfUFJFIFwmIzM0O2l3bHdpZmktMTAwMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jLTI2LSNkZWZpbmUgSVdMMTAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wxMDAwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmM6Mjg6I2RlZmluZSBJV0wxMDBfRldfUFJFIFwmIzM0O2l3bHdpZmktMTAwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjktI2RlZmluZSBJV0wxMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTAwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jOjMxOiNkZWZpbmUgSVdMMjAzMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS0yMDMwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzItI2RlZmluZSBJV0wyMDMwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDIwMzBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYzozNDojZGVmaW5lIElXTDIwMDBfRldfUFJFIFwmIzM0O2l3bHdpZmktMjAwMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTM1LSNkZWZpbmUgSVdMMjAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wyMDAwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6Mzc6I2RlZmluZSBJV0wxMDVfRldfUFJFIFwmIzM0O2l3bHdpZmktMTA1XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzgtI2RlZmluZSBJV0wxMDVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTA1X0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6NDA6I2RlZmluZSBJV0wxMzVfRldfUFJFIFwmIzM0O2l3bHdpZmktMTM1XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtNDEtI2RlZmluZSBJV0wxMzVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTM1X0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYy0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmM6MTg6I2RlZmluZSBJV0xfQ0NfQV9GV19QUkVcdFx0XHRcJiMzNDtpd2x3aWZpLWNjLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jOjE5OiNkZWZpbmUgSVdMX1FVX0JfSFJfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1RdS1iMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoyMDojZGVmaW5lIElXTF9RVV9DX0hSX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktUXUtYzAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmM6MjE6I2RlZmluZSBJV0xfUVVaX0FfSFJfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1RdVotYTAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmMtMjItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jOjI3OiNkZWZpbmUgSVdMNTAwMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS01MDAwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmMtMjgtI2RlZmluZSBJV0w1MDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDUwMDBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0yOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYzozMDojZGVmaW5lIElXTDUxNTBfRldfUFJFIFwmIzM0O2l3bHdpZmktNTE1MFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jLTMxLSNkZWZpbmUgSVdMNTE1MF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w1MTUwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jOjQwOiNkZWZpbmUgSVdMNjAwMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS02MDAwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDEtI2RlZmluZSBJV0w2MDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDYwMDBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYzo0MzojZGVmaW5lIElXTDYwNTBfRldfUFJFIFwmIzM0O2l3bHdpZmktNjA1MFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ0LSNkZWZpbmUgSVdMNjA1MF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w2MDUwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDY6I2RlZmluZSBJV0w2MDA1X0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTYwMDBnMmFcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00Ny0jZGVmaW5lIElXTDYwMDVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjAwNV9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jOjQ5OiNkZWZpbmUgSVdMNjAzMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS02MDAwZzJiXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNTAtI2RlZmluZSBJV0w2MDMwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDYwMzBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6Mzc6I2RlZmluZSBJV0w3MjYwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTcyNjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy0zOC0jZGVmaW5lIElXTDcyNjBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNzI2MF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQwOiNkZWZpbmUgSVdMMzE2MF9GV19QUkUgXCYjMzQ7aXdsd2lmaS0zMTYwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDEtI2RlZmluZSBJV0wzMTYwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDMxNjBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzo0MzojZGVmaW5lIElXTDMxNjhfRldfUFJFIFwmIzM0O2l3bHdpZmktMzE2OFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQ0LSNkZWZpbmUgSVdMMzE2OF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wzMTY4X0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6NDY6I2RlZmluZSBJV0w3MjY1X0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTcyNjVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00Ny0jZGVmaW5lIElXTDcyNjVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNzI2NV9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQ5OiNkZWZpbmUgSVdMNzI2NURfRldfUFJFIFwmIzM0O2l3bHdpZmktNzI2NURcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy01MC0jZGVmaW5lIElXTDcyNjVEX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDcyNjVEX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTI5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jOjMwOiNkZWZpbmUgSVdMODAwMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS04MDAwQ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTMxLSNkZWZpbmUgSVdMODAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0zMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYzozNDojZGVmaW5lIElXTDgyNjVfRldfUFJFIFwmIzM0O2l3bHdpZmktODI2NVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTM1LSNkZWZpbmUgSVdMODI2NV9NT0RVTEVfRklSTVdBUkUoYXBpKSBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzkwMDAuYy0yMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzkwMDAuYzoyMjojZGVmaW5lICBJV0w5MDAwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTkwMDAtcHUtYjAtamYtYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzkwMDAuYzoyMzojZGVmaW5lICBJV0w5MjYwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTkyNjAtdGgtYjAtamYtYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzkwMDAuYy0yNC0jZGVmaW5lIElXTDkwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoxODojZGVmaW5lIElXTF9TT19BX0dGX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc28tYTAtZ2YtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MTk6I2RlZmluZSBJV0xfVFlfQV9HRl9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXR5LWEwLWdmLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjIwOiNkZWZpbmUgSVdMX01BX0FfR0ZfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1tYS1hMC1nZi1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyMTojZGVmaW5lIElXTF9NQV9CX0dGX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktbWEtYjAtZ2YtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjI6I2RlZmluZSBJV0xfU09fQV9HRjRfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zby1hMC1nZjQtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjM6I2RlZmluZSBJV0xfTUFfQV9HRjRfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1tYS1hMC1nZjQtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjQ6I2RlZmluZSBJV0xfTUFfQl9HRjRfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1tYS1iMC1nZjQtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjU6I2RlZmluZSBJV0xfU09fQV9IUl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNvLWEwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI2OiNkZWZpbmUgSVdMX01BX0FfSFJfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1tYS1hMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyNzojZGVmaW5lIElXTF9NQV9CX0hSX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktbWEtYjAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmMtMjgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYy0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MTg6I2RlZmluZSBJV0xfQlpfQV9GTV9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWJ6LWEwLWZtLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jOjE5OiNkZWZpbmUgSVdMX0JaX0FfRk1fQ19GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1iei1hMC1mbS1jMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoyMDojZGVmaW5lIElXTF9CWl9BX0ZNNF9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWJ6LWEwLWZtNC1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoyMTojZGVmaW5lIElXTF9HTF9CX0ZNX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktZ2wtYjAtZm0tYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MjI6I2RlZmluZSBJV0xfR0xfQ19GTV9DX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWdsLWMwLWZtLWMwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jLTIzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2RyLmMtMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9kci5jOjE3OiNkZWZpbmUgSVdMX0RSX0FfUEVfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1kci1hMC1wZS1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvZHIuYy0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNDojZGVmaW5lIElXTF9CWl9BX0dGX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktYnotYTAtZ2YtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmM6MTU6I2RlZmluZSBJV0xfQlpfQV9HRjRfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1iei1hMC1nZjQtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmM6MTY6I2RlZmluZSBJV0xfU0NfQV9HRl9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjLWEwLWdmLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jOjE3OiNkZWZpbmUgSVdMX1NDX0FfR0Y0X0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MtYTAtZ2Y0LWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jLTE4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jOjE0OiNkZWZpbmUgSVdMX0JaX0FfSFJfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1iei1hMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtaHIuYzoxNTojZGVmaW5lIElXTF9TQ19BX0hSX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MtYTAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTY6I2RlZmluZSBJV0xfU0NfQV9IUl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjLWEwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jLTE3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jOjE0OiNkZWZpbmUgSVdMX1FVX0JfSkZfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1RdS1iMC1qZi1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYzoxNTojZGVmaW5lIElXTF9RVV9DX0pGX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktUXUtYzAtamYtYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTY6I2RlZmluZSBJV0xfUVVaX0FfSkZfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1RdVotYTAtamYtYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTc6I2RlZmluZSBJV0xfU09fQV9KRl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNvLWEwLWpmLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jLTE4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmMtMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jOjE4OiNkZWZpbmUgSVdMX1NDX0FfRk1fQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYy1hMC1mbS1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoxOTojZGVmaW5lIElXTF9TQ19BX0ZNX0NfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MtYTAtZm0tYzBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MjA6I2RlZmluZSBJV0xfU0NfQV9XSF9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjLWEwLXdoLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jOjIxOiNkZWZpbmUgSVdMX1NDMl9BX0ZNX0NfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MyLWEwLWZtLWMwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jOjIyOiNkZWZpbmUgSVdMX1NDMl9BX1dIX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MyLWEwLXdoLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jLTIzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMjYyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19md19yZXN0YXJ0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjY2LVx0c3RydWN0IGl3bF9wcml2ICpwcml2ID0gZmlsZS1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjI2NzpcdGJvb2wgZndfcmVzdGFydCA9IGl3bHdpZmlfbW9kX3BhcmFtcy5md19yZXN0YXJ0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyNjgtXHRpbnQgX19tYXliZV91bnVzZWQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyNjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjI3MDpcdGl3bHdpZmlfbW9kX3BhcmFtcy5md19yZXN0YXJ0ID0gdHJ1ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjcxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIyNzk6XHRpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydCA9IGZ3X3Jlc3RhcnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI4MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjMxMz12b2lkIGl3bF9kYmdmc19yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2Rpcilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMzgxOlx0XHRkZWJ1Z2ZzX2NyZWF0ZV9zeW1saW5rKFwmIzM0O2l3bHdpZmlcJiMzNDssIG1hYzgwMjExX2RpciwgYnVmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzgyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oPTIxMD1zdHJ1Y3QgaXdsX3NlbnNpdGl2aXR5X3JhbmdlcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtMjQ0LSAqIE5hbWluZyBjb252ZW50aW9uIC0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaDoyNDU6ICogaXdsXyAgICAgICAgIFx1MDAzYy0tIElzIHBhcnQgb2YgaXdsd2lmaVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtMjQ2LSAqIGl3bFhYWFhfICAgICBcdTAwM2MtLSBIYXJkd2FyZSBzcGVjaWZpYyAoaW1wbGVtZW50ZWQgaW4gaXdsLVhYWFguYyBmb3IgWFhYWClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYz0xMDU5PWl3bF9wYXJzZV9lZXByb21fZGF0YShzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucywgY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgKmNmZyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYy0xMTE4LVx0ZGF0YS1cdTAwM2Vza3VfY2FwX2lwYW5fZW5hYmxlID0gc2t1IFx1MDAyNiBFRVBST01fU0tVX0NBUF9JUEFOX0VOQUJMRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2VlcHJvbS5jOjExMTk6XHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLmRpc2FibGVfMTFuIFx1MDAyNiBJV0xfRElTQUJMRV9IVF9BTEwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYy0xMTIwLVx0XHRkYXRhLVx1MDAzZXNrdV9jYXBfMTFuX2VuYWJsZSA9IGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xlZC5jPTE1NT12b2lkIGl3bF9sZWRzX2luaXQoc3RydWN0IGl3bF9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmMtMTU2LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xlZC5jOjE1NzpcdGludCBtb2RlID0gaXdsd2lmaV9tb2RfcGFyYW1zLmxlZF9tb2RlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmMtMTU4LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYz0yMDE9dm9pZCBpd2xhZ25fc2VuZF9hZHZhbmNlX2J0X2NvbmZpZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmMtMjYyLVx0ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYzoyNjM6XHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5idF9jb2V4X2FjdGl2ZSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmMtMjY0LVx0ICAgIHByaXYtXHUwMDNlaXdfbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9BREhPQykge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jPTEwMzQ9aW50IGl3bGFnbl9zdXNwZW5kKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGNmZzgwMjExX3dvd2xhbiAqd293bGFuKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTExMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYzoxMTM2Olx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTExMzctXHRcdC8qIG1hcmsgYWxsIGtleXMgY2xlYXIgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTc4PWludCBpd2xhZ25fbWFjX3NldHVwX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTEyMS1cdGlmIChwcml2LVx1MDAzZWZ3LVx1MDAzZXVjb2RlX2NhcGEuZmxhZ3MgXHUwMDI2IElXTF9VQ09ERV9UTFZfRkxBR1NfTUZQIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxMjI6XHQgICAgIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTIzLVx0XHRpZWVlODAyMTFfaHdfc2V0KGh3LCBNRlBfQ0FQQUJMRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNTItXHRcdFx0XHRcdCAgICAgV0lQSFlfV09XTEFOX1JGS0lMTF9SRUxFQVNFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNTM6XHRcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNTQtXHRcdFx0cHJpdi1cdTAwM2V3b3dsYW5fc3VwcG9ydC5mbGFncyB8PVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNjc6XHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX3NhdmUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE2OC1cdFx0aHctXHUwMDNld2lwaHktXHUwMDNlZmxhZ3MgfD0gV0lQSFlfRkxBR19QU19PTl9CWV9ERUZBVUxUO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9MzI1PXN0YXRpYyB2b2lkIGl3bGFnbl9tYWNfc2V0X3Jla2V5X2RhdGEoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0zMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjMzMTpcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTMzMi1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9NTg4PXN0YXRpYyBpbnQgaXdsYWduX21hY19zZXRfa2V5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBlbnVtIHNldF9rZXlfY21kIGNtZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTYwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6NjAxOlx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy02MDItXHRcdElXTF9ERUJVR19NQUM4MDIxMShwcml2LCBcJiMzNDtsZWF2ZSAtIGh3Y3J5cHRvIGRpc2FibGVkXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9Mzk4PXN0YXRpYyB2b2lkIGl3bF9wcmludF9jb250X2V2ZW50X3RyYWNlKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyIGJhc2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTQzNC1cdFx0aWYgKG1vZGUgPT0gMCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjQzNTpcdFx0XHR0cmFjZV9pd2x3aWZpX2Rldl91Y29kZV9jb250X2V2ZW50KFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTQzNi1cdFx0XHRcdFx0cHJpdi1cdTAwM2V0cmFucy1cdTAwM2VkZXYsIDAsIHRpbWUsIGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDM4LVx0XHRcdGRhdGEgPSBpd2xfcmVhZDMyKHByaXYtXHUwMDNldHJhbnMsIEhCVVNfVEFSR19NRU1fUkRBVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6NDM5Olx0XHRcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX2NvbnRfZXZlbnQoXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDQwLVx0XHRcdFx0XHRwcml2LVx1MDAzZXRyYW5zLVx1MDAzZWRldiwgdGltZSwgZGF0YSwgZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz00NDc9c3RhdGljIHZvaWQgaXdsX2NvbnRpbnVvdXNfZXZlbnRfdHJhY2Uoc3RydWN0IGl3bF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy01MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6NTA0Olx0XHR0cmFjZV9pd2x3aWZpX2Rldl91Y29kZV93cmFwX2V2ZW50KHByaXYtXHUwMDNldHJhbnMtXHUwMDNlZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTUwNS1cdFx0XHRcdG51bV93cmFwcyAtIHByaXYtXHUwMDNlZXZlbnRfbG9nLm51bV93cmFwcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9NzM3PXN0YXRpYyB2b2lkIGl3bF9zZW5kX2J0X2NvbmZpZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTc0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo3NDY6XHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5idF9jb2V4X2FjdGl2ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy03NDctXHRcdGJ0X2NtZC5mbGFncyA9IEJUX0NPRVhfRElTQUJMRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9MTIzMz1zdGF0aWMgc3RydWN0IGl3bF9vcF9tb2RlICppd2xfb3BfbW9kZV9kdm1fc3RhcnQoc3RydWN0IGl3bF90cmFucyAqdHJhbnMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTEzMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTMyNTpcdHN3aXRjaCAoaXdsd2lmaV9tb2RfcGFyYW1zLmFtc2R1X3NpemUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMzI2LVx0Y2FzZSBJV0xfQU1TRFVfREVGOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMzM2LVx0XHRwcl9lcnIoXCYjMzQ7VW5zdXBwb3J0ZWQgYW1zZHVfc2l6ZTogJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTMzNzpcdFx0ICAgICAgIGl3bHdpZmlfbW9kX3BhcmFtcy5hbXNkdV9zaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMzM4LVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xNjk4PXN0YXRpYyBpbnQgaXdsX3ByaW50X2V2ZW50X2xvZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHUzMiBzdGFydF9pZHgsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE3NDctXHRcdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxNzQ4Olx0XHRcdFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfZXZlbnQodHJhbnMtXHUwMDNlZGV2LCAwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE3NDktXHRcdFx0XHRcdHRpbWUsIGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc2MS1cdFx0XHRcdFx0dGltZSwgZGF0YSwgZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE3NjI6XHRcdFx0XHR0cmFjZV9pd2x3aWZpX2Rldl91Y29kZV9ldmVudCh0cmFucy1cdTAwM2VkZXYsIHRpbWUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc2My1cdFx0XHRcdFx0ZGF0YSwgZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xOTEyPXN0YXRpYyB2b2lkIGl3bGFnbl9md19lcnJvcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIGJvb2wgb25kZW1hbmQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE5NDUtXHRpZiAoIXRlc3RfYml0KFNUQVRVU19FWElUX1BFTkRJTkcsIFx1MDAyNnByaXYtXHUwMDNlc3RhdHVzKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE5NDY6XHRcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE5NDctXHRcdFx0SVdMX0RFQlVHX0ZXKHByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYz0yNzE9c3RhdGljIHZvaWQgaXdsX3Bvd2VyX2J1aWxkX2NtZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYy0zMDEtXHRcdGJ1dCB3ZSBwYXNzIDAtNCBiZWNhdXNlIGl0IGFjdHMgYXMgYW4gYXJyYXkgaW5kZXguICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jOjMwMjpcdFx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5wb3dlcl9sZXZlbCBcdTAwM2UgSVdMX1BPV0VSX0lOREVYXzEgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jOjMwMzpcdFx0ICAgIGl3bHdpZmlfbW9kX3BhcmFtcy5wb3dlcl9sZXZlbCBcdTAwM2M9IElXTF9QT1dFUl9OVU0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jLTMwNC1cdFx0XHRpd2xfc3RhdGljX3NsZWVwX2NtZChwcml2LCBjbWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jOjMwNTpcdFx0XHRcdGl3bHdpZmlfbW9kX3BhcmFtcy5wb3dlcl9sZXZlbCAtIDEsIGR0aW1wZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYy0zMDYtXHRcdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTYwND1zdGF0aWMgdm9pZCBpd2xhZ25fcGFzc19wYWNrZXRfdG9fbWFjODAyMTEoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNjIzLVx0LyogSW4gY2FzZSBvZiBIVyBhY2NlbGVyYXRlZCBjcnlwdG8gYW5kIGJhZCBkZWNyeXB0aW9uLCBkcm9wICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjYyNDpcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy02MjUtXHQgICAgaXdsYWduX3NldF9kZWNyeXB0ZWRfZmxhZyhwcml2LCBoZHIsIGFtcGR1X3N0YXR1cywgc3RhdHMpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYz0xMDIzPWludCBpd2xhZ25fY29tbWl0X3J4b24oc3RydWN0IGl3bF9wcml2ICpwcml2LCBzdHJ1Y3QgaXdsX3J4b25fY29udGV4dCAqY3R4KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYy0xMTAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jOjExMDM6XHRpd2xfc2V0X3J4b25faHdjcnlwdG8ocHJpdiwgY3R4LCAhaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYy0xMTA0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvaW1nLmg9MTM2PXN0cnVjdCBpd2xfZndfcGFnaW5nIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oLTE0My0vKipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvaW1nLmg6MTQ0OiAqIGVudW0gaXdsX2Z3X3R5cGUgLSBpd2x3aWZpIGZpcm13YXJlIHR5cGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvaW1nLmgtMTQ1LSAqIEBJV0xfRldfRFZNOiBEVk0gZmlybXdhcmVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kYmctdGx2LmM9NDk5PXZvaWQgaXdsX2RiZ190bHZfbG9hZF9iaW4oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kYmctdGx2LmMtNTA0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGJnLXRsdi5jOjUwNTpcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLmVuYWJsZV9pbmkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYy01MDYtXHQgICAgdHJhbnMtXHUwMDNlbWFjX2NmZy1cdTAwM2VkZXZpY2VfZmFtaWx5IFx1MDAzYz0gSVdMX0RFVklDRV9GQU1JTFlfODAwMClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTEzPXZvaWQgX19pd2xfICMjZm4oc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLilcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy0yMi1cdGRldl8gIyNmbihkZXYsIFwmIzM0OyVwVlwmIzM0OywgXHUwMDI2dmFmKTtcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjIzOlx0dHJhY2VfaXdsd2lmaV8gIyNmbihcdTAwMjZ2YWYpO1x0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtMjQtXHR2YV9lbmQoYXJncyk7XHRcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTM0PXZvaWQgX19pd2xfZXJyKHN0cnVjdCBkZXZpY2UgKmRldiwgZW51bSBpd2xfZXJyX21vZGUgbW9kZSwgY29uc3QgY2hhciAqZm10LCAuLi4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02MC1cdHZhZi52YSA9IFx1MDAyNmFyZ3M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjYxOlx0dHJhY2VfaXdsd2lmaV9lcnIoXHUwMDI2dmFmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNjItXHR2YV9lbmQoYXJncyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYz02Nz12b2lkIF9faXdsX2RiZyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy04Mi0jZW5kaWZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM6ODM6XHR0cmFjZV9pd2x3aWZpX2RiZyhsZXZlbCwgZnVuY3Rpb24sIFx1MDAyNnZhZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTg0LVx0dmFfZW5kKGFyZ3MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9MTY9c3RhdGljIGlubGluZSBib29sIGl3bF9oYXZlX2RlYnVnX2xldmVsKHUzMiBsZXZlbClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTE4LSNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxOTpcdHJldHVybiBpd2x3aWZpX21vZF9wYXJhbXMuZGVidWdfbGV2ZWwgXHUwMDI2IGxldmVsO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0yMC0jZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9MTAyPWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjYtICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTI3OiAqXHQvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI4LSAqIHdoZW4gQ09ORklHX0lXTFdJRklfREVCVUc9eS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI5LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEzMDogKlx0L3N5cy9rZXJuZWwvZGVidWcvcGh5MC9pd2x3aWZpL2RlYnVnL2RlYnVnX2xldmVsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEzMS0gKiB3aGVuIENPTkZJR19JV0xXSUZJX0RFQlVHRlM9eS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMTQtI3VuZGVmIFRSQUNFX1NZU1RFTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oOjE1OiNkZWZpbmUgVFJBQ0VfU1lTVEVNIGl3bHdpZmlfZGF0YVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oOjE3OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X3R4X3RiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oLTE4LVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaDozNzpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9yeF9kYXRhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oLTM4LVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTQtI3VuZGVmIFRSQUNFX1NZU1RFTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDoxNTojZGVmaW5lIFRSQUNFX1NZU1RFTSBpd2x3aWZpX2lvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDoxNzpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3JlYWQzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTgtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBvZmZzLCB1MzIgdmFsKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDozNDpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlOCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMzUtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBvZmZzLCB1OCB2YWwpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtNTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjUxOlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGUzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtNTItXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBvZmZzLCB1MzIgdmFsKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDo2ODpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlNjQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTY5LVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1NjQgb2ZmcywgdTY0IHZhbCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC04NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6ODU6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW93cml0ZV9wcnBoMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTg2LVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xMDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjEwMjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlX3BycGg2NCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTAzLVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1NjQgb2ZmcywgdTY0IHZhbCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjExOTpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3JlYWRfcHJwaDMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xMjAtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBvZmZzLCB1MzIgdmFsKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTM2OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lycSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTM3LVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTQ5OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lycV9tc2l4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNTAtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtc2l4X2VudHJ5ICptc2l4X2VudHJ5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDoxNzI6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaWN0X3JlYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE3My1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIGluZGV4LCB1MzIgdmFsdWUpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC0xNS0jdW5kZWYgVFJBQ0VfU1lTVEVNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmg6MTY6I2RlZmluZSBUUkFDRV9TWVNURU0gaXdsd2lmaVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oOjE4OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2hjbWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmgtMTktXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oOjUyOlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X3J4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTUzLVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC03Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaDo3MzpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl90eCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC03NC1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE2OjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4MzI3CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlBDSSBGdXp6aW5nIFRob3VnaHRzKioKCk9rYXksIHdhaXQgYSBtaW51dGUuLi4gSSByZWNhbGwgU3l6a2FsbGVyIGhhdmluZyBhIHZpcnR1YWwgUENJIGRldmljZSBmdXp6aW5nIGZyYW1ld29yayEgTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBrZXJuZWwgdHJlZSBhbmQgdGhlIFN5emthbGxlciBzb3VyY2UgZm9yIGFueXRoaW5nIGxpa2UgYHN5el9wY2lfZGV2aWNlYCBvciBzaW1pbGFyLiBIbW0sIG5vLCBpdCBsb29rcyBsaWtlIFN5emthbGxlciBkb2VzbiYjMzk7dCBoYXZlIGEgc3BlY2lmaWMgYHN5el9wY2lfZGV2aWNlYCBwc2V1ZG8tc3lzdGVtIGNhbGwsIG9yIGV2ZW4gYSBgc3l6X3BjaWAgb25lLiBJbnRlcmVzdGluZy4uLiBJIGRvIHNlZSBzdHVmZiBsaWtlIGBzeXpfa3ZtX3NldHVwX2NwdWAgdGhvdWdoLiBIb2xkIG9uLCB3YXNuJiMzOTt0IHRoZXJlIGEgcmVjZW50IGFkZGl0aW9uIGZvciBQQ0kgbGlrZSBgc3l6X3BjaV8uLi5gIG9yIGlzIGl0IHVzaW5nIGB2ZmlvYCBzb21laG93PyBBY3R1YWxseSwgSSByZW1lbWJlciBzZWVpbmcgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQjsgZG9lcyBpdCBmb2xsb3cgdGhlIHNhbWUgcGF0dGVybiBmb3IgUENJLCB3aXRoIGEgcG90ZW50aWFsIGBzeXpfcGNpX2Nvbm5lY3RgPyBJIHJlYWxseSBuZWVkIHRvIGNvbmZpcm0gaWYgdGhlcmUgYXJlIGFueSBgc3l6X2AgZnVuY3Rpb25zIGRlZGljYXRlZCB0byBQQ0kgd2l0aGluIHRoZSBTeXprYWxsZXIgZWNvc3lzdGVtLgoKQWhhISBUaGUgcGF0Y2ggaXMgYXV0aG9yZWQgYnkgYHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDtgLiBUaGF0IG1lYW5zIFN5emthbGxlciAqZGlkKiBmaW5kIHRoZXNlIGJ1Z3MhIE5vdywgaG93IGRpZCBpdCBtYW5hZ2UgdGhhdD8gTXkgbWluZCBpcyByYWNpbmcuIENvdWxkIGl0IGhhdmUgYmVlbiB0aHJvdWdoIG1hYzgwMjExX2h3c2ltPyBObywgdGhhdCYjMzk7cyBqdXN0IGEgc29mdHdhcmUgc2ltdWxhdG9yIGZvciBtYWM4MDIxMTsgaXQmIzM5O3Mgbm90IGRpcmVjdGx5IHJlbGF0ZWQgdG8gaXdsd2lmaS4gV2FpdCwgcGVyaGFwcyB0aHJvdWdoIG5ldGxpbms/IFRoZSByZXBvcnRlZCBidWdzIGFyZSBpbiBgaXdsX212bV9yeF9iZWFjb25fbm90aWZgLCBgaXdsX212bV91cGRhdGVfbWNjYCwgYGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZmAsIGFuZCBgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmYC4gVGhlc2UgZnVuY3Rpb25zIGFyZSBhbGwgdHJpZ2dlcmVkIHdoZW4gcmVjZWl2aW5nIHBhY2tldHMgZnJvbSB0aGUgZmlybXdhcmUuCgpXYWl0IGEgc2Vjb25kISBgaXdsX212bV9yeF9iZWFjb25fbm90aWZgIGlzIGNhbGxlZCBmcm9tIGBpd2xfbXZtX3J4X3J4X21wZHVgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCB3aGljaCBkZWFscyB3aXRoIFJYIHF1ZXVlcy4gSG93IGV4YWN0bHkgZGlkIFN5emthbGxlciBpbmplY3QgcGFja2V0cyBpbnRvIGl3bHdpZmkmIzM5O3MgUlggcXVldWU/IE5vdyBJIG5lZWQgdG8gZGl2ZSBkZWVwZXIgYW5kIGxvb2sgYXQgdGhlIGNhbGxlcnMgb2YgYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYCB0byB1bmRlcnN0YW5kIHRoZSBpbmplY3Rpb24gcGF0aC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNjo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmM9MTQ1Mz1zdGF0aWMgdm9pZCBpd2xfbXZtX2NzYV9jb3VudF9kb3duKHN0cnVjdCBpd2xfbXZtICptdm0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYy0xNDkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYzoxNDkxOnZvaWQgaXdsX212bV9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmMtMTQ5Mi1cdFx0XHQgICAgIHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oPTE5MjA9dm9pZCBpd2xfbXZtX21hY19jdHh0X3NldF90aW0oc3RydWN0IGl3bF9tdm0gKm12bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaC0xOTIyLVx0XHRcdCAgICAgIHU4ICpiZWFjb24sIHUzMiBmcmFtZV9zaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oOjE5MjM6dm9pZCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmgtMTkyNC1cdFx0XHQgICAgIHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYz0zMTc9c3RhdGljIGNvbnN0IHN0cnVjdCBpd2xfcnhfaGFuZGxlcnMgaXdsX212bV9yeF9oYW5kbGVyc1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTMyOS1cdFx0ICAgc3RydWN0IGl3bF9idF9jb2V4X3Byb2Zfb2xkX25vdGlmKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jOjMzMDpcdFJYX0hBTkRMRVJfTk9fU0laRShCRUFDT05fTk9USUZJQ0FUSU9OLCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTMzMS1cdFx0XHQgICBSWF9IQU5ETEVSX0FTWU5DX0xPQ0tFRCksXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTY6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk4MjcKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBGaXJtd2FyZSBOb3RpZmljYXRpb24gSW5qZWN0aW9uKioKCk9rYXksIHNvIGBpd2xfbXZtX3J4X2hhbmRsZXJzYCBjbGVhcmx5IGxpbmtzIGBCRUFDT05fTk9USUZJQ0FUSU9OYCB0byBgaXdsX212bV9yeF9iZWFjb25fbm90aWZgLiBUaGF0JiMzOTtzIGEgZmlybXdhcmUgbm90aWZpY2F0aW9uLCBhbmQgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZG9lcyBzeXprYWxsZXIgZXZlbiAqdHJpZ2dlciogdGhvc2U/IEkga25vdyBzeXprYWxsZXIgcGxheXMgd2l0aCBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyBhIFdpLUZpIHNpbXVsYXRvci4gQnV0IGBpd2x3aWZpYCBpcyBhICpzcGVjaWZpYyogZHJpdmVyLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhIHBhdGggZm9yIGluamVjdGluZyB0aGVzZSBub3RpZmljYXRpb25zIGRpcmVjdGx5IGludG8gdGhlIGBpd2x3aWZpYCBkcml2ZXIgaXRzZWxmLiBNeSBpbnR1aXRpb24gc2F5cyBJIHNob3VsZCBsb29rIGZvciBhIGRlYnVnZnMgb3IgYSBuZXRsaW5rIGludGVyZmFjZS4gRWl0aGVyIG9mIHRob3NlIGNvdWxkIHBvdGVudGlhbGx5IHByb3ZpZGUgYSB3YXkgdG8gaW5qZWN0IGNyYWZ0ZWQgUlggcGFja2V0cywgd2hpY2ggbWlnaHQgdGhlbiBiZSBpbnRlcnByZXRlZCBhcyB0aGVzZSBmaXJtd2FyZSBub3RpZmljYXRpb25zLiBMZXQmIzM5O3Mgc3RhcnQgYnkgY2hlY2tpbmcgdGhvc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE2OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2luamVjdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MTEyOT1lbnVtIGl3bF90b2ZfaW5pdGlhdG9yX2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTExNzAtICogQGZ0bV90eF9jaGFpbnM6IFR4IGNoYWluIHRvIHNlbmQgdGhlIGFjayB0byB0aGUgUmVzcG9uZGVyIEZUTSAoWFZUKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxMTcxOiAqIEBjb21tb25fY2FsaWI6IFRoZSBjb21tb24gY2FsaWIgdmFsdWUgdG8gaW5qZWN0IHRvIHRoaXMgbWVhc3VyZW1lbnQgY2FsY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxMTcyOiAqIEBzcGVjaWZpY19jYWxpYjogVGhlIHNwZWNpZmljIGNhbGliIHZhbHVlIHRvIGluamVjdCB0byB0aGlzIG1lYXN1cmVtZW50IGNhbGNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTE3My0gKiBAYXA6IHBlci1BUCByZXF1ZXN0IGRhdGFcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTExNzU9c3RydWN0IGl3bF90b2ZfcmFuZ2VfcmVxX2NtZF92NSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xMjA5LSAqXHRUU0Ygb2YgdGhpcyBtYWMgaWQuIDB4ZmYgdG8gZGlzYWJsZSBUU0YgcmVwb3J0aW5nLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxMjEwOiAqIEBjb21tb25fY2FsaWI6IFRoZSBjb21tb24gY2FsaWIgdmFsdWUgdG8gaW5qZWN0IHRvIHRoaXMgbWVhc3VyZW1lbnQgY2FsY1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxMjExOiAqIEBzcGVjaWZpY19jYWxpYjogVGhlIHNwZWNpZmljIGNhbGliIHZhbHVlIHRvIGluamVjdCB0byB0aGlzIG1lYXN1cmVtZW50IGNhbGNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTIxMi0gKiBAYXA6IHBlci1BUCByZXF1ZXN0IGRhdGEsIHNlZSBcdTAwMjZzdHJ1Y3QgaXdsX3RvZl9yYW5nZV9yZXFfYXBfZW50cnlfdjIuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0xMjE0PXN0cnVjdCBpd2xfdG9mX3JhbmdlX3JlcV9jbWRfdjcge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTI0MS0gKlx0VFNGIG9mIHRoaXMgbWFjIGlkLiAweGZmIHRvIGRpc2FibGUgVFNGIHJlcG9ydGluZy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MTI0MjogKiBAY29tbW9uX2NhbGliOiBUaGUgY29tbW9uIGNhbGliIHZhbHVlIHRvIGluamVjdCB0byB0aGlzIG1lYXN1cmVtZW50IGNhbGNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MTI0MzogKiBAc3BlY2lmaWNfY2FsaWI6IFRoZSBzcGVjaWZpYyBjYWxpYiB2YWx1ZSB0byBpbmplY3QgdG8gdGhpcyBtZWFzdXJlbWVudCBjYWxjXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTEyNDQtICogQGFwOiBwZXItQVAgcmVxdWVzdCBkYXRhLCBzZWUgXHUwMDI2c3RydWN0IGl3bF90b2ZfcmFuZ2VfcmVxX2FwX2VudHJ5X3YyLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MTQzOT1lbnVtIGl3bF90b2ZfZW50cnlfc3RhdHVzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTE0ODItICogQHNwZWNpZmljX2NhbGliOiB2YWwgdGhhdCB3YXMgdXNlZCBpbiBmb3IgdGhpcyBBUCBtZWFzdXJlbWVudFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxNDgzOiAqIEBwYXBkX2NhbGliX291dHB1dDogVGhlIHJlc3VsdCBvZiB0aGUgdG9mIHBhcGQgY2FsaWJyYXRpb24gdGhhdCB3YXMgaW5qZWN0ZWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTQ4NC0gKlx0aW50byB0aGUgYWxnb3JpdGhtLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MTQ4Nj1zdHJ1Y3QgaXdsX3RvZl9yYW5nZV9yc3BfYXBfZW50cnlfbnRmeV92MyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xNTM0LSAqIEBzcGVjaWZpY19jYWxpYjogdmFsIHRoYXQgd2FzIHVzZWQgaW4gZm9yIHRoaXMgQVAgbWVhc3VyZW1lbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MTUzNTogKiBAcGFwZF9jYWxpYl9vdXRwdXQ6IFRoZSByZXN1bHQgb2YgdGhlIHRvZiBwYXBkIGNhbGlicmF0aW9uIHRoYXQgd2FzIGluamVjdGVkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTE1MzYtICpcdGludG8gdGhlIGFsZ29yaXRobS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTE1Mzg9c3RydWN0IGl3bF90b2ZfcmFuZ2VfcnNwX2FwX2VudHJ5X250ZnlfdjQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTU4Ny0gKiBAc3BlY2lmaWNfY2FsaWI6IHZhbCB0aGF0IHdhcyB1c2VkIGluIGZvciB0aGlzIEFQIG1lYXN1cmVtZW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjE1ODg6ICogQHBhcGRfY2FsaWJfb3V0cHV0OiBUaGUgcmVzdWx0IG9mIHRoZSB0b2YgcGFwZCBjYWxpYnJhdGlvbiB0aGF0IHdhcyBpbmplY3RlZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xNTg5LSAqXHRpbnRvIHRoZSBhbGdvcml0aG0uXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0xNTkzPXN0cnVjdCBpd2xfdG9mX3JhbmdlX3JzcF9hcF9lbnRyeV9udGZ5X3Y1IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTE2NDQtICogQHNwZWNpZmljX2NhbGliOiB2YWwgdGhhdCB3YXMgdXNlZCBpbiBmb3IgdGhpcyBBUCBtZWFzdXJlbWVudFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxNjQ1OiAqIEBwYXBkX2NhbGliX291dHB1dDogVGhlIHJlc3VsdCBvZiB0aGUgdG9mIHBhcGQgY2FsaWJyYXRpb24gdGhhdCB3YXMgaW5qZWN0ZWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTY0Ni0gKlx0aW50byB0aGUgYWxnb3JpdGhtLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MTY1ND1zdHJ1Y3QgaXdsX3RvZl9yYW5nZV9yc3BfYXBfZW50cnlfbnRmeV92NyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xNzA2LSAqIEBzcGVjaWZpY19jYWxpYjogdmFsIHRoYXQgd2FzIHVzZWQgaW4gZm9yIHRoaXMgQVAgbWVhc3VyZW1lbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MTcwNzogKiBAcGFwZF9jYWxpYl9vdXRwdXQ6IFRoZSByZXN1bHQgb2YgdGhlIHRvZiBwYXBkIGNhbGlicmF0aW9uIHRoYXQgd2FzIGluamVjdGVkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTE3MDgtICpcdGludG8gdGhlIGFsZ29yaXRobS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9tYWMtY2ZnLmg9NjgyPXN0cnVjdCBpd2xfbGlua19jb25maWdfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9tYWMtY2ZnLmgtNzQ0LSAqIEBTVEFUSU9OX1RZUEVfQkNBU1RfTUdNVDogVGhlIHN0YXRpb24gdXNlZCB0byBzZW5kIGJlYWNvbnMgYW5kXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9tYWMtY2ZnLmg6NzQ1OiAqXHRwcm9iZSByZXNwb25zZXMuIEFsc28gdXNlZCBmb3IgdHJhZmZpYyBpbmplY3Rpb24gaW4gc25pZmZlciBtb2RlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9tYWMtY2ZnLmgtNzQ2LSAqIEBTVEFUSU9OX1RZUEVfTUNBU1Q6IHRoZSBzdGF0aW9uIHVzZWQgZm9yIEJDQVNUIC8gTUNBU1QgaW4gR08uIFdpbGwgYmVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS90eHEuaC0xNS0gKiBASVdMX01WTV9EUUFfUDJQX0RFVklDRV9RVUVVRTogYSBxdWV1ZSByZXNlcnZlZCBmb3IgUDJQIGRldmljZSBmcmFtZXNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3R4cS5oOjE2OiAqIEBJV0xfTVZNX0RRQV9JTkpFQ1RfTU9OSVRPUl9RVUVVRTogYSBxdWV1ZSByZXNlcnZlZCBmb3IgaW5qZWN0aW9uIHVzaW5nXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS90eHEuaC0xNy0gKlx0bW9uaXRvciBtb2RlLiBOb3RlIHRoaXMgcXVldWUgaXMgdGhlIHNhbWUgYXMgdGhlIHF1ZXVlIGZvciBQMlAgZGV2aWNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oPTQxMT12b2lkIGl3bF9tZWlfdW5yZWdpc3Rlcl9jb21wbGV0ZSh2b2lkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtNDIyLSAqIE9ubHkgd2hlbiB0aGlzIGZ1bmN0aW9uIHJldHVybnMsIGNhbiB0aGUgY2FsbGVyIGFzc3VtZSB0aGF0IGl3bG1laSB3aWxsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg6NDIzOiAqIG5vIGxvbmdlciBpbmplY3QgcGFja2V0cyBpbnRvIHRoZSBuZXRkZXYmIzM5O3MgVHggcGF0aC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MjQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hcC5jPTE1ND1pbnQgaXdsX21sZF91cGRhdGVfYmVhY29uX3RlbXBsYXRlKHN0cnVjdCBpd2xfbWxkICptbGQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYXAuYy0xNzEtI2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FwLmM6MTcyOlx0aWYgKG1sZF92aWYtXHUwMDNlYmVhY29uX2luamVjdF9hY3RpdmUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FwLmMtMTczLVx0XHRJV0xfREVCVUdfSU5GTyhtbGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hcC5jOjE3NDpcdFx0XHQgICAgICAgXCYjMzQ7Q2FuJiMzOTt0IHVwZGF0ZSB0ZW1wbGF0ZSwgYmVhY29uIGluamVjdGlvbiYjMzk7cyBhY3RpdmVcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYXAuYy0xNzUtXHRcdHJldHVybiAtRUJVU1k7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jPTQ2MT1NTERfREVCVUdGU19SRUFEX0ZJTEVfT1BTKHdpZmlfNmVfZW5hYmxlLCA2NCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNDYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjQ2MzpzdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZShzdHJ1Y3QgaXdsX21sZCAqbWxkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTQ2NC1cdFx0XHRcdFx0ICAgICBjaGFyICpidWYsIHNpemVfdCBjb3VudClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNTAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjUwMjpXSVBIWV9ERUJVR0ZTX1dSSVRFX0ZJTEVfT1BTX01MRChpbmplY3RfcGFja2V0LCA1MTIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTUwMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM9NTMzPWl3bF9tbGRfYWRkX2RlYnVnZnNfZmlsZXMoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGRlbnRyeSAqZGVidWdmc19kaXIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTU0Ny0jZW5kaWZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo1NDg6XHRNTERfREVCVUdGU19BRERfRklMRShpbmplY3RfcGFja2V0LCBkZWJ1Z2ZzX2RpciwgMDIwMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNTQ5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYz02ODY9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjY4NzpfaXdsX2RiZ2ZzX2luamVjdF9iZWFjb25faWUoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy02ODgtXHRcdFx0ICAgIGNoYXIgKmJpbiwgc3NpemVfdCBsZW4sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTcwNi1cdG1sZF92aWYgPSBpd2xfbWxkX3ZpZl9mcm9tX21hYzgwMjExKHZpZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM6NzA3Olx0bWxkX3ZpZi1cdTAwM2ViZWFjb25faW5qZWN0X2FjdGl2ZSA9IHRydWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNzA4LVx0bWxkLVx1MDAzZWh3LVx1MDAzZWV4dHJhX2JlYWNvbl90YWlscm9vbSA9IG5fYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTc1NC1cdGlmIChyZXN0b3JlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjc1NTpcdFx0bWxkX3ZpZi1cdTAwM2ViZWFjb25faW5qZWN0X2FjdGl2ZSA9IGZhbHNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTc1Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM9NzYwPXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM6NzYxOml3bF9kYmdmc192aWZfaW5qZWN0X2JlYWNvbl9pZV93cml0ZShzdHJ1Y3QgaXdsX21sZCAqbWxkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTc2Mi1cdFx0XHRcdCAgICAgY2hhciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTc2NS1cdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYgPSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjc2NjpcdGludCByZXQgPSBfaXdsX2RiZ2ZzX2luamVjdF9iZWFjb25faWUobWxkLCB2aWYsIGJ1ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03NjctXHRcdFx0XHRcdCAgICAgIGNvdW50LCBmYWxzZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTc3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo3NzM6VklGX0RFQlVHRlNfV1JJVEVfRklMRV9PUFMoaW5qZWN0X2JlYWNvbl9pZSwgNTEyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03NzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM9Nzc1PXN0YXRpYyBzc2l6ZV90XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM6Nzc2Oml3bF9kYmdmc192aWZfaW5qZWN0X2JlYWNvbl9pZV9yZXN0b3JlX3dyaXRlKHN0cnVjdCBpd2xfbWxkICptbGQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNzc3LVx0XHRcdFx0XHQgICAgIGNoYXIgKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNzgxLVx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM6NzgyOlx0aW50IHJldCA9IF9pd2xfZGJnZnNfaW5qZWN0X2JlYWNvbl9pZShtbGQsIHZpZiwgTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03ODMtXHRcdFx0XHRcdCAgICAgIDAsIHRydWUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM6Nzg5OlZJRl9ERUJVR0ZTX1dSSVRFX0ZJTEVfT1BTKGluamVjdF9iZWFjb25faWVfcmVzdG9yZSwgNTEyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03OTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jPTk0MT12b2lkIGl3bF9tbGRfYWRkX3ZpZl9kZWJ1Z2ZzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy05NzEtXHRpZiAodmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfQVApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo5NzI6XHRcdFZJRl9ERUJVR0ZTX0FERF9GSUxFKGluamVjdF9iZWFjb25faWUsIG1sZF92aWZfZGJnZnMsIDAyMDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjk3MzpcdFx0VklGX0RFQlVHRlNfQUREX0ZJTEUoaW5qZWN0X2JlYWNvbl9pZV9yZXN0b3JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTk3NC1cdFx0XHRcdCAgICAgbWxkX3ZpZl9kYmdmcywgMDIwMCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvaWZhY2UuaD0xMDM9c3RydWN0IGl3bF9tbGRfZW1sc3Ige1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2lmYWNlLmgtMTM3LSAqXHRzYW1lIEFQIHdpdGggMjAgTUh6LiBUaGlzIG1hbmFnZXMgdGhlIHN0YXR1cyBvZiB0aGUgd29ya2Fyb3VuZC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2lmYWNlLmg6MTM4OiAqIEBiZWFjb25faW5qZWN0X2FjdGl2ZTogaW5kaWNhdGVzIGFuIGFjdGl2ZSBkZWJ1Z2ZzIGJlYWNvbiBpZSBpbmplY3Rpb25cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2lmYWNlLmgtMTM5LSAqIEBsb3dfbGF0ZW5jeV9jYXVzZXM6IGJpdCBmbGFncywgaW5kaWNhdGluZyB0aGUgY2F1c2VzIGZvciBsb3ctbGF0ZW5jeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9pZmFjZS5oPTE2Nj1zdHJ1Y3QgaXdsX21sZF92aWYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2lmYWNlLmgtMTc2LSNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9pZmFjZS5oOjE3NzpcdFx0Ym9vbCBiZWFjb25faW5qZWN0X2FjdGl2ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2lmYWNlLmgtMTc4LSNlbmRpZlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2xpbmsuaD0yNz1zdHJ1Y3QgaXdsX3Byb2JlX3Jlc3BfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbGluay5oLTUyLSAqIEBtY2FzdF9zdGE6IHN0YXRpb24gdXNlZCBmb3IgbXVsdGljYXN0IHBhY2tldHMuIFVzZWQgaW4gQVAsIEdPIGFuZCBJQlNTLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbGluay5oOjUzOiAqIEBtb25fc3RhOiBzdGF0aW9uIHVzZWQgZm9yIFRYIGluamVjdGlvbiBpbiBtb25pdG9yIGludGVyZmFjZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2xpbmsuaC01NC0gKiBAbGFzdF9jcW1fcnNzaV9ldmVudDogcnNzaSBvZiB0aGUgbGFzdCBjcW0gcnNzaSBldmVudFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3N0YS5oPTk0PXN0cnVjdCBpd2xfbWxkX3Blcl9xX21wZHVfY291bnRlciB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvc3RhLmgtMTExLSAqIEBkYXRhX3R4X2FudDogc3RvcmVzIHRoZSBsYXN0IFRYIGFudGVubmEgaW5kZXg7IHVzZWQgZm9yIHNldHRpbmdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3N0YS5oOjExMjogKlx0VFggcmF0ZV9uX2ZsYWdzIGZvciBpbmplY3RlZCBkYXRhIGZyYW1lcyAodG9nZ2xlcyBvbiBldmVyeSBUWCBmYWlsdXJlKS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3N0YS5oLTExMy0gKiBAdGlkX3RvX2JhaWQ6IGEgc2ltcGxlIG1hcCBvZiBUSUQgdG8gQmxvY2stQWNrIGZ3IGlkXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdHguYz00MTg9c3RhdGljIHUzMiBpd2xfbWxkX2dldF90eF9hbnQoc3RydWN0IGl3bF9tbGQgKm1sZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90eC5jLTQzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmM6NDMxOnN0YXRpYyB1MzIgaXdsX21sZF9nZXRfaW5qZWN0X3R4X3JhdGUoc3RydWN0IGl3bF9tbGQgKm1sZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmMtNDMyLVx0XHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmM9NDg2PXN0YXRpYyBfX2xlMzIgaXdsX21sZF9nZXRfdHhfcmF0ZV9uX2ZsYWdzKHN0cnVjdCBpd2xfbWxkICptbGQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdHguYy00OTItXHRpZiAodW5saWtlbHkoaW5mby1cdTAwM2Vjb250cm9sLmZsYWdzIFx1MDAyNiBJRUVFODAyMTFfVFhfQ1RSTF9SQVRFX0lOSkVDVCkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90eC5jOjQ5MzpcdFx0cmF0ZSA9IGl3bF9tbGRfZ2V0X2luamVjdF90eF9yYXRlKG1sZCwgaW5mbywgc3RhLCBmYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90eC5jLTQ5NC1cdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90eC5jPTU0MD1pd2xfbWxkX2ZpbGxfdHhfY21kKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdHguYy01NjEtXHQgKiBPbmx5IHNldCByYXRlL2FudGVubmEgZm9yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdHguYzo1NjI6XHQgKiAtIGluamVjdGVkIGZyYW1lcyB3aXRoIGZpeGVkIHJhdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90eC5jLTU2My1cdCAqIC0gd2hlbiBubyBzdGEgaXMgZ2l2ZW4uXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jPTEyMTQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2luZGlyZWN0aW9uX3RibF93cml0ZShzdHJ1Y3QgaXdsX212bSAqbXZtLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xMjYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjEyNjE6c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2luamVjdF9wYWNrZXRfd3JpdGUoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xMjYyLVx0XHRcdFx0XHQgICAgIGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xMzA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjEzMDk6c3RhdGljIGludCBfaXdsX2RiZ2ZzX2luamVjdF9iZWFjb25faWUoc3RydWN0IGl3bF9tdm0gKm12bSwgY2hhciAqYmluLCBpbnQgbGVuKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTEzMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xMzU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjEzNTk6XHRtdm0tXHUwMDNlYmVhY29uX2luamVjdF9hY3RpdmUgPSB0cnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTEzNjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTE0MDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM6MTQwMzpzdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5qZWN0X2JlYWNvbl9pZV93cml0ZShzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTE0MDQtXHRcdFx0XHRcdFx0Y2hhciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTE0MDYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjE0MDc6XHRpbnQgcmV0ID0gX2l3bF9kYmdmc19pbmplY3RfYmVhY29uX2llKG12bSwgYnVmLCBjb3VudCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTQwOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTQxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoxNDEzOnN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19pbmplY3RfYmVhY29uX2llX3Jlc3RvcmVfd3JpdGUoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xNDE0LVx0XHRcdFx0XHRcdFx0Y2hhciAqYnVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xNDE3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoxNDE4Olx0aW50IHJldCA9IF9pd2xfZGJnZnNfaW5qZWN0X2JlYWNvbl9pZShtdm0sIE5VTEwsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTE0MTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTQyMC1cdG12bS1cdTAwM2Vody1cdTAwM2VleHRyYV9iZWFjb25fdGFpbHJvb20gPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjE0MjE6XHRtdm0tXHUwMDNlYmVhY29uX2luamVjdF9hY3RpdmUgPSBmYWxzZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xNDIyLVx0cmV0dXJuIHJldCA/OiBjb3VudDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM9MTkzNj1NVk1fREVCVUdGU19XUklURV9GSUxFX09QUyhpbmRpcmVjdGlvbl90YmwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTkzNy1cdFx0XHQgICAoSVdMX1JTU19JTkRJUkVDVElPTl9UQUJMRV9TSVpFICogMikpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjE5Mzg6TVZNX0RFQlVHRlNfV1JJVEVfRklMRV9PUFMoaW5qZWN0X3BhY2tldCwgNTEyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoxOTM5Ok1WTV9ERUJVR0ZTX1dSSVRFX0ZJTEVfT1BTKGluamVjdF9iZWFjb25faWUsIDUxMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM6MTk0MDpNVk1fREVCVUdGU19XUklURV9GSUxFX09QUyhpbmplY3RfYmVhY29uX2llX3Jlc3RvcmUsIDUxMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTk0MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM9MjExMD12b2lkIGl3bF9tdm1fZGJnZnNfcmVnaXN0ZXIoc3RydWN0IGl3bF9tdm0gKm12bSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMjEzNy1cdE1WTV9ERUJVR0ZTX0FERF9GSUxFKGluZGlyZWN0aW9uX3RibCwgbXZtLVx1MDAzZWRlYnVnZnNfZGlyLCAwMjAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoyMTM4Olx0TVZNX0RFQlVHRlNfQUREX0ZJTEUoaW5qZWN0X3BhY2tldCwgbXZtLVx1MDAzZWRlYnVnZnNfZGlyLCAwMjAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoyMTM5Olx0TVZNX0RFQlVHRlNfQUREX0ZJTEUoaW5qZWN0X2JlYWNvbl9pZSwgbXZtLVx1MDAzZWRlYnVnZnNfZGlyLCAwMjAwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoyMTQwOlx0TVZNX0RFQlVHRlNfQUREX0ZJTEUoaW5qZWN0X2JlYWNvbl9pZV9yZXN0b3JlLCBtdm0tXHUwMDNlZGVidWdmc19kaXIsIDAyMDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTIxNDEtXHRNVk1fREVCVUdGU19BRERfRklMRShyZmlfZnJlcV90YWJsZSwgbXZtLVx1MDAzZWRlYnVnZnNfZGlyLCAwNjAwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jPTExODA9aW50IGl3bF9tdm1fbWFjX2N0eHRfYmVhY29uX2NoYW5nZWQoc3RydWN0IGl3bF9tdm0gKm12bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jLTExOTUtI2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmM6MTE5NjpcdGlmIChtdm0tXHUwMDNlYmVhY29uX2luamVjdF9hY3RpdmUpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmMtMTE5Ny1cdFx0ZGV2X2tmcmVlX3NrYihiZWFjb24pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYzgwMjExLmM9MTEzMD1zdGF0aWMgdm9pZCBpd2xfbXZtX3Jlc3RhcnRfY2xlYW51cChzdHJ1Y3QgaXdsX212bSAqbXZtKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYzgwMjExLmMtMTE2NC0jaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuYzoxMTY1Olx0bXZtLVx1MDAzZWJlYWNvbl9pbmplY3RfYWN0aXZlID0gZmFsc2U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jLTExNjYtI2VuZGlmXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmg9OTEwPXN0cnVjdCBpd2xfbXZtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaC0xMDU5LVx0Ym9vbCBkaXNhYmxlX3Bvd2VyX29mZl9kMztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oOjEwNjA6XHRib29sIGJlYWNvbl9pbmplY3RfYWN0aXZlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmgtMTA2MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jPTI2Nj1zdGF0aWMgdTMyIGl3bF9tdm1fY29udmVydF9yYXRlX2lkeChzdHJ1Y3QgaXdsX212bSAqbXZtLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmMtMjkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdHguYzoyOTQ6c3RhdGljIHUzMiBpd2xfbXZtX2dldF9pbmplY3RfdHhfcmF0ZShzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdHguYy0yOTUtXHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdHguYz0zODA9c3RhdGljIF9fbGUzMiBpd2xfbXZtX2dldF90eF9yYXRlX25fZmxhZ3Moc3RydWN0IGl3bF9tdm0gKm12bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jLTM4Ni1cdGlmICh1bmxpa2VseShpbmZvLVx1MDAzZWNvbnRyb2wuZmxhZ3MgXHUwMDI2IElFRUU4MDIxMV9UWF9DVFJMX1JBVEVfSU5KRUNUKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmM6Mzg3Olx0XHRyYXRlID0gaXdsX212bV9nZXRfaW5qZWN0X3R4X3JhdGUobXZtLCBpbmZvLCBzdGEsIGZjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmMtMzg4LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmM9NTUzPWl3bF9tdm1fc2V0X3R4X3BhcmFtcyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmMtNTg3LVx0XHQgKiBuZXcgZGV2aWNlcywgb2xkZXIgRlcgaXMgc29tZXdoYXQgYnJva2VuIGZvciB0aGlzKS4gT25seVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdHguYzo1ODg6XHRcdCAqIHNldCByYXRlL2FudGVubmEgZm9yIGluamVjdGVkIGZyYW1lcyB3aXRoIGZpeGVkIHJhdGUsIG9yXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jLTU4OS1cdFx0ICogd2hlbiBubyBzdGEgaXMgZ2l2ZW4sIG9yIHdpdGggb2xkZXIgZmlybXdhcmUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE2OjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3Nzk1CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgYGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlYCoqCgpSaWdodCwgc28gYGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlYCDigJMgdGhhdCByaW5ncyBhIGJlbGwuIEl0JiMzOTtzIGluIGBtdm0vZGVidWdmcy5jYCwgd2hpY2ggbGlrZWx5IG1lYW5zIGl0JiMzOTtzIHBhcnQgb2YgdGhlIGRlYnVnIGZpbGUgc3lzdGVtIGludGVyZmFjZSBmb3IgdGhlIEludGVsIFdpcmVsZXNzIGRyaXZlci4gT2theSwgbGV0JiMzOTtzIHB1bGwgdXAgdGhhdCBmdW5jdGlvbiBhbmQgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24uIFRoaXMgaXMgcHJvYmFibHkgd2hlcmUgdGhleSYjMzk7dmUgaG9va2VkIHVwIGEgd2F5IHRvIGluamVjdCBjcmFmdGVkIHBhY2tldHMgaW50byB0aGUgd2lyZWxlc3MgbmV0d29yayBzdGFjayBmb3IgdGVzdGluZyBvciBkZWJ1Z2dpbmcuIEkmIzM5O20gZ3Vlc3NpbmcgaXQmIzM5O3MgYSBjcml0aWNhbCBwaWVjZSBmb3IgZnV6emluZywgcHJvdG9jb2wgYW5hbHlzaXMsIG9yIHBlcmhhcHMgZXZlbiBsb3ctbGV2ZWwgZHJpdmVyIHZhbGlkYXRpb24uIFRpbWUgdG8gZGlnIGluIGFuZCBzZWUgZXhhY3RseSAqaG93KiBpdCYjMzk7cyB3b3JraW5nLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLCBtaXN1c2Ugc2NlbmFyaW9zLCBhbmQsIG9mIGNvdXJzZSwgYW55IGNsZXZlciB0cmlja3MgdGhleSYjMzk7dmUgZW1wbG95ZWQgaW4gdGhlIGltcGxlbWVudGF0aW9uLiBLbm93aW5nIGhvdyB0aGlzIGZ1bmN0aW9uIGJlaGF2ZXMgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgYW5kIHBvdGVudGlhbGx5IGV4cGxvaXRpbmcgbG93LWxldmVsIGFzcGVjdHMgb2YgdGhpcyBkcml2ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE2OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2l3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jPTQ2MT1NTERfREVCVUdGU19SRUFEX0ZJTEVfT1BTKHdpZmlfNmVfZW5hYmxlLCA2NCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNDYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjQ2MzpzdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZShzdHJ1Y3QgaXdsX21sZCAqbWxkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTQ2NC1cdFx0XHRcdFx0ICAgICBjaGFyICpidWYsIHNpemVfdCBjb3VudClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM9MTIxND1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5kaXJlY3Rpb25fdGJsX3dyaXRlKHN0cnVjdCBpd2xfbXZtICptdm0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTEyNjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM6MTI2MTpzdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZShzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTEyNjItXHRcdFx0XHRcdCAgICAgY2hhciAqYnVmLCBzaXplX3QgY291bnQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE2OjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NDUwCgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkRpdmluZyBpbnRvIHRoZSBQYWNrZXQgSW5qZWN0aW9uIEZ1bmN0aW9uKioKCkFscmlnaHQsIHRpbWUgdG8gZGlzc2VjdCB0aGlzIGBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZWAgZnVuY3Rpb24uIExldCYjMzk7cyBwdWxsIHVwIHRoZSBzb3VyY2UgY29kZSBmb3IgaXQsIGxvY2F0ZWQgaW4gYG12bS9kZWJ1Z2ZzLmNgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBkZWJ1Z2ZzIGludGVyZmFjZSBoYW5kbGVzIGluamVjdGVkIHBhY2tldHMuIFByb2JhYmx5IGRlYWxpbmcgd2l0aCBwYWNrZXQgY29uc3RydWN0aW9uLCBzZXR0aW5nIHVwIGhlYWRlcnMsIGFuZCB0aGVuIGhhbmRpbmcgaXQgb2ZmIHRvIHRoZSBoYXJkd2FyZSBmb3IgdHJhbnNtaXNzaW9uLiBJJiMzOTttIGN1cmlvdXMgYWJvdXQgdGhlIHNwZWNpZmljIGludGVyYWN0aW9uIHdpdGggdGhlIGZpcm13YXJlLiBBcmUgd2UgdGFsa2luZyBhYm91dCBkaXJlY3QgTU1JTywgb3IgaXMgdGhlcmUgc29tZSBpbnRlcm1lZGlhdGUgcHJvY2Vzc2luZyBpbnZvbHZlZCBiZWZvcmUgaXQgZ2V0cyBzZW50IGRvd24/IEFsc28sIEkgd29uZGVyIGFib3V0IHRoZSBwb3RlbnRpYWwgc2VjdXJpdHkgaW1wbGljYXRpb25zIGhlcmU7IGhvdyByb2J1c3QgaXMgdGhlIGlucHV0IHZhbGlkYXRpb24/IEkmIzM5O2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCBhbnkgYm91bmRzIGNoZWNrcyBvciBzYW5pdHkgY2hlY2tzIG9uIHRoZSBkYXRhIGJlaW5nIHdyaXR0ZW4uIEFsd2F5cyBnb29kIHRvIGRvdWJsZS1jaGVjayB0aG9zZS4gSSBhbHNvIG5lZWQgdG8gc2VlIHdoZXJlIGl0IHNpdHMgaW4gcmVsYXRpb24gdG8gdGhlIG1haW4gZHJpdmVyIGV4ZWN1dGlvbiBwYXRoLCBhbmQgaWYgaXQgY291bGQgcG90ZW50aWFsbHkgcmFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTY6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMjYxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEyNjE6XHRzdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZShzdHJ1Y3QgaXdsX212bSAqbXZtLFxuMTI2MjpcdFx0XHRcdFx0XHQgICAgIGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxuMTI2MzpcdFx0XHRcdFx0XHQgICAgIGxvZmZfdCAqcHBvcylcbjEyNjQ6XHR7XG4xMjY1Olx0XHRzdHJ1Y3QgaXdsX29wX21vZGUgKm9wbW9kZSA9IGNvbnRhaW5lcl9vZigodm9pZCAqKW12bSxcbjEyNjY6XHRcdFx0XHRcdFx0XHQgIHN0cnVjdCBpd2xfb3BfbW9kZSxcbjEyNjc6XHRcdFx0XHRcdFx0XHQgIG9wX21vZGVfc3BlY2lmaWMpO1xuMTI2ODpcdFx0c3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyIHJ4YiA9IHtcbjEyNjk6XHRcdFx0Ll9yeF9wYWdlX29yZGVyID0gMCxcbjEyNzA6XHRcdFx0LnRydWVzaXplID0gMCwgLyogbm90IHVzZWQgKi9cbjEyNzE6XHRcdFx0Ll9vZmZzZXQgPSAwLFxuMTI3MjpcdFx0fTtcbjEyNzM6XHRcdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3Q7XG4xMjc0Olx0XHRpbnQgYmluX2xlbiA9IGNvdW50IC8gMjtcbjEyNzU6XHRcdGludCByZXQgPSAtRUlOVkFMO1xuMTI3NjpcdFxuMTI3NzpcdFx0aWYgKCFpd2xfbXZtX2Zpcm13YXJlX3J1bm5pbmcobXZtKSlcbjEyNzg6XHRcdFx0cmV0dXJuIC1FSU87XG4xMjc5Olx0XG4xMjgwOlx0XHQvKiBzdXBwb3J0aW5nIG9ubHkgTVEgUlggKi9cbjEyODE6XHRcdGlmICghbXZtLVx1MDAzZXRyYW5zLVx1MDAzZW1hY19jZmctXHUwMDNlbXFfcnhfc3VwcG9ydGVkKVxuMTI4MjpcdFx0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4xMjgzOlx0XG4xMjg0Olx0XHRyeGIuX3BhZ2UgPSBhbGxvY19wYWdlcyhHRlBfQVRPTUlDLCAwKTtcbjEyODU6XHRcdGlmICghcnhiLl9wYWdlKVxuMTI4NjpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjEyODc6XHRcdHBrdCA9IHJ4Yl9hZGRyKFx1MDAyNnJ4Yik7XG4xMjg4Olx0XG4xMjg5Olx0XHRyZXQgPSBoZXgyYmluKHBhZ2VfYWRkcmVzcyhyeGIuX3BhZ2UpLCBidWYsIGJpbl9sZW4pO1xuMTI5MDpcdFx0aWYgKHJldClcbjEyOTE6XHRcdFx0Z290byBvdXQ7XG4xMjkyOlx0XG4xMjkzOlx0XHQvKiBhdm9pZCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgYW5kIG1hbGZvcm1lZCBwYWNrZXQgKi9cbjEyOTQ6XHRcdGlmIChiaW5fbGVuIFx1MDAzYyBzaXplb2YoKnBrdCkgfHxcbjEyOTU6XHRcdCAgICBiaW5fbGVuICE9IHNpemVvZigqcGt0KSAmIzQzOyBpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkpXG4xMjk2Olx0XHRcdGdvdG8gb3V0O1xuMTI5NzpcdFxuMTI5ODpcdFx0bG9jYWxfYmhfZGlzYWJsZSgpO1xuMTI5OTpcdFx0aXdsX212bV9yeF9tcShvcG1vZGUsIE5VTEwsIFx1MDAyNnJ4Yik7XG4xMzAwOlx0XHRsb2NhbF9iaF9lbmFibGUoKTtcbjEzMDE6XHRcdHJldCA9IDA7XG4xMzAyOlx0XG4xMzAzOlx0b3V0OlxuMTMwNDpcdFx0aXdsX2ZyZWVfcnhiKFx1MDAyNnJ4Yik7XG4xMzA1Olx0XG4xMzA2Olx0XHRyZXR1cm4gcmV0ID86IGNvdW50O1xuMTMwNzpcdH1cbjEzMDg6XHRcbjEzMDk6XHRzdGF0aWMgaW50IF9pd2xfZGJnZnNfaW5qZWN0X2JlYWNvbl9pZShzdHJ1Y3QgaXdsX212bSAqbXZtLCBjaGFyICpiaW4sIGludCBsZW4pXG4xMzEwOlx0e1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNjo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+NW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzOTUwNAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDYyOTExCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzowNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3N5el9wY2kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzowNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDI0NTQKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxNjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgSXdsd2lmaSBQcm9iZSBpbiBTeXprYWxsZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGludG8gaG93IGBpd2x3aWZpYCBnZXRzIHByb2JlZCB3aXRoaW4gdGhlIHN5emthbGxlciBlbnZpcm9ubWVudC4gSSBrbm93IHRoYXQgYHN5emthbGxlcmAgaXRzZWxmIGRvZXNuJiMzOTt0IG9mZmVyIGEgZGlyZWN0IGBzeXpfcGNpYCBjYWxsLCB3aGljaCBpcyBteSBzdGFydGluZyBwb2ludC4gQnV0IEkgd2FzIGJyaWVmbHkgdGhyb3duIG9mZiwgY29uc2lkZXJpbmcgdGhlIHBvdGVudGlhbCBpbnRlcmFjdGlvbiBiZXR3ZWVuIGBpd2x3aWZpYCBhbmQgYG1hYzgwMjExX2h3c2ltYC4gTm8sIGhhbmcgb24sIHRob3NlIGFyZSBzZXBhcmF0ZS4KClRoZW4gSSByZWNhbGxlZCBgc3l6a2FsbGVyYCBoYXMgYSBjYWxsLCBgc3l6XzgwMjExX2luamVjdF9mcmFtZWAsIHdoaWNoIGlzIHVzZWQgdG8gaW5qZWN0IGZyYW1lcyBpbnRvIGBtYWM4MDIxMWAuIFRoYXQgZ2V0cyBtZSB0aGlua2luZy4uLiBIb3cgKmRvZXMqIGBpd2x3aWZpYCBnZXQgcHJvYmVkIGluIHRoZSBzeXprYWxsZXIgY29udGV4dD8gSXMgaXQgdXNpbmcgYSBkdW1teSBQQ0kgZGV2aWNlPyBUaGF0IHNlZW1zIHBsYXVzaWJsZS4KCkFoLCB3YWl0LiBOb3cgSSByZW1lbWJlciBzZWVpbmcgYENPTkZJR19JV0xXSUZJX0tVTklUX1RFU1RTYCBpbiB0aGUgY29uZmlndXJhdGlvbi4gVGhhdCBjb3VsZCBiZSBhIHZpdGFsIGNsdWUuIE5vdyBJIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGVyZSYjMzk7cyBhIHRlc3QgbW9kdWxlIHByZXNlbnQgdGhhdCBhY3R1YWxseSBwcm9iZXMgYGl3bHdpZmlgLiBUaGF0IHNlZW1zIHRoZSBtb3N0IGxvZ2ljYWwgcGF0aCBmb3IgaW52ZXN0aWdhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpd2x3aWZpJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7dG9vbHMvdGVzdGluZy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzowNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDI5MDMKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA1NDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYGl3bHdpZmlgIGZvciBGdXp6aW5nKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgc3l6a2FsbGVyIGlzIHJlYWNoaW5nIGBpd2x3aWZpYC4gSXQgaGFzIGBzeXpfdXNiX2Nvbm5lY3RgIGFuZCBgc3l6X3ZoY2lgIGZvciBVU0IsIGJ1dCB0aGF0IGRvZXNuJiMzOTt0IGltbWVkaWF0ZWx5IHN1Z2dlc3QgYGl3bHdpZmlgLiBDb3VsZCBpdCBiZSB1c2luZyBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5X2lkYD8gT3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBmYWN0IHRoYXQgc3l6a2FsbGVyICpkaWQqIGZpbmQgYnVncyBpbiBgaXdsd2lmaWAgc3VnZ2VzdHMgdGhhdCBpdCAqaXMqIHJlYWNoYWJsZSBzb21laG93LgoKUmlnaHQsIGJhY2sgdG8gdGhlIGBXb3J0aEZ1enppbmdgIGNyaXRlcmlhLiBTcGVjaWZpY2FsbHksIHRoZSAmIzM0O2ltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzJiMzNDsgY2xhdXNlLiBJZiBgaXdsd2lmaWAgaXMgdW5yZWFjaGFibGUgaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSwgdGhlbiBpdCYjMzk7cyBub3Qgd29ydGggZnV6emluZywgYWNjb3JkaW5nIHRvIHRoZSBjcml0ZXJpYS4gU28sIGlzIGl0IHJlYWNoYWJsZSBpbiBRRU1VPyBObywgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIEludGVsIFdpLUZpIGNhcmRzLCBhbmQgY2VydGFpbmx5IGRvZXNuJiMzOTt0IGVtdWxhdGUgdGhlIGBpd2x3aWZpYCBkcml2ZXIuIFdhaXQsIGRvZXMgUUVNVSBldmVuIGhhdmUgYW55dGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgPyBJIHNlYXJjaGVkIGZvciBgc3l6X3BjaWAgYW5kIGdvdCBubyBtYXRjaGVzLiBIbW1tLgoKUGVyaGFwcyBgc3l6X2t2bV9zZXR1cF9jcHVgIGlzIHJlbGV2YW50PyBBY3R1YWxseSwgc3l6a2FsbGVyIGhhcyBgc3l6XzgwMjExX2luamVjdF9mcmFtZWAgYW5kIGBzeXpfODAyMTFfam9pbl9pYnNzYCEgVGhpcyBpcyBpbnRlcmVzdGluZy4uLiBob3cgZGlkIHN5emthbGxlciBkaXNjb3ZlciBidWdzIGluIGBpd2x3aWZpYCBpZiBpdCYjMzk7cyBub3QgZW11bGF0ZWQ/IE1heWJlIGl0IHJ1bnMgb24gcmVhbCBoYXJkd2FyZT8gVGhlIHByb21wdCBzdGlwdWxhdGVzIHRoYXQgcGF0Y2hlcyBjb250YWluaW5nIGNvZGUgcGF0aHMgdW5yZWFjaGFibGUgaW4gUUVNVSBzaG91bGQgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJZiBzeXprYWxsZXIgaXMgcnVubmluZyBvbiByZWFsIGhhcmR3YXJlLCBpdCBjYW4gcmVhY2ggaXQuCgpCdXQuLi4gdGhlIGtleSBwb2ludCBpcyAmIzM0O2ltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzJiMzNDsuIElmIGBpd2x3aWZpYCBpcyBub3QgcmVhY2hhYmxlIGluIFFFTVUgKGFuZCBpdCBpcyBub3QpLCB0aGVuIEkgbXVzdCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIElzIGBpd2x3aWZpYCBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIFFFTVU/IFllcywgZGVmaW5pdGl2ZWx5LiBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgdGhlIGhhcmR3YXJlLiBJcyB0aGVyZSBhIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBgaXdsd2lmaWA/IExldCBtZSBjaGVjayB0aGUga2VybmVsLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjA1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2l3bHdpZmkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDE1NDggbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL0tjb25maWc9MTY9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL0tjb25maWc6MTc6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvS2NvbmZpZy0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9NYWtlZmlsZT01PW9iai0kKENPTkZJR19JV0xFR0FDWSlcdCYjNDM7PSBpd2xlZ2FjeS9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL01ha2VmaWxlLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19JV0xXSUZJKVx0JiM0Mzs9IGl3bHdpZmkvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19JV0xNRUkpXHQmIzQzOz0gaXdsd2lmaS9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1Lmg9MjQ9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbF9vcHMgaWwzOTQ1X29wcztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LmgtMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1Lmg6MzI6I2RlZmluZSBJTDM5NDVfRldfUFJFXHRcJiMzNDtpd2x3aWZpLTM5NDUtXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LmgtMzMtI2RlZmluZSBfSUwzOTQ1X01PRFVMRV9GSVJNV0FSRShhcGkpIElMMzk0NV9GV19QUkUgI2FwaSBcJiMzNDsudWNvZGVcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1Lmg9MTg0PXZvaWQgaWwzOTQ1X2R1bXBfbmljX2Vycm9yX2xvZyhzdHJ1Y3QgaWxfcHJpdiAqaWwpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUuaC0xOTQtICogTmFtaW5nIGNvbnZlbnRpb24gLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUuaDoxOTU6ICogaWwzOTQ1XyAgICAgICAgIFx1MDAzYy0tIEl0cyBwYXJ0IG9mIGl3bHdpZmkgKHNob3VsZCBiZSBjaGFuZ2VkIHRvIGlsMzk0NV8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LmgtMTk2LSAqIGlsMzk0NV9od18gICAgICBcdTAwM2MtLSBIYXJkd2FyZSBzcGVjaWZpYyAoaW1wbGVtZW50ZWQgaW4gaXdsLVhYWFguYyBieSBhbGwgSFcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS5jPTI1Mz1zdGF0aWMgaW50IGlsNDk2NV9od19nZXRfdGVtcGVyYXR1cmUoc3RydWN0IGlsX3ByaXYgKmlsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1LmMtMjYwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS5jOjI2MTojZGVmaW5lIElMNDk2NV9GV19QUkUgXCYjMzQ7aXdsd2lmaS00OTY1LVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvNDk2NS5jLTI2Mi0jZGVmaW5lIF9JTDQ5NjVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSUw0OTY1X0ZXX1BSRSAjYXBpIFwmIzM0Oy51Y29kZVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5L2NvbW1vbi5oPTgxOD1zdHJ1Y3QgaWxfaHdfcGFyYW1zIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS9jb21tb24uaC04NTEtICogTmFtaW5nIGNvbnZlbnRpb24gLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5L2NvbW1vbi5oOjg1MjogKiBpbF8gICAgICAgICBcdTAwM2MtLSBJcyBwYXJ0IG9mIGl3bHdpZmlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5L2NvbW1vbi5oLTg1My0gKiBpd2xYWFhYXyAgICAgXHUwMDNjLS0gSGFyZHdhcmUgc3BlY2lmaWMgKGltcGxlbWVudGVkIGluIGl3bC1YWFhYLmMgZm9yIFhYWFgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTI9Y29uZmlnIElXTFdJRklcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzozOlx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgV2lyZWxlc3MgV2lGaSBOZXh0IEdlbiBBR04gLSBXaXJlbGVzcy1OL0FkdmFuY2VkLU4vVWx0aW1hdGUtTiAoaXdsd2lmaSkgXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNC1cdGRlcGVuZHMgb24gUENJIFx1MDAyNlx1MDAyNiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IENGRzgwMjExXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjM1Olx0ICAgICAgICAgIFx1MDAzY2h0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL0RyaXZlcnMvaXdsd2lmaVx1MDAzZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0zNi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNDQtXHQgIHNheSBNIGhlcmUgYW5kIHJlYWQgXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL2tidWlsZC9tb2R1bGVzLnJzdFx1MDAzZS4gIFRoZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjQ1Olx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaXdsd2lmaS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy00Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NDk9Y29uZmlnIElXTFdJRklfS1VOSVRfVEVTVFNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNTMtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NTQ6XHQgIEVuYWJsZSB0aGlzIG9wdGlvbiBmb3IgaXdsd2lmaSBrdW5pdCB0ZXN0cy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NjY9Y29uZmlnIElXTERWTVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy03MS1cdCAgb2YgdGhlIGRldmljZXMgdGhhdCB1c2UgdGhpcyBmaXJtd2FyZSBpcyBhdmFpbGFibGUgaGVyZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo3MjpcdCAgaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvZHJpdmVycy9pd2x3aWZpI2Zpcm13YXJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NzQ9Y29uZmlnIElXTE1WTVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy04MS1cdCAgb2YgdGhlIGRldmljZXMgdGhhdCB1c2UgdGhpcyBmaXJtd2FyZSBpcyBhdmFpbGFibGUgaGVyZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo4MjpcdCAgaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvZHJpdmVycy9pd2x3aWZpI2Zpcm13YXJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9ODQ9Y29uZmlnIElXTE1MRFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy05MS1cdCAgVGhlIGxpc3Qgb2YgdGhlIGRldmljZXMgdGhhdCB1c2UgdGhpcyBmaXJtd2FyZSBpcyBhdmFpbGFibGUgaGVyZTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo5MjpcdCAgaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvZHJpdmVycy9pd2x3aWZpI2Zpcm13YXJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctOTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTk1PWNvbmZpZyBJV0xXSUZJX09QTU9ERV9NT0RVTEFSXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMDI6Y29tbWVudCBcJiMzNDtXQVJOSU5HOiBpd2x3aWZpIGlzIHVzZWxlc3Mgd2l0aG91dCBJV0xEVk0gb3IgSVdMTVZNIG9yIElXTE1MRFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwMy1cdGRlcGVuZHMgb24gSVdMRFZNPW4gXHUwMDI2XHUwMDI2IElXTE1WTT1uIFx1MDAyNlx1MDAyNiBJV0xNTEQ9blxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0xMDc9Y29uZmlnIElXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMDg6XHRib29sIFwmIzM0O0VuYWJsZSBmdWxsIGRlYnVnZ2luZyBvdXRwdXQgaW4gdGhlIGl3bHdpZmkgZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTA5LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjExMDpcdCAgVGhpcyBvcHRpb24gd2lsbCBlbmFibGUgZGVidWcgdHJhY2luZyBvdXRwdXQgZm9yIHRoZSBpd2x3aWZpIGRyaXZlcnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMTEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMTY6XHRcdC9zeXMvbW9kdWxlL2l3bHdpZmkvcGFyYW1ldGVycy9kZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEyMjpcdFx0ICAlIGVjaG8gMHg0M2ZmZiBcdTAwM2UgL3N5cy9tb2R1bGUvaXdsd2lmaS9wYXJhbWV0ZXJzL2RlYnVnXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyNC1cdCAgWW91IGNhbiBmaW5kIHRoZSBsaXN0IG9mIGRlYnVnIG1hc2sgdmFsdWVzIGluOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEyNTpcdFx0ICBkcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1kZWJ1Zy5oXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTI2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0xMzE9Y29uZmlnIElXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzMjpcdGJvb2wgXCYjMzQ7aXdsd2lmaSBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzMtXHRkZXBlbmRzIG9uIE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzQtXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTM1Olx0ICBFbmFibGUgY3JlYXRpb24gb2YgZGVidWdmcyBmaWxlcyBmb3IgdGhlIGl3bHdpZmkgZHJpdmVycy4gVGhpc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzNi1cdCAgaXMgYSBsb3ctaW1wYWN0IG9wdGlvbiB0aGF0IGFsbG93cyBnZXR0aW5nIGluc2lnaHQgaW50byB0aGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTM5PWNvbmZpZyBJV0xXSUZJX0RFVklDRV9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTQwOlx0Ym9vbCBcJiMzNDtpd2x3aWZpIGRldmljZSBhY2Nlc3MgdHJhY2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0MS1cdGRlcGVuZHMgb24gRVZFTlRfVFJBQ0lOR1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xNDQtXHQgIFNheSBZIGhlcmUgdG8gdHJhY2UgYWxsIGNvbW1hbmRzLCBpbmNsdWRpbmcgVFggZnJhbWVzIGFuZCBJT1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjE0NTpcdCAgYWNjZXNzZXMsIHNlbnQgdG8gdGhlIGRldmljZS4gSWYgeW91IHNheSB5ZXMsIGl3bHdpZmkgd2lsbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0Ni1cdCAgcmVnaXN0ZXIgd2l0aCB0aGUgZnRyYWNlIGZyYW1ld29yayBmb3IgZXZlbnQgdHJhY2luZyBhbmQgZHVtcFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMi0jIGNvbW1vblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozOm9iai0kKENPTkZJR19JV0xXSUZJKVx0JiM0Mzs9IGl3bHdpZmkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLWlvLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1kcnYub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo2Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLWRlYnVnLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Nzppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1udm0tdXRpbHMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo4Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLXV0aWxzLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6OTppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1waHktZGIubyBpd2wtbnZtLXBhcnNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTExLSMgQnVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjEyOml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gcGNpZS9jdHh0LWluZm8ubyBwY2llL2N0eHQtaW5mby12Mi5vIHBjaWUvZHJ2Lm8gcGNpZS91dGlscy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjEzOml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gcGNpZS9nZW4xXzIvcngubyBwY2llL2dlbjFfMi90eC5vIHBjaWUvZ2VuMV8yL3RyYW5zLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTQ6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBwY2llL2dlbjFfMi90cmFucy1nZW4yLm8gcGNpZS9nZW4xXzIvdHgtZ2VuMi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZT0xNj1DRkxBR1NfcGNpZS9kcnYubyAmIzQzOz0gLVduby1vdmVycmlkZS1pbml0XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xOC0jIGNvbWJpbmVkIE1BQy9SRiBjb25maWd1cmF0aW9uc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxOTppd2x3aWZpLSQoQ09ORklHX0lXTERWTSkgJiM0Mzs9IGNmZy8xMDAwLm8gY2ZnLzIwMDAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyMDppd2x3aWZpLSQoQ09ORklHX0lXTERWTSkgJiM0Mzs9IGNmZy81MDAwLm8gY2ZnLzYwMDAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyMTppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy83MDAwLm8gY2ZnLzgwMDAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yMi0jIE1BQyBjb25maWd1cmF0aW9uc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyMzppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy85MDAwLm8gY2ZnLzIyMDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjQ6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvYXgyMTAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNTppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy9iei5vIGNmZy9zYy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI2Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gY2ZnL2J6Lm8gY2ZnL3NjLm8gY2ZnL2RyLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMjctIyBSRiBjb25maWd1cmF0aW9uc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyODppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy9yZi1qZi5vIGNmZy9yZi1oci5vIGNmZy9yZi1nZi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI5Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gY2ZnL3JmLWZtLm8gY2ZnL3JmLXdoLm8gY2ZnL3JmLXBlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjMxOml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLWRiZy10bHYub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozMjppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC10cmFucy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNDppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGZ3L2ltZy5vIGZ3L25vdGlmLXdhaXQubyBmdy9ycy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM1Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gZncvZGJnLm8gZncvZGJnLW9sZC5vIGZ3L3Budm0ubyBmdy9kdW1wLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzY6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBmdy9yZWd1bGF0b3J5Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzc6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBmdy9wYWdpbmcubyBmdy9zbWVtLm8gZncvaW5pdC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM4Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gZncvc21lbS5vIGZ3L2luaXQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozOTppd2x3aWZpLSQoQ09ORklHX0FDUEkpICYjNDM7PSBmdy9hY3BpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDA6aXdsd2lmaS0kKENPTkZJR19FRkkpXHQmIzQzOz0gZncvdWVmaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQxOml3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSAmIzQzOz0gZncvZGVidWdmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0Mzppd2x3aWZpLW9ianMgJiM0Mzs9ICQoaXdsd2lmaS1tKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDU6aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKSAmIzQzOz0gaXdsLWRldnRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jLTI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jOjI1OiNkZWZpbmUgSVdMMTAwMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS0xMDAwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjYtI2RlZmluZSBJV0wxMDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDEwMDBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYy0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYzoyODojZGVmaW5lIElXTDEwMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS0xMDBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYy0yOS0jZGVmaW5lIElXTDEwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wxMDBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6MzE6I2RlZmluZSBJV0wyMDMwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTIwMzBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zMi0jZGVmaW5lIElXTDIwMzBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMjAzMF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jOjM0OiNkZWZpbmUgSVdMMjAwMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS0yMDAwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzUtI2RlZmluZSBJV0wyMDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDIwMDBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYzozNzojZGVmaW5lIElXTDEwNV9GV19QUkUgXCYjMzQ7aXdsd2lmaS0xMDVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zOC0jZGVmaW5lIElXTDEwNV9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wxMDVfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYzo0MDojZGVmaW5lIElXTDEzNV9GV19QUkUgXCYjMzQ7aXdsd2lmaS0xMzVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy00MS0jZGVmaW5lIElXTDEzNV9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wxMzVfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoxODojZGVmaW5lIElXTF9DQ19BX0ZXX1BSRVx0XHRcdFwmIzM0O2l3bHdpZmktY2MtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmM6MTk6I2RlZmluZSBJV0xfUVVfQl9IUl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLVF1LWIwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jOjIwOiNkZWZpbmUgSVdMX1FVX0NfSFJfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1RdS1jMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoyMTojZGVmaW5lIElXTF9RVVpfQV9IUl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLVF1Wi1hMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYy0yMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmMtMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmM6Mjc6I2RlZmluZSBJV0w1MDAwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTUwMDBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0yOC0jZGVmaW5lIElXTDUwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNTAwMF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jLTI5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jOjMwOiNkZWZpbmUgSVdMNTE1MF9GV19QUkUgXCYjMzQ7aXdsd2lmaS01MTUwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmMtMzEtI2RlZmluZSBJV0w1MTUwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDUxNTBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDA6I2RlZmluZSBJV0w2MDAwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTYwMDBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00MS0jZGVmaW5lIElXTDYwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjAwMF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jOjQzOiNkZWZpbmUgSVdMNjA1MF9GV19QUkUgXCYjMzQ7aXdsd2lmaS02MDUwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDQtI2RlZmluZSBJV0w2MDUwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDYwNTBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYzo0NjojZGVmaW5lIElXTDYwMDVfRldfUFJFIFwmIzM0O2l3bHdpZmktNjAwMGcyYVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ3LSNkZWZpbmUgSVdMNjAwNV9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w2MDA1X0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDk6I2RlZmluZSBJV0w2MDMwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTYwMDBnMmJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy01MC0jZGVmaW5lIElXTDYwMzBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjAzMF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy0zNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzozNzojZGVmaW5lIElXTDcyNjBfRldfUFJFIFwmIzM0O2l3bHdpZmktNzI2MFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTM4LSNkZWZpbmUgSVdMNzI2MF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w3MjYwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtMzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6NDA6I2RlZmluZSBJV0wzMTYwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTMxNjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00MS0jZGVmaW5lIElXTDMxNjBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMzE2MF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQzOiNkZWZpbmUgSVdMMzE2OF9GV19QUkUgXCYjMzQ7aXdsd2lmaS0zMTY4XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDQtI2RlZmluZSBJV0wzMTY4X01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDMxNjhfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzo0NjojZGVmaW5lIElXTDcyNjVfRldfUFJFIFwmIzM0O2l3bHdpZmktNzI2NVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQ3LSNkZWZpbmUgSVdMNzI2NV9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w3MjY1X0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6NDk6I2RlZmluZSBJV0w3MjY1RF9GV19QUkUgXCYjMzQ7aXdsd2lmaS03MjY1RFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTUwLSNkZWZpbmUgSVdMNzI2NURfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNzI2NURfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmMtMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmM6MzA6I2RlZmluZSBJV0w4MDAwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTgwMDBDXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmMtMzEtI2RlZmluZSBJV0w4MDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jOjM0OiNkZWZpbmUgSVdMODI2NV9GV19QUkUgXCYjMzQ7aXdsd2lmaS04MjY1XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmMtMzUtI2RlZmluZSBJV0w4MjY1X01PRFVMRV9GSVJNV0FSRShhcGkpIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jLTIxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jOjIyOiNkZWZpbmUgIElXTDkwMDBfRldfUFJFIFwmIzM0O2l3bHdpZmktOTAwMC1wdS1iMC1qZi1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jOjIzOiNkZWZpbmUgIElXTDkyNjBfRldfUFJFIFwmIzM0O2l3bHdpZmktOTI2MC10aC1iMC1qZi1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jLTI0LSNkZWZpbmUgSVdMOTAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmMtMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjE4OiNkZWZpbmUgSVdMX1NPX0FfR0ZfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zby1hMC1nZi1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoxOTojZGVmaW5lIElXTF9UWV9BX0dGX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktdHktYTAtZ2YtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjA6I2RlZmluZSBJV0xfTUFfQV9HRl9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLW1hLWEwLWdmLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjIxOiNkZWZpbmUgSVdMX01BX0JfR0ZfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1tYS1iMC1nZi1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyMjojZGVmaW5lIElXTF9TT19BX0dGNF9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNvLWEwLWdmNC1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyMzojZGVmaW5lIElXTF9NQV9BX0dGNF9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLW1hLWEwLWdmNC1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyNDojZGVmaW5lIElXTF9NQV9CX0dGNF9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLW1hLWIwLWdmNC1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyNTojZGVmaW5lIElXTF9TT19BX0hSX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc28tYTAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjY6I2RlZmluZSBJV0xfTUFfQV9IUl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLW1hLWEwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI3OiNkZWZpbmUgSVdMX01BX0JfSFJfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1tYS1iMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYy0yOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoxODojZGVmaW5lIElXTF9CWl9BX0ZNX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktYnotYTAtZm0tYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MTk6I2RlZmluZSBJV0xfQlpfQV9GTV9DX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWJ6LWEwLWZtLWMwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jOjIwOiNkZWZpbmUgSVdMX0JaX0FfRk00X0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktYnotYTAtZm00LWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jOjIxOiNkZWZpbmUgSVdMX0dMX0JfRk1fQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1nbC1iMC1mbS1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoyMjojZGVmaW5lIElXTF9HTF9DX0ZNX0NfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktZ2wtYzAtZm0tYzBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmMtMjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvZHIuYy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2RyLmM6MTc6I2RlZmluZSBJV0xfRFJfQV9QRV9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWRyLWEwLXBlLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9kci5jLTE4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jOjE0OiNkZWZpbmUgSVdMX0JaX0FfR0ZfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1iei1hMC1nZi1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNTojZGVmaW5lIElXTF9CWl9BX0dGNF9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWJ6LWEwLWdmNC1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNjojZGVmaW5lIElXTF9TQ19BX0dGX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MtYTAtZ2YtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmM6MTc6I2RlZmluZSBJV0xfU0NfQV9HRjRfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYy1hMC1nZjQtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmMtMTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtaHIuYy0xMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTQ6I2RlZmluZSBJV0xfQlpfQV9IUl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWJ6LWEwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jOjE1OiNkZWZpbmUgSVdMX1NDX0FfSFJfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYy1hMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtaHIuYzoxNjojZGVmaW5lIElXTF9TQ19BX0hSX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MtYTAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmMtMTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYy0xMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTQ6I2RlZmluZSBJV0xfUVVfQl9KRl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLVF1LWIwLWpmLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jOjE1OiNkZWZpbmUgSVdMX1FVX0NfSkZfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1RdS1jMC1qZi1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYzoxNjojZGVmaW5lIElXTF9RVVpfQV9KRl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLVF1Wi1hMC1qZi1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYzoxNzojZGVmaW5lIElXTF9TT19BX0pGX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc28tYTAtamYtYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmMtMTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYy0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MTg6I2RlZmluZSBJV0xfU0NfQV9GTV9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjLWEwLWZtLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jOjE5OiNkZWZpbmUgSVdMX1NDX0FfRk1fQ19GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYy1hMC1mbS1jMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoyMDojZGVmaW5lIElXTF9TQ19BX1dIX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MtYTAtd2gtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MjE6I2RlZmluZSBJV0xfU0MyX0FfRk1fQ19GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYzItYTAtZm0tYzBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MjI6I2RlZmluZSBJV0xfU0MyX0FfV0hfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYzItYTAtd2gtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmMtMjMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIyNjI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2Z3X3Jlc3RhcnRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyNjYtXHRzdHJ1Y3QgaXdsX3ByaXYgKnByaXYgPSBmaWxlLVx1MDAzZXByaXZhdGVfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjY3Olx0Ym9vbCBmd19yZXN0YXJ0ID0gaXdsd2lmaV9tb2RfcGFyYW1zLmZ3X3Jlc3RhcnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI2OC1cdGludCBfX21heWJlX3VudXNlZCByZXQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjcwOlx0aXdsd2lmaV9tb2RfcGFyYW1zLmZ3X3Jlc3RhcnQgPSB0cnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyNzEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjI3OTpcdGl3bHdpZmlfbW9kX3BhcmFtcy5md19yZXN0YXJ0ID0gZndfcmVzdGFydDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjgwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzEzPXZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzODE6XHRcdGRlYnVnZnNfY3JlYXRlX3N5bWxpbmsoXCYjMzQ7aXdsd2lmaVwmIzM0OywgbWFjODAyMTFfZGlyLCBidWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzODItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg9MjEwPXN0cnVjdCBpd2xfc2Vuc2l0aXZpdHlfcmFuZ2VzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC0yNDQtICogTmFtaW5nIGNvbnZlbnRpb24gLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oOjI0NTogKiBpd2xfICAgICAgICAgXHUwMDNjLS0gSXMgcGFydCBvZiBpd2x3aWZpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC0yNDYtICogaXdsWFhYWF8gICAgIFx1MDAzYy0tIEhhcmR3YXJlIHNwZWNpZmljIChpbXBsZW1lbnRlZCBpbiBpd2wtWFhYWC5jIGZvciBYWFhYKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2VlcHJvbS5jPTEwNTk9aXdsX3BhcnNlX2VlcHJvbV9kYXRhKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLCBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyAqY2ZnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2VlcHJvbS5jLTExMTgtXHRkYXRhLVx1MDAzZXNrdV9jYXBfaXBhbl9lbmFibGUgPSBza3UgXHUwMDI2IEVFUFJPTV9TS1VfQ0FQX0lQQU5fRU5BQkxFO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZWVwcm9tLmM6MTExOTpcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMuZGlzYWJsZV8xMW4gXHUwMDI2IElXTF9ESVNBQkxFX0hUX0FMTClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2VlcHJvbS5jLTExMjAtXHRcdGRhdGEtXHUwMDNlc2t1X2NhcF8xMW5fZW5hYmxlID0gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmM9MTU1PXZvaWQgaXdsX2xlZHNfaW5pdChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuYy0xNTYte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmM6MTU3Olx0aW50IG1vZGUgPSBpd2x3aWZpX21vZF9wYXJhbXMubGVkX21vZGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuYy0xNTgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jPTIwMT12b2lkIGl3bGFnbl9zZW5kX2FkdmFuY2VfYnRfY29uZmlnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYy0yNjItXHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jOjI2MzpcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLmJ0X2NvZXhfYWN0aXZlIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYy0yNjQtXHQgICAgcHJpdi1cdTAwM2Vpd19tb2RlID09IE5MODAyMTFfSUZUWVBFX0FESE9DKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM9MTAzND1pbnQgaXdsYWduX3N1c3BlbmQoc3RydWN0IGl3bF9wcml2ICpwcml2LCBzdHJ1Y3QgY2ZnODAyMTFfd293bGFuICp3b3dsYW4pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmMtMTEzNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jOjExMzY6XHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmMtMTEzNy1cdFx0LyogbWFyayBhbGwga2V5cyBjbGVhciAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9Nzg9aW50IGl3bGFnbl9tYWNfc2V0dXBfcmVnaXN0ZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTIxLVx0aWYgKHByaXYtXHUwMDNlZnctXHUwMDNldWNvZGVfY2FwYS5mbGFncyBcdTAwMjYgSVdMX1VDT0RFX1RMVl9GTEFHU19NRlAgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjEyMjpcdCAgICAhaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xMjMtXHRcdGllZWU4MDIxMV9od19zZXQoaHcsIE1GUF9DQVBBQkxFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE1Mi1cdFx0XHRcdFx0ICAgICBXSVBIWV9XT1dMQU5fUkZLSUxMX1JFTEVBU0U7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE1MzpcdFx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE1NC1cdFx0XHRwcml2LVx1MDAzZXdvd2xhbl9zdXBwb3J0LmZsYWdzIHw9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE2NzpcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMucG93ZXJfc2F2ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTY4LVx0XHRody1cdTAwM2V3aXBoeS1cdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX1BTX09OX0JZX0RFRkFVTFQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz0zMjU9c3RhdGljIHZvaWQgaXdsYWduX21hY19zZXRfcmVrZXlfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTMzMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MzMxOlx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMzMyLVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz01ODg9c3RhdGljIGludCBpd2xhZ25fbWFjX3NldF9rZXkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGVudW0gc2V0X2tleV9jbWQgY21kLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNjAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzo2MDE6XHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTYwMi1cdFx0SVdMX0RFQlVHX01BQzgwMjExKHByaXYsIFwmIzM0O2xlYXZlIC0gaHdjcnlwdG8gZGlzYWJsZWRcXG5cJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0zOTg9c3RhdGljIHZvaWQgaXdsX3ByaW50X2NvbnRfZXZlbnRfdHJhY2Uoc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIgYmFzZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDM0LVx0XHRpZiAobW9kZSA9PSAwKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6NDM1Olx0XHRcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX2NvbnRfZXZlbnQoXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDM2LVx0XHRcdFx0XHRwcml2LVx1MDAzZXRyYW5zLVx1MDAzZWRldiwgMCwgdGltZSwgZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00MzgtXHRcdFx0ZGF0YSA9IGl3bF9yZWFkMzIocHJpdi1cdTAwM2V0cmFucywgSEJVU19UQVJHX01FTV9SREFUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo0Mzk6XHRcdFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfY29udF9ldmVudChcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00NDAtXHRcdFx0XHRcdHByaXYtXHUwMDNldHJhbnMtXHUwMDNlZGV2LCB0aW1lLCBkYXRhLCBldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTQ0Nz1zdGF0aWMgdm9pZCBpd2xfY29udGludW91c19ldmVudF90cmFjZShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTUwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo1MDQ6XHRcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX3dyYXBfZXZlbnQocHJpdi1cdTAwM2V0cmFucy1cdTAwM2VkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNTA1LVx0XHRcdFx0bnVtX3dyYXBzIC0gcHJpdi1cdTAwM2VldmVudF9sb2cubnVtX3dyYXBzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz03Mzc9c3RhdGljIHZvaWQgaXdsX3NlbmRfYnRfY29uZmlnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNzQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjc0NjpcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLmJ0X2NvZXhfYWN0aXZlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTc0Ny1cdFx0YnRfY21kLmZsYWdzID0gQlRfQ09FWF9ESVNBQkxFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xMjMzPXN0YXRpYyBzdHJ1Y3QgaXdsX29wX21vZGUgKml3bF9vcF9tb2RlX2R2bV9zdGFydChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMyNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMzI1Olx0c3dpdGNoIChpd2x3aWZpX21vZF9wYXJhbXMuYW1zZHVfc2l6ZSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTEzMjYtXHRjYXNlIElXTF9BTVNEVV9ERUY6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTEzMzYtXHRcdHByX2VycihcJiMzNDtVbnN1cHBvcnRlZCBhbXNkdV9zaXplOiAlZFxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMzM3Olx0XHQgICAgICAgaXdsd2lmaV9tb2RfcGFyYW1zLmFtc2R1X3NpemUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTEzMzgtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTE2OTg9c3RhdGljIGludCBpd2xfcHJpbnRfZXZlbnRfbG9nKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyIHN0YXJ0X2lkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc0Ny1cdFx0XHR9IGVsc2Uge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE3NDg6XHRcdFx0XHR0cmFjZV9pd2x3aWZpX2Rldl91Y29kZV9ldmVudCh0cmFucy1cdTAwM2VkZXYsIDAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc0OS1cdFx0XHRcdFx0dGltZSwgZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xNzYxLVx0XHRcdFx0XHR0aW1lLCBkYXRhLCBldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTc2MjpcdFx0XHRcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX2V2ZW50KHRyYW5zLVx1MDAzZWRldiwgdGltZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xNzYzLVx0XHRcdFx0XHRkYXRhLCBldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTE5MTI9c3RhdGljIHZvaWQgaXdsYWduX2Z3X2Vycm9yKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgYm9vbCBvbmRlbWFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTk0NS1cdGlmICghdGVzdF9iaXQoU1RBVFVTX0VYSVRfUEVORElORywgXHUwMDI2cHJpdi1cdTAwM2VzdGF0dXMpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTk0NjpcdFx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5md19yZXN0YXJ0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTk0Ny1cdFx0XHRJV0xfREVCVUdfRlcocHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jPTI3MT1zdGF0aWMgdm9pZCBpd2xfcG93ZXJfYnVpbGRfY21kKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jLTMwMS1cdFx0YnV0IHdlIHBhc3MgMC00IGJlY2F1c2UgaXQgYWN0cyBhcyBhbiBhcnJheSBpbmRleC4gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM6MzAyOlx0XHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX2xldmVsIFx1MDAzZSBJV0xfUE9XRVJfSU5ERVhfMSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM6MzAzOlx0XHQgICAgaXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX2xldmVsIFx1MDAzYz0gSVdMX1BPV0VSX05VTSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmMtMzA0LVx0XHRcdGl3bF9zdGF0aWNfc2xlZXBfY21kKHByaXYsIGNtZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM6MzA1Olx0XHRcdFx0aXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX2xldmVsIC0gMSwgZHRpbXBlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jLTMwNi1cdFx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9NjA0PXN0YXRpYyB2b2lkIGl3bGFnbl9wYXNzX3BhY2tldF90b19tYWM4MDIxMShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy02MjMtXHQvKiBJbiBjYXNlIG9mIEhXIGFjY2VsZXJhdGVkIGNyeXB0byBhbmQgYmFkIGRlY3J5cHRpb24sIGRyb3AgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6NjI0Olx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8gXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTYyNS1cdCAgICBpd2xhZ25fc2V0X2RlY3J5cHRlZF9mbGFnKHByaXYsIGhkciwgYW1wZHVfc3RhdHVzLCBzdGF0cykpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jPTEwMjM9aW50IGl3bGFnbl9jb21taXRfcnhvbihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBpd2xfcnhvbl9jb250ZXh0ICpjdHgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jLTExMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmM6MTEwMzpcdGl3bF9zZXRfcnhvbl9od2NyeXB0byhwcml2LCBjdHgsICFpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jLTExMDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaD0xMzY9c3RydWN0IGl3bF9md19wYWdpbmcge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvaW1nLmgtMTQzLS8qKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaDoxNDQ6ICogZW51bSBpd2xfZndfdHlwZSAtIGl3bHdpZmkgZmlybXdhcmUgdHlwZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaC0xNDUtICogQElXTF9GV19EVk06IERWTSBmaXJtd2FyZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYz00OTk9dm9pZCBpd2xfZGJnX3Rsdl9sb2FkX2JpbihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYy01MDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kYmctdGx2LmM6NTA1Olx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuZW5hYmxlX2luaSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGJnLXRsdi5jLTUwNi1cdCAgICB0cmFucy1cdTAwM2VtYWNfY2ZnLVx1MDAzZWRldmljZV9mYW1pbHkgXHUwMDNjPSBJV0xfREVWSUNFX0ZBTUlMWV84MDAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM9MTM9dm9pZCBfX2l3bF8gIyNmbihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKVx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTIyLVx0ZGV2XyAjI2ZuKGRldiwgXCYjMzQ7JXBWXCYjMzQ7LCBcdTAwMjZ2YWYpO1x0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM6MjM6XHR0cmFjZV9pd2x3aWZpXyAjI2ZuKFx1MDAyNnZhZik7XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy0yNC1cdHZhX2VuZChhcmdzKTtcdFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM9MzQ9dm9pZCBfX2l3bF9lcnIoc3RydWN0IGRldmljZSAqZGV2LCBlbnVtIGl3bF9lcnJfbW9kZSBtb2RlLCBjb25zdCBjaGFyICpmbXQsIC4uLilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTYwLVx0dmFmLnZhID0gXHUwMDI2YXJncztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM6NjE6XHR0cmFjZV9pd2x3aWZpX2VycihcdTAwMjZ2YWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02Mi1cdHZhX2VuZChhcmdzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTY3PXZvaWQgX19pd2xfZGJnKHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTgyLSNlbmRpZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYzo4MzpcdHRyYWNlX2l3bHdpZmlfZGJnKGxldmVsLCBmdW5jdGlvbiwgXHUwMDI2dmFmKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtODQtXHR2YV9lbmQoYXJncyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xNj1zdGF0aWMgaW5saW5lIGJvb2wgaXdsX2hhdmVfZGVidWdfbGV2ZWwodTMyIGxldmVsKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTgtI2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjE5Olx0cmV0dXJuIGl3bHdpZmlfbW9kX3BhcmFtcy5kZWJ1Z19sZXZlbCBcdTAwMjYgbGV2ZWw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTIwLSNlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEyNi0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMjc6ICpcdC9zeXMvbW9kdWxlL2l3bHdpZmkvcGFyYW1ldGVycy9kZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjgtICogd2hlbiBDT05GSUdfSVdMV0lGSV9ERUJVRz15LlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjktICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTMwOiAqXHQvc3lzL2tlcm5lbC9kZWJ1Zy9waHkwL2l3bHdpZmkvZGVidWcvZGVidWdfbGV2ZWxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTMxLSAqIHdoZW4gQ09ORklHX0lXTFdJRklfREVCVUdGUz15LlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0xNC0jdW5kZWYgVFJBQ0VfU1lTVEVNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmg6MTU6I2RlZmluZSBUUkFDRV9TWVNURU0gaXdsd2lmaV9kYXRhXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmg6MTc6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfdHhfdGIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMTgtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oOjM3OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X3J4X2RhdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMzgtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNC0jdW5kZWYgVFJBQ0VfU1lTVEVNXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjE1OiNkZWZpbmUgVFJBQ0VfU1lTVEVNIGl3bHdpZmlfaW9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjE3OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvcmVhZDMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xOC1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIG9mZnMsIHUzMiB2YWwpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjM0OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGU4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0zNS1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIG9mZnMsIHU4IHZhbCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC01MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6NTE6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW93cml0ZTMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC01Mi1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIG9mZnMsIHUzMiB2YWwpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtNjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjY4OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGU2NCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtNjktXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBvZmZzLCB1NjQgdmFsKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTg0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDo4NTpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlX3BycGgzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtODYtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBvZmZzLCB1MzIgdmFsKSxcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE5MjAyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNDYxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlY29uc3RydWN0aW5nIHRoZSBpd2x3aWZpIEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBob3cgc3l6a2FsbGVyIGlzIGZ1enppbmcgYGl3bHdpZmlgLiBGaXJzdCB0aG91Z2h0LCBJIHNlZSBgc3l6XzgwMjExX2luamVjdF9mcmFtZWAsIHdoaWNoIHNjcmVhbXMgYG1hYzgwMjExX2h3c2ltYC4gQnV0IHRoYXQmIzM5O3MgYSBzaW11bGF0b3IsIGFuZCBkb2VzbiYjMzk7dCBkaXJlY3RseSBoaXQgYGl3bHdpZmlgLiBTbywgaG93IGlzIGl0IGdldHRpbmcgaW4gdGhlcmU/IEkga25vdyBzeXprYWxsZXIgaGFzIGBzeXpfcGNpX2RldmljZWAuLi4gd2FpdCwgbWF5YmUgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseV9pZGA/IE5vLCB0aGF0JiMzOTtzIG5vdCBpdC4KClRoZW4gSSBzcG90IGBDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUU2AuIENvdWxkIGl0IGJlIGhpdHRpbmcgS1VOSVQgdGVzdHM/IE5vLCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZGlyZWN0bHkgZnV6eiB0aG9zZS4gSG1tLCB3YWl0LCBJIHNlZSBgc3l6X3VzYl9jb25uZWN0YC4gRG9lcyBgaXdsd2lmaWAgZXZlbiAqaGF2ZSogYSBVU0IgY29tcG9uZW50PyBObywgdGhhdCYjMzk7cyBQQ0kgb25seS4gT2theSwgYmFjayB0byBgc3l6X3BjaV9kZXZpY2VgLiBNYXliZSBzeXprYWxsZXIgaXMgdXNpbmcgUENJIGZ1enppbmcsIG1heWJlIHdpdGggVkZJTywgb3Igc29tZXRoaW5nIHNpbWlsYXI/IE5vLCBJIHRoaW5rIGl0IHVzZXMgYHN5el9wY2lfZGV2aWNlYCBvciBgc3l6X2t2bV9zZXR1cF9jcHVgIGRpcmVjdGx5LgoKV2FpdCwgZGlkIHRoZXkgcmVjZW50bHkgYWRkIGEgbmV3IFBDSSBwcmltaXRpdmUgbGlrZSBgc3l6X3BjaV9kZXZpY2VgIG9yIGBzeXpfcGNpX2Nvbm5lY3RgPyBMZXQgbWUgc2VhcmNoIGZvciBgc3l6X3BjaWAgd2l0aGluIHRoZSBzeXprYWxsZXIgY29kZS4gTm8gbWF0Y2hlcy4gU28sIHRoZSBgc3l6X3VzYl9jb25uZWN0YCBpcyBhIHJlZCBoZXJyaW5nLiBUaGVuLCBJIHJlbWVtYmVyIGBtYWM4MDIxMV9od3NpbWAgYWdhaW4uIEJ1dCB0aGF0JiMzOTtzIGEgc2ltdWxhdG9yLCBhbmQgZG9lc24mIzM5O3QgdXNlIHRoZSBhY3R1YWwgYGl3bHdpZmlgIGRyaXZlcnMuCgpXYWl0LCB0aGVyZSBpcyBhIGBDT05GSUdfTUFDODAyMTFfSFdTSU1gLiBDb3VsZCB0aGVyZSBiZSBhbiBgaXdsd2lmaWAgc2ltdWxhdG9yPyBCaW5nbyEgYGl3bHdpZmlgIGhhcyBpdHMgb3duIHNpbXVsYXRvciEgTm93LCBJIG5lZWQgdG8gY29uZmlybSB0aGlzIGJ5IGNoZWNraW5nIHRoZSBgS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWdgLCB0byBjb25maXJtIHRoZSBzaW11bGF0b3Igc2V0dXAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NpbSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDUyIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTA3PWNvbmZpZyBJV0xXSUZJX0RFQlVHXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMjA6XHQgIFRvIHNldCBhIHZhbHVlLCBzaW1wbHkgZWNobyBhbiA4LWJ5dGUgaGV4IHZhbHVlIHRvIHRoZSBzYW1lIGZpbGU6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmM9NzE3PXN0YXRpYyB2b2lkIGl3bF9maW5kX2Rpc2Nvbm5fYW50ZW5uYShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHUzMiogYXZlcmFnZV9zaWcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy03NzUtXHQgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYzo3NzY6XHQgKiBUbyBiZSBzYWZlLCBzaW1wbHkgbWFzayBvdXQgYW55IGNoYWlucyB0aGF0IHdlIGtub3dcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtNzc3LVx0ICogYXJlIG5vdCBvbiB0aGUgZGV2aWNlLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmM9ODI0PXN0YXRpYyB2b2lkIGl3bGFnbl9nYWluX2NvbXB1dGF0aW9uKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTg1My1cdFx0XHQgKiAgIG5vdCB0aGUgZm9ybWF0IG9mIGFueSBpbnRlcm5hbCBkZXZpY2UgcmVnaXN0ZXJzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYzo4NTQ6XHRcdFx0ICogICBEbyBub3QgY2hhbmdlIHRoaXMgZm9ybWF0IGZvciBlLmcuIDYwNTAgb3Igc2ltaWxhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTUtXHRcdFx0ICogICBkZXZpY2VzLiAgQ2hhbmdlIGZvcm1hdCBvbmx5IGlmIG1vcmUgcmVzb2x1dGlvblxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTA4PWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTM3LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjUzODogKiBSRVBMWV9SWE9OID0gMHgxMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01MzktICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTU1NT1zdHJ1Y3QgaXdsX3J4b25fY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTU3OS0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo1ODA6ICogUkVQTFlfUlhPTl9BU1NPQyA9IDB4MTEgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTgxLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01ODI9c3RydWN0IGl3bF9yeG9uX2Fzc29jX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MDAtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NjAxOiAqIFJFUExZX1JYT05fVElNSU5HID0gMHgxNCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MDItICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTYwMz1zdHJ1Y3QgaXdsX3J4b25fdGltZV9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNjEzLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYxNDogKiBSRVBMWV9DSEFOTkVMX1NXSVRDSCA9IDB4NzIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNjE1LSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NjkwPXN0cnVjdCBpd2xfYWNfcW9zIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTcwNi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo3MDc6ICogUkVQTFlfUU9TX1BBUkFNID0gMHgxMyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC03MDgtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE0MzU9c3RydWN0IGl3bF9jb21wcmVzc2VkX2JhX3Jlc3Age1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTQ1Mi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNDUzOiAqIFJFUExZX1RYX1BXUl9UQUJMRV9DTUQgPSAweDk3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE0NTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE1MjA9c3RydWN0IGl3bF9saW5rX3F1YWxfYWdnX3BhcmFtcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNTQ2LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE1NDc6ICogUkVQTFlfVFhfTElOS19RVUFMSVRZX0NNRCA9IDB4NGUgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTU0OC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTczND1zdHJ1Y3QgaXdsX2xpbmtfcXVhbGl0eV9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTc5NS0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNzk2OiAqIFJFUExZX0JUX0NPTkZJRyA9IDB4OWIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTc5Ny0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjAxOT1zdHJ1Y3QgaXdsX3NwZWN0cnVtX25vdGlmaWNhdGlvbiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMDUxLSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjIwNTI6ICogUE9XRVJfVEFCTEVfQ01EID0gMHg3NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMDUzLSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yMTIxPWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjEzNS0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyMTM2OiAqIFJFUExZX0NBUkRfU1RBVEVfQ01EID0gMHhhMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMTM3LSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjQxNj1zdHJ1Y3QgaXdsYWduX2JlYWNvbl9ub3RpZiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNDIzLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjI0MjQ6ICogUkVQTFlfVFhfQkVBQ09OID0gMHg5MSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNDI1LSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9Mjc1MD1zdHJ1Y3QgaXdsX21pc3NlZF9iZWFjb25fbm90aWYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjc3Mi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyNzczOiAqIFNFTlNJVElWSVRZX0NNRCA9IDB4YTggKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjc3NC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzAwOT1zdHJ1Y3QgaXdsX2VuaGFuY2Vfc2Vuc2l0aXZpdHlfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTMwMTUtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzAxNjogKiBSRVBMWV9QSFlfQ0FMSUJSQVRJT05fQ01EID0gMHhiMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMDE3LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zMTc4PXN0cnVjdCBpd2xfY2FsaWJfY2hhaW5fbm9pc2VfZ2Fpbl9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzE5Mi0gKiBMRURzIENvbW1hbmQgXHUwMDI2IFJlc3BvbnNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjMxOTM6ICogUkVQTFlfTEVEU19DTUQgPSAweDQ4IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTMxOTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTM5MDI9c3RydWN0IGl3bF93aXBhbl9wMnBfY2hhbm5lbF9zd2l0Y2hfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTMtICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzkxNDogKiBJbiBiZWFjb25zLCB0aGUgTm9BIHNjaGVkdWxlIGlzIHNpbXBseSBhcHBlbmRlZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zOTE1LSAqIHRvIHRoZSBmcmFtZSB3ZSBnaXZlIHRoZSBkZXZpY2UuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTI5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzAtXHQucmVhZCA9IGl3bF9kYmdmc18jI25hbWUjI19yZWFkLFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozMTpcdC5vcGVuID0gc2ltcGxlX29wZW4sXHRcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMi1cdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNj1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3LVx0LndyaXRlID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzg6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzktXHQubGxzZWVrID0gZ2VuZXJpY19maWxlX2xsc2VlayxcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NDQ9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX2RiZ2ZzXyMjbmFtZSMjX29wcyA9IHsgICAgICAgICAgXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDYtXHQucmVhZCA9IGl3bF9kYmdmc18jI25hbWUjI19yZWFkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0NzpcdC5vcGVuID0gc2ltcGxlX29wZW4sXHRcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00OC1cdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFx0XHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3JhbV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTM2Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTM3LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTY5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc193b3dsYW5fc3JhbV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTc5Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODAtXHRcdFx0XHQgICAgICAgcHJpdi1cdTAwM2V3b3dsYW5fc3JhbSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTgzPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zdGF0aW9uc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMzQ6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzUtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX252bV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yNzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjczOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjc0LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9Mjc4PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jaGFubmVsc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMzNy1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozMzg6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMzktXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNDM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXR1c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zNzMtXHRcdHRlc3RfYml0KFNUQVRVU19GV19FUlJPUiwgXHUwMDI2cHJpdi1cdTAwM2VzdGF0dXMpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozNzQ6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzc1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9Mzc3PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeF9oYW5kbGVyc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00MDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDAxOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDAyLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NDI5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19xb3NfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTItXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDUzOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ1NC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQ1Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdGhlcm1hbF90aHJvdHRsaW5nX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4NC1cdH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0ODU6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTExPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19kaXNhYmxlX2h0NDBfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTIyLVx0XHRcdHByaXYtXHUwMDNlZGlzYWJsZV9odDQwID8gXCYjMzQ7RGlzYWJsZWRcJiMzNDsgOiBcJiMzNDtFbmFibGVkXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo1MjM6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTI0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTI2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc190ZW1wZXJhdHVyZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01MzUtXHRwb3MgJiM0Mzs9IHNjbnByaW50ZihidWYgJiM0MzsgcG9zLCBidWZzeiAtIHBvcywgXCYjMzQ7JWRcXG5cJiMzNDssIHByaXYtXHUwMDNldGVtcGVyYXR1cmUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjUzNjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01MzctfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01ODI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NsZWVwX2xldmVsX292ZXJyaWRlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5Ni1cdHBvcyA9IHNjbnByaW50ZihidWYsIGJ1ZnN6LCBcJiMzNDslZFxcblwmIzM0OywgdmFsdWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjU5NzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01OTgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz02MDA9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2N1cnJlbnRfc2xlZXBfY29tbWFuZF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy02MjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NjIxOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTYyMi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTY2Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfcnhfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTA5My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxMDk0Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTA5NS1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTEwOTk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3R4X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTI5MTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTItXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMjk2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9nZW5lcmFsX3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE0MTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQxMTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE0MTItXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNDE2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9idF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNDk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE0OTk6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNTAwLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTUwND1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcmVwbHlfdHhfZXJyb3JfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNjQxOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0Mi1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE2NDY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NlbnNpdGl2aXR5X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE3MTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTcxOTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE3MjAtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNzI1PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jaGFpbl9ub2lzZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzc1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE3NzY6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzc3LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTc4MT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcG93ZXJfc2F2ZV9zdGF0dXNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODAxOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MDItfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODI4PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV90cmFjaW5nX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTg0NjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODQ3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTg3OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhvbl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODg4LVx0XHRsZTMyX3RvX2NwdShwcml2LVx1MDAzZWNvbnRleHRzW0lXTF9SWE9OX0NUWF9CU1NdLmFjdGl2ZS5mbGFncykpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4ODk6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg5MC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4OTI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4b25fZmlsdGVyX2ZsYWdzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MDEtXHRcdGxlMzJfdG9fY3B1KHByaXYtXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZpbHRlcl9mbGFncykpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5MDI6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkwMy19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5MDU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX21pc3NlZF9iZWFjb25fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTE3Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MTgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTQ2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19wbGNwX2RlbHRhX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5NTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTk1ODpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTU5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTk4NT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcmZfcmVzZXRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjAwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDA3Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwMDgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMDQ1PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19idF90cmFmZmljX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwNTUtXHRcdHBvcyAmIzQzOz0gc2NucHJpbnRmKGJ1ZiAmIzQzOyBwb3MsIGJ1ZnN6IC0gcG9zLCBcJiMzNDtCVCBjb2V4IGRpc2FibGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDU2Olx0XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA1Ny1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDg3Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwODgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMDkwPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19wcm90ZWN0aW9uX21vZGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjEwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTA5Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxMTAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMTcyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19sb2dfZXZlbnRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjE4MS1cdGlmIChyZXQgXHUwMDNlIDApXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjE4MjpcdFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjE4My1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIyMTM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NhbGliX2Rpc2FibGVkX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjIzODpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjM5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTEzODg9c3RhdGljIGludCBpd2xhZ25fbWFjX2NoYW5nZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNDA2LVx0LypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTQwNzpcdCAqIFRvIHNpbXBsaWZ5IHRoaXMgY29kZSwgb25seSBzdXBwb3J0IGNoYW5nZXMgb24gdGhlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDgtXHQgKiBCU1MgY29udGV4dC4gVGhlIFBBTiBjb250ZXh0IGlzIHVzdWFsbHkgcmVhc3NpZ25lZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MjE1Nz1zdGF0aWMgdm9pZCByc19yYXRlX3NjYWxlX3BlcmZvcm0oc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMjYwMC0gKiAgICAgICBpZiB0aGUgZHJpdmVyJiMzOTtzIGl3bC1hZ24tcnMgcmF0ZSBzY2FsaW5nIGFsZ29yaXRobSBpcyB1c2VkLCBpbnN0ZWFkIG9mXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjI2MDE6ICogICAgICAgcmM4MDIxMV9zaW1wbGUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTI2MDItICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMwNjE9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMTU4Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE1OS1cdGtmcmVlKGJ1ZmYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzE2Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2NS1cdC5yZWFkID0gcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX3JlYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMxNjY6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTY3LVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzE2OT1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMDEtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMDI6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjAzLVx0a2ZyZWUoYnVmZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjA3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMDgtXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9yZWFkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjA5Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIxMC1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMTM9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIzMDpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjMxLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMzM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzQtXHQucmVhZCA9IHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfcmVhZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIzNTpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzYtXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTM2PXN0YXRpYyBpbnQgaXdsX3NlbmRfc2Nhbl9hYm9ydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTYwLVx0XHQgKiAyIGZvciBcJiMzNDtmYWlsdXJlXCYjMzQ7LiAgQSBmYWlsdXJlIGNvbmRpdGlvbiBjYW4gYmVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYzo2MTpcdFx0ICogZHVlIHRvIHNpbXBseSBub3QgYmVpbmcgaW4gYW4gYWN0aXZlIHNjYW4gd2hpY2hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYy02Mi1cdFx0ICogY2FuIG9jY3VyIGlmIHdlIHNlbmQgdGhlIHNjYW4gYWJvcnQgYmVmb3JlIHdlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0yNTI9ZW51bSBpd2xfdG9mX3Jlc3BvbmRlcl9jZmdfZmxhZ3Mge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMjc5LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjI4MDogKlx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMjgxLSAqXHR0byB0aGlzIGZpZWxkXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0yODc9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzE0LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjMxNTogKlx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzE2LSAqXHR0byB0aGlzIGZpZWxkXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0zMjI9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjcge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzUyLSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjM1MzogKlx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzU0LSAqXHR0byB0aGlzIGZpZWxkXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0zNjk9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjgge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzk3LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjM5ODogKlx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzk5LSAqXHR0byB0aGlzIGZpZWxkXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD00MTg9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDQ4LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjQ0OTogKlx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDUwLSAqXHR0byB0aGlzIGZpZWxkXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD05Nz1lbnVtIGl3bF9wb3dlcl9mbGFncyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xMTMtICpcdGlzIHVzZWQgYWxzbyB3aXRoIGEgbmV3XHRwb3dlciBBUEkgZm9yIGRldmljZSB3aWRlIHBvd2VyIHNldHRpbmdzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaDoxMTQ6ICogUE9XRVJfVEFCTEVfQ01EID0gMHg3NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xMTUtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oPTE1OD1lbnVtIGl3bF9kZXZpY2VfcG93ZXJfZmxhZ3Mge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTY2LSAqIHN0cnVjdCBpd2xfZGV2aWNlX3Bvd2VyX2NtZCAtIGRldmljZSB3aWRlIHBvd2VyIGNvbW1hbmQuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjE2NzogKiBERVZJQ0VfUE9XRVJfQ01EID0gMHg3NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNjgtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oPTE3Mj1zdHJ1Y3QgaXdsX2RldmljZV9wb3dlcl9jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTc5LSAqIHN0cnVjdCBpd2xfbWFjX3Bvd2VyX2NtZF92MiAtIHBvd2VyIGNvbW1hbmQgVjIgY29udGFpbmluZyB1QVBTRCBzdXBwb3J0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjE4MDogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE4MS0gKiBAaWRfYW5kX2NvbG9yOlx0TUFDIGNvbnRleHQgaWRlbnRpZmllciwgXHUwMDI2ZW51bSBpd2xfY3R4dF9pZF9hbmRfY29sb3Jcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oPTIyMD1zdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWRfdjIge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMjQ3LSAqIHN0cnVjdCBpd2xfbWFjX3Bvd2VyX2NtZCAtIHBvd2VyIGNvbW1hbmRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MjQ4OiAqIE1BQ19QTV9QT1dFUl9UQUJMRSA9IDB4QTkgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMjQ5LSAqIEBpZF9hbmRfY29sb3I6XHRNQUMgY29udGV4dCBpZGVudGlmaWVyLCBcdTAwMjZlbnVtIGl3bF9jdHh0X2lkX2FuZF9jb2xvclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTYxPXN0YXRpYyBpbmxpbmUgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoxNjI6X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE2My1cdFx0XHRcdHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xNzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3NTojZGVmaW5lIGl3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChmd3J0LCB3ZGV2LCB0cmlnKVx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTc2Olx0X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcCgoZndydCksICh3ZGV2KSxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTc3LVx0XHRcdFx0XHRpd2xfZndfZGJnX2dldF90cmlnZ2VyKChmd3J0KS1cdTAwM2VmdyxcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jPTM3PXN0YXRpYyBzc2l6ZV90IF9pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYy01MS1cdFx0cmV0dXJuIGRhdGEtXHUwMDNlcmxlbjtcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jOjUyOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jLTUzLVx0XHRcdFx0ICAgICAgIGRhdGEtXHUwMDNlcmJ1ZiwgZGF0YS1cdTAwM2VybGVuKTtcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaD0zMTM9c3RydWN0IHVlZmlfY252X3dwZmNfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmgtMzE5LSAqIFRoaXMgaXMga25vd24gdG8gYmUgYnJva2VuIG9uIHY0LjE5IGFuZCB0byB3b3JrIG9uIHY1LjQuICBVbnRpbCB3ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg6MzIwOiAqIGZpZ3VyZSBvdXQgd2h5IHRoaXMgaXMgdGhlIGNhc2UgYW5kIGhvdyB0byBtYWtlIGl0IHdvcmssIHNpbXBseVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmgtMzIxLSAqIGRpc2FibGUgdGhlIGZlYXR1cmUgaW4gb2xkIGtlcm5lbHMuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTctICogVXNlIGl3bF93cml0ZTMyKCkgYW5kIGl3bF9yZWFkMzIoKSBmYW1pbHkgdG8gYWNjZXNzIHRoZXNlIHJlZ2lzdGVycztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oOjE4OiAqIHRoZXNlIHByb3ZpZGUgc2ltcGxlIFBDSSBidXMgYWNjZXNzLCB3aXRob3V0IHdha2luZyB1cCB0aGUgTUFDLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTktICogRG8gbm90IHVzZSBpd2xfd3JpdGVfZGlyZWN0MzIoKSBmYW1pbHkgZm9yIHRoZXNlIHJlZ2lzdGVycztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaD0zMjE9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTA5LSAqIERvIG5vdCB1c2UgaXdsX3dyaXRlMzIoKS9pd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaDo1MTA6ICogdGhlc2UgcHJvdmlkZSBvbmx5IHNpbXBsZSBQQ0kgYnVzIGFjY2Vzcywgd2l0aG91dCB3YWtpbmcgdXAgdGhlIE1BQy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUxMS0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTEwMj1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEzLSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjExNDogKiBJZiB5b3UgYXJlIGRlZmluaW5nIGEgbmV3IGRlYnVnIGNsYXNzaWZpY2F0aW9uLCBzaW1wbHkgYWRkIGl0IHRvIHRoZSAjZGVmaW5lXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTExNS0gKiBsaXN0IGhlcmUgaW4gdGhlIGZvcm0gb2Zcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg9MjA9c3RydWN0IGl3bF9yZl9jZmc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oLTM2LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg6Mzc6ICogVGhlIG9wZXJhdGlvbmFsIG1vZGUgaGFzIGEgdmVyeSBzaW1wbGUgbGlmZSBjeWNsZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLW9wLW1vZGUuaC0zOC0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmM9ODY9c3RhdGljIHUzMiBpd2xfZGl2X2J5X2RiKHUzMiB2YWx1ZSwgdTggZGIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy04OC1cdC8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jOjg5Olx0ICogMl4zMiAqIDEwKiooaSAvIDEwKSBmb3IgaSA9IFsxLCAxMF0sIHNraXBwaW5nIDAgYW5kIHNpbXBseSBzdG9wcGluZ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy05MC1cdCAqIGF0IDEwIGRCIGFuZCBsb29waW5nIGluc3RlYWQgb2YgdXNpbmcgYSBtdWNoIGxhcmdlciB0YWJsZS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtMTc0LSAqIENTTUUgY2FuIHRyYW5zbWl0IHBhY2tldHMsIHRocm91Z2ggdGhlIG5ldGRldiB0aGF0IGl0IGdldHMgZnJvbSB0aGUgd2lmaVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oOjE3NTogKiBkcml2ZXIuIEl0JiMzOTtsbCBzZW5kIHBhY2tldCBpbiB0aGUgODAyLjMgZm9ybWF0IGFuZCBzaW1wbHkgY2FsbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTE3Ni0gKiBkZXZfcXVldWVfeG1pdC5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg9NDI4PXZvaWQgaXdsX21laV9zZXRfbmV0ZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzYtICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDo0Mzc6ICogVGhpcyBmdW5jdGlvbiBkb2VzbiYjMzk7dCB0YWtlIGFueSBsb2NrLCBpdCBzaW1wbHkgdHJpZXMgdG8gY2F0Y2ggREhDUFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzOC0gKiBwYWNrZXRzIHNlbnQgYnkgdGhlIHdpZmkgZHJpdmVyLiBJZiB0aGUgcGFja2V0IGlzIGEgREhDUCBwYWNrZXQsIGl0XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jPTE5MDA9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MDEtXHQud3JpdGUgPSBpd2xfbWVpX2RiZ2ZzX3NlbmRfc3RhcnRfbWVzc2FnZV93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYzoxOTAyOlx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTAzLVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYz0xOTE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF9vcHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxNi1cdC53cml0ZSA9IGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF93cml0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYzoxOTE3Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE4LVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0zNT1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTQ5LVx0XHRyZXR1cm4gZGF0YS1cdTAwM2VybGVuO1x0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjUwOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC01MS1cdFx0XHRcdCAgICAgICBkYXRhLVx1MDAzZWJ1ZiwgZGF0YS1cdTAwM2VybGVuKTtcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTAxPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xMTktXHRcdC53cml0ZSA9IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlLFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg6MTIwOlx0XHQub3BlbiA9IHNpbXBsZV9vcGVuLFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTEyMS1cdFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xNjI9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcdFx0XFxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzMzNzAKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiA2NDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTeXprYWxsZXIgSW50ZXJhY3Rpb24gd2l0aCBgaXdsd2lmaWAgYW5kIFFFTVUqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBgaXdsd2lmaWAgc2l0dWF0aW9uIGFuZCB0cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgc3l6a2FsbGVyIGlzIGludGVyYWN0aW5nIHdpdGggaXQuIEZpcnN0LCBJIHdhcyBjdXJpb3VzIGFib3V0IHdoZXRoZXIgc3l6a2FsbGVyIGhhZCBhbnkgYHN5el9gIGZ1bmN0aW9ucyBzcGVjaWZpY2FsbHkgZm9yIFBDSSBkZXZpY2VzLCBtYXliZSBldmVuIGEgYHN5el9wY2lfZGV2aWNlYCBmdW5jdGlvbiwgYnV0IGEgcXVpY2sgY2hlY2sgcmV2ZWFscyBub3RoaW5nLiBIb3dldmVyLCBJIHNlZSBgc3l6X3VzYl9jb25uZWN0YCBhbmQgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgLCB3aGljaCBzdWdnZXN0cyBpdOKAmXMgbm90IGNvbXBsZXRlbHkgaW4gdGhlIGRhcmsuCgpUaGUgY29yZSBpc3N1ZSBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBgaXdsd2lmaWAgYmVpbmcgYSBQQ0kgZHJpdmVyLiBJdCB3b24mIzM5O3QgcHJvYmUgdW5sZXNzIHRoZXJlJiMzOTtzIGFuIGFjdHVhbCBQQ0kgZGV2aWNlIHByZXNlbnQuIElmIGl0ICpkb2VzbiYjMzk7dCogcHJvYmUsIHRoZW4gdGhlIGBtdm1gIGNvbXBvbmVudCB3b27igJl0IGJlIGluaXRpYWxpemVkIGFuZCwgY3JpdGljYWxseSwgYGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlYCB3b24mIzM5O3QgYmUgY3JlYXRlZC4gU28sIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyBzeXprYWxsZXIgaXMgZXZlbiAqZ2V0dGluZyogYGl3bHdpZmlgIHRvIGxvYWQuIERvZXMgaXQgdXNlIHNvbWUga2luZCBvZiBkdW1teSBQQ0kgZGV2aWNlPwoKVGhlbiBJIHJlbWVtYmVyZWQgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggcHJvdmlkZXMgYSBzaW11bGF0ZWQgV2ktRmkgZW52aXJvbm1lbnQuIENvdWxkIHRoZXJlIGJlIGFuIGBpd2x3aWZpYCBlcXVpdmFsZW50PyBMZXQmIzM5O3MgY2hlY2sgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZ2AgYWdhaW4uIEZvdW5kIGBDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUU2AsIGJ1dCBub3RoaW5nIGRpcmVjdGx5IGVtdWxhdGluZyB0aGUgaGFyZHdhcmUuCgpBZ2FpbiwgSSBjaGVja2VkIGZvciBgc3l6X3BjaV9kZXZpY2VgLCBubyBsdWNrLiBUaGVuLCBpdCBoaXRzIG1lIHRoYXQgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGBzeXpfZ2VuZXRsaW5rX2dldF9mYW1pbHlfaWRgLiBBbHNvLCBJIGRpZCBzZWFyY2ggZm9yIGBzeXpfcGNpYCBhbmQgc3RpbGwgY2FtZSB1cCBlbXB0eS4KClRoZW4sIHRoZSB0aG91Z2h0IGNyb3NzZWQgbXkgbWluZDogd2hhdCBpZiBzeXprYWxsZXIgZm91bmQgdGhpcyBidWcgb24gKnJlYWwqIGhhcmR3YXJlPyBUaGUgY29udGV4dCBtZW50aW9ucyAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4mIzM0OyBUaGlzIGlzIGEga2V5IHBpZWNlIG9mIGluZm9ybWF0aW9uLiBJZiBpdCYjMzk7cyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIFFFTVUsIHRoZW4gbXkgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGZhbHNlLgoKU28sIGlzIGl0IGltcG9zc2libGUgaW4gUUVNVT8gWWVzLCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgYGl3bHdpZmlgIGhhcmR3YXJlLiBXYWl0LCBRRU1VICpkb2VzKiBoYXZlIHNvbWUgUENJIGRldmljZXMsIGJ1dCBub3Qgc3BlY2lmaWNhbGx5IGBpd2x3aWZpYC4gSeKAmWQgY2hlY2sgdGhlIFFFTVUgc291cmNlIG9yIGRvY3VtZW50YXRpb24gaWYgSSBjb3VsZCwgYnV0IEkgY2FuJiMzOTt0LgoKQWxyaWdodCwgaXMgdGhlcmUgKmFueSogYGl3bHdpZmlgIGVtdWxhdG9yIGluIHRoZSBrZXJuZWw/IE5vLCBgaXdsd2lmaWAgaXMgYSBoYXJkd2FyZSBkcml2ZXIsIG5vdCBhbiBlbXVsYXRvci4KCkJhY2sgdG8gc3F1YXJlIG9uZTogZG9lcyBzeXprYWxsZXIgaGF2ZSBhbnkgYHN5el9wY2lfZGV2aWNlYCBmdW5jdGlvbmFsaXR5PyBTdGlsbCBuby4gUGVyaGFwcyB0aGVyZSYjMzk7cyBhIHJlY2VudCBhZGRpdGlvbiBvZiBzb21ldGhpbmcgbGlrZSBgc3l6X3BjaWAgb3IgYHN5el9wY2l2ZmlvYD8gSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUmIzM5O3MgYW55IGB2ZmlvYCBmdXp6aW5nIHdpdGhpbiBzeXprYWxsZXIuCgpTeXprYWxsZXIgaGFzIGBzeXpfa3ZtX3NldHVwX2NwdWAsIHdoaWNoIHJlbGF0ZXMgdG8gS1ZNLiBBbmQgYHN5el91c2JfY29ubmVjdGAgdXNlcyBgZHVtbXlfaGNkYCAoVVNCIGdhZGdldCkuIFRoaXMgaW1wbGllcyBzeXprYWxsZXIgaGFzIHNvbWUgdGVjaG5pcXVlcyB0byBlbXVsYXRlIG9yIGluamVjdCBpbnRvIGhhcmR3YXJlLWxpa2Ugc3RydWN0dXJlcy4gTm93LCBpcyB0aGVyZSBhIHNpbWlsYXIgZHVtbXkgUENJIGhvc3QgY29udHJvbGxlciBpbiB0aGUga2VybmVsPyBUaW1lIHRvIGNoZWNrIGZvciBhIGR1bW15IFBDSSBkcml2ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R1bW15JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wY2kvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguYz0xOTA9c3RhdGljIGludCBkcmE3eHhfcGNpZV9pbnR4X21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBpbnQgaXJxLFxuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguYy0xOTIte1xuZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWRyYTd4eC5jOjE5MzpcdGlycV9zZXRfY2hpcF9hbmRfaGFuZGxlcihpcnEsIFx1MDAyNmR1bW15X2lycV9jaGlwLCBoYW5kbGVfc2ltcGxlX2lycSk7XG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZHJhN3h4LmMtMTk0LVx0aXJxX3NldF9jaGlwX2RhdGEoaXJxLCBkb21haW4tXHUwMDNlaG9zdF9kYXRhKTtcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jPTE0ODE9c3RhdGljIHZvaWQgaW14X3BjaWVfaG9zdF9wb3N0X2luaXQoc3RydWN0IGR3X3BjaWVfcnAgKnBwKVxuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmMtMTUxNS0gKiByZWdpc3RlciBpcyByZXNlcnZlZCwgc28gdGhlIGdlbmVyaWMgRFdDIGltcGxlbWVudGF0aW9uIG9mIHNlbmRpbmcgdGhlXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jOjE1MTY6ICogUE1FX1R1cm5fT2ZmIG1lc3NhZ2UgdXNpbmcgYSBkdW1teSBNTUlPIHdyaXRlIGNhbm5vdCBiZSB1c2VkLlxuZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYy0xNTE3LSAqL1xuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmM9MTE4Nz1zdGF0aWMgaW50IGR3X3BjaWVfcG1lX3R1cm5fb2ZmKHN0cnVjdCBkd19wY2llICpwY2kpXG4tLVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWhvc3QuYy0xMjE0LVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWhvc3QuYzoxMjE1Olx0LyogQSBkdW1teSB3cml0ZSBpcyBjb252ZXJ0ZWQgdG8gYSBNc2cgVExQICovXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jLTEyMTYtXHR3cml0ZWwoMCwgbWVtKTtcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL21vYml2ZWlsL3BjaWUtbW9iaXZlaWwtaG9zdC5jPTgzPXN0YXRpYyB2b2lkIG1vYml2ZWlsX3BjaWVfaXNyKHN0cnVjdCBpcnFfZGVzYyAqZGVzYylcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL21vYml2ZWlsL3BjaWUtbW9iaXZlaWwtaG9zdC5jLTE0NS1cdFx0ICogZnJvbSBNU0kgaGFyZHdhcmUgRklGTy4gU28ga2VlcGluZyB0aGVzZSBmb2xsb3dpbmdcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvbW9iaXZlaWwvcGNpZS1tb2JpdmVpbC1ob3N0LmM6MTQ2Olx0XHQgKiB0d28gZHVtbXkgcmVhZHMuXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL21vYml2ZWlsL3BjaWUtbW9iaXZlaWwtaG9zdC5jLTE0Ny1cdFx0ICovXG4tLVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM9MTc1MT1zdGF0aWMgdTMyIGh2X2NvbXBvc2VfbXNpX3JlcV92MShcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xNzYxLVx0LypcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jOjE3NjI6XHQgKiBDcmVhdGUgTVNJIHcvIGR1bW15IHZDUFUgc2V0LCBvdmVyd3JpdHRlbiBieSBzdWJzZXF1ZW50IHJldGFyZ2V0IGluXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xNzYzLVx0ICogaHZfaXJxX3VubWFzaygpLlxuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3NzEtICogVGhlIHZDUFUgc2VsZWN0ZWQgYnkgaHZfY29tcG9zZV9tdWx0aV9tc2lfcmVxX2dldF9jcHUoKSBhbmRcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jOjE3NzI6ICogaHZfY29tcG9zZV9tc2lfcmVxX2dldF9jcHUoKSBpcyBhIFwmIzM0O2R1bW15XCYjMzQ7IHZDUFUgYmVjYXVzZSB0aGUgZmluYWwgdkNQVSB0byBiZVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTc3My0gKiBpbnRlcnJ1cHRlZCBpcyBzcGVjaWZpZWQgbGF0ZXIgaW4gaHZfaXJxX3VubWFzaygpIGFuZCBjb21tdW5pY2F0ZWQgdG8gSHlwZXItVlxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM6MTc3NDogKiB2aWEgdGhlIEhWQ0FMTF9SRVRBUkdFVF9JTlRFUlJVUFQgaHlwZXJjYWxsLiBCdXQgdGhlIGNob2ljZSBvZiBkdW1teSB2Q1BVIGlzXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xNzc1LSAqIG5vdCBpcnJlbGV2YW50IGJlY2F1c2UgSHlwZXItViBjaG9vc2VzIHRoZSBwaHlzaWNhbCBDUFUgdG8gaGFuZGxlIHRoZVxuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3NzgtICogYnV0IGFzc2lnbmluZyB0b28gbWFueSB2UENJIGRldmljZSBpbnRlcnJ1cHRzIHRvIHRoZSBzYW1lIHBDUFUgY2FuIGNhdXNlIGFcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jOjE3Nzk6ICogcGVyZm9ybWFuY2UgYm90dGxlbmVjay4gU28gd2Ugc3ByZWFkIG91dCB0aGUgZHVtbXkgdkNQVXMgdG8gaW5mbHVlbmNlIEh5cGVyLVZcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3ODAtICogdG8gc3ByZWFkIG91dCB0aGUgcENQVXMgdGhhdCBpdCBzZWxlY3RzLlxuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3ODItICogRm9yIHRoZSBzaW5nbGUtTVNJIGFuZCBNU0ktWCBjYXNlcywgaXQmIzM5O3MgT0sgZm9yIGh2X2NvbXBvc2VfbXNpX3JlcV9nZXRfY3B1KClcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jOjE3ODM6ICogdG8gYWx3YXlzIHJldHVybiB0aGUgc2FtZSBkdW1teSB2Q1BVLCBiZWNhdXNlIGEgc2Vjb25kIGNhbGwgdG9cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3ODQtICogaHZfY29tcG9zZV9tc2lfbXNnKCkgY29udGFpbnMgdGhlIFwmIzM0O3JlYWxcJiMzNDsgdkNQVSwgY2F1c2luZyBIeXBlci1WIHRvIGNob29zZSBhXG4tLVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTc4Ni0gKiBodl9jb21wb3NlX21zaV9tc2coKSBleGl0cyB3aXRob3V0IHNlbmRpbmcgYSBtZXNzYWdlIHRvIHRoZSB2UENJIFZTUCwgc28gdGhlXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYzoxNzg3OiAqIG9yaWdpbmFsIGR1bW15IHZDUFUgaXMgdXNlZC4gVGhpcyBkdW1teSB2Q1BVIG11c3QgYmUgcm91bmQtcm9iaW4mIzM5O2VkIHNvIHRoYXRcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3ODgtICogdGhlIHBDUFVzIGFyZSBzcHJlYWQgb3V0LiBBbGwgaW50ZXJydXB0cyBmb3IgYSBtdWx0aS1NU0kgZGV2aWNlIGVuZCB1cCB1c2luZ1xuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3OTQtICogZW5oYW5jZW1lbnQgaXMgcGxhbm5lZCBmb3IgYSBmdXR1cmUgdmVyc2lvbi4gV2l0aCB0aGF0IGVuaGFuY2VtZW50LCB0aGVcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jOjE3OTU6ICogZHVtbXkgdkNQVSBzZWxlY3Rpb24gd29uJiMzOTt0IG1hdHRlciwgYW5kIGludGVycnVwdHMgZm9yIHRoZSBzYW1lIG11bHRpLU1TSVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTc5Ni0gKiBkZXZpY2Ugd2lsbCBiZSBzcHJlYWQgYWNyb3NzIG11bHRpcGxlIHBDUFVzLlxuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3OTktLypcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jOjE4MDA6ICogQ3JlYXRlIE1TSSB3LyBkdW1teSB2Q1BVIHNldCB0YXJnZXRpbmcganVzdCBvbmUgdkNQVSwgb3ZlcndyaXR0ZW5cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE4MDEtICogYnkgc3Vic2VxdWVudCByZXRhcmdldCBpbiBodl9pcnFfdW5tYXNrKCkuXG4tLVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM9MTgwMz1zdGF0aWMgaW50IGh2X2NvbXBvc2VfbXNpX3JlcV9nZXRfY3B1KGNvbnN0IHN0cnVjdCBjcHVtYXNrICphZmZpbml0eSlcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xODA4LS8qXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYzoxODA5OiAqIE1ha2Ugc3VyZSB0aGUgZHVtbXkgdkNQVSB2YWx1ZXMgZm9yIG11bHRpLU1TSSBkb24mIzM5O3QgYWxsIHBvaW50IHRvIHZDUFUwLlxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTgxMC0gKi9cbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYz0xODc1PXN0YXRpYyB2b2lkIGh2X2NvbXBvc2VfbXNpX21zZyhzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEsIHN0cnVjdCBtc2lfbXNnICptc2cpXG4tLVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTk1Ni1cdFx0LypcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jOjE5NTc6XHRcdCAqIFRoZSB2ZWN0b3Igd2Ugc2VsZWN0IGhlcmUgaXMgYSBkdW1teSB2YWx1ZS4gIFRoZSBjb3JyZWN0XG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xOTU4LVx0XHQgKiB2YWx1ZSBnZXRzIHNlbnQgdG8gdGhlIGh5cGVydmlzb3IgaW4gdW5tYXNrKCkuICBUaGlzIG5lZWRzXG4tLVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWFsdGVyYS5jPTM2Nj1zdGF0aWMgdm9pZCBzMTBfdGxwX3dyaXRlX3BhY2tldChzdHJ1Y3QgYWx0ZXJhX3BjaWUgKnBjaWUsIHUzMiAqaGVhZGVycyxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1hbHRlcmEuYzozNjc6XHRcdFx0XHQgdTMyIGRhdGEsIGJvb2wgZHVtbXkpXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYWx0ZXJhLmMtMzY4LXtcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYWx0ZXJhLmM9Nzg2PXN0YXRpYyBpbnQgYWx0ZXJhX3BjaWVfaW50eF9tYXAoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSxcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYWx0ZXJhLmMtNzg4LXtcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1hbHRlcmEuYzo3ODk6XHRpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCBcdTAwMjZkdW1teV9pcnFfY2hpcCwgaGFuZGxlX3NpbXBsZV9pcnEpO1xuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWFsdGVyYS5jLTc5MC1cdGlycV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLVx1MDAzZWhvc3RfZGF0YSk7XG4tLVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW1lZGlhdGVrLmM9NTU0PXN0YXRpYyBpbnQgbXRrX3BjaWVfaW50eF9tYXAoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSxcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtbWVkaWF0ZWsuYy01NTYte1xuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW1lZGlhdGVrLmM6NTU3Olx0aXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKGlycSwgXHUwMDI2ZHVtbXlfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tZWRpYXRlay5jLTU1OC1cdGlycV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLVx1MDAzZWhvc3RfZGF0YSk7XG4tLVxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLWVwLmM9NjUyPXN0YXRpYyBpbnQgcm9ja2NoaXBfcGNpZV9lcF9zZXR1cF9pcnEoc3RydWN0IHBjaV9lcGMgKmVwYylcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtZXAuYy02NzQtXHQgKiBpcyBoaWdoIGFuZCB3aWxsIHRyaWdnZXIgdGhlIHBlcnN0X2lycSBoYW5kbGVyLiBTbyB0cmVhdCB0aGlzIGluaXRpYWxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1lcC5jOjY3NTpcdCAqIElSUSBhcyBhIGR1bW15IG9uZSBieSBmYWtpbmcgdGhlIGhvc3QgYXNzZXJ0aW5nIFBFUlNUIy5cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1lcC5jLTY3Ni1cdCAqL1xuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmM9NjY5PXN0YXRpYyBpbnQgcm9ja2NoaXBfcGNpZV9pbnR4X21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBpbnQgaXJxLFxuLS1cbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMtNjcxLXtcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmM6NjcyOlx0aXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKGlycSwgXHUwMDI2ZHVtbXlfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMtNjczLVx0aXJxX3NldF9jaGlwX2RhdGEoaXJxLCBkb21haW4tXHUwMDNlaG9zdF9kYXRhKTtcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LmM9MzIxPXN0YXRpYyBpbnQgeGlsaW54X3BjaWVfaW50eF9tYXAoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSxcbi0tXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LmMtMzIzLXtcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbnguYzozMjQ6XHRpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCBcdTAwMjZkdW1teV9pcnFfY2hpcCwgaGFuZGxlX3NpbXBsZV9pcnEpO1xuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5jLTMyNS1cdGlycV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLVx1MDAzZWhvc3RfZGF0YSk7XG4tLVxuZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jPTEzNj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9kZXZpY2Uoc3RydWN0IHBjaV9kcml2ZXIgKmRydixcbi0tXG5kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmMtMTc1LVxuZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jOjE3NjpcdC8qIGRyaXZlcl9vdmVycmlkZSB3aWxsIGFsd2F5cyBtYXRjaCwgc2VuZCBhIGR1bW15IGlkICovXG5kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmMtMTc3LVx0aWYgKHJldCBcdTAwM2UgMClcbi0tXG5kcml2ZXJzL3BjaS9wd3JjdHJsL3BjaS1wd3JjdHJsLXRjOTU2My5jPTUzMz1zdGF0aWMgaW50IHRjOTU2M19wd3JjdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9wY2kvcHdyY3RybC9wY2ktcHdyY3RybC10Yzk1NjMuYy01NTUtXG5kcml2ZXJzL3BjaS9wd3JjdHJsL3BjaS1wd3JjdHJsLXRjOTU2My5jOjU1NjpcdHRjOTU2My1cdTAwM2VjbGllbnQgPSBpMmNfbmV3X2R1bW15X2RldmljZSh0Yzk1NjMtXHUwMDNlYWRhcHRlciwgYWRkcik7XG5kcml2ZXJzL3BjaS9wd3JjdHJsL3BjaS1wd3JjdHJsLXRjOTU2My5jLTU1Ny1cdGlmIChJU19FUlIodGM5NTYzLVx1MDAzZWNsaWVudCkpIHtcbi0tXG5kcml2ZXJzL3BjaS9zZXR1cC1idXMuYz01Nzc9c3RhdGljIHZvaWQgX19hc3NpZ25fcmVzb3VyY2VzX3NvcnRlZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLFxuLS1cbmRyaXZlcnMvcGNpL3NldHVwLWJ1cy5jLTYwNS1cdExJU1RfSEVBRChsb2NhbF9mYWlsX2hlYWQpO1xuZHJpdmVycy9wY2kvc2V0dXAtYnVzLmM6NjA2Olx0TElTVF9IRUFEKGR1bW15X2hlYWQpO1xuZHJpdmVycy9wY2kvc2V0dXAtYnVzLmMtNjA3LVx0c3RydWN0IHBjaV9kZXZfcmVzb3VyY2UgKnNhdmVfcmVzO1xuLS1cbmRyaXZlcnMvcGNpL3NldHVwLWJ1cy5jLTYxNC1cdGlmICghcmVhbGxvY19oZWFkKVxuZHJpdmVycy9wY2kvc2V0dXAtYnVzLmM6NjE1Olx0XHRyZWFsbG9jX2hlYWQgPSBcdTAwMjZkdW1teV9oZWFkO1xuZHJpdmVycy9wY2kvc2V0dXAtYnVzLmMtNjE2LVxuLS1cbmRyaXZlcnMvcGNpL3ZnYWFyYi5jPTE2Nz1pbnQgdmdhX3JlbW92ZV92Z2Fjb24oc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9wY2kvdmdhYXJiLmMtMTc2LVx0aWYgKGNvbl9pc19ib3VuZChcdTAwMjZ2Z2FfY29uKSlcbmRyaXZlcnMvcGNpL3ZnYWFyYi5jOjE3NzpcdFx0cmV0ID0gZG9fdGFrZV9vdmVyX2NvbnNvbGUoXHUwMDI2ZHVtbXlfY29uLCAwLFxuZHJpdmVycy9wY2kvdmdhYXJiLmMtMTc4LVx0XHRcdFx0XHQgICBNQVhfTlJfQ09OU09MRVMgLSAxLCAxKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjEwbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzODE1MAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDEwNTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUmVhY2hpbmcgYGl3bHdpZmlgIHdpdGggU3l6a2FsbGVyOiBBIERlZXAgRGl2ZSoqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHRoaXMgYGl3bHdpZmlgIGlzc3VlIGlzIGV2ZW4gZnV6emFibGUgYnkgU3l6a2FsbGVyLiBNeSBmaXJzdCB0aG91Z2h0IGlzOiB0aGVyZSYjMzk7cyBubyBkdW1teSBQQ0kgZGV2aWNlIGRyaXZlciBpbiB0aGUga2VybmVsIGZvciBzeXprYWxsZXIgdG8gaW5qZWN0IFBDSSBkZXZpY2VzLiBXYWl0LCBkb2VzIFN5emthbGxlciAqYWN0dWFsbHkqIGhhdmUgYSBgc3l6X3BjaV9kZXZpY2VgPyBJIHNob3VsZCBoYXZlIGdyZXBwZWQgZm9yIGBzeXpfcGNpYCBiZWZvcmUuIE5vcGUsIG5vIG1hdGNoZXMuCgpDb3VsZCB0aGlzIGJ1ZyBoYXZlIGJlZW4gZm91bmQgYnkgYHN5ei1jbHVzdGVyYCBvbiByZWFsIGhhcmR3YXJlPyBUaGF0JiMzOTtzIGEgcG9zc2liaWxpdHksIHRoZXkgaGF2ZSByZWFsIEFuZHJvaWQgZGV2aWNlcywgYW5kIG1heWJlIHNvbWUgeDg2IG1hY2hpbmVzLiBCdXQgSSB0aGluayB0aGV5IG1vc3RseSB1c2UgUUVNVSBmb3IgeDg2LiBPa2F5LCBkb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYGl3bHdpZmlgPyBObywgZGVmaW5pdGVseSBub3QuCgpJcyB0aGVyZSBhbiBgaXdsd2lmaWAgc2ltdWxhdG9yICppbiB0aGUga2VybmVsKiB0aGF0IHN5emthbGxlciBjb3VsZCBsZXZlcmFnZT8gTGV0IG1lIGNoZWNrIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaWAgZGlyZWN0b3J5LiBJJiMzOTtsbCBsb29rIHNwZWNpZmljYWxseSBhdCBgbWVpL2AgLSBub3BlLiBIb3cgYWJvdXQgYG12bS9gPyBOb3BlLiBXYWl0LCB0aGVyZSYjMzk7cyBgQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFNgLiBCdXQgSSBjYW4mIzM5O3QgaW1hZ2luZSBTeXprYWxsZXIgZnV6emluZyBLVU5JVCB0ZXN0cy4KClJpZ2h0LCB0aGVyZSYjMzk7cyBgc3l6XzgwMjExX2luamVjdF9mcmFtZWAhIFRoaXMgaW5qZWN0cyBmcmFtZXMgaW50byBgbWFjODAyMTFgLCBhbmQgYGl3bHdpZmlgICp1c2VzKiBgbWFjODAyMTFgLiBCdXQgaWYgYGl3bHdpZmlgIGlzbiYjMzk7dCBwcm9iZWQsIGBtYWM4MDIxMWAgd29uJiMzOTt0IGJlIGNhbGxpbmcgYGl3bHdpZmlgIGNvZGUsIHNvIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4KCklzIGl0IHBvc3NpYmxlIHRoYXQgYGl3bHdpZmlgIGlzIGxvYWRlZCBhbmQgcHJvYmVkIGluIFFFTVU/IEkgZG91YnQgUUVNVSBlbXVsYXRlcyBgaXdsd2lmaWAgaW4gYSBkaXJlY3Qgd2F5OyBJJiMzOTtkIG5lZWQgdG8gY2hlY2sgdGhlIFFFTVUgc291cmNlIGNvZGUsIHdoaWNoIEkgZG9uJiMzOTt0IGhhdmUgYWNjZXNzIHRvIHJpZ2h0IG5vdywgb3IganVzdCB0cnVzdCBteSBpbnR1aXRpb24uIFFFTVUgZG9lcyAqbm90KiBlbXVsYXRlIGBpd2x3aWZpYC4KCk9rYXksIHdoYXQgaWYgc3l6a2FsbGVyIHVzZXMgYG1hYzgwMjExX2h3c2ltYCB0byBjcmVhdGUgYSB2aXJ0dWFsIFdpLUZpIGRldmljZSwgYW5kIHRoZSBidWdzIGFyZSAqYWN0dWFsbHkqIGluIGBtYWM4MDIxMWA/IEJ1dCB0aGUgcGF0Y2ggaXMgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvYCwgc28gdGhpcyBzZWVtcyB1bmxpa2VseS4gU28sICppZiogdGhlIHBhdGNoIGlzIGluIGBpd2x3aWZpYCwgYW5kIGBpd2x3aWZpYCBpcyBub3QgcmVhY2hhYmxlIGluIFFFTVUsIHRoZW4gV29ydGhGdXp6aW5nID0gZmFsc2UuCgpCdXQgaXMgYGl3bHdpZmlgIHJlYWNoYWJsZSBpbiBRRU1VPyBNYXliZSBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSYjMzk7cyBhbnkgYGl3bHdpZmlgIHJlbGF0ZWQgY29kZSBpbiB0aGUga2VybmVsIHRoYXQgYWxsb3dzIGl0IHRvIGJlIGZ1enplZC4gSWYgSSBoYWQgYWNjZXNzIEkmIzM5O2Qgc2VhcmNoIGluIHN5emthbGxlciYjMzk7cyBgc3lzL2xpbnV4L2AgZGlyZWN0b3J5LiBBaGEhIEkgZm91bmQgYGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlYCBpbiBgbXZtL2RlYnVnZnMuY2AuIEl0IGxldHMgeW91IGluamVjdCBwYWNrZXRzIGludG8gYGl3bHdpZmlgJiMzOTtzIFJYIHF1ZXVlLiBCdXQsIGZvciB0aGF0IGRlYnVnZnMgZmlsZSB0byBldmVuICpleGlzdCosIGBpd2x3aWZpYCBtdXN0IGJlIHByb2JlZC4gQW5kIHRvIHByb2JlIGBpd2x3aWZpYCwgYSBtYXRjaGluZyBQQ0kgZGV2aWNlIG11c3QgZXhpc3QuCgpDYW4gU3l6a2FsbGVyICpjcmVhdGUqIGEgdmlydHVhbCBQQ0kgZGV2aWNlPyBMaW51eCBoYXMgYENPTkZJR19QQ0lfRU5EUE9JTlRfVEVTVGAgb3IgYENPTkZJR19WRklPYCBvciBgQ09ORklHX1BDSV9TVFVCYC4gV2FpdCwgTGludXggaGFzIGBDT05GSUdfUENJX1NUVUJgIGJ1dCBpdCBkb2VzbiYjMzk7dCBjcmVhdGUgZGV2aWNlcy4gV2hhdCBhYm91dCBgdW1lbWAgb3IgYHZpcnRpb2A/IEkmIzM5O20gbm90IHN1cmUgaWYgU3l6a2FsbGVyIHN1cHBvcnRzIHRoYXQuCgpBY3R1YWxseSwgU3l6a2FsbGVyIHJlY2VudGx5IGFkZGVkIHN1cHBvcnQgZm9yIGZ1enppbmcgUENJIGRldmljZXMgdmlhIGB2ZmlvYCBvciBgdmlydGlvYD8gTm8sIHN5emthbGxlciBoYXMgYSBgc3l6X3VzYl9jb25uZWN0YCBmb3IgVVNCLiBGb3IgUENJLCBzeXprYWxsZXIgdXNlcyBgc3l6X3BjaV9kZXZpY2VgPyBJIGdyZXBwZWQgZm9yIGBzeXpfcGNpYCBhbmQgZ290IG5vIG1hdGNoZXMuCgpXYWl0LCBtYXliZSBTeXprYWxsZXIgaXMgdXNpbmcgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseV9pZGA/CgpPa2F5LCAqaWYqIFN5emthbGxlciBmb3VuZCBidWdzIGluIGBpd2x3aWZpYCwgaXQgbWVhbnMgU3l6a2FsbGVyICpjYW4qIHJlYWNoIGl0LiBIb3c/IE1heWJlIHN5emthbGxlciBydW5zIG9uIEdDRSBpbnN0YW5jZXMgdGhhdCBoYXZlIHZpcnR1YWwgV2ktRmk/IE5vLCBHQ0UgZG9lc24mIzM5O3QgaGF2ZSBXaS1GaS4gQ291bGQgU3l6a2FsbGVyIHJ1biBvbiBhIHNwZWNpZmljIHRlc3RiZWQgd2l0aCByZWFsIGBpd2x3aWZpYCBoYXJkd2FyZT8KCkkgaGF2ZSBpdCEgVGhpcyBidWcgcmVwb3J0IHNhaWQgJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4mIzM0OyBJZiBpdCYjMzk7cyBpbXBvc3NpYmxlIHRvCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MTY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzaW11bGF0b3ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjE2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MDI3NwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeToKCioqRGlnZ2luZyBpbnRvIHRoZSBpd2x3aWZpIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBgaXdsd2lmaWAgc2l0dWF0aW9uIGJldHRlciwgbGlrZWx5IHRvIHRyb3VibGVzaG9vdCBzb21ldGhpbmcgb3IgcGVyaGFwcyBhc3Nlc3MgYSBwb3RlbnRpYWwgcGF0Y2ggb3IgZHJpdmVyIGNoYW5nZS4gTXkgZmlyc3QgaW5zdGluY3QsIGFzIGFsd2F5cywgaXMgdG8gZ28gc3RyYWlnaHQgdG8gdGhlIHNvdXJjZS4gVGhlIEtjb25maWcgZmlsZXMgaW4gdGhlIGtlcm5lbCB0cmVlIGFyZSB0aGUgdWx0aW1hdGUgYXV0aG9yaXR5IG9uIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZXNwZWNpYWxseSB3aGVuIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggZHJpdmVycy4gU28sIEkmIzM5O20gaGVhZGluZyBvdmVyIHRvIHRoZSByZWxldmFudCBkaXJlY3Rvcnkg4oCTIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWdgIOKAkyB0byBjaGVjayB0aGUgZGVmaW5pdGlvbiBmb3IgYENPTkZJR19JV0xXSUZJYC4gVGhpcyBpcyB3aGVyZSBhbGwgdGhlIGp1aWN5IGRldGFpbHMgYWJvdXQgdGhlIGBpd2x3aWZpYCBkcml2ZXImIzM5O3MgZW5hYmxlL2Rpc2FibGUgY29uZGl0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIHdpbGwgYmUgbGFpZCBvdXQuIEl0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgcmVhbGx5IGRpdmluZyBpbnRvIHRoZSBndXRzIG9mIGhvdyB0aGlzIFdpRmkgZHJpdmVyIGJlaGF2ZXMgd2l0aGluIHRoZSBrZXJuZWwgYnVpbGQgcHJvY2Vzcy4gRnJvbSB0aGVyZSwgSSBjYW4gZ2V0IGEgZ29vZCBvdmVydmlldyBvZiBpdHMgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElXTFdJRkkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoyOmNvbmZpZyBJV0xXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFdpcmVsZXNzIFdpRmkgTmV4dCBHZW4gQUdOIC0gV2lyZWxlc3MtTi9BZHZhbmNlZC1OL1VsdGltYXRlLU4gKGl3bHdpZmkpIFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz00Nz1pZiBJV0xXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NDk6Y29uZmlnIElXTFdJRklfS1VOSVRfVEVTVFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01MC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjU4OmNvbmZpZyBJV0xXSUZJX0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01OS1cdGJvb2xcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9ODQ9Y29uZmlnIElXTE1MRFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy05NC0jIGRvbiYjMzk7dCBjYWxsIGl0IF9NT0RVTEUgLS0gd2lsbCBjb25mdXNlIEtjb25maWcvZml4ZGVwLy4uLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjk1OmNvbmZpZyBJV0xXSUZJX09QTU9ERV9NT0RVTEFSXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctOTYtXHRib29sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNT1tZW51IFwmIzM0O0RlYnVnZ2luZyBPcHRpb25zXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEwNzpjb25maWcgSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwOC1cdGJvb2wgXCYjMzQ7RW5hYmxlIGZ1bGwgZGVidWdnaW5nIG91dHB1dCBpbiB0aGUgaXdsd2lmaSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzMTpjb25maWcgSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMyLVx0Ym9vbCBcJiMzNDtpd2x3aWZpIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTM5OmNvbmZpZyBJV0xXSUZJX0RFVklDRV9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTQwLVx0Ym9vbCBcJiMzNDtpd2x3aWZpIGRldmljZSBhY2Nlc3MgdHJhY2luZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNDEyMzEKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqUENJIERldmljZSBJbmplY3Rpb24gUXVlc3QqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGlzIGBpd2x3aWZpYCBkcml2ZXIuIEl0IGZ1bmRhbWVudGFsbHkgcmVsaWVzIG9uIGBQQ0lgLCByaWdodD8gVGhlIGNvcmUgY2hhbGxlbmdlIG5vdyBpcyBmaWd1cmluZyBvdXQgaG93IHRvIGluamVjdCBhIFBDSSBkZXZpY2Ugd2l0aGluIFFFTVUgdGhhdCB0aGUgYGl3bHdpZmlgIG1vZHVsZSB3aWxsIGhhcHBpbHkgYmluZCB0by4gUUVNVSAqZG9lcyogaGF2ZSBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBjYXBhYmlsaXRpZXMsIHdoaWNoIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSG93ZXZlciwgaXQgc2VlbXMgUUVNVSBkb2VzbiYjMzk7dCBkaXJlY3RseSBlbXVsYXRlIHRoZSBgaXdsd2lmaWAgZGV2aWNlIGl0c2VsZi4gCgpIbW0sIEkgcmVjYWxsIHNlZWluZyBzb21ldGhpbmcgYWJvdXQgYHN5el9wY2lfZGV2aWNlYCBpbiBzeXprYWxsZXIsIGJ1dCBhIHF1aWNrIHNlYXJjaCB3aXRoICYjMzQ7c3l6X3BjaSYjMzQ7IHlpZWxkZWQgbm90aGluZy4gTGV0IG1lIGJyb2FkZW4gdGhlIHNjb3BlLiBJIG5lZWQgdG8gZGVsdmUgaW50byB0aGUgYHRvb2xzL2AsIGBsaWIvYCwgYW5kIGBrZXJuZWwvYCBkaXJlY3RvcmllcyB3aXRoaW4gdGhlIHN5emthbGxlciByZXBvc2l0b3J5LiBUaGVyZSYjMzk7cyBib3VuZCB0byBiZSBzb21lIGNsZXZlciBtZWNoYW5pc20gaW4gdGhlcmUgZm9yIFBDSSBpbmplY3Rpb24sIHBlcmhhcHMgdW5kZXIgYSBtb3JlIGdlbmVyaWMgYHN5el9gIHByZWZpeC4gVGhhdCYjMzk7cyB3aGVyZSB0aGUgbWFnaWMgcHJvYmFibHkgbGllcy4gR290dGEgZGlnIGRlZXBlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzeXpfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bGliLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MTYwOQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDMyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFN5emthbGxlciBDb25uZWN0aW9uIHRvIGBpd2x3aWZpYCBhbmQgV29ydGhGdXp6aW5nKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBgaXdsd2lmaWAgcGF0Y2ggaXMgYWN0dWFsbHkgJiMzNDt3b3J0aCBmdXp6aW5nJiMzNDsgZ2l2ZW4gdGhlIHByb21wdCYjMzk7cyByZXN0cmljdGlvbnMuIFRoZSBpbml0aWFsIHRob3VnaHQgd2FzLCAmIzM0O1N5emthbGxlciBmb3VuZCBzb21ldGhpbmcgaW4gYGl3bHdpZmlgIOKAkyBob3cgZGlkIGl0IGV2ZW4gKmdldCogdGhlcmU/IFRob3NlIHBzZXVkby1zeXNjYWxscyBhcmUgZXhlY3V0b3Itc2lkZSwgbm90IGluIHRoZSBjb3JlIGtlcm5lbC4mIzM0OyBUaGVuIEkgY29uc2lkZXJlZCwgJiMzNDtDb3VsZCBpdCBiZSBhIGBtYWM4MDIxMV9od3NpbWAgc2NlbmFyaW8sIG1lYW5pbmcgaXQmIzM5O3MgKm5vdCogYSBidWcgZGlyZWN0bHkgaW4gYGl3bHdpZmlgIGNvZGU/JiMzNDsgQnV0IG5vLCB0aGUgcGF0Y2ggc3BlY2lmaWNhbGx5IHRhcmdldHMgdGhhdCBkaXJlY3RvcnkgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2ApLiBTbyBpZiBTeXprYWxsZXIgKmRpZCogZmluZCBzb21ldGhpbmcsIGBpd2x3aWZpYCBtdXN0IGJlIHJlYWNoYWJsZSBzb21laG93LgoKVGhlbiBpdCBoaXQgbWU6ICYjMzQ7RHVoISBTeXprYWxsZXIgKmNhbiogcnVuIG9uIHJlYWwgaGFyZHdhcmUhJiMzNDsgTWF5YmUgc29tZW9uZSByYW4gaXQgb24gYSBsYXB0b3Agd2l0aCBhbiBJbnRlbCBXaS1GaSBjYXJkLCBhbmQgdGhhdCYjMzk7cyBob3cgdGhlIGJ1ZyB3YXMgZXhwb3NlZC4KCkJ1dCB3YWl0IGEgbWludXRlLCB0aGUgcHJvbXB0ICpzcGVjaWZpY2FsbHkqIHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBhZmZlY3RlZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGBpd2x3aWZpYCBpcyBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgaW4gUUVNVSwgdGhlbiBpdCBpcyBub3QgV29ydGhGdXp6aW5nLgoKVGhlIGtleSBxdWVzdGlvbiBpcywgJiMzNDtJcyBgaXdsd2lmaWAgZXZlbiAqcHJlc2VudCogaW4gUUVNVT8mIzM0OyBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgSW50ZWwgV2ktRmkgY2FyZHMsIHJpZ2h0PyBJJiMzOTttIHByZXR0eSBzdXJlIHRoZXJlJiMzOTtzIG5vIGBpd2x3aWZpYCBkZXZpY2UgZm9yIFFFTVUuIEhvbGQgb24sIGlzIHRoZXJlICphbnkqIHZpcnR1YWwgYGl3bHdpZmlgIGRldmljZSBvciB0ZXN0IG1vZHVsZSB0aGF0ICpjb3VsZCogZXhpc3Q/IEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoYXQuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXdsd2lmaSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxNTE1IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9Mj1jb25maWcgSVdMV0lGSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjM6XHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBXaXJlbGVzcyBXaUZpIE5leHQgR2VuIEFHTiAtIFdpcmVsZXNzLU4vQWR2YW5jZWQtTi9VbHRpbWF0ZS1OIChpd2x3aWZpKSBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy00LVx0ZGVwZW5kcyBvbiBQQ0kgXHUwMDI2XHUwMDI2IEhBU19JT01FTSBcdTAwMjZcdTAwMjYgQ0ZHODAyMTFcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MzU6XHQgICAgICAgICAgXHUwMDNjaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvRHJpdmVycy9pd2x3aWZpXHUwMDNlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTM2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy00NC1cdCAgc2F5IE0gaGVyZSBhbmQgcmVhZCBcdTAwM2NmaWxlOkRvY3VtZW50YXRpb24va2J1aWxkL21vZHVsZXMucnN0XHUwMDNlLiAgVGhlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NDU6XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBpd2x3aWZpLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTQ2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz00OT1jb25maWcgSVdMV0lGSV9LVU5JVF9URVNUU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01My1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo1NDpcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIGZvciBpd2x3aWZpIGt1bml0IHRlc3RzLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTU1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz02Nj1jb25maWcgSVdMRFZNXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTcxLVx0ICBvZiB0aGUgZGV2aWNlcyB0aGF0IHVzZSB0aGlzIGZpcm13YXJlIGlzIGF2YWlsYWJsZSBoZXJlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjcyOlx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9kcml2ZXJzL2l3bHdpZmkjZmlybXdhcmVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy03My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz03ND1jb25maWcgSVdMTVZNXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTgxLVx0ICBvZiB0aGUgZGV2aWNlcyB0aGF0IHVzZSB0aGlzIGZpcm13YXJlIGlzIGF2YWlsYWJsZSBoZXJlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjgyOlx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9kcml2ZXJzL2l3bHdpZmkjZmlybXdhcmVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy04My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz04ND1jb25maWcgSVdMTUxEXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTkxLVx0ICBUaGUgbGlzdCBvZiB0aGUgZGV2aWNlcyB0aGF0IHVzZSB0aGlzIGZpcm13YXJlIGlzIGF2YWlsYWJsZSBoZXJlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjkyOlx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9kcml2ZXJzL2l3bHdpZmkjZmlybXdhcmVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy05My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9OTU9Y29uZmlnIElXTFdJRklfT1BNT0RFX01PRFVMQVJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEwMjpjb21tZW50IFwmIzM0O1dBUk5JTkc6IGl3bHdpZmkgaXMgdXNlbGVzcyB3aXRob3V0IElXTERWTSBvciBJV0xNVk0gb3IgSVdMTUxEXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTAzLVx0ZGVwZW5kcyBvbiBJV0xEVk09biBcdTAwMjZcdTAwMjYgSVdMTVZNPW4gXHUwMDI2XHUwMDI2IElXTE1MRD1uXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNz1jb25maWcgSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEwODpcdGJvb2wgXCYjMzQ7RW5hYmxlIGZ1bGwgZGVidWdnaW5nIG91dHB1dCBpbiB0aGUgaXdsd2lmaSBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMDktXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTEwOlx0ICBUaGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBkZWJ1ZyB0cmFjaW5nIG91dHB1dCBmb3IgdGhlIGl3bHdpZmkgZHJpdmVyc1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjExNjpcdFx0L3N5cy9tb2R1bGUvaXdsd2lmaS9wYXJhbWV0ZXJzL2RlYnVnXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTE3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTIyOlx0XHQgICUgZWNobyAweDQzZmZmIFx1MDAzZSAvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTI0LVx0ICBZb3UgY2FuIGZpbmQgdGhlIGxpc3Qgb2YgZGVidWcgbWFzayB2YWx1ZXMgaW46XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTI1Olx0XHQgIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLWRlYnVnLmhcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEzMT1jb25maWcgSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTMyOlx0Ym9vbCBcJiMzNDtpd2x3aWZpIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzMy1cdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzNC1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMzU6XHQgIEVuYWJsZSBjcmVhdGlvbiBvZiBkZWJ1Z2ZzIGZpbGVzIGZvciB0aGUgaXdsd2lmaSBkcml2ZXJzLiBUaGlzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTM2LVx0ICBpcyBhIGxvdy1pbXBhY3Qgb3B0aW9uIHRoYXQgYWxsb3dzIGdldHRpbmcgaW5zaWdodCBpbnRvIHRoZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0xMzk9Y29uZmlnIElXTFdJRklfREVWSUNFX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxNDA6XHRib29sIFwmIzM0O2l3bHdpZmkgZGV2aWNlIGFjY2VzcyB0cmFjaW5nXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTQxLVx0ZGVwZW5kcyBvbiBFVkVOVF9UUkFDSU5HXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0NC1cdCAgU2F5IFkgaGVyZSB0byB0cmFjZSBhbGwgY29tbWFuZHMsIGluY2x1ZGluZyBUWCBmcmFtZXMgYW5kIElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTQ1Olx0ICBhY2Nlc3Nlcywgc2VudCB0byB0aGUgZGV2aWNlLiBJZiB5b3Ugc2F5IHllcywgaXdsd2lmaSB3aWxsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTQ2LVx0ICByZWdpc3RlciB3aXRoIHRoZSBmdHJhY2UgZnJhbWV3b3JrIGZvciBldmVudCB0cmFjaW5nIGFuZCBkdW1wXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yLSMgY29tbW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0lXTFdJRkkpXHQmIzQzOz0gaXdsd2lmaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQ6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtaW8ub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo1Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLWRydi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjY6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtZGVidWcub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo3Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLW52bS11dGlscy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjg6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtdXRpbHMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo5Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLXBoeS1kYi5vIGl3bC1udm0tcGFyc2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTEtIyBCdXNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTI6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBwY2llL2N0eHQtaW5mby5vIHBjaWUvY3R4dC1pbmZvLXYyLm8gcGNpZS9kcnYubyBwY2llL3V0aWxzLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTM6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBwY2llL2dlbjFfMi9yeC5vIHBjaWUvZ2VuMV8yL3R4Lm8gcGNpZS9nZW4xXzIvdHJhbnMub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxNDppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IHBjaWUvZ2VuMV8yL3RyYW5zLWdlbjIubyBwY2llL2dlbjFfMi90eC1nZW4yLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlPTE2PUNGTEFHU19wY2llL2Rydi5vICYjNDM7PSAtV25vLW92ZXJyaWRlLWluaXRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTE4LSMgY29tYmluZWQgTUFDL1JGIGNvbmZpZ3VyYXRpb25zXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjE5Oml3bHdpZmktJChDT05GSUdfSVdMRFZNKSAmIzQzOz0gY2ZnLzEwMDAubyBjZmcvMjAwMC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjIwOml3bHdpZmktJChDT05GSUdfSVdMRFZNKSAmIzQzOz0gY2ZnLzUwMDAubyBjZmcvNjAwMC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjIxOml3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnLzcwMDAubyBjZmcvODAwMC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTIyLSMgTUFDIGNvbmZpZ3VyYXRpb25zXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjIzOml3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnLzkwMDAubyBjZmcvMjIwMDAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNDppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy9heDIxMC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI1Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnL2J6Lm8gY2ZnL3NjLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjY6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICYjNDM7PSBjZmcvYnoubyBjZmcvc2MubyBjZmcvZHIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yNy0jIFJGIGNvbmZpZ3VyYXRpb25zXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI4Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnL3JmLWpmLm8gY2ZnL3JmLWhyLm8gY2ZnL3JmLWdmLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mjk6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICYjNDM7PSBjZmcvcmYtZm0ubyBjZmcvcmYtd2gubyBjZmcvcmYtcGUub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0zMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzE6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtZGJnLXRsdi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjMyOml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLXRyYW5zLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM0Oml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gZncvaW1nLm8gZncvbm90aWYtd2FpdC5vIGZ3L3JzLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzU6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBmdy9kYmcubyBmdy9kYmctb2xkLm8gZncvcG52bS5vIGZ3L2R1bXAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNjppd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGZ3L3JlZ3VsYXRvcnkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNzppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGZ3L3BhZ2luZy5vIGZ3L3NtZW0ubyBmdy9pbml0Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzg6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICYjNDM7PSBmdy9zbWVtLm8gZncvaW5pdC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM5Oml3bHdpZmktJChDT05GSUdfQUNQSSkgJiM0Mzs9IGZ3L2FjcGkub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0MDppd2x3aWZpLSQoQ09ORklHX0VGSSlcdCYjNDM7PSBmdy91ZWZpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDE6aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFQlVHRlMpICYjNDM7PSBmdy9kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQzOml3bHdpZmktb2JqcyAmIzQzOz0gJChpd2x3aWZpLW0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0NTppd2x3aWZpLSQoQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkcpICYjNDM7PSBpd2wtZGV2dHJhY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmM6MjU6I2RlZmluZSBJV0wxMDAwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTEwMDBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYy0yNi0jZGVmaW5lIElXTDEwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTAwMF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jOjI4OiNkZWZpbmUgSVdMMTAwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTEwMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jLTI5LSNkZWZpbmUgSVdMMTAwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDEwMF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYzozMTojZGVmaW5lIElXTDIwMzBfRldfUFJFIFwmIzM0O2l3bHdpZmktMjAzMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTMyLSNkZWZpbmUgSVdMMjAzMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wyMDMwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6MzQ6I2RlZmluZSBJV0wyMDAwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTIwMDBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zNS0jZGVmaW5lIElXTDIwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMjAwMF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jOjM3OiNkZWZpbmUgSVdMMTA1X0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTEwNVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTM4LSNkZWZpbmUgSVdMMTA1X01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDEwNV9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jOjQwOiNkZWZpbmUgSVdMMTM1X0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTEzNVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTQxLSNkZWZpbmUgSVdMMTM1X01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDEzNV9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmMtMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jOjE4OiNkZWZpbmUgSVdMX0NDX0FfRldfUFJFXHRcdFx0XCYjMzQ7aXdsd2lmaS1jYy1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoxOTojZGVmaW5lIElXTF9RVV9CX0hSX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktUXUtYjAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmM6MjA6I2RlZmluZSBJV0xfUVVfQ19IUl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLVF1LWMwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jOjIxOiNkZWZpbmUgSVdMX1FVWl9BX0hSX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktUXVaLWEwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jLTIyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0yNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYzoyNzojZGVmaW5lIElXTDUwMDBfRldfUFJFIFwmIzM0O2l3bHdpZmktNTAwMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jLTI4LSNkZWZpbmUgSVdMNTAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w1MDAwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmMtMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmM6MzA6I2RlZmluZSBJV0w1MTUwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTUxNTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0zMS0jZGVmaW5lIElXTDUxNTBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNTE1MF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYzo0MDojZGVmaW5lIElXTDYwMDBfRldfUFJFIFwmIzM0O2l3bHdpZmktNjAwMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQxLSNkZWZpbmUgSVdMNjAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w2MDAwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDM6I2RlZmluZSBJV0w2MDUwX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTYwNTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00NC0jZGVmaW5lIElXTDYwNTBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjA1MF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jOjQ2OiNkZWZpbmUgSVdMNjAwNV9GV19QUkUgXCYjMzQ7aXdsd2lmaS02MDAwZzJhXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDctI2RlZmluZSBJV0w2MDA1X01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDYwMDVfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYzo0OTojZGVmaW5lIElXTDYwMzBfRldfUFJFIFwmIzM0O2l3bHdpZmktNjAwMGcyYlwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTUwLSNkZWZpbmUgSVdMNjAzMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w2MDMwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjM3OiNkZWZpbmUgSVdMNzI2MF9GV19QUkUgXCYjMzQ7aXdsd2lmaS03MjYwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtMzgtI2RlZmluZSBJV0w3MjYwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDcyNjBfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzo0MDojZGVmaW5lIElXTDMxNjBfRldfUFJFIFwmIzM0O2l3bHdpZmktMzE2MFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQxLSNkZWZpbmUgSVdMMzE2MF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wzMTYwX0ZXX1BSRSBcJiMzNDstXCYjMzQ7IF9fc3RyaW5naWZ5KGFwaSkgXCYjMzQ7LnVjb2RlXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6NDM6I2RlZmluZSBJV0wzMTY4X0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTMxNjhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00NC0jZGVmaW5lIElXTDMxNjhfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMzE2OF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQ2OiNkZWZpbmUgSVdMNzI2NV9GV19QUkUgXCYjMzQ7aXdsd2lmaS03MjY1XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDctI2RlZmluZSBJV0w3MjY1X01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDcyNjVfRldfUFJFIFwmIzM0Oy1cJiMzNDsgX19zdHJpbmdpZnkoYXBpKSBcJiMzNDsudWNvZGVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzo0OTojZGVmaW5lIElXTDcyNjVEX0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTcyNjVEXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNTAtI2RlZmluZSBJV0w3MjY1RF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w3MjY1RF9GV19QUkUgXCYjMzQ7LVwmIzM0OyBfX3N0cmluZ2lmeShhcGkpIFwmIzM0Oy51Y29kZVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0yOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYzozMDojZGVmaW5lIElXTDgwMDBfRldfUFJFIFwmIzM0O2l3bHdpZmktODAwMENcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0zMS0jZGVmaW5lIElXTDgwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmMtMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmM6MzQ6I2RlZmluZSBJV0w4MjY1X0ZXX1BSRSBcJiMzNDtpd2x3aWZpLTgyNjVcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0zNS0jZGVmaW5lIElXTDgyNjVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy85MDAwLmMtMjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy85MDAwLmM6MjI6I2RlZmluZSAgSVdMOTAwMF9GV19QUkUgXCYjMzQ7aXdsd2lmaS05MDAwLXB1LWIwLWpmLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy85MDAwLmM6MjM6I2RlZmluZSAgSVdMOTI2MF9GV19QUkUgXCYjMzQ7aXdsd2lmaS05MjYwLXRoLWIwLWpmLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy85MDAwLmMtMjQtI2RlZmluZSBJV0w5MDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYy0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MTg6I2RlZmluZSBJV0xfU09fQV9HRl9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNvLWEwLWdmLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjE5OiNkZWZpbmUgSVdMX1RZX0FfR0ZfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS10eS1hMC1nZi1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyMDojZGVmaW5lIElXTF9NQV9BX0dGX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktbWEtYTAtZ2YtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjE6I2RlZmluZSBJV0xfTUFfQl9HRl9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLW1hLWIwLWdmLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjIyOiNkZWZpbmUgSVdMX1NPX0FfR0Y0X0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc28tYTAtZ2Y0LWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjIzOiNkZWZpbmUgSVdMX01BX0FfR0Y0X0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktbWEtYTAtZ2Y0LWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI0OiNkZWZpbmUgSVdMX01BX0JfR0Y0X0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktbWEtYjAtZ2Y0LWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI1OiNkZWZpbmUgSVdMX1NPX0FfSFJfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zby1hMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyNjojZGVmaW5lIElXTF9NQV9BX0hSX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktbWEtYTAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6Mjc6I2RlZmluZSBJV0xfTUFfQl9IUl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLW1hLWIwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jLTI4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmMtMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jOjE4OiNkZWZpbmUgSVdMX0JaX0FfRk1fQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1iei1hMC1mbS1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoxOTojZGVmaW5lIElXTF9CWl9BX0ZNX0NfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktYnotYTAtZm0tYzBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MjA6I2RlZmluZSBJV0xfQlpfQV9GTTRfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1iei1hMC1mbTQtYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MjE6I2RlZmluZSBJV0xfR0xfQl9GTV9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWdsLWIwLWZtLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jOjIyOiNkZWZpbmUgSVdMX0dMX0NfRk1fQ19GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1nbC1jMC1mbS1jMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYy0yMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9kci5jLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvZHIuYzoxNzojZGVmaW5lIElXTF9EUl9BX1BFX0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktZHItYTAtcGUtYTBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2RyLmMtMTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYy0xMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmM6MTQ6I2RlZmluZSBJV0xfQlpfQV9HRl9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLWJ6LWEwLWdmLWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jOjE1OiNkZWZpbmUgSVdMX0JaX0FfR0Y0X0FfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktYnotYTAtZ2Y0LWEwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jOjE2OiNkZWZpbmUgSVdMX1NDX0FfR0ZfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYy1hMC1nZi1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNzojZGVmaW5lIElXTF9TQ19BX0dGNF9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjLWEwLWdmNC1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYy0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtaHIuYzoxNDojZGVmaW5lIElXTF9CWl9BX0hSX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktYnotYTAtaHItYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTU6I2RlZmluZSBJV0xfU0NfQV9IUl9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjLWEwLWhyLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jOjE2OiNkZWZpbmUgSVdMX1NDX0FfSFJfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYy1hMC1oci1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtaHIuYy0xNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYzoxNDojZGVmaW5lIElXTF9RVV9CX0pGX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktUXUtYjAtamYtYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTU6I2RlZmluZSBJV0xfUVVfQ19KRl9CX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLVF1LWMwLWpmLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jOjE2OiNkZWZpbmUgSVdMX1FVWl9BX0pGX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktUXVaLWEwLWpmLWIwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jOjE3OiNkZWZpbmUgSVdMX1NPX0FfSkZfQl9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zby1hMC1qZi1iMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYy0xOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoxODojZGVmaW5lIElXTF9TQ19BX0ZNX0JfRldfUFJFXHRcdFwmIzM0O2l3bHdpZmktc2MtYTAtZm0tYjBcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MTk6I2RlZmluZSBJV0xfU0NfQV9GTV9DX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjLWEwLWZtLWMwXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jOjIwOiNkZWZpbmUgSVdMX1NDX0FfV0hfQV9GV19QUkVcdFx0XCYjMzQ7aXdsd2lmaS1zYy1hMC13aC1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoyMTojZGVmaW5lIElXTF9TQzJfQV9GTV9DX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjMi1hMC1mbS1jMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoyMjojZGVmaW5lIElXTF9TQzJfQV9XSF9BX0ZXX1BSRVx0XHRcJiMzNDtpd2x3aWZpLXNjMi1hMC13aC1hMFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYy0yMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjI2Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfZndfcmVzdGFydF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI2Ni1cdHN0cnVjdCBpd2xfcHJpdiAqcHJpdiA9IGZpbGUtXHUwMDNlcHJpdmF0ZV9kYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIyNjc6XHRib29sIGZ3X3Jlc3RhcnQgPSBpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjY4LVx0aW50IF9fbWF5YmVfdW51c2VkIHJldDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjY5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIyNzA6XHRpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydCA9IHRydWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI3MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI3OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjc5Olx0aXdsd2lmaV9tb2RfcGFyYW1zLmZ3X3Jlc3RhcnQgPSBmd19yZXN0YXJ0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIzMTM9dm9pZCBpd2xfZGJnZnNfcmVnaXN0ZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LCBzdHJ1Y3QgZGVudHJ5ICpkYmdmc19kaXIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjM4MTpcdFx0ZGVidWdmc19jcmVhdGVfc3ltbGluayhcJiMzNDtpd2x3aWZpXCYjMzQ7LCBtYWM4MDIxMV9kaXIsIGJ1Zik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM4Mi1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaD0yMTA9c3RydWN0IGl3bF9zZW5zaXRpdml0eV9yYW5nZXMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTI0NC0gKiBOYW1pbmcgY29udmVudGlvbiAtLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6MjQ1OiAqIGl3bF8gICAgICAgICBcdTAwM2MtLSBJcyBwYXJ0IG9mIGl3bHdpZmlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTI0Ni0gKiBpd2xYWFhYXyAgICAgXHUwMDNjLS0gSGFyZHdhcmUgc3BlY2lmaWMgKGltcGxlbWVudGVkIGluIGl3bC1YWFhYLmMgZm9yIFhYWFgpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZWVwcm9tLmM9MTA1OT1pd2xfcGFyc2VfZWVwcm9tX2RhdGEoc3RydWN0IGl3bF90cmFucyAqdHJhbnMsIGNvbnN0IHN0cnVjdCBpd2xfcmZfY2ZnICpjZmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZWVwcm9tLmMtMTExOC1cdGRhdGEtXHUwMDNlc2t1X2NhcF9pcGFuX2VuYWJsZSA9IHNrdSBcdTAwMjYgRUVQUk9NX1NLVV9DQVBfSVBBTl9FTkFCTEU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYzoxMTE5Olx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5kaXNhYmxlXzExbiBcdTAwMjYgSVdMX0RJU0FCTEVfSFRfQUxMKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZWVwcm9tLmMtMTEyMC1cdFx0ZGF0YS1cdTAwM2Vza3VfY2FwXzExbl9lbmFibGUgPSBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuYz0xNTU9dm9pZCBpd2xfbGVkc19pbml0KHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xlZC5jLTE1Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuYzoxNTc6XHRpbnQgbW9kZSA9IGl3bHdpZmlfbW9kX3BhcmFtcy5sZWRfbW9kZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xlZC5jLTE1OC1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM9MjAxPXZvaWQgaXdsYWduX3NlbmRfYWR2YW5jZV9idF9jb25maWcoc3RydWN0IGl3bF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTI2Mi1cdCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM6MjYzOlx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuYnRfY29leF9hY3RpdmUgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTI2NC1cdCAgICBwcml2LVx1MDAzZWl3X21vZGUgPT0gTkw4MDIxMV9JRlRZUEVfQURIT0MpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYz0xMDM0PWludCBpd2xhZ25fc3VzcGVuZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBjZmc4MDIxMV93b3dsYW4gKndvd2xhbilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYy0xMTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM6MTEzNjpcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYy0xMTM3LVx0XHQvKiBtYXJrIGFsbCBrZXlzIGNsZWFyICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz03OD1pbnQgaXdsYWduX21hY19zZXR1cF9yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xMjEtXHRpZiAocHJpdi1cdTAwM2Vmdy1cdTAwM2V1Y29kZV9jYXBhLmZsYWdzIFx1MDAyNiBJV0xfVUNPREVfVExWX0ZMQUdTX01GUCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTIyOlx0ICAgICFpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTEyMy1cdFx0aWVlZTgwMjExX2h3X3NldChodywgTUZQX0NBUEFCTEUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTUyLVx0XHRcdFx0XHQgICAgIFdJUEhZX1dPV0xBTl9SRktJTExfUkVMRUFTRTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTUzOlx0XHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTU0LVx0XHRcdHByaXYtXHUwMDNld293bGFuX3N1cHBvcnQuZmxhZ3MgfD1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTY3Olx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5wb3dlcl9zYXZlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNjgtXHRcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZWZsYWdzIHw9IFdJUEhZX0ZMQUdfUFNfT05fQllfREVGQVVMVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTMyNT1zdGF0aWMgdm9pZCBpd2xhZ25fbWFjX3NldF9yZWtleV9kYXRhKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMzMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzozMzE6XHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0zMzItXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTU4OD1zdGF0aWMgaW50IGl3bGFnbl9tYWNfc2V0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy02MDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjYwMTpcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNjAyLVx0XHRJV0xfREVCVUdfTUFDODAyMTEocHJpdiwgXCYjMzQ7bGVhdmUgLSBod2NyeXB0byBkaXNhYmxlZFxcblwmIzM0Oyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTM5OD1zdGF0aWMgdm9pZCBpd2xfcHJpbnRfY29udF9ldmVudF90cmFjZShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHUzMiBiYXNlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00MzQtXHRcdGlmIChtb2RlID09IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo0MzU6XHRcdFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfY29udF9ldmVudChcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00MzYtXHRcdFx0XHRcdHByaXYtXHUwMDNldHJhbnMtXHUwMDNlZGV2LCAwLCB0aW1lLCBldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTQzOC1cdFx0XHRkYXRhID0gaXdsX3JlYWQzMihwcml2LVx1MDAzZXRyYW5zLCBIQlVTX1RBUkdfTUVNX1JEQVQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjQzOTpcdFx0XHR0cmFjZV9pd2x3aWZpX2Rldl91Y29kZV9jb250X2V2ZW50KFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTQ0MC1cdFx0XHRcdFx0cHJpdi1cdTAwM2V0cmFucy1cdTAwM2VkZXYsIHRpbWUsIGRhdGEsIGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9NDQ3PXN0YXRpYyB2b2lkIGl3bF9jb250aW51b3VzX2V2ZW50X3RyYWNlKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNTAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjUwNDpcdFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfd3JhcF9ldmVudChwcml2LVx1MDAzZXRyYW5zLVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy01MDUtXHRcdFx0XHRudW1fd3JhcHMgLSBwcml2LVx1MDAzZWV2ZW50X2xvZy5udW1fd3JhcHMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTczNz1zdGF0aWMgdm9pZCBpd2xfc2VuZF9idF9jb25maWcoc3RydWN0IGl3bF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy03NDUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6NzQ2Olx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuYnRfY29leF9hY3RpdmUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNzQ3LVx0XHRidF9jbWQuZmxhZ3MgPSBCVF9DT0VYX0RJU0FCTEU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTEyMzM9c3RhdGljIHN0cnVjdCBpd2xfb3BfbW9kZSAqaXdsX29wX21vZGVfZHZtX3N0YXJ0KHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMzI0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjEzMjU6XHRzd2l0Y2ggKGl3bHdpZmlfbW9kX3BhcmFtcy5hbXNkdV9zaXplKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMyNi1cdGNhc2UgSVdMX0FNU0RVX0RFRjpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMzNi1cdFx0cHJfZXJyKFwmIzM0O1Vuc3VwcG9ydGVkIGFtc2R1X3NpemU6ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjEzMzc6XHRcdCAgICAgICBpd2x3aWZpX21vZF9wYXJhbXMuYW1zZHVfc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMzOC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9MTY5OD1zdGF0aWMgaW50IGl3bF9wcmludF9ldmVudF9sb2coc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIgc3RhcnRfaWR4LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xNzQ3LVx0XHRcdH0gZWxzZSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTc0ODpcdFx0XHRcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX2V2ZW50KHRyYW5zLVx1MDAzZWRldiwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xNzQ5LVx0XHRcdFx0XHR0aW1lLCBldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE3NjEtXHRcdFx0XHRcdHRpbWUsIGRhdGEsIGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxNzYyOlx0XHRcdFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfZXZlbnQodHJhbnMtXHUwMDNlZGV2LCB0aW1lLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE3NjMtXHRcdFx0XHRcdGRhdGEsIGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9MTkxMj1zdGF0aWMgdm9pZCBpd2xhZ25fZndfZXJyb3Ioc3RydWN0IGl3bF9wcml2ICpwcml2LCBib29sIG9uZGVtYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xOTQ1LVx0aWYgKCF0ZXN0X2JpdChTVEFUVVNfRVhJVF9QRU5ESU5HLCBcdTAwMjZwcml2LVx1MDAzZXN0YXR1cykpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxOTQ2Olx0XHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLmZ3X3Jlc3RhcnQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xOTQ3LVx0XHRcdElXTF9ERUJVR19GVyhwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM9MjcxPXN0YXRpYyB2b2lkIGl3bF9wb3dlcl9idWlsZF9jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmMtMzAxLVx0XHRidXQgd2UgcGFzcyAwLTQgYmVjYXVzZSBpdCBhY3RzIGFzIGFuIGFycmF5IGluZGV4LiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYzozMDI6XHRcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMucG93ZXJfbGV2ZWwgXHUwMDNlIElXTF9QT1dFUl9JTkRFWF8xIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYzozMDM6XHRcdCAgICBpd2x3aWZpX21vZF9wYXJhbXMucG93ZXJfbGV2ZWwgXHUwMDNjPSBJV0xfUE9XRVJfTlVNKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYy0zMDQtXHRcdFx0aXdsX3N0YXRpY19zbGVlcF9jbWQocHJpdiwgY21kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYzozMDU6XHRcdFx0XHRpd2x3aWZpX21vZF9wYXJhbXMucG93ZXJfbGV2ZWwgLSAxLCBkdGltcGVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmMtMzA2LVx0XHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYz02MDQ9c3RhdGljIHZvaWQgaXdsYWduX3Bhc3NfcGFja2V0X3RvX21hYzgwMjExKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTYyMy1cdC8qIEluIGNhc2Ugb2YgSFcgYWNjZWxlcmF0ZWQgY3J5cHRvIGFuZCBiYWQgZGVjcnlwdGlvbiwgZHJvcCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYzo2MjQ6XHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0byBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNjI1LVx0ICAgIGl3bGFnbl9zZXRfZGVjcnlwdGVkX2ZsYWcocHJpdiwgaGRyLCBhbXBkdV9zdGF0dXMsIHN0YXRzKSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmM9MTAyMz1pbnQgaXdsYWduX2NvbW1pdF9yeG9uKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGl3bF9yeG9uX2NvbnRleHQgKmN0eClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmMtMTEwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYzoxMTAzOlx0aXdsX3NldF9yeG9uX2h3Y3J5cHRvKHByaXYsIGN0eCwgIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0byk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmMtMTEwNC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oPTEzNj1zdHJ1Y3QgaXdsX2Z3X3BhZ2luZyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaC0xNDMtLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oOjE0NDogKiBlbnVtIGl3bF9md190eXBlIC0gaXdsd2lmaSBmaXJtd2FyZSB0eXBlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oLTE0NS0gKiBASVdMX0ZXX0RWTTogRFZNIGZpcm13YXJlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGJnLXRsdi5jPTQ5OT12b2lkIGl3bF9kYmdfdGx2X2xvYWRfYmluKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGl3bF90cmFucyAqdHJhbnMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGJnLXRsdi5jLTUwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYzo1MDU6XHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5lbmFibGVfaW5pIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kYmctdGx2LmMtNTA2LVx0ICAgIHRyYW5zLVx1MDAzZW1hY19jZmctXHUwMDNlZGV2aWNlX2ZhbWlseSBcdTAwM2M9IElXTF9ERVZJQ0VfRkFNSUxZXzgwMDApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYz0xMz12b2lkIF9faXdsXyAjI2ZuKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pXHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtMjItXHRkZXZfICMjZm4oZGV2LCBcJiMzNDslcFZcJiMzNDssIFx1MDAyNnZhZik7XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYzoyMzpcdHRyYWNlX2l3bHdpZmlfICMjZm4oXHUwMDI2dmFmKTtcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTI0LVx0dmFfZW5kKGFyZ3MpO1x0XHRcdFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYz0zND12b2lkIF9faXdsX2VycihzdHJ1Y3QgZGV2aWNlICpkZXYsIGVudW0gaXdsX2Vycl9tb2RlIG1vZGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNjAtXHR2YWYudmEgPSBcdTAwMjZhcmdzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYzo2MTpcdHRyYWNlX2l3bHdpZmlfZXJyKFx1MDAyNnZhZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTYyLVx0dmFfZW5kKGFyZ3MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM9Njc9dm9pZCBfX2l3bF9kYmcoc3RydWN0IGRldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtODItI2VuZGlmXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjgzOlx0dHJhY2VfaXdsd2lmaV9kYmcobGV2ZWwsIGZ1bmN0aW9uLCBcdTAwMjZ2YWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy04NC1cdHZhX2VuZChhcmdzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTE2PXN0YXRpYyBpbmxpbmUgYm9vbCBpd2xfaGF2ZV9kZWJ1Z19sZXZlbCh1MzIgbGV2ZWwpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xOC0jaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTk6XHRyZXR1cm4gaXdsd2lmaV9tb2RfcGFyYW1zLmRlYnVnX2xldmVsIFx1MDAyNiBsZXZlbDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMjAtI2Vsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTEwMj1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcdFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI2LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEyNzogKlx0L3N5cy9tb2R1bGUvaXdsd2lmaS9wYXJhbWV0ZXJzL2RlYnVnXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEyOC0gKiB3aGVuIENPTkZJR19JV0xXSUZJX0RFQlVHPXkuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEyOS0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMzA6ICpcdC9zeXMva2VybmVsL2RlYnVnL3BoeTAvaXdsd2lmaS9kZWJ1Zy9kZWJ1Z19sZXZlbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMzEtICogd2hlbiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTPXkuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oLTE0LSN1bmRlZiBUUkFDRV9TWVNURU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaDoxNTojZGVmaW5lIFRSQUNFX1NZU1RFTSBpd2x3aWZpX2RhdGFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaDoxNzpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl90eF90YixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0xOC1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmg6Mzc6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfcnhfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0zOC1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE0LSN1bmRlZiBUUkFDRV9TWVNURU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTU6I2RlZmluZSBUUkFDRV9TWVNURU0gaXdsd2lmaV9pb1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTc6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW9yZWFkMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE4LVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0zMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MzQ6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW93cml0ZTgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTM1LVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTggdmFsKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDo1MTpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTUyLVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC02Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6Njg6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW93cml0ZTY0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC02OS1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IG9mZnMsIHU2NCB2YWwpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjg1OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGVfcHJwaDMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC04Ni1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIG9mZnMsIHUzMiB2YWwpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDoxMDI6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW93cml0ZV9wcnBoNjQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEwMy1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IG9mZnMsIHU2NCB2YWwpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDoxMTk6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW9yZWFkX3BycGgzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTIwLVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xMzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjEzNjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pcnEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEzNy1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjE0OTpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pcnFfbXNpeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTUwLVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbXNpeF9lbnRyeSAqbXNpeF9lbnRyeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTcyOlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2ljdF9yZWFkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNzMtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBpbmRleCwgdTMyIHZhbHVlKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmgtMTUtI3VuZGVmIFRSQUNFX1NZU1RFTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oOjE2OiNkZWZpbmUgVFJBQ0VfU1lTVEVNIGl3bHdpZmlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaDoxODpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9oY21kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTE5LVx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC01MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaDo1MjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9yeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC01My1cdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmgtNzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmg6NzM6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfdHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmgtNzQtXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU3NzY4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNjQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGFuIGl3bHdpZmkgQnVnIHdpdGggc3l6a2FsbGVyKioKCk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhpcyBidWcgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvYCBpcyBldmVuIHdvcnRoIGZ1enppbmcuIEkgdGhvdWdodCwgaW5pdGlhbGx5LCB0aGF0IHN5emthbGxlciAqZGlkKiBoYXZlIGNhbGxzIGxpa2UgYHN5el9wY2lfZGV2aWNlYCBvciBgc3l6X3VzYl9jb25uZWN0YC4gIEkga25vdyBpdCBoYXMgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIHdoaWNoIHJlbGF0ZXMgdG8gYG1hYzgwMjExX2h3c2ltYC4gQnV0IGlmIHRoaXMgcGF0Y2ggaXMgaW4gYGl3bHdpZmlgIGFuZCBpdCYjMzk7cyBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgaXQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUsIEkgcmVhbGx5ICpzaG91bGQqIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGhlIHByb2JsZW0gaXMgdGhhdCBzeXprYWxsZXIgKmZvdW5kKiB0aGlzIGJ1Zywgd2hpY2ggbWFrZXMgbWUgdGhpbmsgbWF5YmUgbXkgaW5pdGlhbCBhc3N1bXB0aW9ucyBhcmUgd3JvbmcuCgpTbywgaG93IGRpZCBzeXprYWxsZXIgZmluZCBpdD8gSSBuZWVkIHRvIGNvbnNpZGVyIGFsbCBwb3NzaWJpbGl0aWVzLiBEb2VzIGl0IHJ1biBvbiByZWFsIGhhcmR3YXJlPyBJZiB0aGUgYXV0aG9y4oCZcyBjb21tZW50IGlzIGNvcnJlY3QsIGNvZGUgcGF0aHMgaW5hY2Nlc3NpYmxlIGluIGVudmlyb25tZW50cyBsaWtlIFFFTVUsIGV2ZW4gd2l0aCBzb2Z0d2FyZSBlbXVsYXRpb25zLCB3b3VsZCBiZSBhIHByb2JsZW0uIElmIGl0JiMzOTtzICppbXBvc3NpYmxlKiB0byByZWFjaCB0aGlzIGNvZGUgaW4gUUVNVSwgdGhlbiBJICptdXN0KiBzYXkgaXQmIzM5O3Mgbm90IHdvcnRoIGZ1enppbmcuIFRoZSBrZXkgcXVlc3Rpb24gbm93IGlzLCBpcyBpdCBpbXBvc3NpYmxlPwoKTGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRG9lcyBRRU1VIGVtdWxhdGUgYGl3bHdpZmlgPyBOby4gSXMgdGhlcmUgYW4gYGl3bHdpZmlgIGVtdWxhdG9yIHdpdGhpbiB0aGUga2VybmVsIGl0c2VsZj8gQWxzbyBuby4gSXMgdGhlcmUgc29tZSBzb3J0IG9mIGR1bW15IFBDSSBkZXZpY2UgaW4gdGhlIGtlcm5lbCB0aGF0IGNvdWxkIGJlIGJvdW5kIHRvIGBpd2x3aWZpYCB0byBlbmFibGUgdGVzdGluZz8gTm8gYWdhaW4uIFRoYXQgc2VlbXMgdG8gbGVhdmUgbWUgd2l0aCBhIGRlYWQgZW5kLgoKU28sIGhvdyBkaWQgc3l6a2FsbGVyIGZpbmQgaXQ/IE1heWJlIHN5emthbGxlciBoYXMgc29tZSB2aXJ0dWFsIFBDSSBkZXZpY2UgZnJhbWV3b3JrIEkmIzM5O20gbm90IGF3YXJlIG9mPyBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBgQ09ORklHX1BDSV9FTkRQT0lOVF9URVNUYCBzZXR0aW5ncywgb3Igc29tZXRoaW5nIHNpbWlsYXIsIHRoYXQgc3l6a2FsbGVyIHV0aWxpemVzLiBXYWl0LCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgdGhpbmdzIGxpa2UgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQi4gIEJ1dCBmb3IgUENJLCBJIGNoZWNrZWQgZm9yIGBzeXpfcGNpYCBhbmQgZm91bmQgbm90aGluZy4gSSB0aG91Z2h0LCBtYXliZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5X2lkYCBtaWdodCBiZSByZWxhdGVkLiAgQnV0IGl0JiMzOTtzIG5vdCBpbW1lZGlhdGVseSBjbGVhci4KClRoZW4gYW5vdGhlciB0aG91Z2h0IGhpdHMgbWU6IHdoYXQgaWYgYW5vdGhlciBmdXp6ZXIgZm91bmQgdGhlIGJ1ZywgYW5kIHN5emthbGxlciBzaW1wbHkgaW1wb3J0ZWQgaXQ/IEJ1dCB0aGF0IGNhbiYjMzk7dCBiZSB0cnVlIHNpbmNlIHRoZSAmIzM0O0F1dGhvciYjMzQ7IGlzIGxpc3RlZCBhcyAmIzM0O3N5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsmIzM0Oy4gVGhpcyBtZWFucyAqc3l6a2FsbGVyKiBmb3VuZCBpdC4gIEkmIzM5O20gbWlzc2luZyBzb21ldGhpbmcuCgpXYWl0Li4uIGRpZCBzeXprYWxsZXIgKnJlY2VudGx5KiBhZGQgYHN5el9wY2l2ZmlvYCBvciBzb21ldGhpbmcgc2ltaWxhcj8gSSBzaG91bGQgY2hlY2sgaWYgdGhlcmXigJlzIGFueSB2ZmlvIGZ1enppbmcuIEkga25vdyBzeXprYWxsZXIgaGFzIGBzeXpfdXNiX2Nvbm5lY3RgIGFuZCBgc3l6X3ZoY2lgIGZvciBVU0IuIEZvciBQQ0ksIEkgY2FuJiMzOTt0IGZpbmQgYSBgc3l6X3BjaV9jb25uZWN0YC4gIEFnYWluLCB0aGVyZSYjMzk7cyBgc3l6XzgwMjExX2luamVjdF9mcmFtZWAgd2hpY2ggd29ya3Mgd2l0aCBgbWFjODAyMTFfaHdzaW1gLgoKVGhlbiBhbm90aGVyIHBvc3NpYmlsaXR5IGVtZXJnZXMuLi5jb3VsZCBgaXdsd2lmaWAgYmUgY29tcGlsZWQgYXMgYSBLVU5JVCB0ZXN0PyBJIHRoaW5rIEkgcmVtZW1iZXIgc2VlaW5nIHNvbWV0aGluZyBhYm91dCBgQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFNgLiBZZXMsIHRoZXJlIGl0IGlzISAgSSBuZWVkIHRvIGNoZWNrIHdoYXQmIzM5O3MgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvdGVzdHMvYC4gSSB0aGluayB0aGlzIG1heSBob2xkIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgc3l6a2FsbGVyIHRyaWdnZXJlZCB0aGlzIGJ1ZywgZXZlbiBpbiBhIFFFTVUgZW52aXJvbm1lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjE4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t1bml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDc3MSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTQ5PWNvbmZpZyBJV0xXSUZJX0tVTklUX1RFU1RTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTUzLVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjU0Olx0ICBFbmFibGUgdGhpcyBvcHRpb24gZm9yIGl3bHdpZmkga3VuaXQgdGVzdHMuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOC0jaW5jbHVkZSBcdTAwM2NsaW51eC9leHBvcnQuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2Lmg6OTojaW5jbHVkZSBcdTAwM2NrdW5pdC92aXNpYmlsaXR5LmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5oLTEwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2xpbmsuYy01LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbGluay5jOjY6I2luY2x1ZGUgXHUwMDNja3VuaXQvc3RhdGljX3N0dWIuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbGluay5jLTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy02LSNpbmNsdWRlIFx1MDAzY25ldC9tYWM4MDIxMS5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jOjc6I2luY2x1ZGUgXHUwMDNja3VuaXQvc3RhdGljX3N0dWIuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3N0YS5jLTYtI2luY2x1ZGUgXHUwMDNjbGludXgvaWVlZTgwMjExLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3N0YS5jOjc6I2luY2x1ZGUgXHUwMDNja3VuaXQvc3RhdGljX3N0dWIuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvc3RhLmMtOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NzojaW5jbHVkZSBcdTAwM2NrdW5pdC90ZXN0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjg6I2luY2x1ZGUgXHUwMDNja3VuaXQvc3RhdGljX3N0dWIuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6OTojaW5jbHVkZSBcdTAwM2NrdW5pdC9za2J1ZmYuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9NDY3PXN0YXRpYyBzdHJ1Y3QgaXdsX3J4X21wZHVfZGVzYyAqc2V0dXBfbXBkdV9kZXNjKHZvaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy00Njgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NDY5Olx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNDcwLVx0Y29uc3Qgc3RydWN0IHJlb3JkZXJfYnVmZmVyX2Nhc2UgKnBhcmFtID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz01MDI9c3RhdGljIHN0cnVjdCBza19idWZmICphbGxvY19hbmRfc2V0dXBfc2tiKHUxNiBmYywgdTE2IHNlcV9jdHJsLCB1OCB0aWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTA0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjUwNTpcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUwNi1cdHN0cnVjdCBpZWVlODAyMTFfaGRyIGhkciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MTI6XHRza2IgPSBrdW5pdF96YWxsb2Nfc2tiKHRlc3QsIDEyOCwgR0ZQX0tFUk5FTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MTMtXHRLVU5JVF9BU1NFUlRfTk9UX05VTEwodGVzdCwgc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz01MzE9c2V0dXBfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTMzOlx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTM0LVx0Y29uc3Qgc3RydWN0IHJlb3JkZXJfYnVmZmVyX2Nhc2UgKnBhcmFtID1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz01Njg9c3RhdGljIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpzZXR1cF9iYV9kYXRhKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01Njkte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTcwOlx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTcxLVx0c3RydWN0IGl3bF9tbGQgKm1sZCA9IHRlc3QtXHUwMDNlcHJpdjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2MDE6c3RhdGljIHZvaWQgdGVzdF9yZW9yZGVyX2J1ZmZlcihzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MDIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYxNy1cdGdfbnVtX3JlbGVhc2VkX3NrYnMgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjE4Olx0a3VuaXRfYWN0aXZhdGVfc3RhdGljX3N0dWIodGVzdCwgaXdsX21sZF9md19zdGFfaWRfbWFzayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYxOS1cdFx0XHRcdCAgIGZha2VfaXdsX21sZF9md19zdGFfaWRfbWFzayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2MjA6XHRrdW5pdF9hY3RpdmF0ZV9zdGF0aWNfc3R1Yih0ZXN0LCBpd2xfbWxkX3Bhc3NfcGFja2V0X3RvX21hYzgwMjExLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjIxLVx0XHRcdFx0ICAgZmFrZV9pd2xfbWxkX3Bhc3NfcGFja2V0X3RvX21hYzgwMjExKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYyMzpcdHZpZiA9IGl3bG1sZF9rdW5pdF9hZGRfdmlmKGZhbHNlLCBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYyNDpcdHN0YSA9IGl3bG1sZF9rdW5pdF9zZXR1cF9zdGEodmlmLCBJRUVFODAyMTFfU1RBX0FVVEhPUklaRUQsIC0xKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYyNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02NTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2NTI6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHJlb3JkZXJfYnVmZmVyX3Rlc3RfY2FzZXNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTY1My1cdEtVTklUX0NBU0VfUEFSQU0odGVzdF9yZW9yZGVyX2J1ZmZlciwgdGVzdF9yZW9yZGVyX2J1ZmZlcl9nZW5fcGFyYW1zKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02NTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2NTc6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSByZW9yZGVyX2J1ZmZlciA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTY1OC1cdC5uYW1lID0gXCYjMzQ7aXdsbWxkLXJlb3JkZXItYnVmZmVyXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjU5LVx0LnRlc3RfY2FzZXMgPSByZW9yZGVyX2J1ZmZlcl90ZXN0X2Nhc2VzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjYwOlx0LmluaXQgPSBpd2xtbGRfa3VuaXRfdGVzdF9pbml0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjYxLX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02NjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2NjM6a3VuaXRfdGVzdF9zdWl0ZShyZW9yZGVyX2J1ZmZlcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTYtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmM6NzojaW5jbHVkZSBcdTAwM2NrdW5pdC9zdGF0aWNfc3R1Yi5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmMtOC0jaW5jbHVkZSBcJiMzNDttbGQuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYz04Nz1LVU5JVF9BUlJBWV9QQVJBTV9ERVNDKHRlc3RfY2hhbl9sb2FkX3RocmVzaF9jYXNlcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmMtODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmM6OTA6c3RhdGljIHZvaWQgdGVzdF9jaGFuX2xvYWRfdGhyZXNob2xkcyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmMtOTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy05Ny1cdHN0cnVjdCBpd2xfbWxkX2xpbmsgKm1sZF9saW5rO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jOjk4Olx0c3RydWN0IGl3bF9tbGRfa3VuaXRfbGluayBhc3NvY19saW5rID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTk5LVx0XHQuaWQgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy0xMDUtXHQvKiBTZXR1cCBhc3NvY2lhdGVkIG5vbi1NTE8gc3RhdGlvbiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jOjEwNjpcdHZpZiA9IGl3bG1sZF9rdW5pdF9zZXR1cF9ub25fbWxvX2Fzc29jKFx1MDAyNmFzc29jX2xpbmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTEwNy1cdG1sZF92aWYgPSBpd2xfbWxkX3ZpZl9mcm9tX21hYzgwMjExKHZpZik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTEyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYzoxMjc6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGNoYW5fbG9hZF90aHJlc2hfdGVzdF9jYXNlc1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTEyOC1cdEtVTklUX0NBU0VfUEFSQU0odGVzdF9jaGFuX2xvYWRfdGhyZXNob2xkcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmMtMTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jOjEzMzpzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIGNoYW5fbG9hZF90aHJlc2hfdGVzdF9zdWl0ZSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy0xMzQtXHQubmFtZSA9IFwmIzM0O2l3bF9tbGRfY2hhbl9sb2FkX3RocmVzaG9sZF90ZXN0c1wmIzM0OyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYzoxMzU6XHQuaW5pdCA9IGl3bG1sZF9rdW5pdF90ZXN0X2luaXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmMtMTM2LVx0LnRlc3RfY2FzZXMgPSBjaGFuX2xvYWRfdGhyZXNoX3Rlc3RfY2FzZXMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTEzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYzoxMzk6a3VuaXRfdGVzdF9zdWl0ZShjaGFuX2xvYWRfdGhyZXNoX3Rlc3Rfc3VpdGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy02LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvaGNtZC5jOjc6I2luY2x1ZGUgXHUwMDNja3VuaXQvdGVzdC5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmMtOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmM9MTI9TU9EVUxFX0lNUE9SVF9OUyhcJiMzNDtFWFBPUlRFRF9GT1JfS1VOSVRfVEVTVElOR1wmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmMtMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmM6MTQ6c3RhdGljIHZvaWQgdGVzdF9oY21kX25hbWVzX3NvcnRlZChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmMtMTUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy0yOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYzozMDpzdGF0aWMgdm9pZCB0ZXN0X2hjbWRfbmFtZXNfZm9yX3J4KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy0zMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvaGNtZC5jLTUwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvaGNtZC5jOjUxOnN0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBoY21kX25hbWVzX2Nhc2VzW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmMtNTItXHRLVU5JVF9DQVNFKHRlc3RfaGNtZF9uYW1lc19zb3J0ZWQpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy01Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYzo1NzpzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIGhjbWRfbmFtZXMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmMtNTgtXHQubmFtZSA9IFwmIzM0O2l3bG1sZC1oY21kLW5hbWVzXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy02MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYzo2MjprdW5pdF90ZXN0X3N1aXRlKGhjbWRfbmFtZXMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6NzojaW5jbHVkZSBcdTAwM2NrdW5pdC9zdGF0aWNfc3R1Yi5oXHUwMDNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYz0yNzA9c3RhdGljIHM4IGZha2VfZHVwX2JlYWNvbl9yc3NpX2FkanVzdChzdHJ1Y3QgaXdsX21sZCAqbWxkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMjczLVx0Y29uc3Qgc3RydWN0IGxpbmtfZ3JhZGluZ190ZXN0X2Nhc2UgKnBhcmFtcyA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjI3NDpcdFx0a3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpLVx1MDAzZXBhcmFtX3ZhbHVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0yNzUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYz0yNzk9c3RhdGljIHM4IGZha2VfcHNkX2VpcnBfcnNzaV9hZGp1c3Qoc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMjgxLVx0Y29uc3Qgc3RydWN0IGxpbmtfZ3JhZGluZ190ZXN0X2Nhc2UgKnBhcmFtcyA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjI4MjpcdFx0a3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpLVx1MDAzZXBhcmFtX3ZhbHVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0yODMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYz0yODc9c3RhdGljIHZvaWQgc2V0dXBfbGluayhzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0yODgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzoyODk6XHRzdHJ1Y3Qga3VuaXQgKnRlc3QgPSBrdW5pdF9nZXRfY3VycmVudF90ZXN0KCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTI5MC1cdHN0cnVjdCBpd2xfbWxkICptbGQgPSB0ZXN0LVx1MDAzZXByaXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zMDUtXHRcdHN0cnVjdCBlbGVtZW50ICplbGVtID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6MzA2Olx0XHRcdGl3bG1sZF9rdW5pdF9nZW5fZWxlbWVudChXTEFOX0VJRF9RQlNTX0xPQUQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTMwNy1cdFx0XHRcdFx0XHQgXHUwMDI2YnNzX2xvYWQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjMzNDpzdGF0aWMgdm9pZCB0ZXN0X2xpbmtfZ3JhZGluZyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTMzNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zNDQtXHR1MTYgdmFsaWRfbGlua3M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjM0NTpcdHN0cnVjdCBpd2xfbWxkX2t1bml0X2xpbmsgYXNzb2NfbGluayA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzQ2LVx0XHQuY2hhbmRlZiA9IHRlc3RfcGFyYW0tXHUwMDNlbGluay5jaGFuZGVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozNTg6XHR2aWYgPSBpd2xtbGRfa3VuaXRfc2V0dXBfbWxvX2Fzc29jKHZhbGlkX2xpbmtzLCBcdTAwMjZhc3NvY19saW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozNjA6XHRrdW5pdF9hY3RpdmF0ZV9zdGF0aWNfc3R1Yih0ZXN0LCBpd2xfbWxkX2dldF9kdXBfYmVhY29uX3Jzc2lfYWRqdXN0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zNjEtXHRcdFx0XHQgICBmYWtlX2R1cF9iZWFjb25fcnNzaV9hZGp1c3QpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozNjI6XHRrdW5pdF9hY3RpdmF0ZV9zdGF0aWNfc3R1Yih0ZXN0LCBpd2xfbWxkX2dldF9wc2RfZWlycF9yc3NpX2FkanVzdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzYzLVx0XHRcdFx0ICAgZmFrZV9wc2RfZWlycF9yc3NpX2FkanVzdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjM3ODpzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgbGlua19zZWxlY3Rpb25fY2FzZXNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzc5LVx0S1VOSVRfQ0FTRV9QQVJBTSh0ZXN0X2xpbmtfZ3JhZGluZywgbGlua19ncmFkaW5nX2dlbl9wYXJhbXMpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozODM6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBsaW5rX3NlbGVjdGlvbiA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzg0LVx0Lm5hbWUgPSBcJiMzNDtpd2xtbGQtbGluay1zZWxlY3Rpb24tdGVzdHNcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTM4NS1cdC50ZXN0X2Nhc2VzID0gbGlua19zZWxlY3Rpb25fY2FzZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjM4NjpcdC5pbml0ID0gaXdsbWxkX2t1bml0X3Rlc3RfaW5pdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzg3LX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTM4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6Mzg5Omt1bml0X3Rlc3Rfc3VpdGUobGlua19zZWxlY3Rpb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zOTAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYz00OTk9S1VOSVRfQVJSQVlfUEFSQU1fREVTQyhsaW5rX3BhaXIsIGxpbmtfcGFpcl9jYXNlcywgZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTUwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6NTAxOnN0YXRpYyB2b2lkIHRlc3RfaXdsX21sZF9saW5rX3BhaXJfYWxsb3dzX2VtbHNyKHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTAyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTUxNC1cdH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjUxNTpcdHN0cnVjdCBpd2xfbWxkX2t1bml0X2xpbmsgYXNzb2NfbGluayA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTE2LVx0XHQuY2hhbmRlZiA9IHBhcmFtcy1cdTAwM2VwcmltYXJ5X2xpbmtfYWN0aXZlID8gYS5jaGFuZGVmIDogYi5jaGFuZGVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzo1MjE6XHR2aWYgPSBpd2xtbGRfa3VuaXRfc2V0dXBfbWxvX2Fzc29jKEJJVChhLmxpbmtfaWQpIHwgQklUKGIubGlua19pZCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTUyMi1cdFx0XHRcdFx0ICAgXHUwMDI2YXNzb2NfbGluayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01MzEtXHRcdHN0cnVjdCBpd2xfbWxkX3BoeSAqcGh5ID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6NTMyOlx0XHRcdGl3bG1sZF9rdW5pdF9nZXRfcGh5X29mX2xpbmsodmlmLCBhLmxpbmtfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01MzMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01NDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjU0NDpzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgbGlua19wYWlyX2NyaXRlcmlhX3Rlc3RfY2FzZXNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTQ1LVx0S1VOSVRfQ0FTRV9QQVJBTSh0ZXN0X2l3bF9tbGRfbGlua19wYWlyX2FsbG93c19lbWxzciwgbGlua19wYWlyX2dlbl9wYXJhbXMpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzo1NDk6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBsaW5rX3BhaXJfY3JpdGVyaWFfdGVzdHMgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTU1MC1cdC5uYW1lID0gXCYjMzQ7aXdsbWxkX2xpbmtfcGFpcl9hbGxvd3NfZW1sc3JcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTU1MS1cdC50ZXN0X2Nhc2VzID0gbGlua19wYWlyX2NyaXRlcmlhX3Rlc3RfY2FzZXMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjU1MjpcdC5pbml0ID0gaXdsbWxkX2t1bml0X3Rlc3RfaW5pdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTUzLX07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTU1NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6NTU1Omt1bml0X3Rlc3Rfc3VpdGUobGlua19wYWlyX2NyaXRlcmlhX3Rlc3RzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo3OiNpbmNsdWRlIFx1MDAzY2t1bml0L3N0YXRpY19zdHViLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy04LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYz01MT1zdGF0aWMgdm9pZCBmYWtlX2llZWU4MDIxMV9jb25uZWN0aW9uX2xvc3Moc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NTY6c3RhdGljIHZvaWQgdGVzdF9taXNzZWRfYmVhY29uKHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTYzLVx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo2NDpcdHN0cnVjdCBpd2xfbWxkX2t1bml0X2xpbmsgbGluazEgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNjUtXHRcdC5pZCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTY3LVx0fTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo2ODpcdHN0cnVjdCBpd2xfbWxkX2t1bml0X2xpbmsgbGluazIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNjktXHRcdC5pZCA9IDEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjczOlx0a3VuaXRfYWN0aXZhdGVfc3RhdGljX3N0dWIodGVzdCwgaWVlZTgwMjExX2Nvbm5lY3Rpb25fbG9zcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy03NC1cdFx0XHRcdCAgIGZha2VfaWVlZTgwMjExX2Nvbm5lY3Rpb25fbG9zcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NzU6XHRwa3QgPSBpd2xfbWxkX2t1bml0X2NyZWF0ZV9wa3QodGVzdF9wYXJhbS1cdTAwM2VpbnB1dC5ub3RpZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNzYtXHRub3RpZiA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTc4LVx0aWYgKHRlc3RfcGFyYW0tXHUwMDNlaW5wdXQuZW1sc3IpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo3OTpcdFx0dmlmID0gaXdsbWxkX2t1bml0X2Fzc29jX2VtbHNyKFx1MDAyNmxpbmsxLCBcdTAwMjZsaW5rMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtODAtXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy04Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo4MzpcdFx0dmlmID0gaXdsbWxkX2t1bml0X3NldHVwX25vbl9tbG9fYXNzb2MoXHUwMDI2bGluazEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTg0LVx0XHRtbGRfdmlmID0gaXdsX21sZF92aWZfZnJvbV9tYWM4MDIxMSh2aWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYz00Nzk9c3RhdGljIHZvaWQgc2V0dXBfZWlycChzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTUwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo1MDk6c3RhdGljIHZvaWQgdGVzdF9kdXBfYmVhY29uX3Jzc2lfYWRqdXN0KHN0cnVjdCBrdW5pdCAqdGVzdClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01MTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01MzAtXHRcdFx0XHRJRUVFODAyMTFfSEVfNkdIWl9PUEVSX0NUUkxfRFVQX0JFQUNPTjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo1MzE6XHRcdGhlX2VsZW0gPSBpd2xtbGRfa3VuaXRfY3JlYXRlX2hlXzZnaHpfb3BlcihoZV82Z2h6KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01MzItXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTUzNC1cdHJjdV9hc3NpZ25fcG9pbnRlcihic3MtXHUwMDNlYmVhY29uX2llcyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo1MzU6XHRcdFx0ICAgaXdsbWxkX2t1bml0X2NyZWF0ZV9ic3NfaWVzKGhlX2VsZW0pKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01MzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo1NDM6c3RhdGljIHZvaWQgdGVzdF9wc2RfZWlycF9yc3NpX2FkanVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTQ0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjU2NTpzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgbGlua19jYXNlc1tdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU2Ni1cdEtVTklUX0NBU0VfUEFSQU0odGVzdF9taXNzZWRfYmVhY29uLCB0ZXN0X21pc3NlZF9iZWFjb25fZ2VuX3BhcmFtcyksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU3My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo1NzQ6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBsaW5rID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU3NS1cdC5uYW1lID0gXCYjMzQ7aXdsbWxkLWxpbmtcJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTc2LVx0LnRlc3RfY2FzZXMgPSBsaW5rX2Nhc2VzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjU3NzpcdC5pbml0ID0gaXdsbWxkX2t1bml0X3Rlc3RfaW5pdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01NzgtfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NTgwOmt1bml0X3Rlc3Rfc3VpdGUobGluayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbW9kdWxlLmMtMi0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbW9kdWxlLmM6MzogKiBUaGlzIGlzIGp1c3QgbW9kdWxlIGJvaWxlcnBsYXRlIGZvciB0aGUgaXdsbWxkIGt1bml0IG1vZHVsZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL21vZHVsZS5jLTQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9tb2R1bGUuYz0xMD1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbW9kdWxlLmM6MTE6TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O2t1bml0IHRlc3RzIGZvciBpd2xtbGRcJiMzNDspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtNi0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmM6NzojaW5jbHVkZSBcdTAwM2NrdW5pdC90ZXN0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtOC0jaW5jbHVkZSBcJiMzNDt1dGlscy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYz0yNzE9c2V0dXBfZHVwX2RhdGFfc3RhdGUoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtMjcyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmM6MjczOlx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0yNzQtXHRjb25zdCBzdHJ1Y3QgaXNfZHVwX2Nhc2UgKnBhcmFtID0gKGNvbnN0IHZvaWQgKikodGVzdC1cdTAwM2VwYXJhbV92YWx1ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYz0yOTI9c3RhdGljIHZvaWQgc2V0dXBfcnhfcGt0KGNvbnN0IHN0cnVjdCBpc19kdXBfY2FzZSAqcGFyYW0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zMTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jOjMxODpzdGF0aWMgdm9pZCB0ZXN0X2lzX2R1cChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTMxOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jOjMyODpcdHZpZiA9IGl3bG1sZF9rdW5pdF9hZGRfdmlmKGZhbHNlLCBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmM6MzI5Olx0c3RhID0gaXdsbWxkX2t1bml0X3NldHVwX3N0YSh2aWYsIElFRUU4MDIxMV9TVEFfQVVUSE9SSVpFRCwgLTEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zMzAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jOjM0MjpzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgaXNfZHVwX3Rlc3RfY2FzZXNbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtMzQzLVx0S1VOSVRfQ0FTRV9QQVJBTSh0ZXN0X2lzX2R1cCwgdGVzdF9pc19kdXBfZ2VuX3BhcmFtcyksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jOjM0NzpzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIGlzX2R1cCA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtMzQ4LVx0Lm5hbWUgPSBcJiMzNDtpd2xtbGQtcngtaXMtZHVwXCYjMzQ7LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zNDktXHQudGVzdF9jYXNlcyA9IGlzX2R1cF90ZXN0X2Nhc2VzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYzozNTA6XHQuaW5pdCA9IGl3bG1sZF9rdW5pdF90ZXN0X2luaXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTM1MS19O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zNTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jOjM1MzprdW5pdF90ZXN0X3N1aXRlKGlzX2R1cCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy02LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo3OiNpbmNsdWRlIFx1MDAzY2t1bml0L3Rlc3QuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo4OiNpbmNsdWRlIFx1MDAzY2t1bml0L3Rlc3QtYnVnLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoyMzppbnQgaXdsbWxkX2t1bml0X3Rlc3RfaW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo3MTpzdGF0aWMgdm9pZCBpd2xtbGRfa3VuaXRfaW5pdF9saW5rKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTcyLVx0XHRcdFx0ICAgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTc0LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6NzU6XHRzdHJ1Y3Qga3VuaXQgKnRlc3QgPSBrdW5pdF9nZXRfY3VycmVudF90ZXN0KCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTc2LVx0c3RydWN0IGl3bF9tbGQgKm1sZCA9IHRlc3QtXHUwMDNlcHJpdjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jPTk1PUlXTF9NTERfQUxMT0NfRk5fU1RBVElDKHZpZiwgdmlmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtOTctLyogSGVscGVyIGZ1bmN0aW9uIHRvIGFkZCBhbmQgaW5pdGlhbGl6ZSBhIFZJRiBmb3IgS1VuaXQgdGVzdHMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6OTg6c3RydWN0IGllZWU4MDIxMV92aWYgKml3bG1sZF9rdW5pdF9hZGRfdmlmKGJvb2wgbWxvLCBlbnVtIG5sODAyMTFfaWZ0eXBlIHR5cGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTk5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTAwOlx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xMDEtXHRzdHJ1Y3QgaXdsX21sZCAqbWxkID0gdGVzdC1cdTAwM2Vwcml2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTIzLVx0LyogSW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBsaW5rICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjEyNDpcdGl3bG1sZF9rdW5pdF9pbml0X2xpbmsodmlmLCBcdTAwMjZ2aWYtXHUwMDNlYnNzX2NvbmYsIFx1MDAyNm1sZF92aWYtXHUwMDNlZGVmbGluaywgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTEyNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jPTEzMD1zdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTMxOml3bG1sZF9rdW5pdF9hZGRfbGluayhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBpbnQgbGlua19pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTMyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTMzOlx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xMzQtXHRzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoxNDA6XHRpd2xtbGRfa3VuaXRfaW5pdF9saW5rKHZpZiwgbGluaywgbWxkX2xpbmssIGxpbmtfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xNDEtXHR2aWYtXHUwMDNldmFsaWRfbGlua3MgfD0gQklUKGxpbmtfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9MTQ2PXN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTQ3Oml3bG1sZF9rdW5pdF9hZGRfY2hhbmN0eChjb25zdCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmRlZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTQ4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTQ5Olx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xNTAtXHRzdHJ1Y3QgaXdsX21sZCAqbWxkID0gdGVzdC1cdTAwM2Vwcml2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoxNzU6dm9pZCBpd2xtbGRfa3VuaXRfYXNzaWduX2NoYW5jdHhfdG9fbGluayhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xNzYtXHRcdFx0XHRcdCBzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTc4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTc5Olx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xODAtXHRzdHJ1Y3QgaXdsX21sZCAqbWxkID0gdGVzdC1cdTAwM2Vwcml2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9MjAwPUlXTF9NTERfQUxMT0NfRk5fU1RBVElDKGxpbmtfc3RhLCBsaW5rX3N0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjAxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoyMDI6c3RhdGljIHZvaWQgaXdsbWxkX2t1bml0X2FkZF9saW5rX3N0YShzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yMDMtXHRcdFx0XHQgICAgICBzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTIwNi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjIwNzpcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjA4LVx0c3RydWN0IGl3bF9tbGRfc3RhICptbGRfc3RhID0gaXdsX21sZF9zdGFfZnJvbV9tYWM4MDIxMShzdGEpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9MjI3PXN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjI4Oml3bG1sZF9rdW5pdF9hbGxvY19saW5rX3N0YShzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLCBpbnQgbGlua19pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjI5LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjMwOlx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yMzEtXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTIzOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjQwOlx0aXdsbWxkX2t1bml0X2FkZF9saW5rX3N0YShzdGEsIGxpbmtfc3RhLCBtbGRfbGlua19zdGEsIGxpbmtfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yNDEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYz0yNDg9c3RhdGljIHN0cnVjdCBpZWVlODAyMTFfc3RhICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjQ5Oml3bG1sZF9rdW5pdF9hZGRfc3RhKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIGludCBsaW5rX2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yNTAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoyNTE6XHRzdHJ1Y3Qga3VuaXQgKnRlc3QgPSBrdW5pdF9nZXRfY3VycmVudF90ZXN0KCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI1Mi1cdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yNjctXHRpZiAobGlua19pZCBcdTAwM2U9IDApIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjY4Olx0XHRpd2xtbGRfa3VuaXRfYWRkX2xpbmtfc3RhKHN0YSwgXHUwMDI2c3RhLVx1MDAzZWRlZmxpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI2OS1cdFx0XHRcdFx0ICBcdTAwMjZtbGRfc3RhLVx1MDAzZWRlZmxpbmssIGxpbmtfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjcxLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjcyOlx0XHRpd2xtbGRfa3VuaXRfYWRkX2xpbmtfc3RhKHN0YSwgXHUwMDI2c3RhLVx1MDAzZWRlZmxpbmssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI3My1cdFx0XHRcdFx0ICBcdTAwMjZtbGRfc3RhLVx1MDAzZWRlZmxpbmssIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjc4LS8qIE1vdmUgcyBTVEEgdG8gYSBzdGF0ZSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoyNzk6c3RhdGljIHZvaWQgaXdsbWxkX2t1bml0X21vdmVfc3RhX3N0YXRlKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI4MC1cdFx0XHRcdFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI4Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjI4MzpcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjg0LVx0c3RydWN0IGl3bF9tbGRfc3RhICptbGRfc3RhO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozMDA6c3RydWN0IGllZWU4MDIxMV9zdGEgKml3bG1sZF9rdW5pdF9zZXR1cF9zdGEoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzAxLVx0XHRcdFx0XHQgICAgIGVudW0gaWVlZTgwMjExX3N0YV9zdGF0ZSBzdGF0ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTMwMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjMwNDpcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzA1LVx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTMxMC1cdC8qIEZpcnN0IC0gYWxsb2NhdGUgYW5kIGluaXQgdGhlIFNUQSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozMTE6XHRzdGEgPSBpd2xtbGRfa3VuaXRfYWRkX3N0YSh2aWYsIGxpbmtfaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMTItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMTUtXHQgICAgIF9zdGF0ZSBcdTAwM2M9IHN0YXRlOyBfc3RhdGUmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozMTY6XHRcdGl3bG1sZF9rdW5pdF9tb3ZlX3N0YV9zdGF0ZSh2aWYsIHN0YSwgc3RhdGUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMjAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjMyMTpzdGF0aWMgdm9pZCBpd2xtbGRfa3VuaXRfc2V0X3ZpZl9hc3NvY2lhdGVkKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTMyMi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYz0zMjk9c3RhdGljIHN0cnVjdCBpZWVlODAyMTFfdmlmICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzMwOml3bG1sZF9rdW5pdF9zZXR1cF9hc3NvYyhib29sIG1sbywgc3RydWN0IGl3bF9tbGRfa3VuaXRfbGluayAqYXNzb2NfbGluaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzMxLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzMyOlx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMzMtXHRzdHJ1Y3QgaXdsX21sZCAqbWxkID0gdGVzdC1cdTAwM2Vwcml2O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozNDA6XHR2aWYgPSBpd2xtbGRfa3VuaXRfYWRkX3ZpZihtbG8sIE5MODAyMTFfSUZUWVBFX1NUQVRJT04pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM0Mi1cdGlmIChtbG8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM0MzpcdFx0bGluayA9IGl3bG1sZF9rdW5pdF9hZGRfbGluayh2aWYsIGFzc29jX2xpbmstXHUwMDNlaWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNDQtXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM0NzpcdGNoYW5fY3R4ID0gaXdsbWxkX2t1bml0X2FkZF9jaGFuY3R4KGFzc29jX2xpbmstXHUwMDNlY2hhbmRlZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM0OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzQ5LVx0d2lwaHlfbG9jayhtbGQtXHUwMDNld2lwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozNTA6XHRpd2xtbGRfa3VuaXRfYXNzaWduX2NoYW5jdHhfdG9fbGluayh2aWYsIGxpbmssIGNoYW5fY3R4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzUxLVx0d2lwaHlfdW5sb2NrKG1sZC1cdTAwM2V3aXBoeSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNTMtXHQvKiBUaGUgQVAgc3RhIHdpbGwgbm93IGJlIHBvaW50ZXIgdG8gYnkgbWxkX3ZpZi1cdTAwM2VhcF9zdGEgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzU0Olx0aXdsbWxkX2t1bml0X3NldHVwX3N0YSh2aWYsIElFRUU4MDIxMV9TVEFfQVVUSE9SSVpFRCwgYXNzb2NfbGluay1cdTAwM2VpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzU2Olx0aXdsbWxkX2t1bml0X3NldF92aWZfYXNzb2NpYXRlZCh2aWYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYz0zNjE9c3RydWN0IGllZWU4MDIxMV92aWYgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozNjI6aXdsbWxkX2t1bml0X3NldHVwX21sb19hc3NvYyh1MTYgdmFsaWRfbGlua3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM2MzpcdFx0XHQgICAgIHN0cnVjdCBpd2xfbWxkX2t1bml0X2xpbmsgKmFzc29jX2xpbmspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM2NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM2NTpcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzY2LVx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM3Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzczOlx0dmlmID0gaXdsbWxkX2t1bml0X3NldHVwX2Fzc29jKHRydWUsIGFzc29jX2xpbmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM3OTpcdFx0aXdsbWxkX2t1bml0X2FkZF9saW5rKHZpZiwgb3RoZXJfbGlua19pZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM4MC1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jPTM4NT1zdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM4Njppd2xtbGRfa3VuaXRfc2V0dXBfbm9uX21sb19hc3NvYyhzdHJ1Y3QgaXdsX21sZF9rdW5pdF9saW5rICphc3NvY19saW5rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zODcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozODg6XHRyZXR1cm4gaXdsbWxkX2t1bml0X3NldHVwX2Fzc29jKGZhbHNlLCBhc3NvY19saW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzg5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jPTM5MT1zdHJ1Y3QgaXdsX3J4X3BhY2tldCAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM5MjpfaXdsX21sZF9rdW5pdF9jcmVhdGVfcGt0KGNvbnN0IHZvaWQgKm5vdGlmLCBzaXplX3Qgbm90aWZfc3opXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM5My17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM5NDpcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzk1LVx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTQwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6NDA1OnN0cnVjdCBpZWVlODAyMTFfdmlmICppd2xtbGRfa3VuaXRfYXNzb2NfZW1sc3Ioc3RydWN0IGl3bF9tbGRfa3VuaXRfbGluayAqbGluazEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjQwNjpcdFx0XHRcdFx0ICAgICAgIHN0cnVjdCBpd2xfbWxkX2t1bml0X2xpbmsgKmxpbmsyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy00MDcte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo0MDg6XHRzdHJ1Y3Qga3VuaXQgKnRlc3QgPSBrdW5pdF9nZXRfY3VycmVudF90ZXN0KCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTQwOS1cdHN0cnVjdCBpd2xfbWxkICptbGQgPSB0ZXN0LVx1MDAzZXByaXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy00MTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjQxOTpcdHZpZiA9IGl3bG1sZF9rdW5pdF9zZXR1cF9tbG9fYXNzb2ModmFsaWRfbGlua3MsIGxpbmsxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtNDIwLVx0bWxkX3ZpZiA9IGl3bF9tbGRfdmlmX2Zyb21fbWFjODAyMTEodmlmKTtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzQyNzgKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxNzUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZyBBbmFseXNpczogaXdsd2lmaSBQYXRjaCoqCgpPa2F5LCBzbyBgaXdsd2lmaWAgaGFzIEtVTklUIHRlc3RzLCB3aGljaCBpcyBpbnRlcmVzdGluZywgYnV0IHN5emthbGxlciBkb2VzbiYjMzk7dCBkaXJlY3RseSBmdXp6IHRob3NlLCBzbyB0aGF0JiMzOTtzIGEgZGVhZCBlbmQuIFRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYSBsb3Qgb2Yga2V5IGFyZWFzIG9mIHRoZSBgaXdsd2lmaWAgZHJpdmVyOiBgYWdnLmNgLCBgbWFjODAyMTEuY2AsIGBtY2MuY2AsIGB0aGVybWFsLmNgLCBhbmQgYG12bS9kMy5jYCB0byBuYW1lIGEgZmV3LiBUaGUgZmFjdCB0aGF0IGBzeXotY2x1c3RlcmAgZm91bmQgYnVncyBpbiBgaXdsd2lmaWAgaXMgd2hhdCBtYWtlcyB0aGlzIHJlYWxseSBpbnRyaWd1aW5nLgoKSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHN5emthbGxlciBpcyByZWFjaGluZyB0aGlzIGNvZGUuIEl0JiMzOTtzIG5vdCBhIFVTQiBkcml2ZXIsIHNvIGBzeXpfdXNiX2Nvbm5lY3RgIGlzIG91dC4gSXQmIzM5O3MgYSBQQ0kgZHJpdmVyLCBzbyBtYXliZSBgc3l6X3BjaV9kZXZpY2VgPyBJIGRvbiYjMzk7dCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIHN5emthbGxlciBzb3VyY2UgcmlnaHQgbm93LCBidXQgSSBjYW4gY2hlY2sgdGhlIGtlcm5lbCBmb3IgdGhlIGBzeXpfYCBwcmVmaXguIE5vIGx1Y2sgdGhlcmUuIFdhaXQsIHRoZXJlIGlzIGEgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseV9pZGAgYW5kIGEgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGZ1bmN0aW9uLiBUaGVyZSBhcmUgZXZlbiBhIGBzeXpfODAyMTFfam9pbl9pYnNzYCBmdW5jdGlvbi4KCkhtbSwgYmFjayB0byBgaXdsd2lmaWAuLi4gSWYgaXQmIzM5O3MgYSBtb2R1bGUgYW5kIG5vdCBsb2FkZWQsIHN5emthbGxlciB3b24mIzM5O3QgcmVhY2ggaXQuIFRoZSBrZXJuZWwgbWlnaHQgZXhlY3V0ZSB0aGUgS1VOSVQgdGVzdHMgZHVyaW5nIGJvb3QsIGJ1dCBTeXprYWxsZXIgcHJvYmFibHkgZG9lc24mIzM5O3QgZnV6eiB0aGVtLiBIb3dldmVyLCBhaCEgRGVidWdmcyEgTG9va2luZyBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jYCwgdGhlcmUmIzM5O3MgYGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlYC4gU3l6a2FsbGVyIGNvdWxkIHBvdGVudGlhbGx5IGluamVjdCBmaXJtd2FyZSBwYWNrZXRzIGlmIGl0JiMzOTtzIHJ1bm5pbmcgaW4gYW4gZW52aXJvbm1lbnQgd2l0aCBhIHZpcnR1YWwgSW50ZWwgV2ktRmkgY2FyZC4gQnV0IHN5emthbGxlciBydW5zIG9uIFFFTVUuIFRoYXQgaXMgbm90IHVzZWZ1bC4gU28sIGlmIHN5emthbGxlciBmb3VuZCBidWdzLCB0aGVuIGBpd2x3aWZpYCBNVVNUIGJlIHJlYWNoYWJsZS4KCldhaXQsIHRoZSBwcm9tcHQgc3BlY2lmaWVkIHRoYXQgcGF0Y2hlcyBhcmUgbm90IHdvcnRoIGZ1enppbmcgaWYgdGhleSBhcmVuJiMzOTt0IHJlYWNoYWJsZS4KCkJ1dCAqd2FpdCosIHRoZSBwcm9tcHQgc2F5cyB0aGF0IHRoZSBkcml2ZXJzIGFyZSBub3Qgd29ydGggZnV6emluZyBpZiB0aGV5IGFyZSBpbiBRRU1VLCBidXQgc3l6a2FsbGVyIGZvdW5kIGEgYnVnIQoKQ291bGQgc3l6a2FsbGVyIGJlIHVzaW5nIGBtYWM4MDIxMV9od3NpbWA/IE5vLCBpdCYjMzk7cyBhIHNvZnR3YXJlIHNpbXVsYXRvci4gU28gaG93IGVsc2UgY291bGQgc3l6a2FsbGVyIGJlIHJlYWNoaW5nIGl0PyBJZiBzeXprYWxsZXIgZm91bmQgYSBidWcsIGl0ICptdXN0KiBiZSByZWFjaGFibGUgaW4gaXRzIFFFTVUgZW52aXJvbm1lbnQuIFRoaXMgaW1wbGllcyB0aGF0IHN5emthbGxlciBoYXMgYSBtZWNoYW5pc20gdG8gaW50ZXJhY3Qgd2l0aCB0aGUgUENJIGRyaXZlciwgYW5kIGlmIHNvLCB0aGlzIGNvZGUgaXMgV29ydGhGdXp6aW5nPXRydWUuCgpOb3csIGxldCYjMzk7cyBsb29rIGF0IHRoZSBwYXRjaCBpdHNlbGYuIEl0JiMzOTtzIGFsbCBhYm91dCBib3VuZHMgY2hlY2tzLCBsZW5ndGggY2hlY2tzLCBhbmQgZml4aW5nIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXM6IG91dC1vZi1ib3VuZHMgcmVhZHMvd3JpdGVzLCBidWZmZXIgb3ZlcmZsb3dzLCBhbmQgdXNlLWFmdGVyLWZyZWVzLiBUaGVzZSBhcmUgYWxsIHRoZSBraW5kcyBvZiBidWdzIGZ1enppbmcgaXMgZGVzaWduZWQgdG8gY2F0Y2ghIEFic29sdXRlbHkgd29ydGggZnV6emluZy4KCk5vdyBmb3IgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25zLiBJJiMzOTtsbCBuZWVkOiBgQ09ORklHX0lXTFdJRklgLCBgQ09ORklHX0lXTE1WTWAsIGBDT05GSUdfSVdMTUxEYCwgYENPTkZJR19JV0xXSUZJX0RFQlVHRlNgLCBgQ09ORklHX01BQzgwMjExYCwgYW5kIGBDT05GSUdfQ0ZHODAyMTFgLiBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhlIGV4YWN0IG5hbWVzIGluIHRoZSBLY29uZmlnIGZpbGU6IGBJV0xXSUZJYCwgYElXTE1WTWAsIGBJV0xNTERgLCBgSVdMV0lGSV9ERUJVR0ZTYCwgYW5kIGBUSEVSTUFMYCAoZm9yIHRoZSB0aGVybWFsIHpvbmUgdW5yZWdpc3RlcikuIEFuZCBhZnRlciBjaGVja2luZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jYCBmb3IgaWZkZWZzLCBJJiMzOTttIGNvbmZpZGVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX1RIRVJNQUwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTQtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6NTojaWZkZWYgQ09ORklHX1RIRVJNQUxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy02LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvcnQuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYz00Nz12b2lkIGl3bF9tbGRfaGFuZGxlX3RlbXBfbm90aWYoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMtNzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6NzU6I2lmZGVmIENPTkZJR19USEVSTUFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMtNzYtXHRpZiAobWxkLVx1MDAzZXR6b25lKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTc3LVx0XHR0aGVybWFsX3pvbmVfZGV2aWNlX3VwZGF0ZShtbGQtXHUwMDNldHpvbmUsIFRIRVJNQUxfVFJJUF9WSU9MQVRFRCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6Nzg6I2VuZGlmIC8qIENPTkZJR19USEVSTUFMICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMtNzktfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jOjgxOiNpZmRlZiBDT05GSUdfVEhFUk1BTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTgyLXN0YXRpYyBpbnQgaXdsX21sZF9nZXRfdGVtcChzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzMzIgKnRlbXApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jPTE0ND1pbnQgaXdsX21sZF9jb25maWdfdGVtcF9yZXBvcnRfdGhzKHN0cnVjdCBpd2xfbWxkICptbGQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTE0Ny1cdGludCByZXQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6MTQ4OiNpZmRlZiBDT05GSUdfVEhFUk1BTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTE0OS1cdHN0cnVjdCBpd2xfdHJpcF93YWxrX2RhdGEgdHdkID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy0xODMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6MTg0OiNpZmRlZiBDT05GSUdfVEhFUk1BTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTE4NS1zdGF0aWMgaW50IGl3bF9tbGRfdHpvbmVfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKmRldmljZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM9MzkzPXN0YXRpYyB2b2lkIGl3bF9tbGRfY29vbGluZ19kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy00MDMtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jOjQwNDojZW5kaWYgLyogQ09ORklHX1RIRVJNQUwgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy00MDUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jPTQ0MT12b2lkIGl3bF9tbGRfdGhlcm1hbF9pbml0aWFsaXplKHN0cnVjdCBpd2xfbWxkICptbGQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTQ0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYzo0NTA6I2lmZGVmIENPTkZJR19USEVSTUFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMtNDUxLVx0aXdsX21sZF9jb29saW5nX2RldmljZV9yZWdpc3RlcihtbGQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYz00NTY9dm9pZCBpd2xfbWxkX3RoZXJtYWxfZXhpdChzdHJ1Y3QgaXdsX21sZCAqbWxkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy00NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6NDYyOiNpZmRlZiBDT05GSUdfVEhFUk1BTFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTQ2My1cdGl3bF9tbGRfY29vbGluZ19kZXZpY2VfdW5yZWdpc3RlcihtbGQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoxOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yLWNvbXByZXNzb3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy1mbGFzaC1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlcGx5OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+VGhlIHdvcmtzcGFjZSBjb250YWlucyBhIHBhdGNoIHNlcmllcyBmb3IgdGhlIGBpd2x3aWZpYCBJbnRlbCB3aXJlbGVzcyBkcml2ZXIsIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIE1WTSAoTWFjODAyMTEgVmlydHVhbCBNb2RlbCkgYW5kIE1MRCAoTXVsdGktTGluayBEZXZpY2UpIGNvbXBvbmVudHMuIFRoZSBjaGFuZ2VzIGludHJvZHVjZSBzZXZlcmFsIGJvdW5kcyBjaGVja3MsIHBheWxvYWQgbGVuZ3RoIHZhbGlkYXRpb25zIGZvciBmaXJtd2FyZSBub3RpZmljYXRpb25zLCBhbmQgcG9pbnRlciBoeWdpZW5lIChudWxsaW5nIGFmdGVyIGZyZWUpLgoKIyMjIDEuIEFwcHJvYWNoZXMgYW5kIFJlc3VsdHMKKiAgICoqQ29kZSBBbmFseXNpczoqKiBSZXZpZXdlZCB0aGUgZGlmZiB3aGljaCBzaG93cyBjcml0aWNhbCB2YWxpZGF0aW9uIGxvZ2ljIGFkZGVkIHRvIGZ1bmN0aW9ucyBoYW5kbGluZyBmaXJtd2FyZS10by1ob3N0IGNvbW11bmljYXRpb25zLgogICAgKiAgIGBpd2xfbWxkX3Jlb3JkZXJgOiBBZGRzIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgIGFnYWluc3QgYG1sZC0mZ3Q7ZndfaWRfdG9fYmFgLgogICAgKiAgIGBpd2xfbXZtX3VwZGF0ZV9tY2NgOiBBZGRzIGxlbmd0aCBjaGVja3MgZm9yIE1DQyAoTXVsdGktQ291bnRyeSBDb2RlKSB1cGRhdGUgcmVzcG9uc2VzICh2MywgdjQsIHY4KS4KICAgICogICBgaXdsX212bV9yeF9iZWFjb25fbm90aWZgOiBSZWZhY3RvcmVkIHRvIHVzZSBsb2NhbCB2YXJpYWJsZXMgZm9yIGJlYWNvbiBHUDIgdGltZXN0YW1wcyBpbnN0ZWFkIG9mIGEgZ2xvYmFsIG1lbWJlciBpbiBgc3RydWN0IGl3bF9tdm1gLgogICAgKiAgIGBpd2xfbXZtX3JlcG9ydF93YWtldXBfcmVhc29uc2AsIGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCwgYGl3bF9tdm1fd2FpdF9kM19ub3RpZmA6IEFkZGVkIHBheWxvYWQgc2l6ZSB2YWxpZGF0aW9ucy4KICAgICogICBgaXdsX212bV90bGNfdXBkYXRlX25vdGlmYCwgYGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZmAsIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAsIGBpd2xfbXZtX3J4X3Nlc3Npb25fcHJvdGVjdF9ub3RpZmA6IEFkZGVkIGJvdW5kcyBjaGVja3MgZm9yIHN0YXRpb24gSURzIGFuZCBVSURzLgoqICAgKipSZWFjaGFiaWxpdHkgSW52ZXN0aWdhdGlvbjoqKgogICAgKiAgIENvbmZpcm1lZCB0aGF0IGZpcm13YXJlIG5vdGlmaWNhdGlvbnMgYXJlIGhhbmRsZWQgdmlhIGBpd2xfbXZtX3J4X21xYCBhbmQgZGlzcGF0Y2hlZCB0aHJvdWdoIGBpd2xfbXZtX3J4X2hhbmRsZXJzYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmNgLgogICAgKiAgIElkZW50aWZpZWQgYSBkZWJ1Z2ZzLWJhc2VkIGluamVjdGlvbiBtZWNoYW5pc20gaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuY2A6IGBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZWAgKGxpbmUgMTI2MSkuIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHVzZXJzcGFjZSB0byB3cml0ZSBoZXgtZW5jb2RlZCByYXcgcGFja2V0cyB0byBhIGRlYnVnZnMgZmlsZSwgd2hpY2ggYXJlIHRoZW4gcGFzc2VkIHRvIGBpd2xfbXZtX3J4X21xYCwgZWZmZWN0aXZlbHkgc2ltdWxhdGluZyBmaXJtd2FyZSBub3RpZmljYXRpb25zLgoqICAgKipLVW5pdCBUZXN0czoqKiBGb3VuZCBleGlzdGluZyBLVW5pdCB0ZXN0cyBmb3IgTUxEIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9gLCBzdWdnZXN0aW5nIGEgZnJhbWV3b3JrIGZvciB0ZXN0aW5nIHRoZXNlIGxvZ2ljIHBhdGhzIGV4aXN0cy4KKiAgICoqRGVhZCBFbmRzOioqIFNlYXJjaGVkIGZvciAmIzM0O3N5el9wY2kmIzM0OyBvciBnZW5lcmljIGhhcmR3YXJlIHNpbXVsYXRvcnMgaW4gYHRvb2xzL2AgYW5kIGBsaWIvYCB3aXRoIG5vIHJlbGV2YW50IHJlc3VsdHM7IHJlYWNoYWJpbGl0eSBpcyBiZXN0IGFjaGlldmVkIHZpYSB0aGUgaWRlbnRpZmllZCBkZWJ1Z2ZzIGluamVjdGlvbiBvciBtYWM4MDIxMV9od3NpbS4KCiMjIyAyLiBDdXJyZW50IEh5cG90aGVzZXMgYW5kIEFjdGl2ZSBMaW5lcyBvZiBJbnZlc3RpZ2F0aW9uCiogICAqKkh5cG90aGVzaXM6KiogVGhlIHBhdGNoIGlzIGhpZ2hseSBmdW5jdGlvbmFsIGFzIGl0IG1pdGlnYXRlcyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gdHJpZ2dlcmVkIGJ5IG1hbGZvcm1lZCBvciBtYWxpY2lvdXMgZmlybXdhcmUgcmVzcG9uc2VzLgoqICAgKipBY3RpdmUgTGluZToqKiBWZXJpZnlpbmcgdGhlIHNwZWNpZmljIGBDT05GSUdfYCBkZXBlbmRlbmNpZXMgZm9yIHRoZSBtb2RpZmllZCBmaWxlcy4gVGhlIGBtbGQvYCBkaXJlY3RvcnkgZGVwZW5kcyBvbiBgSVdMTUxEYCwgd2hpbGUgYG12bS9gIGRlcGVuZHMgb24gYElXTE1WTWAuIFRoZSBgdGhlcm1hbC5jYCBjaGFuZ2VzIGFyZSB3cmFwcGVkIGluIGBDT05GSUdfVEhFUk1BTGAuCgojIyMgMy4gQ3JpdGljYWwgRmlsZSBQYXRocyBhbmQgQ29kZSBTbmlwcGV0cwoqICAgKipJbmplY3Rpb24gUG9pbnQ6KiogYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuY2AKICAgIGBgYGMKICAgIDEyNjE6IHN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlKHN0cnVjdCBpd2xfbXZtICptdm0sCiAgICAxMjYyOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpidWYsIHNpemVfdCBjb3VudCwKICAgIDEyNjM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZmZfdCAqcHBvcykKICAgIC4uLgogICAgMTI5OTogICAgICAgICBpd2xfbXZtX3J4X21xKG9wbW9kZSwgTlVMTCwgJmFtcDtyeGIpOwogICAgYGBgCiogICAqKk5vdGlmaWNhdGlvbiBIYW5kbGVyIE1hcDoqKiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmNgCiAgICBgYGBjCiAgICAzMzA6IFJYX0hBTkRMRVJfTk9fU0laRShCRUFDT05fTk9USUZJQ0FUSU9OLCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZiwKICAgIDMzMTogICAgICAgICAgICAgICAgICAgIFJYX0hBTkRMRVJfQVNZTkNfTE9DS0VEKSwKICAgIGBgYAoqICAgKipUaGVybWFsIExvZ2ljOioqIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmNgCiAgICAqICAgVXNlcyBgI2lmZGVmIENPTkZJR19USEVSTUFMYC4KCiMjIyA0LiBSZWFzb25pbmcgTm90ZXMKKiAgICoqUmVwZXRpdGl2ZSBUb29sIENhbGxzOioqIEluaXRpYWwgc2VhcmNoZXMgZm9yICYjMzQ7aXdsd2lmaSYjMzQ7IHdlcmUgdG9vIGJyb2FkOyBzdWJzZXF1ZW50IHNlYXJjaGVzIHdlcmUgbmFycm93ZWQgdG8gc3BlY2lmaWMgZnVuY3Rpb24gbmFtZXMgYW5kIGluamVjdGlvbiBrZXl3b3Jkcy4KKiAgICoqTG9naWMgTG9vcCBBdm9pZGFuY2U6KiogRG8gbm90IGNvbmZ1c2UgYGl3bHdpZmlgICh0aGUgYmFzZSBkcml2ZXIpIHdpdGggYGl3bGVnYWN5YCAob2xkZXIgaGFyZHdhcmUpLiBUaGUgcGF0Y2ggc3RyaWN0bHkgYWZmZWN0cyB0aGUgbW9kZXJuIGBpd2x3aWZpYCBzdGFjayAoTVZNL01MRCkuCiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlLiBUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSBsb2dpYyBoYW5kbGluZyBleHRlcm5hbCAoZmlybXdhcmUpIGlucHV0LiBGb2N1cyBzaG91bGQgYmUgb24gdGhlIFJYIG5vdGlmaWNhdGlvbiBoYW5kbGVycy4KCioqRm9jdXNTeW1ib2xzOioqCi0gYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYAotIGBpd2xfbXZtX3VwZGF0ZV9tY2NgCi0gYGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZmAKLSBgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmYAotIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAKLSBgaXdsX21sZF9yZW9yZGVyYAoKKipFbmFibGVDb25maWdzOioqCi0gYElXTE1WTWAKLSBgSVdMTUxEYAotIGBJV0xXSUZJX0RFQlVHRlNgCi0gYFRIRVJNQUxgPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDY1OTYKCQkJCQkJCW91dHB1dDogMTI1NQoJCQkJCQkJdGhvdWdodHM6IDE1NTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjE5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDExMzg3CgkJCQkJCQlvdXRwdXQ6IDU4CgkJCQkJCQl0aG91Z2h0czogMTk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlZlcmlmeWluZyBDb25maWd1cmF0aW9uIGFuZCBTeW1ib2wgRGVmaW5pdGlvbnMqKgoKT2theSwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBXZSBuZWVkIHRvIG1ldGljdWxvdXNseSB2ZXJpZnkgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYW5kIHN5bWJvbHMgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aC4gQmFzZWQgb24gdGhlIHByZXZpb3VzIGRhdGEsIEkgaGF2ZSBhIGZldyBzcGVjaWZpYyAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7IGFuZCAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OyBpbiBtaW5kLiBUaGUgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OyBhcmU6IGBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZmAsIGBpd2xfbXZtX3VwZGF0ZV9tY2NgLCBgaXdsX212bV90bGNfdXBkYXRlX25vdGlmYCwgYGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZmAsIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAsIGFuZCBgaXdsX21sZF9yZW9yZGVyYC4gQW5kIHRoZSBjb25maWdzIHdlIHdhbnQgdG8gYmUgZW5hYmxlZCBhcmUgYElXTE1WTWAsIGBJV0xNTERgLCBgSVdMV0lGSV9ERUJVR0ZTYCwgYW5kIGBUSEVSTUFMYC4KCk15IGltbWVkaWF0ZSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgaW50byB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24gZmlsZXMuIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIEtjb25maWcgZGVmaW5pdGlvbnMgZm9yIGBJV0xNTERgIGFuZCBgSVdMTVZNYCBzcGVjaWZpY2FsbHkuIFRvIGRvIHRoYXQsIEkmIzM5O2xsIGxldmVyYWdlIHRoZSBgZ3JlcHBlcmAgdG9vbCDigJMgaXQmIzM5O3MgdGhlIGZhc3Rlc3Qgd2F5IHRvIHBpbnBvaW50IHdoZXJlIHRob3NlIHBhcnRpY3VsYXIgc3ltYm9scyBhcmUgZGVmaW5lZCB3aXRoaW4gdGhlIEtjb25maWcgc3RydWN0dXJlLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gdGhlaXIgZGVwZW5kZW5jaWVzIGFuZCB0aGUgbG9naWMgYmVoaW5kIHRoZWlyIGNvbmRpdGlvbmFsIGluY2x1c2lvbi4gVGhpcyB3aWxsIGdpdmUgbWUgYSBzb2xpZCBmb3VuZGF0aW9uIGZvciBhbnkgZnVydGhlciBhbmFseXNpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElXTE1MRCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NzQ9Y29uZmlnIElXTE1WTVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy04My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo4NDpjb25maWcgSVdMTUxEXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctODUtXHR0cmlzdGF0ZSBcJiMzNDtJbnRlbCBXaXJlbGVzcyBXaUZpIE1MRCBGaXJtd2FyZSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJV0xNVk0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTY2PWNvbmZpZyBJV0xEVk1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NzQ6Y29uZmlnIElXTE1WTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTc1LVx0dHJpc3RhdGUgXCYjMzQ7SW50ZWwgV2lyZWxlc3MgV2lGaSBNVk0gRmlybXdhcmUgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSVdMV0lGSV9ERUJVR0ZTJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0xMDc9Y29uZmlnIElXTFdJRklfREVCVUdcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzMTpjb25maWcgSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMyLVx0Ym9vbCBcJiMzNDtpd2x3aWZpIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjI2NgoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDUyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIElXTFdJRkkgUGF0Y2ggZm9yIEZ1enppbmcgT3Bwb3J0dW5pdGllcyoqCgpPa2F5LCB0aGUgaW5pdGlhbCBjb25maWd1cmF0aW9uIGxvb2tzIHNvdW5kLCBidXQgYmVmb3JlIEkgZGl2ZSBpbiwgbGV0JiMzOTtzIGVzdGFibGlzaCBhIGJhc2VsaW5lLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGBJV0xXSUZJX0RFQlVHRlNgIGlzIHN0cmljdGx5IG5lY2Vzc2FyeSBoZXJlLiBUaGlua2luZyBiYWNrLCB0aGUgaGlzdG9yeSBwb2ludHMgdG8gYSBkZWJ1Z2ZzLWJhc2VkIGluamVjdGlvbiBtZWNoYW5pc20gaW4gYGl3bHdpZmkvbXZtL2RlYnVnZnMuY2AuIFNwZWNpZmljYWxseSwgdGhlIGBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZWAgZnVuY3Rpb24gbG9va3MgcHJvbWlzaW5nLiBVc2Vyc3BhY2Ugd3JpdGVzIHJhdywgaGV4LWVuY29kZWQgcGFja2V0cyB0byBhIGRlYnVnZnMgZmlsZSwgd2hpY2ggdGhlbiB0cmlnZ2VycyBgaXdsX212bV9yeF9tcWAsIGVzc2VudGlhbGx5IHNpbXVsYXRpbmcgZmlybXdhcmUgbm90aWZpY2F0aW9ucy4gVGhhdCYjMzk7cyBhIGNsYXNzaWMgZnV6emluZyBlbnRyeSBwb2ludCAtIGVsZWdhbnQgYW5kIGRpcmVjdC4KCk5vdywgbGV0JiMzOTtzIGJyb2FkZW4gdGhlIHNjb3BlLiBJIG5lZWQgdG8gaWRlbnRpZnkgKmFsbCogdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYSBzaWduaWZpY2FudCBudW1iZXIgb2YgZmlsZXMgYWNyb3NzIHRoZSBgaXdsd2lmaWAgZHJpdmVyOiBgYWdnLmNgLCBgbWFjODAyMTEuY2AsIGBtY2MuY2AsIGB0aGVybWFsLmNgLCBgZDMuY2AsIGBtYWMtY3R4dC5jYCwgYG1hYzgwMjExLmNgLCBgbXZtLmhgLCBgbnZtLmNgLCBgcnMtZncuY2AsIGByeC5jYCwgYHNjYW4uY2AsIGFuZCBgdGltZS1ldmVudC5jYCwgYWxsIHdpdGhpbiB0aGUgYG12bWAgZGlyZWN0b3J5LCBhbmQgYWxzbyBgcnguY2AgaW4gdGhlIGBwY2llL2dlbjFfMmAgZGlyZWN0b3J5LgoKSSYjMzk7bGwgc3BlY2lmaWNhbGx5IGNoZWNrIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmNgIHRvIHNlZSBpZiB0aGlzIHJlcXVpcmVzIGFueSB1bmlxdWUgY29uZmlncy4gSXQmIzM5O3MgaW1wb3J0YW50IHRvIGxvb2sgYXQgYWxsIHJlbGV2YW50IGNvbmZpZyBvcHRpb25zIHRvIGVuc3VyZSB0aGUgZnV6emluZyBzZXR1cCBjYW4gdGVzdCBhbGwgcGFydHMgb2YgdGhlIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2l3bF9wY2llX3J4X2ZyZWUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2dlbjFfMi9yeC5jPTExODk9aW50IGl3bF9wY2llX2dlbjJfcnhfaW5pdChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmMtMTIwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguYzoxMjAxOnZvaWQgaXdsX3BjaWVfcnhfZnJlZShzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguYy0xMjAyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTMzODMKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4uLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gUENJZSBpbiB0aGlzIHdpcmVsZXNzIGRyaXZlci4gTXkgZmlyc3QgaW5zdGluY3QsIGJhc2VkIG9uIGV4cGVyaWVuY2UsIGlzIHRvIGRpZyBpbnRvIHRoZSBgS2NvbmZpZ2AgZmlsZXMuIFRoYXQmIzM5O3MgdXN1YWxseSB3aGVyZSB0aGUgcmVsZXZhbnQgYnVpbGQgb3B0aW9ucyBhcmUgZGVmaW5lZC4gU28sIGxldCYjMzk7cyBoZWFkIG92ZXIgdG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvS2NvbmZpZ2AgZmlsZS4gVGhhdCBzZWVtcyBsaWtlIHRoZSBtb3N0IGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIG9wdGlvbnMgcGVydGFpbmluZyB0byB0aGUgUENJZSBpbnRlcmZhY2UgZm9yIHRoZSBJbnRlbCB3aXJlbGVzcyBkcml2ZXIuIEkmIzM5O20gZXhwZWN0aW5nIHRvIGZpbmQgc29tZXRoaW5nIHNwZWNpZmljIHRoZXJlLiBJZiBpdCYjMzk7cyBub3QgdGhlcmUsIEkmIzM5O2xsIG5lZWQgdG8gZXhwYW5kIG15IHNlYXJjaCB0byBpbmNsdWRlIG90aGVyIGxpa2VseSBgS2NvbmZpZ2AgbG9jYXRpb25zIHdpdGhpbiB0aGF0IGRyaXZlciwgb3IgcGVyaGFwcyBldmVuIGxvb2sgYXQgdGhlIHBhcmVudCBkaXJlY3RvcnkmIzM5O3MgYEtjb25maWdgIGZpbGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElXTFdJRklfUENJRSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIElXTFdJRklfUENJRV9SVFBNJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM2NTQKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGlzc3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBJbnRlbCBXaXJlbGVzcyBQQ0lFIERyaXZlciBDb25maWd1cmF0aW9uKioKCk9rYXksIEkgbmVlZCB0byBwaW5wb2ludCB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgSW50ZWwgd2lyZWxlc3MgUENJRSBkcml2ZXIuIExldCYjMzk7cyBzdGFydCB3aXRoIHRoZSBgS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IHRoZSBvbmUgbG9jYXRlZCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnYC4gVGhhdCYjMzk7cyB0aGUgbG9naWNhbCBwbGFjZSB0byBsb29rIGZvciBzZXR0aW5ncyB0aGF0IHdvdWxkIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBQQ0lFIGZ1bmN0aW9uYWxpdHksIG9yIHBlcmhhcHMgZGVmaW5lIHRoZSBzcGVjaWZpYyBmZWF0dXJlcyBzdXBwb3J0ZWQgZm9yIFBDSUUtYmFzZWQgSW50ZWwgd2lyZWxlc3MgY2FyZHMuIEkmIzM5O2xsIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgdGhhdCBmaWxlLCBhcyB0aGlzIGlzIGEgZ29vZCBmaXJzdCBzdGVwIHRvIHRyYWNraW5nIGRvd24gbXkgYW5zd2VycywgYmFzZWQgb24gbXkgcHJpb3Iga25vd2xlZGdlIG9mIHRoZSBmaWxlIHN0cnVjdHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQ0lFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM4NzcKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBJbnRlbCBXaXJlbGVzcyBEcml2ZXIgTWFrZWZpbGUqKgoKT2theSwgdGltZSB0byBkaXZlIGluLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGVgLiBUaGF0JiMzOTtzIHdoZXJlIGFsbCB0aGUgYnVpbGQgY29uZmlndXJhdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBmb3IgdGhlIEludGVsIFdpLUZpIGRyaXZlciwgbGlrZWx5IHRoZSBgaXdsd2lmaWAgbW9kdWxlLCBhcmUgZGVmaW5lZC4gVGhpcyBpcyB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgZHJpdmVyIGlzIGJ1aWx0IGFuZCBsaW5rZWQgaW50byB0aGUga2VybmVsLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBidWlsZCBwcm9jZXNzIGFuZCBwb3RlbnRpYWwgY3VzdG9taXphdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaWUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9OT1pd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1waHktZGIubyBpd2wtbnZtLXBhcnNlLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTExLSMgQnVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjEyOml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gcGNpZS9jdHh0LWluZm8ubyBwY2llL2N0eHQtaW5mby12Mi5vIHBjaWUvZHJ2Lm8gcGNpZS91dGlscy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjEzOml3bHdpZmktb2Jqc1x0XHQmIzQzOz0gcGNpZS9nZW4xXzIvcngubyBwY2llL2dlbjFfMi90eC5vIHBjaWUvZ2VuMV8yL3RyYW5zLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTQ6aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBwY2llL2dlbjFfMi90cmFucy1nZW4yLm8gcGNpZS9nZW4xXzIvdHgtZ2VuMi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxNjpDRkxBR1NfcGNpZS9kcnYubyAmIzQzOz0gLVduby1vdmVycmlkZS1pbml0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTE3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNDM1NAoJCQkJCQkJb3V0cHV0OiAxOQoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyB0aGUgSW50ZXJwbGF5IG9mIFBDSWUgYW5kIGl3bHdpZmkua28qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBkcml2ZXIgc2V0dXAsIGFuZCBpdCBzZWVtcyBwcmV0dHkgY2xlYXIgdGhhdCB0aGUgYHBjaWVgIGNvbXBvbmVudCBpcyBpbnRlZ3JhdGVkIGRpcmVjdGx5IHdpdGhpbiBgaXdsd2lmaS5rb2AuIFRoYXQmIzM5O3Mgbm90IGFsd2F5cyB0aGUgY2FzZSwgc28gaXQmIzM5O3Mgd29ydGggbm90aW5nLiBUaGUgbWFpbiBjb25maWd1cmF0aW9uIHNlZW1zIHRvIHJldm9sdmUgYXJvdW5kIGBJV0xXSUZJYCwgc28gbGV0JiMzOTtzIHN0YXJ0IHRoZXJlIGFuZCBkaWcgaW50byB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgSVdMV0lGSSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoyOmNvbmZpZyBJV0xXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIFdpcmVsZXNzIFdpRmkgTmV4dCBHZW4gQUdOIC0gV2lyZWxlc3MtTi9BZHZhbmNlZC1OL1VsdGltYXRlLU4gKGl3bHdpZmkpIFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz00Nz1pZiBJV0xXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NDk6Y29uZmlnIElXTFdJRklfS1VOSVRfVEVTVFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01MC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjU4OmNvbmZpZyBJV0xXSUZJX0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01OS1cdGJvb2xcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9ODQ9Y29uZmlnIElXTE1MRFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy05NC0jIGRvbiYjMzk7dCBjYWxsIGl0IF9NT0RVTEUgLS0gd2lsbCBjb25mdXNlIEtjb25maWcvZml4ZGVwLy4uLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjk1OmNvbmZpZyBJV0xXSUZJX09QTU9ERV9NT0RVTEFSXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctOTYtXHRib29sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNT1tZW51IFwmIzM0O0RlYnVnZ2luZyBPcHRpb25zXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEwNzpjb25maWcgSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwOC1cdGJvb2wgXCYjMzQ7RW5hYmxlIGZ1bGwgZGVidWdnaW5nIG91dHB1dCBpbiB0aGUgaXdsd2lmaSBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzMTpjb25maWcgSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMyLVx0Ym9vbCBcJiMzNDtpd2x3aWZpIGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTM5OmNvbmZpZyBJV0xXSUZJX0RFVklDRV9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTQwLVx0Ym9vbCBcJiMzNDtpd2x3aWZpIGRldmljZSBhY2Nlc3MgdHJhY2luZ1wmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNTE2NAoJCQkJCQkJb3V0cHV0OiAxNwoJCQkJCQkJdGhvdWdodHM6IDUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkFuYWx5emluZyBSZWxldmFudCBDb25maWd1cmF0aW9ucyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLCBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMgc2l0dWF0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgcHJvY2VzcyBpcyB0byBxdWlja2x5IGNvbnNpZGVyIHRoZSByZWxldmFudCBrZXJuZWwgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBiZSBpbiBwbGF5IGhlcmUuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dDoKCiogICBgSVdMV0lGSWAg4oCTIG9idmlvdXNseSB0aGUgY29yZSBJbnRlbCBXaXJlbGVzcyBkcml2ZXIuCiogICBgSVdMTVZNYCDigJMgbGlrZWx5IHRoZSBNb2JpbGUgVmlydHVhbCBNYWNoaW5lIHBhcnQgb2YgdGhlIGRyaXZlci4KKiAgIGBJV0xNTERgIOKAkyBwb3NzaWJseSB0aGUgTWVkaWEgTGF5ZXIgRGVidWcuCiogICBgSVdMV0lGSV9ERUJVR0ZTYCDigJMgVGhlIGRlYnVnIGZpbGVzeXN0ZW0gc3VwcG9ydCBmb3IgdGhlIElXTFdJRkkgZHJpdmVyLgoqICAgYFRIRVJNQUxgIOKAkyB0aGlzIGlzIGFsd2F5cyBhbiBpbXBvcnRhbnQgb25lLCBwYXJ0aWN1bGFybHkgd2hlbiBkZWFsaW5nIHdpdGggd2lyZWxlc3MgaGFyZHdhcmUsIGFzIGhlYXQgbWFuYWdlbWVudCBjYW4gb2Z0ZW4gYmUgYSBmYWN0b3IuCgpPa2F5LCBsZXQmIzM5O3Mgc3RhcnQgd2l0aCBgVEhFUk1BTGAuIFRoYXQgc2VlbXMgbGlrZSBhIGxvZ2ljYWwgZmlyc3Qgc3RlcCBnaXZlbiBteSBleHBlcmllbmNlIHdpdGggdGhlc2Ugc29ydHMgb2YgaXNzdWVzLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gd2hhdCBpcyBnb2luZyBvbiBoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgVEhFUk1BTCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy01LVxuZHJpdmVycy90aGVybWFsL0tjb25maWc6NjptZW51Y29uZmlnIFRIRVJNQUxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTctXHRib29sIFwmIzM0O1RoZXJtYWwgZHJpdmVyc1wmIzM0O1xuLS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnPTE4PWlmIFRIRVJNQUxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE5LVxuZHJpdmVycy90aGVybWFsL0tjb25maWc6MjA6Y29uZmlnIFRIRVJNQUxfTkVUTElOS1xuZHJpdmVycy90aGVybWFsL0tjb25maWctMjEtXHRib29sIFwmIzM0O1RoZXJtYWwgbmV0bGluayBtYW5hZ2VtZW50XCYjMzQ7XG4tLVxuZHJpdmVycy90aGVybWFsL0tjb25maWctMjgtXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoyOTpjb25maWcgVEhFUk1BTF9TVEFUSVNUSUNTXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7VGhlcm1hbCBzdGF0ZSB0cmFuc2l0aW9uIHN0YXRpc3RpY3NcJiMzNDtcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0zNS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjM2OmNvbmZpZyBUSEVSTUFMX0RFQlVHRlNcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTM3LVx0Ym9vbCBcJiMzNDtUaGVybWFsIHN1YnN5c3RlbSBkZWJ1ZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy90aGVybWFsL0tjb25maWctNDItXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzo0Mzpjb25maWcgVEhFUk1BTF9DT1JFX1RFU1RJTkdcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTQ0LVx0dHJpc3RhdGUgXCYjMzQ7VGhlcm1hbCBjb3JlIHRlc3RpbmcgZmFjaWxpdHlcJiMzNDtcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy01MS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjUyOmNvbmZpZyBUSEVSTUFMX0VNRVJHRU5DWV9QT1dFUk9GRl9ERUxBWV9NU1xuZHJpdmVycy90aGVybWFsL0tjb25maWctNTMtXHRpbnQgXCYjMzQ7RW1lcmdlbmN5IHBvd2Vyb2ZmIGRlbGF5IGluIG1pbGxpLXNlY29uZHNcJiMzNDtcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy02Ny1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjY4OmNvbmZpZyBUSEVSTUFMX0hXTU9OXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy02OS1cdGJvb2xcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy04MS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjgyOmNvbmZpZyBUSEVSTUFMX09GXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy04My1cdGJvb2xcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZz05NT1jaG9pY2Vcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMDEtXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxMDI6Y29uZmlnIFRIRVJNQUxfREVGQVVMVF9HT1ZfU1RFUF9XSVNFXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMDMtXHRib29sIFwmIzM0O3N0ZXBfd2lzZVwmIzM0O1xuLS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTEwOC1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjEwOTpjb25maWcgVEhFUk1BTF9ERUZBVUxUX0dPVl9GQUlSX1NIQVJFXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMTAtXHRib29sIFwmIzM0O2ZhaXJfc2hhcmVcJiMzNDtcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMTYtXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxMTc6Y29uZmlnIFRIRVJNQUxfREVGQVVMVF9HT1ZfVVNFUl9TUEFDRVxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTE4LVx0Ym9vbCBcJiMzNDt1c2VyX3NwYWNlXCYjMzQ7XG4tLVxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTI1LVxuZHJpdmVycy90aGVybWFsL0tjb25maWc6MTI2OmNvbmZpZyBUSEVSTUFMX0RFRkFVTFRfR09WX1BPV0VSX0FMTE9DQVRPUlxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTI3LVx0Ym9vbCBcJiMzNDtwb3dlcl9hbGxvY2F0b3JcJiMzNDtcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMzMtXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxMzQ6Y29uZmlnIFRIRVJNQUxfREVGQVVMVF9HT1ZfQkFOR19CQU5HXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMzUtXHRib29sIFwmIzM0O2JhbmdfYmFuZ1wmIzM0O1xuLS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnPTE0Mj1lbmRjaG9pY2VcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE0My1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjE0NDpjb25maWcgVEhFUk1BTF9HT1ZfRkFJUl9TSEFSRVxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTQ1LVx0Ym9vbCBcJiMzNDtGYWlyLXNoYXJlIHRoZXJtYWwgZ292ZXJub3JcJiMzNDtcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xNDgtXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxNDk6Y29uZmlnIFRIRVJNQUxfR09WX1NURVBfV0lTRVxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTUwLVx0Ym9vbCBcJiMzNDtTdGVwX3dpc2UgdGhlcm1hbCBnb3Zlcm5vclwmIzM0O1xuLS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE1NC1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjE1NTpjb25maWcgVEhFUk1BTF9HT1ZfQkFOR19CQU5HXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xNTYtXHRib29sIFwmIzM0O0JhbmcgQmFuZyB0aGVybWFsIGdvdmVybm9yXCYjMzQ7XG4tLVxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTY0LVxuZHJpdmVycy90aGVybWFsL0tjb25maWc6MTY1OmNvbmZpZyBUSEVSTUFMX0dPVl9VU0VSX1NQQUNFXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xNjYtXHRib29sIFwmIzM0O1VzZXJfc3BhY2UgdGhlcm1hbCBnb3Zlcm5vclwmIzM0O1xuLS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE2OS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjE3MDpjb25maWcgVEhFUk1BTF9HT1ZfUE9XRVJfQUxMT0NBVE9SXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xNzEtXHRib29sIFwmIzM0O1Bvd2VyIGFsbG9jYXRvciB0aGVybWFsIGdvdmVybm9yXCYjMzQ7XG4tLVxuZHJpdmVycy90aGVybWFsL0tjb25maWc9MjIzPWNvbmZpZyBQQ0lFX1RIRVJNQUxcbi0tXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0yMzEtXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoyMzI6Y29uZmlnIFRIRVJNQUxfRU1VTEFUSU9OXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0yMzMtXHRib29sIFwmIzM0O1RoZXJtYWwgZW11bGF0aW9uIG1vZGUgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTI0My1cbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjI0NDpjb25maWcgVEhFUk1BTF9NTUlPXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0yNDUtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIFRoZXJtYWwgTU1JTyBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY1ODYKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyMDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBUaGVybWFsIEltcGFjdCoqCgpBbHJpZ2h0LCAmIzM0O1RIRVJNQUwmIzM0OyBpcyB0aGUgY29ycmVjdCBkaXJlY3Rpb24sIG5vIGNvbmNlcm5zIHRoZXJlLiBOb3csIGxldCYjMzk7cyB6ZXJvIGluIG9uIHRoZSBrZXkgZnVuY3Rpb25zIHRvIGV4YW1pbmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtIGlzIGJlaGF2aW5nIHVuZGVyIHRoZXJtYWwgc3RyZXNzLCBzbyBJJiMzOTtsbCBwcmlvcml0aXplIHRoZXNlIGZ1bmN0aW9uczoKCiogICBgaXdsX212bV9yeF9iZWFjb25fbm90aWZgIOKAkyBMaWtlbHkgcmVsYXRlZCB0byBiZWFjb24gcmVjZXB0aW9uLCB3aGljaCBjb3VsZCBiZSByZWxldmFudCB0byBwb3dlciBjb25zdW1wdGlvbiBhbmQgdGhlcm1hbCBsb2FkIGlmIGl0JiMzOTtzIHN0cnVnZ2xpbmcgd2l0aCBzaWduYWwuCiogICBgaXdsX212bV91cGRhdGVfbWNjYCDigJMgTWlnaHQgaW1wYWN0IGNoYW5uZWwgc2VsZWN0aW9uIGFuZCwgaW5kaXJlY3RseSwgdGhlcm1hbCBiZWhhdmlvciBpZiBpdCYjMzk7cyBmcmVxdWVudGx5IGNoYW5naW5nIGNoYW5uZWxzLgoqICAgYGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZmAg4oCTIFRoaXMgVHJhbnNwb3J0IExheWVyIENvbnRyb2wgdXBkYXRlIGNvdWxkIGNhdXNlIGhlYXZ5IHdvcmssIHdoaWNoIG1pZ2h0IHRyaWdnZXIgVGhlcm1hbCBldmVudHMuCiogICBgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmYCDigJMgUG90ZW50aWFsbHkgcmVsYXRlZCB0byBkYXRhIHdpbmRvdyBtYW5hZ2VtZW50OyBjb3VsZCBleHBvc2UgcGVyZm9ybWFuY2UgbGltaXRzIHVuZGVyIGxvYWQuCiogICBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgIOKAkyBTY2FubmluZyBjeWNsZXMgY2FuIGJlIGRlbWFuZGluZywgc28gSSBuZWVkIHRvIGtub3cgaG93IHRoZXNlIGNvbXBsZXRlIG5vdGlmaWNhdGlvbnMgYXJlIGhhbmRsZWQuCiogICBgaXdsX21sZF9yZW9yZGVyYCDigJMgSWYgcGFja2V0IHJlb3JkZXJpbmcgaXMgaGVhdnksIGl0IGltcGxpZXMgZXJyb3JzLCB3aGljaCBjb3VsZCBhbXBsaWZ5IHRoZSB0aGVybWFsIHN0cmFpbi4KKiAgIGBpd2xfbXZtX3JlcG9ydF93YWtldXBfcmVhc29uc2Ag4oCTIFRoaXMgaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIHdha2luZyB0aGUgZGV2aWNlIHVwLiBGcmVxdWVudCB3YWtlLXVwcyBhcmUgYSBwb3RlbnRpYWwgdGhlcm1hbCBwcm9ibGVtLgoqICAgYGl3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWZgIOKAkyBXT1dMQU4sIG9yIFdha2Utb24tTEFOLCBtaWdodCBpbmZsdWVuY2UgcG93ZXIgc2F2aW5nIGFuZCB0aGVybWFsIGV2ZW50cyBpZiBpdCYjMzk7cyBtYWxmdW5jdGlvbmluZy4KKiAgIGBpd2xfbXZtX3dhaXRfZDNfbm90aWZgIOKAkyBUaGlzIHN1Z2dlc3RzIGEgdHJhbnNpdGlvbiwgYW5kIGhvdyB0aGVybWFsIG1hbmFnZW1lbnQgYmVoYXZlcyBkdXJpbmcgdGhpcyB0cmFuc2l0aW9uIGlzIGNydWNpYWwuCiogICBgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWZgIOKAkyBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBzZXNzaW9uIHByb3RlY3Rpb24gZG9lcywgc2luY2UgdGhpcyBtaWdodCByZXF1aXJlIHNvbWUgaW50ZW5zZSBwcm9jZXNzaW5nLgoKTGV0JiMzOTtzIGJlZ2luIGJ5IGNoZWNraW5nIG91dCB0aGUgYGl3bF9tdm1fcmVwb3J0X3dha2V1cF9yZWFzb25zYCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXdsX212bV9yZXBvcnRfd2FrZXVwX3JlYXNvbnMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYz0xMzkyPXN0cnVjdCBpd2xfd293bGFuX3N0YXR1c19kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTE0NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jOjE0NDc6c3RhdGljIHZvaWQgaXdsX212bV9yZXBvcnRfd2FrZXVwX3JlYXNvbnMoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMTQ0OC1cdFx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM9MjM3Mz1zdGF0aWMgYm9vbCBpd2xfbXZtX3F1ZXJ5X3dha2V1cF9yZWFzb25zKHN0cnVjdCBpd2xfbXZtICptdm0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yNDEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyNDE0Olx0aXdsX212bV9yZXBvcnRfd2FrZXVwX3JlYXNvbnMobXZtLCB2aWYsIHN0YXR1cyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI0MTUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3NjA0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIGNvZGUgc25pcHBldDoKCioqRGl2aW5nIGludG8gV2FrZXVwIFJlYXNvbiBSZXBvcnRpbmcgaW4gdGhlIGl3bF9tdm0gRHJpdmVyKioKCk9rYXksIHNvIEkgc2VlIGBpd2xfbXZtX3JlcG9ydF93YWtldXBfcmVhc29uc2AgaXMgZGVjbGFyZWQgYXMgYHN0YXRpY2AuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgaXQmIzM5O3MgbGlrZWx5IGFuIGludGVybmFsIGhlbHBlciBmdW5jdGlvbiB3aXRoaW4gdGhlIGBpd2xfbXZtYCBtb2R1bGUuICBTaW5jZSBpdCYjMzk7cyBzdGF0aWMsIGl0JiMzOTtzIG9ubHkgdmlzaWJsZSB3aXRoaW4gdGhhdCB0cmFuc2xhdGlvbiB1bml0LCBzbyBpdCYjMzk7cyBub3QgbWVhbnQgZm9yIGRpcmVjdCBleHRlcm5hbCBjYWxscy4gTm93LCBpdCYjMzk7cyBjYWxsZWQgZnJvbSBgaXdsX212bV9xdWVyeV93YWtldXBfcmVhc29uc2AuIE15IG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIHVuZGVyc3RhbmQgKndoeSogYW5kICpob3cqIGBpd2xfbXZtX3F1ZXJ5X3dha2V1cF9yZWFzb25zYCBpcyBiZWluZyB1c2VkLiBJIG5lZWQgdG8gdHJhY2UgdGhlIGNhbGwgcGF0aHMgdG8gYGl3bF9tdm1fcXVlcnlfd2FrZXVwX3JlYXNvbnNgLiAgSSYjMzk7bGwgc3RhcnQgdGhlcmUgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBhbmQgcHVycG9zZSBvZiByZXBvcnRpbmcgdGhlc2Ugd2FrZXVwIHJlYXNvbnMuIEkgc3VzcGVjdCB0aGlzIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGxhcmdlciBwb3dlciBtYW5hZ2VtZW50IG9yIGRlYnVnZ2luZyBzdHJhdGVneS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXdsX212bV9xdWVyeV93YWtldXBfcmVhc29ucyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jPTIyODM9aXdsX212bV9zZW5kX3dvd2xhbl9nZXRfc3RhdHVzKHN0cnVjdCBpd2xfbXZtICptdm0sIHU4IHN0YV9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTIzNzItLyogcmVsZWFzZXMgdGhlIE1WTSBtdXRleCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyMzczOnN0YXRpYyBib29sIGl3bF9tdm1fcXVlcnlfd2FrZXVwX3JlYXNvbnMoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjM3NC1cdFx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYz0yNzIzPWl3bF9tdm1fY2hvb3NlX3F1ZXJ5X3dha2V1cF9yZWFzb25zKHN0cnVjdCBpd2xfbXZtICptdm0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yNzQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyNzQzOlx0cmV0dXJuIGl3bF9tdm1fcXVlcnlfd2FrZXVwX3JlYXNvbnMobXZtLCB2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI3NDQtXHRcdFx0XHRcdCAgICBkM19kYXRhLVx1MDAzZXN0YXR1cyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MjU2CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4gSGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gZGlzc2VjdGluZyBgaXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZmA6CgoqKkFuYWx5emluZyBgaXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZmAqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCwgd2hpY2gsIGp1ZGdpbmcgYnkgdGhlIG5hbWUsIGlzIG9idmlvdXNseSByZWxhdGVkIHRvIHBhcnNpbmcgV2FrZS1vbi1XTEFOIGluZm9ybWF0aW9uIG5vdGlmaWNhdGlvbnMgd2l0aGluIHRoZSBJbnRlbCB3aXJlbGVzcyBkcml2ZXImIzM5O3MgTVZNIChNZXNoIFZpcnR1YWwgTWFjaGluZSkgc3Vic3lzdGVtLiBUaGlzIGltbWVkaWF0ZWx5IHRyaWdnZXJzIGEgYnVuY2ggb2YgcXVlc3Rpb25zIGluIG15IG1pbmQuIFdoYXQgc3BlY2lmaWNhbGx5IGlzIHRoZSBub3RpZmljYXRpb24gc3RydWN0dXJlPyBXaGF0IGRhdGEgZmllbGRzIGFyZSB3ZSBkZWFsaW5nIHdpdGg/IElzIHRoaXMgcmVsYXRlZCB0byBzcGVjaWZpYyBmaXJtd2FyZSB2ZXJzaW9ucyBvciBoYXJkd2FyZSByZXZpc2lvbnM/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdHJpZ2dlcnMgdGhpcyBmdW5jdGlvbiwgdGhlIGNvbnRleHQgaW4gd2hpY2ggaXQmIzM5O3MgY2FsbGVkLiBJcyBpdCB0cmlnZ2VyZWQgb24gdGhlIHJlY2VpcHQgb2YgYW4gZXZlbnQgZnJvbSB0aGUgaGFyZHdhcmUsIHBlcmhhcHMgYSBtYW5hZ2VtZW50IGZyYW1lPyBJcyBpdCB0aWVkIHRvIGEgc3BlY2lmaWMgcG93ZXIgbWFuYWdlbWVudCBzdGF0ZT8gSSYjMzk7bGwgbmVlZCB0byB0cmFjZSBiYWNrIHRoZSBjYWxsIHN0YWNrIHRvIHNlZSB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIGludm9rZWQgYW5kIHVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcy4gTW9yZW92ZXIsIGhvdyBhcmUgdGhlc2UgcGFyc2VkIHZhbHVlcyB0aGVuIHV0aWxpemVkIGZ1cnRoZXIgZG93biB0aGUgbGluZT8gQXJlIHRoZXkgdXNlZCB0byBjb25maWd1cmUgdGhlIHJhZGlvLCB0cmlnZ2VyIHNwZWNpZmljIGFjdGlvbnMsIG9yIG1lcmVseSBmb3IgbG9nZ2luZyBhbmQgZGVidWdnaW5nIHB1cnBvc2VzPyBJIG5lZWQgdG8gYW5hbHl6ZSB0aGUgc3Vycm91bmRpbmcgY29kZSAtIHRoZSBkYXRhIHN0cnVjdHVyZXMsIHRoZSBlcnJvciBoYW5kbGluZywgYW5kIGFueSBpbnRlcmFjdGlvbnMgd2l0aCBvdGhlciBtb2R1bGVzLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbiBhbmQgdW5kZXJzdGFuZCB0aGUgaW50cmljYWNpZXMgb2YgaG93IHRoaXMgZnVuY3Rpb24gY29udHJpYnV0ZXMgdG8gZWZmaWNpZW50IGFuZCBjb3JyZWN0IFdha2Utb24tV0xBTiBiZWhhdmlvciB3aXRoaW4gdGhlIGRyaXZlci4gTGV0JiMzOTtzIGdldCB0byBpdCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jPTIwOTA9c3RhdGljIHZvaWQgaXdsX212bV9jb252ZXJ0X2JpZ3RrKHN0cnVjdCBpd2xfd293bGFuX3N0YXR1c19kYXRhICpzdGF0dXMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yMTIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyMTIxOnN0YXRpYyB2b2lkIGl3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjEyMi1cdFx0XHRcdFx0ICAgIHN0cnVjdCBpd2xfd293bGFuX2luZm9fbm90aWZfdjUgKmRhdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYz0yMTYxPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jOjIxNjI6aXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZl92MyhzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yMTYzLVx0XHRcdFx0ICAgc3RydWN0IGl3bF93b3dsYW5faW5mb19ub3RpZl92MyAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jPTIxOTQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM6MjE5NTppd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmX3YxKHN0cnVjdCBpd2xfbXZtICptdm0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTIxOTYtXHRcdFx0XHQgICBzdHJ1Y3QgaXdsX3dvd2xhbl9pbmZvX25vdGlmX3YxICpkYXRhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM9Mjg0NT1zdGF0aWMgYm9vbCBpd2xfbXZtX3dhaXRfZDNfbm90aWYoc3RydWN0IGl3bF9ub3RpZl93YWl0X2RhdGEgKm5vdGlmX3dhaXQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yODcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyODczOlx0XHRcdGl3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWZfdjEobXZtLCBub3RpZl92MSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjg3NC1cdFx0XHRcdFx0XHRcdCAgIGQzX2RhdGEtXHUwMDNlc3RhdHVzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjg3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM6Mjg4MDpcdFx0XHRpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmX3YzKG12bSwgbm90aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI4ODEtXHRcdFx0XHRcdFx0XHQgICBkM19kYXRhLVx1MDAzZXN0YXR1cywgbGVuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI4ODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jOjI4ODY6XHRcdFx0aXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZihtdm0sIG5vdGlmLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yODg3LVx0XHRcdFx0XHRcdFx0ZDNfZGF0YS1cdTAwM2VzdGF0dXMsIGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NDg1CgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gYW4gZXhwZXJ0IGluIHRoaXMgZmllbGQsIGFuZCBzcGVha2luZyBmcm9tIHRoZSBmaXJzdC1wZXJzb24gcGVyc3BlY3RpdmU6CgoqKkRpdmluZyBpbnRvIHRoZSBEMyBOb3RpZmljYXRpb24gSGFuZGxpbmcqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGUgYGl3bF9tdm1fd2FpdF9kM19ub3RpZmAgZnVuY3Rpb24uIFRoYXQmIzM5O3MgdGhlIGtleS4gRnJvbSBteSBleHBlcmllbmNlLCBhbmQgdGhlIGNvbnRleHQsIEkga25vdyB0aGF0JiMzOTtzIHRoZSBwb2ludCB3aGVyZSB3ZSYjMzk7cmUgYWN0dWFsbHkgKmhhbmRsaW5nKiB0aGUgRDMgKERldmljZSBEcml2ZXIgRGVlcCBTbGVlcCkgbm90aWZpY2F0aW9uLiBJdCYjMzk7cyB0aGUgZ2F0ZWtlZXBlciwgdGhlIHBhcnQgdGhhdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgcmVjb2duaXppbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhlIHNpZ25hbCBpbmRpY2F0aW5nIHRoYXQgYSBEMyBzdGF0ZSB0cmFuc2l0aW9uIG5lZWRzIHRvIGhhcHBlbiwgb3IgaXMgaGFwcGVuaW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0JiMzOTtzIGhhcHBlbmluZyB3aXRoaW4gdGhpcyBmdW5jdGlvbiBhbmQgaG93IGl0IGlzIGJlaGF2aW5nLiBUaGF04oCZcyB3aGVyZSBJIHNob3VsZCBiZSBjb25jZW50cmF0aW5nIG15IGVmZm9ydHMuIFRoZSBudWFuY2VzIG9mIGl0cyBpbXBsZW1lbnRhdGlvbiBhcmUgY3J1Y2lhbCB0byBhIHN1Y2Nlc3NmdWwgRDMgZmxvdy4gSSBoYXZlIHRvIGxvb2sgZGVlcGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpd2xfbXZtX3dhaXRfZDNfbm90aWYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYz0yNzk2PXN0YXRpYyB2b2lkIGl3bF9tdm1fbmRfbWF0Y2hfaW5mb19oYW5kbGVyKHN0cnVjdCBpd2xfbXZtICptdm0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yODQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyODQ1OnN0YXRpYyBib29sIGl3bF9tdm1fd2FpdF9kM19ub3RpZihzdHJ1Y3QgaXdsX25vdGlmX3dhaXRfZGF0YSAqbm90aWZfd2FpdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjg0Ni1cdFx0XHRcdCAgc3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jPTI5OTQ9c3RhdGljIGludCBpd2xfbXZtX2QzX25vdGlmX3dhaXQoc3RydWN0IGl3bF9tdm0gKm12bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTMwMTItXHRcdFx0XHRcdCAgIEFSUkFZX1NJWkUoZDNfZmFzdF9yZXN1bWVfbm90aWYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzozMDEzOlx0XHRcdFx0XHQgICBpd2xfbXZtX3dhaXRfZDNfbm90aWYsIGQzX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0zMDE0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMzAxNy1cdFx0XHRcdFx0ICAgQVJSQVlfU0laRShkM19yZXN1bWVfbm90aWYpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzozMDE4Olx0XHRcdFx0XHQgICBpd2xfbXZtX3dhaXRfZDNfbm90aWYsIGQzX2RhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0zMDE5LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDIwNwoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDYyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgdGhlIEludGVsIFdpcmVsZXNzIERyaXZlciYjMzk7cyBEMyBOb3RpZmljYXRpb24gSGFuZGxpbmcqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gaG93IHRoZSBJbnRlbCB3aXJlbGVzcyBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYGl3bF9tdm1gIHBhcnQsIGhhbmRsZXMgRDMgKERldmljZSBTdGF0ZSBEMykgbm90aWZpY2F0aW9ucy4gSSBzZWUgdGhhdCBgaXdsX212bV93YWl0X2QzX25vdGlmYCBpcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHBhc3NlZCB0byBgaXdsX2luaXRfbm90aWZpY2F0aW9uX3dhaXRgLiAgVGhhdCBtYWtlcyBzZW5zZTsgaXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHRoYXQmIzM5O3MgZ29pbmcgdG8gYmUgZXhlY3V0ZWQgd2hlbmV2ZXIgYSBub3RpZmljYXRpb24gc2hvd3MgdXAuCgpOb3csIEkgbmVlZCB0byBmaWd1cmUgb3V0ICp3aGF0KiB0aGlzIG5vdGlmaWNhdGlvbiBpcyBhY3R1YWxseSBkb2luZyBhbmQgaG93IGl0IHRpZXMgaW50byB0aGUgYnJvYWRlciBwb3dlciBtYW5hZ2VtZW50IHNjaGVtZS4gTXkgaW5zdGluY3QgaXMgdG8gdHJhY2UgdGhpcyBub3RpZmljYXRpb24gYmFjayB0byB0aGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpdC4gU28sIGxldCBtZSB0YWtlIGEgbG9vayBhdCBgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWZgLiBUaGF0IHNlZW1zIGxpa2UgYSBsb2dpY2FsIG5leHQgc3RlcCB0byB1bmRlcnN0YW5kIHRoZSBicm9hZGVyIGNvbnRleHQuIExldCYjMzk7cyBzZWUgaG93IHRoYXQgZml0cyBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM9MzE3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaXdsX3J4X2hhbmRsZXJzIGl3bF9tdm1fcnhfaGFuZGxlcnNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zNTQtXHRSWF9IQU5ETEVSX0dSUChNQUNfQ09ORl9HUk9VUCwgU0VTU0lPTl9QUk9URUNUSU9OX05PVElGLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM6MzU1Olx0XHQgICAgICAgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYsIFJYX0hBTkRMRVJfU1lOQyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTM1Ni1cdFx0ICAgICAgIHN0cnVjdCBpd2xfc2Vzc2lvbl9wcm90X25vdGlmKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmM9OTE0PXZvaWQgaXdsX212bV9zdG9wX3Nlc3Npb25fcHJvdGVjdGlvbihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuYy05NDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmM6OTQ1OnZvaWQgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuYy05NDYtXHRcdFx0XHQgICAgICBzdHJ1Y3QgaXdsX3J4X2NtZF9idWZmZXIgKnJ4Yilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50Lmg9MjE0PXZvaWQgaXdsX212bV9zY2hlZHVsZV9zZXNzaW9uX3Byb3RlY3Rpb24oc3RydWN0IGl3bF9tdm0gKm12bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmgtMjE5LS8qKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5oOjIyMDogKiBpd2xfbXZtX3J4X3Nlc3Npb25fcHJvdGVjdF9ub3RpZiAtIGhhbmRsZXMgJVNFU1NJT05fUFJPVEVDVElPTl9OT1RJRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5oLTIyMS0gKiBAbXZtOiB0aGUgbXZtIGNvbXBvbmVudFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuaC0yMjMtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50Lmg6MjI0OnZvaWQgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuaC0yMjUtXHRcdFx0XHQgICAgICBzdHJ1Y3QgaXdsX3J4X2NtZF9idWZmZXIgKnJ4Yik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMTUzCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgc3VtbWFyaXplZCBhcyBhIHRob3VnaHQgcHJvY2VzczoKCioqRGl2aW5nIGludG8gdGhlIGl3bF9tdm0gUlggSGFuZGxpbmcqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBmb2N1c2luZyBvbiBgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWZgIHJpZ2h0IG5vdyDigJMgaXQmIzM5O3MgcHJldHR5IGNsZWFyIHRoaXMgaXMgYSBmdW5jdGlvbiB3aXRoaW4gdGhlIFJYIHBhdGguIE5vdywgSSBuZWVkIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyBpdCBmaXRzIGludG8gdGhlIHdob2xlIHBpY3R1cmUuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGV4cGxvcmUgaG93IHRoaXMgcHJvdGVjdGlvbiBub3RpZmljYXRpb24gaGFuZGxlciByZWxhdGVzIHRvIHRoZSBicm9hZGVyIHN5c3RlbSwgYW5kIEkgdGhpbmsgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBgaXdsX212bV91cGRhdGVfbWNjYCBmdW5jdGlvbi4gSSBoYXZlIGEgaHVuY2ggaXQgd2lsbCBwcm92aWRlIHNvbWUgdXNlZnVsIGNvbnRleHQuIExldCYjMzk7cyBzZWUgaG93IHRoZXkgaW50ZXJhY3QuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2l3bF9tdm1fdXBkYXRlX21jYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jPTExNz1zdHJ1Y3QgaWVlZTgwMjExX3JlZ2RvbWFpbiAqaXdsX212bV9nZXRfcmVnZG9tYWluKHN0cnVjdCB3aXBoeSAqd2lwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuYy0xMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jOjEzMjpcdHJlc3AgPSBpd2xfbXZtX3VwZGF0ZV9tY2MobXZtLCBhbHBoYTIsIHNyY19pZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jLTEzMy1cdGlmIChJU19FUlJfT1JfTlVMTChyZXNwKSkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oPTIzMTk9c3RydWN0IGl3bF9tY2NfdXBkYXRlX3Jlc3BfdjggKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmg6MjMyMDppd2xfbXZtX3VwZGF0ZV9tY2Moc3RydWN0IGl3bF9tdm0gKm12bSwgY29uc3QgY2hhciAqYWxwaGEyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmgtMjMyMS1cdFx0ICAgZW51bSBpd2xfbWNjX3NvdXJjZSBzcmNfaWQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jPTQwMD1zdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92OCAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9udm0uYzo0MDE6aXdsX212bV91cGRhdGVfbWNjKHN0cnVjdCBpd2xfbXZtICptdm0sIGNvbnN0IGNoYXIgKmFscGhhMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jLTQwMi1cdFx0ICAgZW51bSBpd2xfbWNjX3NvdXJjZSBzcmNfaWQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxODMyCgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIGluZm9ybWF0aW9uLCBhcyBpZiB0aGVzZSB3ZXJlIG15IGludGVybmFsIHRob3VnaHRzOgoKKipEaXNzZWN0aW5nIHRoZSBpd2xfbXZtIENvZGViYXNlKioKCk9rYXksIHNvIGBpd2xfbXZtX3VwZGF0ZV9tY2NgIGlzIG1ha2luZyBhIGNvbW1hbmQsIHNlbmRpbmcgaXQsIGFuZCB0aGVuIHBhcnNpbmcgdGhlIHJlcGx5LiBUaGF0JiMzOTtzIHN0YW5kYXJkIGVub3VnaC4gTm93LCB0aGUgY29udGV4dCBpcyBpbXBvcnRhbnQg4oCTIGl0JiMzOTtzIGJlaW5nIGNhbGxlZCBmcm9tIGBpd2xfbXZtX2dldF9yZWdkb21haW5gLiBUaGF0IHN1Z2dlc3RzIGl0JiMzOTtzIGxpa2VseSBpbnZvbHZlZCBpbiByZWdpb24gY29kZSBvciByZWd1bGF0b3J5IGRvbWFpbiBoYW5kbGluZy4gSSBuZWVkIHRvIGtlZXAgdGhhdCBjb25uZWN0aW9uIGluIG1pbmQuIFBlcmhhcHMgdGhlIGBtY2NgIHN0YW5kcyBmb3IgJiMzNDttdWx0aS1jYXJyaWVyIGNvbmZpZ3VyYXRpb24mIzM0OywgYW5kIHRoZSBmdW5jdGlvbiBpcyB1cGRhdGluZyB0aGUgcmVndWxhdG9yeSBkb21haW4gY29uZmlndXJhdGlvbiBiYXNlZCBvbiBhbiBleHRlcm5hbCByZXNwb25zZS4KCk5vdywgSSB3YW50IHRvIHBpdm90IGEgYml0LiBMZXQmIzM5O3Mgc2hpZnQgb3VyIGZvY3VzIHRvIGBpd2xfbWxkX3Jlb3JkZXJgLiBJJiMzOTttIGN1cmlvdXMgd2hhdCBraW5kIG9mIHJlb3JkZXJpbmcgY29udGV4dCBtaWdodCBleGlzdC4gTXkgZXhwZXJ0aXNlIGlzIHByaW1hcmlseSBpbiB0aGUgbnVhbmNlcyBvZiBuZXR3b3JraW5nIHByb3RvY29scywgYW5kIEkgaGF2ZSBoYWQgc29tZSBleHBlcmllbmNlIHdvcmtpbmcgb24gc2ltaWxhciB3aXJlbGVzcyBkcml2ZXJzLiBSZW9yZGVyaW5nIGNvdWxkIGJlIHJlbGF0ZWQgdG8gdmFyaW91cyBhc3BlY3RzLCBsaWtlIHBhY2tldCByZW9yZGVyaW5nIHdpdGhpbiBhIHN0cmVhbSwgb3IgaXQgbWF5IHJlbGF0ZSB0byB0aGUgcmVvcmRlcmluZyBvZiB0cmFmZmljIGZsb3dzIG9yIHBhY2tldHMuIExldCYjMzk7cyBzZWUgd2hhdCB0aGF0IGZ1bmN0aW9uIGlzIGFib3V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpd2xfbWxkX3Jlb3JkZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM9OT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTA6aXdsX21sZF9yZW9yZGVyX3JlbGVhc2VfZnJhbWVzKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xMS1cdFx0XHQgICAgICAgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTItXHRcdFx0ICAgICAgIHN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSAqYmFpZF9kYXRhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTM6XHRcdFx0ICAgICAgIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE0LVx0XHRcdCAgICAgICB1MTYgbnNzbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE2Olx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTctXHRcdFx1MDAyNmJhaWRfZGF0YS1cdTAwM2VlbnRyaWVzW3Jlb3JkZXJfYnVmLVx1MDAzZXF1ZXVlICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz00Mj1zdGF0aWMgdm9pZCBpd2xfbWxkX3JlbGVhc2VfZnJhbWVzX2Zyb21fbm90aWYoc3RydWN0IGl3bF9tbGQgKm1sZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00NS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0NjpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ3LVx0c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYV9kYXRhO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6Nzc6XHRpd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMobWxkLCBsaW5rX3N0YS1cdTAwM2VzdGEsIG5hcGksIGJhX2RhdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy03OC1cdFx0XHRcdCAgICAgICByZW9yZGVyX2J1ZiwgbnNzbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM9MTUzPXZvaWQgaXdsX21sZF9kZWxfYmEoc3RydWN0IGl3bF9tbGQgKm1sZCwgaW50IHF1ZXVlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE1Ni1cdHN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSAqYmFfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE1NzpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE1OC1cdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE4Mi1cdC8qIHJlbGVhc2UgYWxsIGZyYW1lcyB0aGF0IGFyZSBpbiB0aGUgcmVvcmRlciBidWZmZXIgdG8gdGhlIHN0YWNrICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxODM6XHRpd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMobWxkLCBsaW5rX3N0YS1cdTAwM2VzdGEsIE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xODQtXHRcdFx0XHQgICAgICAgYmFfZGF0YSwgcmVvcmRlcl9idWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTkzLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTk0OmVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTk1Oml3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xOTYtXHRcdGludCBxdWV1ZSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0yMDAtXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjIwMTpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoyMDI6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1Zl9lbnRyeSAqZW50cmllcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTIwMy1cdHN0cnVjdCBpd2xfbWxkX3N0YSAqbWxkX3N0YSA9IGl3bF9tbGRfc3RhX2Zyb21fbWFjODAyMTEoc3RhKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0zMjMtXHRpZiAoIWFtc2R1IHx8IGxhc3Rfc3ViZnJhbWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzozMjQ6XHRcdGl3bF9tbGRfcmVvcmRlcl9yZWxlYXNlX2ZyYW1lcyhtbGQsIHN0YSwgbmFwaSwgYmFpZF9kYXRhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMzI1LVx0XHRcdFx0XHQgICAgICAgYnVmZmVyLCBuc3NuKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0zMzAtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MzMxOkVYUE9SVF9TWU1CT0xfSUZfSVdMV0lGSV9LVU5JVChpd2xfbWxkX3Jlb3JkZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMzMyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQ2ND1zdGF0aWMgdm9pZCBpd2xfbWxkX2luaXRfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGQgKm1sZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00NjgtXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbWxkLVx1MDAzZXRyYW5zLVx1MDAzZWluZm8ubnVtX3J4cXM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0Njk6XHRcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZiA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00NzAtXHRcdFx0XHUwMDI2ZGF0YS1cdTAwM2VyZW9yZGVyX2J1ZltpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ3MTpcdFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDcyLVx0XHRcdFx1MDAyNmRhdGEtXHUwMDNlZW50cmllc1tpICogZGF0YS1cdTAwM2VlbnRyaWVzX3Blcl9xdWV1ZV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM9NDgyPXN0YXRpYyB2b2lkIGl3bF9tbGRfZnJlZV9yZW9yZGVyX2J1ZmZlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ5Mi1cdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBtbGQtXHUwMDNldHJhbnMtXHUwMDNlaW5mby5udW1fcnhxczsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ5MzpcdFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKnJlb3JkZXJfYnVmID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ5NC1cdFx0XHRcdTAwMjZkYXRhLVx1MDAzZXJlb3JkZXJfYnVmW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDk1Olx0XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1Zl9lbnRyeSAqZW50cmllcyA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTYtXHRcdFx0XHUwMDI2ZGF0YS1cdTAwM2VlbnRyaWVzW2kgKiBkYXRhLVx1MDAzZWVudHJpZXNfcGVyX3F1ZXVlXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xMS0vKipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjEyOiAqIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyIC0gcGVyIHJhL3RpZC9xdWV1ZSByZW9yZGVyIGJ1ZmZlclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTMtICogQGhlYWRfc246IHJlb3JkZXIgd2luZG93IGhlYWQgc2VxdWVuY2UgbnVtYmVyXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTctICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxODpzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xOS1cdHUxNiBoZWFkX3NuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTI1LS8qKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MjY6ICogc3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgLSByZW9yZGVyIGJ1ZmZlciBlbnRyeSBwZXItcXVldWUvcGVyLXNlcW5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0yNy0gKiBAZnJhbWVzOiBsaXN0IG9mIHNrYnMgc3RvcmVkLiBhIGxpc3QgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaW4gYW4gQS1NU0RVLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTMwLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MzE6c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMzItXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGZyYW1lcztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaD02Mz1zdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTc0LVx0c3RydWN0IGl3bF9tbGQgKm1sZDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjc1Olx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgcmVvcmRlcl9idWZbSVdMX01BWF9SWF9IV19RVUVVRVNdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6NzY6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1Zl9lbnRyeSBlbnRyaWVzW10gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTc3LX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg9ODQ9c3RydWN0IGl3bF9tbGRfZGVsYmFfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtODgtLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo4OTogKiBlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgLSBQb3NzaWJsZSByZXR1cm4gdmFsdWVzIGZvciBpd2xfbWxkX3Jlb3JkZXIoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtOTAtICogaW5kaWNhdGluZyBob3cgdGhlIGNhbGxlciBzaG91bGQgaGFuZGxlIHRoZSBza2IgYmFzZWQgb24gdGhlIHJlc3VsdC5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC05NS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjk2OmVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC05Ny1cdElXTF9NTERfUEFTU19TS0IsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg9MTA0PWludCBpd2xfbWxkX2FtcGR1X3J4X3N0b3Aoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxMDc6ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxMDg6aXdsX21sZF9yZW9yZGVyKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTEwOS1cdFx0aW50IHF1ZXVlLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmM9MjAyMD12b2lkIGl3bF9tbGRfcnhfbXBkdShzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy0yMDMzLVx0dTMyIG1wZHVfbGVuO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYzoyMDM0Olx0ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IHJlb3JkZXJfcmVzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy0yMDM1LVx0c3RydWN0IGllZWU4MDIxMV9yeF9zdGF0dXMgKnJ4X3N0YXR1cztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTIxNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jOjIxNDM6XHRyZW9yZGVyX3JlcyA9IGl3bF9tbGRfcmVvcmRlcihtbGQsIG5hcGksIHF1ZXVlLCBzdGEsIHNrYiwgbXBkdV9kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjE0NC1cdHN3aXRjaCAocmVvcmRlcl9yZXMpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz0yMT1zdGF0aWMgY29uc3Qgc3RydWN0IHJlb3JkZXJfYnVmZmVyX2Nhc2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU1LVx0c3RydWN0IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjU2Olx0XHRlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgcmVvcmRlcl9yZXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01Ny1cdFx0dTE2IGhlYWRfc247XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9NTAyPXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYWxsb2NfYW5kX3NldHVwX3NrYih1MTYgZmMsIHUxNiBzZXFfY3RybCwgdTggdGlkLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjUzMDpzdGF0aWMgc3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTMxLXNldHVwX3Jlb3JkZXJfYnVmZmVyKHN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSAqYmFpZF9kYXRhKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUzNS1cdFx0KGNvbnN0IHZvaWQgKikodGVzdC1cdTAwM2VwYXJhbV92YWx1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MzY6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyID0gYmFpZF9kYXRhLVx1MDAzZXJlb3JkZXJfYnVmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTM3Olx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPSBiYWlkX2RhdGEtXHUwMDNlZW50cmllcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUzOC1cdHN0cnVjdCBza19idWZmICpmYWtlX3NrYjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1Njg6c3RhdGljIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpzZXR1cF9iYV9kYXRhKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01Njkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU3NC1cdHN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSAqYmFpZF9kYXRhID0gTlVMTDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjU3NTpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NzYtXHR1MzIgcmVvcmRlcl9idWZfc2l6ZSA9IEJBX1dJTkRPV19TSVpFICogc2l6ZW9mKGJhaWRfZGF0YS1cdTAwM2VlbnRyaWVzWzBdKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz02MDE9c3RhdGljIHZvaWQgdGVzdF9yZW9yZGVyX2J1ZmZlcihzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjA5LVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYxMDpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpidWZmZXI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2MTE6XHRlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgcmVvcmRlcl9yZXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MTItXHR1MTYgc2tiX3JlbGVhc2Vfb3JkZXJfY291bnQgPSBwYXJhbS1cdTAwM2VleHBlY3RlZC5za2JfcmVsZWFzZV9vcmRlcl9jb3VudDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MzItXHRyY3VfcmVhZF9sb2NrKCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2MzM6XHRyZW9yZGVyX3JlcyA9IGl3bF9tbGRfcmVvcmRlcihtbGQsIE5VTEwsIFFVRVVFLCBzdGEsIHNrYiwgbXBkdV9kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYzNC1cdHJjdV9yZWFkX3VubG9jaygpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjYxNAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkludmVzdGlnYXRpbmcgdGhlIERhdGEgUmVvcmRlcmluZyBpbiB0aGUgSW50ZWwgV2lyZWxlc3MgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoZSBJbnRlbCB3aXJlbGVzcyBkcml2ZXImIzM5O3MgZGF0YSByZW9yZGVyaW5nIGxvZ2ljLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdHJhY2luZyB3aGVyZSBgaXdsX21sZF9yZW9yZGVyYCBnZXRzIGNhbGxlZC4gUmlnaHQsIGl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgaW52b2tlZCBmcm9tIGBpd2xfbWxkX3J4X21wZHVgLCB3aGljaCBtYWtlcyBzZW5zZTsgcmVvcmRlcmluZyBsaWtlbHkgaGFwcGVucyBhcyBwYXJ0IG9mIHByb2Nlc3NpbmcgcmVjZWl2ZWQgTVBEVXMgKE11bHRpLVByb3RvY29sIERhdGEgVW5pdHMpLiBOb3csIEkmIzM5O20gY3VyaW91cyBhYm91dCB0aGUgc3BlY2lmaWMgaW50ZXJhY3Rpb24gd2l0aCB0aGUgVHJhZmZpYyBMb2FkIENvbnRyb2wgYW5kIHRoZSBhc3NvY2lhdGVkIG5vdGlmaWNhdGlvbiBzeXN0ZW0uIExldCBtZSBxdWlja2x5IGV4YW1pbmUgYGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZmAgdG8gdW5kZXJzdGFuZCBob3cgdGhhdCB0aWVzIGluLiBJdCB3aWxsIHByb3ZpZGUgbW9yZSBjb250ZXh0IG9uIHRoZSBkYXRhIGZsb3cgYW5kIGhvdyB0aGUgZHJpdmVyIG1hbmFnZXMgZGF0YSBmbG93IGNvbnRyb2wgYW5kIHJlb3JkZXJpbmcgYmFzZWQgb24gdHJhZmZpYyBsb2FkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpd2xfbXZtX3RsY191cGRhdGVfbm90aWYmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM9MzE3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaXdsX3J4X2hhbmRsZXJzIGl3bF9tdm1fcnhfaGFuZGxlcnNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zMjMtXHRSWF9IQU5ETEVSX0dSUChEQVRBX1BBVEhfR1JPVVAsIFRMQ19NTkdfVVBEQVRFX05PVElGLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM6MzI0Olx0XHQgICAgICAgaXdsX212bV90bGNfdXBkYXRlX25vdGlmLCBSWF9IQU5ETEVSX1NZTkMsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zMjUtXHRcdCAgICAgICBzdHJ1Y3QgaXdsX3RsY191cGRhdGVfbm90aWYpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmM9MzY2PXN0YXRpYyB2b2lkIHJzX2Z3X3NldF9zdXBwX3JhdGVzKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMtZncuYy00MTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jOjQxNDp2b2lkIGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMtZncuYy00MTUtXHRcdFx0ICAgICAgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMuaD00NDc9aW50IHJzX2Z3X3R4X3Byb3RlY3Rpb24oc3RydWN0IGl3bF9tdm0gKm12bSwgc3RydWN0IGl3bF9tdm1fc3RhICptdm1zdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy5oLTQ0OC1cdFx0XHRib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy5oOjQ0OTp2b2lkIGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMuaC00NTAtXHRcdFx0ICAgICAgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzQxNAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqUlggSGFuZGxlciBBbmFseXNpcyoqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCBzb21ldGhpbmcgcmVsYXRlZCB0byB0aGUgcmVjZWl2ZSBwYXRoIOKAkyBpdCYjMzk7cyBhbiBSWCBoYW5kbGVyLCBwcmVzdW1hYmx5IHdpdGhpbiB0aGUgSW50ZWwgV2lyZWxlc3MgTVZNIGRyaXZlci4gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIHplcm8gaW4gb24gYGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZmAuIFRoYXQgZnVuY3Rpb24gbmFtZSBoYXMgYSBmYW1pbGlhciByaW5nOyBpdCBzdWdnZXN0cyB0aGlzIGhhbmRsZXIgbGlrZWx5IGRlYWxzIHdpdGggd2luZG93aW5nIG9yIHN0YXR1cyBub3RpZmljYXRpb25zIHJlbGF0ZWQgdG8gdGhlIFJYIHdpbmRvdy4gV2Ugc2hvdWxkIGJlIGFibGUgdG8gcXVpY2tseSBkZXRlcm1pbmUgaG93IGl0IGZpdHMgaW50byB0aGUgb3ZlcmFsbCByZWNlaXZlIHByb2Nlc3MsIGxpa2VseSBoYW5kbGluZyBhc3BlY3RzIG9mIHNlcXVlbmNlIG51bWJlciB0cmFja2luZywgcmVvcmRlcmluZywgb3IgcG9zc2libHkgQUNLL05BQ0sgcHJvY2Vzc2luZywgYmFzZWQgb24gdGhlIGNvbnRleHQgb2YgdGhlIFJYIHdpbmRvdyBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2l3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaD0xOTMzPXZvaWQgaXdsX212bV9zdGFfcG1fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSwgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmg6MTkzNDp2b2lkIGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmgtMTkzNS1cdFx0XHRcdCBzdHJ1Y3QgaXdsX3J4X2NtZF9idWZmZXIgKnJ4Yik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM9MzE3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaXdsX3J4X2hhbmRsZXJzIGl3bF9tdm1fcnhfaGFuZGxlcnNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zNDgtXHRSWF9IQU5ETEVSKEJBX1dJTkRPV19TVEFUVVNfTk9USUZJQ0FUSU9OX0lELFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM6MzQ5Olx0XHQgICBpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWYsIFJYX0hBTkRMRVJfU1lOQyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTM1MC1cdFx0ICAgc3RydWN0IGl3bF9iYV93aW5kb3dfc3RhdHVzX25vdGlmKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9yeC5jPTExOTE9dm9pZCBpd2xfbXZtX3J4X3N0YXRpc3RpY3Moc3RydWN0IGl3bF9tdm0gKm12bSwgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguYy0xMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguYzoxMTk2OnZvaWQgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9yeC5jLTExOTctXHRcdFx0XHQgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4MTI4CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqUlggSGFuZGxlciBBbmFseXNpcyoqCgpSaWdodCwgdGhpcyBsb29rcyBsaWtlIHdlJiMzOTtyZSBkaXZpbmcgaW50byBhbiBSWCBoYW5kbGVyLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gcGlucG9pbnQgd2hlcmUgdGhpcyBmaXRzIHdpdGhpbiB0aGUgbGFyZ2VyIHBpY3R1cmUuIEkmIzM5O20gZ29pbmcgdG8ganVtcCBzdHJhaWdodCB0byBleGFtaW5pbmcgYGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmYC4gVGhhdCYjMzk7cyB0aGUgbGlrZWx5IHNwb3QgZm9yIGhhbmRsaW5nIHNjYW4gY29tcGxldGlvbiBub3RpZmljYXRpb25zLCBhbmQgSSBzdXNwZWN0IGl0JiMzOTtzIGNyaXRpY2FsIHRvIHVuZGVyc3RhbmRpbmcgdGhlIFJYIHBhdGgmIzM5O3MgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2Nhbm5pbmcgcHJvY2VzcyBpbiB0aGlzIE1WTSAoTWVzaCBWaXJ0dWFsaXphdGlvbikgaW1wbGVtZW50YXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgUlggcGlwZWxpbmUgYWNrbm93bGVkZ2VzIGEgY29tcGxldGVkIHNjYW4gYW5kIHdoYXQgYWN0aW9ucyBhcmUgdHJpZ2dlcmVkIGFzIGEgcmVzdWx0LiBUaGlzIGNvdWxkIGludm9sdmUgYW55dGhpbmcgZnJvbSBjaGFuZ2luZyBjaGFubmVsIHNldHRpbmdzIHRvIHVwZGF0aW5nIHRoZSBNQUMmIzM5O3Mgc3RhdGUuIExldCYjMzk7cyBzZWUgaG93IHRoZSBub3RpZmljYXRpb24gaXMgcHJvY2Vzc2VkIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgVU1BQyBSWCBmbG93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjc0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAxNzoyMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaD0yMDY3PWludCBpd2xfbXZtX2NvbmZpZ19zY2FuKHN0cnVjdCBpd2xfbXZtICptdm0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmg6MjA2ODp2b2lkIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaC0yMDY5LVx0XHRcdFx0XHQgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jPTMxNz1zdGF0aWMgY29uc3Qgc3RydWN0IGl3bF9yeF9oYW5kbGVycyBpd2xfbXZtX3J4X2hhbmRsZXJzW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmMtMzcxLVx0XHRcdCAgIFJYX0hBTkRMRVJfU1lOQyksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYzozNzI6XHRSWF9IQU5ETEVSKFNDQU5fQ09NUExFVEVfVU1BQywgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zNzMtXHRcdCAgIFJYX0hBTkRMRVJfQVNZTkNfTE9DS0VELFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYz0zMDc3PWludCBpd2xfbXZtX3NjaGVkX3NjYW5fc3RhcnQoc3RydWN0IGl3bF9tdm0gKm12bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMtMzIwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYzozMjEwOnZvaWQgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYy0zMjExLVx0XHRcdFx0XHQgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4ODU4CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqUlggSGFuZGxlciBBbmFseXNpcyoqCgpSaWdodCwgdGhpcyBsb29rcyBsaWtlIHdlJiMzOTtyZSBkaXZpbmcgaW50byBhbiBSWCBoYW5kbGVyLCB3aGljaCBpcyBnb29kLiBNeSBmaXJzdCBpbnN0aW5jdCwgY29uc2lkZXJpbmcgdGhlIGNvbnRleHQsIGlzIHRvIHplcm8gaW4gb24gaG93IGJlYWNvbiBub3RpZmljYXRpb25zIGFyZSBwcm9jZXNzZWQuIFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBgaXdsX212bV9yeF9iZWFjb25fbm90aWZgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgdGhvc2UgYmVhY29uIG5vdGlmaWNhdGlvbnMsIHBhcnRpY3VsYXJseSBpbiByZWxhdGlvbiB0byB0aGlzIGluY29taW5nIGRhdGEgc3RyZWFtLiBMZXQmIzM5O3Mgc2VlIGhvdyB0aGF0IHJvdXRpbmUgaXMgaW1wbGVtZW50ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2l3bF9tdm1fcnhfYmVhY29uX25vdGlmJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmM9MTQ1Mz1zdGF0aWMgdm9pZCBpd2xfbXZtX2NzYV9jb3VudF9kb3duKHN0cnVjdCBpd2xfbXZtICptdm0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYy0xNDkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYzoxNDkxOnZvaWQgaXdsX212bV9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmMtMTQ5Mi1cdFx0XHQgICAgIHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oPTE5MjA9dm9pZCBpd2xfbXZtX21hY19jdHh0X3NldF90aW0oc3RydWN0IGl3bF9tdm0gKm12bSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaC0xOTIyLVx0XHRcdCAgICAgIHU4ICpiZWFjb24sIHUzMiBmcmFtZV9zaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oOjE5MjM6dm9pZCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmgtMTkyNC1cdFx0XHQgICAgIHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYz0zMTc9c3RhdGljIGNvbnN0IHN0cnVjdCBpd2xfcnhfaGFuZGxlcnMgaXdsX212bV9yeF9oYW5kbGVyc1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTMyOS1cdFx0ICAgc3RydWN0IGl3bF9idF9jb2V4X3Byb2Zfb2xkX25vdGlmKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jOjMzMDpcdFJYX0hBTkRMRVJfTk9fU0laRShCRUFDT05fTk9USUZJQ0FUSU9OLCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTMzMS1cdFx0XHQgICBSWF9IQU5ETEVSX0FTWU5DX0xPQ0tFRCksXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5NTgwCgkJCQkJCQlvdXRwdXQ6IDI3NwoJCQkJCQkJdGhvdWdodHM6IDM3OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSWCBIYW5kbGVyIEZvY3VzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGl0JiMzOTtzIGNsZWFyIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYW4gUlggaGFuZGxlci4gTXkgaW5pdGlhbCB0YXJnZXQgbGlzdCBvZiBmdW5jdGlvbnMgaXM6IGBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZmAsIGBpd2xfbXZtX3VwZGF0ZV9tY2NgLCBgaXdsX212bV90bGNfdXBkYXRlX25vdGlmYCwgYGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZmAsIGBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZmAsIGBpd2xfbWxkX3Jlb3JkZXJgLCBgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWZgLCBhbmQgYGl3bF9tdm1fd2FpdF9kM19ub3RpZmAuIFRoYXQgc2hvdWxkIGNvdmVyIHRoZSBjb3JlIG5vdGlmaWNhdGlvbiBoYW5kbGluZy4KCkxldCYjMzk7cyBkaXZlIGludG8gYGl3bF9tdm1fd2FpdF9kM19ub3RpZmAuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYSBjYWxsYmFjayB3aXRoaW4gYGl3bF9pbml0X25vdGlmaWNhdGlvbl93YWl0YCwgc28gaXQgc2hvdWxkIGJlIHJlYWNoYWJsZSB0aHJvdWdoIHRoZSBub3RpZmljYXRpb24gbWVjaGFuaXNtLiBZZXAsIHNlZW1zIGNvcnJlY3QsIGl0JiMzOTtzIHRyaWdnZXJlZCB1cG9uIHJlY2VpdmluZyBhIG5vdGlmaWNhdGlvbi4gTm93LCBsZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgZG93bnN0cmVhbSBmdW5jdGlvbnMgZnJvbSBgaXdsX212bV93YWl0X2QzX25vdGlmYC4gQWgsIGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCBpcyBjYWxsZWQgZnJvbSB3aXRoaW4uIEkmIzM5O2xsIG5lZWQgdG8gbG9vayBhdCBpdCwgdG9vLiBBbmQgYGl3bF9tdm1fcmVwb3J0X3dha2V1cF9yZWFzb25zYCBpcyBjYWxsZWQgZnJvbSBgaXdsX212bV9xdWVyeV93YWtldXBfcmVhc29uc2AuCgpTbywgSSYjMzk7bSBnb2luZyB0byBpbmNsdWRlIGJvdGggYGl3bF9tdm1fd2FpdF9kM19ub3RpZmAgYW5kIGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCBpbiBteSBsaXN0IG9mIGZvY3VzIHN5bWJvbHMuIEl0JiMzOTtzIGltcG9ydGFudCB0byB0cmFjZSBob3cgbm90aWZpY2F0aW9ucyB0cmlnZ2VyIHRoZXNlIHNwZWNpZmljIGZ1bmN0aW9ucy4KCkZpbmFsbHksIEkmIzM5O2xsIHJldmlldyB0aGUgcmVsZXZhbnQgY29uZmlnczogYElXTFdJRklgLCBgSVdMTVZNYCwgYElXTE1MRGAsIGBJV0xXSUZJX0RFQlVHRlNgLCBhbmQgYFRIRVJNQUxgLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgZ29vZCBjb250ZXh0IGZvciB0aGUgc3lzdGVtLgoKTm93LCBJJiMzOTtsbCBzZXQgdXAgdGhlIHJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJV0xXSUZJJiMzNDssCiAgICAmIzM0O0lXTE1WTSYjMzQ7LAogICAgJiMzNDtJV0xNTEQmIzM0OywKICAgICYjMzQ7SVdMV0lGSV9ERUJVR0ZTJiMzNDssCiAgICAmIzM0O1RIRVJNQUwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3VwZGF0ZV9tY2MmIzM0OywKICAgICYjMzQ7aXdsX212bV90bGNfdXBkYXRlX25vdGlmJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbWxkX3Jlb3JkZXImIzM0OywKICAgICYjMzQ7aXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYmIzM0OywKICAgICYjMzQ7aXdsX212bV93YWl0X2QzX25vdGlmJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWYmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tzIGFuZCBwYXlsb2FkIGxlbmd0aCB2YWxpZGF0aW9ucyBmb3IgZmlybXdhcmUgbm90aWZpY2F0aW9ucyBpbiB0aGUgaXdsd2lmaSBkcml2ZXIgKE1WTSBhbmQgTUxEIGNvbXBvbmVudHMpLiBUaGVzZSBhcmUgY3JpdGljYWwgZm9yIHByZXZlbnRpbmcgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gd2hlbiBwcm9jZXNzaW5nIG1hbGZvcm1lZCBvciBtYWxpY2lvdXMgZmlybXdhcmUgcmVzcG9uc2VzLiBUaGUgZmlybXdhcmUgaW50ZXJmYWNlIGNhbiBiZSBmdXp6ZWQgdmlhIGRlYnVnZnMgaW5qZWN0aW9uIChpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lXTFdJRkkmIzM0OywKICAgICYjMzQ7SVdMTVZNJiMzNDssCiAgICAmIzM0O0lXTE1MRCYjMzQ7LAogICAgJiMzNDtJV0xXSUZJX0RFQlVHRlMmIzM0OywKICAgICYjMzQ7VEhFUk1BTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2l3bF9tdm1fcnhfYmVhY29uX25vdGlmJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fdXBkYXRlX21jYyYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3RsY191cGRhdGVfbm90aWYmIzM0OywKICAgICYjMzQ7aXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmJiMzNDssCiAgICAmIzM0O2l3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmJiMzNDssCiAgICAmIzM0O2l3bF9tbGRfcmVvcmRlciYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3J4X3Nlc3Npb25fcHJvdGVjdF9ub3RpZiYjMzQ7LAogICAgJiMzNDtpd2xfbXZtX3dhaXRfZDNfbm90aWYmIzM0OywKICAgICYjMzQ7aXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja3MgYW5kIHBheWxvYWQgbGVuZ3RoIHZhbGlkYXRpb25zIGZvciBmaXJtd2FyZSBub3RpZmljYXRpb25zIGluIHRoZSBpd2x3aWZpIGRyaXZlciAoTVZNIGFuZCBNTEQgY29tcG9uZW50cykuIFRoZXNlIGFyZSBjcml0aWNhbCBmb3IgcHJldmVudGluZyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFuZCBtZW1vcnkgY29ycnVwdGlvbiB3aGVuIHByb2Nlc3NpbmcgbWFsZm9ybWVkIG9yIG1hbGljaW91cyBmaXJtd2FyZSByZXNwb25zZXMuIFRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgY2FuIGJlIGZ1enplZCB2aWEgZGVidWdmcyBpbmplY3Rpb24gKGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE2OjU4OjQyLjkwMjc5NTQ4MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTkyMTU4MTE5OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVdMV0lGSVwiLFxuICAgIFwiSVdMTVZNXCIsXG4gICAgXCJJV0xNTERcIixcbiAgICBcIklXTFdJRklfREVCVUdGU1wiLFxuICAgIFwiVEhFUk1BTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIml3bF9tdm1fcnhfYmVhY29uX25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3VwZGF0ZV9tY2NcIixcbiAgICBcIml3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZlwiLFxuICAgIFwiaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZlwiLFxuICAgIFwiaXdsX21sZF9yZW9yZGVyXCIsXG4gICAgXCJpd2xfbXZtX3J4X3Nlc3Npb25fcHJvdGVjdF9ub3RpZlwiLFxuICAgIFwiaXdsX212bV93YWl0X2QzX25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBib3VuZHMgY2hlY2tzIGFuZCBwYXlsb2FkIGxlbmd0aCB2YWxpZGF0aW9ucyBmb3IgZmlybXdhcmUgbm90aWZpY2F0aW9ucyBpbiB0aGUgaXdsd2lmaSBkcml2ZXIgKE1WTSBhbmQgTUxEIGNvbXBvbmVudHMpLiBUaGVzZSBhcmUgY3JpdGljYWwgZm9yIHByZXZlbnRpbmcgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gd2hlbiBwcm9jZXNzaW5nIG1hbGZvcm1lZCBvciBtYWxpY2lvdXMgZmlybXdhcmUgcmVzcG9uc2VzLiBUaGUgZmlybXdhcmUgaW50ZXJmYWNlIGNhbiBiZSBmdXp6ZWQgdmlhIGRlYnVnZnMgaW5qZWN0aW9uIChpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE2OjU4OjQyLjkwMjgwMDY2MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjIzNzY3MDIxODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2ZjUxODMwNzExNWEyZmM5YTlhMjRmZGQ0YzNiZGI3ZjA3YWY1ZTQ2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDE0IDE2OjU4OjM5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcXG5pbmRleCBlMzYyN2FkMDMyMWM4Yi4uYTQ2NGViZGVjNTdmMTMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY1xcbkBAIC0xLDYgKzEsNiBAQFxcbiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcXG4gLypcXG4tICogQ29weXJpZ2h0IChDKSAyMDI0LTIwMjUgSW50ZWwgQ29ycG9yYXRpb25cXG4rICogQ29weXJpZ2h0IChDKSAyMDI0LTIwMjYgSW50ZWwgQ29ycG9yYXRpb25cXG4gICovXFxuICNpbmNsdWRlIFxcXCJhZ2cuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInN0YS5oXFxcIlxcbkBAIC0yMjIsNiArMjIyLDExIEBAIGl3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXFxuIFxcdGlmIChiYWlkID09IElXTF9SWF9SRU9SREVSX0RBVEFfSU5WQUxJRF9CQUlEKVxcbiBcXHRcXHRyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjtcXG4gXFxuK1xcdGlmIChJV0xfRldfQ0hFQ0sobWxkLCBiYWlkIFxcdTAwM2U9IEFSUkFZX1NJWkUobWxkLVxcdTAwM2Vmd19pZF90b19iYSksXFxuK1xcdFxcdFxcdCBcXFwiR290IG91dC1vZi1yYW5nZSBCQUlEICV1IGluIHJlb3JkZXJfZGF0YT0weCV4XFxcXG5cXFwiLFxcbitcXHRcXHRcXHQgYmFpZCwgcmVvcmRlcikpXFxuK1xcdFxcdHJldHVybiBJV0xfTUxEX1BBU1NfU0tCO1xcbitcXG4gXFx0Lyogbm8gc3RhIHlldCAqL1xcbiBcXHRpZiAoV0FSTl9PTkNFKCFzdGEsXFxuIFxcdFxcdCAgICAgIFxcXCJHb3QgdmFsaWQgQkFJRCB3aXRob3V0IGEgdmFsaWQgc3RhdGlvbiBhc3NpZ25lZFxcXFxuXFxcIikpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21hYzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tYWM4MDIxMS5jXFxuaW5kZXggMTcyODZiMzM0MWMwMjAuLjlhYzE3YmUzMDQwMDgyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21hYzgwMjExLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tYWM4MDIxMS5jXFxuQEAgLTE3MDgsNyArMTcwOCw3IEBAIHN0YXRpYyB2b2lkIGl3bF9tbGRfY2hlY2tfaGVfb2Jzc19uYXJyb3dfYndfcnVfaXRlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbiBcXHRlbGVtID0gY2ZnODAyMTFfZmluZF9lbGVtKFdMQU5fRUlEX0VYVF9DQVBBQklMSVRZLCBpZXMtXFx1MDAzZWRhdGEsXFxuIFxcdFxcdFxcdFxcdCAgaWVzLVxcdTAwM2VsZW4pO1xcbiBcXG4tXFx0aWYgKCFlbGVtIHx8IGVsZW0tXFx1MDAzZWRhdGFsZW4gXFx1MDAzYyAxMCB8fFxcbitcXHRpZiAoIWVsZW0gfHwgZWxlbS1cXHUwMDNlZGF0YWxlbiBcXHUwMDNjIDExIHx8XFxuIFxcdCAgICAhKGVsZW0tXFx1MDAzZWRhdGFbMTBdIFxcdTAwMjZcXG4gXFx0ICAgICAgV0xBTl9FWFRfQ0FQQTEwX09CU1NfTkFSUk9XX0JXX1JVX1RPTEVSQU5DRV9TVVBQT1JUKSkge1xcbiBcXHRcXHQqdG9sZXJhdGVkID0gZmFsc2U7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21jYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWNjLmNcXG5pbmRleCA4NTAyMTI5YWJlNDkzOS4uODMwYzI1MWY0M2FmY2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWNjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tY2MuY1xcbkBAIC0xOCw5ICsxOCwxNSBAQCBzdGF0aWMgc3RydWN0IGl3bF9tY2NfdXBkYXRlX3Jlc3BfdjggKlxcbiBpd2xfbWxkX2NvcHlfbWNjX3Jlc3AoY29uc3Qgc3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdClcXG4ge1xcbiBcXHRjb25zdCBzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92OCAqbWNjX3Jlc3BfdjggPSAoY29uc3Qgdm9pZCAqKXBrdC1cXHUwMDNlZGF0YTtcXG4tXFx0aW50IG5fY2hhbm5lbHMgPSBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3Y4LVxcdTAwM2VuX2NoYW5uZWxzKTtcXG4gXFx0c3RydWN0IGl3bF9tY2NfdXBkYXRlX3Jlc3BfdjggKnJlc3BfY3A7XFxuLVxcdGludCBub3RpZl9sZW4gPSBzdHJ1Y3Rfc2l6ZShyZXNwX2NwLCBjaGFubmVscywgbl9jaGFubmVscyk7XFxuK1xcdGludCBuX2NoYW5uZWxzO1xcbitcXHRpbnQgbm90aWZfbGVuO1xcbitcXG4rXFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSBcXHUwMDNjIHNpemVvZigqbWNjX3Jlc3BfdjgpKVxcbitcXHRcXHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcXG4rXFxuK1xcdG5fY2hhbm5lbHMgPSBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3Y4LVxcdTAwM2VuX2NoYW5uZWxzKTtcXG4rXFx0bm90aWZfbGVuID0gc3RydWN0X3NpemUocmVzcF9jcCwgY2hhbm5lbHMsIG5fY2hhbm5lbHMpO1xcbiBcXG4gXFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSAhPSBub3RpZl9sZW4pXFxuIFxcdFxcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmNcXG5pbmRleCBmOGE4YzM1MDY2YmViMi4uZTQ0NWIxZDdkNGIwMDIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jXFxuQEAgLTEsNiArMSw2IEBAXFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxcbiAvKlxcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxcbisgKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxcbiAgKi9cXG4gI2lmZGVmIENPTkZJR19USEVSTUFMXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb3J0LmhcXHUwMDNlXFxuQEAgLTI3Miw2ICsyNzIsNyBAQCBzdGF0aWMgdm9pZCBpd2xfbWxkX3RoZXJtYWxfem9uZV9yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKVxcbiBcXHRpZiAocmV0KSB7XFxuIFxcdFxcdElXTF9ERUJVR19URU1QKG1sZCwgXFxcIkZhaWxlZCB0byBlbmFibGUgdGhlcm1hbCB6b25lXFxcXG5cXFwiKTtcXG4gXFx0XFx0dGhlcm1hbF96b25lX2RldmljZV91bnJlZ2lzdGVyKG1sZC1cXHUwMDNldHpvbmUpO1xcbitcXHRcXHRtbGQtXFx1MDAzZXR6b25lID0gTlVMTDtcXG4gXFx0fVxcbiB9XFxuIFxcbkBAIC0zODUsMTAgKzM4Niw4IEBAIHN0YXRpYyB2b2lkIGl3bF9tbGRfdGhlcm1hbF96b25lX3VucmVnaXN0ZXIoc3RydWN0IGl3bF9tbGQgKm1sZClcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXG4gXFx0SVdMX0RFQlVHX1RFTVAobWxkLCBcXFwiVGhlcm1hbCB6b25lIGRldmljZSB1bnJlZ2lzdGVyXFxcXG5cXFwiKTtcXG4tXFx0aWYgKG1sZC1cXHUwMDNldHpvbmUpIHtcXG4tXFx0XFx0dGhlcm1hbF96b25lX2RldmljZV91bnJlZ2lzdGVyKG1sZC1cXHUwMDNldHpvbmUpO1xcbi1cXHRcXHRtbGQtXFx1MDAzZXR6b25lID0gTlVMTDtcXG4tXFx0fVxcbitcXHR0aGVybWFsX3pvbmVfZGV2aWNlX3VucmVnaXN0ZXIobWxkLVxcdTAwM2V0em9uZSk7XFxuK1xcdG1sZC1cXHUwMDNldHpvbmUgPSBOVUxMO1xcbiB9XFxuIFxcbiBzdGF0aWMgdm9pZCBpd2xfbWxkX2Nvb2xpbmdfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0IGl3bF9tbGQgKm1sZClcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmNcXG5pbmRleCA5YTc0ZjYwYzkxODUwZi4uMzQyOWQ5YTEwZTQyMDkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmNcXG5AQCAtMTUzOSw4ICsxNTM5LDggQEAgc3RhdGljIHZvaWQgaXdsX212bV9yZXBvcnRfd2FrZXVwX3JlYXNvbnMoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4gXFxuIFxcdFxcdFxcdC8qIGlmIHRydW5jYXRlZCwgRkNTL0lDViBpcyAocGFydGlhbGx5KSBnb25lICovXFxuIFxcdFxcdFxcdGlmICh0cnVuY2F0ZWQgXFx1MDAzZT0gaWN2bGVuKSB7XFxuLVxcdFxcdFxcdFxcdGljdmxlbiA9IDA7XFxuIFxcdFxcdFxcdFxcdHRydW5jYXRlZCAtPSBpY3ZsZW47XFxuK1xcdFxcdFxcdFxcdGljdmxlbiA9IDA7XFxuIFxcdFxcdFxcdH0gZWxzZSB7XFxuIFxcdFxcdFxcdFxcdGljdmxlbiAtPSB0cnVuY2F0ZWQ7XFxuIFxcdFxcdFxcdFxcdHRydW5jYXRlZCA9IDA7XFxuQEAgLTIxMjMsMTYgKzIxMjMsMTYgQEAgc3RhdGljIHZvaWQgaXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IGl3bF93b3dsYW5fc3RhdHVzX2RhdGEgKnN0YXR1cyxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgIHUzMiBsZW4pXFxuIHtcXG4tXFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIGRhdGEtXFx1MDAzZW51bV9tbG9fbGlua19rZXlzLFxcbi1cXHRcXHRcXHQgXFxcIk1MTyBpcyBub3Qgc3VwcG9ydGVkLCBzaG91bGRuJ3QgcmVjZWl2ZSBNTE8ga2V5c1xcXFxuXFxcIikpXFxuLVxcdFxcdHJldHVybjtcXG4tXFxuIFxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2YoKmRhdGEpKSB7XFxuIFxcdFxcdElXTF9FUlIobXZtLCBcXFwiSW52YWxpZCBXb1dMQU4gaW5mbyBub3RpZmljYXRpb24hXFxcXG5cXFwiKTtcXG4gXFx0XFx0c3RhdHVzID0gTlVMTDtcXG4gXFx0XFx0cmV0dXJuO1xcbiBcXHR9XFxuIFxcbitcXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgZGF0YS1cXHUwMDNlbnVtX21sb19saW5rX2tleXMsXFxuK1xcdFxcdFxcdCBcXFwiTUxPIGlzIG5vdCBzdXBwb3J0ZWQsIHNob3VsZG4ndCByZWNlaXZlIE1MTyBrZXlzXFxcXG5cXFwiKSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4gXFx0aWYgKG12bS1cXHUwMDNlZmFzdF9yZXN1bWUpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuQEAgLTI5NDIsNiArMjk0MiwxMSBAQCBzdGF0aWMgYm9vbCBpd2xfbXZtX3dhaXRfZDNfbm90aWYoc3RydWN0IGl3bF9ub3RpZl93YWl0X2RhdGEgKm5vdGlmX3dhaXQsXFxuIFxcdGNhc2UgV0lERV9JRChQUk9UX09GRkxPQURfR1JPVVAsIEQzX0VORF9OT1RJRklDQVRJT04pOiB7XFxuIFxcdFxcdHN0cnVjdCBpd2xfZDNfZW5kX25vdGlmICpub3RpZiA9ICh2b2lkICopcGt0LVxcdTAwM2VkYXRhO1xcbiBcXG4rXFx0XFx0aWYgKGxlbiBcXHUwMDNjIHNpemVvZigqbm90aWYpKSB7XFxuK1xcdFxcdFxcdElXTF9FUlIobXZtLCBcXFwiSW52YWxpZCBEMyBlbmQgbm90aWZpY2F0aW9uIHNpemVcXFxcblxcXCIpO1xcbitcXHRcXHRcXHRicmVhaztcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0ZDNfZGF0YS1cXHUwMDNlZDNfZW5kX2ZsYWdzID0gX19sZTMyX3RvX2NwdShub3RpZi1cXHUwMDNlZmxhZ3MpO1xcbiBcXHRcXHRkM19kYXRhLVxcdTAwM2Vub3RpZl9yZWNlaXZlZCB8PSBJV0xfRDNfTk9USUZfRDNfRU5EX05PVElGO1xcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmNcXG5pbmRleCBkNmE4NjI0YjFhZTVjZS4uYjJjNWJlMjJjMjkzY2YgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmNcXG5AQCAtMTQ5Myw0OSArMTQ5Myw1NCBAQCB2b2lkIGl3bF9tdm1fcnhfYmVhY29uX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuIHtcXG4gXFx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCA9IHJ4Yl9hZGRyKHJ4Yik7XFxuIFxcdHVuc2lnbmVkIGludCBwa3RfbGVuID0gaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpO1xcbi1cXHRzdHJ1Y3QgaXdsX2V4dGVuZGVkX2JlYWNvbl9ub3RpZiAqYmVhY29uID0gKHZvaWQgKilwa3QtXFx1MDAzZWRhdGE7XFxuLVxcdHN0cnVjdCBpd2xfZXh0ZW5kZWRfYmVhY29uX25vdGlmX3Y1ICpiZWFjb25fdjUgPSAodm9pZCAqKXBrdC1cXHUwMDNlZGF0YTtcXG4gXFx0c3RydWN0IGllZWU4MDIxMV92aWYgKmNzYV92aWY7XFxuIFxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp0eF9ibG9ja2VkX3ZpZjtcXG4gXFx0c3RydWN0IGFnZ190eF9zdGF0dXMgKmFnZ19zdGF0dXM7XFxuK1xcdHUzMiBiZWFjb25fZ3AyO1xcbiBcXHR1MTYgc3RhdHVzO1xcbiBcXG4gXFx0bG9ja2RlcF9hc3NlcnRfaGVsZChcXHUwMDI2bXZtLVxcdTAwM2VtdXRleCk7XFxuIFxcbi1cXHRtdm0tXFx1MDAzZWFwX2xhc3RfYmVhY29uX2dwMiA9IGxlMzJfdG9fY3B1KGJlYWNvbi1cXHUwMDNlZ3AyKTtcXG4tXFxuIFxcdGlmICghaXdsX212bV9pc19zaG9ydF9iZWFjb25fbm90aWZfc3VwcG9ydGVkKG12bSkpIHtcXG4rXFx0XFx0c3RydWN0IGl3bF9leHRlbmRlZF9iZWFjb25fbm90aWZfdjUgKmJlYWNvbiA9ICh2b2lkICopcGt0LVxcdTAwM2VkYXRhO1xcbiBcXHRcXHRzdHJ1Y3QgaXdsX3R4X3Jlc3AgKmJlYWNvbl9ub3RpZnlfaGRyID1cXG4tXFx0XFx0XFx0XFx1MDAyNmJlYWNvbl92NS1cXHUwMDNlYmVhY29uX25vdGlmeV9oZHI7XFxuK1xcdFxcdFxcdFxcdTAwMjZiZWFjb24tXFx1MDAzZWJlYWNvbl9ub3RpZnlfaGRyO1xcbiBcXG4tXFx0XFx0aWYgKHVubGlrZWx5KHBrdF9sZW4gXFx1MDAzYyBzaXplb2YoKmJlYWNvbl92NSkpKVxcbitcXHRcXHRpZiAodW5saWtlbHkocGt0X2xlbiBcXHUwMDNjIHNpemVvZigqYmVhY29uKSkpXFxuIFxcdFxcdFxcdHJldHVybjtcXG4gXFxuLVxcdFxcdG12bS1cXHUwMDNlaWJzc19tYW5hZ2VyID0gYmVhY29uX3Y1LVxcdTAwM2VpYnNzX21ncl9zdGF0dXMgIT0gMDtcXG4rXFx0XFx0YmVhY29uX2dwMiA9IGxlMzJfdG9fY3B1KGJlYWNvbi1cXHUwMDNlZ3AyKTtcXG4rXFxuK1xcdFxcdG12bS1cXHUwMDNlaWJzc19tYW5hZ2VyID0gYmVhY29uLVxcdTAwM2VpYnNzX21ncl9zdGF0dXMgIT0gMDtcXG4gXFx0XFx0YWdnX3N0YXR1cyA9IGl3bF9tdm1fZ2V0X2FnZ19zdGF0dXMobXZtLCBiZWFjb25fbm90aWZ5X2hkcik7XFxuIFxcdFxcdHN0YXR1cyA9IGxlMTZfdG9fY3B1KGFnZ19zdGF0dXMtXFx1MDAzZXN0YXR1cykgXFx1MDAyNiBUWF9TVEFUVVNfTVNLO1xcbiBcXHRcXHRJV0xfREVCVUdfUlgobXZtLFxcbiBcXHRcXHRcXHQgICAgIFxcXCJiZWFjb24gc3RhdHVzICUjeCByZXRyaWVzOiVkIHRzZjoweCUwMTZsbFggZ3AyOjB4JVggcmF0ZTolZFxcXFxuXFxcIixcXG4gXFx0XFx0XFx0ICAgICBzdGF0dXMsIGJlYWNvbl9ub3RpZnlfaGRyLVxcdTAwM2VmYWlsdXJlX2ZyYW1lLFxcbiBcXHRcXHRcXHQgICAgIGxlNjRfdG9fY3B1KGJlYWNvbi1cXHUwMDNldHNmKSxcXG4tXFx0XFx0XFx0ICAgICBtdm0tXFx1MDAzZWFwX2xhc3RfYmVhY29uX2dwMixcXG4rXFx0XFx0XFx0ICAgICBiZWFjb25fZ3AyLFxcbiBcXHRcXHRcXHQgICAgIGxlMzJfdG9fY3B1KGJlYWNvbl9ub3RpZnlfaGRyLVxcdTAwM2Vpbml0aWFsX3JhdGUpKTtcXG4gXFx0fSBlbHNlIHtcXG4rXFx0XFx0Y29uc3Qgc3RydWN0IGl3bF9leHRlbmRlZF9iZWFjb25fbm90aWYgKmJlYWNvbiA9XFxuK1xcdFxcdFxcdCh2b2lkICopcGt0LVxcdTAwM2VkYXRhO1xcbitcXG4gXFx0XFx0aWYgKHVubGlrZWx5KHBrdF9sZW4gXFx1MDAzYyBzaXplb2YoKmJlYWNvbikpKVxcbiBcXHRcXHRcXHRyZXR1cm47XFxuIFxcbitcXHRcXHRiZWFjb25fZ3AyID0gbGUzMl90b19jcHUoYmVhY29uLVxcdTAwM2VncDIpO1xcbitcXG4gXFx0XFx0bXZtLVxcdTAwM2VpYnNzX21hbmFnZXIgPSBiZWFjb24tXFx1MDAzZWlic3NfbWdyX3N0YXR1cyAhPSAwO1xcbiBcXHRcXHRzdGF0dXMgPSBsZTMyX3RvX2NwdShiZWFjb24tXFx1MDAzZXN0YXR1cykgXFx1MDAyNiBUWF9TVEFUVVNfTVNLO1xcbiBcXHRcXHRJV0xfREVCVUdfUlgobXZtLFxcbiBcXHRcXHRcXHQgICAgIFxcXCJiZWFjb24gc3RhdHVzICUjeCB0c2Y6MHglMDE2bGxYIGdwMjoweCVYXFxcXG5cXFwiLFxcbiBcXHRcXHRcXHQgICAgIHN0YXR1cywgbGU2NF90b19jcHUoYmVhY29uLVxcdTAwM2V0c2YpLFxcbi1cXHRcXHRcXHQgICAgIG12bS1cXHUwMDNlYXBfbGFzdF9iZWFjb25fZ3AyKTtcXG4rXFx0XFx0XFx0ICAgICBiZWFjb25fZ3AyKTtcXG4gXFx0fVxcbiBcXG4gXFx0Y3NhX3ZpZiA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobXZtLVxcdTAwM2Vjc2FfdmlmLFxcbiBcXHRcXHRcXHRcXHRcXHQgICAgbG9ja2RlcF9pc19oZWxkKFxcdTAwMjZtdm0tXFx1MDAzZW11dGV4KSk7XFxuIFxcdGlmICh1bmxpa2VseShjc2FfdmlmIFxcdTAwMjZcXHUwMDI2IGNzYV92aWYtXFx1MDAzZWJzc19jb25mLmNzYV9hY3RpdmUpKVxcbi1cXHRcXHRpd2xfbXZtX2NzYV9jb3VudF9kb3duKG12bSwgY3NhX3ZpZiwgbXZtLVxcdTAwM2VhcF9sYXN0X2JlYWNvbl9ncDIsXFxuK1xcdFxcdGl3bF9tdm1fY3NhX2NvdW50X2Rvd24obXZtLCBjc2FfdmlmLCBiZWFjb25fZ3AyLFxcbiBcXHRcXHRcXHRcXHQgICAgICAgKHN0YXR1cyA9PSBUWF9TVEFUVVNfU1VDQ0VTUykpO1xcbiBcXG4gXFx0dHhfYmxvY2tlZF92aWYgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG12bS1cXHUwMDNlY3NhX3R4X2Jsb2NrZWRfdmlmLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuY1xcbmluZGV4IDc0YmQ0MDM4ZmQ1NjAxLi4zZTczYTYxOTVmZDliMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuY1xcbkBAIC02MjUsOSArNjI1LDcgQEAgaW50IGl3bF9tdm1fbWFjX3NldHVwX3JlZ2lzdGVyKHN0cnVjdCBpd2xfbXZtICptdm0pXFxuIFxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlbWF4X3NjaGVkX3NjYW5fcmVxcyA9IDE7XFxuIFxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlbWF4X3NjaGVkX3NjYW5fc3NpZHMgPSBQUk9CRV9PUFRJT05fTUFYO1xcbiBcXHRody1cXHUwMDNld2lwaHktXFx1MDAzZW1heF9tYXRjaF9zZXRzID0gaXdsX3VtYWNfc2Nhbl9nZXRfbWF4X3Byb2ZpbGVzKG12bS1cXHUwMDNlZncpO1xcbi1cXHQvKiB3ZSBjcmVhdGUgdGhlIDgwMi4xMSBoZWFkZXIgYW5kIHplcm8gbGVuZ3RoIFNTSUQgSUUuICovXFxuLVxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlbWF4X3NjaGVkX3NjYW5faWVfbGVuID1cXG4tXFx0XFx0U0NBTl9PRkZMT0FEX1BST0JFX1JFUV9TSVpFIC0gMjQgLSAyO1xcbitcXHRody1cXHUwMDNld2lwaHktXFx1MDAzZW1heF9zY2hlZF9zY2FuX2llX2xlbiA9IGl3bF9tdm1fbWF4X3NjYW5faWVfbGVuKG12bSk7XFxuIFxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlbWF4X3NjaGVkX3NjYW5fcGxhbnMgPSBJV0xfTUFYX1NDSEVEX1NDQU5fUExBTlM7XFxuIFxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlbWF4X3NjaGVkX3NjYW5fcGxhbl9pbnRlcnZhbCA9IFUxNl9NQVg7XFxuIFxcbkBAIC0zMDYxLDcgKzMwNTksNiBAQCB2b2lkIGl3bF9tdm1fc3RvcF9hcF9pYnNzX2NvbW1vbihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbiBcXHR9XFxuIFxcbiBcXHRtdm12aWYtXFx1MDAzZWFwX2lic3NfYWN0aXZlID0gZmFsc2U7XFxuLVxcdG12bS1cXHUwMDNlYXBfbGFzdF9iZWFjb25fZ3AyID0gMDtcXG4gXFxuIFxcdGlmICh2aWYtXFx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfQVAgXFx1MDAyNlxcdTAwMjYgIXZpZi1cXHUwMDNlcDJwKSB7XFxuIFxcdFxcdGl3bF9tdm1fdmlmX3NldF9sb3dfbGF0ZW5jeShtdm12aWYsIGZhbHNlLFxcbkBAIC0zNDkwLDcgKzM0ODcsNyBAQCBzdGF0aWMgdm9pZCBpd2xfbXZtX2NoZWNrX2hlX29ic3NfbmFycm93X2J3X3J1X2l0ZXIoc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4gXFx0ZWxlbSA9IGNmZzgwMjExX2ZpbmRfZWxlbShXTEFOX0VJRF9FWFRfQ0FQQUJJTElUWSwgaWVzLVxcdTAwM2VkYXRhLFxcbiBcXHRcXHRcXHRcXHQgIGllcy1cXHUwMDNlbGVuKTtcXG4gXFxuLVxcdGlmICghZWxlbSB8fCBlbGVtLVxcdTAwM2VkYXRhbGVuIFxcdTAwM2MgMTAgfHxcXG4rXFx0aWYgKCFlbGVtIHx8IGVsZW0tXFx1MDAzZWRhdGFsZW4gXFx1MDAzYyAxMSB8fFxcbiBcXHQgICAgIShlbGVtLVxcdTAwM2VkYXRhWzEwXSBcXHUwMDI2XFxuIFxcdCAgICAgIFdMQU5fRVhUX0NBUEExMF9PQlNTX05BUlJPV19CV19SVV9UT0xFUkFOQ0VfU1VQUE9SVCkpIHtcXG4gXFx0XFx0ZGF0YS1cXHUwMDNldG9sZXJhdGVkID0gZmFsc2U7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmhcXG5pbmRleCA2ODNjYWM1NjgyMmM4Ni4uMzE5MTJmNGQwMTc1ZjggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaFxcbkBAIC0xMTY4LDkgKzExNjgsNiBAQCBzdHJ1Y3QgaXdsX212bSB7XFxuIFxcdHN0cnVjdCBpZWVlODAyMTFfdmlmIF9fcmN1ICpjc2FfdHhfYmxvY2tlZF92aWY7XFxuIFxcdHU4IGNzYV90eF9ibG9ja19iY25fdGltZW91dDtcXG4gXFxuLVxcdC8qIHN5c3RlbSB0aW1lIG9mIGxhc3QgYmVhY29uIChmb3IgQVAvR08gaW50ZXJmYWNlKSAqL1xcbi1cXHR1MzIgYXBfbGFzdF9iZWFjb25fZ3AyO1xcbi1cXG4gXFx0LyogaW5kaWNhdGVzIHRoYXQgd2UgdHJhbnNtaXR0ZWQgdGhlIGxhc3QgYmVhY29uICovXFxuIFxcdGJvb2wgaWJzc19tYW5hZ2VyO1xcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbnZtLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9udm0uY1xcbmluZGV4IDk1MzIxOGYxZTAyNWE3Li5mNzZlNTczOTljMWYzMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9udm0uY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jXFxuQEAgLTEsNiArMSw2IEBAXFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxcbiAvKlxcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDE5LCAyMDIxLTIwMjUgSW50ZWwgQ29ycG9yYXRpb25cXG4rICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAxOSwgMjAyMS0yMDI2IEludGVsIENvcnBvcmF0aW9uXFxuICAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEludGVsIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBHbWJIXFxuICAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkhcXG4gICovXFxuQEAgLTQxNiw2ICs0MTYsNyBAQCBpd2xfbXZtX3VwZGF0ZV9tY2Moc3RydWN0IGl3bF9tdm0gKm12bSwgY29uc3QgY2hhciAqYWxwaGEyLFxcbiBcXHRpbnQgcmV0LCByZXNwX3ZlcjtcXG4gXFx0dTMyIHN0YXR1cztcXG4gXFx0aW50IHJlc3BfbGVuLCBuX2NoYW5uZWxzO1xcbitcXHR1bnNpZ25lZCBpbnQgcGt0X2xlbjtcXG4gXFx0dTE2IG1jYztcXG4gXFxuIFxcdGlmIChXQVJOX09OX09OQ0UoIWl3bF9tdm1faXNfbGFyX3N1cHBvcnRlZChtdm0pKSlcXG5AQCAtNDMxLDYgKzQzMiw3IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsXFxuIFxcdFxcdHJldHVybiBFUlJfUFRSKHJldCk7XFxuIFxcbiBcXHRwa3QgPSBjbWQucmVzcF9wa3Q7XFxuK1xcdHBrdF9sZW4gPSBpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCk7XFxuIFxcbiBcXHRyZXNwX3ZlciA9IGl3bF9md19sb29rdXBfbm90aWZfdmVyKG12bS1cXHUwMDNlZncsIElXTF9BTFdBWVNfTE9OR19HUk9VUCxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgTUNDX1VQREFURV9DTUQsIDApO1xcbkBAIC00MzksOSArNDQxLDE4IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsXFxuIFxcdGlmIChyZXNwX3ZlciBcXHUwMDNlPSA4KSB7XFxuIFxcdFxcdHN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3Y4ICptY2NfcmVzcF92OCA9ICh2b2lkICopcGt0LVxcdTAwM2VkYXRhO1xcbiBcXG4rXFx0XFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIHBrdF9sZW4gXFx1MDAzYyBzaXplb2YoKm1jY19yZXNwX3Y4KSxcXG4rXFx0XFx0XFx0XFx0IFxcXCJNQ0MgdjggcmVzcG9uc2UgdG9vIHNob3J0OiAldVxcXFxuXFxcIiwgcGt0X2xlbikpIHtcXG4rXFx0XFx0XFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XFxuK1xcdFxcdFxcdGdvdG8gZXhpdDtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0bl9jaGFubmVscyA9ICBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3Y4LVxcdTAwM2VuX2NoYW5uZWxzKTtcXG4tXFx0XFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSAhPVxcbi1cXHRcXHQgICAgc3RydWN0X3NpemUobWNjX3Jlc3BfdjgsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSkge1xcbitcXHRcXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSxcXG4rXFx0XFx0XFx0XFx0IHBrdF9sZW4gIT1cXG4rXFx0XFx0XFx0XFx0IHN0cnVjdF9zaXplKG1jY19yZXNwX3Y4LCBjaGFubmVscywgbl9jaGFubmVscyksXFxuK1xcdFxcdFxcdFxcdCBcXFwiaW52YWxpZCBNQ0MgdjggcmVzcG9uc2Ugc2l6ZTogJXUgKG5fY2hhbm5lbHM9JWQpXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgcGt0X2xlbiwgbl9jaGFubmVscykpIHtcXG4gXFx0XFx0XFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XFxuIFxcdFxcdFxcdGdvdG8gZXhpdDtcXG4gXFx0XFx0fVxcbkBAIC00NjQsOSArNDc1LDE4IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsXFxuIFxcdFxcdFxcdCAgICAgICBJV0xfVUNPREVfVExWX0NBUEFfTUNDX1VQREFURV8xMUFYX1NVUFBPUlQpKSB7XFxuIFxcdFxcdHN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3Y0ICptY2NfcmVzcF92NCA9ICh2b2lkICopcGt0LVxcdTAwM2VkYXRhO1xcbiBcXG4rXFx0XFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIHBrdF9sZW4gXFx1MDAzYyBzaXplb2YoKm1jY19yZXNwX3Y0KSxcXG4rXFx0XFx0XFx0XFx0IFxcXCJNQ0MgdjQgcmVzcG9uc2UgdG9vIHNob3J0OiAldVxcXFxuXFxcIiwgcGt0X2xlbikpIHtcXG4rXFx0XFx0XFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XFxuK1xcdFxcdFxcdGdvdG8gZXhpdDtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0bl9jaGFubmVscyA9ICBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3Y0LVxcdTAwM2VuX2NoYW5uZWxzKTtcXG4tXFx0XFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSAhPVxcbi1cXHRcXHQgICAgc3RydWN0X3NpemUobWNjX3Jlc3BfdjQsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSkge1xcbitcXHRcXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSxcXG4rXFx0XFx0XFx0XFx0IHBrdF9sZW4gIT1cXG4rXFx0XFx0XFx0XFx0IHN0cnVjdF9zaXplKG1jY19yZXNwX3Y0LCBjaGFubmVscywgbl9jaGFubmVscyksXFxuK1xcdFxcdFxcdFxcdCBcXFwiaW52YWxpZCBNQ0MgdjQgcmVzcG9uc2Ugc2l6ZTogJXUgKG5fY2hhbm5lbHM9JWQpXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgcGt0X2xlbiwgbl9jaGFubmVscykpIHtcXG4gXFx0XFx0XFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XFxuIFxcdFxcdFxcdGdvdG8gZXhpdDtcXG4gXFx0XFx0fVxcbkBAIC00ODksOSArNTA5LDE4IEBAIGl3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsXFxuIFxcdH0gZWxzZSB7XFxuIFxcdFxcdHN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3YzICptY2NfcmVzcF92MyA9ICh2b2lkICopcGt0LVxcdTAwM2VkYXRhO1xcbiBcXG4rXFx0XFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIHBrdF9sZW4gXFx1MDAzYyBzaXplb2YoKm1jY19yZXNwX3YzKSxcXG4rXFx0XFx0XFx0XFx0IFxcXCJNQ0MgdjMgcmVzcG9uc2UgdG9vIHNob3J0OiAldVxcXFxuXFxcIiwgcGt0X2xlbikpIHtcXG4rXFx0XFx0XFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XFxuK1xcdFxcdFxcdGdvdG8gZXhpdDtcXG4rXFx0XFx0fVxcbitcXG4gXFx0XFx0bl9jaGFubmVscyA9ICBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3YzLVxcdTAwM2VuX2NoYW5uZWxzKTtcXG4tXFx0XFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSAhPVxcbi1cXHRcXHQgICAgc3RydWN0X3NpemUobWNjX3Jlc3BfdjMsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSkge1xcbitcXHRcXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSxcXG4rXFx0XFx0XFx0XFx0IHBrdF9sZW4gIT1cXG4rXFx0XFx0XFx0XFx0IHN0cnVjdF9zaXplKG1jY19yZXNwX3YzLCBjaGFubmVscywgbl9jaGFubmVscyksXFxuK1xcdFxcdFxcdFxcdCBcXFwiaW52YWxpZCBNQ0MgdjMgcmVzcG9uc2Ugc2l6ZTogJXUgKG5fY2hhbm5lbHM9JWQpXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgcGt0X2xlbiwgbl9jaGFubmVscykpIHtcXG4gXFx0XFx0XFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XFxuIFxcdFxcdFxcdGdvdG8gZXhpdDtcXG4gXFx0XFx0fVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMtZncuY1xcbmluZGV4IDg5YWM0YzZiM2U1NDNkLi5lMjM4MmJlOGVkZDc4ZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMtZncuY1xcbkBAIC0xLDcgKzEsNyBAQFxcbiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcXG4gLypcXG4gICogQ29weXJpZ2h0IChDKSAyMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkhcXG4tICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjUgSW50ZWwgQ29ycG9yYXRpb25cXG4rICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjYgSW50ZWwgQ29ycG9yYXRpb25cXG4gICovXFxuICNpbmNsdWRlIFxcXCJycy5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiZnctYXBpLmhcXFwiXFxuQEAgLTQyMyw5ICs0MjMsMTQgQEAgdm9pZCBpd2xfbXZtX3RsY191cGRhdGVfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4gXFx0c3RydWN0IGl3bF9scV9zdGFfcnNfZncgKmxxX3N0YTtcXG4gXFx0dTMyIGZsYWdzO1xcbiBcXG4rXFx0bm90aWYgPSAodm9pZCAqKXBrdC1cXHUwMDNlZGF0YTtcXG4rXFx0aWYgKElXTF9GV19DSEVDSyhtdm0sIG5vdGlmLVxcdTAwM2VzdGFfaWQgXFx1MDAzZT0gbXZtLVxcdTAwM2Vmdy1cXHUwMDNldWNvZGVfY2FwYS5udW1fc3RhdGlvbnMsXFxuK1xcdFxcdFxcdCBcXFwiSW52YWxpZCBzdGEgaWQgKCVkKSBpbiBUTEMgbm90aWZpY2F0aW9uXFxcXG5cXFwiLFxcbitcXHRcXHRcXHQgbm90aWYtXFx1MDAzZXN0YV9pZCkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdHJjdV9yZWFkX2xvY2soKTtcXG4gXFxuLVxcdG5vdGlmID0gKHZvaWQgKilwa3QtXFx1MDAzZWRhdGE7XFxuIFxcdGxpbmtfc3RhID0gcmN1X2RlcmVmZXJlbmNlKG12bS1cXHUwMDNlZndfaWRfdG9fbGlua19zdGFbbm90aWYtXFx1MDAzZXN0YV9pZF0pO1xcbiBcXHRzdGEgPSByY3VfZGVyZWZlcmVuY2UobXZtLVxcdTAwM2Vmd19pZF90b19tYWNfaWRbbm90aWYtXFx1MDAzZXN0YV9pZF0pO1xcbiBcXHRpZiAoSVNfRVJSX09SX05VTEwoc3RhKSB8fCAhbGlua19zdGEpIHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3J4LmNcXG5pbmRleCAyNjljNGI0NWRlODA3OC4uYWIxZWIyZWIwYzNjZGYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3J4LmNcXG5AQCAtMTIyNyw2ICsxMjI3LDExIEBAIHZvaWQgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuIFxcdFxcdC8qIGdldCB0aGUgc3RhdGlvbiAqL1xcbiBcXHRcXHRzdGFfaWQgPSAocmF0aWQgXFx1MDAyNiBCQV9XSU5ET1dfU1RBVFVTX1NUQV9JRF9NU0spXFxuIFxcdFxcdFxcdCBcXHUwMDNlXFx1MDAzZSBCQV9XSU5ET1dfU1RBVFVTX1NUQV9JRF9QT1M7XFxuK1xcdFxcdGlmIChJV0xfRldfQ0hFQ0sobXZtLFxcbitcXHRcXHRcXHRcXHQgc3RhX2lkIFxcdTAwM2U9IG12bS1cXHUwMDNlZnctXFx1MDAzZXVjb2RlX2NhcGEubnVtX3N0YXRpb25zLFxcbitcXHRcXHRcXHRcXHQgXFxcIkludmFsaWQgc3RhIGlkICglZCkgaW4gQkEgd2luZG93IHN0YXR1cyBub3RpZmljYXRpb25cXFxcblxcXCIsXFxuK1xcdFxcdFxcdFxcdCBzdGFfaWQpKVxcbitcXHRcXHRcXHRjb250aW51ZTtcXG4gXFx0XFx0c3RhID0gcmN1X2RlcmVmZXJlbmNlKG12bS1cXHUwMDNlZndfaWRfdG9fbWFjX2lkW3N0YV9pZF0pO1xcbiBcXHRcXHRpZiAoSVNfRVJSX09SX05VTEwoc3RhKSlcXG4gXFx0XFx0XFx0Y29udGludWU7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xcbmluZGV4IDc5ODI5Zjc3NWM4OWJmLi4zODMxYjNjMjdlMGYzNyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcXG5AQCAtMSw2ICsxLDYgQEBcXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuIC8qXFxuLSAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE0LCAyMDE4LTIwMjUgSW50ZWwgQ29ycG9yYXRpb25cXG4rICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBJbnRlbCBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgR21iSFxcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBJbnRlbCBEZXV0c2NobGFuZCBHbWJIXFxuICAqL1xcbkBAIC0zMTQ0LDggKzMxNDQsNiBAQCBpbnQgaXdsX212bV9zY2hlZF9zY2FuX3N0YXJ0KHN0cnVjdCBpd2xfbXZtICptdm0sXFxuIFxcdGlmIChyZXQpXFxuIFxcdFxcdHJldHVybiByZXQ7XFxuIFxcbi1cXHRpd2xfbXZtX2J1aWxkX3NjYW5fcHJvYmUobXZtLCB2aWYsIGllcywgXFx1MDAyNnBhcmFtcyk7XFxuLVxcbiBcXHQvKiBmb3IgNiBHSFogYmFuZCBvbmx5IFBTQyBjaGFubmVscyBuZWVkIHRvIGJlIGFkZGVkICovXFxuIFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBwYXJhbXMubl9jaGFubmVsczsgaSsrKSB7XFxuIFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqY2hhbm5lbCA9IHBhcmFtcy5jaGFubmVsc1tpXTtcXG5AQCAtMzE3OSw2ICszMTc3LDggQEAgaW50IGl3bF9tdm1fc2NoZWRfc2Nhbl9zdGFydChzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFx0fVxcbiBcXG4rXFx0aXdsX212bV9idWlsZF9zY2FuX3Byb2JlKG12bSwgdmlmLCBpZXMsIFxcdTAwMjZwYXJhbXMpO1xcbitcXG4gXFx0dWlkID0gaXdsX212bV9idWlsZF9zY2FuX2NtZChtdm0sIHZpZiwgXFx1MDAyNmhjbWQsIFxcdTAwMjZwYXJhbXMsIHR5cGUpO1xcbiBcXHRpZiAodWlkIFxcdTAwM2MgMCkge1xcbiBcXHRcXHRyZXQgPSB1aWQ7XFxuQEAgLTMyMTcsNiArMzIxNywxMCBAQCB2b2lkIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuIFxcbiBcXHRtdm0tXFx1MDAzZW1laV9zY2FuX2ZpbHRlci5pc19tZWlfbGltaXRlZF9zY2FuID0gZmFsc2U7XFxuIFxcbitcXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgdWlkIFxcdTAwM2U9IEFSUkFZX1NJWkUobXZtLVxcdTAwM2VzY2FuX3VpZF9zdGF0dXMpLFxcbitcXHRcXHRcXHQgXFxcIkZXIHJlcG9ydHMgb3V0LW9mLXJhbmdlIHNjYW4gVUlEICVkXFxcXG5cXFwiLCB1aWQpKVxcbitcXHRcXHRyZXR1cm47XFxuK1xcbiBcXHRJV0xfREVCVUdfU0NBTihtdm0sXFxuIFxcdFxcdCAgICAgICBcXFwiU2NhbiBjb21wbGV0ZWQ6IHVpZD0ldSB0eXBlPSV1LCBzdGF0dXM9JXMsIEVCUz0lc1xcXFxuXFxcIixcXG4gXFx0XFx0ICAgICAgIHVpZCwgbXZtLVxcdTAwM2VzY2FuX3VpZF9zdGF0dXNbdWlkXSxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5jXFxuaW5kZXggMTY5MmI2ZTc1ZjU3OWQuLjkzYjQ2YzllMjMzM2Q1IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuY1xcbkBAIC05NTEsNiArOTUxLDExIEBAIHZvaWQgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4gXFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZjtcXG4gXFx0c3RydWN0IGl3bF9tdm1fdmlmICptdm12aWY7XFxuIFxcbitcXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgaWQgXFx1MDAzZT0gQVJSQVlfU0laRShtdm0tXFx1MDAzZXZpZl9pZF90b19tYWMpLFxcbitcXHRcXHRcXHQgXFxcIkludmFsaWQgbWFjX2xpbmtfaWQgKCVkKSBpbiBzZXNzaW9uIHByb3RlY3Qgbm90aWZcXFxcblxcXCIsXFxuK1xcdFxcdFxcdCBpZCkpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuIFxcdHJjdV9yZWFkX2xvY2soKTtcXG4gXFxuIFxcdC8qIG5vdGUgd2UgdXNlIGxpbmsgSUQgPT0gTUFDIElEICovXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguY1xcbmluZGV4IGZlMjYzY2RjMmU0ZjQxLi40NjMxZTExZjJhOTY0ZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmNcXG5AQCAtMSw2ICsxLDYgQEBcXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuIC8qXFxuLSAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE0LCAyMDE4LTIwMjQgSW50ZWwgQ29ycG9yYXRpb25cXG4rICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTQsIDIwMTgtMjAyNCwgMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBJbnRlbCBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgR21iSFxcbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBJbnRlbCBEZXV0c2NobGFuZCBHbWJIXFxuICAqL1xcbkBAIC0xMjM4LDExICsxMjM4LDE2IEBAIHZvaWQgaXdsX3BjaWVfcnhfZnJlZShzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcdGtmcmVlKHRyYW5zX3BjaWUtXFx1MDAzZXJ4X3Bvb2wpO1xcbitcXHR0cmFuc19wY2llLVxcdTAwM2VyeF9wb29sID0gTlVMTDtcXG4gXFx0a2ZyZWUodHJhbnNfcGNpZS1cXHUwMDNlZ2xvYmFsX3RhYmxlKTtcXG4rXFx0dHJhbnNfcGNpZS1cXHUwMDNlZ2xvYmFsX3RhYmxlID0gTlVMTDtcXG4gXFx0a2ZyZWUodHJhbnNfcGNpZS1cXHUwMDNlcnhxKTtcXG4rXFx0dHJhbnNfcGNpZS1cXHUwMDNlcnhxID0gTlVMTDtcXG4gXFxuLVxcdGlmICh0cmFuc19wY2llLVxcdTAwM2VhbGxvY19wYWdlKVxcbitcXHRpZiAodHJhbnNfcGNpZS1cXHUwMDNlYWxsb2NfcGFnZSkge1xcbiBcXHRcXHRfX2ZyZWVfcGFnZXModHJhbnNfcGNpZS1cXHUwMDNlYWxsb2NfcGFnZSwgdHJhbnNfcGNpZS1cXHUwMDNlcnhfcGFnZV9vcmRlcik7XFxuK1xcdFxcdHRyYW5zX3BjaWUtXFx1MDAzZWFsbG9jX3BhZ2UgPSBOVUxMO1xcbitcXHR9XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIGl3bF9wY2llX3J4X21vdmVfdG9fYWxsb2NhdG9yKHN0cnVjdCBpd2xfcnhxICpyeHEsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE2OjU5OjA1LjI4MDQ4OTUxNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTM3NjgzODEwODMxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJV0xXSUZJXCIsXG4gICAgXCJJV0xNVk1cIixcbiAgICBcIklXTE1MRFwiLFxuICAgIFwiSVdMV0lGSV9ERUJVR0ZTXCIsXG4gICAgXCJUSEVSTUFMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaXdsX212bV9yeF9iZWFjb25fbm90aWZcIixcbiAgICBcIml3bF9tdm1fdXBkYXRlX21jY1wiLFxuICAgIFwiaXdsX212bV90bGNfdXBkYXRlX25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWZcIixcbiAgICBcIml3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmXCIsXG4gICAgXCJpd2xfbWxkX3Jlb3JkZXJcIixcbiAgICBcIml3bF9tdm1fcnhfc2Vzc2lvbl9wcm90ZWN0X25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3dhaXRfZDNfbm90aWZcIixcbiAgICBcIml3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja3MgYW5kIHBheWxvYWQgbGVuZ3RoIHZhbGlkYXRpb25zIGZvciBmaXJtd2FyZSBub3RpZmljYXRpb25zIGluIHRoZSBpd2x3aWZpIGRyaXZlciAoTVZNIGFuZCBNTEQgY29tcG9uZW50cykuIFRoZXNlIGFyZSBjcml0aWNhbCBmb3IgcHJldmVudGluZyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFuZCBtZW1vcnkgY29ycnVwdGlvbiB3aGVuIHByb2Nlc3NpbmcgbWFsZm9ybWVkIG9yIG1hbGljaW91cyBmaXJtd2FyZSByZXNwb25zZXMuIFRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgY2FuIGJlIGZ1enplZCB2aWEgZGVidWdmcyBpbmplY3Rpb24gKGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ZjUxODMwNzExNWEyZmM5YTlhMjRmZGQ0YzNiZGI3ZjA3YWY1ZTQ2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMTQgMTY6NTg6MzkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5pbmRleCBlMzYyN2FkMDMyMWM4Yi4uYTQ2NGViZGVjNTdmMTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcbkBAIC0xLDYgKzEsNiBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxuIC8qXG4tICogQ29weXJpZ2h0IChDKSAyMDI0LTIwMjUgSW50ZWwgQ29ycG9yYXRpb25cbisgKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqL1xuICNpbmNsdWRlIFwiYWdnLmhcIlxuICNpbmNsdWRlIFwic3RhLmhcIlxuQEAgLTIyMiw2ICsyMjIsMTEgQEAgaXdsX21sZF9yZW9yZGVyKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcbiBcdGlmIChiYWlkID09IElXTF9SWF9SRU9SREVSX0RBVEFfSU5WQUxJRF9CQUlEKVxuIFx0XHRyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjtcbiBcbitcdGlmIChJV0xfRldfQ0hFQ0sobWxkLCBiYWlkIFx1MDAzZT0gQVJSQVlfU0laRShtbGQtXHUwMDNlZndfaWRfdG9fYmEpLFxuK1x0XHRcdCBcIkdvdCBvdXQtb2YtcmFuZ2UgQkFJRCAldSBpbiByZW9yZGVyX2RhdGE9MHgleFxcblwiLFxuK1x0XHRcdCBiYWlkLCByZW9yZGVyKSlcbitcdFx0cmV0dXJuIElXTF9NTERfUEFTU19TS0I7XG4rXG4gXHQvKiBubyBzdGEgeWV0ICovXG4gXHRpZiAoV0FSTl9PTkNFKCFzdGEsXG4gXHRcdCAgICAgIFwiR290IHZhbGlkIEJBSUQgd2l0aG91dCBhIHZhbGlkIHN0YXRpb24gYXNzaWduZWRcXG5cIikpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWFjODAyMTEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21hYzgwMjExLmNcbmluZGV4IDE3Mjg2YjMzNDFjMDIwLi45YWMxN2JlMzA0MDA4MiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21hYzgwMjExLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21hYzgwMjExLmNcbkBAIC0xNzA4LDcgKzE3MDgsNyBAQCBzdGF0aWMgdm9pZCBpd2xfbWxkX2NoZWNrX2hlX29ic3NfbmFycm93X2J3X3J1X2l0ZXIoc3RydWN0IHdpcGh5ICp3aXBoeSxcbiBcdGVsZW0gPSBjZmc4MDIxMV9maW5kX2VsZW0oV0xBTl9FSURfRVhUX0NBUEFCSUxJVFksIGllcy1cdTAwM2VkYXRhLFxuIFx0XHRcdFx0ICBpZXMtXHUwMDNlbGVuKTtcbiBcbi1cdGlmICghZWxlbSB8fCBlbGVtLVx1MDAzZWRhdGFsZW4gXHUwMDNjIDEwIHx8XG4rXHRpZiAoIWVsZW0gfHwgZWxlbS1cdTAwM2VkYXRhbGVuIFx1MDAzYyAxMSB8fFxuIFx0ICAgICEoZWxlbS1cdTAwM2VkYXRhWzEwXSBcdTAwMjZcbiBcdCAgICAgIFdMQU5fRVhUX0NBUEExMF9PQlNTX05BUlJPV19CV19SVV9UT0xFUkFOQ0VfU1VQUE9SVCkpIHtcbiBcdFx0KnRvbGVyYXRlZCA9IGZhbHNlO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21jYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbWNjLmNcbmluZGV4IDg1MDIxMjlhYmU0OTM5Li44MzBjMjUxZjQzYWZjYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL21jYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9tY2MuY1xuQEAgLTE4LDkgKzE4LDE1IEBAIHN0YXRpYyBzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92OCAqXG4gaXdsX21sZF9jb3B5X21jY19yZXNwKGNvbnN0IHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QpXG4ge1xuIFx0Y29uc3Qgc3RydWN0IGl3bF9tY2NfdXBkYXRlX3Jlc3BfdjggKm1jY19yZXNwX3Y4ID0gKGNvbnN0IHZvaWQgKilwa3QtXHUwMDNlZGF0YTtcbi1cdGludCBuX2NoYW5uZWxzID0gX19sZTMyX3RvX2NwdShtY2NfcmVzcF92OC1cdTAwM2VuX2NoYW5uZWxzKTtcbiBcdHN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3Y4ICpyZXNwX2NwO1xuLVx0aW50IG5vdGlmX2xlbiA9IHN0cnVjdF9zaXplKHJlc3BfY3AsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKTtcbitcdGludCBuX2NoYW5uZWxzO1xuK1x0aW50IG5vdGlmX2xlbjtcbitcbitcdGlmIChpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkgXHUwMDNjIHNpemVvZigqbWNjX3Jlc3BfdjgpKVxuK1x0XHRyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTtcbitcbitcdG5fY2hhbm5lbHMgPSBfX2xlMzJfdG9fY3B1KG1jY19yZXNwX3Y4LVx1MDAzZW5fY2hhbm5lbHMpO1xuK1x0bm90aWZfbGVuID0gc3RydWN0X3NpemUocmVzcF9jcCwgY2hhbm5lbHMsIG5fY2hhbm5lbHMpO1xuIFxuIFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSAhPSBub3RpZl9sZW4pXG4gXHRcdHJldHVybiBFUlJfUFRSKC1FSU5WQUwpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuY1xuaW5kZXggZjhhOGMzNTA2NmJlYjIuLmU0NDViMWQ3ZDRiMDAyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmNcbkBAIC0xLDYgKzEsNiBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxuIC8qXG4tICogQ29weXJpZ2h0IChDKSAyMDI0LTIwMjUgSW50ZWwgQ29ycG9yYXRpb25cbisgKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqL1xuICNpZmRlZiBDT05GSUdfVEhFUk1BTFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvcnQuaFx1MDAzZVxuQEAgLTI3Miw2ICsyNzIsNyBAQCBzdGF0aWMgdm9pZCBpd2xfbWxkX3RoZXJtYWxfem9uZV9yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKVxuIFx0aWYgKHJldCkge1xuIFx0XHRJV0xfREVCVUdfVEVNUChtbGQsIFwiRmFpbGVkIHRvIGVuYWJsZSB0aGVybWFsIHpvbmVcXG5cIik7XG4gXHRcdHRoZXJtYWxfem9uZV9kZXZpY2VfdW5yZWdpc3RlcihtbGQtXHUwMDNldHpvbmUpO1xuK1x0XHRtbGQtXHUwMDNldHpvbmUgPSBOVUxMO1xuIFx0fVxuIH1cbiBcbkBAIC0zODUsMTAgKzM4Niw4IEBAIHN0YXRpYyB2b2lkIGl3bF9tbGRfdGhlcm1hbF96b25lX3VucmVnaXN0ZXIoc3RydWN0IGl3bF9tbGQgKm1sZClcbiBcdFx0cmV0dXJuO1xuIFxuIFx0SVdMX0RFQlVHX1RFTVAobWxkLCBcIlRoZXJtYWwgem9uZSBkZXZpY2UgdW5yZWdpc3RlclxcblwiKTtcbi1cdGlmIChtbGQtXHUwMDNldHpvbmUpIHtcbi1cdFx0dGhlcm1hbF96b25lX2RldmljZV91bnJlZ2lzdGVyKG1sZC1cdTAwM2V0em9uZSk7XG4tXHRcdG1sZC1cdTAwM2V0em9uZSA9IE5VTEw7XG4tXHR9XG4rXHR0aGVybWFsX3pvbmVfZGV2aWNlX3VucmVnaXN0ZXIobWxkLVx1MDAzZXR6b25lKTtcbitcdG1sZC1cdTAwM2V0em9uZSA9IE5VTEw7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIGl3bF9tbGRfY29vbGluZ19kZXZpY2VfdW5yZWdpc3RlcihzdHJ1Y3QgaXdsX21sZCAqbWxkKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jXG5pbmRleCA5YTc0ZjYwYzkxODUwZi4uMzQyOWQ5YTEwZTQyMDkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jXG5AQCAtMTUzOSw4ICsxNTM5LDggQEAgc3RhdGljIHZvaWQgaXdsX212bV9yZXBvcnRfd2FrZXVwX3JlYXNvbnMoc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcbiBcdFx0XHQvKiBpZiB0cnVuY2F0ZWQsIEZDUy9JQ1YgaXMgKHBhcnRpYWxseSkgZ29uZSAqL1xuIFx0XHRcdGlmICh0cnVuY2F0ZWQgXHUwMDNlPSBpY3ZsZW4pIHtcbi1cdFx0XHRcdGljdmxlbiA9IDA7XG4gXHRcdFx0XHR0cnVuY2F0ZWQgLT0gaWN2bGVuO1xuK1x0XHRcdFx0aWN2bGVuID0gMDtcbiBcdFx0XHR9IGVsc2Uge1xuIFx0XHRcdFx0aWN2bGVuIC09IHRydW5jYXRlZDtcbiBcdFx0XHRcdHRydW5jYXRlZCA9IDA7XG5AQCAtMjEyMywxNiArMjEyMywxNiBAQCBzdGF0aWMgdm9pZCBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXHRcdFx0XHRcdCAgICBzdHJ1Y3QgaXdsX3dvd2xhbl9zdGF0dXNfZGF0YSAqc3RhdHVzLFxuIFx0XHRcdFx0XHQgICAgdTMyIGxlbilcbiB7XG4tXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgZGF0YS1cdTAwM2VudW1fbWxvX2xpbmtfa2V5cyxcbi1cdFx0XHQgXCJNTE8gaXMgbm90IHN1cHBvcnRlZCwgc2hvdWxkbid0IHJlY2VpdmUgTUxPIGtleXNcXG5cIikpXG4tXHRcdHJldHVybjtcbi1cbiBcdGlmIChsZW4gXHUwMDNjIHNpemVvZigqZGF0YSkpIHtcbiBcdFx0SVdMX0VSUihtdm0sIFwiSW52YWxpZCBXb1dMQU4gaW5mbyBub3RpZmljYXRpb24hXFxuXCIpO1xuIFx0XHRzdGF0dXMgPSBOVUxMO1xuIFx0XHRyZXR1cm47XG4gXHR9XG4gXG4rXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgZGF0YS1cdTAwM2VudW1fbWxvX2xpbmtfa2V5cyxcbitcdFx0XHQgXCJNTE8gaXMgbm90IHN1cHBvcnRlZCwgc2hvdWxkbid0IHJlY2VpdmUgTUxPIGtleXNcXG5cIikpXG4rXHRcdHJldHVybjtcbitcbiBcdGlmIChtdm0tXHUwMDNlZmFzdF9yZXN1bWUpXG4gXHRcdHJldHVybjtcbiBcbkBAIC0yOTQyLDYgKzI5NDIsMTEgQEAgc3RhdGljIGJvb2wgaXdsX212bV93YWl0X2QzX25vdGlmKHN0cnVjdCBpd2xfbm90aWZfd2FpdF9kYXRhICpub3RpZl93YWl0LFxuIFx0Y2FzZSBXSURFX0lEKFBST1RfT0ZGTE9BRF9HUk9VUCwgRDNfRU5EX05PVElGSUNBVElPTik6IHtcbiBcdFx0c3RydWN0IGl3bF9kM19lbmRfbm90aWYgKm5vdGlmID0gKHZvaWQgKilwa3QtXHUwMDNlZGF0YTtcbiBcbitcdFx0aWYgKGxlbiBcdTAwM2Mgc2l6ZW9mKCpub3RpZikpIHtcbitcdFx0XHRJV0xfRVJSKG12bSwgXCJJbnZhbGlkIEQzIGVuZCBub3RpZmljYXRpb24gc2l6ZVxcblwiKTtcbitcdFx0XHRicmVhaztcbitcdFx0fVxuK1xuIFx0XHRkM19kYXRhLVx1MDAzZWQzX2VuZF9mbGFncyA9IF9fbGUzMl90b19jcHUobm90aWYtXHUwMDNlZmxhZ3MpO1xuIFx0XHRkM19kYXRhLVx1MDAzZW5vdGlmX3JlY2VpdmVkIHw9IElXTF9EM19OT1RJRl9EM19FTkRfTk9USUY7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmNcbmluZGV4IGQ2YTg2MjRiMWFlNWNlLi5iMmM1YmUyMmMyOTNjZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmNcbkBAIC0xNDkzLDQ5ICsxNDkzLDU0IEBAIHZvaWQgaXdsX212bV9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbiB7XG4gXHRzdHJ1Y3QgaXdsX3J4X3BhY2tldCAqcGt0ID0gcnhiX2FkZHIocnhiKTtcbiBcdHVuc2lnbmVkIGludCBwa3RfbGVuID0gaXdsX3J4X3BhY2tldF9wYXlsb2FkX2xlbihwa3QpO1xuLVx0c3RydWN0IGl3bF9leHRlbmRlZF9iZWFjb25fbm90aWYgKmJlYWNvbiA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG4tXHRzdHJ1Y3QgaXdsX2V4dGVuZGVkX2JlYWNvbl9ub3RpZl92NSAqYmVhY29uX3Y1ID0gKHZvaWQgKilwa3QtXHUwMDNlZGF0YTtcbiBcdHN0cnVjdCBpZWVlODAyMTFfdmlmICpjc2FfdmlmO1xuIFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnR4X2Jsb2NrZWRfdmlmO1xuIFx0c3RydWN0IGFnZ190eF9zdGF0dXMgKmFnZ19zdGF0dXM7XG4rXHR1MzIgYmVhY29uX2dwMjtcbiBcdHUxNiBzdGF0dXM7XG4gXG4gXHRsb2NrZGVwX2Fzc2VydF9oZWxkKFx1MDAyNm12bS1cdTAwM2VtdXRleCk7XG4gXG4tXHRtdm0tXHUwMDNlYXBfbGFzdF9iZWFjb25fZ3AyID0gbGUzMl90b19jcHUoYmVhY29uLVx1MDAzZWdwMik7XG4tXG4gXHRpZiAoIWl3bF9tdm1faXNfc2hvcnRfYmVhY29uX25vdGlmX3N1cHBvcnRlZChtdm0pKSB7XG4rXHRcdHN0cnVjdCBpd2xfZXh0ZW5kZWRfYmVhY29uX25vdGlmX3Y1ICpiZWFjb24gPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuIFx0XHRzdHJ1Y3QgaXdsX3R4X3Jlc3AgKmJlYWNvbl9ub3RpZnlfaGRyID1cbi1cdFx0XHRcdTAwMjZiZWFjb25fdjUtXHUwMDNlYmVhY29uX25vdGlmeV9oZHI7XG4rXHRcdFx0XHUwMDI2YmVhY29uLVx1MDAzZWJlYWNvbl9ub3RpZnlfaGRyO1xuIFxuLVx0XHRpZiAodW5saWtlbHkocGt0X2xlbiBcdTAwM2Mgc2l6ZW9mKCpiZWFjb25fdjUpKSlcbitcdFx0aWYgKHVubGlrZWx5KHBrdF9sZW4gXHUwMDNjIHNpemVvZigqYmVhY29uKSkpXG4gXHRcdFx0cmV0dXJuO1xuIFxuLVx0XHRtdm0tXHUwMDNlaWJzc19tYW5hZ2VyID0gYmVhY29uX3Y1LVx1MDAzZWlic3NfbWdyX3N0YXR1cyAhPSAwO1xuK1x0XHRiZWFjb25fZ3AyID0gbGUzMl90b19jcHUoYmVhY29uLVx1MDAzZWdwMik7XG4rXG4rXHRcdG12bS1cdTAwM2VpYnNzX21hbmFnZXIgPSBiZWFjb24tXHUwMDNlaWJzc19tZ3Jfc3RhdHVzICE9IDA7XG4gXHRcdGFnZ19zdGF0dXMgPSBpd2xfbXZtX2dldF9hZ2dfc3RhdHVzKG12bSwgYmVhY29uX25vdGlmeV9oZHIpO1xuIFx0XHRzdGF0dXMgPSBsZTE2X3RvX2NwdShhZ2dfc3RhdHVzLVx1MDAzZXN0YXR1cykgXHUwMDI2IFRYX1NUQVRVU19NU0s7XG4gXHRcdElXTF9ERUJVR19SWChtdm0sXG4gXHRcdFx0ICAgICBcImJlYWNvbiBzdGF0dXMgJSN4IHJldHJpZXM6JWQgdHNmOjB4JTAxNmxsWCBncDI6MHglWCByYXRlOiVkXFxuXCIsXG4gXHRcdFx0ICAgICBzdGF0dXMsIGJlYWNvbl9ub3RpZnlfaGRyLVx1MDAzZWZhaWx1cmVfZnJhbWUsXG4gXHRcdFx0ICAgICBsZTY0X3RvX2NwdShiZWFjb24tXHUwMDNldHNmKSxcbi1cdFx0XHQgICAgIG12bS1cdTAwM2VhcF9sYXN0X2JlYWNvbl9ncDIsXG4rXHRcdFx0ICAgICBiZWFjb25fZ3AyLFxuIFx0XHRcdCAgICAgbGUzMl90b19jcHUoYmVhY29uX25vdGlmeV9oZHItXHUwMDNlaW5pdGlhbF9yYXRlKSk7XG4gXHR9IGVsc2Uge1xuK1x0XHRjb25zdCBzdHJ1Y3QgaXdsX2V4dGVuZGVkX2JlYWNvbl9ub3RpZiAqYmVhY29uID1cbitcdFx0XHQodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuK1xuIFx0XHRpZiAodW5saWtlbHkocGt0X2xlbiBcdTAwM2Mgc2l6ZW9mKCpiZWFjb24pKSlcbiBcdFx0XHRyZXR1cm47XG4gXG4rXHRcdGJlYWNvbl9ncDIgPSBsZTMyX3RvX2NwdShiZWFjb24tXHUwMDNlZ3AyKTtcbitcbiBcdFx0bXZtLVx1MDAzZWlic3NfbWFuYWdlciA9IGJlYWNvbi1cdTAwM2VpYnNzX21ncl9zdGF0dXMgIT0gMDtcbiBcdFx0c3RhdHVzID0gbGUzMl90b19jcHUoYmVhY29uLVx1MDAzZXN0YXR1cykgXHUwMDI2IFRYX1NUQVRVU19NU0s7XG4gXHRcdElXTF9ERUJVR19SWChtdm0sXG4gXHRcdFx0ICAgICBcImJlYWNvbiBzdGF0dXMgJSN4IHRzZjoweCUwMTZsbFggZ3AyOjB4JVhcXG5cIixcbiBcdFx0XHQgICAgIHN0YXR1cywgbGU2NF90b19jcHUoYmVhY29uLVx1MDAzZXRzZiksXG4tXHRcdFx0ICAgICBtdm0tXHUwMDNlYXBfbGFzdF9iZWFjb25fZ3AyKTtcbitcdFx0XHQgICAgIGJlYWNvbl9ncDIpO1xuIFx0fVxuIFxuIFx0Y3NhX3ZpZiA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobXZtLVx1MDAzZWNzYV92aWYsXG4gXHRcdFx0XHRcdCAgICBsb2NrZGVwX2lzX2hlbGQoXHUwMDI2bXZtLVx1MDAzZW11dGV4KSk7XG4gXHRpZiAodW5saWtlbHkoY3NhX3ZpZiBcdTAwMjZcdTAwMjYgY3NhX3ZpZi1cdTAwM2Vic3NfY29uZi5jc2FfYWN0aXZlKSlcbi1cdFx0aXdsX212bV9jc2FfY291bnRfZG93bihtdm0sIGNzYV92aWYsIG12bS1cdTAwM2VhcF9sYXN0X2JlYWNvbl9ncDIsXG4rXHRcdGl3bF9tdm1fY3NhX2NvdW50X2Rvd24obXZtLCBjc2FfdmlmLCBiZWFjb25fZ3AyLFxuIFx0XHRcdFx0ICAgICAgIChzdGF0dXMgPT0gVFhfU1RBVFVTX1NVQ0NFU1MpKTtcbiBcbiBcdHR4X2Jsb2NrZWRfdmlmID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChtdm0tXHUwMDNlY3NhX3R4X2Jsb2NrZWRfdmlmLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jXG5pbmRleCA3NGJkNDAzOGZkNTYwMS4uM2U3M2E2MTk1ZmQ5YjMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jXG5AQCAtNjI1LDkgKzYyNSw3IEBAIGludCBpd2xfbXZtX21hY19zZXR1cF9yZWdpc3RlcihzdHJ1Y3QgaXdsX212bSAqbXZtKVxuIFx0aHctXHUwMDNld2lwaHktXHUwMDNlbWF4X3NjaGVkX3NjYW5fcmVxcyA9IDE7XG4gXHRody1cdTAwM2V3aXBoeS1cdTAwM2VtYXhfc2NoZWRfc2Nhbl9zc2lkcyA9IFBST0JFX09QVElPTl9NQVg7XG4gXHRody1cdTAwM2V3aXBoeS1cdTAwM2VtYXhfbWF0Y2hfc2V0cyA9IGl3bF91bWFjX3NjYW5fZ2V0X21heF9wcm9maWxlcyhtdm0tXHUwMDNlZncpO1xuLVx0Lyogd2UgY3JlYXRlIHRoZSA4MDIuMTEgaGVhZGVyIGFuZCB6ZXJvIGxlbmd0aCBTU0lEIElFLiAqL1xuLVx0aHctXHUwMDNld2lwaHktXHUwMDNlbWF4X3NjaGVkX3NjYW5faWVfbGVuID1cbi1cdFx0U0NBTl9PRkZMT0FEX1BST0JFX1JFUV9TSVpFIC0gMjQgLSAyO1xuK1x0aHctXHUwMDNld2lwaHktXHUwMDNlbWF4X3NjaGVkX3NjYW5faWVfbGVuID0gaXdsX212bV9tYXhfc2Nhbl9pZV9sZW4obXZtKTtcbiBcdGh3LVx1MDAzZXdpcGh5LVx1MDAzZW1heF9zY2hlZF9zY2FuX3BsYW5zID0gSVdMX01BWF9TQ0hFRF9TQ0FOX1BMQU5TO1xuIFx0aHctXHUwMDNld2lwaHktXHUwMDNlbWF4X3NjaGVkX3NjYW5fcGxhbl9pbnRlcnZhbCA9IFUxNl9NQVg7XG4gXG5AQCAtMzA2MSw3ICszMDU5LDYgQEAgdm9pZCBpd2xfbXZtX3N0b3BfYXBfaWJzc19jb21tb24oc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcdH1cbiBcbiBcdG12bXZpZi1cdTAwM2VhcF9pYnNzX2FjdGl2ZSA9IGZhbHNlO1xuLVx0bXZtLVx1MDAzZWFwX2xhc3RfYmVhY29uX2dwMiA9IDA7XG4gXG4gXHRpZiAodmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfQVAgXHUwMDI2XHUwMDI2ICF2aWYtXHUwMDNlcDJwKSB7XG4gXHRcdGl3bF9tdm1fdmlmX3NldF9sb3dfbGF0ZW5jeShtdm12aWYsIGZhbHNlLFxuQEAgLTM0OTAsNyArMzQ4Nyw3IEBAIHN0YXRpYyB2b2lkIGl3bF9tdm1fY2hlY2tfaGVfb2Jzc19uYXJyb3dfYndfcnVfaXRlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuIFx0ZWxlbSA9IGNmZzgwMjExX2ZpbmRfZWxlbShXTEFOX0VJRF9FWFRfQ0FQQUJJTElUWSwgaWVzLVx1MDAzZWRhdGEsXG4gXHRcdFx0XHQgIGllcy1cdTAwM2VsZW4pO1xuIFxuLVx0aWYgKCFlbGVtIHx8IGVsZW0tXHUwMDNlZGF0YWxlbiBcdTAwM2MgMTAgfHxcbitcdGlmICghZWxlbSB8fCBlbGVtLVx1MDAzZWRhdGFsZW4gXHUwMDNjIDExIHx8XG4gXHQgICAgIShlbGVtLVx1MDAzZWRhdGFbMTBdIFx1MDAyNlxuIFx0ICAgICAgV0xBTl9FWFRfQ0FQQTEwX09CU1NfTkFSUk9XX0JXX1JVX1RPTEVSQU5DRV9TVVBQT1JUKSkge1xuIFx0XHRkYXRhLVx1MDAzZXRvbGVyYXRlZCA9IGZhbHNlO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmhcbmluZGV4IDY4M2NhYzU2ODIyYzg2Li4zMTkxMmY0ZDAxNzVmOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaFxuQEAgLTExNjgsOSArMTE2OCw2IEBAIHN0cnVjdCBpd2xfbXZtIHtcbiBcdHN0cnVjdCBpZWVlODAyMTFfdmlmIF9fcmN1ICpjc2FfdHhfYmxvY2tlZF92aWY7XG4gXHR1OCBjc2FfdHhfYmxvY2tfYmNuX3RpbWVvdXQ7XG4gXG4tXHQvKiBzeXN0ZW0gdGltZSBvZiBsYXN0IGJlYWNvbiAoZm9yIEFQL0dPIGludGVyZmFjZSkgKi9cbi1cdHUzMiBhcF9sYXN0X2JlYWNvbl9ncDI7XG4tXG4gXHQvKiBpbmRpY2F0ZXMgdGhhdCB3ZSB0cmFuc21pdHRlZCB0aGUgbGFzdCBiZWFjb24gKi9cbiBcdGJvb2wgaWJzc19tYW5hZ2VyO1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbnZtLmNcbmluZGV4IDk1MzIxOGYxZTAyNWE3Li5mNzZlNTczOTljMWYzMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9udm0uY1xuQEAgLTEsNiArMSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDE5LCAyMDIxLTIwMjUgSW50ZWwgQ29ycG9yYXRpb25cbisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDE5LCAyMDIxLTIwMjYgSW50ZWwgQ29ycG9yYXRpb25cbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBJbnRlbCBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgR21iSFxuICAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkhcbiAgKi9cbkBAIC00MTYsNiArNDE2LDcgQEAgaXdsX212bV91cGRhdGVfbWNjKHN0cnVjdCBpd2xfbXZtICptdm0sIGNvbnN0IGNoYXIgKmFscGhhMixcbiBcdGludCByZXQsIHJlc3BfdmVyO1xuIFx0dTMyIHN0YXR1cztcbiBcdGludCByZXNwX2xlbiwgbl9jaGFubmVscztcbitcdHVuc2lnbmVkIGludCBwa3RfbGVuO1xuIFx0dTE2IG1jYztcbiBcbiBcdGlmIChXQVJOX09OX09OQ0UoIWl3bF9tdm1faXNfbGFyX3N1cHBvcnRlZChtdm0pKSlcbkBAIC00MzEsNiArNDMyLDcgQEAgaXdsX212bV91cGRhdGVfbWNjKHN0cnVjdCBpd2xfbXZtICptdm0sIGNvbnN0IGNoYXIgKmFscGhhMixcbiBcdFx0cmV0dXJuIEVSUl9QVFIocmV0KTtcbiBcbiBcdHBrdCA9IGNtZC5yZXNwX3BrdDtcbitcdHBrdF9sZW4gPSBpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCk7XG4gXG4gXHRyZXNwX3ZlciA9IGl3bF9md19sb29rdXBfbm90aWZfdmVyKG12bS1cdTAwM2VmdywgSVdMX0FMV0FZU19MT05HX0dST1VQLFxuIFx0XHRcdFx0XHQgICBNQ0NfVVBEQVRFX0NNRCwgMCk7XG5AQCAtNDM5LDkgKzQ0MSwxOCBAQCBpd2xfbXZtX3VwZGF0ZV9tY2Moc3RydWN0IGl3bF9tdm0gKm12bSwgY29uc3QgY2hhciAqYWxwaGEyLFxuIFx0aWYgKHJlc3BfdmVyIFx1MDAzZT0gOCkge1xuIFx0XHRzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92OCAqbWNjX3Jlc3BfdjggPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuIFxuK1x0XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgcGt0X2xlbiBcdTAwM2Mgc2l6ZW9mKCptY2NfcmVzcF92OCksXG4rXHRcdFx0XHQgXCJNQ0MgdjggcmVzcG9uc2UgdG9vIHNob3J0OiAldVxcblwiLCBwa3RfbGVuKSkge1xuK1x0XHRcdHJlc3BfY3AgPSBFUlJfUFRSKC1FSU5WQUwpO1xuK1x0XHRcdGdvdG8gZXhpdDtcbitcdFx0fVxuK1xuIFx0XHRuX2NoYW5uZWxzID0gIF9fbGUzMl90b19jcHUobWNjX3Jlc3BfdjgtXHUwMDNlbl9jaGFubmVscyk7XG4tXHRcdGlmIChpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkgIT1cbi1cdFx0ICAgIHN0cnVjdF9zaXplKG1jY19yZXNwX3Y4LCBjaGFubmVscywgbl9jaGFubmVscykpIHtcbitcdFx0aWYgKElXTF9GV19DSEVDSyhtdm0sXG4rXHRcdFx0XHQgcGt0X2xlbiAhPVxuK1x0XHRcdFx0IHN0cnVjdF9zaXplKG1jY19yZXNwX3Y4LCBjaGFubmVscywgbl9jaGFubmVscyksXG4rXHRcdFx0XHQgXCJpbnZhbGlkIE1DQyB2OCByZXNwb25zZSBzaXplOiAldSAobl9jaGFubmVscz0lZClcXG5cIixcbitcdFx0XHRcdCBwa3RfbGVuLCBuX2NoYW5uZWxzKSkge1xuIFx0XHRcdHJlc3BfY3AgPSBFUlJfUFRSKC1FSU5WQUwpO1xuIFx0XHRcdGdvdG8gZXhpdDtcbiBcdFx0fVxuQEAgLTQ2NCw5ICs0NzUsMTggQEAgaXdsX212bV91cGRhdGVfbWNjKHN0cnVjdCBpd2xfbXZtICptdm0sIGNvbnN0IGNoYXIgKmFscGhhMixcbiBcdFx0XHQgICAgICAgSVdMX1VDT0RFX1RMVl9DQVBBX01DQ19VUERBVEVfMTFBWF9TVVBQT1JUKSkge1xuIFx0XHRzdHJ1Y3QgaXdsX21jY191cGRhdGVfcmVzcF92NCAqbWNjX3Jlc3BfdjQgPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuIFxuK1x0XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgcGt0X2xlbiBcdTAwM2Mgc2l6ZW9mKCptY2NfcmVzcF92NCksXG4rXHRcdFx0XHQgXCJNQ0MgdjQgcmVzcG9uc2UgdG9vIHNob3J0OiAldVxcblwiLCBwa3RfbGVuKSkge1xuK1x0XHRcdHJlc3BfY3AgPSBFUlJfUFRSKC1FSU5WQUwpO1xuK1x0XHRcdGdvdG8gZXhpdDtcbitcdFx0fVxuK1xuIFx0XHRuX2NoYW5uZWxzID0gIF9fbGUzMl90b19jcHUobWNjX3Jlc3BfdjQtXHUwMDNlbl9jaGFubmVscyk7XG4tXHRcdGlmIChpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkgIT1cbi1cdFx0ICAgIHN0cnVjdF9zaXplKG1jY19yZXNwX3Y0LCBjaGFubmVscywgbl9jaGFubmVscykpIHtcbitcdFx0aWYgKElXTF9GV19DSEVDSyhtdm0sXG4rXHRcdFx0XHQgcGt0X2xlbiAhPVxuK1x0XHRcdFx0IHN0cnVjdF9zaXplKG1jY19yZXNwX3Y0LCBjaGFubmVscywgbl9jaGFubmVscyksXG4rXHRcdFx0XHQgXCJpbnZhbGlkIE1DQyB2NCByZXNwb25zZSBzaXplOiAldSAobl9jaGFubmVscz0lZClcXG5cIixcbitcdFx0XHRcdCBwa3RfbGVuLCBuX2NoYW5uZWxzKSkge1xuIFx0XHRcdHJlc3BfY3AgPSBFUlJfUFRSKC1FSU5WQUwpO1xuIFx0XHRcdGdvdG8gZXhpdDtcbiBcdFx0fVxuQEAgLTQ4OSw5ICs1MDksMTggQEAgaXdsX212bV91cGRhdGVfbWNjKHN0cnVjdCBpd2xfbXZtICptdm0sIGNvbnN0IGNoYXIgKmFscGhhMixcbiBcdH0gZWxzZSB7XG4gXHRcdHN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3YzICptY2NfcmVzcF92MyA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG4gXG4rXHRcdGlmIChJV0xfRldfQ0hFQ0sobXZtLCBwa3RfbGVuIFx1MDAzYyBzaXplb2YoKm1jY19yZXNwX3YzKSxcbitcdFx0XHRcdCBcIk1DQyB2MyByZXNwb25zZSB0b28gc2hvcnQ6ICV1XFxuXCIsIHBrdF9sZW4pKSB7XG4rXHRcdFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XG4rXHRcdFx0Z290byBleGl0O1xuK1x0XHR9XG4rXG4gXHRcdG5fY2hhbm5lbHMgPSAgX19sZTMyX3RvX2NwdShtY2NfcmVzcF92My1cdTAwM2VuX2NoYW5uZWxzKTtcbi1cdFx0aWYgKGl3bF9yeF9wYWNrZXRfcGF5bG9hZF9sZW4ocGt0KSAhPVxuLVx0XHQgICAgc3RydWN0X3NpemUobWNjX3Jlc3BfdjMsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSkge1xuK1x0XHRpZiAoSVdMX0ZXX0NIRUNLKG12bSxcbitcdFx0XHRcdCBwa3RfbGVuICE9XG4rXHRcdFx0XHQgc3RydWN0X3NpemUobWNjX3Jlc3BfdjMsIGNoYW5uZWxzLCBuX2NoYW5uZWxzKSxcbitcdFx0XHRcdCBcImludmFsaWQgTUNDIHYzIHJlc3BvbnNlIHNpemU6ICV1IChuX2NoYW5uZWxzPSVkKVxcblwiLFxuK1x0XHRcdFx0IHBrdF9sZW4sIG5fY2hhbm5lbHMpKSB7XG4gXHRcdFx0cmVzcF9jcCA9IEVSUl9QVFIoLUVJTlZBTCk7XG4gXHRcdFx0Z290byBleGl0O1xuIFx0XHR9XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMtZncuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmNcbmluZGV4IDg5YWM0YzZiM2U1NDNkLi5lMjM4MmJlOGVkZDc4ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmNcbkBAIC0xLDcgKzEsNyBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxuIC8qXG4gICogQ29weXJpZ2h0IChDKSAyMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkhcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDI2IEludGVsIENvcnBvcmF0aW9uXG4gICovXG4gI2luY2x1ZGUgXCJycy5oXCJcbiAjaW5jbHVkZSBcImZ3LWFwaS5oXCJcbkBAIC00MjMsOSArNDIzLDE0IEBAIHZvaWQgaXdsX212bV90bGNfdXBkYXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gXHRzdHJ1Y3QgaXdsX2xxX3N0YV9yc19mdyAqbHFfc3RhO1xuIFx0dTMyIGZsYWdzO1xuIFxuK1x0bm90aWYgPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuK1x0aWYgKElXTF9GV19DSEVDSyhtdm0sIG5vdGlmLVx1MDAzZXN0YV9pZCBcdTAwM2U9IG12bS1cdTAwM2Vmdy1cdTAwM2V1Y29kZV9jYXBhLm51bV9zdGF0aW9ucyxcbitcdFx0XHQgXCJJbnZhbGlkIHN0YSBpZCAoJWQpIGluIFRMQyBub3RpZmljYXRpb25cXG5cIixcbitcdFx0XHQgbm90aWYtXHUwMDNlc3RhX2lkKSlcbitcdFx0cmV0dXJuO1xuK1xuIFx0cmN1X3JlYWRfbG9jaygpO1xuIFxuLVx0bm90aWYgPSAodm9pZCAqKXBrdC1cdTAwM2VkYXRhO1xuIFx0bGlua19zdGEgPSByY3VfZGVyZWZlcmVuY2UobXZtLVx1MDAzZWZ3X2lkX3RvX2xpbmtfc3RhW25vdGlmLVx1MDAzZXN0YV9pZF0pO1xuIFx0c3RhID0gcmN1X2RlcmVmZXJlbmNlKG12bS1cdTAwM2Vmd19pZF90b19tYWNfaWRbbm90aWYtXHUwMDNlc3RhX2lkXSk7XG4gXHRpZiAoSVNfRVJSX09SX05VTEwoc3RhKSB8fCAhbGlua19zdGEpIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9yeC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguY1xuaW5kZXggMjY5YzRiNDVkZTgwNzguLmFiMWViMmViMGMzY2RmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguY1xuQEAgLTEyMjcsNiArMTIyNywxMSBAQCB2b2lkIGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuIFx0XHQvKiBnZXQgdGhlIHN0YXRpb24gKi9cbiBcdFx0c3RhX2lkID0gKHJhdGlkIFx1MDAyNiBCQV9XSU5ET1dfU1RBVFVTX1NUQV9JRF9NU0spXG4gXHRcdFx0IFx1MDAzZVx1MDAzZSBCQV9XSU5ET1dfU1RBVFVTX1NUQV9JRF9QT1M7XG4rXHRcdGlmIChJV0xfRldfQ0hFQ0sobXZtLFxuK1x0XHRcdFx0IHN0YV9pZCBcdTAwM2U9IG12bS1cdTAwM2Vmdy1cdTAwM2V1Y29kZV9jYXBhLm51bV9zdGF0aW9ucyxcbitcdFx0XHRcdCBcIkludmFsaWQgc3RhIGlkICglZCkgaW4gQkEgd2luZG93IHN0YXR1cyBub3RpZmljYXRpb25cXG5cIixcbitcdFx0XHRcdCBzdGFfaWQpKVxuK1x0XHRcdGNvbnRpbnVlO1xuIFx0XHRzdGEgPSByY3VfZGVyZWZlcmVuY2UobXZtLVx1MDAzZWZ3X2lkX3RvX21hY19pZFtzdGFfaWRdKTtcbiBcdFx0aWYgKElTX0VSUl9PUl9OVUxMKHN0YSkpXG4gXHRcdFx0Y29udGludWU7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vc2Nhbi5jXG5pbmRleCA3OTgyOWY3NzVjODliZi4uMzgzMWIzYzI3ZTBmMzcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uY1xuQEAgLTEsNiArMSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNCwgMjAxOC0yMDI1IEludGVsIENvcnBvcmF0aW9uXG4rICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTQsIDIwMTgtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEludGVsIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBHbWJIXG4gICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgSW50ZWwgRGV1dHNjaGxhbmQgR21iSFxuICAqL1xuQEAgLTMxNDQsOCArMzE0NCw2IEBAIGludCBpd2xfbXZtX3NjaGVkX3NjYW5fc3RhcnQoc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcdGlmIChyZXQpXG4gXHRcdHJldHVybiByZXQ7XG4gXG4tXHRpd2xfbXZtX2J1aWxkX3NjYW5fcHJvYmUobXZtLCB2aWYsIGllcywgXHUwMDI2cGFyYW1zKTtcbi1cbiBcdC8qIGZvciA2IEdIWiBiYW5kIG9ubHkgUFNDIGNoYW5uZWxzIG5lZWQgdG8gYmUgYWRkZWQgKi9cbiBcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHBhcmFtcy5uX2NoYW5uZWxzOyBpKyspIHtcbiBcdFx0c3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFubmVsID0gcGFyYW1zLmNoYW5uZWxzW2ldO1xuQEAgLTMxNzksNiArMzE3Nyw4IEBAIGludCBpd2xfbXZtX3NjaGVkX3NjYW5fc3RhcnQoc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcdFx0Z290byBvdXQ7XG4gXHR9XG4gXG4rXHRpd2xfbXZtX2J1aWxkX3NjYW5fcHJvYmUobXZtLCB2aWYsIGllcywgXHUwMDI2cGFyYW1zKTtcbitcbiBcdHVpZCA9IGl3bF9tdm1fYnVpbGRfc2Nhbl9jbWQobXZtLCB2aWYsIFx1MDAyNmhjbWQsIFx1MDAyNnBhcmFtcywgdHlwZSk7XG4gXHRpZiAodWlkIFx1MDAzYyAwKSB7XG4gXHRcdHJldCA9IHVpZDtcbkBAIC0zMjE3LDYgKzMyMTcsMTAgQEAgdm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxuIFxuIFx0bXZtLVx1MDAzZW1laV9zY2FuX2ZpbHRlci5pc19tZWlfbGltaXRlZF9zY2FuID0gZmFsc2U7XG4gXG4rXHRpZiAoSVdMX0ZXX0NIRUNLKG12bSwgdWlkIFx1MDAzZT0gQVJSQVlfU0laRShtdm0tXHUwMDNlc2Nhbl91aWRfc3RhdHVzKSxcbitcdFx0XHQgXCJGVyByZXBvcnRzIG91dC1vZi1yYW5nZSBzY2FuIFVJRCAlZFxcblwiLCB1aWQpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHRJV0xfREVCVUdfU0NBTihtdm0sXG4gXHRcdCAgICAgICBcIlNjYW4gY29tcGxldGVkOiB1aWQ9JXUgdHlwZT0ldSwgc3RhdHVzPSVzLCBFQlM9JXNcXG5cIixcbiBcdFx0ICAgICAgIHVpZCwgbXZtLVx1MDAzZXNjYW5fdWlkX3N0YXR1c1t1aWRdLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuY1xuaW5kZXggMTY5MmI2ZTc1ZjU3OWQuLjkzYjQ2YzllMjMzM2Q1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmNcbkBAIC05NTEsNiArOTUxLDExIEBAIHZvaWQgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcbiBcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XG4gXHRzdHJ1Y3QgaXdsX212bV92aWYgKm12bXZpZjtcbiBcbitcdGlmIChJV0xfRldfQ0hFQ0sobXZtLCBpZCBcdTAwM2U9IEFSUkFZX1NJWkUobXZtLVx1MDAzZXZpZl9pZF90b19tYWMpLFxuK1x0XHRcdCBcIkludmFsaWQgbWFjX2xpbmtfaWQgKCVkKSBpbiBzZXNzaW9uIHByb3RlY3Qgbm90aWZcXG5cIixcbitcdFx0XHQgaWQpKVxuK1x0XHRyZXR1cm47XG4rXG4gXHRyY3VfcmVhZF9sb2NrKCk7XG4gXG4gXHQvKiBub3RlIHdlIHVzZSBsaW5rIElEID09IE1BQyBJRCAqL1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguY1xuaW5kZXggZmUyNjNjZGMyZTRmNDEuLjQ2MzFlMTFmMmE5NjRkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2dlbjFfMi9yeC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmNcbkBAIC0xLDYgKzEsNiBAQFxuIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxuIC8qXG4tICogQ29weXJpZ2h0IChDKSAyMDAzLTIwMTQsIDIwMTgtMjAyNCBJbnRlbCBDb3Jwb3JhdGlvblxuKyAqIENvcHlyaWdodCAoQykgMjAwMy0yMDE0LCAyMDE4LTIwMjQsIDIwMjYgSW50ZWwgQ29ycG9yYXRpb25cbiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBJbnRlbCBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgR21iSFxuICAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEludGVsIERldXRzY2hsYW5kIEdtYkhcbiAgKi9cbkBAIC0xMjM4LDExICsxMjM4LDE2IEBAIHZvaWQgaXdsX3BjaWVfcnhfZnJlZShzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcbiBcdFx0fVxuIFx0fVxuIFx0a2ZyZWUodHJhbnNfcGNpZS1cdTAwM2VyeF9wb29sKTtcbitcdHRyYW5zX3BjaWUtXHUwMDNlcnhfcG9vbCA9IE5VTEw7XG4gXHRrZnJlZSh0cmFuc19wY2llLVx1MDAzZWdsb2JhbF90YWJsZSk7XG4rXHR0cmFuc19wY2llLVx1MDAzZWdsb2JhbF90YWJsZSA9IE5VTEw7XG4gXHRrZnJlZSh0cmFuc19wY2llLVx1MDAzZXJ4cSk7XG4rXHR0cmFuc19wY2llLVx1MDAzZXJ4cSA9IE5VTEw7XG4gXG4tXHRpZiAodHJhbnNfcGNpZS1cdTAwM2VhbGxvY19wYWdlKVxuK1x0aWYgKHRyYW5zX3BjaWUtXHUwMDNlYWxsb2NfcGFnZSkge1xuIFx0XHRfX2ZyZWVfcGFnZXModHJhbnNfcGNpZS1cdTAwM2VhbGxvY19wYWdlLCB0cmFuc19wY2llLVx1MDAzZXJ4X3BhZ2Vfb3JkZXIpO1xuK1x0XHR0cmFuc19wY2llLVx1MDAzZWFsbG9jX3BhZ2UgPSBOVUxMO1xuK1x0fVxuIH1cbiBcbiBzdGF0aWMgdm9pZCBpd2xfcGNpZV9yeF9tb3ZlX3RvX2FsbG9jYXRvcihzdHJ1Y3QgaXdsX3J4cSAqcnhxLFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTY6NTk6MDUuMjgwNDkyMzg0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU2NTIxNDQ3OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJd2x3aWZpIERyaXZlciBQYXRjaGVzIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggc2VyaWVzIGZvciB0aGUgYGl3bHdpZmlgIGRyaXZlciwgYW5kIGl0IGxvb2tzIGxpa2UgYSB3aG9sZSBidW5jaCBvZiBmaXhlcywgbW9zdGx5IHJlbGF0ZWQgdG8gYm91bmRzIGNoZWNrcyBhbmQgbGVuZ3RoIGNoZWNrcyBpbiB2YXJpb3VzIGZ1bmN0aW9ucyBkZWFsaW5nIHdpdGggZmlybXdhcmUgbm90aWZpY2F0aW9ucyB3aXRoaW4gdGhlIE1WTSBhbmQgTUxEIGNvbXBvbmVudHMuIE15IGluaXRpYWwgdGhvdWdodCBpczogdGhpcyBpcyBhIGRyaXZlciBmb3IgSW50ZWwgV2ktRmkgaGFyZHdhcmUuIFJpZ2h0PyBDYW4gSSBldmVuIHJlYWNoIHRoaXMgdGhpbmcgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSSBuZWVkIHRvIHRoaW5rIGFib3V0IHRoYXQgYmVjYXVzZSBpZiBJIGNhbid0IHJlYWNoIGl0LCBJIHNob3VsZG4ndCBiZSBzcGVuZGluZyB0aW1lIG9uIGl0LCBubz9cblxuSSBpbW1lZGlhdGVseSBydWxlIG91dCBgbWFjODAyMTFfaHdzaW1gIGJlY2F1c2UsIHdlbGwsIHRoYXQncyBub3QgaXdsd2lmaS4gQW5kIEkgZG9uJ3QgdGhpbmsgdGhlcmUncyBhbnkgZGlyZWN0IGl3bHdpZmkgZW11bGF0b3IgdGhhdCBzeXprYWxsZXIsIG9yIGFueSB0b29sLCBmb3IgdGhhdCBtYXR0ZXIsIHdvdWxkIGJlIGFibGUgdG8gbGV2ZXJhZ2UuIFRoZXNlIGRyaXZlcnMgbmVlZCB0aGUgYWN0dWFsIGhhcmR3YXJlLCBvciBhdCBsZWFzdCBhIHJlYWxseSBzb3BoaXN0aWNhdGVkIFBDSSBkZXZpY2UgZW11bGF0b3IsIHJpZ2h0PyBBbmQgSSBrbm93IHN5emthbGxlciAqY2FuKiBmdXp6IHNvbWUgUENJIHN0dWZmLCBidXQgdHlwaWNhbGx5IHRoYXTigJlzIG5vdCB0YXJnZXRlZCBhdCBzcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXJzIHVubGVzcyB0aGVyZeKAmXMgYSBzcGVjaWZpYyBlbXVsYXRvciBvciBpZiBpdCdzIFVTQi5cblxuV2FpdCBhIHNlY29uZOKApiB0aGUgYXV0aG9yIGlzIGBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZWA/ICpUaGF0J3MqIHRoZSBjbHVlISBTeXprYWxsZXIgaXMgZmluZGluZyBidWdzIGhlcmUhIEhvdyBpcyB0aGF0IHBvc3NpYmxlPyBJIGhhdmUgdG8gZmlndXJlIG91dCB0aGUgbWV0aG9kLlxuXG5JcyBpdCB0aHJvdWdoIG1hYzgwMjExPyBObywgYGl3bHdpZmlgIGlzIGEgc3BlY2lmaWMgZHJpdmVyLiBPa2F5LCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgc29tZXRoaW5nIGxpa2UgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgLCBidXQgdGhhdCdzIGZvciBtYWM4MDIxMS4gQWhhISBJdCdzICpyZWNlbnQqIHN1cHBvcnQgZm9yIGZ1enppbmcgV2ktRmkgZHJpdmVycywgcGVyaGFwcyB2aWEgc29tZSB2aXJ0dWFsIFBDSSBvciwgbWF5YmUsIGZ1enppbmcgdGhlIG5ldGxpbmsgaW50ZXJmYWNlIHRvIGBpd2x3aWZpYC4gVGhhdCBzZWVtcyBsaWtlbHksIGdpdmVuIHRoZSBwcmV2YWxlbmNlIG9mIHBhcnNpbmcgZmlybXdhcmUgbm90aWZpY2F0aW9ucywgd2hpY2ggc3VnZ2VzdHMgaW50ZXJhY3Rpb24gd2l0aCB0aGUgZGV2aWNlLlxuXG5UaGVzZSBjaGFuZ2VzIGFyZSBtb3N0bHkgYWJvdXQgcGFyc2luZyBmaXJtd2FyZSBub3RpZmljYXRpb25zOiBgaXdsX212bV9yeF9iZWFjb25fbm90aWZgLCBgaXdsX212bV91cGRhdGVfbWNjYCwgYGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZmAsIGBpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWZgLiBGaXJtd2FyZSBub3RpZmljYXRpb25zIGFyZSAqZnJvbSogdGhlIGRldmljZSwgcmlnaHQ/IEhvdyBjYW4gc3l6a2FsbGVyIGV2ZW4gdHJpZ2dlciB0aG9zZT8gTXkgYmVzdCBndWVzcyBub3cgaXMgdGhhdCBzeXprYWxsZXIgKmZ1enplcyogdGhlIGZpcm13YXJlIGludGVyZmFjZS5cblxuT2theSwgSSBuZWVkIHRvIGNvbmZpcm0gaG93IGl0J3MgYmVpbmcgcmVhY2hlZC4gRG9lcyBzeXprYWxsZXIgaGF2ZSBjb2RlIHRvIGluamVjdCBmaXJtd2FyZSBwYWNrZXRzPyBJIGhhdmUgdG8gdmVyaWZ5IHRoYXQgaXdsd2lmaSBpcywgaW5kZWVkLCBmdXp6YWJsZS4gSSBuZWVkIHRvIGdyZXAgZm9yIGZ1bmN0aW9ucyBsaWtlIGBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZmAgYW5kIGBpd2xfbXZtX3VwZGF0ZV9tY2NgIHRvIHNlZSBpZiB0aGV5IGFyZSByZWFjaGFibGUuXG5cbkJ1dCB0aGUgcHJvbXB0IHNheXM6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4uLiBzaG91bGQgcmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZVwiLiBJZiBpd2x3aWZpICpjYW4ndCogYmUgcmVhY2hlZCBpbiBRRU1VLCB0aGVuIG15IGFuYWx5c2lzIGlzIGJhc2ljYWxseSBkb25lLiBRRU1VIGRvZXNuJ3QgZW11bGF0ZSB0aGVzZSBJbnRlbCBXaS1GaSBjYXJkcy5cblxuTGV0J3MgY2hlY2sgUUVNVSdzIFBDSSBkZXZpY2VzOiBgZTEwMDBgLCBgZTEwMDBlYCwgYGk4MjU1OWVyYCwgYHJ0bDgxMzlgLCBgcGNuZXRgLCBgdmlydGlvLW5ldGAsIGB2bXhuZXQzYCwgYHR1bGlwYCwgYG5lMmtfcGNpYC4gTm8gYGl3bHdpZmlgLlxuXG5Db3VsZCBzeXprYWxsZXIgYmUgZmFraW5nIGl0IHdpdGggc29tZSBraW5kIG9mIHZpcnR1YWwgUENJIGRldmljZT8gU3l6a2FsbGVyIGhhcyBgc3l6X3VzYl9jb25uZWN0YCBmb3IgVVNCLCBgc3l6XzgwMjExXy4uLmAgZm9yIG1hYzgwMjExX2h3c2ltLCBhbmQgaGFzIGBzeXpfZ2VuZXRsaW5rX2dldF9mYW1pbHlfaWRgIGV0Yy4uLiBUaGlzIHN1Z2dlc3RzIGEgbmV0bGluayBpbnRlcmZhY2UuXG5cblVsdGltYXRlbHksIEkgbmVlZCB0byBkaWcgaW50byBob3cgc3l6a2FsbGVyIGlzIHJlYWNoaW5nIGBpd2x3aWZpYC4gQnV0IHRoZSBwcm9tcHQgc2VlbXMgdG8gYmUgcG9pbnRpbmcgbWUgdG93YXJkcyBcImNhbid0IHJlYWNoIGl0ID0gV29ydGhGdXp6aW5nPWZhbHNlXCIuIEFuZCBJJ20gcHJldHR5IHN1cmUgUUVNVSBjYW4ndCBlbXVsYXRlIHRoaXMuXG5TbyBJIHdvdWxkIHJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UsIHVubGVzcyBJIGZpbmQgc29tZSBldmlkZW5jZSB0aGF0IHN5emthbGxlciBpcyB1c2luZyBhIGNsZXZlciB0cmljayB0byBlbXVsYXRlL3JlYWNoIHRoZSBpd2x3aWZpIGRyaXZlci5cbkkgd2lsbCBzZWFyY2ggdGhlIGtlcm5lbCB0cmVlIGZvciBhbnkgaXdsd2lmaSBmdXp6aW5nIG9yIHRlc3QgbW9kdWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDEyMCwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNDgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNjo1OToyMC45MzI2NDA4MTNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODA2OTIyODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bHdpZmlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwidG9vbHMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcInRvb2xzL3BlcmYvRG9jdW1lbnRhdGlvbi9wZXJmLXRyYWNlLnR4dD0zNDI9d2l0aCBhIGJhY2t0cmFjZSBvZiBhdCBtb3N0IDE2IGVudHJpZXMsIHN5c3RlbSB3aWRlOlxcbi0tXFxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtdHJhY2UudHh0LTM0Ni0gICAgIDAuMDE1IHJjdV9zY2hlZC8xMCBzY2hlZDpzY2hlZF9zd2l0Y2g6cmN1X3NjaGVkOjEwIFsxMjBdIFIgPT1cXHUwMDNlIHN3YXBwZXIvMjowIFsxMjBdXFxudG9vbHMvcGVyZi9Eb2N1bWVudGF0aW9uL3BlcmYtdHJhY2UudHh0OjM0NzogICAyNTQuMTk4IGlycS81MC1pd2x3aWZpLzY4MCBuZXQ6bmV0X2Rldl9xdWV1ZTpkZXY9d2xwM3MwIHNrYmFkZHI9MHhmZmZmOTM0OTgwNTFmNjAwIGxlbj02NlxcbnRvb2xzL3BlcmYvRG9jdW1lbnRhdGlvbi9wZXJmLXRyYWNlLnR4dC0zNDgtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kZXZfcXVldWVfeG1pdCAoW2tlcm5lbC5rYWxsc3ltc10pXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE2OjU5OjIxLjczOTU2OTg0NFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMTc5NzA1NjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgaG93IEknZCBhcHByb2FjaCB0aGF0IGtlcm5lbCBQQ0kgZnV6emluZyB0aG91Z2h0LCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBQQ0kgRnV6emluZyBpbiB0aGUgS2VybmVsKipcblxuQWxyaWdodCwgbXkgYnJhaW4ganVzdCBwaW5nZWQgb24gUENJIGZ1enppbmcgcG9zc2liaWxpdGllcyB3aXRoaW4gdGhlIGtlcm5lbC4gQmVmb3JlIEkgZ2V0IHRvbyBkZWVwIGludG8gYW55dGhpbmcsIEkgbmVlZCB0byBnZXQgYSBsYXkgb2YgdGhlIGxhbmQuIFRoZSBmaXJzdCBzdGVwIGlzIHRvIHF1aWNrbHkgYXNzZXNzIGlmIGFueW9uZSBoYXMgYWxyZWFkeSBpbnZlc3RpZ2F0ZWQgYW5kIGltcGxlbWVudGVkIGZ1enppbmcgc3RyYXRlZ2llcyBhcm91bmQgdGhlIFBDSSBzdWJzeXN0ZW0gd2l0aGluIHRoZSBrZXJuZWwuIEkgbmVlZCB0byBzZWUgd2hhdCdzIGN1cnJlbnRseSBrbm93biwgd2hhdCB0b29scyBhcmUgYmVpbmcgdXNlZCwgd2hhdCB0aGUgdHlwaWNhbCBhcHByb2FjaGVzIGFyZSwgYW5kIGlmIGFueSB2dWxuZXJhYmlsaXRpZXMgaGF2ZSBhbHJlYWR5IGJlZW4gdW5lYXJ0aGVkIHRoaXMgd2F5LiBUaGlzIHF1aWNrIGNoZWNrIHdpbGwgZ3VpZGUgbXkgbmV4dCBzdGVwcy4gQXJlIHRoZXJlIGV4aXN0aW5nIGZ1enppbmcgZnJhbWV3b3JrcyBvciBjdXN0b20gc29sdXRpb25zIGluIHBsYXk/IEFyZSB0aGVyZSBrbm93biB0YXJnZXQgYXJlYXMgd2l0aGluIHRoZSBrZXJuZWwncyBQQ0kgY29kZSB0aGF0IGFyZSBhdHRyYWN0aW5nIHRoZSBtb3N0IGF0dGVudGlvbj8gS25vd2luZyB0aGlzIGZvdW5kYXRpb24gd291bGQgYWxsb3cgbWUgdG8ga25vdyB3aGVyZSB0byBzdGFydCBhbmQgbm90IHdhc3RlIHRpbWUgcmUtdHJlYWRpbmcgcHJldmlvdXNseSBleHBsb3JlZCB0ZXJyaXRvcmllcy4gVGltZSBpcyBmaW5pdGUsIGVzcGVjaWFsbHkgaW4ga2VybmVsLWxhbmQhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyNjQ0LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTY6NTk6MjUuMDU3NTQzMDM4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNzk3ODI5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpd2x3aWZpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTUxNSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTI9Y29uZmlnIElXTFdJRklcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MzpcXHR0cmlzdGF0ZSBcXFwiSW50ZWwgV2lyZWxlc3MgV2lGaSBOZXh0IEdlbiBBR04gLSBXaXJlbGVzcy1OL0FkdmFuY2VkLU4vVWx0aW1hdGUtTiAoaXdsd2lmaSkgXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT01FTSBcXHUwMDI2XFx1MDAyNiBDRkc4MDIxMVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzozNTpcXHQgICAgICAgICAgXFx1MDAzY2h0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL0RyaXZlcnMvaXdsd2lmaVxcdTAwM2UuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTM2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTQ0LVxcdCAgc2F5IE0gaGVyZSBhbmQgcmVhZCBcXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL2tidWlsZC9tb2R1bGVzLnJzdFxcdTAwM2UuICBUaGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NDU6XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaXdsd2lmaS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNDYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NDk9Y29uZmlnIElXTFdJRklfS1VOSVRfVEVTVFNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01My1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjU0OlxcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIGZvciBpd2x3aWZpIGt1bml0IHRlc3RzLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz02Nj1jb25maWcgSVdMRFZNXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNzEtXFx0ICBvZiB0aGUgZGV2aWNlcyB0aGF0IHVzZSB0aGlzIGZpcm13YXJlIGlzIGF2YWlsYWJsZSBoZXJlOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo3MjpcXHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL2RyaXZlcnMvaXdsd2lmaSNmaXJtd2FyZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy03My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NzQ9Y29uZmlnIElXTE1WTVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTgxLVxcdCAgb2YgdGhlIGRldmljZXMgdGhhdCB1c2UgdGhpcyBmaXJtd2FyZSBpcyBhdmFpbGFibGUgaGVyZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6ODI6XFx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9kcml2ZXJzL2l3bHdpZmkjZmlybXdhcmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTg0PWNvbmZpZyBJV0xNTERcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy05MS1cXHQgIFRoZSBsaXN0IG9mIHRoZSBkZXZpY2VzIHRoYXQgdXNlIHRoaXMgZmlybXdhcmUgaXMgYXZhaWxhYmxlIGhlcmU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjkyOlxcdCAgaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvZHJpdmVycy9pd2x3aWZpI2Zpcm13YXJlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTk1PWNvbmZpZyBJV0xXSUZJX09QTU9ERV9NT0RVTEFSXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMDI6Y29tbWVudCBcXFwiV0FSTklORzogaXdsd2lmaSBpcyB1c2VsZXNzIHdpdGhvdXQgSVdMRFZNIG9yIElXTE1WTSBvciBJV0xNTERcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwMy1cXHRkZXBlbmRzIG9uIElXTERWTT1uIFxcdTAwMjZcXHUwMDI2IElXTE1WTT1uIFxcdTAwMjZcXHUwMDI2IElXTE1MRD1uXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTA3PWNvbmZpZyBJV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEwODpcXHRib29sIFxcXCJFbmFibGUgZnVsbCBkZWJ1Z2dpbmcgb3V0cHV0IGluIHRoZSBpd2x3aWZpIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTA5LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTEwOlxcdCAgVGhpcyBvcHRpb24gd2lsbCBlbmFibGUgZGVidWcgdHJhY2luZyBvdXRwdXQgZm9yIHRoZSBpd2x3aWZpIGRyaXZlcnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTExLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTE2OlxcdFxcdC9zeXMvbW9kdWxlL2l3bHdpZmkvcGFyYW1ldGVycy9kZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMjI6XFx0XFx0ICAlIGVjaG8gMHg0M2ZmZiBcXHUwMDNlIC9zeXMvbW9kdWxlL2l3bHdpZmkvcGFyYW1ldGVycy9kZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyNC1cXHQgIFlvdSBjYW4gZmluZCB0aGUgbGlzdCBvZiBkZWJ1ZyBtYXNrIHZhbHVlcyBpbjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTI1OlxcdFxcdCAgZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtZGVidWcuaFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTMxPWNvbmZpZyBJV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTMyOlxcdGJvb2wgXFxcIml3bHdpZmkgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzMtXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzNC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzNTpcXHQgIEVuYWJsZSBjcmVhdGlvbiBvZiBkZWJ1Z2ZzIGZpbGVzIGZvciB0aGUgaXdsd2lmaSBkcml2ZXJzLiBUaGlzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzNi1cXHQgIGlzIGEgbG93LWltcGFjdCBvcHRpb24gdGhhdCBhbGxvd3MgZ2V0dGluZyBpbnNpZ2h0IGludG8gdGhlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTM5PWNvbmZpZyBJV0xXSUZJX0RFVklDRV9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjE0MDpcXHRib29sIFxcXCJpd2x3aWZpIGRldmljZSBhY2Nlc3MgdHJhY2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTQxLVxcdGRlcGVuZHMgb24gRVZFTlRfVFJBQ0lOR1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0NC1cXHQgIFNheSBZIGhlcmUgdG8gdHJhY2UgYWxsIGNvbW1hbmRzLCBpbmNsdWRpbmcgVFggZnJhbWVzIGFuZCBJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxNDU6XFx0ICBhY2Nlc3Nlcywgc2VudCB0byB0aGUgZGV2aWNlLiBJZiB5b3Ugc2F5IHllcywgaXdsd2lmaSB3aWxsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0Ni1cXHQgIHJlZ2lzdGVyIHdpdGggdGhlIGZ0cmFjZSBmcmFtZXdvcmsgZm9yIGV2ZW50IHRyYWNpbmcgYW5kIGR1bXBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMi0jIGNvbW1vblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMV0lGSSlcXHQrPSBpd2x3aWZpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQ6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjU6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWRydi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo2Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGl3bC1kZWJ1Zy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo3Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGl3bC1udm0tdXRpbHMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6ODppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtdXRpbHMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6OTppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtcGh5LWRiLm8gaXdsLW52bS1wYXJzZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTExLSMgQnVzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxMjppd2x3aWZpLW9ianNcXHRcXHQrPSBwY2llL2N0eHQtaW5mby5vIHBjaWUvY3R4dC1pbmZvLXYyLm8gcGNpZS9kcnYubyBwY2llL3V0aWxzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjEzOml3bHdpZmktb2Jqc1xcdFxcdCs9IHBjaWUvZ2VuMV8yL3J4Lm8gcGNpZS9nZW4xXzIvdHgubyBwY2llL2dlbjFfMi90cmFucy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxNDppd2x3aWZpLW9ianNcXHRcXHQrPSBwY2llL2dlbjFfMi90cmFucy1nZW4yLm8gcGNpZS9nZW4xXzIvdHgtZ2VuMi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlPTE2PUNGTEFHU19wY2llL2Rydi5vICs9IC1Xbm8tb3ZlcnJpZGUtaW5pdFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xOC0jIGNvbWJpbmVkIE1BQy9SRiBjb25maWd1cmF0aW9uc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTk6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICs9IGNmZy8xMDAwLm8gY2ZnLzIwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjA6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICs9IGNmZy81MDAwLm8gY2ZnLzYwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjE6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy83MDAwLm8gY2ZnLzgwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMjItIyBNQUMgY29uZmlndXJhdGlvbnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjIzOml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvOTAwMC5vIGNmZy8yMjAwMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNDppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnL2F4MjEwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI1Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvYnoubyBjZmcvc2Mub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjY6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICs9IGNmZy9iei5vIGNmZy9zYy5vIGNmZy9kci5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yNy0jIFJGIGNvbmZpZ3VyYXRpb25zXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyODppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnL3JmLWpmLm8gY2ZnL3JmLWhyLm8gY2ZnL3JmLWdmLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI5Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSArPSBjZmcvcmYtZm0ubyBjZmcvcmYtd2gubyBjZmcvcmYtcGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozMTppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtZGJnLXRsdi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozMjppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtdHJhbnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNDppd2x3aWZpLW9ianNcXHRcXHQrPSBmdy9pbWcubyBmdy9ub3RpZi13YWl0Lm8gZncvcnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzU6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gZncvZGJnLm8gZncvZGJnLW9sZC5vIGZ3L3Budm0ubyBmdy9kdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM2Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGZ3L3JlZ3VsYXRvcnkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzc6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGZ3L3BhZ2luZy5vIGZ3L3NtZW0ubyBmdy9pbml0Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM4Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSArPSBmdy9zbWVtLm8gZncvaW5pdC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozOTppd2x3aWZpLSQoQ09ORklHX0FDUEkpICs9IGZ3L2FjcGkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDA6aXdsd2lmaS0kKENPTkZJR19FRkkpXFx0Kz0gZncvdWVmaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0MTppd2x3aWZpLSQoQ09ORklHX0lXTFdJRklfREVCVUdGUykgKz0gZncvZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQzOml3bHdpZmktb2JqcyArPSAkKGl3bHdpZmktbSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDU6aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKSArPSBpd2wtZGV2dHJhY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jOjI1OiNkZWZpbmUgSVdMMTAwMF9GV19QUkUgXFxcIml3bHdpZmktMTAwMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjYtI2RlZmluZSBJV0wxMDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDEwMDBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYzoyODojZGVmaW5lIElXTDEwMF9GV19QUkUgXFxcIml3bHdpZmktMTAwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYy0yOS0jZGVmaW5lIElXTDEwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wxMDBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jOjMxOiNkZWZpbmUgSVdMMjAzMF9GV19QUkUgXFxcIml3bHdpZmktMjAzMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzItI2RlZmluZSBJV0wyMDMwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDIwMzBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYzozNDojZGVmaW5lIElXTDIwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTIwMDBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTM1LSNkZWZpbmUgSVdMMjAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wyMDAwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6Mzc6I2RlZmluZSBJV0wxMDVfRldfUFJFIFxcXCJpd2x3aWZpLTEwNVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzgtI2RlZmluZSBJV0wxMDVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTA1X0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6NDA6I2RlZmluZSBJV0wxMzVfRldfUFJFIFxcXCJpd2x3aWZpLTEzNVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtNDEtI2RlZmluZSBJV0wxMzVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTM1X0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jOjE4OiNkZWZpbmUgSVdMX0NDX0FfRldfUFJFXFx0XFx0XFx0XFxcIml3bHdpZmktY2MtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoxOTojZGVmaW5lIElXTF9RVV9CX0hSX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktUXUtYjAtaHItYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoyMDojZGVmaW5lIElXTF9RVV9DX0hSX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktUXUtYzAtaHItYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoyMTojZGVmaW5lIElXTF9RVVpfQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLVF1Wi1hMC1oci1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jLTIyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jLTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYzoyNzojZGVmaW5lIElXTDUwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTUwMDBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jLTI4LSNkZWZpbmUgSVdMNTAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w1MDAwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0yOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmM6MzA6I2RlZmluZSBJV0w1MTUwX0ZXX1BSRSBcXFwiaXdsd2lmaS01MTUwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0zMS0jZGVmaW5lIElXTDUxNTBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNTE1MF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDA6I2RlZmluZSBJV0w2MDAwX0ZXX1BSRSBcXFwiaXdsd2lmaS02MDAwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00MS0jZGVmaW5lIElXTDYwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjAwMF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jOjQzOiNkZWZpbmUgSVdMNjA1MF9GV19QUkUgXFxcIml3bHdpZmktNjA1MFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDQtI2RlZmluZSBJV0w2MDUwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDYwNTBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYzo0NjojZGVmaW5lIElXTDYwMDVfRldfUFJFIFxcXCJpd2x3aWZpLTYwMDBnMmFcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ3LSNkZWZpbmUgSVdMNjAwNV9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w2MDA1X0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDk6I2RlZmluZSBJV0w2MDMwX0ZXX1BSRSBcXFwiaXdsd2lmaS02MDAwZzJiXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy01MC0jZGVmaW5lIElXTDYwMzBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjAzMF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6Mzc6I2RlZmluZSBJV0w3MjYwX0ZXX1BSRSBcXFwiaXdsd2lmaS03MjYwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy0zOC0jZGVmaW5lIElXTDcyNjBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNzI2MF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQwOiNkZWZpbmUgSVdMMzE2MF9GV19QUkUgXFxcIml3bHdpZmktMzE2MFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDEtI2RlZmluZSBJV0wzMTYwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDMxNjBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzo0MzojZGVmaW5lIElXTDMxNjhfRldfUFJFIFxcXCJpd2x3aWZpLTMxNjhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQ0LSNkZWZpbmUgSVdMMzE2OF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wzMTY4X0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6NDY6I2RlZmluZSBJV0w3MjY1X0ZXX1BSRSBcXFwiaXdsd2lmaS03MjY1XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00Ny0jZGVmaW5lIElXTDcyNjVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNzI2NV9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQ5OiNkZWZpbmUgSVdMNzI2NURfRldfUFJFIFxcXCJpd2x3aWZpLTcyNjVEXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy01MC0jZGVmaW5lIElXTDcyNjVEX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDcyNjVEX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYzozMDojZGVmaW5lIElXTDgwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTgwMDBDXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0zMS0jZGVmaW5lIElXTDgwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYzozNDojZGVmaW5lIElXTDgyNjVfRldfUFJFIFxcXCJpd2x3aWZpLTgyNjVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTM1LSNkZWZpbmUgSVdMODI2NV9NT0RVTEVfRklSTVdBUkUoYXBpKSBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy85MDAwLmMtMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jOjIyOiNkZWZpbmUgIElXTDkwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTkwMDAtcHUtYjAtamYtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jOjIzOiNkZWZpbmUgIElXTDkyNjBfRldfUFJFIFxcXCJpd2x3aWZpLTkyNjAtdGgtYjAtamYtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jLTI0LSNkZWZpbmUgSVdMOTAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MTg6I2RlZmluZSBJV0xfU09fQV9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNvLWEwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MTk6I2RlZmluZSBJV0xfVFlfQV9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXR5LWEwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjA6I2RlZmluZSBJV0xfTUFfQV9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWEwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjE6I2RlZmluZSBJV0xfTUFfQl9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWIwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjI6I2RlZmluZSBJV0xfU09fQV9HRjRfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zby1hMC1nZjQtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyMzojZGVmaW5lIElXTF9NQV9BX0dGNF9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWEwLWdmNC1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI0OiNkZWZpbmUgSVdMX01BX0JfR0Y0X0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktbWEtYjAtZ2Y0LWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjU6I2RlZmluZSBJV0xfU09fQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNvLWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjY6I2RlZmluZSBJV0xfTUFfQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6Mjc6I2RlZmluZSBJV0xfTUFfQl9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWIwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmMtMjgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MTg6I2RlZmluZSBJV0xfQlpfQV9GTV9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWZtLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MTk6I2RlZmluZSBJV0xfQlpfQV9GTV9DX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWZtLWMwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MjA6I2RlZmluZSBJV0xfQlpfQV9GTTRfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1iei1hMC1mbTQtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoyMTojZGVmaW5lIElXTF9HTF9CX0ZNX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktZ2wtYjAtZm0tYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoyMjojZGVmaW5lIElXTF9HTF9DX0ZNX0NfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktZ2wtYzAtZm0tYzBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYy0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2RyLmMtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvZHIuYzoxNzojZGVmaW5lIElXTF9EUl9BX1BFX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktZHItYTAtcGUtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvZHIuYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmMtMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNDojZGVmaW5lIElXTF9CWl9BX0dGX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktYnotYTAtZ2YtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNTojZGVmaW5lIElXTF9CWl9BX0dGNF9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWdmNC1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jOjE2OiNkZWZpbmUgSVdMX1NDX0FfR0ZfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zYy1hMC1nZi1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jOjE3OiNkZWZpbmUgSVdMX1NDX0FfR0Y0X0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtZ2Y0LWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmMtMTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTQ6I2RlZmluZSBJV0xfQlpfQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTU6I2RlZmluZSBJV0xfU0NfQV9IUl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjLWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTY6I2RlZmluZSBJV0xfU0NfQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjLWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmMtMTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTQ6I2RlZmluZSBJV0xfUVVfQl9KRl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLVF1LWIwLWpmLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTU6I2RlZmluZSBJV0xfUVVfQ19KRl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLVF1LWMwLWpmLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTY6I2RlZmluZSBJV0xfUVVaX0FfSkZfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1RdVotYTAtamYtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYzoxNzojZGVmaW5lIElXTF9TT19BX0pGX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc28tYTAtamYtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmMtMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoxODojZGVmaW5lIElXTF9TQ19BX0ZNX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtZm0tYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoxOTojZGVmaW5lIElXTF9TQ19BX0ZNX0NfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtZm0tYzBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoyMDojZGVmaW5lIElXTF9TQ19BX1dIX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtd2gtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoyMTojZGVmaW5lIElXTF9TQzJfQV9GTV9DX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjMi1hMC1mbS1jMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jOjIyOiNkZWZpbmUgSVdMX1NDMl9BX1dIX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MyLWEwLXdoLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmMtMjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjI2Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfZndfcmVzdGFydF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjY2LVxcdHN0cnVjdCBpd2xfcHJpdiAqcHJpdiA9IGZpbGUtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjI2NzpcXHRib29sIGZ3X3Jlc3RhcnQgPSBpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI2OC1cXHRpbnQgX19tYXliZV91bnVzZWQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjcwOlxcdGl3bHdpZmlfbW9kX3BhcmFtcy5md19yZXN0YXJ0ID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjc5OlxcdGl3bHdpZmlfbW9kX3BhcmFtcy5md19yZXN0YXJ0ID0gZndfcmVzdGFydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI4MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzEzPXZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzODE6XFx0XFx0ZGVidWdmc19jcmVhdGVfc3ltbGluayhcXFwiaXdsd2lmaVxcXCIsIG1hYzgwMjExX2RpciwgYnVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM4Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaD0yMTA9c3RydWN0IGl3bF9zZW5zaXRpdml0eV9yYW5nZXMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtMjQ0LSAqIE5hbWluZyBjb252ZW50aW9uIC0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6MjQ1OiAqIGl3bF8gICAgICAgICBcXHUwMDNjLS0gSXMgcGFydCBvZiBpd2x3aWZpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtMjQ2LSAqIGl3bFhYWFhfICAgICBcXHUwMDNjLS0gSGFyZHdhcmUgc3BlY2lmaWMgKGltcGxlbWVudGVkIGluIGl3bC1YWFhYLmMgZm9yIFhYWFgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYz0xMDU5PWl3bF9wYXJzZV9lZXByb21fZGF0YShzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucywgY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgKmNmZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2VlcHJvbS5jLTExMTgtXFx0ZGF0YS1cXHUwMDNlc2t1X2NhcF9pcGFuX2VuYWJsZSA9IHNrdSBcXHUwMDI2IEVFUFJPTV9TS1VfQ0FQX0lQQU5fRU5BQkxFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2VlcHJvbS5jOjExMTk6XFx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5kaXNhYmxlXzExbiBcXHUwMDI2IElXTF9ESVNBQkxFX0hUX0FMTClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYy0xMTIwLVxcdFxcdGRhdGEtXFx1MDAzZXNrdV9jYXBfMTFuX2VuYWJsZSA9IGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmM9MTU1PXZvaWQgaXdsX2xlZHNfaW5pdChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmMtMTU2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuYzoxNTc6XFx0aW50IG1vZGUgPSBpd2x3aWZpX21vZF9wYXJhbXMubGVkX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmMtMTU4LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYz0yMDE9dm9pZCBpd2xhZ25fc2VuZF9hZHZhbmNlX2J0X2NvbmZpZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYy0yNjItXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM6MjYzOlxcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLmJ0X2NvZXhfYWN0aXZlIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmMtMjY0LVxcdCAgICBwcml2LVxcdTAwM2Vpd19tb2RlID09IE5MODAyMTFfSUZUWVBFX0FESE9DKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYz0xMDM0PWludCBpd2xhZ25fc3VzcGVuZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBjZmc4MDIxMV93b3dsYW4gKndvd2xhbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTExMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM6MTEzNjpcXHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTExMzctXFx0XFx0LyogbWFyayBhbGwga2V5cyBjbGVhciAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz03OD1pbnQgaXdsYWduX21hY19zZXR1cF9yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTEyMS1cXHRpZiAocHJpdi1cXHUwMDNlZnctXFx1MDAzZXVjb2RlX2NhcGEuZmxhZ3MgXFx1MDAyNiBJV0xfVUNPREVfVExWX0ZMQUdTX01GUCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTIyOlxcdCAgICAhaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTIzLVxcdFxcdGllZWU4MDIxMV9od19zZXQoaHcsIE1GUF9DQVBBQkxFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTUyLVxcdFxcdFxcdFxcdFxcdCAgICAgV0lQSFlfV09XTEFOX1JGS0lMTF9SRUxFQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTUzOlxcdFxcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTU0LVxcdFxcdFxcdHByaXYtXFx1MDAzZXdvd2xhbl9zdXBwb3J0LmZsYWdzIHw9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE2NzpcXHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX3NhdmUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNjgtXFx0XFx0aHctXFx1MDAzZXdpcGh5LVxcdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX1BTX09OX0JZX0RFRkFVTFQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTMyNT1zdGF0aWMgdm9pZCBpd2xhZ25fbWFjX3NldF9yZWtleV9kYXRhKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0zMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzozMzE6XFx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTMzMi1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTU4OD1zdGF0aWMgaW50IGl3bGFnbl9tYWNfc2V0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTYwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjYwMTpcXHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy02MDItXFx0XFx0SVdMX0RFQlVHX01BQzgwMjExKHByaXYsIFxcXCJsZWF2ZSAtIGh3Y3J5cHRvIGRpc2FibGVkXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0zOTg9c3RhdGljIHZvaWQgaXdsX3ByaW50X2NvbnRfZXZlbnRfdHJhY2Uoc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIgYmFzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00MzQtXFx0XFx0aWYgKG1vZGUgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo0MzU6XFx0XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfY29udF9ldmVudChcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDM2LVxcdFxcdFxcdFxcdFxcdHByaXYtXFx1MDAzZXRyYW5zLVxcdTAwM2VkZXYsIDAsIHRpbWUsIGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00MzgtXFx0XFx0XFx0ZGF0YSA9IGl3bF9yZWFkMzIocHJpdi1cXHUwMDNldHJhbnMsIEhCVVNfVEFSR19NRU1fUkRBVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjQzOTpcXHRcXHRcXHR0cmFjZV9pd2x3aWZpX2Rldl91Y29kZV9jb250X2V2ZW50KFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00NDAtXFx0XFx0XFx0XFx0XFx0cHJpdi1cXHUwMDNldHJhbnMtXFx1MDAzZWRldiwgdGltZSwgZGF0YSwgZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTQ0Nz1zdGF0aWMgdm9pZCBpd2xfY29udGludW91c19ldmVudF90cmFjZShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo1MDQ6XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfd3JhcF9ldmVudChwcml2LVxcdTAwM2V0cmFucy1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy01MDUtXFx0XFx0XFx0XFx0bnVtX3dyYXBzIC0gcHJpdi1cXHUwMDNlZXZlbnRfbG9nLm51bV93cmFwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz03Mzc9c3RhdGljIHZvaWQgaXdsX3NlbmRfYnRfY29uZmlnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy03NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjc0NjpcXHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5idF9jb2V4X2FjdGl2ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNzQ3LVxcdFxcdGJ0X2NtZC5mbGFncyA9IEJUX0NPRVhfRElTQUJMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xMjMzPXN0YXRpYyBzdHJ1Y3QgaXdsX29wX21vZGUgKml3bF9vcF9tb2RlX2R2bV9zdGFydChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMzI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMzI1OlxcdHN3aXRjaCAoaXdsd2lmaV9tb2RfcGFyYW1zLmFtc2R1X3NpemUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMyNi1cXHRjYXNlIElXTF9BTVNEVV9ERUY6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMzNi1cXHRcXHRwcl9lcnIoXFxcIlVuc3VwcG9ydGVkIGFtc2R1X3NpemU6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMzM3OlxcdFxcdCAgICAgICBpd2x3aWZpX21vZF9wYXJhbXMuYW1zZHVfc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTEzMzgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTE2OTg9c3RhdGljIGludCBpd2xfcHJpbnRfZXZlbnRfbG9nKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyIHN0YXJ0X2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xNzQ3LVxcdFxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE3NDg6XFx0XFx0XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfZXZlbnQodHJhbnMtXFx1MDAzZWRldiwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc0OS1cXHRcXHRcXHRcXHRcXHR0aW1lLCBldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc2MS1cXHRcXHRcXHRcXHRcXHR0aW1lLCBkYXRhLCBldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE3NjI6XFx0XFx0XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfZXZlbnQodHJhbnMtXFx1MDAzZWRldiwgdGltZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc2My1cXHRcXHRcXHRcXHRcXHRkYXRhLCBldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9MTkxMj1zdGF0aWMgdm9pZCBpd2xhZ25fZndfZXJyb3Ioc3RydWN0IGl3bF9wcml2ICpwcml2LCBib29sIG9uZGVtYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE5NDUtXFx0aWYgKCF0ZXN0X2JpdChTVEFUVVNfRVhJVF9QRU5ESU5HLCBcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdHVzKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxOTQ2OlxcdFxcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xOTQ3LVxcdFxcdFxcdElXTF9ERUJVR19GVyhwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYz0yNzE9c3RhdGljIHZvaWQgaXdsX3Bvd2VyX2J1aWxkX2NtZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jLTMwMS1cXHRcXHRidXQgd2UgcGFzcyAwLTQgYmVjYXVzZSBpdCBhY3RzIGFzIGFuIGFycmF5IGluZGV4LiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM6MzAyOlxcdFxcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMucG93ZXJfbGV2ZWwgXFx1MDAzZSBJV0xfUE9XRVJfSU5ERVhfMSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM6MzAzOlxcdFxcdCAgICBpd2x3aWZpX21vZF9wYXJhbXMucG93ZXJfbGV2ZWwgXFx1MDAzYz0gSVdMX1BPV0VSX05VTSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jLTMwNC1cXHRcXHRcXHRpd2xfc3RhdGljX3NsZWVwX2NtZChwcml2LCBjbWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYzozMDU6XFx0XFx0XFx0XFx0aXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX2xldmVsIC0gMSwgZHRpbXBlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYy0zMDYtXFx0XFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYz02MDQ9c3RhdGljIHZvaWQgaXdsYWduX3Bhc3NfcGFja2V0X3RvX21hYzgwMjExKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNjIzLVxcdC8qIEluIGNhc2Ugb2YgSFcgYWNjZWxlcmF0ZWQgY3J5cHRvIGFuZCBiYWQgZGVjcnlwdGlvbiwgZHJvcCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6NjI0OlxcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy02MjUtXFx0ICAgIGl3bGFnbl9zZXRfZGVjcnlwdGVkX2ZsYWcocHJpdiwgaGRyLCBhbXBkdV9zdGF0dXMsIHN0YXRzKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYz0xMDIzPWludCBpd2xhZ25fY29tbWl0X3J4b24oc3RydWN0IGl3bF9wcml2ICpwcml2LCBzdHJ1Y3QgaXdsX3J4b25fY29udGV4dCAqY3R4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jLTExMDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jOjExMDM6XFx0aXdsX3NldF9yeG9uX2h3Y3J5cHRvKHByaXYsIGN0eCwgIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0byk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jLTExMDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oPTEzNj1zdHJ1Y3QgaXdsX2Z3X3BhZ2luZyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oLTE0My0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oOjE0NDogKiBlbnVtIGl3bF9md190eXBlIC0gaXdsd2lmaSBmaXJtd2FyZSB0eXBlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaC0xNDUtICogQElXTF9GV19EVk06IERWTSBmaXJtd2FyZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGJnLXRsdi5jPTQ5OT12b2lkIGl3bF9kYmdfdGx2X2xvYWRfYmluKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGl3bF90cmFucyAqdHJhbnMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kYmctdGx2LmMtNTA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYzo1MDU6XFx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuZW5hYmxlX2luaSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYy01MDYtXFx0ICAgIHRyYW5zLVxcdTAwM2VtYWNfY2ZnLVxcdTAwM2VkZXZpY2VfZmFtaWx5IFxcdTAwM2M9IElXTF9ERVZJQ0VfRkFNSUxZXzgwMDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTEzPXZvaWQgX19pd2xfICMjZm4oc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLilcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTIyLVxcdGRldl8gIyNmbihkZXYsIFxcXCIlcFZcXFwiLCBcXHUwMDI2dmFmKTtcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYzoyMzpcXHR0cmFjZV9pd2x3aWZpXyAjI2ZuKFxcdTAwMjZ2YWYpO1xcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTI0LVxcdHZhX2VuZChhcmdzKTtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTM0PXZvaWQgX19pd2xfZXJyKHN0cnVjdCBkZXZpY2UgKmRldiwgZW51bSBpd2xfZXJyX21vZGUgbW9kZSwgY29uc3QgY2hhciAqZm10LCAuLi4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTYwLVxcdHZhZi52YSA9IFxcdTAwMjZhcmdzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM6NjE6XFx0dHJhY2VfaXdsd2lmaV9lcnIoXFx1MDAyNnZhZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02Mi1cXHR2YV9lbmQoYXJncyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTY3PXZvaWQgX19pd2xfZGJnKHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtODItI2VuZGlmXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYzo4MzpcXHR0cmFjZV9pd2x3aWZpX2RiZyhsZXZlbCwgZnVuY3Rpb24sIFxcdTAwMjZ2YWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtODQtXFx0dmFfZW5kKGFyZ3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xNj1zdGF0aWMgaW5saW5lIGJvb2wgaXdsX2hhdmVfZGVidWdfbGV2ZWwodTMyIGxldmVsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xOC0jaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjE5OlxcdHJldHVybiBpd2x3aWZpX21vZF9wYXJhbXMuZGVidWdfbGV2ZWwgXFx1MDAyNiBsZXZlbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTIwLSNlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTEwMj1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEyNi0gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTI3OiAqXFx0L3N5cy9tb2R1bGUvaXdsd2lmaS9wYXJhbWV0ZXJzL2RlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjgtICogd2hlbiBDT05GSUdfSVdMV0lGSV9ERUJVRz15LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI5LSAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMzA6ICpcXHQvc3lzL2tlcm5lbC9kZWJ1Zy9waHkwL2l3bHdpZmkvZGVidWcvZGVidWdfbGV2ZWxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEzMS0gKiB3aGVuIENPTkZJR19JV0xXSUZJX0RFQlVHRlM9eS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0xNC0jdW5kZWYgVFJBQ0VfU1lTVEVNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oOjE1OiNkZWZpbmUgVFJBQ0VfU1lTVEVNIGl3bHdpZmlfZGF0YVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmg6MTc6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfdHhfdGIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oLTE4LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmg6Mzc6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfcnhfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMzgtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNC0jdW5kZWYgVFJBQ0VfU1lTVEVNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDoxNTojZGVmaW5lIFRSQUNFX1NZU1RFTSBpd2x3aWZpX2lvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjE3OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvcmVhZDMyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTgtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MzQ6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW93cml0ZTgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0zNS1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBvZmZzLCB1OCB2YWwpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC01MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjUxOlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGUzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTUyLVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIG9mZnMsIHUzMiB2YWwpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC02Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjY4OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGU2NCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTY5LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IG9mZnMsIHU2NCB2YWwpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC04NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjg1OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGVfcHJwaDMyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtODYtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjEwMjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlX3BycGg2NCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEwMy1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBvZmZzLCB1NjQgdmFsKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTE5OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvcmVhZF9wcnBoMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xMjAtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjEzNjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pcnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xMzctXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTQ5OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lycV9tc2l4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTUwLVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IG1zaXhfZW50cnkgKm1zaXhfZW50cnksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjE3MjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pY3RfcmVhZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE3My1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBpbmRleCwgdTMyIHZhbHVlKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC0xNS0jdW5kZWYgVFJBQ0VfU1lTVEVNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oOjE2OiNkZWZpbmUgVFJBQ0VfU1lTVEVNIGl3bHdpZmlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmgtMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oOjE4OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2hjbWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTE5LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC01MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmg6NTI6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfcngsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTUzLVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC03Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmg6NzM6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTc0LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTY6NTk6MjUuMTg1NTI2OTU4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE4MDQ1MjMxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipQQ0kgRnV6emluZyBUaG91Z2h0cyoqXG5cbk9rYXksIHdhaXQgYSBtaW51dGUuLi4gSSByZWNhbGwgU3l6a2FsbGVyIGhhdmluZyBhIHZpcnR1YWwgUENJIGRldmljZSBmdXp6aW5nIGZyYW1ld29yayEgTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBrZXJuZWwgdHJlZSBhbmQgdGhlIFN5emthbGxlciBzb3VyY2UgZm9yIGFueXRoaW5nIGxpa2UgYHN5el9wY2lfZGV2aWNlYCBvciBzaW1pbGFyLiBIbW0sIG5vLCBpdCBsb29rcyBsaWtlIFN5emthbGxlciBkb2Vzbid0IGhhdmUgYSBzcGVjaWZpYyBgc3l6X3BjaV9kZXZpY2VgIHBzZXVkby1zeXN0ZW0gY2FsbCwgb3IgZXZlbiBhIGBzeXpfcGNpYCBvbmUuIEludGVyZXN0aW5nLi4uIEkgZG8gc2VlIHN0dWZmIGxpa2UgYHN5el9rdm1fc2V0dXBfY3B1YCB0aG91Z2guIEhvbGQgb24sIHdhc24ndCB0aGVyZSBhIHJlY2VudCBhZGRpdGlvbiBmb3IgUENJIGxpa2UgYHN5el9wY2lfLi4uYCBvciBpcyBpdCB1c2luZyBgdmZpb2Agc29tZWhvdz8gQWN0dWFsbHksIEkgcmVtZW1iZXIgc2VlaW5nIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0I7IGRvZXMgaXQgZm9sbG93IHRoZSBzYW1lIHBhdHRlcm4gZm9yIFBDSSwgd2l0aCBhIHBvdGVudGlhbCBgc3l6X3BjaV9jb25uZWN0YD8gSSByZWFsbHkgbmVlZCB0byBjb25maXJtIGlmIHRoZXJlIGFyZSBhbnkgYHN5el9gIGZ1bmN0aW9ucyBkZWRpY2F0ZWQgdG8gUENJIHdpdGhpbiB0aGUgU3l6a2FsbGVyIGVjb3N5c3RlbS5cblxuQWhhISBUaGUgcGF0Y2ggaXMgYXV0aG9yZWQgYnkgYHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlYC4gVGhhdCBtZWFucyBTeXprYWxsZXIgKmRpZCogZmluZCB0aGVzZSBidWdzISBOb3csIGhvdyBkaWQgaXQgbWFuYWdlIHRoYXQ/IE15IG1pbmQgaXMgcmFjaW5nLiBDb3VsZCBpdCBoYXZlIGJlZW4gdGhyb3VnaCBtYWM4MDIxMV9od3NpbT8gTm8sIHRoYXQncyBqdXN0IGEgc29mdHdhcmUgc2ltdWxhdG9yIGZvciBtYWM4MDIxMTsgaXQncyBub3QgZGlyZWN0bHkgcmVsYXRlZCB0byBpd2x3aWZpLiBXYWl0LCBwZXJoYXBzIHRocm91Z2ggbmV0bGluaz8gVGhlIHJlcG9ydGVkIGJ1Z3MgYXJlIGluIGBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZmAsIGBpd2xfbXZtX3VwZGF0ZV9tY2NgLCBgaXdsX212bV90bGNfdXBkYXRlX25vdGlmYCwgYW5kIGBpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWZgLiBUaGVzZSBmdW5jdGlvbnMgYXJlIGFsbCB0cmlnZ2VyZWQgd2hlbiByZWNlaXZpbmcgcGFja2V0cyBmcm9tIHRoZSBmaXJtd2FyZS5cblxuV2FpdCBhIHNlY29uZCEgYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYCBpcyBjYWxsZWQgZnJvbSBgaXdsX212bV9yeF9yeF9tcGR1YCBvciBzb21ldGhpbmcgc2ltaWxhciwgd2hpY2ggZGVhbHMgd2l0aCBSWCBxdWV1ZXMuIEhvdyBleGFjdGx5IGRpZCBTeXprYWxsZXIgaW5qZWN0IHBhY2tldHMgaW50byBpd2x3aWZpJ3MgUlggcXVldWU/IE5vdyBJIG5lZWQgdG8gZGl2ZSBkZWVwZXIgYW5kIGxvb2sgYXQgdGhlIGNhbGxlcnMgb2YgYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYCB0byB1bmRlcnN0YW5kIHRoZSBpbmplY3Rpb24gcGF0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgzMjcsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTY6NTk6MzIuMzY1OTgzMjg2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODAzMDE5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jPTE0NTM9c3RhdGljIHZvaWQgaXdsX212bV9jc2FfY291bnRfZG93bihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYy0xNDkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmM6MTQ5MTp2b2lkIGl3bF9tdm1fcnhfYmVhY29uX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYy0xNDkyLVxcdFxcdFxcdCAgICAgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaD0xOTIwPXZvaWQgaXdsX212bV9tYWNfY3R4dF9zZXRfdGltKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaC0xOTIyLVxcdFxcdFxcdCAgICAgIHU4ICpiZWFjb24sIHUzMiBmcmFtZV9zaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaDoxOTIzOnZvaWQgaXdsX212bV9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaC0xOTI0LVxcdFxcdFxcdCAgICAgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM9MzE3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgaXdsX3J4X2hhbmRsZXJzIGl3bF9tdm1fcnhfaGFuZGxlcnNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTMyOS1cXHRcXHQgICBzdHJ1Y3QgaXdsX2J0X2NvZXhfcHJvZl9vbGRfbm90aWYpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jOjMzMDpcXHRSWF9IQU5ETEVSX05PX1NJWkUoQkVBQ09OX05PVElGSUNBVElPTiwgaXdsX212bV9yeF9iZWFjb25fbm90aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmMtMzMxLVxcdFxcdFxcdCAgIFJYX0hBTkRMRVJfQVNZTkNfTE9DS0VEKSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTY6NTk6MzIuNTA0MDIxMzE1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUxOTE3MDczOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIEZpcm13YXJlIE5vdGlmaWNhdGlvbiBJbmplY3Rpb24qKlxuXG5Pa2F5LCBzbyBgaXdsX212bV9yeF9oYW5kbGVyc2AgY2xlYXJseSBsaW5rcyBgQkVBQ09OX05PVElGSUNBVElPTmAgdG8gYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYC4gVGhhdCdzIGEgZmlybXdhcmUgbm90aWZpY2F0aW9uLCBhbmQgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZG9lcyBzeXprYWxsZXIgZXZlbiAqdHJpZ2dlciogdGhvc2U/IEkga25vdyBzeXprYWxsZXIgcGxheXMgd2l0aCBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyBhIFdpLUZpIHNpbXVsYXRvci4gQnV0IGBpd2x3aWZpYCBpcyBhICpzcGVjaWZpYyogZHJpdmVyLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGVyZSdzIGEgcGF0aCBmb3IgaW5qZWN0aW5nIHRoZXNlIG5vdGlmaWNhdGlvbnMgZGlyZWN0bHkgaW50byB0aGUgYGl3bHdpZmlgIGRyaXZlciBpdHNlbGYuIE15IGludHVpdGlvbiBzYXlzIEkgc2hvdWxkIGxvb2sgZm9yIGEgZGVidWdmcyBvciBhIG5ldGxpbmsgaW50ZXJmYWNlLiBFaXRoZXIgb2YgdGhvc2UgY291bGQgcG90ZW50aWFsbHkgcHJvdmlkZSBhIHdheSB0byBpbmplY3QgY3JhZnRlZCBSWCBwYWNrZXRzLCB3aGljaCBtaWdodCB0aGVuIGJlIGludGVycHJldGVkIGFzIHRoZXNlIGZpcm13YXJlIG5vdGlmaWNhdGlvbnMuIExldCdzIHN0YXJ0IGJ5IGNoZWNraW5nIHRob3NlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTgyNywiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNjo1OTozNi4wMjMxOTQ4ODVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMzM0ODMzMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpbmplY3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0xMTI5PWVudW0gaXdsX3RvZl9pbml0aWF0b3JfZmxhZ3Mge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xMTcwLSAqIEBmdG1fdHhfY2hhaW5zOiBUeCBjaGFpbiB0byBzZW5kIHRoZSBhY2sgdG8gdGhlIFJlc3BvbmRlciBGVE0gKFhWVClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjExNzE6ICogQGNvbW1vbl9jYWxpYjogVGhlIGNvbW1vbiBjYWxpYiB2YWx1ZSB0byBpbmplY3QgdG8gdGhpcyBtZWFzdXJlbWVudCBjYWxjXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxMTcyOiAqIEBzcGVjaWZpY19jYWxpYjogVGhlIHNwZWNpZmljIGNhbGliIHZhbHVlIHRvIGluamVjdCB0byB0aGlzIG1lYXN1cmVtZW50IGNhbGNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTExNzMtICogQGFwOiBwZXItQVAgcmVxdWVzdCBkYXRhXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTExNzU9c3RydWN0IGl3bF90b2ZfcmFuZ2VfcmVxX2NtZF92NSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTEyMDktICpcXHRUU0Ygb2YgdGhpcyBtYWMgaWQuIDB4ZmYgdG8gZGlzYWJsZSBUU0YgcmVwb3J0aW5nLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MTIxMDogKiBAY29tbW9uX2NhbGliOiBUaGUgY29tbW9uIGNhbGliIHZhbHVlIHRvIGluamVjdCB0byB0aGlzIG1lYXN1cmVtZW50IGNhbGNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjEyMTE6ICogQHNwZWNpZmljX2NhbGliOiBUaGUgc3BlY2lmaWMgY2FsaWIgdmFsdWUgdG8gaW5qZWN0IHRvIHRoaXMgbWVhc3VyZW1lbnQgY2FsY1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTIxMi0gKiBAYXA6IHBlci1BUCByZXF1ZXN0IGRhdGEsIHNlZSBcXHUwMDI2c3RydWN0IGl3bF90b2ZfcmFuZ2VfcmVxX2FwX2VudHJ5X3YyLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0xMjE0PXN0cnVjdCBpd2xfdG9mX3JhbmdlX3JlcV9jbWRfdjcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xMjQxLSAqXFx0VFNGIG9mIHRoaXMgbWFjIGlkLiAweGZmIHRvIGRpc2FibGUgVFNGIHJlcG9ydGluZy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjEyNDI6ICogQGNvbW1vbl9jYWxpYjogVGhlIGNvbW1vbiBjYWxpYiB2YWx1ZSB0byBpbmplY3QgdG8gdGhpcyBtZWFzdXJlbWVudCBjYWxjXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxMjQzOiAqIEBzcGVjaWZpY19jYWxpYjogVGhlIHNwZWNpZmljIGNhbGliIHZhbHVlIHRvIGluamVjdCB0byB0aGlzIG1lYXN1cmVtZW50IGNhbGNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTEyNDQtICogQGFwOiBwZXItQVAgcmVxdWVzdCBkYXRhLCBzZWUgXFx1MDAyNnN0cnVjdCBpd2xfdG9mX3JhbmdlX3JlcV9hcF9lbnRyeV92Mi5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MTQzOT1lbnVtIGl3bF90b2ZfZW50cnlfc3RhdHVzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTQ4Mi0gKiBAc3BlY2lmaWNfY2FsaWI6IHZhbCB0aGF0IHdhcyB1c2VkIGluIGZvciB0aGlzIEFQIG1lYXN1cmVtZW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxNDgzOiAqIEBwYXBkX2NhbGliX291dHB1dDogVGhlIHJlc3VsdCBvZiB0aGUgdG9mIHBhcGQgY2FsaWJyYXRpb24gdGhhdCB3YXMgaW5qZWN0ZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTE0ODQtICpcXHRpbnRvIHRoZSBhbGdvcml0aG0uXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTE0ODY9c3RydWN0IGl3bF90b2ZfcmFuZ2VfcnNwX2FwX2VudHJ5X250ZnlfdjMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xNTM0LSAqIEBzcGVjaWZpY19jYWxpYjogdmFsIHRoYXQgd2FzIHVzZWQgaW4gZm9yIHRoaXMgQVAgbWVhc3VyZW1lbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjE1MzU6ICogQHBhcGRfY2FsaWJfb3V0cHV0OiBUaGUgcmVzdWx0IG9mIHRoZSB0b2YgcGFwZCBjYWxpYnJhdGlvbiB0aGF0IHdhcyBpbmplY3RlZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTUzNi0gKlxcdGludG8gdGhlIGFsZ29yaXRobS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MTUzOD1zdHJ1Y3QgaXdsX3RvZl9yYW5nZV9yc3BfYXBfZW50cnlfbnRmeV92NCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTE1ODctICogQHNwZWNpZmljX2NhbGliOiB2YWwgdGhhdCB3YXMgdXNlZCBpbiBmb3IgdGhpcyBBUCBtZWFzdXJlbWVudFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MTU4ODogKiBAcGFwZF9jYWxpYl9vdXRwdXQ6IFRoZSByZXN1bHQgb2YgdGhlIHRvZiBwYXBkIGNhbGlicmF0aW9uIHRoYXQgd2FzIGluamVjdGVkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xNTg5LSAqXFx0aW50byB0aGUgYWxnb3JpdGhtLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0xNTkzPXN0cnVjdCBpd2xfdG9mX3JhbmdlX3JzcF9hcF9lbnRyeV9udGZ5X3Y1IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTY0NC0gKiBAc3BlY2lmaWNfY2FsaWI6IHZhbCB0aGF0IHdhcyB1c2VkIGluIGZvciB0aGlzIEFQIG1lYXN1cmVtZW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoxNjQ1OiAqIEBwYXBkX2NhbGliX291dHB1dDogVGhlIHJlc3VsdCBvZiB0aGUgdG9mIHBhcGQgY2FsaWJyYXRpb24gdGhhdCB3YXMgaW5qZWN0ZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTE2NDYtICpcXHRpbnRvIHRoZSBhbGdvcml0aG0uXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTE2NTQ9c3RydWN0IGl3bF90b2ZfcmFuZ2VfcnNwX2FwX2VudHJ5X250Znlfdjcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0xNzA2LSAqIEBzcGVjaWZpY19jYWxpYjogdmFsIHRoYXQgd2FzIHVzZWQgaW4gZm9yIHRoaXMgQVAgbWVhc3VyZW1lbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjE3MDc6ICogQHBhcGRfY2FsaWJfb3V0cHV0OiBUaGUgcmVzdWx0IG9mIHRoZSB0b2YgcGFwZCBjYWxpYnJhdGlvbiB0aGF0IHdhcyBpbmplY3RlZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMTcwOC0gKlxcdGludG8gdGhlIGFsZ29yaXRobS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL21hYy1jZmcuaD02ODI9c3RydWN0IGl3bF9saW5rX2NvbmZpZ19jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbWFjLWNmZy5oLTc0NC0gKiBAU1RBVElPTl9UWVBFX0JDQVNUX01HTVQ6IFRoZSBzdGF0aW9uIHVzZWQgdG8gc2VuZCBiZWFjb25zIGFuZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL21hYy1jZmcuaDo3NDU6ICpcXHRwcm9iZSByZXNwb25zZXMuIEFsc28gdXNlZCBmb3IgdHJhZmZpYyBpbmplY3Rpb24gaW4gc25pZmZlciBtb2RlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbWFjLWNmZy5oLTc0Ni0gKiBAU1RBVElPTl9UWVBFX01DQVNUOiB0aGUgc3RhdGlvbiB1c2VkIGZvciBCQ0FTVCAvIE1DQVNUIGluIEdPLiBXaWxsIGJlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS90eHEuaC0xNS0gKiBASVdMX01WTV9EUUFfUDJQX0RFVklDRV9RVUVVRTogYSBxdWV1ZSByZXNlcnZlZCBmb3IgUDJQIGRldmljZSBmcmFtZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS90eHEuaDoxNjogKiBASVdMX01WTV9EUUFfSU5KRUNUX01PTklUT1JfUVVFVUU6IGEgcXVldWUgcmVzZXJ2ZWQgZm9yIGluamVjdGlvbiB1c2luZ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3R4cS5oLTE3LSAqXFx0bW9uaXRvciBtb2RlLiBOb3RlIHRoaXMgcXVldWUgaXMgdGhlIHNhbWUgYXMgdGhlIHF1ZXVlIGZvciBQMlAgZGV2aWNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg9NDExPXZvaWQgaXdsX21laV91bnJlZ2lzdGVyX2NvbXBsZXRlKHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQyMi0gKiBPbmx5IHdoZW4gdGhpcyBmdW5jdGlvbiByZXR1cm5zLCBjYW4gdGhlIGNhbGxlciBhc3N1bWUgdGhhdCBpd2xtZWkgd2lsbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDo0MjM6ICogbm8gbG9uZ2VyIGluamVjdCBwYWNrZXRzIGludG8gdGhlIG5ldGRldidzIFR4IHBhdGguXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQyNC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYXAuYz0xNTQ9aW50IGl3bF9tbGRfdXBkYXRlX2JlYWNvbl90ZW1wbGF0ZShzdHJ1Y3QgaXdsX21sZCAqbWxkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYXAuYy0xNzEtI2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hcC5jOjE3MjpcXHRpZiAobWxkX3ZpZi1cXHUwMDNlYmVhY29uX2luamVjdF9hY3RpdmUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hcC5jLTE3My1cXHRcXHRJV0xfREVCVUdfSU5GTyhtbGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYXAuYzoxNzQ6XFx0XFx0XFx0ICAgICAgIFxcXCJDYW4ndCB1cGRhdGUgdGVtcGxhdGUsIGJlYWNvbiBpbmplY3Rpb24ncyBhY3RpdmVcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FwLmMtMTc1LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM9NDYxPU1MRF9ERUJVR0ZTX1JFQURfRklMRV9PUFMod2lmaV82ZV9lbmFibGUsIDY0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNDYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo0NjM6c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2luamVjdF9wYWNrZXRfd3JpdGUoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNDY0LVxcdFxcdFxcdFxcdFxcdCAgICAgY2hhciAqYnVmLCBzaXplX3QgY291bnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo1MDI6V0lQSFlfREVCVUdGU19XUklURV9GSUxFX09QU19NTEQoaW5qZWN0X3BhY2tldCwgNTEyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNTAzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jPTUzMz1pd2xfbWxkX2FkZF9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBkZW50cnkgKmRlYnVnZnNfZGlyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTU0Ny0jZW5kaWZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM6NTQ4OlxcdE1MRF9ERUJVR0ZTX0FERF9GSUxFKGluamVjdF9wYWNrZXQsIGRlYnVnZnNfZGlyLCAwMjAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNTQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jPTY4Nj1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjY4NzpfaXdsX2RiZ2ZzX2luamVjdF9iZWFjb25faWUoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNjg4LVxcdFxcdFxcdCAgICBjaGFyICpiaW4sIHNzaXplX3QgbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTcwNi1cXHRtbGRfdmlmID0gaXdsX21sZF92aWZfZnJvbV9tYWM4MDIxMSh2aWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo3MDc6XFx0bWxkX3ZpZi1cXHUwMDNlYmVhY29uX2luamVjdF9hY3RpdmUgPSB0cnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03MDgtXFx0bWxkLVxcdTAwM2Vody1cXHUwMDNlZXh0cmFfYmVhY29uX3RhaWxyb29tID0gbl9ieXRlcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03NTQtXFx0aWYgKHJlc3RvcmUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjc1NTpcXHRcXHRtbGRfdmlmLVxcdTAwM2ViZWFjb25faW5qZWN0X2FjdGl2ZSA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03NTYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM9NzYwPXN0YXRpYyBzc2l6ZV90XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjc2MTppd2xfZGJnZnNfdmlmX2luamVjdF9iZWFjb25faWVfd3JpdGUoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNzYyLVxcdFxcdFxcdFxcdCAgICAgY2hhciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNzY1LVxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYgPSBkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo3NjY6XFx0aW50IHJldCA9IF9pd2xfZGJnZnNfaW5qZWN0X2JlYWNvbl9pZShtbGQsIHZpZiwgYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03NjctXFx0XFx0XFx0XFx0XFx0ICAgICAgY291bnQsIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjc3MzpWSUZfREVCVUdGU19XUklURV9GSUxFX09QUyhpbmplY3RfYmVhY29uX2llLCA1MTIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03NzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jPTc3NT1zdGF0aWMgc3NpemVfdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo3NzY6aXdsX2RiZ2ZzX3ZpZl9pbmplY3RfYmVhY29uX2llX3Jlc3RvcmVfd3JpdGUoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmMtNzc3LVxcdFxcdFxcdFxcdFxcdCAgICAgY2hhciAqYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTc4MS1cXHRzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmM6NzgyOlxcdGludCByZXQgPSBfaXdsX2RiZ2ZzX2luamVjdF9iZWFjb25faWUobWxkLCB2aWYsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTc4My1cXHRcXHRcXHRcXHRcXHQgICAgICAwLCB0cnVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy03ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjc4OTpWSUZfREVCVUdGU19XUklURV9GSUxFX09QUyhpbmplY3RfYmVhY29uX2llX3Jlc3RvcmUsIDUxMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTc5MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYz05NDE9dm9pZCBpd2xfbWxkX2FkZF92aWZfZGVidWdmcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy05NzEtXFx0aWYgKHZpZi1cXHUwMDNldHlwZSA9PSBOTDgwMjExX0lGVFlQRV9BUCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYzo5NzI6XFx0XFx0VklGX0RFQlVHRlNfQUREX0ZJTEUoaW5qZWN0X2JlYWNvbl9pZSwgbWxkX3ZpZl9kYmdmcywgMDIwMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjk3MzpcXHRcXHRWSUZfREVCVUdGU19BRERfRklMRShpbmplY3RfYmVhY29uX2llX3Jlc3RvcmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jLTk3NC1cXHRcXHRcXHRcXHQgICAgIG1sZF92aWZfZGJnZnMsIDAyMDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvaWZhY2UuaD0xMDM9c3RydWN0IGl3bF9tbGRfZW1sc3Ige1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvaWZhY2UuaC0xMzctICpcXHRzYW1lIEFQIHdpdGggMjAgTUh6LiBUaGlzIG1hbmFnZXMgdGhlIHN0YXR1cyBvZiB0aGUgd29ya2Fyb3VuZC5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9pZmFjZS5oOjEzODogKiBAYmVhY29uX2luamVjdF9hY3RpdmU6IGluZGljYXRlcyBhbiBhY3RpdmUgZGVidWdmcyBiZWFjb24gaWUgaW5qZWN0aW9uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvaWZhY2UuaC0xMzktICogQGxvd19sYXRlbmN5X2NhdXNlczogYml0IGZsYWdzLCBpbmRpY2F0aW5nIHRoZSBjYXVzZXMgZm9yIGxvdy1sYXRlbmN5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvaWZhY2UuaD0xNjY9c3RydWN0IGl3bF9tbGRfdmlmIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2lmYWNlLmgtMTc2LSNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvaWZhY2UuaDoxNzc6XFx0XFx0Ym9vbCBiZWFjb25faW5qZWN0X2FjdGl2ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9pZmFjZS5oLTE3OC0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2xpbmsuaD0yNz1zdHJ1Y3QgaXdsX3Byb2JlX3Jlc3BfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9saW5rLmgtNTItICogQG1jYXN0X3N0YTogc3RhdGlvbiB1c2VkIGZvciBtdWx0aWNhc3QgcGFja2V0cy4gVXNlZCBpbiBBUCwgR08gYW5kIElCU1MuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbGluay5oOjUzOiAqIEBtb25fc3RhOiBzdGF0aW9uIHVzZWQgZm9yIFRYIGluamVjdGlvbiBpbiBtb25pdG9yIGludGVyZmFjZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9saW5rLmgtNTQtICogQGxhc3RfY3FtX3Jzc2lfZXZlbnQ6IHJzc2kgb2YgdGhlIGxhc3QgY3FtIHJzc2kgZXZlbnRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3N0YS5oPTk0PXN0cnVjdCBpd2xfbWxkX3Blcl9xX21wZHVfY291bnRlciB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9zdGEuaC0xMTEtICogQGRhdGFfdHhfYW50OiBzdG9yZXMgdGhlIGxhc3QgVFggYW50ZW5uYSBpbmRleDsgdXNlZCBmb3Igc2V0dGluZ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3N0YS5oOjExMjogKlxcdFRYIHJhdGVfbl9mbGFncyBmb3IgaW5qZWN0ZWQgZGF0YSBmcmFtZXMgKHRvZ2dsZXMgb24gZXZlcnkgVFggZmFpbHVyZSkuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvc3RhLmgtMTEzLSAqIEB0aWRfdG9fYmFpZDogYSBzaW1wbGUgbWFwIG9mIFRJRCB0byBCbG9jay1BY2sgZncgaWRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmM9NDE4PXN0YXRpYyB1MzIgaXdsX21sZF9nZXRfdHhfYW50KHN0cnVjdCBpd2xfbWxkICptbGQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90eC5jLTQzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90eC5jOjQzMTpzdGF0aWMgdTMyIGl3bF9tbGRfZ2V0X2luamVjdF90eF9yYXRlKHN0cnVjdCBpd2xfbWxkICptbGQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdHguYy00MzItXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV90eF9pbmZvICppbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdHguYz00ODY9c3RhdGljIF9fbGUzMiBpd2xfbWxkX2dldF90eF9yYXRlX25fZmxhZ3Moc3RydWN0IGl3bF9tbGQgKm1sZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmMtNDkyLVxcdGlmICh1bmxpa2VseShpbmZvLVxcdTAwM2Vjb250cm9sLmZsYWdzIFxcdTAwMjYgSUVFRTgwMjExX1RYX0NUUkxfUkFURV9JTkpFQ1QpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmM6NDkzOlxcdFxcdHJhdGUgPSBpd2xfbWxkX2dldF9pbmplY3RfdHhfcmF0ZShtbGQsIGluZm8sIHN0YSwgZmMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmMtNDk0LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmM9NTQwPWl3bF9tbGRfZmlsbF90eF9jbWQoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmMtNTYxLVxcdCAqIE9ubHkgc2V0IHJhdGUvYW50ZW5uYSBmb3I6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdHguYzo1NjI6XFx0ICogLSBpbmplY3RlZCBmcmFtZXMgd2l0aCBmaXhlZCByYXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3R4LmMtNTYzLVxcdCAqIC0gd2hlbiBubyBzdGEgaXMgZ2l2ZW4uXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM9MTIxND1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5kaXJlY3Rpb25fdGJsX3dyaXRlKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTI2MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM6MTI2MTpzdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZShzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xMjYyLVxcdFxcdFxcdFxcdFxcdCAgICAgY2hhciAqYnVmLCBzaXplX3QgY291bnQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTMwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM6MTMwOTpzdGF0aWMgaW50IF9pd2xfZGJnZnNfaW5qZWN0X2JlYWNvbl9pZShzdHJ1Y3QgaXdsX212bSAqbXZtLCBjaGFyICpiaW4sIGludCBsZW4pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTEzMTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTEzNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjEzNTk6XFx0bXZtLVxcdTAwM2ViZWFjb25faW5qZWN0X2FjdGl2ZSA9IHRydWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTEzNjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTQwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM6MTQwMzpzdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5qZWN0X2JlYWNvbl9pZV93cml0ZShzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xNDA0LVxcdFxcdFxcdFxcdFxcdFxcdGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTE0MDYte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoxNDA3OlxcdGludCByZXQgPSBfaXdsX2RiZ2ZzX2luamVjdF9iZWFjb25faWUobXZtLCBidWYsIGNvdW50KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTQwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xNDEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoxNDEzOnN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19pbmplY3RfYmVhY29uX2llX3Jlc3RvcmVfd3JpdGUoc3RydWN0IGl3bF9tdm0gKm12bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTQxNC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRjaGFyICpidWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMTQxNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjE0MTg6XFx0aW50IHJldCA9IF9pd2xfZGJnZnNfaW5qZWN0X2JlYWNvbl9pZShtdm0sIE5VTEwsIDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xNDE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xNDIwLVxcdG12bS1cXHUwMDNlaHctXFx1MDAzZWV4dHJhX2JlYWNvbl90YWlscm9vbSA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjE0MjE6XFx0bXZtLVxcdTAwM2ViZWFjb25faW5qZWN0X2FjdGl2ZSA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xNDIyLVxcdHJldHVybiByZXQgPzogY291bnQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM9MTkzNj1NVk1fREVCVUdGU19XUklURV9GSUxFX09QUyhpbmRpcmVjdGlvbl90YmwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTE5MzctXFx0XFx0XFx0ICAgKElXTF9SU1NfSU5ESVJFQ1RJT05fVEFCTEVfU0laRSAqIDIpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmM6MTkzODpNVk1fREVCVUdGU19XUklURV9GSUxFX09QUyhpbmplY3RfcGFja2V0LCA1MTIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoxOTM5Ok1WTV9ERUJVR0ZTX1dSSVRFX0ZJTEVfT1BTKGluamVjdF9iZWFjb25faWUsIDUxMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jOjE5NDA6TVZNX0RFQlVHRlNfV1JJVEVfRklMRV9PUFMoaW5qZWN0X2JlYWNvbl9pZV9yZXN0b3JlLCA1MTIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xOTQxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jPTIxMTA9dm9pZCBpd2xfbXZtX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfbXZtICptdm0pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmMtMjEzNy1cXHRNVk1fREVCVUdGU19BRERfRklMRShpbmRpcmVjdGlvbl90YmwsIG12bS1cXHUwMDNlZGVidWdmc19kaXIsIDAyMDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoyMTM4OlxcdE1WTV9ERUJVR0ZTX0FERF9GSUxFKGluamVjdF9wYWNrZXQsIG12bS1cXHUwMDNlZGVidWdmc19kaXIsIDAyMDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoyMTM5OlxcdE1WTV9ERUJVR0ZTX0FERF9GSUxFKGluamVjdF9iZWFjb25faWUsIG12bS1cXHUwMDNlZGVidWdmc19kaXIsIDAyMDApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoyMTQwOlxcdE1WTV9ERUJVR0ZTX0FERF9GSUxFKGluamVjdF9iZWFjb25faWVfcmVzdG9yZSwgbXZtLVxcdTAwM2VkZWJ1Z2ZzX2RpciwgMDIwMCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTIxNDEtXFx0TVZNX0RFQlVHRlNfQUREX0ZJTEUocmZpX2ZyZXFfdGFibGUsIG12bS1cXHUwMDNlZGVidWdmc19kaXIsIDA2MDApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYz0xMTgwPWludCBpd2xfbXZtX21hY19jdHh0X2JlYWNvbl9jaGFuZ2VkKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jLTExOTUtI2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jOjExOTY6XFx0aWYgKG12bS1cXHUwMDNlYmVhY29uX2luamVjdF9hY3RpdmUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jLTExOTctXFx0XFx0ZGV2X2tmcmVlX3NrYihiZWFjb24pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuYz0xMTMwPXN0YXRpYyB2b2lkIGl3bF9tdm1fcmVzdGFydF9jbGVhbnVwKHN0cnVjdCBpd2xfbXZtICptdm0pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jLTExNjQtI2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWM4MDIxMS5jOjExNjU6XFx0bXZtLVxcdTAwM2ViZWFjb25faW5qZWN0X2FjdGl2ZSA9IGZhbHNlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYzgwMjExLmMtMTE2Ni0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oPTkxMD1zdHJ1Y3QgaXdsX212bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaC0xMDU5LVxcdGJvb2wgZGlzYWJsZV9wb3dlcl9vZmZfZDM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmg6MTA2MDpcXHRib29sIGJlYWNvbl9pbmplY3RfYWN0aXZlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oLTEwNjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jPTI2Nj1zdGF0aWMgdTMyIGl3bF9tdm1fY29udmVydF9yYXRlX2lkeChzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdHguYy0yOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdHguYzoyOTQ6c3RhdGljIHUzMiBpd2xfbXZtX2dldF9pbmplY3RfdHhfcmF0ZShzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmMtMjk1LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmM9MzgwPXN0YXRpYyBfX2xlMzIgaXdsX212bV9nZXRfdHhfcmF0ZV9uX2ZsYWdzKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jLTM4Ni1cXHRpZiAodW5saWtlbHkoaW5mby1cXHUwMDNlY29udHJvbC5mbGFncyBcXHUwMDI2IElFRUU4MDIxMV9UWF9DVFJMX1JBVEVfSU5KRUNUKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jOjM4NzpcXHRcXHRyYXRlID0gaXdsX212bV9nZXRfaW5qZWN0X3R4X3JhdGUobXZtLCBpbmZvLCBzdGEsIGZjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jLTM4OC1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jPTU1Mz1pd2xfbXZtX3NldF90eF9wYXJhbXMoc3RydWN0IGl3bF9tdm0gKm12bSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3R4LmMtNTg3LVxcdFxcdCAqIG5ldyBkZXZpY2VzLCBvbGRlciBGVyBpcyBzb21ld2hhdCBicm9rZW4gZm9yIHRoaXMpLiBPbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdHguYzo1ODg6XFx0XFx0ICogc2V0IHJhdGUvYW50ZW5uYSBmb3IgaW5qZWN0ZWQgZnJhbWVzIHdpdGggZml4ZWQgcmF0ZSwgb3JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90eC5jLTU4OS1cXHRcXHQgKiB3aGVuIG5vIHN0YSBpcyBnaXZlbiwgb3Igd2l0aCBvbGRlciBmaXJtd2FyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTY6NTk6MzYuMTQ2NTUxMTM1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzODMzMzkxMjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgYGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlYCoqXG5cblJpZ2h0LCBzbyBgaXdsX2RiZ2ZzX2luamVjdF9wYWNrZXRfd3JpdGVgIOKAkyB0aGF0IHJpbmdzIGEgYmVsbC4gSXQncyBpbiBgbXZtL2RlYnVnZnMuY2AsIHdoaWNoIGxpa2VseSBtZWFucyBpdCdzIHBhcnQgb2YgdGhlIGRlYnVnIGZpbGUgc3lzdGVtIGludGVyZmFjZSBmb3IgdGhlIEludGVsIFdpcmVsZXNzIGRyaXZlci4gT2theSwgbGV0J3MgcHVsbCB1cCB0aGF0IGZ1bmN0aW9uIGFuZCBzZWUgd2hhdCdzIGdvaW5nIG9uLiBUaGlzIGlzIHByb2JhYmx5IHdoZXJlIHRoZXkndmUgaG9va2VkIHVwIGEgd2F5IHRvIGluamVjdCBjcmFmdGVkIHBhY2tldHMgaW50byB0aGUgd2lyZWxlc3MgbmV0d29yayBzdGFjayBmb3IgdGVzdGluZyBvciBkZWJ1Z2dpbmcuIEknbSBndWVzc2luZyBpdCdzIGEgY3JpdGljYWwgcGllY2UgZm9yIGZ1enppbmcsIHByb3RvY29sIGFuYWx5c2lzLCBvciBwZXJoYXBzIGV2ZW4gbG93LWxldmVsIGRyaXZlciB2YWxpZGF0aW9uLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIGV4YWN0bHkgKmhvdyogaXQncyB3b3JraW5nLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMsIG1pc3VzZSBzY2VuYXJpb3MsIGFuZCwgb2YgY291cnNlLCBhbnkgY2xldmVyIHRyaWNrcyB0aGV5J3ZlIGVtcGxveWVkIGluIHRoZSBpbXBsZW1lbnRhdGlvbi4gS25vd2luZyBob3cgdGhpcyBmdW5jdGlvbiBiZWhhdmVzIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIGFuZCBwb3RlbnRpYWxseSBleHBsb2l0aW5nIGxvdy1sZXZlbCBhc3BlY3RzIG9mIHRoaXMgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzc5NSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE2OjU5OjM5LjUyOTg5MjkzNFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQyMzMzOTgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYz00NjE9TUxEX0RFQlVHRlNfUkVBRF9GSUxFX09QUyh3aWZpXzZlX2VuYWJsZSwgNjQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy00NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5jOjQ2MzpzdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZShzdHJ1Y3QgaXdsX21sZCAqbWxkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuYy00NjQtXFx0XFx0XFx0XFx0XFx0ICAgICBjaGFyICpidWYsIHNpemVfdCBjb3VudClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYz0xMjE0PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19pbmRpcmVjdGlvbl90Ymxfd3JpdGUoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYy0xMjYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2RlYnVnZnMuYzoxMjYxOnN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jLTEyNjItXFx0XFx0XFx0XFx0XFx0ICAgICBjaGFyICpidWYsIHNpemVfdCBjb3VudCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTY6NTk6MzkuNjcyMjM2Mjk0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMjA0Nzk5NTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQYWNrZXQgSW5qZWN0aW9uIEZ1bmN0aW9uKipcblxuQWxyaWdodCwgdGltZSB0byBkaXNzZWN0IHRoaXMgYGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlYCBmdW5jdGlvbi4gTGV0J3MgcHVsbCB1cCB0aGUgc291cmNlIGNvZGUgZm9yIGl0LCBsb2NhdGVkIGluIGBtdm0vZGVidWdmcy5jYC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZGVidWdmcyBpbnRlcmZhY2UgaGFuZGxlcyBpbmplY3RlZCBwYWNrZXRzLiBQcm9iYWJseSBkZWFsaW5nIHdpdGggcGFja2V0IGNvbnN0cnVjdGlvbiwgc2V0dGluZyB1cCBoZWFkZXJzLCBhbmQgdGhlbiBoYW5kaW5nIGl0IG9mZiB0byB0aGUgaGFyZHdhcmUgZm9yIHRyYW5zbWlzc2lvbi4gSSdtIGN1cmlvdXMgYWJvdXQgdGhlIHNwZWNpZmljIGludGVyYWN0aW9uIHdpdGggdGhlIGZpcm13YXJlLiBBcmUgd2UgdGFsa2luZyBhYm91dCBkaXJlY3QgTU1JTywgb3IgaXMgdGhlcmUgc29tZSBpbnRlcm1lZGlhdGUgcHJvY2Vzc2luZyBpbnZvbHZlZCBiZWZvcmUgaXQgZ2V0cyBzZW50IGRvd24/IEFsc28sIEkgd29uZGVyIGFib3V0IHRoZSBwb3RlbnRpYWwgc2VjdXJpdHkgaW1wbGljYXRpb25zIGhlcmU7IGhvdyByb2J1c3QgaXMgdGhlIGlucHV0IHZhbGlkYXRpb24/IEknbGwgYmUgbG9va2luZyBjbG9zZWx5IGF0IGFueSBib3VuZHMgY2hlY2tzIG9yIHNhbml0eSBjaGVja3Mgb24gdGhlIGRhdGEgYmVpbmcgd3JpdHRlbi4gQWx3YXlzIGdvb2QgdG8gZG91YmxlLWNoZWNrIHRob3NlLiBJIGFsc28gbmVlZCB0byBzZWUgd2hlcmUgaXQgc2l0cyBpbiByZWxhdGlvbiB0byB0aGUgbWFpbiBkcml2ZXIgZXhlY3V0aW9uIHBhdGgsIGFuZCBpZiBpdCBjb3VsZCBwb3RlbnRpYWxseSByYWNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozODQ1MCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE2OjU5OjQzLjg5MjcxODMzMVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjg3MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZGVidWdmcy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEyNjEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEyNjE6XFx0c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2luamVjdF9wYWNrZXRfd3JpdGUoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4xMjYyOlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgY2hhciAqYnVmLCBzaXplX3QgY291bnQsXFxuMTI2MzpcXHRcXHRcXHRcXHRcXHRcXHQgICAgIGxvZmZfdCAqcHBvcylcXG4xMjY0OlxcdHtcXG4xMjY1OlxcdFxcdHN0cnVjdCBpd2xfb3BfbW9kZSAqb3Btb2RlID0gY29udGFpbmVyX29mKCh2b2lkICopbXZtLFxcbjEyNjY6XFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaXdsX29wX21vZGUsXFxuMTI2NzpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgIG9wX21vZGVfc3BlY2lmaWMpO1xcbjEyNjg6XFx0XFx0c3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyIHJ4YiA9IHtcXG4xMjY5OlxcdFxcdFxcdC5fcnhfcGFnZV9vcmRlciA9IDAsXFxuMTI3MDpcXHRcXHRcXHQudHJ1ZXNpemUgPSAwLCAvKiBub3QgdXNlZCAqL1xcbjEyNzE6XFx0XFx0XFx0Ll9vZmZzZXQgPSAwLFxcbjEyNzI6XFx0XFx0fTtcXG4xMjczOlxcdFxcdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3Q7XFxuMTI3NDpcXHRcXHRpbnQgYmluX2xlbiA9IGNvdW50IC8gMjtcXG4xMjc1OlxcdFxcdGludCByZXQgPSAtRUlOVkFMO1xcbjEyNzY6XFx0XFxuMTI3NzpcXHRcXHRpZiAoIWl3bF9tdm1fZmlybXdhcmVfcnVubmluZyhtdm0pKVxcbjEyNzg6XFx0XFx0XFx0cmV0dXJuIC1FSU87XFxuMTI3OTpcXHRcXG4xMjgwOlxcdFxcdC8qIHN1cHBvcnRpbmcgb25seSBNUSBSWCAqL1xcbjEyODE6XFx0XFx0aWYgKCFtdm0tXFx1MDAzZXRyYW5zLVxcdTAwM2VtYWNfY2ZnLVxcdTAwM2VtcV9yeF9zdXBwb3J0ZWQpXFxuMTI4MjpcXHRcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuMTI4MzpcXHRcXG4xMjg0OlxcdFxcdHJ4Yi5fcGFnZSA9IGFsbG9jX3BhZ2VzKEdGUF9BVE9NSUMsIDApO1xcbjEyODU6XFx0XFx0aWYgKCFyeGIuX3BhZ2UpXFxuMTI4NjpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4xMjg3OlxcdFxcdHBrdCA9IHJ4Yl9hZGRyKFxcdTAwMjZyeGIpO1xcbjEyODg6XFx0XFxuMTI4OTpcXHRcXHRyZXQgPSBoZXgyYmluKHBhZ2VfYWRkcmVzcyhyeGIuX3BhZ2UpLCBidWYsIGJpbl9sZW4pO1xcbjEyOTA6XFx0XFx0aWYgKHJldClcXG4xMjkxOlxcdFxcdFxcdGdvdG8gb3V0O1xcbjEyOTI6XFx0XFxuMTI5MzpcXHRcXHQvKiBhdm9pZCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgYW5kIG1hbGZvcm1lZCBwYWNrZXQgKi9cXG4xMjk0OlxcdFxcdGlmIChiaW5fbGVuIFxcdTAwM2Mgc2l6ZW9mKCpwa3QpIHx8XFxuMTI5NTpcXHRcXHQgICAgYmluX2xlbiAhPSBzaXplb2YoKnBrdCkgKyBpd2xfcnhfcGFja2V0X3BheWxvYWRfbGVuKHBrdCkpXFxuMTI5NjpcXHRcXHRcXHRnb3RvIG91dDtcXG4xMjk3OlxcdFxcbjEyOTg6XFx0XFx0bG9jYWxfYmhfZGlzYWJsZSgpO1xcbjEyOTk6XFx0XFx0aXdsX212bV9yeF9tcShvcG1vZGUsIE5VTEwsIFxcdTAwMjZyeGIpO1xcbjEzMDA6XFx0XFx0bG9jYWxfYmhfZW5hYmxlKCk7XFxuMTMwMTpcXHRcXHRyZXQgPSAwO1xcbjEzMDI6XFx0XFxuMTMwMzpcXHRvdXQ6XFxuMTMwNDpcXHRcXHRpd2xfZnJlZV9yeGIoXFx1MDAyNnJ4Yik7XFxuMTMwNTpcXHRcXG4xMzA2OlxcdFxcdHJldHVybiByZXQgPzogY291bnQ7XFxuMTMwNzpcXHR9XFxuMTMwODpcXHRcXG4xMzA5OlxcdHN0YXRpYyBpbnQgX2l3bF9kYmdmc19pbmplY3RfYmVhY29uX2llKHN0cnVjdCBpd2xfbXZtICptdm0sIGNoYXIgKmJpbiwgaW50IGxlbilcXG4xMzEwOlxcdHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTY6NTk6NDMuODkyODQ4NDcxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1ODM2NTI0MTk1MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjM5NTA0LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjI5MTEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzowNTo0Mi4yNTgwOTM1MzJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MzI3ODc5NzQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN5el9wY2lcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzowNTo0NC4xOTA4OTAxMjZaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA0ODc5ODEyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBJd2x3aWZpIFByb2JlIGluIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGludG8gaG93IGBpd2x3aWZpYCBnZXRzIHByb2JlZCB3aXRoaW4gdGhlIHN5emthbGxlciBlbnZpcm9ubWVudC4gSSBrbm93IHRoYXQgYHN5emthbGxlcmAgaXRzZWxmIGRvZXNuJ3Qgb2ZmZXIgYSBkaXJlY3QgYHN5el9wY2lgIGNhbGwsIHdoaWNoIGlzIG15IHN0YXJ0aW5nIHBvaW50LiBCdXQgSSB3YXMgYnJpZWZseSB0aHJvd24gb2ZmLCBjb25zaWRlcmluZyB0aGUgcG90ZW50aWFsIGludGVyYWN0aW9uIGJldHdlZW4gYGl3bHdpZmlgIGFuZCBgbWFjODAyMTFfaHdzaW1gLiBObywgaGFuZyBvbiwgdGhvc2UgYXJlIHNlcGFyYXRlLlxuXG5UaGVuIEkgcmVjYWxsZWQgYHN5emthbGxlcmAgaGFzIGEgY2FsbCwgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgLCB3aGljaCBpcyB1c2VkIHRvIGluamVjdCBmcmFtZXMgaW50byBgbWFjODAyMTFgLiBUaGF0IGdldHMgbWUgdGhpbmtpbmcuLi4gSG93ICpkb2VzKiBgaXdsd2lmaWAgZ2V0IHByb2JlZCBpbiB0aGUgc3l6a2FsbGVyIGNvbnRleHQ/IElzIGl0IHVzaW5nIGEgZHVtbXkgUENJIGRldmljZT8gVGhhdCBzZWVtcyBwbGF1c2libGUuXG5cbkFoLCB3YWl0LiBOb3cgSSByZW1lbWJlciBzZWVpbmcgYENPTkZJR19JV0xXSUZJX0tVTklUX1RFU1RTYCBpbiB0aGUgY29uZmlndXJhdGlvbi4gVGhhdCBjb3VsZCBiZSBhIHZpdGFsIGNsdWUuIE5vdyBJIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGVyZSdzIGEgdGVzdCBtb2R1bGUgcHJlc2VudCB0aGF0IGFjdHVhbGx5IHByb2JlcyBgaXdsd2lmaWAuIFRoYXQgc2VlbXMgdGhlIG1vc3QgbG9naWNhbCBwYXRoIGZvciBpbnZlc3RpZ2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDI0NTQsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MDU6NDkuMjM5NjkwNTY5WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzU0NDEyNjAsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bHdpZmlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwidG9vbHMvdGVzdGluZy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjA1OjQ5LjM3NTE0MTY4OVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NzI3MzcyNzEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBpd2x3aWZpYCBmb3IgRnV6emluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyBzeXprYWxsZXIgaXMgcmVhY2hpbmcgYGl3bHdpZmlgLiBJdCBoYXMgYHN5el91c2JfY29ubmVjdGAgYW5kIGBzeXpfdmhjaWAgZm9yIFVTQiwgYnV0IHRoYXQgZG9lc24ndCBpbW1lZGlhdGVseSBzdWdnZXN0IGBpd2x3aWZpYC4gQ291bGQgaXQgYmUgdXNpbmcgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseV9pZGA/IE9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBUaGUgZmFjdCB0aGF0IHN5emthbGxlciAqZGlkKiBmaW5kIGJ1Z3MgaW4gYGl3bHdpZmlgIHN1Z2dlc3RzIHRoYXQgaXQgKmlzKiByZWFjaGFibGUgc29tZWhvdy5cblxuUmlnaHQsIGJhY2sgdG8gdGhlIGBXb3J0aEZ1enppbmdgIGNyaXRlcmlhLiBTcGVjaWZpY2FsbHksIHRoZSBcImltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzXCIgY2xhdXNlLiBJZiBgaXdsd2lmaWAgaXMgdW5yZWFjaGFibGUgaW4gZW52aXJvbm1lbnRzIGxpa2UgUUVNVSwgdGhlbiBpdCdzIG5vdCB3b3J0aCBmdXp6aW5nLCBhY2NvcmRpbmcgdG8gdGhlIGNyaXRlcmlhLiBTbywgaXMgaXQgcmVhY2hhYmxlIGluIFFFTVU/IE5vLCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSBJbnRlbCBXaS1GaSBjYXJkcywgYW5kIGNlcnRhaW5seSBkb2Vzbid0IGVtdWxhdGUgdGhlIGBpd2x3aWZpYCBkcml2ZXIuIFdhaXQsIGRvZXMgUUVNVSBldmVuIGhhdmUgYW55dGhpbmcgbGlrZSBgc3l6X3BjaV9kZXZpY2VgPyBJIHNlYXJjaGVkIGZvciBgc3l6X3BjaWAgYW5kIGdvdCBubyBtYXRjaGVzLiBIbW1tLlxuXG5QZXJoYXBzIGBzeXpfa3ZtX3NldHVwX2NwdWAgaXMgcmVsZXZhbnQ/IEFjdHVhbGx5LCBzeXprYWxsZXIgaGFzIGBzeXpfODAyMTFfaW5qZWN0X2ZyYW1lYCBhbmQgYHN5el84MDIxMV9qb2luX2lic3NgISBUaGlzIGlzIGludGVyZXN0aW5nLi4uIGhvdyBkaWQgc3l6a2FsbGVyIGRpc2NvdmVyIGJ1Z3MgaW4gYGl3bHdpZmlgIGlmIGl0J3Mgbm90IGVtdWxhdGVkPyBNYXliZSBpdCBydW5zIG9uIHJlYWwgaGFyZHdhcmU/IFRoZSBwcm9tcHQgc3RpcHVsYXRlcyB0aGF0IHBhdGNoZXMgY29udGFpbmluZyBjb2RlIHBhdGhzIHVucmVhY2hhYmxlIGluIFFFTVUgc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSWYgc3l6a2FsbGVyIGlzIHJ1bm5pbmcgb24gcmVhbCBoYXJkd2FyZSwgaXQgY2FuIHJlYWNoIGl0LlxuXG5CdXQuLi4gdGhlIGtleSBwb2ludCBpcyBcImltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzXCIuIElmIGBpd2x3aWZpYCBpcyBub3QgcmVhY2hhYmxlIGluIFFFTVUgKGFuZCBpdCBpcyBub3QpLCB0aGVuIEkgbXVzdCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIElzIGBpd2x3aWZpYCBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIFFFTVU/IFllcywgZGVmaW5pdGl2ZWx5LiBRRU1VIGRvZXNuJ3QgZW11bGF0ZSB0aGUgaGFyZHdhcmUuIElzIHRoZXJlIGEgc29mdHdhcmUgZW11bGF0b3IgZm9yIGBpd2x3aWZpYD8gTGV0IG1lIGNoZWNrIHRoZSBrZXJuZWwuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTAyOTAzLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjA1OjU3LjEwMjUxNjE5MloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzczNDI1ODMyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bHdpZmlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTU0OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvS2NvbmZpZz0xNj1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5L0tjb25maWdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvS2NvbmZpZzoxNzpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9LY29uZmlnLTE4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvTWFrZWZpbGU9NT1vYmotJChDT05GSUdfSVdMRUdBQ1kpXFx0Kz0gaXdsZWdhY3kvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvTWFrZWZpbGUtNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19JV0xXSUZJKVxcdCs9IGl3bHdpZmkvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfSVdMTUVJKVxcdCs9IGl3bHdpZmkvXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1Lmg9MjQ9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpbF9vcHMgaWwzOTQ1X29wcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUuaC0zMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1Lmg6MzI6I2RlZmluZSBJTDM5NDVfRldfUFJFXFx0XFxcIml3bHdpZmktMzk0NS1cXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS5oLTMzLSNkZWZpbmUgX0lMMzk0NV9NT0RVTEVfRklSTVdBUkUoYXBpKSBJTDM5NDVfRldfUFJFICNhcGkgXFxcIi51Y29kZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzM5NDUuaD0xODQ9dm9pZCBpbDM5NDVfZHVtcF9uaWNfZXJyb3JfbG9nKHN0cnVjdCBpbF9wcml2ICppbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS8zOTQ1LmgtMTk0LSAqIE5hbWluZyBjb252ZW50aW9uIC0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS5oOjE5NTogKiBpbDM5NDVfICAgICAgICAgXFx1MDAzYy0tIEl0cyBwYXJ0IG9mIGl3bHdpZmkgKHNob3VsZCBiZSBjaGFuZ2VkIHRvIGlsMzk0NV8pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvMzk0NS5oLTE5Ni0gKiBpbDM5NDVfaHdfICAgICAgXFx1MDAzYy0tIEhhcmR3YXJlIHNwZWNpZmljIChpbXBsZW1lbnRlZCBpbiBpd2wtWFhYWC5jIGJ5IGFsbCBIVylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUuYz0yNTM9c3RhdGljIGludCBpbDQ5NjVfaHdfZ2V0X3RlbXBlcmF0dXJlKHN0cnVjdCBpbF9wcml2ICppbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS80OTY1LmMtMjYwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUuYzoyNjE6I2RlZmluZSBJTDQ5NjVfRldfUFJFIFxcXCJpd2x3aWZpLTQ5NjUtXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bGVnYWN5LzQ5NjUuYy0yNjItI2RlZmluZSBfSUw0OTY1X01PRFVMRV9GSVJNV0FSRShhcGkpIElMNDk2NV9GV19QUkUgI2FwaSBcXFwiLnVjb2RlXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvY29tbW9uLmg9ODE4PXN0cnVjdCBpbF9od19wYXJhbXMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvY29tbW9uLmgtODUxLSAqIE5hbWluZyBjb252ZW50aW9uIC0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsZWdhY3kvY29tbW9uLmg6ODUyOiAqIGlsXyAgICAgICAgIFxcdTAwM2MtLSBJcyBwYXJ0IG9mIGl3bHdpZmlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2xlZ2FjeS9jb21tb24uaC04NTMtICogaXdsWFhYWF8gICAgIFxcdTAwM2MtLSBIYXJkd2FyZSBzcGVjaWZpYyAoaW1wbGVtZW50ZWQgaW4gaXdsLVhYWFguYyBmb3IgWFhYWClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0yPWNvbmZpZyBJV0xXSUZJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjM6XFx0dHJpc3RhdGUgXFxcIkludGVsIFdpcmVsZXNzIFdpRmkgTmV4dCBHZW4gQUdOIC0gV2lyZWxlc3MtTi9BZHZhbmNlZC1OL1VsdGltYXRlLU4gKGl3bHdpZmkpIFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNC1cXHRkZXBlbmRzIG9uIFBDSSBcXHUwMDI2XFx1MDAyNiBIQVNfSU9NRU0gXFx1MDAyNlxcdTAwMjYgQ0ZHODAyMTFcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MzU6XFx0ICAgICAgICAgIFxcdTAwM2NodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9Ecml2ZXJzL2l3bHdpZmlcXHUwMDNlLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0zNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy00NC1cXHQgIHNheSBNIGhlcmUgYW5kIHJlYWQgXFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9rYnVpbGQvbW9kdWxlcy5yc3RcXHUwMDNlLiAgVGhlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjQ1OlxcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGl3bHdpZmkuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTQ5PWNvbmZpZyBJV0xXSUZJX0tVTklUX1RFU1RTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNTMtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo1NDpcXHQgIEVuYWJsZSB0aGlzIG9wdGlvbiBmb3IgaXdsd2lmaSBrdW5pdCB0ZXN0cy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NjY9Y29uZmlnIElXTERWTVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTcxLVxcdCAgb2YgdGhlIGRldmljZXMgdGhhdCB1c2UgdGhpcyBmaXJtd2FyZSBpcyBhdmFpbGFibGUgaGVyZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NzI6XFx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9kcml2ZXJzL2l3bHdpZmkjZmlybXdhcmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTc0PWNvbmZpZyBJV0xNVk1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy04MS1cXHQgIG9mIHRoZSBkZXZpY2VzIHRoYXQgdXNlIHRoaXMgZmlybXdhcmUgaXMgYXZhaWxhYmxlIGhlcmU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjgyOlxcdCAgaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvZHJpdmVycy9pd2x3aWZpI2Zpcm13YXJlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz04ND1jb25maWcgSVdMTUxEXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctOTEtXFx0ICBUaGUgbGlzdCBvZiB0aGUgZGV2aWNlcyB0aGF0IHVzZSB0aGlzIGZpcm13YXJlIGlzIGF2YWlsYWJsZSBoZXJlOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo5MjpcXHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL2RyaXZlcnMvaXdsd2lmaSNmaXJtd2FyZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy05My1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz05NT1jb25maWcgSVdMV0lGSV9PUE1PREVfTU9EVUxBUlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTAyOmNvbW1lbnQgXFxcIldBUk5JTkc6IGl3bHdpZmkgaXMgdXNlbGVzcyB3aXRob3V0IElXTERWTSBvciBJV0xNVk0gb3IgSVdMTUxEXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMDMtXFx0ZGVwZW5kcyBvbiBJV0xEVk09biBcXHUwMDI2XFx1MDAyNiBJV0xNVk09biBcXHUwMDI2XFx1MDAyNiBJV0xNTEQ9blxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNz1jb25maWcgSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMDg6XFx0Ym9vbCBcXFwiRW5hYmxlIGZ1bGwgZGVidWdnaW5nIG91dHB1dCBpbiB0aGUgaXdsd2lmaSBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwOS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjExMDpcXHQgIFRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIGRlYnVnIHRyYWNpbmcgb3V0cHV0IGZvciB0aGUgaXdsd2lmaSBkcml2ZXJzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjExNjpcXHRcXHQvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTIyOlxcdFxcdCAgJSBlY2hvIDB4NDNmZmYgXFx1MDAzZSAvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjQtXFx0ICBZb3UgY2FuIGZpbmQgdGhlIGxpc3Qgb2YgZGVidWcgbWFzayB2YWx1ZXMgaW46XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEyNTpcXHRcXHQgIGRyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLWRlYnVnLmhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTI2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEzMT1jb25maWcgSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzMjpcXHRib29sIFxcXCJpd2x3aWZpIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMzLVxcdGRlcGVuZHMgb24gTUFDODAyMTFfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzQtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMzU6XFx0ICBFbmFibGUgY3JlYXRpb24gb2YgZGVidWdmcyBmaWxlcyBmb3IgdGhlIGl3bHdpZmkgZHJpdmVycy4gVGhpc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzYtXFx0ICBpcyBhIGxvdy1pbXBhY3Qgb3B0aW9uIHRoYXQgYWxsb3dzIGdldHRpbmcgaW5zaWdodCBpbnRvIHRoZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEzOT1jb25maWcgSVdMV0lGSV9ERVZJQ0VfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxNDA6XFx0Ym9vbCBcXFwiaXdsd2lmaSBkZXZpY2UgYWNjZXNzIHRyYWNpbmdcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0MS1cXHRkZXBlbmRzIG9uIEVWRU5UX1RSQUNJTkdcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xNDQtXFx0ICBTYXkgWSBoZXJlIHRvIHRyYWNlIGFsbCBjb21tYW5kcywgaW5jbHVkaW5nIFRYIGZyYW1lcyBhbmQgSU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTQ1OlxcdCAgYWNjZXNzZXMsIHNlbnQgdG8gdGhlIGRldmljZS4gSWYgeW91IHNheSB5ZXMsIGl3bHdpZmkgd2lsbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xNDYtXFx0ICByZWdpc3RlciB3aXRoIHRoZSBmdHJhY2UgZnJhbWV3b3JrIGZvciBldmVudCB0cmFjaW5nIGFuZCBkdW1wXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTItIyBjb21tb25cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0lXTFdJRkkpXFx0Kz0gaXdsd2lmaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGl3bC1pby5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo1Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGl3bC1kcnYub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Njppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtZGVidWcub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Nzppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtbnZtLXV0aWxzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjg6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLXV0aWxzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjk6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLXBoeS1kYi5vIGl3bC1udm0tcGFyc2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xMS0jIEJ1c1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTI6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gcGNpZS9jdHh0LWluZm8ubyBwY2llL2N0eHQtaW5mby12Mi5vIHBjaWUvZHJ2Lm8gcGNpZS91dGlscy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxMzppd2x3aWZpLW9ianNcXHRcXHQrPSBwY2llL2dlbjFfMi9yeC5vIHBjaWUvZ2VuMV8yL3R4Lm8gcGNpZS9nZW4xXzIvdHJhbnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTQ6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gcGNpZS9nZW4xXzIvdHJhbnMtZ2VuMi5vIHBjaWUvZ2VuMV8yL3R4LWdlbjIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZT0xNj1DRkxBR1NfcGNpZS9kcnYubyArPSAtV25vLW92ZXJyaWRlLWluaXRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTgtIyBjb21iaW5lZCBNQUMvUkYgY29uZmlndXJhdGlvbnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjE5Oml3bHdpZmktJChDT05GSUdfSVdMRFZNKSArPSBjZmcvMTAwMC5vIGNmZy8yMDAwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjIwOml3bHdpZmktJChDT05GSUdfSVdMRFZNKSArPSBjZmcvNTAwMC5vIGNmZy82MDAwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjIxOml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvNzAwMC5vIGNmZy84MDAwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTIyLSMgTUFDIGNvbmZpZ3VyYXRpb25zXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyMzppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnLzkwMDAubyBjZmcvMjIwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjQ6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy9heDIxMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNTppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnL2J6Lm8gY2ZnL3NjLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI2Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSArPSBjZmcvYnoubyBjZmcvc2MubyBjZmcvZHIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMjctIyBSRiBjb25maWd1cmF0aW9uc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mjg6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy9yZi1qZi5vIGNmZy9yZi1oci5vIGNmZy9yZi1nZi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyOTppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgKz0gY2ZnL3JmLWZtLm8gY2ZnL3JmLXdoLm8gY2ZnL3JmLXBlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzE6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWRiZy10bHYub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzI6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLXRyYW5zLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzQ6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gZncvaW1nLm8gZncvbm90aWYtd2FpdC5vIGZ3L3JzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM1Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGZ3L2RiZy5vIGZ3L2RiZy1vbGQubyBmdy9wbnZtLm8gZncvZHVtcC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNjppd2x3aWZpLW9ianNcXHRcXHQrPSBmdy9yZWd1bGF0b3J5Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM3Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBmdy9wYWdpbmcubyBmdy9zbWVtLm8gZncvaW5pdC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozODppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgKz0gZncvc21lbS5vIGZ3L2luaXQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzk6aXdsd2lmaS0kKENPTkZJR19BQ1BJKSArPSBmdy9hY3BpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQwOml3bHdpZmktJChDT05GSUdfRUZJKVxcdCs9IGZ3L3VlZmkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDE6aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFQlVHRlMpICs9IGZ3L2RlYnVnZnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0Mzppd2x3aWZpLW9ianMgKz0gJChpd2x3aWZpLW0pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQ1Oml3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lORykgKz0gaXdsLWRldnRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jLTI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYzoyNTojZGVmaW5lIElXTDEwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTEwMDBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jLTI2LSNkZWZpbmUgSVdMMTAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wxMDAwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYy0yNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmM6Mjg6I2RlZmluZSBJV0wxMDBfRldfUFJFIFxcXCJpd2x3aWZpLTEwMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjktI2RlZmluZSBJV0wxMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTAwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYzozMTojZGVmaW5lIElXTDIwMzBfRldfUFJFIFxcXCJpd2x3aWZpLTIwMzBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTMyLSNkZWZpbmUgSVdMMjAzMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wyMDMwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6MzQ6I2RlZmluZSBJV0wyMDAwX0ZXX1BSRSBcXFwiaXdsd2lmaS0yMDAwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zNS0jZGVmaW5lIElXTDIwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMjAwMF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jOjM3OiNkZWZpbmUgSVdMMTA1X0ZXX1BSRSBcXFwiaXdsd2lmaS0xMDVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTM4LSNkZWZpbmUgSVdMMTA1X01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDEwNV9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jOjQwOiNkZWZpbmUgSVdMMTM1X0ZXX1BSRSBcXFwiaXdsd2lmaS0xMzVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTQxLSNkZWZpbmUgSVdMMTM1X01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDEzNV9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmMtMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoxODojZGVmaW5lIElXTF9DQ19BX0ZXX1BSRVxcdFxcdFxcdFxcXCJpd2x3aWZpLWNjLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmM6MTk6I2RlZmluZSBJV0xfUVVfQl9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLVF1LWIwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmM6MjA6I2RlZmluZSBJV0xfUVVfQ19IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLVF1LWMwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIyMDAwLmM6MjE6I2RlZmluZSBJV0xfUVVaX0FfSFJfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1RdVotYTAtaHItYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYy0yMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0yNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmM6Mjc6I2RlZmluZSBJV0w1MDAwX0ZXX1BSRSBcXFwiaXdsd2lmaS01MDAwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0yOC0jZGVmaW5lIElXTDUwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNTAwMF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmMtMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jOjMwOiNkZWZpbmUgSVdMNTE1MF9GV19QUkUgXFxcIml3bHdpZmktNTE1MFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmMtMzEtI2RlZmluZSBJV0w1MTUwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDUxNTBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jOjQwOiNkZWZpbmUgSVdMNjAwMF9GV19QUkUgXFxcIml3bHdpZmktNjAwMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDEtI2RlZmluZSBJV0w2MDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDYwMDBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYzo0MzojZGVmaW5lIElXTDYwNTBfRldfUFJFIFxcXCJpd2x3aWZpLTYwNTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ0LSNkZWZpbmUgSVdMNjA1MF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w2MDUwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDY6I2RlZmluZSBJV0w2MDA1X0ZXX1BSRSBcXFwiaXdsd2lmaS02MDAwZzJhXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00Ny0jZGVmaW5lIElXTDYwMDVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjAwNV9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jOjQ5OiNkZWZpbmUgSVdMNjAzMF9GV19QUkUgXFxcIml3bHdpZmktNjAwMGcyYlxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNTAtI2RlZmluZSBJV0w2MDMwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDYwMzBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjM3OiNkZWZpbmUgSVdMNzI2MF9GV19QUkUgXFxcIml3bHdpZmktNzI2MFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtMzgtI2RlZmluZSBJV0w3MjYwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDcyNjBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzo0MDojZGVmaW5lIElXTDMxNjBfRldfUFJFIFxcXCJpd2x3aWZpLTMxNjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQxLSNkZWZpbmUgSVdMMzE2MF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wzMTYwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6NDM6I2RlZmluZSBJV0wzMTY4X0ZXX1BSRSBcXFwiaXdsd2lmaS0zMTY4XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00NC0jZGVmaW5lIElXTDMxNjhfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMzE2OF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQ2OiNkZWZpbmUgSVdMNzI2NV9GV19QUkUgXFxcIml3bHdpZmktNzI2NVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDctI2RlZmluZSBJV0w3MjY1X01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDcyNjVfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzo0OTojZGVmaW5lIElXTDcyNjVEX0ZXX1BSRSBcXFwiaXdsd2lmaS03MjY1RFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNTAtI2RlZmluZSBJV0w3MjY1RF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w3MjY1RF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0yOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmM6MzA6I2RlZmluZSBJV0w4MDAwX0ZXX1BSRSBcXFwiaXdsd2lmaS04MDAwQ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmMtMzEtI2RlZmluZSBJV0w4MDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy84MDAwLmM6MzQ6I2RlZmluZSBJV0w4MjY1X0ZXX1BSRSBcXFwiaXdsd2lmaS04MjY1XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0zNS0jZGVmaW5lIElXTDgyNjVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jLTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzkwMDAuYzoyMjojZGVmaW5lICBJV0w5MDAwX0ZXX1BSRSBcXFwiaXdsd2lmaS05MDAwLXB1LWIwLWpmLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzkwMDAuYzoyMzojZGVmaW5lICBJV0w5MjYwX0ZXX1BSRSBcXFwiaXdsd2lmaS05MjYwLXRoLWIwLWpmLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzkwMDAuYy0yNC0jZGVmaW5lIElXTDkwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjE4OiNkZWZpbmUgSVdMX1NPX0FfR0ZfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zby1hMC1nZi1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjE5OiNkZWZpbmUgSVdMX1RZX0FfR0ZfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS10eS1hMC1nZi1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjIwOiNkZWZpbmUgSVdMX01BX0FfR0ZfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1tYS1hMC1nZi1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjIxOiNkZWZpbmUgSVdMX01BX0JfR0ZfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1tYS1iMC1nZi1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjIyOiNkZWZpbmUgSVdMX1NPX0FfR0Y0X0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc28tYTAtZ2Y0LWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjM6I2RlZmluZSBJV0xfTUFfQV9HRjRfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1tYS1hMC1nZjQtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyNDojZGVmaW5lIElXTF9NQV9CX0dGNF9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWIwLWdmNC1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI1OiNkZWZpbmUgSVdMX1NPX0FfSFJfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zby1hMC1oci1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI2OiNkZWZpbmUgSVdMX01BX0FfSFJfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1tYS1hMC1oci1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI3OiNkZWZpbmUgSVdMX01BX0JfSFJfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1tYS1iMC1oci1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jLTI4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jOjE4OiNkZWZpbmUgSVdMX0JaX0FfRk1fQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1iei1hMC1mbS1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jOjE5OiNkZWZpbmUgSVdMX0JaX0FfRk1fQ19GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1iei1hMC1mbS1jMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jOjIwOiNkZWZpbmUgSVdMX0JaX0FfRk00X0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktYnotYTAtZm00LWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MjE6I2RlZmluZSBJV0xfR0xfQl9GTV9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWdsLWIwLWZtLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MjI6I2RlZmluZSBJV0xfR0xfQ19GTV9DX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWdsLWMwLWZtLWMwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmMtMjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9kci5jLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2RyLmM6MTc6I2RlZmluZSBJV0xfRFJfQV9QRV9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWRyLWEwLXBlLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2RyLmMtMTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmM6MTQ6I2RlZmluZSBJV0xfQlpfQV9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmM6MTU6I2RlZmluZSBJV0xfQlpfQV9HRjRfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1iei1hMC1nZjQtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNjojZGVmaW5lIElXTF9TQ19BX0dGX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtZ2YtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNzojZGVmaW5lIElXTF9TQ19BX0dGNF9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjLWEwLWdmNC1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jLTE4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtaHIuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jOjE0OiNkZWZpbmUgSVdMX0JaX0FfSFJfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1iei1hMC1oci1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jOjE1OiNkZWZpbmUgSVdMX1NDX0FfSFJfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zYy1hMC1oci1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jOjE2OiNkZWZpbmUgSVdMX1NDX0FfSFJfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zYy1hMC1oci1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jLTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jOjE0OiNkZWZpbmUgSVdMX1FVX0JfSkZfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1RdS1iMC1qZi1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jOjE1OiNkZWZpbmUgSVdMX1FVX0NfSkZfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1RdS1jMC1qZi1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jOjE2OiNkZWZpbmUgSVdMX1FVWl9BX0pGX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktUXVaLWEwLWpmLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTc6I2RlZmluZSBJV0xfU09fQV9KRl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNvLWEwLWpmLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmMtMTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MTg6I2RlZmluZSBJV0xfU0NfQV9GTV9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjLWEwLWZtLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MTk6I2RlZmluZSBJV0xfU0NfQV9GTV9DX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjLWEwLWZtLWMwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MjA6I2RlZmluZSBJV0xfU0NfQV9XSF9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjLWEwLXdoLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmM6MjE6I2RlZmluZSBJV0xfU0MyX0FfRk1fQ19GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zYzItYTAtZm0tYzBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoyMjojZGVmaW5lIElXTF9TQzJfQV9XSF9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjMi1hMC13aC1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jLTIzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIyNjI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2Z3X3Jlc3RhcnRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI2Ni1cXHRzdHJ1Y3QgaXdsX3ByaXYgKnByaXYgPSBmaWxlLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIyNjc6XFx0Ym9vbCBmd19yZXN0YXJ0ID0gaXdsd2lmaV9tb2RfcGFyYW1zLmZ3X3Jlc3RhcnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyNjgtXFx0aW50IF9fbWF5YmVfdW51c2VkIHJldDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI2OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjI3MDpcXHRpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydCA9IHRydWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyNzEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI3OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjI3OTpcXHRpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydCA9IGZ3X3Jlc3RhcnQ7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyODAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjMxMz12b2lkIGl3bF9kYmdmc19yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2RpcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMzgxOlxcdFxcdGRlYnVnZnNfY3JlYXRlX3N5bWxpbmsoXFxcIml3bHdpZmlcXFwiLCBtYWM4MDIxMV9kaXIsIGJ1Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzODItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg9MjEwPXN0cnVjdCBpd2xfc2Vuc2l0aXZpdHlfcmFuZ2VzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTI0NC0gKiBOYW1pbmcgY29udmVudGlvbiAtLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oOjI0NTogKiBpd2xfICAgICAgICAgXFx1MDAzYy0tIElzIHBhcnQgb2YgaXdsd2lmaVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTI0Ni0gKiBpd2xYWFhYXyAgICAgXFx1MDAzYy0tIEhhcmR3YXJlIHNwZWNpZmljIChpbXBsZW1lbnRlZCBpbiBpd2wtWFhYWC5jIGZvciBYWFhYKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZWVwcm9tLmM9MTA1OT1pd2xfcGFyc2VfZWVwcm9tX2RhdGEoc3RydWN0IGl3bF90cmFucyAqdHJhbnMsIGNvbnN0IHN0cnVjdCBpd2xfcmZfY2ZnICpjZmcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYy0xMTE4LVxcdGRhdGEtXFx1MDAzZXNrdV9jYXBfaXBhbl9lbmFibGUgPSBza3UgXFx1MDAyNiBFRVBST01fU0tVX0NBUF9JUEFOX0VOQUJMRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYzoxMTE5OlxcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMuZGlzYWJsZV8xMW4gXFx1MDAyNiBJV0xfRElTQUJMRV9IVF9BTEwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZWVwcm9tLmMtMTEyMC1cXHRcXHRkYXRhLVxcdTAwM2Vza3VfY2FwXzExbl9lbmFibGUgPSBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xlZC5jPTE1NT12b2lkIGl3bF9sZWRzX2luaXQoc3RydWN0IGl3bF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xlZC5jLTE1Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmM6MTU3OlxcdGludCBtb2RlID0gaXdsd2lmaV9tb2RfcGFyYW1zLmxlZF9tb2RlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xlZC5jLTE1OC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM9MjAxPXZvaWQgaXdsYWduX3NlbmRfYWR2YW5jZV9idF9jb25maWcoc3RydWN0IGl3bF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmMtMjYyLVxcdCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jOjI2MzpcXHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5idF9jb2V4X2FjdGl2ZSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTI2NC1cXHQgICAgcHJpdi1cXHUwMDNlaXdfbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9BREhPQykge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM9MTAzND1pbnQgaXdsYWduX3N1c3BlbmQoc3RydWN0IGl3bF9wcml2ICpwcml2LCBzdHJ1Y3QgY2ZnODAyMTFfd293bGFuICp3b3dsYW4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYy0xMTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jOjExMzY6XFx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYy0xMTM3LVxcdFxcdC8qIG1hcmsgYWxsIGtleXMgY2xlYXIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9Nzg9aW50IGl3bGFnbl9tYWNfc2V0dXBfcmVnaXN0ZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xMjEtXFx0aWYgKHByaXYtXFx1MDAzZWZ3LVxcdTAwM2V1Y29kZV9jYXBhLmZsYWdzIFxcdTAwMjYgSVdMX1VDT0RFX1RMVl9GTEFHU19NRlAgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjEyMjpcXHQgICAgIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTEyMy1cXHRcXHRpZWVlODAyMTFfaHdfc2V0KGh3LCBNRlBfQ0FQQUJMRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE1Mi1cXHRcXHRcXHRcXHRcXHQgICAgIFdJUEhZX1dPV0xBTl9SRktJTExfUkVMRUFTRTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE1MzpcXHRcXHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE1NC1cXHRcXHRcXHRwcml2LVxcdTAwM2V3b3dsYW5fc3VwcG9ydC5mbGFncyB8PVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzoxNjc6XFx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5wb3dlcl9zYXZlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTY4LVxcdFxcdGh3LVxcdTAwM2V3aXBoeS1cXHUwMDNlZmxhZ3MgfD0gV0lQSFlfRkxBR19QU19PTl9CWV9ERUZBVUxUO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz0zMjU9c3RhdGljIHZvaWQgaXdsYWduX21hY19zZXRfcmVrZXlfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMzMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MzMxOlxcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0zMzItXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz01ODg9c3RhdGljIGludCBpd2xhZ25fbWFjX3NldF9rZXkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGVudW0gc2V0X2tleV9jbWQgY21kLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy02MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzo2MDE6XFx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNjAyLVxcdFxcdElXTF9ERUJVR19NQUM4MDIxMShwcml2LCBcXFwibGVhdmUgLSBod2NyeXB0byBkaXNhYmxlZFxcXFxuXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9Mzk4PXN0YXRpYyB2b2lkIGl3bF9wcmludF9jb250X2V2ZW50X3RyYWNlKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyIGJhc2UsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDM0LVxcdFxcdGlmIChtb2RlID09IDApIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6NDM1OlxcdFxcdFxcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX2NvbnRfZXZlbnQoXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTQzNi1cXHRcXHRcXHRcXHRcXHRwcml2LVxcdTAwM2V0cmFucy1cXHUwMDNlZGV2LCAwLCB0aW1lLCBldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDM4LVxcdFxcdFxcdGRhdGEgPSBpd2xfcmVhZDMyKHByaXYtXFx1MDAzZXRyYW5zLCBIQlVTX1RBUkdfTUVNX1JEQVQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo0Mzk6XFx0XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfY29udF9ldmVudChcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDQwLVxcdFxcdFxcdFxcdFxcdHByaXYtXFx1MDAzZXRyYW5zLVxcdTAwM2VkZXYsIHRpbWUsIGRhdGEsIGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz00NDc9c3RhdGljIHZvaWQgaXdsX2NvbnRpbnVvdXNfZXZlbnRfdHJhY2Uoc3RydWN0IGl3bF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTUwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6NTA0OlxcdFxcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX3dyYXBfZXZlbnQocHJpdi1cXHUwMDNldHJhbnMtXFx1MDAzZWRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNTA1LVxcdFxcdFxcdFxcdG51bV93cmFwcyAtIHByaXYtXFx1MDAzZWV2ZW50X2xvZy5udW1fd3JhcHMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9NzM3PXN0YXRpYyB2b2lkIGl3bF9zZW5kX2J0X2NvbmZpZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNzQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo3NDY6XFx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuYnRfY29leF9hY3RpdmUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTc0Ny1cXHRcXHRidF9jbWQuZmxhZ3MgPSBCVF9DT0VYX0RJU0FCTEU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9MTIzMz1zdGF0aWMgc3RydWN0IGl3bF9vcF9tb2RlICppd2xfb3BfbW9kZV9kdm1fc3RhcnQoc3RydWN0IGl3bF90cmFucyAqdHJhbnMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMyNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTMyNTpcXHRzd2l0Y2ggKGl3bHdpZmlfbW9kX3BhcmFtcy5hbXNkdV9zaXplKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTEzMjYtXFx0Y2FzZSBJV0xfQU1TRFVfREVGOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTEzMzYtXFx0XFx0cHJfZXJyKFxcXCJVbnN1cHBvcnRlZCBhbXNkdV9zaXplOiAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTMzNzpcXHRcXHQgICAgICAgaXdsd2lmaV9tb2RfcGFyYW1zLmFtc2R1X3NpemUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMzM4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xNjk4PXN0YXRpYyBpbnQgaXdsX3ByaW50X2V2ZW50X2xvZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHUzMiBzdGFydF9pZHgsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc0Ny1cXHRcXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxNzQ4OlxcdFxcdFxcdFxcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX2V2ZW50KHRyYW5zLVxcdTAwM2VkZXYsIDAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE3NDktXFx0XFx0XFx0XFx0XFx0dGltZSwgZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE3NjEtXFx0XFx0XFx0XFx0XFx0dGltZSwgZGF0YSwgZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxNzYyOlxcdFxcdFxcdFxcdHRyYWNlX2l3bHdpZmlfZGV2X3Vjb2RlX2V2ZW50KHRyYW5zLVxcdTAwM2VkZXYsIHRpbWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE3NjMtXFx0XFx0XFx0XFx0XFx0ZGF0YSwgZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTE5MTI9c3RhdGljIHZvaWQgaXdsYWduX2Z3X2Vycm9yKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgYm9vbCBvbmRlbWFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xOTQ1LVxcdGlmICghdGVzdF9iaXQoU1RBVFVTX0VYSVRfUEVORElORywgXFx1MDAyNnByaXYtXFx1MDAzZXN0YXR1cykpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTk0NjpcXHRcXHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLmZ3X3Jlc3RhcnQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTk0Ny1cXHRcXHRcXHRJV0xfREVCVUdfRlcocHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM9MjcxPXN0YXRpYyB2b2lkIGl3bF9wb3dlcl9idWlsZF9jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYy0zMDEtXFx0XFx0YnV0IHdlIHBhc3MgMC00IGJlY2F1c2UgaXQgYWN0cyBhcyBhbiBhcnJheSBpbmRleC4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jOjMwMjpcXHRcXHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX2xldmVsIFxcdTAwM2UgSVdMX1BPV0VSX0lOREVYXzEgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jOjMwMzpcXHRcXHQgICAgaXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX2xldmVsIFxcdTAwM2M9IElXTF9QT1dFUl9OVU0pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYy0zMDQtXFx0XFx0XFx0aXdsX3N0YXRpY19zbGVlcF9jbWQocHJpdiwgY21kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM6MzA1OlxcdFxcdFxcdFxcdGl3bHdpZmlfbW9kX3BhcmFtcy5wb3dlcl9sZXZlbCAtIDEsIGR0aW1wZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmMtMzA2LVxcdFxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9NjA0PXN0YXRpYyB2b2lkIGl3bGFnbl9wYXNzX3BhY2tldF90b19tYWM4MDIxMShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTYyMy1cXHQvKiBJbiBjYXNlIG9mIEhXIGFjY2VsZXJhdGVkIGNyeXB0byBhbmQgYmFkIGRlY3J5cHRpb24sIGRyb3AgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjYyNDpcXHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0byBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNjI1LVxcdCAgICBpd2xhZ25fc2V0X2RlY3J5cHRlZF9mbGFnKHByaXYsIGhkciwgYW1wZHVfc3RhdHVzLCBzdGF0cykpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmM9MTAyMz1pbnQgaXdsYWduX2NvbW1pdF9yeG9uKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGl3bF9yeG9uX2NvbnRleHQgKmN0eClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYy0xMTAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYzoxMTAzOlxcdGl3bF9zZXRfcnhvbl9od2NyeXB0byhwcml2LCBjdHgsICFpd2x3aWZpX21vZF9wYXJhbXMuc3djcnlwdG8pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYy0xMTA0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaD0xMzY9c3RydWN0IGl3bF9md19wYWdpbmcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaC0xNDMtLyoqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaDoxNDQ6ICogZW51bSBpd2xfZndfdHlwZSAtIGl3bHdpZmkgZmlybXdhcmUgdHlwZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvaW1nLmgtMTQ1LSAqIEBJV0xfRldfRFZNOiBEVk0gZmlybXdhcmVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYz00OTk9dm9pZCBpd2xfZGJnX3Rsdl9sb2FkX2JpbihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGJnLXRsdi5jLTUwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kYmctdGx2LmM6NTA1OlxcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLmVuYWJsZV9pbmkgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kYmctdGx2LmMtNTA2LVxcdCAgICB0cmFucy1cXHUwMDNlbWFjX2NmZy1cXHUwMDNlZGV2aWNlX2ZhbWlseSBcXHUwMDNjPSBJV0xfREVWSUNFX0ZBTUlMWV84MDAwKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYz0xMz12b2lkIF9faXdsXyAjI2ZuKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pXFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy0yMi1cXHRkZXZfICMjZm4oZGV2LCBcXFwiJXBWXFxcIiwgXFx1MDAyNnZhZik7XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM6MjM6XFx0dHJhY2VfaXdsd2lmaV8gIyNmbihcXHUwMDI2dmFmKTtcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy0yNC1cXHR2YV9lbmQoYXJncyk7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYz0zND12b2lkIF9faXdsX2VycihzdHJ1Y3QgZGV2aWNlICpkZXYsIGVudW0gaXdsX2Vycl9tb2RlIG1vZGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02MC1cXHR2YWYudmEgPSBcXHUwMDI2YXJncztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjYxOlxcdHRyYWNlX2l3bHdpZmlfZXJyKFxcdTAwMjZ2YWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNjItXFx0dmFfZW5kKGFyZ3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYz02Nz12b2lkIF9faXdsX2RiZyhzdHJ1Y3QgZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTgyLSNlbmRpZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM6ODM6XFx0dHJhY2VfaXdsd2lmaV9kYmcobGV2ZWwsIGZ1bmN0aW9uLCBcXHUwMDI2dmFmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTg0LVxcdHZhX2VuZChhcmdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9MTY9c3RhdGljIGlubGluZSBib29sIGl3bF9oYXZlX2RlYnVnX2xldmVsKHUzMiBsZXZlbClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTgtI2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxOTpcXHRyZXR1cm4gaXdsd2lmaV9tb2RfcGFyYW1zLmRlYnVnX2xldmVsIFxcdTAwMjYgbGV2ZWw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0yMC0jZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjYtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEyNzogKlxcdC9zeXMvbW9kdWxlL2l3bHdpZmkvcGFyYW1ldGVycy9kZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI4LSAqIHdoZW4gQ09ORklHX0lXTFdJRklfREVCVUc9eS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEyOS0gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTMwOiAqXFx0L3N5cy9rZXJuZWwvZGVidWcvcGh5MC9pd2x3aWZpL2RlYnVnL2RlYnVnX2xldmVsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMzEtICogd2hlbiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTPXkuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMTQtI3VuZGVmIFRSQUNFX1NZU1RFTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaDoxNTojZGVmaW5lIFRSQUNFX1NZU1RFTSBpd2x3aWZpX2RhdGFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oOjE3OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X3R4X3RiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0xOC1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oOjM3OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X3J4X2RhdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oLTM4LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTQtI3VuZGVmIFRSQUNFX1NZU1RFTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTU6I2RlZmluZSBUUkFDRV9TWVNURU0gaXdsd2lmaV9pb1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDoxNzpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3JlYWQzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE4LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIG9mZnMsIHUzMiB2YWwpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjM0OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGU4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMzUtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTggdmFsKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtNTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDo1MTpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC01Mi1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBvZmZzLCB1MzIgdmFsKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtNjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDo2ODpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlNjQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC02OS1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBvZmZzLCB1NjQgdmFsKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDo4NTpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlX3BycGgzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTg2LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIG9mZnMsIHUzMiB2YWwpLFxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjA1OjU3LjQ3NTk1MDYxNFoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MjcwNjcwNzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlY29uc3RydWN0aW5nIHRoZSBpd2x3aWZpIEZ1enppbmcgU3RyYXRlZ3kqKlxuXG5Pa2F5LCBzbyBJJ20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgaG93IHN5emthbGxlciBpcyBmdXp6aW5nIGBpd2x3aWZpYC4gRmlyc3QgdGhvdWdodCwgSSBzZWUgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgLCB3aGljaCBzY3JlYW1zIGBtYWM4MDIxMV9od3NpbWAuIEJ1dCB0aGF0J3MgYSBzaW11bGF0b3IsIGFuZCBkb2Vzbid0IGRpcmVjdGx5IGhpdCBgaXdsd2lmaWAuIFNvLCBob3cgaXMgaXQgZ2V0dGluZyBpbiB0aGVyZT8gSSBrbm93IHN5emthbGxlciBoYXMgYHN5el9wY2lfZGV2aWNlYC4uLiB3YWl0LCBtYXliZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5X2lkYD8gTm8sIHRoYXQncyBub3QgaXQuXG5cblRoZW4gSSBzcG90IGBDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUU2AuIENvdWxkIGl0IGJlIGhpdHRpbmcgS1VOSVQgdGVzdHM/IE5vLCBzeXprYWxsZXIgZG9lc24ndCBkaXJlY3RseSBmdXp6IHRob3NlLiBIbW0sIHdhaXQsIEkgc2VlIGBzeXpfdXNiX2Nvbm5lY3RgLiBEb2VzIGBpd2x3aWZpYCBldmVuICpoYXZlKiBhIFVTQiBjb21wb25lbnQ/IE5vLCB0aGF0J3MgUENJIG9ubHkuIE9rYXksIGJhY2sgdG8gYHN5el9wY2lfZGV2aWNlYC4gTWF5YmUgc3l6a2FsbGVyIGlzIHVzaW5nIFBDSSBmdXp6aW5nLCBtYXliZSB3aXRoIFZGSU8sIG9yIHNvbWV0aGluZyBzaW1pbGFyPyBObywgSSB0aGluayBpdCB1c2VzIGBzeXpfcGNpX2RldmljZWAgb3IgYHN5el9rdm1fc2V0dXBfY3B1YCBkaXJlY3RseS5cblxuV2FpdCwgZGlkIHRoZXkgcmVjZW50bHkgYWRkIGEgbmV3IFBDSSBwcmltaXRpdmUgbGlrZSBgc3l6X3BjaV9kZXZpY2VgIG9yIGBzeXpfcGNpX2Nvbm5lY3RgPyBMZXQgbWUgc2VhcmNoIGZvciBgc3l6X3BjaWAgd2l0aGluIHRoZSBzeXprYWxsZXIgY29kZS4gTm8gbWF0Y2hlcy4gU28sIHRoZSBgc3l6X3VzYl9jb25uZWN0YCBpcyBhIHJlZCBoZXJyaW5nLiBUaGVuLCBJIHJlbWVtYmVyIGBtYWM4MDIxMV9od3NpbWAgYWdhaW4uIEJ1dCB0aGF0J3MgYSBzaW11bGF0b3IsIGFuZCBkb2Vzbid0IHVzZSB0aGUgYWN0dWFsIGBpd2x3aWZpYCBkcml2ZXJzLlxuXG5XYWl0LCB0aGVyZSBpcyBhIGBDT05GSUdfTUFDODAyMTFfSFdTSU1gLiBDb3VsZCB0aGVyZSBiZSBhbiBgaXdsd2lmaWAgc2ltdWxhdG9yPyBCaW5nbyEgYGl3bHdpZmlgIGhhcyBpdHMgb3duIHNpbXVsYXRvciEgTm93LCBJIG5lZWQgdG8gY29uZmlybSB0aGlzIGJ5IGNoZWNraW5nIHRoZSBgS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWdgLCB0byBjb25maXJtIHRoZSBzaW11bGF0b3Igc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExOTIwMiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzowNjowNC43NDY2MjQ1MzFaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNTA5MjE3MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzaW1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDUyIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTA3PWNvbmZpZyBJV0xXSUZJX0RFQlVHXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMjA6XFx0ICBUbyBzZXQgYSB2YWx1ZSwgc2ltcGx5IGVjaG8gYW4gOC1ieXRlIGhleCB2YWx1ZSB0byB0aGUgc2FtZSBmaWxlOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jPTcxNz1zdGF0aWMgdm9pZCBpd2xfZmluZF9kaXNjb25uX2FudGVubmEoc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIqIGF2ZXJhZ2Vfc2lnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy03NzUtXFx0ICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjc3NjpcXHQgKiBUbyBiZSBzYWZlLCBzaW1wbHkgbWFzayBvdXQgYW55IGNoYWlucyB0aGF0IHdlIGtub3dcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTc3Ny1cXHQgKiBhcmUgbm90IG9uIHRoZSBkZXZpY2UuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jPTgyND1zdGF0aWMgdm9pZCBpd2xhZ25fZ2Fpbl9jb21wdXRhdGlvbihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTg1My1cXHRcXHRcXHQgKiAgIG5vdCB0aGUgZm9ybWF0IG9mIGFueSBpbnRlcm5hbCBkZXZpY2UgcmVnaXN0ZXJzLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmM6ODU0OlxcdFxcdFxcdCAqICAgRG8gbm90IGNoYW5nZSB0aGlzIGZvcm1hdCBmb3IgZS5nLiA2MDUwIG9yIHNpbWlsYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTg1NS1cXHRcXHRcXHQgKiAgIGRldmljZXMuICBDaGFuZ2UgZm9ybWF0IG9ubHkgaWYgbW9yZSByZXNvbHV0aW9uXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTUwOD1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTM3LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo1Mzg6ICogUkVQTFlfUlhPTiA9IDB4MTAgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzOS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01NTU9c3RydWN0IGl3bF9yeG9uX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTU3OS0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTgwOiAqIFJFUExZX1JYT05fQVNTT0MgPSAweDExIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01ODEtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01ODI9c3RydWN0IGl3bF9yeG9uX2Fzc29jX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMC0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NjAxOiAqIFJFUExZX1JYT05fVElNSU5HID0gMHgxNCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNjAyLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NjAzPXN0cnVjdCBpd2xfcnhvbl90aW1lX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxMy0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NjE0OiAqIFJFUExZX0NIQU5ORUxfU1dJVENIID0gMHg3MiAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNjE1LSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD02OTA9c3RydWN0IGl3bF9hY19xb3Mge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC03MDYtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjcwNzogKiBSRVBMWV9RT1NfUEFSQU0gPSAweDEzIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC03MDgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTQzNT1zdHJ1Y3QgaXdsX2NvbXByZXNzZWRfYmFfcmVzcCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE0NTItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE0NTM6ICogUkVQTFlfVFhfUFdSX1RBQkxFX0NNRCA9IDB4OTcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE0NTQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTUyMD1zdHJ1Y3QgaXdsX2xpbmtfcXVhbF9hZ2dfcGFyYW1zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTU0Ni0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MTU0NzogKiBSRVBMWV9UWF9MSU5LX1FVQUxJVFlfQ01EID0gMHg0ZSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTU0OC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0xNzM0PXN0cnVjdCBpd2xfbGlua19xdWFsaXR5X2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTUtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE3OTY6ICogUkVQTFlfQlRfQ09ORklHID0gMHg5YiAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTc5Ny0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yMDE5PXN0cnVjdCBpd2xfc3BlY3RydW1fbm90aWZpY2F0aW9uIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1MS0gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MjA1MjogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMDUzLSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTIxMjE9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIxMzUtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjIxMzY6ICogUkVQTFlfQ0FSRF9TVEFURV9DTUQgPSAweGEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMTM3LSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yNDE2PXN0cnVjdCBpd2xhZ25fYmVhY29uX25vdGlmIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyMy0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MjQyNDogKiBSRVBMWV9UWF9CRUFDT04gPSAweDkxIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNDI1LSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yNzUwPXN0cnVjdCBpd2xfbWlzc2VkX2JlYWNvbl9ub3RpZiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzItLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjI3NzM6ICogU0VOU0lUSVZJVFlfQ01EID0gMHhhOCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjc3NC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zMDA5PXN0cnVjdCBpd2xfZW5oYW5jZV9zZW5zaXRpdml0eV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMDE1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMDE2OiAqIFJFUExZX1BIWV9DQUxJQlJBVElPTl9DTUQgPSAweGIwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMDE3LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTMxNzg9c3RydWN0IGl3bF9jYWxpYl9jaGFpbl9ub2lzZV9nYWluX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTMxOTItICogTEVEcyBDb21tYW5kIFxcdTAwMjYgUmVzcG9uc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjMxOTM6ICogUkVQTFlfTEVEU19DTUQgPSAweDQ4IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTk0LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTM5MDI9c3RydWN0IGl3bF93aXBhbl9wMnBfY2hhbm5lbF9zd2l0Y2hfY21kIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzkxMy0gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzkxNDogKiBJbiBiZWFjb25zLCB0aGUgTm9BIHNjaGVkdWxlIGlzIHNpbXBseSBhcHBlbmRlZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzkxNS0gKiB0byB0aGUgZnJhbWUgd2UgZ2l2ZSB0aGUgZGV2aWNlLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTI5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzAtXFx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCxcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjMxOlxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMi1cXHQubGxzZWVrID0gZ2VuZXJpY19maWxlX2xsc2VlayxcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX2RiZ2ZzXyMjbmFtZSMjX29wcyA9IHsgICAgICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zNy1cXHQud3JpdGUgPSBpd2xfZGJnZnNfIyNuYW1lIyNfd3JpdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozODpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzktXFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00Ni1cXHQucmVhZCA9IGl3bF9kYmdmc18jI25hbWUjI19yZWFkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0NzpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDgtXFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUxPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxMzY6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNy1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE2OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfd293bGFuX3NyYW1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE3OTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODAtXFx0XFx0XFx0XFx0ICAgICAgIHByaXYtXFx1MDAzZXdvd2xhbl9zcmFtLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3RhdGlvbnNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjM0OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzUtXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX252bV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTI3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjczOlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yNzQtXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yNzg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYW5uZWxzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMzctXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozMzg6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMzOS1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM0Mz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzczLVxcdFxcdHRlc3RfYml0KFNUQVRVU19GV19FUlJPUiwgXFx1MDAyNnByaXYtXFx1MDAzZXN0YXR1cykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozNzQ6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zNzUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM3Nz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhfaGFuZGxlcnNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQwMTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDAyLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NDI5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19xb3NfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ1Mi1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQ1MzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ1NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NDU2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc190aGVybWFsX3Rocm90dGxpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00ODQtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0ODU6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00ODYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUxMT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfZGlzYWJsZV9odDQwX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTIyLVxcdFxcdFxcdHByaXYtXFx1MDAzZWRpc2FibGVfaHQ0MCA/IFxcXCJEaXNhYmxlZFxcXCIgOiBcXFwiRW5hYmxlZFxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo1MjM6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01MjQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUyNj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdGVtcGVyYXR1cmVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01MzUtXFx0cG9zICs9IHNjbnByaW50ZihidWYgKyBwb3MsIGJ1ZnN6IC0gcG9zLCBcXFwiJWRcXFxcblxcXCIsIHByaXYtXFx1MDAzZXRlbXBlcmF0dXJlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTM2OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01ODI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NsZWVwX2xldmVsX292ZXJyaWRlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTk2LVxcdHBvcyA9IHNjbnByaW50ZihidWYsIGJ1ZnN6LCBcXFwiJWRcXFxcblxcXCIsIHZhbHVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTk3OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTk4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz02MDA9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2N1cnJlbnRfc2xlZXBfY29tbWFuZF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTYyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NjIxOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNjIyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz02NjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3J4X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTA5My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTA5NDpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTA5NS1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTEwOTk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3R4X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTI5MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTI5MTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTI5Mi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTEyOTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2dlbmVyYWxfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNDEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNDExOlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNDEyLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTQxNj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfYnRfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNDk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNDk5OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNTAwLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTUwND1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcmVwbHlfdHhfZXJyb3JfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNjQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNjQxOlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNjQyLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTY0Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc2Vuc2l0aXZpdHlfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzE5OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzIwLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTcyNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2hhaW5fbm9pc2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzc2OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzc3LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTc4MT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcG93ZXJfc2F2ZV9zdGF0dXNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODAxOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwMi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTgyOD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfdHJhY2luZ19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4NDY6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODQ3LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODc5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZsYWdzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg4OC1cXHRcXHRsZTMyX3RvX2NwdShwcml2LVxcdTAwM2Vjb250ZXh0c1tJV0xfUlhPTl9DVFhfQlNTXS5hY3RpdmUuZmxhZ3MpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTg4OTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIGxlbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4OTAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4OTI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4b25fZmlsdGVyX2ZsYWdzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkwMS1cXHRcXHRsZTMyX3RvX2NwdShwcml2LVxcdTAwM2Vjb250ZXh0c1tJV0xfUlhPTl9DVFhfQlNTXS5hY3RpdmUuZmlsdGVyX2ZsYWdzKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5MDI6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTAzLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTA1PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19taXNzZWRfYmVhY29uX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTkxNzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MTgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5NDY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3BsY3BfZGVsdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTU4OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1OS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTk4NT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcmZfcmVzZXRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDA3OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjAwOC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjA0NT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfYnRfdHJhZmZpY19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwNTUtXFx0XFx0cG9zICs9IHNjbnByaW50ZihidWYgKyBwb3MsIGJ1ZnN6IC0gcG9zLCBcXFwiQlQgY29leCBkaXNhYmxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIwNTY6XFx0XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDg3OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA4OC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjA5MD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcHJvdGVjdGlvbl9tb2RlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjEwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjEwOTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxMTAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIxNzI9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2xvZ19ldmVudF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxODEtXFx0aWYgKHJldCBcXHUwMDNlIDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxODI6XFx0XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxODMtXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMjEzPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jYWxpYl9kaXNhYmxlZF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIyMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIyMzg6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjM5LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9MTM4OD1zdGF0aWMgaW50IGl3bGFnbl9tYWNfY2hhbmdlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTQwNi1cXHQvKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTQwNzpcXHQgKiBUbyBzaW1wbGlmeSB0aGlzIGNvZGUsIG9ubHkgc3VwcG9ydCBjaGFuZ2VzIG9uIHRoZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTQwOC1cXHQgKiBCU1MgY29udGV4dC4gVGhlIFBBTiBjb250ZXh0IGlzIHVzdWFsbHkgcmVhc3NpZ25lZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0yMTU3PXN0YXRpYyB2b2lkIHJzX3JhdGVfc2NhbGVfcGVyZm9ybShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTI2MDAtICogICAgICAgaWYgdGhlIGRyaXZlcidzIGl3bC1hZ24tcnMgcmF0ZSBzY2FsaW5nIGFsZ29yaXRobSBpcyB1c2VkLCBpbnN0ZWFkIG9mXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzoyNjAxOiAqICAgICAgIHJjODAyMTFfc2ltcGxlLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMjYwMi0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMDYxPXN0YXRpYyBzc2l6ZV90IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE1ODpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE1OS1cXHRrZnJlZShidWZmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzE2Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTY1LVxcdC5yZWFkID0gcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX3JlYWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMTY2OlxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMTY3LVxcdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2VlayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzE2OT1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMS1cXHR9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjAyOlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmZiwgZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjAzLVxcdGtmcmVlKGJ1ZmYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjA3PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjA4LVxcdC5yZWFkID0gcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjA5OlxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjEwLVxcdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2VlayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIxMz1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfcmF0ZV9zY2FsZV9kYXRhX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjMwOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMzM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjM0LVxcdC5yZWFkID0gcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIzNTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNi1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM9MzY9c3RhdGljIGludCBpd2xfc2VuZF9zY2FuX2Fib3J0KHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYy02MC1cXHRcXHQgKiAyIGZvciBcXFwiZmFpbHVyZVxcXCIuICBBIGZhaWx1cmUgY29uZGl0aW9uIGNhbiBiZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYzo2MTpcXHRcXHQgKiBkdWUgdG8gc2ltcGx5IG5vdCBiZWluZyBpbiBhbiBhY3RpdmUgc2NhbiB3aGljaFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYy02Mi1cXHRcXHQgKiBjYW4gb2NjdXIgaWYgd2Ugc2VuZCB0aGUgc2NhbiBhYm9ydCBiZWZvcmUgd2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MjUyPWVudW0gaXdsX3RvZl9yZXNwb25kZXJfY2ZnX2ZsYWdzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMjc5LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoyODA6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMjgxLSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0yODc9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTQtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjMxNTogKlxcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zMTYtICpcXHR0byB0aGlzIGZpZWxkXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTMyMj1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92NyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM1Mi0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MzUzOiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM1NC0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MzY5PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y4IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzk3LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozOTg6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzk5LSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD00MTg9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC00NDgtICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjQ0OTogKlxcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC00NTAtICpcXHR0byB0aGlzIGZpZWxkXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oPTk3PWVudW0gaXdsX3Bvd2VyX2ZsYWdzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTEzLSAqXFx0aXMgdXNlZCBhbHNvIHdpdGggYSBuZXdcXHRwb3dlciBBUEkgZm9yIGRldmljZSB3aWRlIHBvd2VyIHNldHRpbmdzLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTE0OiAqIFBPV0VSX1RBQkxFX0NNRCA9IDB4NzcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExNS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0xNTg9ZW51bSBpd2xfZGV2aWNlX3Bvd2VyX2ZsYWdzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTY2LSAqIHN0cnVjdCBpd2xfZGV2aWNlX3Bvd2VyX2NtZCAtIGRldmljZSB3aWRlIHBvd2VyIGNvbW1hbmQuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaDoxNjc6ICogREVWSUNFX1BPV0VSX0NNRCA9IDB4NzcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2OC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0xNzI9c3RydWN0IGl3bF9kZXZpY2VfcG93ZXJfY21kIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTc5LSAqIHN0cnVjdCBpd2xfbWFjX3Bvd2VyX2NtZF92MiAtIHBvd2VyIGNvbW1hbmQgVjIgY29udGFpbmluZyB1QVBTRCBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaDoxODA6ICogTUFDX1BNX1BPV0VSX1RBQkxFID0gMHhBOSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTgxLSAqIEBpZF9hbmRfY29sb3I6XFx0TUFDIGNvbnRleHQgaWRlbnRpZmllciwgXFx1MDAyNmVudW0gaXdsX2N0eHRfaWRfYW5kX2NvbG9yXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oPTIyMD1zdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWRfdjIge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0yNDctICogc3RydWN0IGl3bF9tYWNfcG93ZXJfY21kIC0gcG93ZXIgY29tbWFuZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MjQ4OiAqIE1BQ19QTV9QT1dFUl9UQUJMRSA9IDB4QTkgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTI0OS0gKiBAaWRfYW5kX2NvbG9yOlxcdE1BQyBjb250ZXh0IGlkZW50aWZpZXIsIFxcdTAwMjZlbnVtIGl3bF9jdHh0X2lkX2FuZF9jb2xvclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaD0xNjE9c3RhdGljIGlubGluZSB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoxNjI6X2l3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xNjMtXFx0XFx0XFx0XFx0c3RydWN0IHdpcmVsZXNzX2RldiAqd2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTc1OiNkZWZpbmUgaXdsX2Z3X2RiZ190cmlnZ2VyX3NpbXBsZV9zdG9wKGZ3cnQsIHdkZXYsIHRyaWcpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTc2OlxcdF9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3AoKGZ3cnQpLCAod2RldiksXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTc3LVxcdFxcdFxcdFxcdFxcdGl3bF9md19kYmdfZ2V0X3RyaWdnZXIoKGZ3cnQpLVxcdTAwM2VmdyxcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYz0zNz1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmMtNTEtXFx0XFx0cmV0dXJuIGRhdGEtXFx1MDAzZXJsZW47XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jOjUyOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jLTUzLVxcdFxcdFxcdFxcdCAgICAgICBkYXRhLVxcdTAwM2VyYnVmLCBkYXRhLVxcdTAwM2VybGVuKTtcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaD0zMTM9c3RydWN0IHVlZmlfY252X3dwZmNfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaC0zMTktICogVGhpcyBpcyBrbm93biB0byBiZSBicm9rZW4gb24gdjQuMTkgYW5kIHRvIHdvcmsgb24gdjUuNC4gIFVudGlsIHdlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg6MzIwOiAqIGZpZ3VyZSBvdXQgd2h5IHRoaXMgaXMgdGhlIGNhc2UgYW5kIGhvdyB0byBtYWtlIGl0IHdvcmssIHNpbXBseVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oLTMyMS0gKiBkaXNhYmxlIHRoZSBmZWF0dXJlIGluIG9sZCBrZXJuZWxzLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTctICogVXNlIGl3bF93cml0ZTMyKCkgYW5kIGl3bF9yZWFkMzIoKSBmYW1pbHkgdG8gYWNjZXNzIHRoZXNlIHJlZ2lzdGVycztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaDoxODogKiB0aGVzZSBwcm92aWRlIHNpbXBsZSBQQ0kgYnVzIGFjY2Vzcywgd2l0aG91dCB3YWtpbmcgdXAgdGhlIE1BQy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaC0xOS0gKiBEbyBub3QgdXNlIGl3bF93cml0ZV9kaXJlY3QzMigpIGZhbWlseSBmb3IgdGhlc2UgcmVnaXN0ZXJzO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg9MzIxPWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTA5LSAqIERvIG5vdCB1c2UgaXdsX3dyaXRlMzIoKS9pd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg6NTEwOiAqIHRoZXNlIHByb3ZpZGUgb25seSBzaW1wbGUgUENJIGJ1cyBhY2Nlc3MsIHdpdGhvdXQgd2FraW5nIHVwIHRoZSBNQUMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtNTExLSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMTMtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjExNDogKiBJZiB5b3UgYXJlIGRlZmluaW5nIGEgbmV3IGRlYnVnIGNsYXNzaWZpY2F0aW9uLCBzaW1wbHkgYWRkIGl0IHRvIHRoZSAjZGVmaW5lXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMTUtICogbGlzdCBoZXJlIGluIHRoZSBmb3JtIG9mXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg9MjA9c3RydWN0IGl3bF9yZl9jZmc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmgtMzYtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmg6Mzc6ICogVGhlIG9wZXJhdGlvbmFsIG1vZGUgaGFzIGEgdmVyeSBzaW1wbGUgbGlmZSBjeWNsZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmgtMzgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmM9ODY9c3RhdGljIHUzMiBpd2xfZGl2X2J5X2RiKHUzMiB2YWx1ZSwgdTggZGIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jLTg4LVxcdC8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYzo4OTpcXHQgKiAyXjMyICogMTAqKihpIC8gMTApIGZvciBpID0gWzEsIDEwXSwgc2tpcHBpbmcgMCBhbmQgc2ltcGx5IHN0b3BwaW5nXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy05MC1cXHQgKiBhdCAxMCBkQiBhbmQgbG9vcGluZyBpbnN0ZWFkIG9mIHVzaW5nIGEgbXVjaCBsYXJnZXIgdGFibGUuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtMTc0LSAqIENTTUUgY2FuIHRyYW5zbWl0IHBhY2tldHMsIHRocm91Z2ggdGhlIG5ldGRldiB0aGF0IGl0IGdldHMgZnJvbSB0aGUgd2lmaVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDoxNzU6ICogZHJpdmVyLiBJdCdsbCBzZW5kIHBhY2tldCBpbiB0aGUgODAyLjMgZm9ybWF0IGFuZCBzaW1wbHkgY2FsbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC0xNzYtICogZGV2X3F1ZXVlX3htaXQuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg9NDI4PXZvaWQgaXdsX21laV9zZXRfbmV0ZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzNi0gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDo0Mzc6ICogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHRha2UgYW55IGxvY2ssIGl0IHNpbXBseSB0cmllcyB0byBjYXRjaCBESENQXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTQzOC0gKiBwYWNrZXRzIHNlbnQgYnkgdGhlIHdpZmkgZHJpdmVyLiBJZiB0aGUgcGFja2V0IGlzIGEgREhDUCBwYWNrZXQsIGl0XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM9MTkwMD1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfbWVpX2RiZ2ZzX3NlbmRfc3RhcnRfbWVzc2FnZV9vcHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MDEtXFx0LndyaXRlID0gaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jOjE5MDI6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkwMy1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM9MTkxNT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE2LVxcdC53cml0ZSA9IGl3bF9tZWlfZGJnZnNfcmVxX293bmVyc2hpcF93cml0ZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM6MTkxNzpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTE4LVxcdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2VlayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0zNT1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTQ5LVxcdFxcdHJldHVybiBkYXRhLVxcdTAwM2VybGVuO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg6NTA6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTUxLVxcdFxcdFxcdFxcdCAgICAgICBkYXRhLVxcdTAwM2VidWYsIGRhdGEtXFx1MDAzZXJsZW4pO1xcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xMDE9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTExOS1cXHRcXHQud3JpdGUgPSBfX2l3bF9kYmdmc18jI25hbWUjI193cml0ZSxcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjEyMDpcXHRcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTIxLVxcdFxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaD0xNjI9c3RhdGljIHNzaXplX3QgX19pd2xfZGJnZnNfIyNuYW1lIyNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXHRcXHRcXFxcXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjA2OjA0Ljg3MTcyNTc3MloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDA1NTk3Njc0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFN5emthbGxlciBJbnRlcmFjdGlvbiB3aXRoIGBpd2x3aWZpYCBhbmQgUUVNVSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgaXdsd2lmaWAgc2l0dWF0aW9uIGFuZCB0cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgc3l6a2FsbGVyIGlzIGludGVyYWN0aW5nIHdpdGggaXQuIEZpcnN0LCBJIHdhcyBjdXJpb3VzIGFib3V0IHdoZXRoZXIgc3l6a2FsbGVyIGhhZCBhbnkgYHN5el9gIGZ1bmN0aW9ucyBzcGVjaWZpY2FsbHkgZm9yIFBDSSBkZXZpY2VzLCBtYXliZSBldmVuIGEgYHN5el9wY2lfZGV2aWNlYCBmdW5jdGlvbiwgYnV0IGEgcXVpY2sgY2hlY2sgcmV2ZWFscyBub3RoaW5nLiBIb3dldmVyLCBJIHNlZSBgc3l6X3VzYl9jb25uZWN0YCBhbmQgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgLCB3aGljaCBzdWdnZXN0cyBpdOKAmXMgbm90IGNvbXBsZXRlbHkgaW4gdGhlIGRhcmsuXG5cblRoZSBjb3JlIGlzc3VlIHNlZW1zIHRvIHJldm9sdmUgYXJvdW5kIGBpd2x3aWZpYCBiZWluZyBhIFBDSSBkcml2ZXIuIEl0IHdvbid0IHByb2JlIHVubGVzcyB0aGVyZSdzIGFuIGFjdHVhbCBQQ0kgZGV2aWNlIHByZXNlbnQuIElmIGl0ICpkb2Vzbid0KiBwcm9iZSwgdGhlbiB0aGUgYG12bWAgY29tcG9uZW50IHdvbuKAmXQgYmUgaW5pdGlhbGl6ZWQgYW5kLCBjcml0aWNhbGx5LCBgaXdsX2RiZ2ZzX2luamVjdF9wYWNrZXRfd3JpdGVgIHdvbid0IGJlIGNyZWF0ZWQuIFNvLCBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgc3l6a2FsbGVyIGlzIGV2ZW4gKmdldHRpbmcqIGBpd2x3aWZpYCB0byBsb2FkLiBEb2VzIGl0IHVzZSBzb21lIGtpbmQgb2YgZHVtbXkgUENJIGRldmljZT9cblxuVGhlbiBJIHJlbWVtYmVyZWQgYG1hYzgwMjExX2h3c2ltYCwgd2hpY2ggcHJvdmlkZXMgYSBzaW11bGF0ZWQgV2ktRmkgZW52aXJvbm1lbnQuIENvdWxkIHRoZXJlIGJlIGFuIGBpd2x3aWZpYCBlcXVpdmFsZW50PyBMZXQncyBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnYCBhZ2Fpbi4gRm91bmQgYENPTkZJR19JV0xXSUZJX0tVTklUX1RFU1RTYCwgYnV0IG5vdGhpbmcgZGlyZWN0bHkgZW11bGF0aW5nIHRoZSBoYXJkd2FyZS5cblxuQWdhaW4sIEkgY2hlY2tlZCBmb3IgYHN5el9wY2lfZGV2aWNlYCwgbm8gbHVjay4gVGhlbiwgaXQgaGl0cyBtZSB0aGF0IHN5emthbGxlciAqZG9lcyogaGF2ZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5X2lkYC4gQWxzbywgSSBkaWQgc2VhcmNoIGZvciBgc3l6X3BjaWAgYW5kIHN0aWxsIGNhbWUgdXAgZW1wdHkuXG5cblRoZW4sIHRoZSB0aG91Z2h0IGNyb3NzZWQgbXkgbWluZDogd2hhdCBpZiBzeXprYWxsZXIgZm91bmQgdGhpcyBidWcgb24gKnJlYWwqIGhhcmR3YXJlPyBUaGUgY29udGV4dCBtZW50aW9ucyBcIkNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cIiBUaGlzIGlzIGEga2V5IHBpZWNlIG9mIGluZm9ybWF0aW9uLiBJZiBpdCdzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gUUVNVSwgdGhlbiBteSBgV29ydGhGdXp6aW5nYCBzaG91bGQgYmUgZmFsc2UuXG5cblNvLCBpcyBpdCBpbXBvc3NpYmxlIGluIFFFTVU/IFllcywgUUVNVSBkb2Vzbid0IGVtdWxhdGUgYGl3bHdpZmlgIGhhcmR3YXJlLiBXYWl0LCBRRU1VICpkb2VzKiBoYXZlIHNvbWUgUENJIGRldmljZXMsIGJ1dCBub3Qgc3BlY2lmaWNhbGx5IGBpd2x3aWZpYC4gSeKAmWQgY2hlY2sgdGhlIFFFTVUgc291cmNlIG9yIGRvY3VtZW50YXRpb24gaWYgSSBjb3VsZCwgYnV0IEkgY2FuJ3QuXG5cbkFscmlnaHQsIGlzIHRoZXJlICphbnkqIGBpd2x3aWZpYCBlbXVsYXRvciBpbiB0aGUga2VybmVsPyBObywgYGl3bHdpZmlgIGlzIGEgaGFyZHdhcmUgZHJpdmVyLCBub3QgYW4gZW11bGF0b3IuXG5cbkJhY2sgdG8gc3F1YXJlIG9uZTogZG9lcyBzeXprYWxsZXIgaGF2ZSBhbnkgYHN5el9wY2lfZGV2aWNlYCBmdW5jdGlvbmFsaXR5PyBTdGlsbCBuby4gUGVyaGFwcyB0aGVyZSdzIGEgcmVjZW50IGFkZGl0aW9uIG9mIHNvbWV0aGluZyBsaWtlIGBzeXpfcGNpYCBvciBgc3l6X3BjaXZmaW9gPyBJIHNob3VsZCBjaGVjayBpZiB0aGVyZSdzIGFueSBgdmZpb2AgZnV6emluZyB3aXRoaW4gc3l6a2FsbGVyLlxuXG5TeXprYWxsZXIgaGFzIGBzeXpfa3ZtX3NldHVwX2NwdWAsIHdoaWNoIHJlbGF0ZXMgdG8gS1ZNLiBBbmQgYHN5el91c2JfY29ubmVjdGAgdXNlcyBgZHVtbXlfaGNkYCAoVVNCIGdhZGdldCkuIFRoaXMgaW1wbGllcyBzeXprYWxsZXIgaGFzIHNvbWUgdGVjaG5pcXVlcyB0byBlbXVsYXRlIG9yIGluamVjdCBpbnRvIGhhcmR3YXJlLWxpa2Ugc3RydWN0dXJlcy4gTm93LCBpcyB0aGVyZSBhIHNpbWlsYXIgZHVtbXkgUENJIGhvc3QgY29udHJvbGxlciBpbiB0aGUga2VybmVsPyBUaW1lIHRvIGNoZWNrIGZvciBhIGR1bW15IFBDSSBkcml2ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMzM3MCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzowNjoxNC45Mjc3MDUxNDFaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMzA4NDg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImR1bW15XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcGNpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktZHJhN3h4LmM9MTkwPXN0YXRpYyBpbnQgZHJhN3h4X3BjaWVfaW50eF9tYXAoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSxcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguYy0xOTIte1xcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1kcmE3eHguYzoxOTM6XFx0aXJxX3NldF9jaGlwX2FuZF9oYW5kbGVyKGlycSwgXFx1MDAyNmR1bW15X2lycV9jaGlwLCBoYW5kbGVfc2ltcGxlX2lycSk7XFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWRyYTd4eC5jLTE5NC1cXHRpcnFfc2V0X2NoaXBfZGF0YShpcnEsIGRvbWFpbi1cXHUwMDNlaG9zdF9kYXRhKTtcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmM9MTQ4MT1zdGF0aWMgdm9pZCBpbXhfcGNpZV9ob3N0X3Bvc3RfaW5pdChzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jLTE1MTUtICogcmVnaXN0ZXIgaXMgcmVzZXJ2ZWQsIHNvIHRoZSBnZW5lcmljIERXQyBpbXBsZW1lbnRhdGlvbiBvZiBzZW5kaW5nIHRoZVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaS1pbXg2LmM6MTUxNjogKiBQTUVfVHVybl9PZmYgbWVzc2FnZSB1c2luZyBhIGR1bW15IE1NSU8gd3JpdGUgY2Fubm90IGJlIHVzZWQuXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYy0xNTE3LSAqL1xcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWhvc3QuYz0xMTg3PXN0YXRpYyBpbnQgZHdfcGNpZV9wbWVfdHVybl9vZmYoc3RydWN0IGR3X3BjaWUgKnBjaSlcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0LmMtMTIxNC1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jOjEyMTU6XFx0LyogQSBkdW1teSB3cml0ZSBpcyBjb252ZXJ0ZWQgdG8gYSBNc2cgVExQICovXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLWhvc3QuYy0xMjE2LVxcdHdyaXRlbCgwLCBtZW0pO1xcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9tb2JpdmVpbC9wY2llLW1vYml2ZWlsLWhvc3QuYz04Mz1zdGF0aWMgdm9pZCBtb2JpdmVpbF9wY2llX2lzcihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL21vYml2ZWlsL3BjaWUtbW9iaXZlaWwtaG9zdC5jLTE0NS1cXHRcXHQgKiBmcm9tIE1TSSBoYXJkd2FyZSBGSUZPLiBTbyBrZWVwaW5nIHRoZXNlIGZvbGxvd2luZ1xcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvbW9iaXZlaWwvcGNpZS1tb2JpdmVpbC1ob3N0LmM6MTQ2OlxcdFxcdCAqIHR3byBkdW1teSByZWFkcy5cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL21vYml2ZWlsL3BjaWUtbW9iaXZlaWwtaG9zdC5jLTE0Ny1cXHRcXHQgKi9cXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jPTE3NTE9c3RhdGljIHUzMiBodl9jb21wb3NlX21zaV9yZXFfdjEoXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xNzYxLVxcdC8qXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM6MTc2MjpcXHQgKiBDcmVhdGUgTVNJIHcvIGR1bW15IHZDUFUgc2V0LCBvdmVyd3JpdHRlbiBieSBzdWJzZXF1ZW50IHJldGFyZ2V0IGluXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTc2My1cXHQgKiBodl9pcnFfdW5tYXNrKCkuXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xNzcxLSAqIFRoZSB2Q1BVIHNlbGVjdGVkIGJ5IGh2X2NvbXBvc2VfbXVsdGlfbXNpX3JlcV9nZXRfY3B1KCkgYW5kXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM6MTc3MjogKiBodl9jb21wb3NlX21zaV9yZXFfZ2V0X2NwdSgpIGlzIGEgXFxcImR1bW15XFxcIiB2Q1BVIGJlY2F1c2UgdGhlIGZpbmFsIHZDUFUgdG8gYmVcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xNzczLSAqIGludGVycnVwdGVkIGlzIHNwZWNpZmllZCBsYXRlciBpbiBodl9pcnFfdW5tYXNrKCkgYW5kIGNvbW11bmljYXRlZCB0byBIeXBlci1WXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM6MTc3NDogKiB2aWEgdGhlIEhWQ0FMTF9SRVRBUkdFVF9JTlRFUlJVUFQgaHlwZXJjYWxsLiBCdXQgdGhlIGNob2ljZSBvZiBkdW1teSB2Q1BVIGlzXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTc3NS0gKiBub3QgaXJyZWxldmFudCBiZWNhdXNlIEh5cGVyLVYgY2hvb3NlcyB0aGUgcGh5c2ljYWwgQ1BVIHRvIGhhbmRsZSB0aGVcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3NzgtICogYnV0IGFzc2lnbmluZyB0b28gbWFueSB2UENJIGRldmljZSBpbnRlcnJ1cHRzIHRvIHRoZSBzYW1lIHBDUFUgY2FuIGNhdXNlIGFcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYzoxNzc5OiAqIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2suIFNvIHdlIHNwcmVhZCBvdXQgdGhlIGR1bW15IHZDUFVzIHRvIGluZmx1ZW5jZSBIeXBlci1WXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTc4MC0gKiB0byBzcHJlYWQgb3V0IHRoZSBwQ1BVcyB0aGF0IGl0IHNlbGVjdHMuXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xNzgyLSAqIEZvciB0aGUgc2luZ2xlLU1TSSBhbmQgTVNJLVggY2FzZXMsIGl0J3MgT0sgZm9yIGh2X2NvbXBvc2VfbXNpX3JlcV9nZXRfY3B1KClcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYzoxNzgzOiAqIHRvIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUgZHVtbXkgdkNQVSwgYmVjYXVzZSBhIHNlY29uZCBjYWxsIHRvXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTc4NC0gKiBodl9jb21wb3NlX21zaV9tc2coKSBjb250YWlucyB0aGUgXFxcInJlYWxcXFwiIHZDUFUsIGNhdXNpbmcgSHlwZXItViB0byBjaG9vc2UgYVxcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTc4Ni0gKiBodl9jb21wb3NlX21zaV9tc2coKSBleGl0cyB3aXRob3V0IHNlbmRpbmcgYSBtZXNzYWdlIHRvIHRoZSB2UENJIFZTUCwgc28gdGhlXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM6MTc4NzogKiBvcmlnaW5hbCBkdW1teSB2Q1BVIGlzIHVzZWQuIFRoaXMgZHVtbXkgdkNQVSBtdXN0IGJlIHJvdW5kLXJvYmluJ2VkIHNvIHRoYXRcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xNzg4LSAqIHRoZSBwQ1BVcyBhcmUgc3ByZWFkIG91dC4gQWxsIGludGVycnVwdHMgZm9yIGEgbXVsdGktTVNJIGRldmljZSBlbmQgdXAgdXNpbmdcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3OTQtICogZW5oYW5jZW1lbnQgaXMgcGxhbm5lZCBmb3IgYSBmdXR1cmUgdmVyc2lvbi4gV2l0aCB0aGF0IGVuaGFuY2VtZW50LCB0aGVcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYzoxNzk1OiAqIGR1bW15IHZDUFUgc2VsZWN0aW9uIHdvbid0IG1hdHRlciwgYW5kIGludGVycnVwdHMgZm9yIHRoZSBzYW1lIG11bHRpLU1TSVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3OTYtICogZGV2aWNlIHdpbGwgYmUgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSBwQ1BVcy5cXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE3OTktLypcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYzoxODAwOiAqIENyZWF0ZSBNU0kgdy8gZHVtbXkgdkNQVSBzZXQgdGFyZ2V0aW5nIGp1c3Qgb25lIHZDUFUsIG92ZXJ3cml0dGVuXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmMtMTgwMS0gKiBieSBzdWJzZXF1ZW50IHJldGFyZ2V0IGluIGh2X2lycV91bm1hc2soKS5cXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jPTE4MDM9c3RhdGljIGludCBodl9jb21wb3NlX21zaV9yZXFfZ2V0X2NwdShjb25zdCBzdHJ1Y3QgY3B1bWFzayAqYWZmaW5pdHkpXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xODA4LS8qXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM6MTgwOTogKiBNYWtlIHN1cmUgdGhlIGR1bW15IHZDUFUgdmFsdWVzIGZvciBtdWx0aS1NU0kgZG9uJ3QgYWxsIHBvaW50IHRvIHZDUFUwLlxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE4MTAtICovXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYz0xODc1PXN0YXRpYyB2b2lkIGh2X2NvbXBvc2VfbXNpX21zZyhzdHJ1Y3QgaXJxX2RhdGEgKmRhdGEsIHN0cnVjdCBtc2lfbXNnICptc2cpXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1oeXBlcnYuYy0xOTU2LVxcdFxcdC8qXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktaHlwZXJ2LmM6MTk1NzpcXHRcXHQgKiBUaGUgdmVjdG9yIHdlIHNlbGVjdCBoZXJlIGlzIGEgZHVtbXkgdmFsdWUuICBUaGUgY29ycmVjdFxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLWh5cGVydi5jLTE5NTgtXFx0XFx0ICogdmFsdWUgZ2V0cyBzZW50IHRvIHRoZSBoeXBlcnZpc29yIGluIHVubWFzaygpLiAgVGhpcyBuZWVkc1xcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWFsdGVyYS5jPTM2Nj1zdGF0aWMgdm9pZCBzMTBfdGxwX3dyaXRlX3BhY2tldChzdHJ1Y3QgYWx0ZXJhX3BjaWUgKnBjaWUsIHUzMiAqaGVhZGVycyxcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYWx0ZXJhLmM6MzY3OlxcdFxcdFxcdFxcdCB1MzIgZGF0YSwgYm9vbCBkdW1teSlcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYWx0ZXJhLmMtMzY4LXtcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1hbHRlcmEuYz03ODY9c3RhdGljIGludCBhbHRlcmFfcGNpZV9pbnR4X21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBpbnQgaXJxLFxcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWFsdGVyYS5jLTc4OC17XFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLWFsdGVyYS5jOjc4OTpcXHRpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCBcXHUwMDI2ZHVtbXlfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtYWx0ZXJhLmMtNzkwLVxcdGlycV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLVxcdTAwM2Vob3N0X2RhdGEpO1xcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW1lZGlhdGVrLmM9NTU0PXN0YXRpYyBpbnQgbXRrX3BjaWVfaW50eF9tYXAoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSxcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tZWRpYXRlay5jLTU1Ni17XFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLW1lZGlhdGVrLmM6NTU3OlxcdGlycV9zZXRfY2hpcF9hbmRfaGFuZGxlcihpcnEsIFxcdTAwMjZkdW1teV9pcnFfY2hpcCwgaGFuZGxlX3NpbXBsZV9pcnEpO1xcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1tZWRpYXRlay5jLTU1OC1cXHRpcnFfc2V0X2NoaXBfZGF0YShpcnEsIGRvbWFpbi1cXHUwMDNlaG9zdF9kYXRhKTtcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1lcC5jPTY1Mj1zdGF0aWMgaW50IHJvY2tjaGlwX3BjaWVfZXBfc2V0dXBfaXJxKHN0cnVjdCBwY2lfZXBjICplcGMpXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtZXAuYy02NzQtXFx0ICogaXMgaGlnaCBhbmQgd2lsbCB0cmlnZ2VyIHRoZSBwZXJzdF9pcnEgaGFuZGxlci4gU28gdHJlYXQgdGhpcyBpbml0aWFsXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLWVwLmM6Njc1OlxcdCAqIElSUSBhcyBhIGR1bW15IG9uZSBieSBmYWtpbmcgdGhlIGhvc3QgYXNzZXJ0aW5nIFBFUlNUIy5cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtZXAuYy02NzYtXFx0ICovXFxuLS1cXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jPTY2OT1zdGF0aWMgaW50IHJvY2tjaGlwX3BjaWVfaW50eF9tYXAoc3RydWN0IGlycV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgaW50IGlycSxcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC1ob3N0LmMtNjcxLXtcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jOjY3MjpcXHRpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCBcXHUwMDI2ZHVtbXlfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAtaG9zdC5jLTY3My1cXHRpcnFfc2V0X2NoaXBfZGF0YShpcnEsIGRvbWFpbi1cXHUwMDNlaG9zdF9kYXRhKTtcXG4tLVxcbmRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS14aWxpbnguYz0zMjE9c3RhdGljIGludCB4aWxpbnhfcGNpZV9pbnR4X21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBpbnQgaXJxLFxcbi0tXFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5jLTMyMy17XFxuZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXhpbGlueC5jOjMyNDpcXHRpcnFfc2V0X2NoaXBfYW5kX2hhbmRsZXIoaXJxLCBcXHUwMDI2ZHVtbXlfaXJxX2NoaXAsIGhhbmRsZV9zaW1wbGVfaXJxKTtcXG5kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUteGlsaW54LmMtMzI1LVxcdGlycV9zZXRfY2hpcF9kYXRhKGlycSwgZG9tYWluLVxcdTAwM2Vob3N0X2RhdGEpO1xcbi0tXFxuZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jPTEzNj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9tYXRjaF9kZXZpY2Uoc3RydWN0IHBjaV9kcml2ZXIgKmRydixcXG4tLVxcbmRyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYy0xNzUtXFxuZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jOjE3NjpcXHQvKiBkcml2ZXJfb3ZlcnJpZGUgd2lsbCBhbHdheXMgbWF0Y2gsIHNlbmQgYSBkdW1teSBpZCAqL1xcbmRyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYy0xNzctXFx0aWYgKHJldCBcXHUwMDNlIDApXFxuLS1cXG5kcml2ZXJzL3BjaS9wd3JjdHJsL3BjaS1wd3JjdHJsLXRjOTU2My5jPTUzMz1zdGF0aWMgaW50IHRjOTU2M19wd3JjdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL3BjaS9wd3JjdHJsL3BjaS1wd3JjdHJsLXRjOTU2My5jLTU1NS1cXG5kcml2ZXJzL3BjaS9wd3JjdHJsL3BjaS1wd3JjdHJsLXRjOTU2My5jOjU1NjpcXHR0Yzk1NjMtXFx1MDAzZWNsaWVudCA9IGkyY19uZXdfZHVtbXlfZGV2aWNlKHRjOTU2My1cXHUwMDNlYWRhcHRlciwgYWRkcik7XFxuZHJpdmVycy9wY2kvcHdyY3RybC9wY2ktcHdyY3RybC10Yzk1NjMuYy01NTctXFx0aWYgKElTX0VSUih0Yzk1NjMtXFx1MDAzZWNsaWVudCkpIHtcXG4tLVxcbmRyaXZlcnMvcGNpL3NldHVwLWJ1cy5jPTU3Nz1zdGF0aWMgdm9pZCBfX2Fzc2lnbl9yZXNvdXJjZXNfc29ydGVkKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsXFxuLS1cXG5kcml2ZXJzL3BjaS9zZXR1cC1idXMuYy02MDUtXFx0TElTVF9IRUFEKGxvY2FsX2ZhaWxfaGVhZCk7XFxuZHJpdmVycy9wY2kvc2V0dXAtYnVzLmM6NjA2OlxcdExJU1RfSEVBRChkdW1teV9oZWFkKTtcXG5kcml2ZXJzL3BjaS9zZXR1cC1idXMuYy02MDctXFx0c3RydWN0IHBjaV9kZXZfcmVzb3VyY2UgKnNhdmVfcmVzO1xcbi0tXFxuZHJpdmVycy9wY2kvc2V0dXAtYnVzLmMtNjE0LVxcdGlmICghcmVhbGxvY19oZWFkKVxcbmRyaXZlcnMvcGNpL3NldHVwLWJ1cy5jOjYxNTpcXHRcXHRyZWFsbG9jX2hlYWQgPSBcXHUwMDI2ZHVtbXlfaGVhZDtcXG5kcml2ZXJzL3BjaS9zZXR1cC1idXMuYy02MTYtXFxuLS1cXG5kcml2ZXJzL3BjaS92Z2FhcmIuYz0xNjc9aW50IHZnYV9yZW1vdmVfdmdhY29uKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9wY2kvdmdhYXJiLmMtMTc2LVxcdGlmIChjb25faXNfYm91bmQoXFx1MDAyNnZnYV9jb24pKVxcbmRyaXZlcnMvcGNpL3ZnYWFyYi5jOjE3NzpcXHRcXHRyZXQgPSBkb190YWtlX292ZXJfY29uc29sZShcXHUwMDI2ZHVtbXlfY29uLCAwLFxcbmRyaXZlcnMvcGNpL3ZnYWFyYi5jLTE3OC1cXHRcXHRcXHRcXHRcXHQgICBNQVhfTlJfQ09OU09MRVMgLSAxLCAxKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MDY6MTQuOTg5MDE4ODY3WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjYxNzQ1ODYwMjcwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGluZyBgaXdsd2lmaWAgd2l0aCBTeXprYWxsZXI6IEEgRGVlcCBEaXZlKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHRoaXMgYGl3bHdpZmlgIGlzc3VlIGlzIGV2ZW4gZnV6emFibGUgYnkgU3l6a2FsbGVyLiBNeSBmaXJzdCB0aG91Z2h0IGlzOiB0aGVyZSdzIG5vIGR1bW15IFBDSSBkZXZpY2UgZHJpdmVyIGluIHRoZSBrZXJuZWwgZm9yIHN5emthbGxlciB0byBpbmplY3QgUENJIGRldmljZXMuIFdhaXQsIGRvZXMgU3l6a2FsbGVyICphY3R1YWxseSogaGF2ZSBhIGBzeXpfcGNpX2RldmljZWA/IEkgc2hvdWxkIGhhdmUgZ3JlcHBlZCBmb3IgYHN5el9wY2lgIGJlZm9yZS4gTm9wZSwgbm8gbWF0Y2hlcy5cblxuQ291bGQgdGhpcyBidWcgaGF2ZSBiZWVuIGZvdW5kIGJ5IGBzeXotY2x1c3RlcmAgb24gcmVhbCBoYXJkd2FyZT8gVGhhdCdzIGEgcG9zc2liaWxpdHksIHRoZXkgaGF2ZSByZWFsIEFuZHJvaWQgZGV2aWNlcywgYW5kIG1heWJlIHNvbWUgeDg2IG1hY2hpbmVzLiBCdXQgSSB0aGluayB0aGV5IG1vc3RseSB1c2UgUUVNVSBmb3IgeDg2LiBPa2F5LCBkb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYGl3bHdpZmlgPyBObywgZGVmaW5pdGVseSBub3QuXG5cbklzIHRoZXJlIGFuIGBpd2x3aWZpYCBzaW11bGF0b3IgKmluIHRoZSBrZXJuZWwqIHRoYXQgc3l6a2FsbGVyIGNvdWxkIGxldmVyYWdlPyBMZXQgbWUgY2hlY2sgdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpYCBkaXJlY3RvcnkuIEknbGwgbG9vayBzcGVjaWZpY2FsbHkgYXQgYG1laS9gIC0gbm9wZS4gSG93IGFib3V0IGBtdm0vYD8gTm9wZS4gV2FpdCwgdGhlcmUncyBgQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFNgLiBCdXQgSSBjYW4ndCBpbWFnaW5lIFN5emthbGxlciBmdXp6aW5nIEtVTklUIHRlc3RzLlxuXG5SaWdodCwgdGhlcmUncyBgc3l6XzgwMjExX2luamVjdF9mcmFtZWAhIFRoaXMgaW5qZWN0cyBmcmFtZXMgaW50byBgbWFjODAyMTFgLCBhbmQgYGl3bHdpZmlgICp1c2VzKiBgbWFjODAyMTFgLiBCdXQgaWYgYGl3bHdpZmlgIGlzbid0IHByb2JlZCwgYG1hYzgwMjExYCB3b24ndCBiZSBjYWxsaW5nIGBpd2x3aWZpYCBjb2RlLCBzbyB0aGF0J3MgYSBkZWFkIGVuZC5cblxuSXMgaXQgcG9zc2libGUgdGhhdCBgaXdsd2lmaWAgaXMgbG9hZGVkIGFuZCBwcm9iZWQgaW4gUUVNVT8gSSBkb3VidCBRRU1VIGVtdWxhdGVzIGBpd2x3aWZpYCBpbiBhIGRpcmVjdCB3YXk7IEknZCBuZWVkIHRvIGNoZWNrIHRoZSBRRU1VIHNvdXJjZSBjb2RlLCB3aGljaCBJIGRvbid0IGhhdmUgYWNjZXNzIHRvIHJpZ2h0IG5vdywgb3IganVzdCB0cnVzdCBteSBpbnR1aXRpb24uIFFFTVUgZG9lcyAqbm90KiBlbXVsYXRlIGBpd2x3aWZpYC5cblxuT2theSwgd2hhdCBpZiBzeXprYWxsZXIgdXNlcyBgbWFjODAyMTFfaHdzaW1gIHRvIGNyZWF0ZSBhIHZpcnR1YWwgV2ktRmkgZGV2aWNlLCBhbmQgdGhlIGJ1Z3MgYXJlICphY3R1YWxseSogaW4gYG1hYzgwMjExYD8gQnV0IHRoZSBwYXRjaCBpcyBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9gLCBzbyB0aGlzIHNlZW1zIHVubGlrZWx5LiBTbywgKmlmKiB0aGUgcGF0Y2ggaXMgaW4gYGl3bHdpZmlgLCBhbmQgYGl3bHdpZmlgIGlzIG5vdCByZWFjaGFibGUgaW4gUUVNVSwgdGhlbiBXb3J0aEZ1enppbmcgPSBmYWxzZS5cblxuQnV0IGlzIGBpd2x3aWZpYCByZWFjaGFibGUgaW4gUUVNVT8gTWF5YmUgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUncyBhbnkgYGl3bHdpZmlgIHJlbGF0ZWQgY29kZSBpbiB0aGUga2VybmVsIHRoYXQgYWxsb3dzIGl0IHRvIGJlIGZ1enplZC4gSWYgSSBoYWQgYWNjZXNzIEknZCBzZWFyY2ggaW4gc3l6a2FsbGVyJ3MgYHN5cy9saW51eC9gIGRpcmVjdG9yeS4gQWhhISBJIGZvdW5kIGBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZWAgaW4gYG12bS9kZWJ1Z2ZzLmNgLiBJdCBsZXRzIHlvdSBpbmplY3QgcGFja2V0cyBpbnRvIGBpd2x3aWZpYCdzIFJYIHF1ZXVlLiBCdXQsIGZvciB0aGF0IGRlYnVnZnMgZmlsZSB0byBldmVuICpleGlzdCosIGBpd2x3aWZpYCBtdXN0IGJlIHByb2JlZC4gQW5kIHRvIHByb2JlIGBpd2x3aWZpYCwgYSBtYXRjaGluZyBQQ0kgZGV2aWNlIG11c3QgZXhpc3QuXG5cbkNhbiBTeXprYWxsZXIgKmNyZWF0ZSogYSB2aXJ0dWFsIFBDSSBkZXZpY2U/IExpbnV4IGhhcyBgQ09ORklHX1BDSV9FTkRQT0lOVF9URVNUYCBvciBgQ09ORklHX1ZGSU9gIG9yIGBDT05GSUdfUENJX1NUVUJgLiBXYWl0LCBMaW51eCBoYXMgYENPTkZJR19QQ0lfU1RVQmAgYnV0IGl0IGRvZXNuJ3QgY3JlYXRlIGRldmljZXMuIFdoYXQgYWJvdXQgYHVtZW1gIG9yIGB2aXJ0aW9gPyBJJ20gbm90IHN1cmUgaWYgU3l6a2FsbGVyIHN1cHBvcnRzIHRoYXQuXG5cbkFjdHVhbGx5LCBTeXprYWxsZXIgcmVjZW50bHkgYWRkZWQgc3VwcG9ydCBmb3IgZnV6emluZyBQQ0kgZGV2aWNlcyB2aWEgYHZmaW9gIG9yIGB2aXJ0aW9gPyBObywgc3l6a2FsbGVyIGhhcyBhIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IuIEZvciBQQ0ksIHN5emthbGxlciB1c2VzIGBzeXpfcGNpX2RldmljZWA/IEkgZ3JlcHBlZCBmb3IgYHN5el9wY2lgIGFuZCBnb3Qgbm8gbWF0Y2hlcy5cblxuV2FpdCwgbWF5YmUgU3l6a2FsbGVyIGlzIHVzaW5nIGBzeXpfZ2VuZXRsaW5rX2dldF9mYW1pbHlfaWRgP1xuXG5Pa2F5LCAqaWYqIFN5emthbGxlciBmb3VuZCBidWdzIGluIGBpd2x3aWZpYCwgaXQgbWVhbnMgU3l6a2FsbGVyICpjYW4qIHJlYWNoIGl0LiBIb3c/IE1heWJlIHN5emthbGxlciBydW5zIG9uIEdDRSBpbnN0YW5jZXMgdGhhdCBoYXZlIHZpcnR1YWwgV2ktRmk/IE5vLCBHQ0UgZG9lc24ndCBoYXZlIFdpLUZpLiBDb3VsZCBTeXprYWxsZXIgcnVuIG9uIGEgc3BlY2lmaWMgdGVzdGJlZCB3aXRoIHJlYWwgYGl3bHdpZmlgIGhhcmR3YXJlP1xuXG5JIGhhdmUgaXQhIFRoaXMgYnVnIHJlcG9ydCBzYWlkIFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXCIgSWYgaXQncyBpbXBvc3NpYmxlIHRvXG5cbiIsIklucHV0VG9rZW5zIjoxMzgxNTAsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDU1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjE2OjMyLjQ0NzYyMzczNFoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDIxMjk3MDI4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzaW11bGF0b3JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjE2OjMyLjg2ODkyOTY5MloiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTM3NzkxMzQzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipEaWdnaW5nIGludG8gdGhlIGl3bHdpZmkgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBgaXdsd2lmaWAgc2l0dWF0aW9uIGJldHRlciwgbGlrZWx5IHRvIHRyb3VibGVzaG9vdCBzb21ldGhpbmcgb3IgcGVyaGFwcyBhc3Nlc3MgYSBwb3RlbnRpYWwgcGF0Y2ggb3IgZHJpdmVyIGNoYW5nZS4gTXkgZmlyc3QgaW5zdGluY3QsIGFzIGFsd2F5cywgaXMgdG8gZ28gc3RyYWlnaHQgdG8gdGhlIHNvdXJjZS4gVGhlIEtjb25maWcgZmlsZXMgaW4gdGhlIGtlcm5lbCB0cmVlIGFyZSB0aGUgdWx0aW1hdGUgYXV0aG9yaXR5IG9uIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZXNwZWNpYWxseSB3aGVuIHdlJ3JlIGRlYWxpbmcgd2l0aCBkcml2ZXJzLiBTbywgSSdtIGhlYWRpbmcgb3ZlciB0byB0aGUgcmVsZXZhbnQgZGlyZWN0b3J5IOKAkyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnYCDigJMgdG8gY2hlY2sgdGhlIGRlZmluaXRpb24gZm9yIGBDT05GSUdfSVdMV0lGSWAuIFRoaXMgaXMgd2hlcmUgYWxsIHRoZSBqdWljeSBkZXRhaWxzIGFib3V0IHRoZSBgaXdsd2lmaWAgZHJpdmVyJ3MgZW5hYmxlL2Rpc2FibGUgY29uZGl0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgYW55IG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIHdpbGwgYmUgbGFpZCBvdXQuIEl0J3MgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciByZWFsbHkgZGl2aW5nIGludG8gdGhlIGd1dHMgb2YgaG93IHRoaXMgV2lGaSBkcml2ZXIgYmVoYXZlcyB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBwcm9jZXNzLiBGcm9tIHRoZXJlLCBJIGNhbiBnZXQgYSBnb29kIG92ZXJ2aWV3IG9mIGl0cyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDAyNzcsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoxNzowMi4yNDY4NDUxOTlaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1NjQxNTc0MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSVdMV0lGSVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6Mjpjb25maWcgSVdMV0lGSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBXaXJlbGVzcyBXaUZpIE5leHQgR2VuIEFHTiAtIFdpcmVsZXNzLU4vQWR2YW5jZWQtTi9VbHRpbWF0ZS1OIChpd2x3aWZpKSBcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NDc9aWYgSVdMV0lGSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NDk6Y29uZmlnIElXTFdJRklfS1VOSVRfVEVTVFNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNTAtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NTg6Y29uZmlnIElXTFdJRklfTEVEU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01OS1cXHRib29sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9ODQ9Y29uZmlnIElXTE1MRFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTk0LSMgZG9uJ3QgY2FsbCBpdCBfTU9EVUxFIC0tIHdpbGwgY29uZnVzZSBLY29uZmlnL2ZpeGRlcC8uLi5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6OTU6Y29uZmlnIElXTFdJRklfT1BNT0RFX01PRFVMQVJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctOTYtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNT1tZW51IFxcXCJEZWJ1Z2dpbmcgT3B0aW9uc1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMDc6Y29uZmlnIElXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTA4LVxcdGJvb2wgXFxcIkVuYWJsZSBmdWxsIGRlYnVnZ2luZyBvdXRwdXQgaW4gdGhlIGl3bHdpZmkgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTMxOmNvbmZpZyBJV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMyLVxcdGJvb2wgXFxcIml3bHdpZmkgZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTM5OmNvbmZpZyBJV0xXSUZJX0RFVklDRV9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0MC1cXHRib29sIFxcXCJpd2x3aWZpIGRldmljZSBhY2Nlc3MgdHJhY2luZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MTc6MDIuNTAzMjY2NjFaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTkzMDQzOTQzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipQQ0kgRGV2aWNlIEluamVjdGlvbiBRdWVzdCoqXG5cbk9rYXksIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGlzIGBpd2x3aWZpYCBkcml2ZXIuIEl0IGZ1bmRhbWVudGFsbHkgcmVsaWVzIG9uIGBQQ0lgLCByaWdodD8gVGhlIGNvcmUgY2hhbGxlbmdlIG5vdyBpcyBmaWd1cmluZyBvdXQgaG93IHRvIGluamVjdCBhIFBDSSBkZXZpY2Ugd2l0aGluIFFFTVUgdGhhdCB0aGUgYGl3bHdpZmlgIG1vZHVsZSB3aWxsIGhhcHBpbHkgYmluZCB0by4gUUVNVSAqZG9lcyogaGF2ZSBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBjYXBhYmlsaXRpZXMsIHdoaWNoIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gSG93ZXZlciwgaXQgc2VlbXMgUUVNVSBkb2Vzbid0IGRpcmVjdGx5IGVtdWxhdGUgdGhlIGBpd2x3aWZpYCBkZXZpY2UgaXRzZWxmLiBcblxuSG1tLCBJIHJlY2FsbCBzZWVpbmcgc29tZXRoaW5nIGFib3V0IGBzeXpfcGNpX2RldmljZWAgaW4gc3l6a2FsbGVyLCBidXQgYSBxdWljayBzZWFyY2ggd2l0aCBcInN5el9wY2lcIiB5aWVsZGVkIG5vdGhpbmcuIExldCBtZSBicm9hZGVuIHRoZSBzY29wZS4gSSBuZWVkIHRvIGRlbHZlIGludG8gdGhlIGB0b29scy9gLCBgbGliL2AsIGFuZCBga2VybmVsL2AgZGlyZWN0b3JpZXMgd2l0aGluIHRoZSBzeXprYWxsZXIgcmVwb3NpdG9yeS4gVGhlcmUncyBib3VuZCB0byBiZSBzb21lIGNsZXZlciBtZWNoYW5pc20gaW4gdGhlcmUgZm9yIFBDSSBpbmplY3Rpb24sIHBlcmhhcHMgdW5kZXIgYSBtb3JlIGdlbmVyaWMgYHN5el9gIHByZWZpeC4gVGhhdCdzIHdoZXJlIHRoZSBtYWdpYyBwcm9iYWJseSBsaWVzLiBHb3R0YSBkaWcgZGVlcGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDEyMzEsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MTc6MDguNDMzNzA5NTc3WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzI5OTM5NSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3l6X1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJsaWIvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoxNzowOC41MDEwMTUwMjJaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5NjI2MTY3MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTeXprYWxsZXIgQ29ubmVjdGlvbiB0byBgaXdsd2lmaWAgYW5kIFdvcnRoRnV6emluZyoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGlzIGBpd2x3aWZpYCBwYXRjaCBpcyBhY3R1YWxseSBcIndvcnRoIGZ1enppbmdcIiBnaXZlbiB0aGUgcHJvbXB0J3MgcmVzdHJpY3Rpb25zLiBUaGUgaW5pdGlhbCB0aG91Z2h0IHdhcywgXCJTeXprYWxsZXIgZm91bmQgc29tZXRoaW5nIGluIGBpd2x3aWZpYCDigJMgaG93IGRpZCBpdCBldmVuICpnZXQqIHRoZXJlPyBUaG9zZSBwc2V1ZG8tc3lzY2FsbHMgYXJlIGV4ZWN1dG9yLXNpZGUsIG5vdCBpbiB0aGUgY29yZSBrZXJuZWwuXCIgVGhlbiBJIGNvbnNpZGVyZWQsIFwiQ291bGQgaXQgYmUgYSBgbWFjODAyMTFfaHdzaW1gIHNjZW5hcmlvLCBtZWFuaW5nIGl0J3MgKm5vdCogYSBidWcgZGlyZWN0bHkgaW4gYGl3bHdpZmlgIGNvZGU/XCIgQnV0IG5vLCB0aGUgcGF0Y2ggc3BlY2lmaWNhbGx5IHRhcmdldHMgdGhhdCBkaXJlY3RvcnkgKGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2ApLiBTbyBpZiBTeXprYWxsZXIgKmRpZCogZmluZCBzb21ldGhpbmcsIGBpd2x3aWZpYCBtdXN0IGJlIHJlYWNoYWJsZSBzb21laG93LlxuXG5UaGVuIGl0IGhpdCBtZTogXCJEdWghIFN5emthbGxlciAqY2FuKiBydW4gb24gcmVhbCBoYXJkd2FyZSFcIiBNYXliZSBzb21lb25lIHJhbiBpdCBvbiBhIGxhcHRvcCB3aXRoIGFuIEludGVsIFdpLUZpIGNhcmQsIGFuZCB0aGF0J3MgaG93IHRoZSBidWcgd2FzIGV4cG9zZWQuXG5cbkJ1dCB3YWl0IGEgbWludXRlLCB0aGUgcHJvbXB0ICpzcGVjaWZpY2FsbHkqIHNheXMgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIHRoZSBhZmZlY3RlZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLCBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUuIElmIGBpd2x3aWZpYCBpcyBpbXBvc3NpYmxlIHRvIHRyaWdnZXIgaW4gUUVNVSwgdGhlbiBpdCBpcyBub3QgV29ydGhGdXp6aW5nLlxuXG5UaGUga2V5IHF1ZXN0aW9uIGlzLCBcIklzIGBpd2x3aWZpYCBldmVuICpwcmVzZW50KiBpbiBRRU1VP1wiIFFFTVUgZG9lc24ndCBlbXVsYXRlIEludGVsIFdpLUZpIGNhcmRzLCByaWdodD8gSSdtIHByZXR0eSBzdXJlIHRoZXJlJ3Mgbm8gYGl3bHdpZmlgIGRldmljZSBmb3IgUUVNVS4gSG9sZCBvbiwgaXMgdGhlcmUgKmFueSogdmlydHVhbCBgaXdsd2lmaWAgZGV2aWNlIG9yIHRlc3QgbW9kdWxlIHRoYXQgKmNvdWxkKiBleGlzdD8gSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhhdC4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDE2MDksIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MTc6NDEuNDYzNjM0MjkyWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mzk1ODYwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpd2x3aWZpXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTUxNSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTI9Y29uZmlnIElXTFdJRklcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MzpcXHR0cmlzdGF0ZSBcXFwiSW50ZWwgV2lyZWxlc3MgV2lGaSBOZXh0IEdlbiBBR04gLSBXaXJlbGVzcy1OL0FkdmFuY2VkLU4vVWx0aW1hdGUtTiAoaXdsd2lmaSkgXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy00LVxcdGRlcGVuZHMgb24gUENJIFxcdTAwMjZcXHUwMDI2IEhBU19JT01FTSBcXHUwMDI2XFx1MDAyNiBDRkc4MDIxMVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTM0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzozNTpcXHQgICAgICAgICAgXFx1MDAzY2h0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL0RyaXZlcnMvaXdsd2lmaVxcdTAwM2UuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTM2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTQ0LVxcdCAgc2F5IE0gaGVyZSBhbmQgcmVhZCBcXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL2tidWlsZC9tb2R1bGVzLnJzdFxcdTAwM2UuICBUaGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NDU6XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaXdsd2lmaS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNDYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NDk9Y29uZmlnIElXTFdJRklfS1VOSVRfVEVTVFNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01My1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjU0OlxcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIGZvciBpd2x3aWZpIGt1bml0IHRlc3RzLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy01NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz02Nj1jb25maWcgSVdMRFZNXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNzEtXFx0ICBvZiB0aGUgZGV2aWNlcyB0aGF0IHVzZSB0aGlzIGZpcm13YXJlIGlzIGF2YWlsYWJsZSBoZXJlOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo3MjpcXHQgIGh0dHBzOi8vd2lyZWxlc3Mud2lraS5rZXJuZWwub3JnL2VuL3VzZXJzL2RyaXZlcnMvaXdsd2lmaSNmaXJtd2FyZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy03My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NzQ9Y29uZmlnIElXTE1WTVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTgxLVxcdCAgb2YgdGhlIGRldmljZXMgdGhhdCB1c2UgdGhpcyBmaXJtd2FyZSBpcyBhdmFpbGFibGUgaGVyZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6ODI6XFx0ICBodHRwczovL3dpcmVsZXNzLndpa2kua2VybmVsLm9yZy9lbi91c2Vycy9kcml2ZXJzL2l3bHdpZmkjZmlybXdhcmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctODMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTg0PWNvbmZpZyBJV0xNTERcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy05MS1cXHQgIFRoZSBsaXN0IG9mIHRoZSBkZXZpY2VzIHRoYXQgdXNlIHRoaXMgZmlybXdhcmUgaXMgYXZhaWxhYmxlIGhlcmU6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjkyOlxcdCAgaHR0cHM6Ly93aXJlbGVzcy53aWtpLmtlcm5lbC5vcmcvZW4vdXNlcnMvZHJpdmVycy9pd2x3aWZpI2Zpcm13YXJlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTkzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTk1PWNvbmZpZyBJV0xXSUZJX09QTU9ERV9NT0RVTEFSXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMDI6Y29tbWVudCBcXFwiV0FSTklORzogaXdsd2lmaSBpcyB1c2VsZXNzIHdpdGhvdXQgSVdMRFZNIG9yIElXTE1WTSBvciBJV0xNTERcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwMy1cXHRkZXBlbmRzIG9uIElXTERWTT1uIFxcdTAwMjZcXHUwMDI2IElXTE1WTT1uIFxcdTAwMjZcXHUwMDI2IElXTE1MRD1uXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTA3PWNvbmZpZyBJV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEwODpcXHRib29sIFxcXCJFbmFibGUgZnVsbCBkZWJ1Z2dpbmcgb3V0cHV0IGluIHRoZSBpd2x3aWZpIGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTA5LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTEwOlxcdCAgVGhpcyBvcHRpb24gd2lsbCBlbmFibGUgZGVidWcgdHJhY2luZyBvdXRwdXQgZm9yIHRoZSBpd2x3aWZpIGRyaXZlcnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTExLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTE2OlxcdFxcdC9zeXMvbW9kdWxlL2l3bHdpZmkvcGFyYW1ldGVycy9kZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMjI6XFx0XFx0ICAlIGVjaG8gMHg0M2ZmZiBcXHUwMDNlIC9zeXMvbW9kdWxlL2l3bHdpZmkvcGFyYW1ldGVycy9kZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyNC1cXHQgIFlvdSBjYW4gZmluZCB0aGUgbGlzdCBvZiBkZWJ1ZyBtYXNrIHZhbHVlcyBpbjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTI1OlxcdFxcdCAgZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtZGVidWcuaFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMjYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTMxPWNvbmZpZyBJV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTMyOlxcdGJvb2wgXFxcIml3bHdpZmkgZGVidWdmcyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzMtXFx0ZGVwZW5kcyBvbiBNQUM4MDIxMV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzNC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzNTpcXHQgIEVuYWJsZSBjcmVhdGlvbiBvZiBkZWJ1Z2ZzIGZpbGVzIGZvciB0aGUgaXdsd2lmaSBkcml2ZXJzLiBUaGlzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzNi1cXHQgIGlzIGEgbG93LWltcGFjdCBvcHRpb24gdGhhdCBhbGxvd3MgZ2V0dGluZyBpbnNpZ2h0IGludG8gdGhlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTM5PWNvbmZpZyBJV0xXSUZJX0RFVklDRV9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjE0MDpcXHRib29sIFxcXCJpd2x3aWZpIGRldmljZSBhY2Nlc3MgdHJhY2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTQxLVxcdGRlcGVuZHMgb24gRVZFTlRfVFJBQ0lOR1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0NC1cXHQgIFNheSBZIGhlcmUgdG8gdHJhY2UgYWxsIGNvbW1hbmRzLCBpbmNsdWRpbmcgVFggZnJhbWVzIGFuZCBJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxNDU6XFx0ICBhY2Nlc3Nlcywgc2VudCB0byB0aGUgZGV2aWNlLiBJZiB5b3Ugc2F5IHllcywgaXdsd2lmaSB3aWxsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTE0Ni1cXHQgIHJlZ2lzdGVyIHdpdGggdGhlIGZ0cmFjZSBmcmFtZXdvcmsgZm9yIGV2ZW50IHRyYWNpbmcgYW5kIGR1bXBcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMi0jIGNvbW1vblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMV0lGSSlcXHQrPSBpd2x3aWZpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQ6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWlvLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjU6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWRydi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo2Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGl3bC1kZWJ1Zy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo3Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGl3bC1udm0tdXRpbHMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6ODppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtdXRpbHMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6OTppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtcGh5LWRiLm8gaXdsLW52bS1wYXJzZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTExLSMgQnVzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxMjppd2x3aWZpLW9ianNcXHRcXHQrPSBwY2llL2N0eHQtaW5mby5vIHBjaWUvY3R4dC1pbmZvLXYyLm8gcGNpZS9kcnYubyBwY2llL3V0aWxzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjEzOml3bHdpZmktb2Jqc1xcdFxcdCs9IHBjaWUvZ2VuMV8yL3J4Lm8gcGNpZS9nZW4xXzIvdHgubyBwY2llL2dlbjFfMi90cmFucy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxNDppd2x3aWZpLW9ianNcXHRcXHQrPSBwY2llL2dlbjFfMi90cmFucy1nZW4yLm8gcGNpZS9nZW4xXzIvdHgtZ2VuMi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlPTE2PUNGTEFHU19wY2llL2Rydi5vICs9IC1Xbm8tb3ZlcnJpZGUtaW5pdFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xOC0jIGNvbWJpbmVkIE1BQy9SRiBjb25maWd1cmF0aW9uc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTk6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICs9IGNmZy8xMDAwLm8gY2ZnLzIwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjA6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICs9IGNmZy81MDAwLm8gY2ZnLzYwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjE6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy83MDAwLm8gY2ZnLzgwMDAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMjItIyBNQUMgY29uZmlndXJhdGlvbnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjIzOml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvOTAwMC5vIGNmZy8yMjAwMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNDppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnL2F4MjEwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI1Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvYnoubyBjZmcvc2Mub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjY6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICs9IGNmZy9iei5vIGNmZy9zYy5vIGNmZy9kci5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yNy0jIFJGIGNvbmZpZ3VyYXRpb25zXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyODppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnL3JmLWpmLm8gY2ZnL3JmLWhyLm8gY2ZnL3JmLWdmLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI5Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSArPSBjZmcvcmYtZm0ubyBjZmcvcmYtd2gubyBjZmcvcmYtcGUub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozMTppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtZGJnLXRsdi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozMjppd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtdHJhbnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNDppd2x3aWZpLW9ianNcXHRcXHQrPSBmdy9pbWcubyBmdy9ub3RpZi13YWl0Lm8gZncvcnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzU6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gZncvZGJnLm8gZncvZGJnLW9sZC5vIGZ3L3Budm0ubyBmdy9kdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM2Oml3bHdpZmktb2Jqc1xcdFxcdCs9IGZ3L3JlZ3VsYXRvcnkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzc6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGZ3L3BhZ2luZy5vIGZ3L3NtZW0ubyBmdy9pbml0Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM4Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSArPSBmdy9zbWVtLm8gZncvaW5pdC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozOTppd2x3aWZpLSQoQ09ORklHX0FDUEkpICs9IGZ3L2FjcGkub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDA6aXdsd2lmaS0kKENPTkZJR19FRkkpXFx0Kz0gZncvdWVmaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0MTppd2x3aWZpLSQoQ09ORklHX0lXTFdJRklfREVCVUdGUykgKz0gZncvZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQzOml3bHdpZmktb2JqcyArPSAkKGl3bHdpZmktbSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQ0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDU6aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKSArPSBpd2wtZGV2dHJhY2Uub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jOjI1OiNkZWZpbmUgSVdMMTAwMF9GV19QUkUgXFxcIml3bHdpZmktMTAwMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8xMDAwLmMtMjYtI2RlZmluZSBJV0wxMDAwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDEwMDBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMTAwMC5jLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYzoyODojZGVmaW5lIElXTDEwMF9GV19QUkUgXFxcIml3bHdpZmktMTAwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzEwMDAuYy0yOS0jZGVmaW5lIElXTDEwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wxMDBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jOjMxOiNkZWZpbmUgSVdMMjAzMF9GV19QUkUgXFxcIml3bHdpZmktMjAzMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzItI2RlZmluZSBJV0wyMDMwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDIwMzBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYzozNDojZGVmaW5lIElXTDIwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTIwMDBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjAwMC5jLTM1LSNkZWZpbmUgSVdMMjAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wyMDAwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6Mzc6I2RlZmluZSBJV0wxMDVfRldfUFJFIFxcXCJpd2x3aWZpLTEwNVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtMzgtI2RlZmluZSBJV0wxMDVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTA1X0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzIwMDAuYy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmM6NDA6I2RlZmluZSBJV0wxMzVfRldfUFJFIFxcXCJpd2x3aWZpLTEzNVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMDAwLmMtNDEtI2RlZmluZSBJV0wxMzVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMMTM1X0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jOjE4OiNkZWZpbmUgSVdMX0NDX0FfRldfUFJFXFx0XFx0XFx0XFxcIml3bHdpZmktY2MtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoxOTojZGVmaW5lIElXTF9RVV9CX0hSX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktUXUtYjAtaHItYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoyMDojZGVmaW5lIElXTF9RVV9DX0hSX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktUXUtYzAtaHItYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvMjIwMDAuYzoyMTojZGVmaW5lIElXTF9RVVpfQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLVF1Wi1hMC1oci1iMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy8yMjAwMC5jLTIyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jLTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYzoyNzojZGVmaW5lIElXTDUwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTUwMDBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNTAwMC5jLTI4LSNkZWZpbmUgSVdMNTAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w1MDAwX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0yOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy81MDAwLmM6MzA6I2RlZmluZSBJV0w1MTUwX0ZXX1BSRSBcXFwiaXdsd2lmaS01MTUwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzUwMDAuYy0zMS0jZGVmaW5lIElXTDUxNTBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNTE1MF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDA6I2RlZmluZSBJV0w2MDAwX0ZXX1BSRSBcXFwiaXdsd2lmaS02MDAwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00MS0jZGVmaW5lIElXTDYwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjAwMF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jOjQzOiNkZWZpbmUgSVdMNjA1MF9GV19QUkUgXFxcIml3bHdpZmktNjA1MFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmMtNDQtI2RlZmluZSBJV0w2MDUwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDYwNTBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYzo0NjojZGVmaW5lIElXTDYwMDVfRldfUFJFIFxcXCJpd2x3aWZpLTYwMDBnMmFcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNjAwMC5jLTQ3LSNkZWZpbmUgSVdMNjAwNV9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0w2MDA1X0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy82MDAwLmM6NDk6I2RlZmluZSBJV0w2MDMwX0ZXX1BSRSBcXFwiaXdsd2lmaS02MDAwZzJiXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzYwMDAuYy01MC0jZGVmaW5lIElXTDYwMzBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNjAzMF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6Mzc6I2RlZmluZSBJV0w3MjYwX0ZXX1BSRSBcXFwiaXdsd2lmaS03MjYwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy0zOC0jZGVmaW5lIElXTDcyNjBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNzI2MF9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtMzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQwOiNkZWZpbmUgSVdMMzE2MF9GV19QUkUgXFxcIml3bHdpZmktMzE2MFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDEtI2RlZmluZSBJV0wzMTYwX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDMxNjBfRldfUFJFIFxcXCItXFxcIiBfX3N0cmluZ2lmeShhcGkpIFxcXCIudWNvZGVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYzo0MzojZGVmaW5lIElXTDMxNjhfRldfUFJFIFxcXCJpd2x3aWZpLTMxNjhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jLTQ0LSNkZWZpbmUgSVdMMzE2OF9NT0RVTEVfRklSTVdBUkUoYXBpKSBJV0wzMTY4X0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmM6NDY6I2RlZmluZSBJV0w3MjY1X0ZXX1BSRSBcXFwiaXdsd2lmaS03MjY1XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy00Ny0jZGVmaW5lIElXTDcyNjVfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgSVdMNzI2NV9GV19QUkUgXFxcIi1cXFwiIF9fc3RyaW5naWZ5KGFwaSkgXFxcIi51Y29kZVxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy83MDAwLmMtNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvNzAwMC5jOjQ5OiNkZWZpbmUgSVdMNzI2NURfRldfUFJFIFxcXCJpd2x3aWZpLTcyNjVEXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzcwMDAuYy01MC0jZGVmaW5lIElXTDcyNjVEX01PRFVMRV9GSVJNV0FSRShhcGkpIElXTDcyNjVEX0ZXX1BSRSBcXFwiLVxcXCIgX19zdHJpbmdpZnkoYXBpKSBcXFwiLnVjb2RlXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYzozMDojZGVmaW5lIElXTDgwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTgwMDBDXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYy0zMS0jZGVmaW5lIElXTDgwMDBfTU9EVUxFX0ZJUk1XQVJFKGFwaSkgXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnLzgwMDAuYzozNDojZGVmaW5lIElXTDgyNjVfRldfUFJFIFxcXCJpd2x3aWZpLTgyNjVcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvODAwMC5jLTM1LSNkZWZpbmUgSVdMODI2NV9NT0RVTEVfRklSTVdBUkUoYXBpKSBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy85MDAwLmMtMjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jOjIyOiNkZWZpbmUgIElXTDkwMDBfRldfUFJFIFxcXCJpd2x3aWZpLTkwMDAtcHUtYjAtamYtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jOjIzOiNkZWZpbmUgIElXTDkyNjBfRldfUFJFIFxcXCJpd2x3aWZpLTkyNjAtdGgtYjAtamYtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvOTAwMC5jLTI0LSNkZWZpbmUgSVdMOTAwMF9NT0RVTEVfRklSTVdBUkUoYXBpKSBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MTg6I2RlZmluZSBJV0xfU09fQV9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNvLWEwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MTk6I2RlZmluZSBJV0xfVFlfQV9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXR5LWEwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjA6I2RlZmluZSBJV0xfTUFfQV9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWEwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjE6I2RlZmluZSBJV0xfTUFfQl9HRl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWIwLWdmLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjI6I2RlZmluZSBJV0xfU09fQV9HRjRfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zby1hMC1nZjQtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYXgyMTAuYzoyMzojZGVmaW5lIElXTF9NQV9BX0dGNF9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWEwLWdmNC1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9heDIxMC5jOjI0OiNkZWZpbmUgSVdMX01BX0JfR0Y0X0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktbWEtYjAtZ2Y0LWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjU6I2RlZmluZSBJV0xfU09fQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNvLWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6MjY6I2RlZmluZSBJV0xfTUFfQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmM6Mjc6I2RlZmluZSBJV0xfTUFfQl9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLW1hLWIwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2F4MjEwLmMtMjgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9iei5jLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MTg6I2RlZmluZSBJV0xfQlpfQV9GTV9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWZtLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MTk6I2RlZmluZSBJV0xfQlpfQV9GTV9DX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWZtLWMwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2J6LmM6MjA6I2RlZmluZSBJV0xfQlpfQV9GTTRfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1iei1hMC1mbTQtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoyMTojZGVmaW5lIElXTF9HTF9CX0ZNX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktZ2wtYjAtZm0tYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYzoyMjojZGVmaW5lIElXTF9HTF9DX0ZNX0NfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktZ2wtYzAtZm0tYzBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvYnouYy0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL2RyLmMtMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvZHIuYzoxNzojZGVmaW5lIElXTF9EUl9BX1BFX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktZHItYTAtcGUtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvZHIuYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmMtMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNDojZGVmaW5lIElXTF9CWl9BX0dGX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktYnotYTAtZ2YtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtZ2YuYzoxNTojZGVmaW5lIElXTF9CWl9BX0dGNF9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWdmNC1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jOjE2OiNkZWZpbmUgSVdMX1NDX0FfR0ZfQV9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1zYy1hMC1nZi1hMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1nZi5jOjE3OiNkZWZpbmUgSVdMX1NDX0FfR0Y0X0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtZ2Y0LWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWdmLmMtMTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1oci5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTQ6I2RlZmluZSBJV0xfQlpfQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLWJ6LWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTU6I2RlZmluZSBJV0xfU0NfQV9IUl9BX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjLWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmM6MTY6I2RlZmluZSBJV0xfU0NfQV9IUl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjLWEwLWhyLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWhyLmMtMTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9yZi1qZi5jLTEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTQ6I2RlZmluZSBJV0xfUVVfQl9KRl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLVF1LWIwLWpmLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTU6I2RlZmluZSBJV0xfUVVfQ19KRl9CX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLVF1LWMwLWpmLWIwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3JmLWpmLmM6MTY6I2RlZmluZSBJV0xfUVVaX0FfSkZfQl9GV19QUkVcXHRcXHRcXFwiaXdsd2lmaS1RdVotYTAtamYtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYzoxNzojZGVmaW5lIElXTF9TT19BX0pGX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc28tYTAtamYtYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvcmYtamYuYy0xOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmMtMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoxODojZGVmaW5lIElXTF9TQ19BX0ZNX0JfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtZm0tYjBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoxOTojZGVmaW5lIElXTF9TQ19BX0ZNX0NfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtZm0tYzBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoyMDojZGVmaW5lIElXTF9TQ19BX1dIX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MtYTAtd2gtYTBcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9jZmcvc2MuYzoyMTojZGVmaW5lIElXTF9TQzJfQV9GTV9DX0ZXX1BSRVxcdFxcdFxcXCJpd2x3aWZpLXNjMi1hMC1mbS1jMFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2NmZy9zYy5jOjIyOiNkZWZpbmUgSVdMX1NDMl9BX1dIX0FfRldfUFJFXFx0XFx0XFxcIml3bHdpZmktc2MyLWEwLXdoLWEwXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvY2ZnL3NjLmMtMjMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjI2Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfZndfcmVzdGFydF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjY2LVxcdHN0cnVjdCBpd2xfcHJpdiAqcHJpdiA9IGZpbGUtXFx1MDAzZXByaXZhdGVfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjI2NzpcXHRib29sIGZ3X3Jlc3RhcnQgPSBpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI2OC1cXHRpbnQgX19tYXliZV91bnVzZWQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjY5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjcwOlxcdGl3bHdpZmlfbW9kX3BhcmFtcy5md19yZXN0YXJ0ID0gdHJ1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjc5OlxcdGl3bHdpZmlfbW9kX3BhcmFtcy5md19yZXN0YXJ0ID0gZndfcmVzdGFydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjI4MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzEzPXZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzODE6XFx0XFx0ZGVidWdmc19jcmVhdGVfc3ltbGluayhcXFwiaXdsd2lmaVxcXCIsIG1hYzgwMjExX2RpciwgYnVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM4Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaD0yMTA9c3RydWN0IGl3bF9zZW5zaXRpdml0eV9yYW5nZXMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtMjQ0LSAqIE5hbWluZyBjb252ZW50aW9uIC0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6MjQ1OiAqIGl3bF8gICAgICAgICBcXHUwMDNjLS0gSXMgcGFydCBvZiBpd2x3aWZpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtMjQ2LSAqIGl3bFhYWFhfICAgICBcXHUwMDNjLS0gSGFyZHdhcmUgc3BlY2lmaWMgKGltcGxlbWVudGVkIGluIGl3bC1YWFhYLmMgZm9yIFhYWFgpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYz0xMDU5PWl3bF9wYXJzZV9lZXByb21fZGF0YShzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucywgY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgKmNmZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2VlcHJvbS5jLTExMTgtXFx0ZGF0YS1cXHUwMDNlc2t1X2NhcF9pcGFuX2VuYWJsZSA9IHNrdSBcXHUwMDI2IEVFUFJPTV9TS1VfQ0FQX0lQQU5fRU5BQkxFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2VlcHJvbS5jOjExMTk6XFx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5kaXNhYmxlXzExbiBcXHUwMDI2IElXTF9ESVNBQkxFX0hUX0FMTClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9lZXByb20uYy0xMTIwLVxcdFxcdGRhdGEtXFx1MDAzZXNrdV9jYXBfMTFuX2VuYWJsZSA9IGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmM9MTU1PXZvaWQgaXdsX2xlZHNfaW5pdChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmMtMTU2LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuYzoxNTc6XFx0aW50IG1vZGUgPSBpd2x3aWZpX21vZF9wYXJhbXMubGVkX21vZGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmMtMTU4LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYz0yMDE9dm9pZCBpd2xhZ25fc2VuZF9hZHZhbmNlX2J0X2NvbmZpZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYy0yNjItXFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM6MjYzOlxcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLmJ0X2NvZXhfYWN0aXZlIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmMtMjY0LVxcdCAgICBwcml2LVxcdTAwM2Vpd19tb2RlID09IE5MODAyMTFfSUZUWVBFX0FESE9DKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9saWIuYz0xMDM0PWludCBpd2xhZ25fc3VzcGVuZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBjZmc4MDIxMV93b3dsYW4gKndvd2xhbilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTExMzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGliLmM6MTEzNjpcXHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2xpYi5jLTExMzctXFx0XFx0LyogbWFyayBhbGwga2V5cyBjbGVhciAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz03OD1pbnQgaXdsYWduX21hY19zZXR1cF9yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTEyMS1cXHRpZiAocHJpdi1cXHUwMDNlZnctXFx1MDAzZXVjb2RlX2NhcGEuZmxhZ3MgXFx1MDAyNiBJV0xfVUNPREVfVExWX0ZMQUdTX01GUCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTIyOlxcdCAgICAhaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTIzLVxcdFxcdGllZWU4MDIxMV9od19zZXQoaHcsIE1GUF9DQVBBQkxFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTUyLVxcdFxcdFxcdFxcdFxcdCAgICAgV0lQSFlfV09XTEFOX1JGS0lMTF9SRUxFQVNFO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6MTUzOlxcdFxcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTU0LVxcdFxcdFxcdHByaXYtXFx1MDAzZXdvd2xhbl9zdXBwb3J0LmZsYWdzIHw9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE2NzpcXHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX3NhdmUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNjgtXFx0XFx0aHctXFx1MDAzZXdpcGh5LVxcdTAwM2VmbGFncyB8PSBXSVBIWV9GTEFHX1BTX09OX0JZX0RFRkFVTFQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTMyNT1zdGF0aWMgdm9pZCBpd2xhZ25fbWFjX3NldF9yZWtleV9kYXRhKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0zMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzozMzE6XFx0aWYgKGl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0bylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTMzMi1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTU4OD1zdGF0aWMgaW50IGl3bGFnbl9tYWNfc2V0X2tleShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgZW51bSBzZXRfa2V5X2NtZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTYwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjYwMTpcXHRpZiAoaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy02MDItXFx0XFx0SVdMX0RFQlVHX01BQzgwMjExKHByaXYsIFxcXCJsZWF2ZSAtIGh3Y3J5cHRvIGRpc2FibGVkXFxcXG5cXFwiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0zOTg9c3RhdGljIHZvaWQgaXdsX3ByaW50X2NvbnRfZXZlbnRfdHJhY2Uoc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIgYmFzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00MzQtXFx0XFx0aWYgKG1vZGUgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo0MzU6XFx0XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfY29udF9ldmVudChcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNDM2LVxcdFxcdFxcdFxcdFxcdHByaXYtXFx1MDAzZXRyYW5zLVxcdTAwM2VkZXYsIDAsIHRpbWUsIGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00MzgtXFx0XFx0XFx0ZGF0YSA9IGl3bF9yZWFkMzIocHJpdi1cXHUwMDNldHJhbnMsIEhCVVNfVEFSR19NRU1fUkRBVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjQzOTpcXHRcXHRcXHR0cmFjZV9pd2x3aWZpX2Rldl91Y29kZV9jb250X2V2ZW50KFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy00NDAtXFx0XFx0XFx0XFx0XFx0cHJpdi1cXHUwMDNldHJhbnMtXFx1MDAzZWRldiwgdGltZSwgZGF0YSwgZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTQ0Nz1zdGF0aWMgdm9pZCBpd2xfY29udGludW91c19ldmVudF90cmFjZShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzo1MDQ6XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfd3JhcF9ldmVudChwcml2LVxcdTAwM2V0cmFucy1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy01MDUtXFx0XFx0XFx0XFx0bnVtX3dyYXBzIC0gcHJpdi1cXHUwMDNlZXZlbnRfbG9nLm51bV93cmFwcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz03Mzc9c3RhdGljIHZvaWQgaXdsX3NlbmRfYnRfY29uZmlnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy03NDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjc0NjpcXHRpZiAoIWl3bHdpZmlfbW9kX3BhcmFtcy5idF9jb2V4X2FjdGl2ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtNzQ3LVxcdFxcdGJ0X2NtZC5mbGFncyA9IEJUX0NPRVhfRElTQUJMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xMjMzPXN0YXRpYyBzdHJ1Y3QgaXdsX29wX21vZGUgKml3bF9vcF9tb2RlX2R2bV9zdGFydChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMzI0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMzI1OlxcdHN3aXRjaCAoaXdsd2lmaV9tb2RfcGFyYW1zLmFtc2R1X3NpemUpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMyNi1cXHRjYXNlIElXTF9BTVNEVV9ERUY6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTMzNi1cXHRcXHRwcl9lcnIoXFxcIlVuc3VwcG9ydGVkIGFtc2R1X3NpemU6ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMzM3OlxcdFxcdCAgICAgICBpd2x3aWZpX21vZF9wYXJhbXMuYW1zZHVfc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTEzMzgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTE2OTg9c3RhdGljIGludCBpd2xfcHJpbnRfZXZlbnRfbG9nKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyIHN0YXJ0X2lkeCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xNzQ3LVxcdFxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE3NDg6XFx0XFx0XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfZXZlbnQodHJhbnMtXFx1MDAzZWRldiwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc0OS1cXHRcXHRcXHRcXHRcXHR0aW1lLCBldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc2MS1cXHRcXHRcXHRcXHRcXHR0aW1lLCBkYXRhLCBldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE3NjI6XFx0XFx0XFx0XFx0dHJhY2VfaXdsd2lmaV9kZXZfdWNvZGVfZXZlbnQodHJhbnMtXFx1MDAzZWRldiwgdGltZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTc2My1cXHRcXHRcXHRcXHRcXHRkYXRhLCBldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9MTkxMj1zdGF0aWMgdm9pZCBpd2xhZ25fZndfZXJyb3Ioc3RydWN0IGl3bF9wcml2ICpwcml2LCBib29sIG9uZGVtYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTE5NDUtXFx0aWYgKCF0ZXN0X2JpdChTVEFUVVNfRVhJVF9QRU5ESU5HLCBcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdHVzKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxOTQ2OlxcdFxcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMuZndfcmVzdGFydCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xOTQ3LVxcdFxcdFxcdElXTF9ERUJVR19GVyhwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYz0yNzE9c3RhdGljIHZvaWQgaXdsX3Bvd2VyX2J1aWxkX2NtZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jLTMwMS1cXHRcXHRidXQgd2UgcGFzcyAwLTQgYmVjYXVzZSBpdCBhY3RzIGFzIGFuIGFycmF5IGluZGV4LiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM6MzAyOlxcdFxcdGlmIChpd2x3aWZpX21vZF9wYXJhbXMucG93ZXJfbGV2ZWwgXFx1MDAzZSBJV0xfUE9XRVJfSU5ERVhfMSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3Bvd2VyLmM6MzAzOlxcdFxcdCAgICBpd2x3aWZpX21vZF9wYXJhbXMucG93ZXJfbGV2ZWwgXFx1MDAzYz0gSVdMX1BPV0VSX05VTSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9wb3dlci5jLTMwNC1cXHRcXHRcXHRpd2xfc3RhdGljX3NsZWVwX2NtZChwcml2LCBjbWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYzozMDU6XFx0XFx0XFx0XFx0aXdsd2lmaV9tb2RfcGFyYW1zLnBvd2VyX2xldmVsIC0gMSwgZHRpbXBlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcG93ZXIuYy0zMDYtXFx0XFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYz02MDQ9c3RhdGljIHZvaWQgaXdsYWduX3Bhc3NfcGFja2V0X3RvX21hYzgwMjExKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNjIzLVxcdC8qIEluIGNhc2Ugb2YgSFcgYWNjZWxlcmF0ZWQgY3J5cHRvIGFuZCBiYWQgZGVjcnlwdGlvbiwgZHJvcCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6NjI0OlxcdGlmICghaXdsd2lmaV9tb2RfcGFyYW1zLnN3Y3J5cHRvIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy02MjUtXFx0ICAgIGl3bGFnbl9zZXRfZGVjcnlwdGVkX2ZsYWcocHJpdiwgaGRyLCBhbXBkdV9zdGF0dXMsIHN0YXRzKSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYz0xMDIzPWludCBpd2xhZ25fY29tbWl0X3J4b24oc3RydWN0IGl3bF9wcml2ICpwcml2LCBzdHJ1Y3QgaXdsX3J4b25fY29udGV4dCAqY3R4KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jLTExMDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jOjExMDM6XFx0aXdsX3NldF9yeG9uX2h3Y3J5cHRvKHByaXYsIGN0eCwgIWl3bHdpZmlfbW9kX3BhcmFtcy5zd2NyeXB0byk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jLTExMDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oPTEzNj1zdHJ1Y3QgaXdsX2Z3X3BhZ2luZyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oLTE0My0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2ltZy5oOjE0NDogKiBlbnVtIGl3bF9md190eXBlIC0gaXdsd2lmaSBmaXJtd2FyZSB0eXBlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9pbWcuaC0xNDUtICogQElXTF9GV19EVk06IERWTSBmaXJtd2FyZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGJnLXRsdi5jPTQ5OT12b2lkIGl3bF9kYmdfdGx2X2xvYWRfYmluKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGl3bF90cmFucyAqdHJhbnMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kYmctdGx2LmMtNTA0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYzo1MDU6XFx0aWYgKCFpd2x3aWZpX21vZF9wYXJhbXMuZW5hYmxlX2luaSB8fFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRiZy10bHYuYy01MDYtXFx0ICAgIHRyYW5zLVxcdTAwM2VtYWNfY2ZnLVxcdTAwM2VkZXZpY2VfZmFtaWx5IFxcdTAwM2M9IElXTF9ERVZJQ0VfRkFNSUxZXzgwMDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTEzPXZvaWQgX19pd2xfICMjZm4oc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpmbXQsIC4uLilcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTIyLVxcdGRldl8gIyNmbihkZXYsIFxcXCIlcFZcXFwiLCBcXHUwMDI2dmFmKTtcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYzoyMzpcXHR0cmFjZV9pd2x3aWZpXyAjI2ZuKFxcdTAwMjZ2YWYpO1xcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTI0LVxcdHZhX2VuZChhcmdzKTtcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTM0PXZvaWQgX19pd2xfZXJyKHN0cnVjdCBkZXZpY2UgKmRldiwgZW51bSBpd2xfZXJyX21vZGUgbW9kZSwgY29uc3QgY2hhciAqZm10LCAuLi4pXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jLTYwLVxcdHZhZi52YSA9IFxcdTAwMjZhcmdzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM6NjE6XFx0dHJhY2VfaXdsd2lmaV9lcnIoXFx1MDAyNnZhZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02Mi1cXHR2YV9lbmQoYXJncyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTY3PXZvaWQgX19pd2xfZGJnKHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtODItI2VuZGlmXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYzo4MzpcXHR0cmFjZV9pd2x3aWZpX2RiZyhsZXZlbCwgZnVuY3Rpb24sIFxcdTAwMjZ2YWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtODQtXFx0dmFfZW5kKGFyZ3MpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xNj1zdGF0aWMgaW5saW5lIGJvb2wgaXdsX2hhdmVfZGVidWdfbGV2ZWwodTMyIGxldmVsKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xOC0jaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjE5OlxcdHJldHVybiBpd2x3aWZpX21vZF9wYXJhbXMuZGVidWdfbGV2ZWwgXFx1MDAyNiBsZXZlbDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTIwLSNlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTEwMj1kbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEyNi0gKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTI3OiAqXFx0L3N5cy9tb2R1bGUvaXdsd2lmaS9wYXJhbWV0ZXJzL2RlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjgtICogd2hlbiBDT05GSUdfSVdMV0lGSV9ERUJVRz15LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI5LSAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMzA6ICpcXHQvc3lzL2tlcm5lbC9kZWJ1Zy9waHkwL2l3bHdpZmkvZGVidWcvZGVidWdfbGV2ZWxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEzMS0gKiB3aGVuIENPTkZJR19JV0xXSUZJX0RFQlVHRlM9eS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0xNC0jdW5kZWYgVFJBQ0VfU1lTVEVNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oOjE1OiNkZWZpbmUgVFJBQ0VfU1lTVEVNIGl3bHdpZmlfZGF0YVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmg6MTc6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfdHhfdGIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtZGF0YS5oLTE4LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWRhdGEuaC0zNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmg6Mzc6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfcnhfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1kYXRhLmgtMzgtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNC0jdW5kZWYgVFJBQ0VfU1lTVEVNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaDoxNTojZGVmaW5lIFRSQUNFX1NZU1RFTSBpd2x3aWZpX2lvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjE3OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvcmVhZDMyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTgtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTMzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MzQ6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfaW93cml0ZTgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0zNS1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBvZmZzLCB1OCB2YWwpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC01MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjUxOlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGUzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTUyLVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIG9mZnMsIHUzMiB2YWwpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC02Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjY4OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGU2NCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTY5LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgdTY0IG9mZnMsIHU2NCB2YWwpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC04NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjg1OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvd3JpdGVfcHJwaDMyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtODYtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjEwMjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pb3dyaXRlX3BycGg2NCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEwMy1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHU2NCBvZmZzLCB1NjQgdmFsKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTE4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTE5OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lvcmVhZF9wcnBoMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xMjAtXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCB1MzIgb2ZmcywgdTMyIHZhbCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjEzNjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pcnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaW8uaC0xMzctXFx0VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmg6MTQ5OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2lycV9tc2l4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWlvLmgtMTUwLVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IG1zaXhfZW50cnkgKm1zaXhfZW50cnksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE3MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oOjE3MjpUUkFDRV9FVkVOVChpd2x3aWZpX2Rldl9pY3RfcmVhZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pby5oLTE3My1cXHRUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHUzMiBpbmRleCwgdTMyIHZhbHVlKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC0xNS0jdW5kZWYgVFJBQ0VfU1lTVEVNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oOjE2OiNkZWZpbmUgVFJBQ0VfU1lTVEVNIGl3bHdpZmlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmgtMTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oOjE4OlRSQUNFX0VWRU5UKGl3bHdpZmlfZGV2X2hjbWQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTE5LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC01MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmg6NTI6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfcngsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTUzLVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLWl3bHdpZmkuaC03Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS1pd2x3aWZpLmg6NzM6VFJBQ0VfRVZFTlQoaXdsd2lmaV9kZXZfdHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UtaXdsd2lmaS5oLTc0LVxcdFRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MTc6NDEuNTI3NTk5NDk3WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3MDgwOTIyNjM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGFuIGl3bHdpZmkgQnVnIHdpdGggc3l6a2FsbGVyKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGlzIGJ1ZyBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9gIGlzIGV2ZW4gd29ydGggZnV6emluZy4gSSB0aG91Z2h0LCBpbml0aWFsbHksIHRoYXQgc3l6a2FsbGVyICpkaWQqIGhhdmUgY2FsbHMgbGlrZSBgc3l6X3BjaV9kZXZpY2VgIG9yIGBzeXpfdXNiX2Nvbm5lY3RgLiAgSSBrbm93IGl0IGhhcyBgc3l6XzgwMjExX2luamVjdF9mcmFtZWAgd2hpY2ggcmVsYXRlcyB0byBgbWFjODAyMTFfaHdzaW1gLiBCdXQgaWYgdGhpcyBwYXRjaCBpcyBpbiBgaXdsd2lmaWAgYW5kIGl0J3MgaW1wb3NzaWJsZSB0byB0cmlnZ2VyIGl0IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLCBJIHJlYWxseSAqc2hvdWxkKiByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSBwcm9ibGVtIGlzIHRoYXQgc3l6a2FsbGVyICpmb3VuZCogdGhpcyBidWcsIHdoaWNoIG1ha2VzIG1lIHRoaW5rIG1heWJlIG15IGluaXRpYWwgYXNzdW1wdGlvbnMgYXJlIHdyb25nLlxuXG5TbywgaG93IGRpZCBzeXprYWxsZXIgZmluZCBpdD8gSSBuZWVkIHRvIGNvbnNpZGVyIGFsbCBwb3NzaWJpbGl0aWVzLiBEb2VzIGl0IHJ1biBvbiByZWFsIGhhcmR3YXJlPyBJZiB0aGUgYXV0aG9y4oCZcyBjb21tZW50IGlzIGNvcnJlY3QsIGNvZGUgcGF0aHMgaW5hY2Nlc3NpYmxlIGluIGVudmlyb25tZW50cyBsaWtlIFFFTVUsIGV2ZW4gd2l0aCBzb2Z0d2FyZSBlbXVsYXRpb25zLCB3b3VsZCBiZSBhIHByb2JsZW0uIElmIGl0J3MgKmltcG9zc2libGUqIHRvIHJlYWNoIHRoaXMgY29kZSBpbiBRRU1VLCB0aGVuIEkgKm11c3QqIHNheSBpdCdzIG5vdCB3b3J0aCBmdXp6aW5nLiBUaGUga2V5IHF1ZXN0aW9uIG5vdyBpcywgaXMgaXQgaW1wb3NzaWJsZT9cblxuTGV0J3MgYnJlYWsgdGhpcyBkb3duLiBEb2VzIFFFTVUgZW11bGF0ZSBgaXdsd2lmaWA/IE5vLiBJcyB0aGVyZSBhbiBgaXdsd2lmaWAgZW11bGF0b3Igd2l0aGluIHRoZSBrZXJuZWwgaXRzZWxmPyBBbHNvIG5vLiBJcyB0aGVyZSBzb21lIHNvcnQgb2YgZHVtbXkgUENJIGRldmljZSBpbiB0aGUga2VybmVsIHRoYXQgY291bGQgYmUgYm91bmQgdG8gYGl3bHdpZmlgIHRvIGVuYWJsZSB0ZXN0aW5nPyBObyBhZ2Fpbi4gVGhhdCBzZWVtcyB0byBsZWF2ZSBtZSB3aXRoIGEgZGVhZCBlbmQuXG5cblNvLCBob3cgZGlkIHN5emthbGxlciBmaW5kIGl0PyBNYXliZSBzeXprYWxsZXIgaGFzIHNvbWUgdmlydHVhbCBQQ0kgZGV2aWNlIGZyYW1ld29yayBJJ20gbm90IGF3YXJlIG9mPyBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBgQ09ORklHX1BDSV9FTkRQT0lOVF9URVNUYCBzZXR0aW5ncywgb3Igc29tZXRoaW5nIHNpbWlsYXIsIHRoYXQgc3l6a2FsbGVyIHV0aWxpemVzLiBXYWl0LCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgdGhpbmdzIGxpa2UgYHN5el91c2JfY29ubmVjdGAgZm9yIFVTQi4gIEJ1dCBmb3IgUENJLCBJIGNoZWNrZWQgZm9yIGBzeXpfcGNpYCBhbmQgZm91bmQgbm90aGluZy4gSSB0aG91Z2h0LCBtYXliZSBgc3l6X2dlbmV0bGlua19nZXRfZmFtaWx5X2lkYCBtaWdodCBiZSByZWxhdGVkLiAgQnV0IGl0J3Mgbm90IGltbWVkaWF0ZWx5IGNsZWFyLlxuXG5UaGVuIGFub3RoZXIgdGhvdWdodCBoaXRzIG1lOiB3aGF0IGlmIGFub3RoZXIgZnV6emVyIGZvdW5kIHRoZSBidWcsIGFuZCBzeXprYWxsZXIgc2ltcGx5IGltcG9ydGVkIGl0PyBCdXQgdGhhdCBjYW4ndCBiZSB0cnVlIHNpbmNlIHRoZSBcIkF1dGhvclwiIGlzIGxpc3RlZCBhcyBcInN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXCIuIFRoaXMgbWVhbnMgKnN5emthbGxlciogZm91bmQgaXQuICBJJ20gbWlzc2luZyBzb21ldGhpbmcuXG5cbldhaXQuLi4gZGlkIHN5emthbGxlciAqcmVjZW50bHkqIGFkZCBgc3l6X3BjaXZmaW9gIG9yIHNvbWV0aGluZyBzaW1pbGFyPyBJIHNob3VsZCBjaGVjayBpZiB0aGVyZeKAmXMgYW55IHZmaW8gZnV6emluZy4gSSBrbm93IHN5emthbGxlciBoYXMgYHN5el91c2JfY29ubmVjdGAgYW5kIGBzeXpfdmhjaWAgZm9yIFVTQi4gRm9yIFBDSSwgSSBjYW4ndCBmaW5kIGEgYHN5el9wY2lfY29ubmVjdGAuICBBZ2FpbiwgdGhlcmUncyBgc3l6XzgwMjExX2luamVjdF9mcmFtZWAgd2hpY2ggd29ya3Mgd2l0aCBgbWFjODAyMTFfaHdzaW1gLlxuXG5UaGVuIGFub3RoZXIgcG9zc2liaWxpdHkgZW1lcmdlcy4uLmNvdWxkIGBpd2x3aWZpYCBiZSBjb21waWxlZCBhcyBhIEtVTklUIHRlc3Q/IEkgdGhpbmsgSSByZW1lbWJlciBzZWVpbmcgc29tZXRoaW5nIGFib3V0IGBDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUU2AuIFllcywgdGhlcmUgaXQgaXMhICBJIG5lZWQgdG8gY2hlY2sgd2hhdCdzIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3Rlc3RzL2AuIEkgdGhpbmsgdGhpcyBtYXkgaG9sZCB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaG93IHN5emthbGxlciB0cmlnZ2VyZWQgdGhpcyBidWcsIGV2ZW4gaW4gYSBRRU1VIGVudmlyb25tZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTc3NjgsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NDgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MTg6MDguNjA4NTI2MTQ1WiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjY1NTg0MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3VuaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3NzEgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz00OT1jb25maWcgSVdMV0lGSV9LVU5JVF9URVNUU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTUzLVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6NTQ6XFx0ICBFbmFibGUgdGhpcyBvcHRpb24gZm9yIGl3bHdpZmkga3VuaXQgdGVzdHMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTU1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOC0jaW5jbHVkZSBcXHUwMDNjbGludXgvZXhwb3J0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2Lmg6OTojaW5jbHVkZSBcXHUwMDNja3VuaXQvdmlzaWJpbGl0eS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5oLTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbGluay5jLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbGluay5jOjY6I2luY2x1ZGUgXFx1MDAzY2t1bml0L3N0YXRpY19zdHViLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvbGluay5jLTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTYtI2luY2x1ZGUgXFx1MDAzY25ldC9tYWM4MDIxMS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmM6NzojaW5jbHVkZSBcXHUwMDNja3VuaXQvc3RhdGljX3N0dWIuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9zdGEuYy02LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9pZWVlODAyMTEuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9zdGEuYzo3OiNpbmNsdWRlIFxcdTAwM2NrdW5pdC9zdGF0aWNfc3R1Yi5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3N0YS5jLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02LSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjc6I2luY2x1ZGUgXFx1MDAzY2t1bml0L3Rlc3QuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo4OiNpbmNsdWRlIFxcdTAwM2NrdW5pdC9zdGF0aWNfc3R1Yi5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjk6I2luY2x1ZGUgXFx1MDAzY2t1bml0L3NrYnVmZi5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9NDY3PXN0YXRpYyBzdHJ1Y3QgaXdsX3J4X21wZHVfZGVzYyAqc2V0dXBfbXBkdV9kZXNjKHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNDY4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo0Njk6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTQ3MC1cXHRjb25zdCBzdHJ1Y3QgcmVvcmRlcl9idWZmZXJfY2FzZSAqcGFyYW0gPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9NTAyPXN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqYWxsb2NfYW5kX3NldHVwX3NrYih1MTYgZmMsIHUxNiBzZXFfY3RybCwgdTggdGlkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTA0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MDU6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUwNi1cXHRzdHJ1Y3QgaWVlZTgwMjExX2hkciBoZHIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTEyOlxcdHNrYiA9IGt1bml0X3phbGxvY19za2IodGVzdCwgMTI4LCBHRlBfS0VSTkVMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MTMtXFx0S1VOSVRfQVNTRVJUX05PVF9OVUxMKHRlc3QsIHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz01MzE9c2V0dXBfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTMyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MzM6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUzNC1cXHRjb25zdCBzdHJ1Y3QgcmVvcmRlcl9idWZmZXJfY2FzZSAqcGFyYW0gPVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9NTY4PXN0YXRpYyBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqc2V0dXBfYmFfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU2OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTcwOlxcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NzEtXFx0c3RydWN0IGl3bF9tbGQgKm1sZCA9IHRlc3QtXFx1MDAzZXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MDAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjAxOnN0YXRpYyB2b2lkIHRlc3RfcmVvcmRlcl9idWZmZXIoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYwMi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MTctXFx0Z19udW1fcmVsZWFzZWRfc2ticyA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjE4OlxcdGt1bml0X2FjdGl2YXRlX3N0YXRpY19zdHViKHRlc3QsIGl3bF9tbGRfZndfc3RhX2lkX21hc2ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjE5LVxcdFxcdFxcdFxcdCAgIGZha2VfaXdsX21sZF9md19zdGFfaWRfbWFzayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjIwOlxcdGt1bml0X2FjdGl2YXRlX3N0YXRpY19zdHViKHRlc3QsIGl3bF9tbGRfcGFzc19wYWNrZXRfdG9fbWFjODAyMTEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjIxLVxcdFxcdFxcdFxcdCAgIGZha2VfaXdsX21sZF9wYXNzX3BhY2tldF90b19tYWM4MDIxMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYyMzpcXHR2aWYgPSBpd2xtbGRfa3VuaXRfYWRkX3ZpZihmYWxzZSwgTkw4MDIxMV9JRlRZUEVfU1RBVElPTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjI0OlxcdHN0YSA9IGl3bG1sZF9rdW5pdF9zZXR1cF9zdGEodmlmLCBJRUVFODAyMTFfU1RBX0FVVEhPUklaRUQsIC0xKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MjUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02NTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjUyOnN0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSByZW9yZGVyX2J1ZmZlcl90ZXN0X2Nhc2VzW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjUzLVxcdEtVTklUX0NBU0VfUEFSQU0odGVzdF9yZW9yZGVyX2J1ZmZlciwgdGVzdF9yZW9yZGVyX2J1ZmZlcl9nZW5fcGFyYW1zKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTY1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2NTc6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSByZW9yZGVyX2J1ZmZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02NTgtXFx0Lm5hbWUgPSBcXFwiaXdsbWxkLXJlb3JkZXItYnVmZmVyXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02NTktXFx0LnRlc3RfY2FzZXMgPSByZW9yZGVyX2J1ZmZlcl90ZXN0X2Nhc2VzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjY2MDpcXHQuaW5pdCA9IGl3bG1sZF9rdW5pdF90ZXN0X2luaXQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjYxLX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjYyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjY2MzprdW5pdF90ZXN0X3N1aXRlKHJlb3JkZXJfYnVmZmVyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy02LSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYzo3OiNpbmNsdWRlIFxcdTAwM2NrdW5pdC9zdGF0aWNfc3R1Yi5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy04LSNpbmNsdWRlIFxcXCJtbGQuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYz04Nz1LVU5JVF9BUlJBWV9QQVJBTV9ERVNDKHRlc3RfY2hhbl9sb2FkX3RocmVzaF9jYXNlcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy04OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmM6OTA6c3RhdGljIHZvaWQgdGVzdF9jaGFuX2xvYWRfdGhyZXNob2xkcyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTkxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy05Ny1cXHRzdHJ1Y3QgaXdsX21sZF9saW5rICptbGRfbGluaztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmM6OTg6XFx0c3RydWN0IGl3bF9tbGRfa3VuaXRfbGluayBhc3NvY19saW5rID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy05OS1cXHRcXHQuaWQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTEwNS1cXHQvKiBTZXR1cCBhc3NvY2lhdGVkIG5vbi1NTE8gc3RhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYzoxMDY6XFx0dmlmID0gaXdsbWxkX2t1bml0X3NldHVwX25vbl9tbG9fYXNzb2MoXFx1MDAyNmFzc29jX2xpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy0xMDctXFx0bWxkX3ZpZiA9IGl3bF9tbGRfdmlmX2Zyb21fbWFjODAyMTEodmlmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy0xMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jOjEyNzpzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgY2hhbl9sb2FkX3RocmVzaF90ZXN0X2Nhc2VzW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTEyOC1cXHRLVU5JVF9DQVNFX1BBUkFNKHRlc3RfY2hhbl9sb2FkX3RocmVzaG9sZHMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmMtMTMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYzoxMzM6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBjaGFuX2xvYWRfdGhyZXNoX3Rlc3Rfc3VpdGUgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvY2hhbl9sb2FkX3RocmVzaC5jLTEzNC1cXHQubmFtZSA9IFxcXCJpd2xfbWxkX2NoYW5fbG9hZF90aHJlc2hvbGRfdGVzdHNcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYzoxMzU6XFx0LmluaXQgPSBpd2xtbGRfa3VuaXRfdGVzdF9pbml0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYy0xMzYtXFx0LnRlc3RfY2FzZXMgPSBjaGFuX2xvYWRfdGhyZXNoX3Rlc3RfY2FzZXMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9jaGFuX2xvYWRfdGhyZXNoLmMtMTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2NoYW5fbG9hZF90aHJlc2guYzoxMzk6a3VuaXRfdGVzdF9zdWl0ZShjaGFuX2xvYWRfdGhyZXNoX3Rlc3Rfc3VpdGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvaGNtZC5jLTYtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvaGNtZC5jOjc6I2luY2x1ZGUgXFx1MDAzY2t1bml0L3Rlc3QuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmMtOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYz0xMj1NT0RVTEVfSU1QT1JUX05TKFxcXCJFWFBPUlRFRF9GT1JfS1VOSVRfVEVTVElOR1xcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy0xMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmM6MTQ6c3RhdGljIHZvaWQgdGVzdF9oY21kX25hbWVzX3NvcnRlZChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvaGNtZC5jLTE1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy0yOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmM6MzA6c3RhdGljIHZvaWQgdGVzdF9oY21kX25hbWVzX2Zvcl9yeChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvaGNtZC5jLTMxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy01MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmM6NTE6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGhjbWRfbmFtZXNfY2FzZXNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmMtNTItXFx0S1VOSVRfQ0FTRSh0ZXN0X2hjbWRfbmFtZXNfc29ydGVkKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy01Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmM6NTc6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBoY21kX25hbWVzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2hjbWQuYy01OC1cXHQubmFtZSA9IFxcXCJpd2xtbGQtaGNtZC1uYW1lc1xcXCIsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9oY21kLmMtNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvaGNtZC5jOjYyOmt1bml0X3Rlc3Rfc3VpdGUoaGNtZF9uYW1lcyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTYtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzo3OiNpbmNsdWRlIFxcdTAwM2NrdW5pdC9zdGF0aWNfc3R1Yi5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM9MjcwPXN0YXRpYyBzOCBmYWtlX2R1cF9iZWFjb25fcnNzaV9hZGp1c3Qoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMjczLVxcdGNvbnN0IHN0cnVjdCBsaW5rX2dyYWRpbmdfdGVzdF9jYXNlICpwYXJhbXMgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6Mjc0OlxcdFxcdGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKS1cXHUwMDNlcGFyYW1fdmFsdWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0yNzUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jPTI3OT1zdGF0aWMgczggZmFrZV9wc2RfZWlycF9yc3NpX2FkanVzdChzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rX2NvbmYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTI4MS1cXHRjb25zdCBzdHJ1Y3QgbGlua19ncmFkaW5nX3Rlc3RfY2FzZSAqcGFyYW1zID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjI4MjpcXHRcXHRrdW5pdF9nZXRfY3VycmVudF90ZXN0KCktXFx1MDAzZXBhcmFtX3ZhbHVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMjgzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYz0yODc9c3RhdGljIHZvaWQgc2V0dXBfbGluayhzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMjg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjI4OTpcXHRzdHJ1Y3Qga3VuaXQgKnRlc3QgPSBrdW5pdF9nZXRfY3VycmVudF90ZXN0KCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0yOTAtXFx0c3RydWN0IGl3bF9tbGQgKm1sZCA9IHRlc3QtXFx1MDAzZXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTMwNS1cXHRcXHRzdHJ1Y3QgZWxlbWVudCAqZWxlbSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozMDY6XFx0XFx0XFx0aXdsbWxkX2t1bml0X2dlbl9lbGVtZW50KFdMQU5fRUlEX1FCU1NfTE9BRCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTMwNy1cXHRcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNmJzc19sb2FkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozMzQ6c3RhdGljIHZvaWQgdGVzdF9saW5rX2dyYWRpbmcoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzM1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzQ0LVxcdHUxNiB2YWxpZF9saW5rcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjM0NTpcXHRzdHJ1Y3QgaXdsX21sZF9rdW5pdF9saW5rIGFzc29jX2xpbmsgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zNDYtXFx0XFx0LmNoYW5kZWYgPSB0ZXN0X3BhcmFtLVxcdTAwM2VsaW5rLmNoYW5kZWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTM1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjM1ODpcXHR2aWYgPSBpd2xtbGRfa3VuaXRfc2V0dXBfbWxvX2Fzc29jKHZhbGlkX2xpbmtzLCBcXHUwMDI2YXNzb2NfbGluayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozNjA6XFx0a3VuaXRfYWN0aXZhdGVfc3RhdGljX3N0dWIodGVzdCwgaXdsX21sZF9nZXRfZHVwX2JlYWNvbl9yc3NpX2FkanVzdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTM2MS1cXHRcXHRcXHRcXHQgICBmYWtlX2R1cF9iZWFjb25fcnNzaV9hZGp1c3QpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6MzYyOlxcdGt1bml0X2FjdGl2YXRlX3N0YXRpY19zdHViKHRlc3QsIGl3bF9tbGRfZ2V0X3BzZF9laXJwX3Jzc2lfYWRqdXN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzYzLVxcdFxcdFxcdFxcdCAgIGZha2VfcHNkX2VpcnBfcnNzaV9hZGp1c3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozNzg6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGxpbmtfc2VsZWN0aW9uX2Nhc2VzW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zNzktXFx0S1VOSVRfQ0FTRV9QQVJBTSh0ZXN0X2xpbmtfZ3JhZGluZywgbGlua19ncmFkaW5nX2dlbl9wYXJhbXMpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozODM6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBsaW5rX3NlbGVjdGlvbiA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTM4NC1cXHQubmFtZSA9IFxcXCJpd2xtbGQtbGluay1zZWxlY3Rpb24tdGVzdHNcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzg1LVxcdC50ZXN0X2Nhc2VzID0gbGlua19zZWxlY3Rpb25fY2FzZXMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozODY6XFx0LmluaXQgPSBpd2xtbGRfa3VuaXRfdGVzdF9pbml0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtMzg3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzozODk6a3VuaXRfdGVzdF9zdWl0ZShsaW5rX3NlbGVjdGlvbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy0zOTAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jPTQ5OT1LVU5JVF9BUlJBWV9QQVJBTV9ERVNDKGxpbmtfcGFpciwgbGlua19wYWlyX2Nhc2VzLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTUwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjUwMTpzdGF0aWMgdm9pZCB0ZXN0X2l3bF9tbGRfbGlua19wYWlyX2FsbG93c19lbWxzcihzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01MDIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01MTQtXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjUxNTpcXHRzdHJ1Y3QgaXdsX21sZF9rdW5pdF9saW5rIGFzc29jX2xpbmsgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01MTYtXFx0XFx0LmNoYW5kZWYgPSBwYXJhbXMtXFx1MDAzZXByaW1hcnlfbGlua19hY3RpdmUgPyBhLmNoYW5kZWYgOiBiLmNoYW5kZWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jLTUyMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLXNlbGVjdGlvbi5jOjUyMTpcXHR2aWYgPSBpd2xtbGRfa3VuaXRfc2V0dXBfbWxvX2Fzc29jKEJJVChhLmxpbmtfaWQpIHwgQklUKGIubGlua19pZCksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01MjItXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAyNmFzc29jX2xpbmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01MzEtXFx0XFx0c3RydWN0IGl3bF9tbGRfcGh5ICpwaHkgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmM6NTMyOlxcdFxcdFxcdGl3bG1sZF9rdW5pdF9nZXRfcGh5X29mX2xpbmsodmlmLCBhLmxpbmtfaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTMzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzo1NDQ6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGxpbmtfcGFpcl9jcml0ZXJpYV90ZXN0X2Nhc2VzW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01NDUtXFx0S1VOSVRfQ0FTRV9QQVJBTSh0ZXN0X2l3bF9tbGRfbGlua19wYWlyX2FsbG93c19lbWxzciwgbGlua19wYWlyX2dlbl9wYXJhbXMpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzo1NDk6c3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBsaW5rX3BhaXJfY3JpdGVyaWFfdGVzdHMgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01NTAtXFx0Lm5hbWUgPSBcXFwiaXdsbWxkX2xpbmtfcGFpcl9hbGxvd3NfZW1sc3JcXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTUxLVxcdC50ZXN0X2Nhc2VzID0gbGlua19wYWlyX2NyaXRlcmlhX3Rlc3RfY2FzZXMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzo1NTI6XFx0LmluaXQgPSBpd2xtbGRfa3VuaXRfdGVzdF9pbml0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmstc2VsZWN0aW9uLmMtNTUzLX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYy01NTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay1zZWxlY3Rpb24uYzo1NTU6a3VuaXRfdGVzdF9zdWl0ZShsaW5rX3BhaXJfY3JpdGVyaWFfdGVzdHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTYtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjc6I2luY2x1ZGUgXFx1MDAzY2t1bml0L3N0YXRpY19zdHViLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM9NTE9c3RhdGljIHZvaWQgZmFrZV9pZWVlODAyMTFfY29ubmVjdGlvbl9sb3NzKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjU2OnN0YXRpYyB2b2lkIHRlc3RfbWlzc2VkX2JlYWNvbihzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy02My1cXHRzdHJ1Y3QgaXdsX3J4X3BhY2tldCAqcGt0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo2NDpcXHRzdHJ1Y3QgaXdsX21sZF9rdW5pdF9saW5rIGxpbmsxID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy02NS1cXHRcXHQuaWQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTY3LVxcdH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjY4OlxcdHN0cnVjdCBpd2xfbWxkX2t1bml0X2xpbmsgbGluazIgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTY5LVxcdFxcdC5pZCA9IDEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjczOlxcdGt1bml0X2FjdGl2YXRlX3N0YXRpY19zdHViKHRlc3QsIGllZWU4MDIxMV9jb25uZWN0aW9uX2xvc3MsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTc0LVxcdFxcdFxcdFxcdCAgIGZha2VfaWVlZTgwMjExX2Nvbm5lY3Rpb25fbG9zcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjc1OlxcdHBrdCA9IGl3bF9tbGRfa3VuaXRfY3JlYXRlX3BrdCh0ZXN0X3BhcmFtLVxcdTAwM2VpbnB1dC5ub3RpZik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTc2LVxcdG5vdGlmID0gKHZvaWQgKilwa3QtXFx1MDAzZWRhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNzgtXFx0aWYgKHRlc3RfcGFyYW0tXFx1MDAzZWlucHV0LmVtbHNyKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjc5OlxcdFxcdHZpZiA9IGl3bG1sZF9rdW5pdF9hc3NvY19lbWxzcihcXHUwMDI2bGluazEsIFxcdTAwMjZsaW5rMik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTgwLVxcdH0gZWxzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jOjgzOlxcdFxcdHZpZiA9IGl3bG1sZF9rdW5pdF9zZXR1cF9ub25fbWxvX2Fzc29jKFxcdTAwMjZsaW5rMSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTg0LVxcdFxcdG1sZF92aWYgPSBpd2xfbWxkX3ZpZl9mcm9tX21hYzgwMjExKHZpZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM9NDc5PXN0YXRpYyB2b2lkIHNldHVwX2VpcnAoc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqbGlua19jb25mLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTUwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NTA5OnN0YXRpYyB2b2lkIHRlc3RfZHVwX2JlYWNvbl9yc3NpX2FkanVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTUxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTMwLVxcdFxcdFxcdFxcdElFRUU4MDIxMV9IRV82R0haX09QRVJfQ1RSTF9EVVBfQkVBQ09OO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo1MzE6XFx0XFx0aGVfZWxlbSA9IGl3bG1sZF9rdW5pdF9jcmVhdGVfaGVfNmdoel9vcGVyKGhlXzZnaHopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01MzItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTUzNC1cXHRyY3VfYXNzaWduX3BvaW50ZXIoYnNzLVxcdTAwM2ViZWFjb25faWVzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYzo1MzU6XFx0XFx0XFx0ICAgaXdsbWxkX2t1bml0X2NyZWF0ZV9ic3NfaWVzKGhlX2VsZW0pKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTM2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NTQzOnN0YXRpYyB2b2lkIHRlc3RfcHNkX2VpcnBfcnNzaV9hZGp1c3Qoc3RydWN0IGt1bml0ICp0ZXN0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2xpbmsuYy01NDQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NTY1OnN0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBsaW5rX2Nhc2VzW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU2Ni1cXHRLVU5JVF9DQVNFX1BBUkFNKHRlc3RfbWlzc2VkX2JlYWNvbiwgdGVzdF9taXNzZWRfYmVhY29uX2dlbl9wYXJhbXMpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU3My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NTc0OnN0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgbGluayA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTc1LVxcdC5uYW1lID0gXFxcIml3bG1sZC1saW5rXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTc2LVxcdC50ZXN0X2Nhc2VzID0gbGlua19jYXNlcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NTc3OlxcdC5pbml0ID0gaXdsbWxkX2t1bml0X3Rlc3RfaW5pdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmMtNTc4LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbGluay5jLTU3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9saW5rLmM6NTgwOmt1bml0X3Rlc3Rfc3VpdGUobGluayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9tb2R1bGUuYy0yLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbW9kdWxlLmM6MzogKiBUaGlzIGlzIGp1c3QgbW9kdWxlIGJvaWxlcnBsYXRlIGZvciB0aGUgaXdsbWxkIGt1bml0IG1vZHVsZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9tb2R1bGUuYy00LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9tb2R1bGUuYz0xMD1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvbW9kdWxlLmM6MTE6TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJrdW5pdCB0ZXN0cyBmb3IgaXdsbWxkXFxcIik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTYtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYzo3OiNpbmNsdWRlIFxcdTAwM2NrdW5pdC90ZXN0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy04LSNpbmNsdWRlIFxcXCJ1dGlscy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYz0yNzE9c2V0dXBfZHVwX2RhdGFfc3RhdGUoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTI3Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYzoyNzM6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtMjc0LVxcdGNvbnN0IHN0cnVjdCBpc19kdXBfY2FzZSAqcGFyYW0gPSAoY29uc3Qgdm9pZCAqKSh0ZXN0LVxcdTAwM2VwYXJhbV92YWx1ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jPTI5Mj1zdGF0aWMgdm9pZCBzZXR1cF9yeF9wa3QoY29uc3Qgc3RydWN0IGlzX2R1cF9jYXNlICpwYXJhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtMzE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmM6MzE4OnN0YXRpYyB2b2lkIHRlc3RfaXNfZHVwKHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTMxOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTMyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jOjMyODpcXHR2aWYgPSBpd2xtbGRfa3VuaXRfYWRkX3ZpZihmYWxzZSwgTkw4MDIxMV9JRlRZUEVfU1RBVElPTik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYzozMjk6XFx0c3RhID0gaXdsbWxkX2t1bml0X3NldHVwX3N0YSh2aWYsIElFRUU4MDIxMV9TVEFfQVVUSE9SSVpFRCwgLTEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtMzMwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYzozNDI6c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIGlzX2R1cF90ZXN0X2Nhc2VzW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvcnguYy0zNDMtXFx0S1VOSVRfQ0FTRV9QQVJBTSh0ZXN0X2lzX2R1cCwgdGVzdF9pc19kdXBfZ2VuX3BhcmFtcyksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTM0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jOjM0NzpzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIGlzX2R1cCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTM0OC1cXHQubmFtZSA9IFxcXCJpd2xtbGQtcngtaXMtZHVwXFxcIixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTM0OS1cXHQudGVzdF9jYXNlcyA9IGlzX2R1cF90ZXN0X2Nhc2VzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmM6MzUwOlxcdC5pbml0ID0gaXdsbWxkX2t1bml0X3Rlc3RfaW5pdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9yeC5jLTM1MS19O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmMtMzUyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3J4LmM6MzUzOmt1bml0X3Rlc3Rfc3VpdGUoaXNfZHVwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtNi0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjc6I2luY2x1ZGUgXFx1MDAzY2t1bml0L3Rlc3QuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjg6I2luY2x1ZGUgXFx1MDAzY2t1bml0L3Rlc3QtYnVnLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy05LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjIzOmludCBpd2xtbGRfa3VuaXRfdGVzdF9pbml0KHN0cnVjdCBrdW5pdCAqdGVzdClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo3MTpzdGF0aWMgdm9pZCBpd2xtbGRfa3VuaXRfaW5pdF9saW5rKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy03Mi1cXHRcXHRcXHRcXHQgICBzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy03NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo3NTpcXHRzdHJ1Y3Qga3VuaXQgKnRlc3QgPSBrdW5pdF9nZXRfY3VycmVudF90ZXN0KCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy03Ni1cXHRzdHJ1Y3QgaXdsX21sZCAqbWxkID0gdGVzdC1cXHUwMDNlcHJpdjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9OTU9SVdMX01MRF9BTExPQ19GTl9TVEFUSUModmlmLCB2aWYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTk3LS8qIEhlbHBlciBmdW5jdGlvbiB0byBhZGQgYW5kIGluaXRpYWxpemUgYSBWSUYgZm9yIEtVbml0IHRlc3RzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo5ODpzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqaXdsbWxkX2t1bml0X2FkZF92aWYoYm9vbCBtbG8sIGVudW0gbmw4MDIxMV9pZnR5cGUgdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTk5LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjEwMDpcXHRzdHJ1Y3Qga3VuaXQgKnRlc3QgPSBrdW5pdF9nZXRfY3VycmVudF90ZXN0KCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xMDEtXFx0c3RydWN0IGl3bF9tbGQgKm1sZCA9IHRlc3QtXFx1MDAzZXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTEyMy1cXHQvKiBJbml0aWFsaXplIHRoZSBkZWZhdWx0IGxpbmsgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjEyNDpcXHRpd2xtbGRfa3VuaXRfaW5pdF9saW5rKHZpZiwgXFx1MDAyNnZpZi1cXHUwMDNlYnNzX2NvbmYsIFxcdTAwMjZtbGRfdmlmLVxcdTAwM2VkZWZsaW5rLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTEyNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9MTMwPXN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTMxOml3bG1sZF9rdW5pdF9hZGRfbGluayhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBpbnQgbGlua19pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTEzMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoxMzM6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTM0LVxcdHN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmxpbms7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTEzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjE0MDpcXHRpd2xtbGRfa3VuaXRfaW5pdF9saW5rKHZpZiwgbGluaywgbWxkX2xpbmssIGxpbmtfaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTQxLVxcdHZpZi1cXHUwMDNldmFsaWRfbGlua3MgfD0gQklUKGxpbmtfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYz0xNDY9c3RydWN0IGllZWU4MDIxMV9jaGFuY3R4X2NvbmYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTQ3Oml3bG1sZF9rdW5pdF9hZGRfY2hhbmN0eChjb25zdCBzdHJ1Y3QgY2ZnODAyMTFfY2hhbl9kZWYgKmRlZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTE0OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoxNDk6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTUwLVxcdHN0cnVjdCBpd2xfbWxkICptbGQgPSB0ZXN0LVxcdTAwM2Vwcml2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xNzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoxNzU6dm9pZCBpd2xtbGRfa3VuaXRfYXNzaWduX2NoYW5jdHhfdG9fbGluayhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMTc2LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpsaW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0xNzgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MTc5OlxcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTE4MC1cXHRzdHJ1Y3QgaXdsX21sZCAqbWxkID0gdGVzdC1cXHUwMDNlcHJpdjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9MjAwPUlXTF9NTERfQUxMT0NfRk5fU1RBVElDKGxpbmtfc3RhLCBsaW5rX3N0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTIwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjIwMjpzdGF0aWMgdm9pZCBpd2xtbGRfa3VuaXRfYWRkX2xpbmtfc3RhKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yMDMtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9saW5rX3N0YSAqbGlua19zdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTIwNi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoyMDc6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjA4LVxcdHN0cnVjdCBpd2xfbWxkX3N0YSAqbWxkX3N0YSA9IGl3bF9tbGRfc3RhX2Zyb21fbWFjODAyMTEoc3RhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9MjI3PXN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjIyODppd2xtbGRfa3VuaXRfYWxsb2NfbGlua19zdGEoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgaW50IGxpbmtfaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yMjkte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjMwOlxcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTIzMS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjQwOlxcdGl3bG1sZF9rdW5pdF9hZGRfbGlua19zdGEoc3RhLCBsaW5rX3N0YSwgbWxkX2xpbmtfc3RhLCBsaW5rX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI0MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9MjQ4PXN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoyNDk6aXdsbWxkX2t1bml0X2FkZF9zdGEoc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgaW50IGxpbmtfaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yNTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjUxOlxcdHN0cnVjdCBrdW5pdCAqdGVzdCA9IGt1bml0X2dldF9jdXJyZW50X3Rlc3QoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI1Mi1cXHRzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yNjctXFx0aWYgKGxpbmtfaWQgXFx1MDAzZT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MjY4OlxcdFxcdGl3bG1sZF9rdW5pdF9hZGRfbGlua19zdGEoc3RhLCBcXHUwMDI2c3RhLVxcdTAwM2VkZWZsaW5rLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjY5LVxcdFxcdFxcdFxcdFxcdCAgXFx1MDAyNm1sZF9zdGEtXFx1MDAzZWRlZmxpbmssIGxpbmtfaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0yNzEtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjI3MjpcXHRcXHRpd2xtbGRfa3VuaXRfYWRkX2xpbmtfc3RhKHN0YSwgXFx1MDAyNnN0YS1cXHUwMDNlZGVmbGluayxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI3My1cXHRcXHRcXHRcXHRcXHQgIFxcdTAwMjZtbGRfc3RhLVxcdTAwM2VkZWZsaW5rLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjc4LS8qIE1vdmUgcyBTVEEgdG8gYSBzdGF0ZSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6Mjc5OnN0YXRpYyB2b2lkIGl3bG1sZF9rdW5pdF9tb3ZlX3N0YV9zdGF0ZShzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjgwLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTI4Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzoyODM6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjg0LVxcdHN0cnVjdCBpd2xfbWxkX3N0YSAqbWxkX3N0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMjk5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzAwOnN0cnVjdCBpZWVlODAyMTFfc3RhICppd2xtbGRfa3VuaXRfc2V0dXBfc3RhKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMDEtXFx0XFx0XFx0XFx0XFx0ICAgICBlbnVtIGllZWU4MDIxMV9zdGFfc3RhdGUgc3RhdGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTMwMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozMDQ6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzA1LVxcdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTMxMC1cXHQvKiBGaXJzdCAtIGFsbG9jYXRlIGFuZCBpbml0IHRoZSBTVEEgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjMxMTpcXHRzdGEgPSBpd2xtbGRfa3VuaXRfYWRkX3N0YSh2aWYsIGxpbmtfaWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMTUtXFx0ICAgICBfc3RhdGUgXFx1MDAzYz0gc3RhdGU7IF9zdGF0ZSsrKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzE2OlxcdFxcdGl3bG1sZF9rdW5pdF9tb3ZlX3N0YV9zdGF0ZSh2aWYsIHN0YSwgc3RhdGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzE3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozMjE6c3RhdGljIHZvaWQgaXdsbWxkX2t1bml0X3NldF92aWZfYXNzb2NpYXRlZChzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM9MzI5PXN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozMzA6aXdsbWxkX2t1bml0X3NldHVwX2Fzc29jKGJvb2wgbWxvLCBzdHJ1Y3QgaXdsX21sZF9rdW5pdF9saW5rICphc3NvY19saW5rKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzMxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjMzMjpcXHRzdHJ1Y3Qga3VuaXQgKnRlc3QgPSBrdW5pdF9nZXRfY3VycmVudF90ZXN0KCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zMzMtXFx0c3RydWN0IGl3bF9tbGQgKm1sZCA9IHRlc3QtXFx1MDAzZXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTMzOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM0MDpcXHR2aWYgPSBpd2xtbGRfa3VuaXRfYWRkX3ZpZihtbG8sIE5MODAyMTFfSUZUWVBFX1NUQVRJT04pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzQyLVxcdGlmIChtbG8pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozNDM6XFx0XFx0bGluayA9IGl3bG1sZF9rdW5pdF9hZGRfbGluayh2aWYsIGFzc29jX2xpbmstXFx1MDAzZWlkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM0NC1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM0Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM0NzpcXHRjaGFuX2N0eCA9IGl3bG1sZF9rdW5pdF9hZGRfY2hhbmN0eChhc3NvY19saW5rLVxcdTAwM2VjaGFuZGVmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM0OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM0OS1cXHR3aXBoeV9sb2NrKG1sZC1cXHUwMDNld2lwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzUwOlxcdGl3bG1sZF9rdW5pdF9hc3NpZ25fY2hhbmN0eF90b19saW5rKHZpZiwgbGluaywgY2hhbl9jdHgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzUxLVxcdHdpcGh5X3VubG9jayhtbGQtXFx1MDAzZXdpcGh5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzUzLVxcdC8qIFRoZSBBUCBzdGEgd2lsbCBub3cgYmUgcG9pbnRlciB0byBieSBtbGRfdmlmLVxcdTAwM2VhcF9zdGEgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM1NDpcXHRpd2xtbGRfa3VuaXRfc2V0dXBfc3RhKHZpZiwgSUVFRTgwMjExX1NUQV9BVVRIT1JJWkVELCBhc3NvY19saW5rLVxcdTAwM2VpZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozNTY6XFx0aXdsbWxkX2t1bml0X3NldF92aWZfYXNzb2NpYXRlZCh2aWYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzU3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYz0zNjE9c3RydWN0IGllZWU4MDIxMV92aWYgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzYyOml3bG1sZF9rdW5pdF9zZXR1cF9tbG9fYXNzb2ModTE2IHZhbGlkX2xpbmtzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzYzOlxcdFxcdFxcdCAgICAgc3RydWN0IGl3bF9tbGRfa3VuaXRfbGluayAqYXNzb2NfbGluaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozNjU6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzY2LVxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM3MzpcXHR2aWYgPSBpd2xtbGRfa3VuaXRfc2V0dXBfYXNzb2ModHJ1ZSwgYXNzb2NfbGluayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM3OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjM3OTpcXHRcXHRpd2xtbGRfa3VuaXRfYWRkX2xpbmsodmlmLCBvdGhlcl9saW5rX2lkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM4MC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jPTM4NT1zdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozODY6aXdsbWxkX2t1bml0X3NldHVwX25vbl9tbG9fYXNzb2Moc3RydWN0IGl3bF9tbGRfa3VuaXRfbGluayAqYXNzb2NfbGluaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM4Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozODg6XFx0cmV0dXJuIGl3bG1sZF9rdW5pdF9zZXR1cF9hc3NvYyhmYWxzZSwgYXNzb2NfbGluayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy0zODktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYz0zOTE9c3RydWN0IGl3bF9yeF9wYWNrZXQgKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6MzkyOl9pd2xfbWxkX2t1bml0X2NyZWF0ZV9wa3QoY29uc3Qgdm9pZCAqbm90aWYsIHNpemVfdCBub3RpZl9zeilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTM5My17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzozOTQ6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtMzk1LVxcdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTQwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jOjQwNTpzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqaXdsbWxkX2t1bml0X2Fzc29jX2VtbHNyKHN0cnVjdCBpd2xfbWxkX2t1bml0X2xpbmsgKmxpbmsxLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmM6NDA2OlxcdFxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXdsX21sZF9rdW5pdF9saW5rICpsaW5rMilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy91dGlscy5jLTQwNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo0MDg6XFx0c3RydWN0IGt1bml0ICp0ZXN0ID0ga3VuaXRfZ2V0X2N1cnJlbnRfdGVzdCgpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtNDA5LVxcdHN0cnVjdCBpd2xfbWxkICptbGQgPSB0ZXN0LVxcdTAwM2Vwcml2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYy00MTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvdXRpbHMuYzo0MTk6XFx0dmlmID0gaXdsbWxkX2t1bml0X3NldHVwX21sb19hc3NvYyh2YWxpZF9saW5rcywgbGluazEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL3V0aWxzLmMtNDIwLVxcdG1sZF92aWYgPSBpd2xfbWxkX3ZpZl9mcm9tX21hYzgwMjExKHZpZik7XFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjE4OjA5LjAzNTA5MDg3M1oiLCJTZXEiOjM1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NDE4OTczMjAwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgQW5hbHlzaXM6IGl3bHdpZmkgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBgaXdsd2lmaWAgaGFzIEtVTklUIHRlc3RzLCB3aGljaCBpcyBpbnRlcmVzdGluZywgYnV0IHN5emthbGxlciBkb2Vzbid0IGRpcmVjdGx5IGZ1enogdGhvc2UsIHNvIHRoYXQncyBhIGRlYWQgZW5kLiBUaGlzIHBhdGNoIGlzIHRvdWNoaW5nIGEgbG90IG9mIGtleSBhcmVhcyBvZiB0aGUgYGl3bHdpZmlgIGRyaXZlcjogYGFnZy5jYCwgYG1hYzgwMjExLmNgLCBgbWNjLmNgLCBgdGhlcm1hbC5jYCwgYW5kIGBtdm0vZDMuY2AgdG8gbmFtZSBhIGZldy4gVGhlIGZhY3QgdGhhdCBgc3l6LWNsdXN0ZXJgIGZvdW5kIGJ1Z3MgaW4gYGl3bHdpZmlgIGlzIHdoYXQgbWFrZXMgdGhpcyByZWFsbHkgaW50cmlndWluZy5cblxuSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHN5emthbGxlciBpcyByZWFjaGluZyB0aGlzIGNvZGUuIEl0J3Mgbm90IGEgVVNCIGRyaXZlciwgc28gYHN5el91c2JfY29ubmVjdGAgaXMgb3V0LiBJdCdzIGEgUENJIGRyaXZlciwgc28gbWF5YmUgYHN5el9wY2lfZGV2aWNlYD8gSSBkb24ndCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIHN5emthbGxlciBzb3VyY2UgcmlnaHQgbm93LCBidXQgSSBjYW4gY2hlY2sgdGhlIGtlcm5lbCBmb3IgdGhlIGBzeXpfYCBwcmVmaXguIE5vIGx1Y2sgdGhlcmUuIFdhaXQsIHRoZXJlIGlzIGEgYHN5el9nZW5ldGxpbmtfZ2V0X2ZhbWlseV9pZGAgYW5kIGEgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGZ1bmN0aW9uLiBUaGVyZSBhcmUgZXZlbiBhIGBzeXpfODAyMTFfam9pbl9pYnNzYCBmdW5jdGlvbi5cblxuSG1tLCBiYWNrIHRvIGBpd2x3aWZpYC4uLiBJZiBpdCdzIGEgbW9kdWxlIGFuZCBub3QgbG9hZGVkLCBzeXprYWxsZXIgd29uJ3QgcmVhY2ggaXQuIFRoZSBrZXJuZWwgbWlnaHQgZXhlY3V0ZSB0aGUgS1VOSVQgdGVzdHMgZHVyaW5nIGJvb3QsIGJ1dCBTeXprYWxsZXIgcHJvYmFibHkgZG9lc24ndCBmdXp6IHRoZW0uIEhvd2V2ZXIsIGFoISBEZWJ1Z2ZzISBMb29raW5nIGF0IGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmNgLCB0aGVyZSdzIGBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZWAuIFN5emthbGxlciBjb3VsZCBwb3RlbnRpYWxseSBpbmplY3QgZmlybXdhcmUgcGFja2V0cyBpZiBpdCdzIHJ1bm5pbmcgaW4gYW4gZW52aXJvbm1lbnQgd2l0aCBhIHZpcnR1YWwgSW50ZWwgV2ktRmkgY2FyZC4gQnV0IHN5emthbGxlciBydW5zIG9uIFFFTVUuIFRoYXQgaXMgbm90IHVzZWZ1bC4gU28sIGlmIHN5emthbGxlciBmb3VuZCBidWdzLCB0aGVuIGBpd2x3aWZpYCBNVVNUIGJlIHJlYWNoYWJsZS5cblxuV2FpdCwgdGhlIHByb21wdCBzcGVjaWZpZWQgdGhhdCBwYXRjaGVzIGFyZSBub3Qgd29ydGggZnV6emluZyBpZiB0aGV5IGFyZW4ndCByZWFjaGFibGUuXG5cbkJ1dCAqd2FpdCosIHRoZSBwcm9tcHQgc2F5cyB0aGF0IHRoZSBkcml2ZXJzIGFyZSBub3Qgd29ydGggZnV6emluZyBpZiB0aGV5IGFyZSBpbiBRRU1VLCBidXQgc3l6a2FsbGVyIGZvdW5kIGEgYnVnIVxuXG5Db3VsZCBzeXprYWxsZXIgYmUgdXNpbmcgYG1hYzgwMjExX2h3c2ltYD8gTm8sIGl0J3MgYSBzb2Z0d2FyZSBzaW11bGF0b3IuIFNvIGhvdyBlbHNlIGNvdWxkIHN5emthbGxlciBiZSByZWFjaGluZyBpdD8gSWYgc3l6a2FsbGVyIGZvdW5kIGEgYnVnLCBpdCAqbXVzdCogYmUgcmVhY2hhYmxlIGluIGl0cyBRRU1VIGVudmlyb25tZW50LiBUaGlzIGltcGxpZXMgdGhhdCBzeXprYWxsZXIgaGFzIGEgbWVjaGFuaXNtIHRvIGludGVyYWN0IHdpdGggdGhlIFBDSSBkcml2ZXIsIGFuZCBpZiBzbywgdGhpcyBjb2RlIGlzIFdvcnRoRnV6emluZz10cnVlLlxuXG5Ob3csIGxldCdzIGxvb2sgYXQgdGhlIHBhdGNoIGl0c2VsZi4gSXQncyBhbGwgYWJvdXQgYm91bmRzIGNoZWNrcywgbGVuZ3RoIGNoZWNrcywgYW5kIGZpeGluZyBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzOiBvdXQtb2YtYm91bmRzIHJlYWRzL3dyaXRlcywgYnVmZmVyIG92ZXJmbG93cywgYW5kIHVzZS1hZnRlci1mcmVlcy4gVGhlc2UgYXJlIGFsbCB0aGUga2luZHMgb2YgYnVncyBmdXp6aW5nIGlzIGRlc2lnbmVkIHRvIGNhdGNoISBBYnNvbHV0ZWx5IHdvcnRoIGZ1enppbmcuXG5cbk5vdyBmb3IgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25zLiBJJ2xsIG5lZWQ6IGBDT05GSUdfSVdMV0lGSWAsIGBDT05GSUdfSVdMTVZNYCwgYENPTkZJR19JV0xNTERgLCBgQ09ORklHX0lXTFdJRklfREVCVUdGU2AsIGBDT05GSUdfTUFDODAyMTFgLCBhbmQgYENPTkZJR19DRkc4MDIxMWAuIEknbGwgZG91YmxlLWNoZWNrIHRoZSBleGFjdCBuYW1lcyBpbiB0aGUgS2NvbmZpZyBmaWxlOiBgSVdMV0lGSWAsIGBJV0xNVk1gLCBgSVdMTUxEYCwgYElXTFdJRklfREVCVUdGU2AsIGFuZCBgVEhFUk1BTGAgKGZvciB0aGUgdGhlcm1hbCB6b25lIHVucmVnaXN0ZXIpLiBBbmQgYWZ0ZXIgY2hlY2tpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuY2AgZm9yIGlmZGVmcywgSSdtIGNvbmZpZGVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTc0Mjc4LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoxOTozMy4yMjQ4MjU2NDlaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzA2MTMyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfVEhFUk1BTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTQtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jOjU6I2lmZGVmIENPTkZJR19USEVSTUFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTYtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NvcnQuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYz00Nz12b2lkIGl3bF9tbGRfaGFuZGxlX3RlbXBfbm90aWYoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy03NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6NzU6I2lmZGVmIENPTkZJR19USEVSTUFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTc2LVxcdGlmIChtbGQtXFx1MDAzZXR6b25lKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy03Ny1cXHRcXHR0aGVybWFsX3pvbmVfZGV2aWNlX3VwZGF0ZShtbGQtXFx1MDAzZXR6b25lLCBUSEVSTUFMX1RSSVBfVklPTEFURUQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYzo3ODojZW5kaWYgLyogQ09ORklHX1RIRVJNQUwgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMtNzktfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy04MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6ODE6I2lmZGVmIENPTkZJR19USEVSTUFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTgyLXN0YXRpYyBpbnQgaXdsX21sZF9nZXRfdGVtcChzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzMzIgKnRlbXApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM9MTQ0PWludCBpd2xfbWxkX2NvbmZpZ190ZW1wX3JlcG9ydF90aHMoc3RydWN0IGl3bF9tbGQgKm1sZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy0xNDctXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6MTQ4OiNpZmRlZiBDT05GSUdfVEhFUk1BTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy0xNDktXFx0c3RydWN0IGl3bF90cmlwX3dhbGtfZGF0YSB0d2QgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMtMTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYzoxODQ6I2lmZGVmIENPTkZJR19USEVSTUFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTE4NS1zdGF0aWMgaW50IGl3bF9tbGRfdHpvbmVfZ2V0X3RlbXAoc3RydWN0IHRoZXJtYWxfem9uZV9kZXZpY2UgKmRldmljZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYz0zOTM9c3RhdGljIHZvaWQgaXdsX21sZF9jb29saW5nX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBpd2xfbWxkICptbGQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMtNDAzLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6NDA0OiNlbmRpZiAvKiBDT05GSUdfVEhFUk1BTCAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy00MDUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM9NDQxPXZvaWQgaXdsX21sZF90aGVybWFsX2luaXRpYWxpemUoc3RydWN0IGl3bF9tbGQgKm1sZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy00NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jOjQ1MDojaWZkZWYgQ09ORklHX1RIRVJNQUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmMtNDUxLVxcdGl3bF9tbGRfY29vbGluZ19kZXZpY2VfcmVnaXN0ZXIobWxkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYz00NTY9dm9pZCBpd2xfbWxkX3RoZXJtYWxfZXhpdChzdHJ1Y3QgaXdsX21sZCAqbWxkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGhlcm1hbC5jLTQ2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmM6NDYyOiNpZmRlZiBDT05GSUdfVEhFUk1BTFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3RoZXJtYWwuYy00NjMtXFx0aXdsX21sZF9jb29saW5nX2RldmljZV91bnJlZ2lzdGVyKG1sZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjE5OjMzLjcyNzg5MzUyMVoiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvci1jb21wcmVzc29yIiwiTW9kZWwiOiJnZW1pbmktMy1mbGFzaC1wcmV2aWV3IiwiRHVyYXRpb24iOjIwOTU3MjIzNTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiVGhlIHdvcmtzcGFjZSBjb250YWlucyBhIHBhdGNoIHNlcmllcyBmb3IgdGhlIGBpd2x3aWZpYCBJbnRlbCB3aXJlbGVzcyBkcml2ZXIsIHNwZWNpZmljYWxseSB0YXJnZXRpbmcgdGhlIE1WTSAoTWFjODAyMTEgVmlydHVhbCBNb2RlbCkgYW5kIE1MRCAoTXVsdGktTGluayBEZXZpY2UpIGNvbXBvbmVudHMuIFRoZSBjaGFuZ2VzIGludHJvZHVjZSBzZXZlcmFsIGJvdW5kcyBjaGVja3MsIHBheWxvYWQgbGVuZ3RoIHZhbGlkYXRpb25zIGZvciBmaXJtd2FyZSBub3RpZmljYXRpb25zLCBhbmQgcG9pbnRlciBoeWdpZW5lIChudWxsaW5nIGFmdGVyIGZyZWUpLlxuXG4jIyMgMS4gQXBwcm9hY2hlcyBhbmQgUmVzdWx0c1xuKiAgICoqQ29kZSBBbmFseXNpczoqKiBSZXZpZXdlZCB0aGUgZGlmZiB3aGljaCBzaG93cyBjcml0aWNhbCB2YWxpZGF0aW9uIGxvZ2ljIGFkZGVkIHRvIGZ1bmN0aW9ucyBoYW5kbGluZyBmaXJtd2FyZS10by1ob3N0IGNvbW11bmljYXRpb25zLlxuICAgICogICBgaXdsX21sZF9yZW9yZGVyYDogQWRkcyBib3VuZHMgY2hlY2sgZm9yIGBiYWlkYCBhZ2FpbnN0IGBtbGQtXHUwMDNlZndfaWRfdG9fYmFgLlxuICAgICogICBgaXdsX212bV91cGRhdGVfbWNjYDogQWRkcyBsZW5ndGggY2hlY2tzIGZvciBNQ0MgKE11bHRpLUNvdW50cnkgQ29kZSkgdXBkYXRlIHJlc3BvbnNlcyAodjMsIHY0LCB2OCkuXG4gICAgKiAgIGBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZmA6IFJlZmFjdG9yZWQgdG8gdXNlIGxvY2FsIHZhcmlhYmxlcyBmb3IgYmVhY29uIEdQMiB0aW1lc3RhbXBzIGluc3RlYWQgb2YgYSBnbG9iYWwgbWVtYmVyIGluIGBzdHJ1Y3QgaXdsX212bWAuXG4gICAgKiAgIGBpd2xfbXZtX3JlcG9ydF93YWtldXBfcmVhc29uc2AsIGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCwgYGl3bF9tdm1fd2FpdF9kM19ub3RpZmA6IEFkZGVkIHBheWxvYWQgc2l6ZSB2YWxpZGF0aW9ucy5cbiAgICAqICAgYGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZmAsIGBpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWZgLCBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgLCBgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWZgOiBBZGRlZCBib3VuZHMgY2hlY2tzIGZvciBzdGF0aW9uIElEcyBhbmQgVUlEcy5cbiogICAqKlJlYWNoYWJpbGl0eSBJbnZlc3RpZ2F0aW9uOioqXG4gICAgKiAgIENvbmZpcm1lZCB0aGF0IGZpcm13YXJlIG5vdGlmaWNhdGlvbnMgYXJlIGhhbmRsZWQgdmlhIGBpd2xfbXZtX3J4X21xYCBhbmQgZGlzcGF0Y2hlZCB0aHJvdWdoIGBpd2xfbXZtX3J4X2hhbmRsZXJzYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmNgLlxuICAgICogICBJZGVudGlmaWVkIGEgZGVidWdmcy1iYXNlZCBpbmplY3Rpb24gbWVjaGFuaXNtIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmNgOiBgaXdsX2RiZ2ZzX2luamVjdF9wYWNrZXRfd3JpdGVgIChsaW5lIDEyNjEpLiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB1c2Vyc3BhY2UgdG8gd3JpdGUgaGV4LWVuY29kZWQgcmF3IHBhY2tldHMgdG8gYSBkZWJ1Z2ZzIGZpbGUsIHdoaWNoIGFyZSB0aGVuIHBhc3NlZCB0byBgaXdsX212bV9yeF9tcWAsIGVmZmVjdGl2ZWx5IHNpbXVsYXRpbmcgZmlybXdhcmUgbm90aWZpY2F0aW9ucy5cbiogICAqKktVbml0IFRlc3RzOioqIEZvdW5kIGV4aXN0aW5nIEtVbml0IHRlc3RzIGZvciBNTEQgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2AsIHN1Z2dlc3RpbmcgYSBmcmFtZXdvcmsgZm9yIHRlc3RpbmcgdGhlc2UgbG9naWMgcGF0aHMgZXhpc3RzLlxuKiAgICoqRGVhZCBFbmRzOioqIFNlYXJjaGVkIGZvciBcInN5el9wY2lcIiBvciBnZW5lcmljIGhhcmR3YXJlIHNpbXVsYXRvcnMgaW4gYHRvb2xzL2AgYW5kIGBsaWIvYCB3aXRoIG5vIHJlbGV2YW50IHJlc3VsdHM7IHJlYWNoYWJpbGl0eSBpcyBiZXN0IGFjaGlldmVkIHZpYSB0aGUgaWRlbnRpZmllZCBkZWJ1Z2ZzIGluamVjdGlvbiBvciBtYWM4MDIxMV9od3NpbS5cblxuIyMjIDIuIEN1cnJlbnQgSHlwb3RoZXNlcyBhbmQgQWN0aXZlIExpbmVzIG9mIEludmVzdGlnYXRpb25cbiogICAqKkh5cG90aGVzaXM6KiogVGhlIHBhdGNoIGlzIGhpZ2hseSBmdW5jdGlvbmFsIGFzIGl0IG1pdGlnYXRlcyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3NlcyBhbmQgbWVtb3J5IGNvcnJ1cHRpb24gdHJpZ2dlcmVkIGJ5IG1hbGZvcm1lZCBvciBtYWxpY2lvdXMgZmlybXdhcmUgcmVzcG9uc2VzLlxuKiAgICoqQWN0aXZlIExpbmU6KiogVmVyaWZ5aW5nIHRoZSBzcGVjaWZpYyBgQ09ORklHX2AgZGVwZW5kZW5jaWVzIGZvciB0aGUgbW9kaWZpZWQgZmlsZXMuIFRoZSBgbWxkL2AgZGlyZWN0b3J5IGRlcGVuZHMgb24gYElXTE1MRGAsIHdoaWxlIGBtdm0vYCBkZXBlbmRzIG9uIGBJV0xNVk1gLiBUaGUgYHRoZXJtYWwuY2AgY2hhbmdlcyBhcmUgd3JhcHBlZCBpbiBgQ09ORklHX1RIRVJNQUxgLlxuXG4jIyMgMy4gQ3JpdGljYWwgRmlsZSBQYXRocyBhbmQgQ29kZSBTbmlwcGV0c1xuKiAgICoqSW5qZWN0aW9uIFBvaW50OioqIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kZWJ1Z2ZzLmNgXG4gICAgYGBgY1xuICAgIDEyNjE6IHN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlKHN0cnVjdCBpd2xfbXZtICptdm0sXG4gICAgMTI2MjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqYnVmLCBzaXplX3QgY291bnQsXG4gICAgMTI2MzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9mZl90ICpwcG9zKVxuICAgIC4uLlxuICAgIDEyOTk6ICAgICAgICAgaXdsX212bV9yeF9tcShvcG1vZGUsIE5VTEwsIFx1MDAyNnJ4Yik7XG4gICAgYGBgXG4qICAgKipOb3RpZmljYXRpb24gSGFuZGxlciBNYXA6KiogYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jYFxuICAgIGBgYGNcbiAgICAzMzA6IFJYX0hBTkRMRVJfTk9fU0laRShCRUFDT05fTk9USUZJQ0FUSU9OLCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZixcbiAgICAzMzE6ICAgICAgICAgICAgICAgICAgICBSWF9IQU5ETEVSX0FTWU5DX0xPQ0tFRCksXG4gICAgYGBgXG4qICAgKipUaGVybWFsIExvZ2ljOioqIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90aGVybWFsLmNgXG4gICAgKiAgIFVzZXMgYCNpZmRlZiBDT05GSUdfVEhFUk1BTGAuXG5cbiMjIyA0LiBSZWFzb25pbmcgTm90ZXNcbiogICAqKlJlcGV0aXRpdmUgVG9vbCBDYWxsczoqKiBJbml0aWFsIHNlYXJjaGVzIGZvciBcIml3bHdpZmlcIiB3ZXJlIHRvbyBicm9hZDsgc3Vic2VxdWVudCBzZWFyY2hlcyB3ZXJlIG5hcnJvd2VkIHRvIHNwZWNpZmljIGZ1bmN0aW9uIG5hbWVzIGFuZCBpbmplY3Rpb24ga2V5d29yZHMuXG4qICAgKipMb2dpYyBMb29wIEF2b2lkYW5jZToqKiBEbyBub3QgY29uZnVzZSBgaXdsd2lmaWAgKHRoZSBiYXNlIGRyaXZlcikgd2l0aCBgaXdsZWdhY3lgIChvbGRlciBoYXJkd2FyZSkuIFRoZSBwYXRjaCBzdHJpY3RseSBhZmZlY3RzIHRoZSBtb2Rlcm4gYGl3bHdpZmlgIHN0YWNrIChNVk0vTUxEKS5cbiogICAqKldvcnRoRnV6emluZzoqKiBUcnVlLiBUaGUgcGF0Y2ggbW9kaWZpZXMgY29yZSBsb2dpYyBoYW5kbGluZyBleHRlcm5hbCAoZmlybXdhcmUpIGlucHV0LiBGb2N1cyBzaG91bGQgYmUgb24gdGhlIFJYIG5vdGlmaWNhdGlvbiBoYW5kbGVycy5cblxuKipGb2N1c1N5bWJvbHM6Kipcbi0gYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYFxuLSBgaXdsX212bV91cGRhdGVfbWNjYFxuLSBgaXdsX212bV90bGNfdXBkYXRlX25vdGlmYFxuLSBgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmYFxuLSBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgXG4tIGBpd2xfbWxkX3Jlb3JkZXJgXG5cbioqRW5hYmxlQ29uZmlnczoqKlxuLSBgSVdMTVZNYFxuLSBgSVdMTUxEYFxuLSBgSVdMV0lGSV9ERUJVR0ZTYFxuLSBgVEhFUk1BTGAiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjoxMDY1OTYsIk91dHB1dFRva2VucyI6MTI1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MTk6NTQuNjg1MTIwNTE3WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5MTMxNTExNDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVmVyaWZ5aW5nIENvbmZpZ3VyYXRpb24gYW5kIFN5bWJvbCBEZWZpbml0aW9ucyoqXG5cbk9rYXksIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBXZSBuZWVkIHRvIG1ldGljdWxvdXNseSB2ZXJpZnkgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYW5kIHN5bWJvbHMgd2UncmUgZGVhbGluZyB3aXRoLiBCYXNlZCBvbiB0aGUgcHJldmlvdXMgZGF0YSwgSSBoYXZlIGEgZmV3IHNwZWNpZmljIFwiRm9jdXNTeW1ib2xzXCIgYW5kIFwiRW5hYmxlQ29uZmlnc1wiIGluIG1pbmQuIFRoZSBcIkZvY3VzU3ltYm9sc1wiIGFyZTogYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYCwgYGl3bF9tdm1fdXBkYXRlX21jY2AsIGBpd2xfbXZtX3RsY191cGRhdGVfbm90aWZgLCBgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmYCwgYGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmYCwgYW5kIGBpd2xfbWxkX3Jlb3JkZXJgLiBBbmQgdGhlIGNvbmZpZ3Mgd2Ugd2FudCB0byBiZSBlbmFibGVkIGFyZSBgSVdMTVZNYCwgYElXTE1MRGAsIGBJV0xXSUZJX0RFQlVHRlNgLCBhbmQgYFRIRVJNQUxgLlxuXG5NeSBpbW1lZGlhdGUgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGludG8gdGhlIGtlcm5lbCBjb25maWd1cmF0aW9uIGZpbGVzLiBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGRlZmluaXRpb25zIGZvciBgSVdMTUxEYCBhbmQgYElXTE1WTWAgc3BlY2lmaWNhbGx5LiBUbyBkbyB0aGF0LCBJJ2xsIGxldmVyYWdlIHRoZSBgZ3JlcHBlcmAgdG9vbCDigJMgaXQncyB0aGUgZmFzdGVzdCB3YXkgdG8gcGlucG9pbnQgd2hlcmUgdGhvc2UgcGFydGljdWxhciBzeW1ib2xzIGFyZSBkZWZpbmVkIHdpdGhpbiB0aGUgS2NvbmZpZyBzdHJ1Y3R1cmUuIEknbGwgbmVlZCB0byBjb25maXJtIHRoZWlyIGRlcGVuZGVuY2llcyBhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aGVpciBjb25kaXRpb25hbCBpbmNsdXNpb24uIFRoaXMgd2lsbCBnaXZlIG1lIGEgc29saWQgZm91bmRhdGlvbiBmb3IgYW55IGZ1cnRoZXIgYW5hbHlzaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMzg3LCJPdXRwdXRUb2tlbnMiOjU4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MTk6NTkuNTk4Mjc0NjZaIiwiU2VxIjozOSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMTE1NTE3MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElXTE1MRFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NzQ9Y29uZmlnIElXTE1WTVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo4NDpjb25maWcgSVdMTUxEXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTg1LVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBXaXJlbGVzcyBXaUZpIE1MRCBGaXJtd2FyZSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMDowMS45MDk4MzM2MzhaIiwiU2VxIjo0MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMDg3Nzc1ODYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElXTE1WTVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9NjY9Y29uZmlnIElXTERWTVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTczLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzo3NDpjb25maWcgSVdMTVZNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTc1LVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBXaXJlbGVzcyBXaUZpIE1WTSBGaXJtd2FyZSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMDowNC4xMTg2Mzc2OTNaIiwiU2VxIjo0MSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNjExODM5MDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElXTFdJRklfREVCVUdGU1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc9MTA3PWNvbmZpZyBJV0xXSUZJX0RFQlVHXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTMwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZzoxMzE6Y29uZmlnIElXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzItXFx0Ym9vbCBcXFwiaXdsd2lmaSBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIwOjA2LjM3OTg0MTQyNFoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTMzMzcwMDUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSVdMV0lGSSBQYXRjaCBmb3IgRnV6emluZyBPcHBvcnR1bml0aWVzKipcblxuT2theSwgdGhlIGluaXRpYWwgY29uZmlndXJhdGlvbiBsb29rcyBzb3VuZCwgYnV0IGJlZm9yZSBJIGRpdmUgaW4sIGxldCdzIGVzdGFibGlzaCBhIGJhc2VsaW5lLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGBJV0xXSUZJX0RFQlVHRlNgIGlzIHN0cmljdGx5IG5lY2Vzc2FyeSBoZXJlLiBUaGlua2luZyBiYWNrLCB0aGUgaGlzdG9yeSBwb2ludHMgdG8gYSBkZWJ1Z2ZzLWJhc2VkIGluamVjdGlvbiBtZWNoYW5pc20gaW4gYGl3bHdpZmkvbXZtL2RlYnVnZnMuY2AuIFNwZWNpZmljYWxseSwgdGhlIGBpd2xfZGJnZnNfaW5qZWN0X3BhY2tldF93cml0ZWAgZnVuY3Rpb24gbG9va3MgcHJvbWlzaW5nLiBVc2Vyc3BhY2Ugd3JpdGVzIHJhdywgaGV4LWVuY29kZWQgcGFja2V0cyB0byBhIGRlYnVnZnMgZmlsZSwgd2hpY2ggdGhlbiB0cmlnZ2VycyBgaXdsX212bV9yeF9tcWAsIGVzc2VudGlhbGx5IHNpbXVsYXRpbmcgZmlybXdhcmUgbm90aWZpY2F0aW9ucy4gVGhhdCdzIGEgY2xhc3NpYyBmdXp6aW5nIGVudHJ5IHBvaW50IC0gZWxlZ2FudCBhbmQgZGlyZWN0LlxuXG5Ob3csIGxldCdzIGJyb2FkZW4gdGhlIHNjb3BlLiBJIG5lZWQgdG8gaWRlbnRpZnkgKmFsbCogdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLiBUaGUgcGF0Y2ggbW9kaWZpZXMgYSBzaWduaWZpY2FudCBudW1iZXIgb2YgZmlsZXMgYWNyb3NzIHRoZSBgaXdsd2lmaWAgZHJpdmVyOiBgYWdnLmNgLCBgbWFjODAyMTEuY2AsIGBtY2MuY2AsIGB0aGVybWFsLmNgLCBgZDMuY2AsIGBtYWMtY3R4dC5jYCwgYG1hYzgwMjExLmNgLCBgbXZtLmhgLCBgbnZtLmNgLCBgcnMtZncuY2AsIGByeC5jYCwgYHNjYW4uY2AsIGFuZCBgdGltZS1ldmVudC5jYCwgYWxsIHdpdGhpbiB0aGUgYG12bWAgZGlyZWN0b3J5LCBhbmQgYWxzbyBgcnguY2AgaW4gdGhlIGBwY2llL2dlbjFfMmAgZGlyZWN0b3J5LlxuXG5JJ2xsIHNwZWNpZmljYWxseSBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2dlbjFfMi9yeC5jYCB0byBzZWUgaWYgdGhpcyByZXF1aXJlcyBhbnkgdW5pcXVlIGNvbmZpZ3MuIEl0J3MgaW1wb3J0YW50IHRvIGxvb2sgYXQgYWxsIHJlbGV2YW50IGNvbmZpZyBvcHRpb25zIHRvIGVuc3VyZSB0aGUgZnV6emluZyBzZXR1cCBjYW4gdGVzdCBhbGwgcGFydHMgb2YgdGhlIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMjY2LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciIsImdyZXBwZXIiLCJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjA6MTIuOTEzMjE0MzE2WiIsIlNlcSI6NDMsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDQ0Nzk1NTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXdsX3BjaWVfcnhfZnJlZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2dlbjFfMi9yeC5jPTExODk9aW50IGl3bF9wY2llX2dlbjJfcnhfaW5pdChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguYy0xMjAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9nZW4xXzIvcnguYzoxMjAxOnZvaWQgaXdsX3BjaWVfcnhfZnJlZShzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZ2VuMV8yL3J4LmMtMTIwMi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIwOjEzLjAxNzY5ODYzOFoiLCJTZXEiOjQ0LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTIxNDg1MjMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuLi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIFBDSWUgaW4gdGhpcyB3aXJlbGVzcyBkcml2ZXIuIE15IGZpcnN0IGluc3RpbmN0LCBiYXNlZCBvbiBleHBlcmllbmNlLCBpcyB0byBkaWcgaW50byB0aGUgYEtjb25maWdgIGZpbGVzLiBUaGF0J3MgdXN1YWxseSB3aGVyZSB0aGUgcmVsZXZhbnQgYnVpbGQgb3B0aW9ucyBhcmUgZGVmaW5lZC4gU28sIGxldCdzIGhlYWQgb3ZlciB0byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9LY29uZmlnYCBmaWxlLiBUaGF0IHNlZW1zIGxpa2UgdGhlIG1vc3QgbG9naWNhbCBzdGFydGluZyBwb2ludCBmb3Igb3B0aW9ucyBwZXJ0YWluaW5nIHRvIHRoZSBQQ0llIGludGVyZmFjZSBmb3IgdGhlIEludGVsIHdpcmVsZXNzIGRyaXZlci4gSSdtIGV4cGVjdGluZyB0byBmaW5kIHNvbWV0aGluZyBzcGVjaWZpYyB0aGVyZS4gSWYgaXQncyBub3QgdGhlcmUsIEknbGwgbmVlZCB0byBleHBhbmQgbXkgc2VhcmNoIHRvIGluY2x1ZGUgb3RoZXIgbGlrZWx5IGBLY29uZmlnYCBsb2NhdGlvbnMgd2l0aGluIHRoYXQgZHJpdmVyLCBvciBwZXJoYXBzIGV2ZW4gbG9vayBhdCB0aGUgcGFyZW50IGRpcmVjdG9yeSdzIGBLY29uZmlnYCBmaWxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzM4MywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIwOjE3LjkzOTE4NTk4MVoiLCJTZXEiOjQ1LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQyMjM5NjQ2MCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElXTFdJRklfUENJRVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjA6MjAuMzYxNTkxMTNaIiwiU2VxIjo0NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMDU5MTAxNDUsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJV0xXSUZJX1BDSUVfUlRQTVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjA6MjIuNTY3NTEwMDc1WiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3ODY1NDk1OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGlzc3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEludGVsIFdpcmVsZXNzIFBDSUUgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIEludGVsIHdpcmVsZXNzIFBDSUUgZHJpdmVyLiBMZXQncyBzdGFydCB3aXRoIHRoZSBgS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IHRoZSBvbmUgbG9jYXRlZCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnYC4gVGhhdCdzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIGxvb2sgZm9yIHNldHRpbmdzIHRoYXQgd291bGQgZW5hYmxlIG9yIGRpc2FibGUgdGhlIFBDSUUgZnVuY3Rpb25hbGl0eSwgb3IgcGVyaGFwcyBkZWZpbmUgdGhlIHNwZWNpZmljIGZlYXR1cmVzIHN1cHBvcnRlZCBmb3IgUENJRS1iYXNlZCBJbnRlbCB3aXJlbGVzcyBjYXJkcy4gSSdsbCBuZWVkIHRvIGNhcmVmdWxseSBleGFtaW5lIHRoYXQgZmlsZSwgYXMgdGhpcyBpcyBhIGdvb2QgZmlyc3Qgc3RlcCB0byB0cmFja2luZyBkb3duIG15IGFuc3dlcnMsIGJhc2VkIG9uIG15IHByaW9yIGtub3dsZWRnZSBvZiB0aGUgZmlsZSBzdHJ1Y3R1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzNjU0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIwOjI1LjM1NDA2MzQ1N1oiLCJTZXEiOjQ4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk4NjYxNzMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlBDSUVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMDoyNS40NDM5Mzk1NFoiLCJTZXEiOjQ5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODYwMTgwNjI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBJbnRlbCBXaXJlbGVzcyBEcml2ZXIgTWFrZWZpbGUqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGNoZWNrIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZWAuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMgZm9yIHRoZSBJbnRlbCBXaS1GaSBkcml2ZXIsIGxpa2VseSB0aGUgYGl3bHdpZmlgIG1vZHVsZSwgYXJlIGRlZmluZWQuIFRoaXMgaXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIGRyaXZlciBpcyBidWlsdCBhbmQgbGlua2VkIGludG8gdGhlIGtlcm5lbC4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgcG90ZW50aWFsIGN1c3RvbWl6YXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzg3NywiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIwOjI4LjMwNDEyMzY5N1oiLCJTZXEiOjUwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTExNTc1MzUxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBjaWVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlPTk9aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLXBoeS1kYi5vIGl3bC1udm0tcGFyc2Uub1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0xMS0jIEJ1c1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTI6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gcGNpZS9jdHh0LWluZm8ubyBwY2llL2N0eHQtaW5mby12Mi5vIHBjaWUvZHJ2Lm8gcGNpZS91dGlscy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxMzppd2x3aWZpLW9ianNcXHRcXHQrPSBwY2llL2dlbjFfMi9yeC5vIHBjaWUvZ2VuMV8yL3R4Lm8gcGNpZS9nZW4xXzIvdHJhbnMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTQ6aXdsd2lmaS1vYmpzXFx0XFx0Kz0gcGNpZS9nZW4xXzIvdHJhbnMtZ2VuMi5vIHBjaWUvZ2VuMV8yL3R4LWdlbjIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxNjpDRkxBR1NfcGNpZS9kcnYubyArPSAtV25vLW92ZXJyaWRlLWluaXRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTE3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMDoyOC40MTU3MDM3NzhaIiwiU2VxIjo1MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjUxNTQ3MDA1MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipFeGFtaW5pbmcgdGhlIEludGVycGxheSBvZiBQQ0llIGFuZCBpd2x3aWZpLmtvKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGRyaXZlciBzZXR1cCwgYW5kIGl0IHNlZW1zIHByZXR0eSBjbGVhciB0aGF0IHRoZSBgcGNpZWAgY29tcG9uZW50IGlzIGludGVncmF0ZWQgZGlyZWN0bHkgd2l0aGluIGBpd2x3aWZpLmtvYC4gVGhhdCdzIG5vdCBhbHdheXMgdGhlIGNhc2UsIHNvIGl0J3Mgd29ydGggbm90aW5nLiBUaGUgbWFpbiBjb25maWd1cmF0aW9uIHNlZW1zIHRvIHJldm9sdmUgYXJvdW5kIGBJV0xXSUZJYCwgc28gbGV0J3Mgc3RhcnQgdGhlcmUgYW5kIGRpZyBpbnRvIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0MzU0LCJPdXRwdXRUb2tlbnMiOjE5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjA6MzAuOTMxMTc2NjVaIiwiU2VxIjo1MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyODQ3OTIzODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIElXTFdJRklcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjI6Y29uZmlnIElXTFdJRklcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiSW50ZWwgV2lyZWxlc3MgV2lGaSBOZXh0IEdlbiBBR04gLSBXaXJlbGVzcy1OL0FkdmFuY2VkLU4vVWx0aW1hdGUtTiAoaXdsd2lmaSkgXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTQ3PWlmIElXTFdJRklcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjQ5OmNvbmZpZyBJV0xXSUZJX0tVTklUX1RFU1RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTUwLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjU4OmNvbmZpZyBJV0xXSUZJX0xFRFNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctNTktXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTg0PWNvbmZpZyBJV0xNTERcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy05NC0jIGRvbid0IGNhbGwgaXQgX01PRFVMRSAtLSB3aWxsIGNvbmZ1c2UgS2NvbmZpZy9maXhkZXAvLi4uXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjk1OmNvbmZpZyBJV0xXSUZJX09QTU9ERV9NT0RVTEFSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTk2LVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZz0xMDU9bWVudSBcXFwiRGVidWdnaW5nIE9wdGlvbnNcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTA3OmNvbmZpZyBJV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEwOC1cXHRib29sIFxcXCJFbmFibGUgZnVsbCBkZWJ1Z2dpbmcgb3V0cHV0IGluIHRoZSBpd2x3aWZpIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzMTpjb25maWcgSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEzMi1cXHRib29sIFxcXCJpd2x3aWZpIGRlYnVnZnMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnOjEzOTpjb25maWcgSVdMV0lGSV9ERVZJQ0VfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xNDAtXFx0Ym9vbCBcXFwiaXdsd2lmaSBkZXZpY2UgYWNjZXNzIHRyYWNpbmdcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIwOjMzLjIxNTk3NDI4WiIsIlNlcSI6NTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyODE4Mzk2OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgbXkgb3duOlxuXG4qKkFuYWx5emluZyBSZWxldmFudCBDb25maWd1cmF0aW9ucyoqXG5cbkFscmlnaHQsIGxldCdzIHNlZSwgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzIHNpdHVhdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IHByb2Nlc3MgaXMgdG8gcXVpY2tseSBjb25zaWRlciB0aGUgcmVsZXZhbnQga2VybmVsIGNvbmZpZ3VyYXRpb25zIHRoYXQgbWlnaHQgYmUgaW4gcGxheSBoZXJlLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dDpcblxuKiAgIGBJV0xXSUZJYCDigJMgb2J2aW91c2x5IHRoZSBjb3JlIEludGVsIFdpcmVsZXNzIGRyaXZlci5cbiogICBgSVdMTVZNYCDigJMgbGlrZWx5IHRoZSBNb2JpbGUgVmlydHVhbCBNYWNoaW5lIHBhcnQgb2YgdGhlIGRyaXZlci5cbiogICBgSVdMTUxEYCDigJMgcG9zc2libHkgdGhlIE1lZGlhIExheWVyIERlYnVnLlxuKiAgIGBJV0xXSUZJX0RFQlVHRlNgIOKAkyBUaGUgZGVidWcgZmlsZXN5c3RlbSBzdXBwb3J0IGZvciB0aGUgSVdMV0lGSSBkcml2ZXIuXG4qICAgYFRIRVJNQUxgIOKAkyB0aGlzIGlzIGFsd2F5cyBhbiBpbXBvcnRhbnQgb25lLCBwYXJ0aWN1bGFybHkgd2hlbiBkZWFsaW5nIHdpdGggd2lyZWxlc3MgaGFyZHdhcmUsIGFzIGhlYXQgbWFuYWdlbWVudCBjYW4gb2Z0ZW4gYmUgYSBmYWN0b3IuXG5cbk9rYXksIGxldCdzIHN0YXJ0IHdpdGggYFRIRVJNQUxgLiBUaGF0IHNlZW1zIGxpa2UgYSBsb2dpY2FsIGZpcnN0IHN0ZXAgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIHNvcnRzIG9mIGlzc3Vlcy4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gd2hhdCBpcyBnb2luZyBvbiBoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTE2NCwiT3V0cHV0VG9rZW5zIjoxNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIwOjM2LjQ5NzgxNzM2NVoiLCJTZXEiOjU0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU1OTY3MjczOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgVEhFUk1BTFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy01LVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjY6bWVudWNvbmZpZyBUSEVSTUFMXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctNy1cXHRib29sIFxcXCJUaGVybWFsIGRyaXZlcnNcXFwiXFxuLS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZz0xOD1pZiBUSEVSTUFMXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTktXFxuZHJpdmVycy90aGVybWFsL0tjb25maWc6MjA6Y29uZmlnIFRIRVJNQUxfTkVUTElOS1xcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTIxLVxcdGJvb2wgXFxcIlRoZXJtYWwgbmV0bGluayBtYW5hZ2VtZW50XFxcIlxcbi0tXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMjgtXFxuZHJpdmVycy90aGVybWFsL0tjb25maWc6Mjk6Y29uZmlnIFRIRVJNQUxfU1RBVElTVElDU1xcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTMwLVxcdGJvb2wgXFxcIlRoZXJtYWwgc3RhdGUgdHJhbnNpdGlvbiBzdGF0aXN0aWNzXFxcIlxcbi0tXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMzUtXFxuZHJpdmVycy90aGVybWFsL0tjb25maWc6MzY6Y29uZmlnIFRIRVJNQUxfREVCVUdGU1xcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTM3LVxcdGJvb2wgXFxcIlRoZXJtYWwgc3Vic3lzdGVtIGRlYnVnIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy00Mi1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzo0Mzpjb25maWcgVEhFUk1BTF9DT1JFX1RFU1RJTkdcXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy00NC1cXHR0cmlzdGF0ZSBcXFwiVGhlcm1hbCBjb3JlIHRlc3RpbmcgZmFjaWxpdHlcXFwiXFxuLS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy01MS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzo1Mjpjb25maWcgVEhFUk1BTF9FTUVSR0VOQ1lfUE9XRVJPRkZfREVMQVlfTVNcXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy01My1cXHRpbnQgXFxcIkVtZXJnZW5jeSBwb3dlcm9mZiBkZWxheSBpbiBtaWxsaS1zZWNvbmRzXFxcIlxcbi0tXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctNjctXFxuZHJpdmVycy90aGVybWFsL0tjb25maWc6Njg6Y29uZmlnIFRIRVJNQUxfSFdNT05cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy02OS1cXHRib29sXFxuLS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy04MS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzo4Mjpjb25maWcgVEhFUk1BTF9PRlxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTgzLVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnPTk1PWNob2ljZVxcbi0tXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTAxLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjEwMjpjb25maWcgVEhFUk1BTF9ERUZBVUxUX0dPVl9TVEVQX1dJU0VcXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMDMtXFx0Ym9vbCBcXFwic3RlcF93aXNlXFxcIlxcbi0tXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTA4LVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjEwOTpjb25maWcgVEhFUk1BTF9ERUZBVUxUX0dPVl9GQUlSX1NIQVJFXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTEwLVxcdGJvb2wgXFxcImZhaXJfc2hhcmVcXFwiXFxuLS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMTYtXFxuZHJpdmVycy90aGVybWFsL0tjb25maWc6MTE3OmNvbmZpZyBUSEVSTUFMX0RFRkFVTFRfR09WX1VTRVJfU1BBQ0VcXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xMTgtXFx0Ym9vbCBcXFwidXNlcl9zcGFjZVxcXCJcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTEyNS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxMjY6Y29uZmlnIFRIRVJNQUxfREVGQVVMVF9HT1ZfUE9XRVJfQUxMT0NBVE9SXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTI3LVxcdGJvb2wgXFxcInBvd2VyX2FsbG9jYXRvclxcXCJcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTEzMy1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxMzQ6Y29uZmlnIFRIRVJNQUxfREVGQVVMVF9HT1ZfQkFOR19CQU5HXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTM1LVxcdGJvb2wgXFxcImJhbmdfYmFuZ1xcXCJcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnPTE0Mj1lbmRjaG9pY2VcXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xNDMtXFxuZHJpdmVycy90aGVybWFsL0tjb25maWc6MTQ0OmNvbmZpZyBUSEVSTUFMX0dPVl9GQUlSX1NIQVJFXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTQ1LVxcdGJvb2wgXFxcIkZhaXItc2hhcmUgdGhlcm1hbCBnb3Zlcm5vclxcXCJcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE0OC1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxNDk6Y29uZmlnIFRIRVJNQUxfR09WX1NURVBfV0lTRVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE1MC1cXHRib29sIFxcXCJTdGVwX3dpc2UgdGhlcm1hbCBnb3Zlcm5vclxcXCJcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE1NC1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxNTU6Y29uZmlnIFRIRVJNQUxfR09WX0JBTkdfQkFOR1xcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE1Ni1cXHRib29sIFxcXCJCYW5nIEJhbmcgdGhlcm1hbCBnb3Zlcm5vclxcXCJcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTE2NC1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoxNjU6Y29uZmlnIFRIRVJNQUxfR09WX1VTRVJfU1BBQ0VcXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZy0xNjYtXFx0Ym9vbCBcXFwiVXNlcl9zcGFjZSB0aGVybWFsIGdvdmVybm9yXFxcIlxcbi0tXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTY5LVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnOjE3MDpjb25maWcgVEhFUk1BTF9HT1ZfUE9XRVJfQUxMT0NBVE9SXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMTcxLVxcdGJvb2wgXFxcIlBvd2VyIGFsbG9jYXRvciB0aGVybWFsIGdvdmVybm9yXFxcIlxcbi0tXFxuZHJpdmVycy90aGVybWFsL0tjb25maWc9MjIzPWNvbmZpZyBQQ0lFX1RIRVJNQUxcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTIzMS1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoyMzI6Y29uZmlnIFRIRVJNQUxfRU1VTEFUSU9OXFxuZHJpdmVycy90aGVybWFsL0tjb25maWctMjMzLVxcdGJvb2wgXFxcIlRoZXJtYWwgZW11bGF0aW9uIG1vZGUgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTI0My1cXG5kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZzoyNDQ6Y29uZmlnIFRIRVJNQUxfTU1JT1xcbmRyaXZlcnMvdGhlcm1hbC9LY29uZmlnLTI0NS1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBUaGVybWFsIE1NSU8gZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMDozOS4wNTc0OTczMjRaIiwiU2VxIjo1NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ1MjUyMjkzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFRoZXJtYWwgSW1wYWN0KipcblxuQWxyaWdodCwgXCJUSEVSTUFMXCIgaXMgdGhlIGNvcnJlY3QgZGlyZWN0aW9uLCBubyBjb25jZXJucyB0aGVyZS4gTm93LCBsZXQncyB6ZXJvIGluIG9uIHRoZSBrZXkgZnVuY3Rpb25zIHRvIGV4YW1pbmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgc3lzdGVtIGlzIGJlaGF2aW5nIHVuZGVyIHRoZXJtYWwgc3RyZXNzLCBzbyBJJ2xsIHByaW9yaXRpemUgdGhlc2UgZnVuY3Rpb25zOlxuXG4qICAgYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYCDigJMgTGlrZWx5IHJlbGF0ZWQgdG8gYmVhY29uIHJlY2VwdGlvbiwgd2hpY2ggY291bGQgYmUgcmVsZXZhbnQgdG8gcG93ZXIgY29uc3VtcHRpb24gYW5kIHRoZXJtYWwgbG9hZCBpZiBpdCdzIHN0cnVnZ2xpbmcgd2l0aCBzaWduYWwuXG4qICAgYGl3bF9tdm1fdXBkYXRlX21jY2Ag4oCTIE1pZ2h0IGltcGFjdCBjaGFubmVsIHNlbGVjdGlvbiBhbmQsIGluZGlyZWN0bHksIHRoZXJtYWwgYmVoYXZpb3IgaWYgaXQncyBmcmVxdWVudGx5IGNoYW5naW5nIGNoYW5uZWxzLlxuKiAgIGBpd2xfbXZtX3RsY191cGRhdGVfbm90aWZgIOKAkyBUaGlzIFRyYW5zcG9ydCBMYXllciBDb250cm9sIHVwZGF0ZSBjb3VsZCBjYXVzZSBoZWF2eSB3b3JrLCB3aGljaCBtaWdodCB0cmlnZ2VyIFRoZXJtYWwgZXZlbnRzLlxuKiAgIGBpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWZgIOKAkyBQb3RlbnRpYWxseSByZWxhdGVkIHRvIGRhdGEgd2luZG93IG1hbmFnZW1lbnQ7IGNvdWxkIGV4cG9zZSBwZXJmb3JtYW5jZSBsaW1pdHMgdW5kZXIgbG9hZC5cbiogICBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgIOKAkyBTY2FubmluZyBjeWNsZXMgY2FuIGJlIGRlbWFuZGluZywgc28gSSBuZWVkIHRvIGtub3cgaG93IHRoZXNlIGNvbXBsZXRlIG5vdGlmaWNhdGlvbnMgYXJlIGhhbmRsZWQuXG4qICAgYGl3bF9tbGRfcmVvcmRlcmAg4oCTIElmIHBhY2tldCByZW9yZGVyaW5nIGlzIGhlYXZ5LCBpdCBpbXBsaWVzIGVycm9ycywgd2hpY2ggY291bGQgYW1wbGlmeSB0aGUgdGhlcm1hbCBzdHJhaW4uXG4qICAgYGl3bF9tdm1fcmVwb3J0X3dha2V1cF9yZWFzb25zYCDigJMgVGhpcyBpcyBwYXJ0aWN1bGFybHkgaW50ZXJlc3RpbmcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyB3YWtpbmcgdGhlIGRldmljZSB1cC4gRnJlcXVlbnQgd2FrZS11cHMgYXJlIGEgcG90ZW50aWFsIHRoZXJtYWwgcHJvYmxlbS5cbiogICBgaXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZmAg4oCTIFdPV0xBTiwgb3IgV2FrZS1vbi1MQU4sIG1pZ2h0IGluZmx1ZW5jZSBwb3dlciBzYXZpbmcgYW5kIHRoZXJtYWwgZXZlbnRzIGlmIGl0J3MgbWFsZnVuY3Rpb25pbmcuXG4qICAgYGl3bF9tdm1fd2FpdF9kM19ub3RpZmAg4oCTIFRoaXMgc3VnZ2VzdHMgYSB0cmFuc2l0aW9uLCBhbmQgaG93IHRoZXJtYWwgbWFuYWdlbWVudCBiZWhhdmVzIGR1cmluZyB0aGlzIHRyYW5zaXRpb24gaXMgY3J1Y2lhbC5cbiogICBgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWZgIOKAkyBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHNlc3Npb24gcHJvdGVjdGlvbiBkb2VzLCBzaW5jZSB0aGlzIG1pZ2h0IHJlcXVpcmUgc29tZSBpbnRlbnNlIHByb2Nlc3NpbmcuXG5cbkxldCdzIGJlZ2luIGJ5IGNoZWNraW5nIG91dCB0aGUgYGl3bF9tdm1fcmVwb3J0X3dha2V1cF9yZWFzb25zYCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTY1ODYsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjA6NDQuNTEwMDI1Nzc3WiIsIlNlcSI6NTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTIwNDY5NzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bF9tdm1fcmVwb3J0X3dha2V1cF9yZWFzb25zXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM9MTM5Mj1zdHJ1Y3QgaXdsX3dvd2xhbl9zdGF0dXNfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTE0NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoxNDQ3OnN0YXRpYyB2b2lkIGl3bF9tdm1fcmVwb3J0X3dha2V1cF9yZWFzb25zKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0xNDQ4LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM9MjM3Mz1zdGF0aWMgYm9vbCBpd2xfbXZtX3F1ZXJ5X3dha2V1cF9yZWFzb25zKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI0MTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyNDE0OlxcdGl3bF9tdm1fcmVwb3J0X3dha2V1cF9yZWFzb25zKG12bSwgdmlmLCBzdGF0dXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjQxNS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjA6NDYuNjMwNTAwMDM4WiIsIlNlcSI6NTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxODE3ODYzODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgY29kZSBzbmlwcGV0OlxuXG4qKkRpdmluZyBpbnRvIFdha2V1cCBSZWFzb24gUmVwb3J0aW5nIGluIHRoZSBpd2xfbXZtIERyaXZlcioqXG5cbk9rYXksIHNvIEkgc2VlIGBpd2xfbXZtX3JlcG9ydF93YWtldXBfcmVhc29uc2AgaXMgZGVjbGFyZWQgYXMgYHN0YXRpY2AuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgaXQncyBsaWtlbHkgYW4gaW50ZXJuYWwgaGVscGVyIGZ1bmN0aW9uIHdpdGhpbiB0aGUgYGl3bF9tdm1gIG1vZHVsZS4gIFNpbmNlIGl0J3Mgc3RhdGljLCBpdCdzIG9ubHkgdmlzaWJsZSB3aXRoaW4gdGhhdCB0cmFuc2xhdGlvbiB1bml0LCBzbyBpdCdzIG5vdCBtZWFudCBmb3IgZGlyZWN0IGV4dGVybmFsIGNhbGxzLiBOb3csIGl0J3MgY2FsbGVkIGZyb20gYGl3bF9tdm1fcXVlcnlfd2FrZXVwX3JlYXNvbnNgLiBNeSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byB1bmRlcnN0YW5kICp3aHkqIGFuZCAqaG93KiBgaXdsX212bV9xdWVyeV93YWtldXBfcmVhc29uc2AgaXMgYmVpbmcgdXNlZC4gSSBuZWVkIHRvIHRyYWNlIHRoZSBjYWxsIHBhdGhzIHRvIGBpd2xfbXZtX3F1ZXJ5X3dha2V1cF9yZWFzb25zYC4gIEknbGwgc3RhcnQgdGhlcmUgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCBhbmQgcHVycG9zZSBvZiByZXBvcnRpbmcgdGhlc2Ugd2FrZXVwIHJlYXNvbnMuIEkgc3VzcGVjdCB0aGlzIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGxhcmdlciBwb3dlciBtYW5hZ2VtZW50IG9yIGRlYnVnZ2luZyBzdHJhdGVneS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTc2MDQsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMDo1MC44MTIyODkxODZaIiwiU2VxIjo1OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxNzIxNzg3MjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXdsX212bV9xdWVyeV93YWtldXBfcmVhc29uc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jPTIyODM9aXdsX212bV9zZW5kX3dvd2xhbl9nZXRfc3RhdHVzKHN0cnVjdCBpd2xfbXZtICptdm0sIHU4IHN0YV9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjM3Mi0vKiByZWxlYXNlcyB0aGUgTVZNIG11dGV4ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyMzczOnN0YXRpYyBib29sIGl3bF9tdm1fcXVlcnlfd2FrZXVwX3JlYXNvbnMoc3RydWN0IGl3bF9tdm0gKm12bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTIzNzQtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jPTI3MjM9aXdsX212bV9jaG9vc2VfcXVlcnlfd2FrZXVwX3JlYXNvbnMoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjc0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jOjI3NDM6XFx0cmV0dXJuIGl3bF9tdm1fcXVlcnlfd2FrZXVwX3JlYXNvbnMobXZtLCB2aWYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yNzQ0LVxcdFxcdFxcdFxcdFxcdCAgICBkM19kYXRhLVxcdTAwM2VzdGF0dXMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMDo1Mi45ODQ0NzUxNTRaIiwiU2VxIjo1OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgzMzAyOTk1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gZGlzc2VjdGluZyBgaXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZmA6XG5cbioqQW5hbHl6aW5nIGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCwgd2hpY2gsIGp1ZGdpbmcgYnkgdGhlIG5hbWUsIGlzIG9idmlvdXNseSByZWxhdGVkIHRvIHBhcnNpbmcgV2FrZS1vbi1XTEFOIGluZm9ybWF0aW9uIG5vdGlmaWNhdGlvbnMgd2l0aGluIHRoZSBJbnRlbCB3aXJlbGVzcyBkcml2ZXIncyBNVk0gKE1lc2ggVmlydHVhbCBNYWNoaW5lKSBzdWJzeXN0ZW0uIFRoaXMgaW1tZWRpYXRlbHkgdHJpZ2dlcnMgYSBidW5jaCBvZiBxdWVzdGlvbnMgaW4gbXkgbWluZC4gV2hhdCBzcGVjaWZpY2FsbHkgaXMgdGhlIG5vdGlmaWNhdGlvbiBzdHJ1Y3R1cmU/IFdoYXQgZGF0YSBmaWVsZHMgYXJlIHdlIGRlYWxpbmcgd2l0aD8gSXMgdGhpcyByZWxhdGVkIHRvIHNwZWNpZmljIGZpcm13YXJlIHZlcnNpb25zIG9yIGhhcmR3YXJlIHJldmlzaW9ucz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0cmlnZ2VycyB0aGlzIGZ1bmN0aW9uLCB0aGUgY29udGV4dCBpbiB3aGljaCBpdCdzIGNhbGxlZC4gSXMgaXQgdHJpZ2dlcmVkIG9uIHRoZSByZWNlaXB0IG9mIGFuIGV2ZW50IGZyb20gdGhlIGhhcmR3YXJlLCBwZXJoYXBzIGEgbWFuYWdlbWVudCBmcmFtZT8gSXMgaXQgdGllZCB0byBhIHNwZWNpZmljIHBvd2VyIG1hbmFnZW1lbnQgc3RhdGU/IEknbGwgbmVlZCB0byB0cmFjZSBiYWNrIHRoZSBjYWxsIHN0YWNrIHRvIHNlZSB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGJlaW5nIGludm9rZWQgYW5kIHVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcy4gTW9yZW92ZXIsIGhvdyBhcmUgdGhlc2UgcGFyc2VkIHZhbHVlcyB0aGVuIHV0aWxpemVkIGZ1cnRoZXIgZG93biB0aGUgbGluZT8gQXJlIHRoZXkgdXNlZCB0byBjb25maWd1cmUgdGhlIHJhZGlvLCB0cmlnZ2VyIHNwZWNpZmljIGFjdGlvbnMsIG9yIG1lcmVseSBmb3IgbG9nZ2luZyBhbmQgZGVidWdnaW5nIHB1cnBvc2VzPyBJIG5lZWQgdG8gYW5hbHl6ZSB0aGUgc3Vycm91bmRpbmcgY29kZSAtIHRoZSBkYXRhIHN0cnVjdHVyZXMsIHRoZSBlcnJvciBoYW5kbGluZywgYW5kIGFueSBpbnRlcmFjdGlvbnMgd2l0aCBvdGhlciBtb2R1bGVzLiBJdCdzIHRpbWUgdG8gZGlnIGluIGFuZCB1bmRlcnN0YW5kIHRoZSBpbnRyaWNhY2llcyBvZiBob3cgdGhpcyBmdW5jdGlvbiBjb250cmlidXRlcyB0byBlZmZpY2llbnQgYW5kIGNvcnJlY3QgV2FrZS1vbi1XTEFOIGJlaGF2aW9yIHdpdGhpbiB0aGUgZHJpdmVyLiBMZXQncyBnZXQgdG8gaXQhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4MjU2LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjA6NTYuODE3NTA3NzQ4WiIsIlNlcSI6NjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzcxMDIyMzAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYz0yMDkwPXN0YXRpYyB2b2lkIGl3bF9tdm1fY29udmVydF9iaWd0ayhzdHJ1Y3QgaXdsX3dvd2xhbl9zdGF0dXNfZGF0YSAqc3RhdHVzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yMTIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM6MjEyMTpzdGF0aWMgdm9pZCBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yMTIyLVxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgaXdsX3dvd2xhbl9pbmZvX25vdGlmX3Y1ICpkYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYz0yMTYxPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyMTYyOml3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWZfdjMoc3RydWN0IGl3bF9tdm0gKm12bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTIxNjMtXFx0XFx0XFx0XFx0ICAgc3RydWN0IGl3bF93b3dsYW5faW5mb19ub3RpZl92MyAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM9MjE5ND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM6MjE5NTppd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmX3YxKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yMTk2LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBpd2xfd293bGFuX2luZm9fbm90aWZfdjEgKmRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jPTI4NDU9c3RhdGljIGJvb2wgaXdsX212bV93YWl0X2QzX25vdGlmKHN0cnVjdCBpd2xfbm90aWZfd2FpdF9kYXRhICpub3RpZl93YWl0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yODcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmM6Mjg3MzpcXHRcXHRcXHRpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmX3YxKG12bSwgbm90aWZfdjEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0yODc0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIGQzX2RhdGEtXFx1MDAzZXN0YXR1cyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjg3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jOjI4ODA6XFx0XFx0XFx0aXdsX212bV9wYXJzZV93b3dsYW5faW5mb19ub3RpZl92Myhtdm0sIG5vdGlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMjg4MS1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICBkM19kYXRhLVxcdTAwM2VzdGF0dXMsIGxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI4ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyODg2OlxcdFxcdFxcdGl3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWYobXZtLCBub3RpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI4ODctXFx0XFx0XFx0XFx0XFx0XFx0XFx0ZDNfZGF0YS1cXHUwMDNlc3RhdHVzLCBsZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMDo1OS4xODg1Mzc2MzFaIiwiU2VxIjo2MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjkyMTQ3NTAyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJ20gYW4gZXhwZXJ0IGluIHRoaXMgZmllbGQsIGFuZCBzcGVha2luZyBmcm9tIHRoZSBmaXJzdC1wZXJzb24gcGVyc3BlY3RpdmU6XG5cbioqRGl2aW5nIGludG8gdGhlIEQzIE5vdGlmaWNhdGlvbiBIYW5kbGluZyoqXG5cbkFscmlnaHQsIHNvIEknbSBmb2N1c2luZyBvbiB0aGUgYGl3bF9tdm1fd2FpdF9kM19ub3RpZmAgZnVuY3Rpb24uIFRoYXQncyB0aGUga2V5LiBGcm9tIG15IGV4cGVyaWVuY2UsIGFuZCB0aGUgY29udGV4dCwgSSBrbm93IHRoYXQncyB0aGUgcG9pbnQgd2hlcmUgd2UncmUgYWN0dWFsbHkgKmhhbmRsaW5nKiB0aGUgRDMgKERldmljZSBEcml2ZXIgRGVlcCBTbGVlcCkgbm90aWZpY2F0aW9uLiBJdCdzIHRoZSBnYXRla2VlcGVyLCB0aGUgcGFydCB0aGF0J3MgcmVzcG9uc2libGUgZm9yIHJlY29nbml6aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoZSBzaWduYWwgaW5kaWNhdGluZyB0aGF0IGEgRDMgc3RhdGUgdHJhbnNpdGlvbiBuZWVkcyB0byBoYXBwZW4sIG9yIGlzIGhhcHBlbmluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZyB3aXRoaW4gdGhpcyBmdW5jdGlvbiBhbmQgaG93IGl0IGlzIGJlaGF2aW5nLiBUaGF04oCZcyB3aGVyZSBJIHNob3VsZCBiZSBjb25jZW50cmF0aW5nIG15IGVmZm9ydHMuIFRoZSBudWFuY2VzIG9mIGl0cyBpbXBsZW1lbnRhdGlvbiBhcmUgY3J1Y2lhbCB0byBhIHN1Y2Nlc3NmdWwgRDMgZmxvdy4gSSBoYXZlIHRvIGxvb2sgZGVlcGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTQ4NSwiT3V0cHV0VG9rZW5zIjoyNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIxOjAyLjExMDAxNjA5M1oiLCJTZXEiOjYyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQyODYwNzY0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpd2xfbXZtX3dhaXRfZDNfbm90aWZcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYz0yNzk2PXN0YXRpYyB2b2lkIGl3bF9tdm1fbmRfbWF0Y2hfaW5mb19oYW5kbGVyKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI4NDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzoyODQ1OnN0YXRpYyBib29sIGl3bF9tdm1fd2FpdF9kM19ub3RpZihzdHJ1Y3QgaXdsX25vdGlmX3dhaXRfZGF0YSAqbm90aWZfd2FpdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTI4NDYtXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaXdsX3J4X3BhY2tldCAqcGt0LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYz0yOTk0PXN0YXRpYyBpbnQgaXdsX212bV9kM19ub3RpZl93YWl0KHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9kMy5jLTMwMTItXFx0XFx0XFx0XFx0XFx0ICAgQVJSQVlfU0laRShkM19mYXN0X3Jlc3VtZV9ub3RpZiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzozMDEzOlxcdFxcdFxcdFxcdFxcdCAgIGl3bF9tdm1fd2FpdF9kM19ub3RpZiwgZDNfZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0zMDE0LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL2QzLmMtMzAxNy1cXHRcXHRcXHRcXHRcXHQgICBBUlJBWV9TSVpFKGQzX3Jlc3VtZV9ub3RpZiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYzozMDE4OlxcdFxcdFxcdFxcdFxcdCAgIGl3bF9tdm1fd2FpdF9kM19ub3RpZiwgZDNfZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vZDMuYy0zMDE5LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMTowNC41Mzg2MzE1MDJaIiwiU2VxIjo2MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMwMDk2NTI3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgSW50ZWwgV2lyZWxlc3MgRHJpdmVyJ3MgRDMgTm90aWZpY2F0aW9uIEhhbmRsaW5nKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byBob3cgdGhlIEludGVsIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IHRoZSBgaXdsX212bWAgcGFydCwgaGFuZGxlcyBEMyAoRGV2aWNlIFN0YXRlIEQzKSBub3RpZmljYXRpb25zLiBJIHNlZSB0aGF0IGBpd2xfbXZtX3dhaXRfZDNfbm90aWZgIGlzIGEgY2FsbGJhY2sgZnVuY3Rpb24gcGFzc2VkIHRvIGBpd2xfaW5pdF9ub3RpZmljYXRpb25fd2FpdGAuICBUaGF0IG1ha2VzIHNlbnNlOyBpdCdzIHRoZSBmdW5jdGlvbiB0aGF0J3MgZ29pbmcgdG8gYmUgZXhlY3V0ZWQgd2hlbmV2ZXIgYSBub3RpZmljYXRpb24gc2hvd3MgdXAuXG5cbk5vdywgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgKndoYXQqIHRoaXMgbm90aWZpY2F0aW9uIGlzIGFjdHVhbGx5IGRvaW5nIGFuZCBob3cgaXQgdGllcyBpbnRvIHRoZSBicm9hZGVyIHBvd2VyIG1hbmFnZW1lbnQgc2NoZW1lLiBNeSBpbnN0aW5jdCBpcyB0byB0cmFjZSB0aGlzIG5vdGlmaWNhdGlvbiBiYWNrIHRvIHRoZSBmdW5jdGlvbiB0aGF0IHRyaWdnZXJzIGl0LiBTbywgbGV0IG1lIHRha2UgYSBsb29rIGF0IGBpd2xfbXZtX3J4X3Nlc3Npb25fcHJvdGVjdF9ub3RpZmAuIFRoYXQgc2VlbXMgbGlrZSBhIGxvZ2ljYWwgbmV4dCBzdGVwIHRvIHVuZGVyc3RhbmQgdGhlIGJyb2FkZXIgY29udGV4dC4gTGV0J3Mgc2VlIGhvdyB0aGF0IGZpdHMgaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMjA3LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjE6MDcuODM5NjA3NTc1WiIsIlNlcSI6NjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MTA5OTA0ODYzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bF9tdm1fcnhfc2Vzc2lvbl9wcm90ZWN0X25vdGlmXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jPTMxNz1zdGF0aWMgY29uc3Qgc3RydWN0IGl3bF9yeF9oYW5kbGVycyBpd2xfbXZtX3J4X2hhbmRsZXJzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zNTQtXFx0UlhfSEFORExFUl9HUlAoTUFDX0NPTkZfR1JPVVAsIFNFU1NJT05fUFJPVEVDVElPTl9OT1RJRixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYzozNTU6XFx0XFx0ICAgICAgIGl3bF9tdm1fcnhfc2Vzc2lvbl9wcm90ZWN0X25vdGlmLCBSWF9IQU5ETEVSX1NZTkMsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmMtMzU2LVxcdFxcdCAgICAgICBzdHJ1Y3QgaXdsX3Nlc3Npb25fcHJvdF9ub3RpZiksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmM9OTE0PXZvaWQgaXdsX212bV9zdG9wX3Nlc3Npb25fcHJvdGVjdGlvbihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5jLTk0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmM6OTQ1OnZvaWQgaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmMtOTQ2LVxcdFxcdFxcdFxcdCAgICAgIHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vdGltZS1ldmVudC5oPTIxND12b2lkIGl3bF9tdm1fc2NoZWR1bGVfc2Vzc2lvbl9wcm90ZWN0aW9uKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmgtMjE5LS8qKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuaDoyMjA6ICogaXdsX212bV9yeF9zZXNzaW9uX3Byb3RlY3Rfbm90aWYgLSBoYW5kbGVzICVTRVNTSU9OX1BST1RFQ1RJT05fTk9USUZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmgtMjIxLSAqIEBtdm06IHRoZSBtdm0gY29tcG9uZW50XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS90aW1lLWV2ZW50LmgtMjIzLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuaDoyMjQ6dm9pZCBpd2xfbXZtX3J4X3Nlc3Npb25fcHJvdGVjdF9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3RpbWUtZXZlbnQuaC0yMjUtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMToxMS45NDk1MTkwOThaIiwiU2VxIjo2NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk1NzA0NDk2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgYXMgYSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIGl3bF9tdm0gUlggSGFuZGxpbmcqKlxuXG5BbHJpZ2h0LCBzbyBJJ20gZm9jdXNpbmcgb24gYGl3bF9tdm1fcnhfc2Vzc2lvbl9wcm90ZWN0X25vdGlmYCByaWdodCBub3cg4oCTIGl0J3MgcHJldHR5IGNsZWFyIHRoaXMgaXMgYSBmdW5jdGlvbiB3aXRoaW4gdGhlIFJYIHBhdGguIE5vdywgSSBuZWVkIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyBpdCBmaXRzIGludG8gdGhlIHdob2xlIHBpY3R1cmUuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGV4cGxvcmUgaG93IHRoaXMgcHJvdGVjdGlvbiBub3RpZmljYXRpb24gaGFuZGxlciByZWxhdGVzIHRvIHRoZSBicm9hZGVyIHN5c3RlbSwgYW5kIEkgdGhpbmsgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBgaXdsX212bV91cGRhdGVfbWNjYCBmdW5jdGlvbi4gSSBoYXZlIGEgaHVuY2ggaXQgd2lsbCBwcm92aWRlIHNvbWUgdXNlZnVsIGNvbnRleHQuIExldCdzIHNlZSBob3cgdGhleSBpbnRlcmFjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjExNTMsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMToxNC45MDY1NjcyNzdaIiwiU2VxIjo2NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MTQ5ODU1MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXdsX212bV91cGRhdGVfbWNjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYzgwMjExLmM9MTE3PXN0cnVjdCBpZWVlODAyMTFfcmVnZG9tYWluICppd2xfbXZtX2dldF9yZWdkb21haW4oc3RydWN0IHdpcGh5ICp3aXBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYzgwMjExLmMtMTMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYzgwMjExLmM6MTMyOlxcdHJlc3AgPSBpd2xfbXZtX3VwZGF0ZV9tY2MobXZtLCBhbHBoYTIsIHNyY19pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjODAyMTEuYy0xMzMtXFx0aWYgKElTX0VSUl9PUl9OVUxMKHJlc3ApKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaD0yMzE5PXN0cnVjdCBpd2xfbWNjX3VwZGF0ZV9yZXNwX3Y4ICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaDoyMzIwOml3bF9tdm1fdXBkYXRlX21jYyhzdHJ1Y3QgaXdsX212bSAqbXZtLCBjb25zdCBjaGFyICphbHBoYTIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbXZtLmgtMjMyMS1cXHRcXHQgICBlbnVtIGl3bF9tY2Nfc291cmNlIHNyY19pZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9udm0uYz00MDA9c3RydWN0IGl3bF9tY2NfdXBkYXRlX3Jlc3BfdjggKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jOjQwMTppd2xfbXZtX3VwZGF0ZV9tY2Moc3RydWN0IGl3bF9tdm0gKm12bSwgY29uc3QgY2hhciAqYWxwaGEyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL252bS5jLTQwMi1cXHRcXHQgICBlbnVtIGl3bF9tY2Nfc291cmNlIHNyY19pZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjE6MTcuNjIxNTU3NTY1WiIsIlNlcSI6NjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNzYxMTExMTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgaW5mb3JtYXRpb24sIGFzIGlmIHRoZXNlIHdlcmUgbXkgaW50ZXJuYWwgdGhvdWdodHM6XG5cbioqRGlzc2VjdGluZyB0aGUgaXdsX212bSBDb2RlYmFzZSoqXG5cbk9rYXksIHNvIGBpd2xfbXZtX3VwZGF0ZV9tY2NgIGlzIG1ha2luZyBhIGNvbW1hbmQsIHNlbmRpbmcgaXQsIGFuZCB0aGVuIHBhcnNpbmcgdGhlIHJlcGx5LiBUaGF0J3Mgc3RhbmRhcmQgZW5vdWdoLiBOb3csIHRoZSBjb250ZXh0IGlzIGltcG9ydGFudCDigJMgaXQncyBiZWluZyBjYWxsZWQgZnJvbSBgaXdsX212bV9nZXRfcmVnZG9tYWluYC4gVGhhdCBzdWdnZXN0cyBpdCdzIGxpa2VseSBpbnZvbHZlZCBpbiByZWdpb24gY29kZSBvciByZWd1bGF0b3J5IGRvbWFpbiBoYW5kbGluZy4gSSBuZWVkIHRvIGtlZXAgdGhhdCBjb25uZWN0aW9uIGluIG1pbmQuIFBlcmhhcHMgdGhlIGBtY2NgIHN0YW5kcyBmb3IgXCJtdWx0aS1jYXJyaWVyIGNvbmZpZ3VyYXRpb25cIiwgYW5kIHRoZSBmdW5jdGlvbiBpcyB1cGRhdGluZyB0aGUgcmVndWxhdG9yeSBkb21haW4gY29uZmlndXJhdGlvbiBiYXNlZCBvbiBhbiBleHRlcm5hbCByZXNwb25zZS5cblxuTm93LCBJIHdhbnQgdG8gcGl2b3QgYSBiaXQuIExldCdzIHNoaWZ0IG91ciBmb2N1cyB0byBgaXdsX21sZF9yZW9yZGVyYC4gSSdtIGN1cmlvdXMgd2hhdCBraW5kIG9mIHJlb3JkZXJpbmcgY29udGV4dCBtaWdodCBleGlzdC4gTXkgZXhwZXJ0aXNlIGlzIHByaW1hcmlseSBpbiB0aGUgbnVhbmNlcyBvZiBuZXR3b3JraW5nIHByb3RvY29scywgYW5kIEkgaGF2ZSBoYWQgc29tZSBleHBlcmllbmNlIHdvcmtpbmcgb24gc2ltaWxhciB3aXJlbGVzcyBkcml2ZXJzLiBSZW9yZGVyaW5nIGNvdWxkIGJlIHJlbGF0ZWQgdG8gdmFyaW91cyBhc3BlY3RzLCBsaWtlIHBhY2tldCByZW9yZGVyaW5nIHdpdGhpbiBhIHN0cmVhbSwgb3IgaXQgbWF5IHJlbGF0ZSB0byB0aGUgcmVvcmRlcmluZyBvZiB0cmFmZmljIGZsb3dzIG9yIHBhY2tldHMuIExldCdzIHNlZSB3aGF0IHRoYXQgZnVuY3Rpb24gaXMgYWJvdXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxODMyLCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjE6MjEuNzk3NjcxMzAzWiIsIlNlcSI6NjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzY5ODE3NTE0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bF9tbGRfcmVvcmRlclwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz05PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTA6aXdsX21sZF9yZW9yZGVyX3JlbGVhc2VfZnJhbWVzKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTEtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xMi1cXHRcXHRcXHQgICAgICAgc3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTM6XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNC1cXHRcXHRcXHQgICAgICAgdTE2IG5zc24pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE2OlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNy1cXHRcXHRcXHUwMDI2YmFpZF9kYXRhLVxcdTAwM2VlbnRyaWVzW3Jlb3JkZXJfYnVmLVxcdTAwM2VxdWV1ZSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz00Mj1zdGF0aWMgdm9pZCBpd2xfbWxkX3JlbGVhc2VfZnJhbWVzX2Zyb21fbm90aWYoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ1LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0NjpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDctXFx0c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYV9kYXRhO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6Nzc6XFx0aXdsX21sZF9yZW9yZGVyX3JlbGVhc2VfZnJhbWVzKG1sZCwgbGlua19zdGEtXFx1MDAzZXN0YSwgbmFwaSwgYmFfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy03OC1cXHRcXHRcXHRcXHQgICAgICAgcmVvcmRlcl9idWYsIG5zc24pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM9MTUzPXZvaWQgaXdsX21sZF9kZWxfYmEoc3RydWN0IGl3bF9tbGQgKm1sZCwgaW50IHF1ZXVlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTU2LVxcdHN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSAqYmFfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxNTc6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKnJlb3JkZXJfYnVmO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE1OC1cXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE4Mi1cXHQvKiByZWxlYXNlIGFsbCBmcmFtZXMgdGhhdCBhcmUgaW4gdGhlIHJlb3JkZXIgYnVmZmVyIHRvIHRoZSBzdGFjayAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE4MzpcXHRpd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMobWxkLCBsaW5rX3N0YS1cXHUwMDNlc3RhLCBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE4NC1cXHRcXHRcXHRcXHQgICAgICAgYmFfZGF0YSwgcmVvcmRlcl9idWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xOTMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTk0OmVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE5NTppd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE5Ni1cXHRcXHRpbnQgcXVldWUsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0yMDAtXFx0c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MjAxOlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpidWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MjAyOlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTIwMy1cXHRzdHJ1Y3QgaXdsX21sZF9zdGEgKm1sZF9zdGEgPSBpd2xfbWxkX3N0YV9mcm9tX21hYzgwMjExKHN0YSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0zMjMtXFx0aWYgKCFhbXNkdSB8fCBsYXN0X3N1YmZyYW1lKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjMyNDpcXHRcXHRpd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMobWxkLCBzdGEsIG5hcGksIGJhaWRfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0zMjUtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGJ1ZmZlciwgbnNzbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0zMzAtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjMzMTpFWFBPUlRfU1lNQk9MX0lGX0lXTFdJRklfS1VOSVQoaXdsX21sZF9yZW9yZGVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0zMzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz00NjQ9c3RhdGljIHZvaWQgaXdsX21sZF9pbml0X3Jlb3JkZXJfYnVmZmVyKHN0cnVjdCBpd2xfbWxkICptbGQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00NjgtXFx0Zm9yIChpbnQgaSA9IDA7IGkgXFx1MDAzYyBtbGQtXFx1MDAzZXRyYW5zLVxcdTAwM2VpbmZvLm51bV9yeHFzOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0Njk6XFx0XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKnJlb3JkZXJfYnVmID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00NzAtXFx0XFx0XFx0XFx1MDAyNmRhdGEtXFx1MDAzZXJlb3JkZXJfYnVmW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ3MTpcXHRcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1Zl9lbnRyeSAqZW50cmllcyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDcyLVxcdFxcdFxcdFxcdTAwMjZkYXRhLVxcdTAwM2VlbnRyaWVzW2kgKiBkYXRhLVxcdTAwM2VlbnRyaWVzX3Blcl9xdWV1ZV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz00ODI9c3RhdGljIHZvaWQgaXdsX21sZF9mcmVlX3Jlb3JkZXJfYnVmZmVyKHN0cnVjdCBpd2xfbWxkICptbGQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTItXFx0Zm9yIChpbnQgaSA9IDA7IGkgXFx1MDAzYyBtbGQtXFx1MDAzZXRyYW5zLVxcdTAwM2VpbmZvLm51bV9yeHFzOyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0OTM6XFx0XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKnJlb3JkZXJfYnVmID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTQtXFx0XFx0XFx0XFx1MDAyNmRhdGEtXFx1MDAzZXJlb3JkZXJfYnVmW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ5NTpcXHRcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1Zl9lbnRyeSAqZW50cmllcyA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDk2LVxcdFxcdFxcdFxcdTAwMjZkYXRhLVxcdTAwM2VlbnRyaWVzW2kgKiBkYXRhLVxcdTAwM2VlbnRyaWVzX3Blcl9xdWV1ZV07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xMS0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxMjogKiBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAtIHBlciByYS90aWQvcXVldWUgcmVvcmRlciBidWZmZXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xMy0gKiBAaGVhZF9zbjogcmVvcmRlciB3aW5kb3cgaGVhZCBzZXF1ZW5jZSBudW1iZXJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTE3LSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjE4OnN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xOS1cXHR1MTYgaGVhZF9zbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTI1LS8qKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjI2OiAqIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5IC0gcmVvcmRlciBidWZmZXIgZW50cnkgcGVyLXF1ZXVlL3Blci1zZXFub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTI3LSAqIEBmcmFtZXM6IGxpc3Qgb2Ygc2ticyBzdG9yZWQuIGEgbGlzdCBpcyBuZWNlc3NhcnkgYmVjYXVzZSBpbiBhbiBBLU1TRFUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0zMC0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDozMTpzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1Zl9lbnRyeSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMzItXFx0c3RydWN0IHNrX2J1ZmZfaGVhZCBmcmFtZXM7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaD02Mz1zdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtNzQtXFx0c3RydWN0IGl3bF9tbGQgKm1sZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo3NTpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciByZW9yZGVyX2J1ZltJV0xfTUFYX1JYX0hXX1FVRVVFU107XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6NzY6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgZW50cmllc1tdIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtNzctfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oPTg0PXN0cnVjdCBpd2xfbWxkX2RlbGJhX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtODgtLyoqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6ODk6ICogZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IC0gUG9zc2libGUgcmV0dXJuIHZhbHVlcyBmb3IgaXdsX21sZF9yZW9yZGVyKClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC05MC0gKiBpbmRpY2F0aW5nIGhvdyB0aGUgY2FsbGVyIHNob3VsZCBoYW5kbGUgdGhlIHNrYiBiYXNlZCBvbiB0aGUgcmVzdWx0Llxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtOTUtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6OTY6ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC05Ny1cXHRJV0xfTUxEX1BBU1NfU0tCLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg9MTA0PWludCBpd2xfbWxkX2FtcGR1X3J4X3N0b3Aoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTEwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxMDc6ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTA4Oml3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTA5LVxcdFxcdGludCBxdWV1ZSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmM9MjAyMD12b2lkIGl3bF9tbGRfcnhfbXBkdShzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTIwMzMtXFx0dTMyIG1wZHVfbGVuO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmM6MjAzNDpcXHRlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgcmVvcmRlcl9yZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy0yMDM1LVxcdHN0cnVjdCBpZWVlODAyMTFfcnhfc3RhdHVzICpyeF9zdGF0dXM7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTIxNDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYzoyMTQzOlxcdHJlb3JkZXJfcmVzID0gaXdsX21sZF9yZW9yZGVyKG1sZCwgbmFwaSwgcXVldWUsIHN0YSwgc2tiLCBtcGR1X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjE0NC1cXHRzd2l0Y2ggKHJlb3JkZXJfcmVzKSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz0yMT1zdGF0aWMgY29uc3Qgc3RydWN0IHJlb3JkZXJfYnVmZmVyX2Nhc2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTUtXFx0c3RydWN0IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1NjpcXHRcXHRlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgcmVvcmRlcl9yZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTctXFx0XFx0dTE2IGhlYWRfc247XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz01MDI9c3RhdGljIHN0cnVjdCBza19idWZmICphbGxvY19hbmRfc2V0dXBfc2tiKHUxNiBmYywgdTE2IHNlcV9jdHJsLCB1OCB0aWQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTMwOnN0YXRpYyBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTMxLXNldHVwX3Jlb3JkZXJfYnVmZmVyKHN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSAqYmFpZF9kYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTM1LVxcdFxcdChjb25zdCB2b2lkICopKHRlc3QtXFx1MDAzZXBhcmFtX3ZhbHVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MzY6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKmJ1ZmZlciA9IGJhaWRfZGF0YS1cXHUwMDNlcmVvcmRlcl9idWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTM3OlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID0gYmFpZF9kYXRhLVxcdTAwM2VlbnRyaWVzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUzOC1cXHRzdHJ1Y3Qgc2tfYnVmZiAqZmFrZV9za2I7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTY4OnN0YXRpYyBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqc2V0dXBfYmFfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU2OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NzQtXFx0c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGEgPSBOVUxMO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjU3NTpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU3Ni1cXHR1MzIgcmVvcmRlcl9idWZfc2l6ZSA9IEJBX1dJTkRPV19TSVpFICogc2l6ZW9mKGJhaWRfZGF0YS1cXHUwMDNlZW50cmllc1swXSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYz02MDE9c3RhdGljIHZvaWQgdGVzdF9yZW9yZGVyX2J1ZmZlcihzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MDktXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2MTA6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2MTE6XFx0ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IHJlb3JkZXJfcmVzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYxMi1cXHR1MTYgc2tiX3JlbGVhc2Vfb3JkZXJfY291bnQgPSBwYXJhbS1cXHUwMDNlZXhwZWN0ZWQuc2tiX3JlbGVhc2Vfb3JkZXJfY291bnQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MzItXFx0cmN1X3JlYWRfbG9jaygpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYzMzpcXHRyZW9yZGVyX3JlcyA9IGl3bF9tbGRfcmVvcmRlcihtbGQsIE5VTEwsIFFVRVVFLCBzdGEsIHNrYiwgbXBkdV9kZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MzQtXFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIxOjI0LjU2NzQ5NDY1N1oiLCJTZXEiOjY5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDg2MDQ0ODEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBEYXRhIFJlb3JkZXJpbmcgaW4gdGhlIEludGVsIFdpcmVsZXNzIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhlIEludGVsIHdpcmVsZXNzIGRyaXZlcidzIGRhdGEgcmVvcmRlcmluZyBsb2dpYy4gU3BlY2lmaWNhbGx5LCBJJ20gdHJhY2luZyB3aGVyZSBgaXdsX21sZF9yZW9yZGVyYCBnZXRzIGNhbGxlZC4gUmlnaHQsIGl0IGxvb2tzIGxpa2UgaXQncyBpbnZva2VkIGZyb20gYGl3bF9tbGRfcnhfbXBkdWAsIHdoaWNoIG1ha2VzIHNlbnNlOyByZW9yZGVyaW5nIGxpa2VseSBoYXBwZW5zIGFzIHBhcnQgb2YgcHJvY2Vzc2luZyByZWNlaXZlZCBNUERVcyAoTXVsdGktUHJvdG9jb2wgRGF0YSBVbml0cykuIE5vdywgSSdtIGN1cmlvdXMgYWJvdXQgdGhlIHNwZWNpZmljIGludGVyYWN0aW9uIHdpdGggdGhlIFRyYWZmaWMgTG9hZCBDb250cm9sIGFuZCB0aGUgYXNzb2NpYXRlZCBub3RpZmljYXRpb24gc3lzdGVtLiBMZXQgbWUgcXVpY2tseSBleGFtaW5lIGBpd2xfbXZtX3RsY191cGRhdGVfbm90aWZgIHRvIHVuZGVyc3RhbmQgaG93IHRoYXQgdGllcyBpbi4gSXQgd2lsbCBwcm92aWRlIG1vcmUgY29udGV4dCBvbiB0aGUgZGF0YSBmbG93IGFuZCBob3cgdGhlIGRyaXZlciBtYW5hZ2VzIGRhdGEgZmxvdyBjb250cm9sIGFuZCByZW9yZGVyaW5nIGJhc2VkIG9uIHRyYWZmaWMgbG9hZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY2MTQsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMToyNy42NTM1NDM1NzdaIiwiU2VxIjo3MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzMDg5NzczNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXdsX212bV90bGNfdXBkYXRlX25vdGlmXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jPTMxNz1zdGF0aWMgY29uc3Qgc3RydWN0IGl3bF9yeF9oYW5kbGVycyBpd2xfbXZtX3J4X2hhbmRsZXJzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zMjMtXFx0UlhfSEFORExFUl9HUlAoREFUQV9QQVRIX0dST1VQLCBUTENfTU5HX1VQREFURV9OT1RJRixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYzozMjQ6XFx0XFx0ICAgICAgIGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZiwgUlhfSEFORExFUl9TWU5DLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTMyNS1cXHRcXHQgICAgICAgc3RydWN0IGl3bF90bGNfdXBkYXRlX25vdGlmKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmM9MzY2PXN0YXRpYyB2b2lkIHJzX2Z3X3NldF9zdXBwX3JhdGVzKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jLTQxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9ycy1mdy5jOjQxNDp2b2lkIGl3bF9tdm1fdGxjX3VwZGF0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLWZ3LmMtNDE1LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMuaD00NDc9aW50IHJzX2Z3X3R4X3Byb3RlY3Rpb24oc3RydWN0IGl3bF9tdm0gKm12bSwgc3RydWN0IGl3bF9tdm1fc3RhICptdm1zdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMuaC00NDgtXFx0XFx0XFx0Ym9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3JzLmg6NDQ5OnZvaWQgaXdsX212bV90bGNfdXBkYXRlX25vdGlmKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnMuaC00NTAtXFx0XFx0XFx0ICAgICAgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMToyOS45NjI1MjgyMzVaIiwiU2VxIjo3MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE4MTUzMzM5ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqUlggSGFuZGxlciBBbmFseXNpcyoqXG5cbk9rYXksIHNvIHdlJ3JlIGxvb2tpbmcgYXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIHJlY2VpdmUgcGF0aCDigJMgaXQncyBhbiBSWCBoYW5kbGVyLCBwcmVzdW1hYmx5IHdpdGhpbiB0aGUgSW50ZWwgV2lyZWxlc3MgTVZNIGRyaXZlci4gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIHplcm8gaW4gb24gYGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZmAuIFRoYXQgZnVuY3Rpb24gbmFtZSBoYXMgYSBmYW1pbGlhciByaW5nOyBpdCBzdWdnZXN0cyB0aGlzIGhhbmRsZXIgbGlrZWx5IGRlYWxzIHdpdGggd2luZG93aW5nIG9yIHN0YXR1cyBub3RpZmljYXRpb25zIHJlbGF0ZWQgdG8gdGhlIFJYIHdpbmRvdy4gV2Ugc2hvdWxkIGJlIGFibGUgdG8gcXVpY2tseSBkZXRlcm1pbmUgaG93IGl0IGZpdHMgaW50byB0aGUgb3ZlcmFsbCByZWNlaXZlIHByb2Nlc3MsIGxpa2VseSBoYW5kbGluZyBhc3BlY3RzIG9mIHNlcXVlbmNlIG51bWJlciB0cmFja2luZywgcmVvcmRlcmluZywgb3IgcG9zc2libHkgQUNLL05BQ0sgcHJvY2Vzc2luZywgYmFzZWQgb24gdGhlIGNvbnRleHQgb2YgdGhlIFJYIHdpbmRvdyBpdHNlbGYuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NDE0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjE6NDEuNzc3ODY2MTM0WiIsIlNlcSI6NzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODQzMTM4NTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaD0xOTMzPXZvaWQgaXdsX212bV9zdGFfcG1fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSwgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oOjE5MzQ6dm9pZCBpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaC0xOTM1LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgaXdsX3J4X2NtZF9idWZmZXIgKnJ4Yik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYz0zMTc9c3RhdGljIGNvbnN0IHN0cnVjdCBpd2xfcnhfaGFuZGxlcnMgaXdsX212bV9yeF9oYW5kbGVyc1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmMtMzQ4LVxcdFJYX0hBTkRMRVIoQkFfV0lORE9XX1NUQVRVU19OT1RJRklDQVRJT05fSUQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM6MzQ5OlxcdFxcdCAgIGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZiwgUlhfSEFORExFUl9TWU5DLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTM1MC1cXHRcXHQgICBzdHJ1Y3QgaXdsX2JhX3dpbmRvd19zdGF0dXNfbm90aWYpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguYz0xMTkxPXZvaWQgaXdsX212bV9yeF9zdGF0aXN0aWNzKHN0cnVjdCBpd2xfbXZtICptdm0sIHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vcnguYy0xMTk1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3J4LmM6MTE5Njp2b2lkIGl3bF9tdm1fd2luZG93X3N0YXR1c19ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3J4LmMtMTE5Ny1cXHRcXHRcXHRcXHQgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIxOjQ0LjYyMTAwOTQ4M1oiLCJTZXEiOjczLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDE4NjAwMTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipSWCBIYW5kbGVyIEFuYWx5c2lzKipcblxuUmlnaHQsIHRoaXMgbG9va3MgbGlrZSB3ZSdyZSBkaXZpbmcgaW50byBhbiBSWCBoYW5kbGVyLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gcGlucG9pbnQgd2hlcmUgdGhpcyBmaXRzIHdpdGhpbiB0aGUgbGFyZ2VyIHBpY3R1cmUuIEknbSBnb2luZyB0byBqdW1wIHN0cmFpZ2h0IHRvIGV4YW1pbmluZyBgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWZgLiBUaGF0J3MgdGhlIGxpa2VseSBzcG90IGZvciBoYW5kbGluZyBzY2FuIGNvbXBsZXRpb24gbm90aWZpY2F0aW9ucywgYW5kIEkgc3VzcGVjdCBpdCdzIGNyaXRpY2FsIHRvIHVuZGVyc3RhbmRpbmcgdGhlIFJYIHBhdGgncyBpbnRlcmFjdGlvbiB3aXRoIHRoZSBzY2FubmluZyBwcm9jZXNzIGluIHRoaXMgTVZNIChNZXNoIFZpcnR1YWxpemF0aW9uKSBpbXBsZW1lbnRhdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBSWCBwaXBlbGluZSBhY2tub3dsZWRnZXMgYSBjb21wbGV0ZWQgc2NhbiBhbmQgd2hhdCBhY3Rpb25zIGFyZSB0cmlnZ2VyZWQgYXMgYSByZXN1bHQuIFRoaXMgY291bGQgaW52b2x2ZSBhbnl0aGluZyBmcm9tIGNoYW5naW5nIGNoYW5uZWwgc2V0dGluZ3MgdG8gdXBkYXRpbmcgdGhlIE1BQydzIHN0YXRlLiBMZXQncyBzZWUgaG93IHRoZSBub3RpZmljYXRpb24gaXMgcHJvY2Vzc2VkIHdpdGhpbiB0aGUgY29udGV4dCBvZiB0aGUgVU1BQyBSWCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODEyOCwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIxOjQ3LjYzOTYxMTQxOFoiLCJTZXEiOjc0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM3OTUzNjM4MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tdm0uaD0yMDY3PWludCBpd2xfbXZtX2NvbmZpZ19zY2FuKHN0cnVjdCBpd2xfbXZtICptdm0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oOjIwNjg6dm9pZCBpd2xfbXZtX3J4X3VtYWNfc2Nhbl9jb21wbGV0ZV9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oLTIwNjktXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpd2xfcnhfY21kX2J1ZmZlciAqcnhiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jPTMxNz1zdGF0aWMgY29uc3Qgc3RydWN0IGl3bF9yeF9oYW5kbGVycyBpd2xfbXZtX3J4X2hhbmRsZXJzW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zNzEtXFx0XFx0XFx0ICAgUlhfSEFORExFUl9TWU5DKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYzozNzI6XFx0UlhfSEFORExFUihTQ0FOX0NPTVBMRVRFX1VNQUMsIGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL29wcy5jLTM3My1cXHRcXHQgICBSWF9IQU5ETEVSX0FTWU5DX0xPQ0tFRCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYz0zMDc3PWludCBpd2xfbXZtX3NjaGVkX3NjYW5fc3RhcnQoc3RydWN0IGl3bF9tdm0gKm12bSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYy0zMjA5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL3NjYW4uYzozMjEwOnZvaWQgaXdsX212bV9yeF91bWFjX3NjYW5fY29tcGxldGVfbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9zY2FuLmMtMzIxMS1cXHRcXHRcXHRcXHRcXHQgc3RydWN0IGl3bF9yeF9jbWRfYnVmZmVyICpyeGIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDE3OjIxOjUwLjAxOTE1MjdaIiwiU2VxIjo3NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjY0NTAxNDg0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqUlggSGFuZGxlciBBbmFseXNpcyoqXG5cblJpZ2h0LCB0aGlzIGxvb2tzIGxpa2Ugd2UncmUgZGl2aW5nIGludG8gYW4gUlggaGFuZGxlciwgd2hpY2ggaXMgZ29vZC4gTXkgZmlyc3QgaW5zdGluY3QsIGNvbnNpZGVyaW5nIHRoZSBjb250ZXh0LCBpcyB0byB6ZXJvIGluIG9uIGhvdyBiZWFjb24gbm90aWZpY2F0aW9ucyBhcmUgcHJvY2Vzc2VkLiBTcGVjaWZpY2FsbHksIEkgd2FudCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYCBmdW5jdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgZXhhY3RseSBob3cgdGhlIGRyaXZlciBoYW5kbGVzIHRob3NlIGJlYWNvbiBub3RpZmljYXRpb25zLCBwYXJ0aWN1bGFybHkgaW4gcmVsYXRpb24gdG8gdGhpcyBpbmNvbWluZyBkYXRhIHN0cmVhbS4gTGV0J3Mgc2VlIGhvdyB0aGF0IHJvdXRpbmUgaXMgaW1wbGVtZW50ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4ODU4LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjE6NTIuNjY0MTcwODIzWiIsIlNlcSI6NzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjYwODc3NzgxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIml3bF9tdm1fcnhfYmVhY29uX25vdGlmXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL21hYy1jdHh0LmM9MTQ1Mz1zdGF0aWMgdm9pZCBpd2xfbXZtX2NzYV9jb3VudF9kb3duKHN0cnVjdCBpd2xfbXZtICptdm0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jLTE0OTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYzoxNDkxOnZvaWQgaXdsX212bV9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9tdm0gKm12bSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9tYWMtY3R4dC5jLTE0OTItXFx0XFx0XFx0ICAgICBzdHJ1Y3QgaXdsX3J4X2NtZF9idWZmZXIgKnJ4YilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oPTE5MjA9dm9pZCBpd2xfbXZtX21hY19jdHh0X3NldF90aW0oc3RydWN0IGl3bF9tdm0gKm12bSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oLTE5MjItXFx0XFx0XFx0ICAgICAgdTggKmJlYWNvbiwgdTMyIGZyYW1lX3NpemUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oOjE5MjM6dm9pZCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZihzdHJ1Y3QgaXdsX212bSAqbXZtLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbXZtL212bS5oLTE5MjQtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgaXdsX3J4X2NtZF9idWZmZXIgKnJ4Yik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYz0zMTc9c3RhdGljIGNvbnN0IHN0cnVjdCBpd2xfcnhfaGFuZGxlcnMgaXdsX212bV9yeF9oYW5kbGVyc1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmMtMzI5LVxcdFxcdCAgIHN0cnVjdCBpd2xfYnRfY29leF9wcm9mX29sZF9ub3RpZiksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vb3BzLmM6MzMwOlxcdFJYX0hBTkRMRVJfTk9fU0laRShCRUFDT05fTk9USUZJQ0FUSU9OLCBpd2xfbXZtX3J4X2JlYWNvbl9ub3RpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL212bS9vcHMuYy0zMzEtXFx0XFx0XFx0ICAgUlhfSEFORExFUl9BU1lOQ19MT0NLRUQpLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQxNzoyMTo1NC45MjUwNTMyMzVaIiwiU2VxIjo3NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzA3NDYxNjk3MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSWCBIYW5kbGVyIEZvY3VzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpdCdzIGNsZWFyIHdlJ3JlIGRlYWxpbmcgd2l0aCBhbiBSWCBoYW5kbGVyLiBNeSBpbml0aWFsIHRhcmdldCBsaXN0IG9mIGZ1bmN0aW9ucyBpczogYGl3bF9tdm1fcnhfYmVhY29uX25vdGlmYCwgYGl3bF9tdm1fdXBkYXRlX21jY2AsIGBpd2xfbXZtX3RsY191cGRhdGVfbm90aWZgLCBgaXdsX212bV93aW5kb3dfc3RhdHVzX25vdGlmYCwgYGl3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmYCwgYGl3bF9tbGRfcmVvcmRlcmAsIGBpd2xfbXZtX3J4X3Nlc3Npb25fcHJvdGVjdF9ub3RpZmAsIGFuZCBgaXdsX212bV93YWl0X2QzX25vdGlmYC4gVGhhdCBzaG91bGQgY292ZXIgdGhlIGNvcmUgbm90aWZpY2F0aW9uIGhhbmRsaW5nLlxuXG5MZXQncyBkaXZlIGludG8gYGl3bF9tdm1fd2FpdF9kM19ub3RpZmAuIEl0IGxvb2tzIGxpa2UgaXQncyBhIGNhbGxiYWNrIHdpdGhpbiBgaXdsX2luaXRfbm90aWZpY2F0aW9uX3dhaXRgLCBzbyBpdCBzaG91bGQgYmUgcmVhY2hhYmxlIHRocm91Z2ggdGhlIG5vdGlmaWNhdGlvbiBtZWNoYW5pc20uIFllcCwgc2VlbXMgY29ycmVjdCwgaXQncyB0cmlnZ2VyZWQgdXBvbiByZWNlaXZpbmcgYSBub3RpZmljYXRpb24uIE5vdywgbGV0J3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgZG93bnN0cmVhbSBmdW5jdGlvbnMgZnJvbSBgaXdsX212bV93YWl0X2QzX25vdGlmYC4gQWgsIGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCBpcyBjYWxsZWQgZnJvbSB3aXRoaW4uIEknbGwgbmVlZCB0byBsb29rIGF0IGl0LCB0b28uIEFuZCBgaXdsX212bV9yZXBvcnRfd2FrZXVwX3JlYXNvbnNgIGlzIGNhbGxlZCBmcm9tIGBpd2xfbXZtX3F1ZXJ5X3dha2V1cF9yZWFzb25zYC5cblxuU28sIEknbSBnb2luZyB0byBpbmNsdWRlIGJvdGggYGl3bF9tdm1fd2FpdF9kM19ub3RpZmAgYW5kIGBpd2xfbXZtX3BhcnNlX3dvd2xhbl9pbmZvX25vdGlmYCBpbiBteSBsaXN0IG9mIGZvY3VzIHN5bWJvbHMuIEl0J3MgaW1wb3J0YW50IHRvIHRyYWNlIGhvdyBub3RpZmljYXRpb25zIHRyaWdnZXIgdGhlc2Ugc3BlY2lmaWMgZnVuY3Rpb25zLlxuXG5GaW5hbGx5LCBJJ2xsIHJldmlldyB0aGUgcmVsZXZhbnQgY29uZmlnczogYElXTFdJRklgLCBgSVdMTVZNYCwgYElXTE1MRGAsIGBJV0xXSUZJX0RFQlVHRlNgLCBhbmQgYFRIRVJNQUxgLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgZ29vZCBjb250ZXh0IGZvciB0aGUgc3lzdGVtLlxuXG5Ob3csIEknbGwgc2V0IHVwIHRoZSByZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTU4MCwiT3V0cHV0VG9rZW5zIjoyNzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMTc6MjI6MDEuOTk5Njc0MTY4WiIsIlNlcSI6NzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4OTE5NjUxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJV0xXSUZJXCIsXG4gICAgXCJJV0xNVk1cIixcbiAgICBcIklXTE1MRFwiLFxuICAgIFwiSVdMV0lGSV9ERUJVR0ZTXCIsXG4gICAgXCJUSEVSTUFMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaXdsX212bV9yeF9iZWFjb25fbm90aWZcIixcbiAgICBcIml3bF9tdm1fdXBkYXRlX21jY1wiLFxuICAgIFwiaXdsX212bV90bGNfdXBkYXRlX25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWZcIixcbiAgICBcIml3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmXCIsXG4gICAgXCJpd2xfbWxkX3Jlb3JkZXJcIixcbiAgICBcIml3bF9tdm1fcnhfc2Vzc2lvbl9wcm90ZWN0X25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3dhaXRfZDNfbm90aWZcIixcbiAgICBcIml3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja3MgYW5kIHBheWxvYWQgbGVuZ3RoIHZhbGlkYXRpb25zIGZvciBmaXJtd2FyZSBub3RpZmljYXRpb25zIGluIHRoZSBpd2x3aWZpIGRyaXZlciAoTVZNIGFuZCBNTEQgY29tcG9uZW50cykuIFRoZXNlIGFyZSBjcml0aWNhbCBmb3IgcHJldmVudGluZyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFuZCBtZW1vcnkgY29ycnVwdGlvbiB3aGVuIHByb2Nlc3NpbmcgbWFsZm9ybWVkIG9yIG1hbGljaW91cyBmaXJtd2FyZSByZXNwb25zZXMuIFRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgY2FuIGJlIGZ1enplZCB2aWEgZGVidWdmcyBpbmplY3Rpb24gKGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJV0xXSUZJXCIsXG4gICAgXCJJV0xNVk1cIixcbiAgICBcIklXTE1MRFwiLFxuICAgIFwiSVdMV0lGSV9ERUJVR0ZTXCIsXG4gICAgXCJUSEVSTUFMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaXdsX212bV9yeF9iZWFjb25fbm90aWZcIixcbiAgICBcIml3bF9tdm1fdXBkYXRlX21jY1wiLFxuICAgIFwiaXdsX212bV90bGNfdXBkYXRlX25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3dpbmRvd19zdGF0dXNfbm90aWZcIixcbiAgICBcIml3bF9tdm1fcnhfdW1hY19zY2FuX2NvbXBsZXRlX25vdGlmXCIsXG4gICAgXCJpd2xfbWxkX3Jlb3JkZXJcIixcbiAgICBcIml3bF9tdm1fcnhfc2Vzc2lvbl9wcm90ZWN0X25vdGlmXCIsXG4gICAgXCJpd2xfbXZtX3dhaXRfZDNfbm90aWZcIixcbiAgICBcIml3bF9tdm1fcGFyc2Vfd293bGFuX2luZm9fbm90aWZcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGJvdW5kcyBjaGVja3MgYW5kIHBheWxvYWQgbGVuZ3RoIHZhbGlkYXRpb25zIGZvciBmaXJtd2FyZSBub3RpZmljYXRpb25zIGluIHRoZSBpd2x3aWZpIGRyaXZlciAoTVZNIGFuZCBNTEQgY29tcG9uZW50cykuIFRoZXNlIGFyZSBjcml0aWNhbCBmb3IgcHJldmVudGluZyBvdXQtb2YtYm91bmRzIGFjY2Vzc2VzIGFuZCBtZW1vcnkgY29ycnVwdGlvbiB3aGVuIHByb2Nlc3NpbmcgbWFsZm9ybWVkIG9yIG1hbGljaW91cyBmaXJtd2FyZSByZXNwb25zZXMuIFRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgY2FuIGJlIGZ1enplZCB2aWEgZGVidWdmcyBpbmplY3Rpb24gKGl3bF9kYmdmc19pbmplY3RfcGFja2V0X3dyaXRlKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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:nil,}