Name: series-workflow7dh24 Phase: Succeeded StartedAt: 2026-07-27 17:01:38 +0000 UTC FinishedAt: 2026-07-27 20:36:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[0] Phase: Succeeded StartedAt: 2026-07-27 17:01:38 +0000 UTC FinishedAt: 2026-07-27 17:23:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[0].run-triage Phase: Succeeded StartedAt: 2026-07-27 17:01:38 +0000 UTC FinishedAt: 2026-07-27 17:23:09 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WLAN", "WLAN_VENDOR_REALTEK", "MAC80211", "USB", "RTW88", "RTW88_8822BU", "RTW88_8821CU", "RTW88_8723DU", "RTW88_8821AU", "RTW88_8812AU", "RTW88_8814AU" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WLAN", "WLAN_VENDOR_REALTEK", "MAC80211", "USB", "RTW88", "RTW88_8822BU", "RTW88_8821CU", "RTW88_8723DU", "RTW88_8821AU", "RTW88_8812AU", "RTW88_8814AU" ], "series_id": "46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__rtw_tx_work" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dMQU4mIzM0OywKICAgICYjMzQ7V0xBTl9WRU5ET1JfUkVBTFRFSyYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtVU0ImIzM0OywKICAgICYjMzQ7UlRXODgmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMkJVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjFDVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84NzIzRFUmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMUFVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MTJBVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODE0QVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX3J0d190eF93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gYHJ0d190eHFfcHVzaF9za2JgIGJ5IGZyZWVpbmcgdGhlIGBza2JgIHdoZW4gYHJ0d19oY2lfdHhfd3JpdGVgIGZhaWxzLiBUaGlzIGZ1bmN0aW9uIGlzIHBhcnQgb2YgdGhlIFRYIHBhdGggaW4gdGhlIFJlYWx0ZWsgcnR3ODggd2lyZWxlc3MgZHJpdmVyLCByZWFjaGFibGUgdmlhIGBfX3J0d190eF93b3JrYCB3aGljaCBpcyB0cmlnZ2VyZWQgYnkgbWFjODAyMTEgVFggcXVldWUgd2FrZXVwcyBvciB3b3JrcXVldWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGUuZy4sIGR1bW15X2hjZCkgYnkgZW5hYmxpbmcgdGhlIGNvcnJlc3BvbmRpbmcgVVNCIGRyaXZlciBjb25maWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNmZmYmNiOWUxZjY1OWQyOTQ5MmM1ZTEwZDIxZjVlMzY4ZDE2ZmFiMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDE3OjIxOjI5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguY1xuaW5kZXggOWQ3NDdhMDYwYjk4NGMuLjg3ODZiYmI0MjFjMmI5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcbkBAIC02MTksNiAmIzQzOzYxOSw3IEBAIHN0YXRpYyBpbnQgcnR3X3R4cV9wdXNoX3NrYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBza2IpO1xuIFx0aWYgKHJldCkge1xuIFx0XHRydHdfZXJyKHJ0d2RldiwgXCYjMzQ7ZmFpbGVkIHRvIHdyaXRlIFRYIHNrYiB0byBIQ0lcXG5cJiMzNDspO1xuJiM0MztcdFx0aWVlZTgwMjExX2ZyZWVfdHhza2IocnR3ZGV2LVx1MDAzZWh3LCBza2IpO1xuIFx0XHRyZXR1cm4gcmV0O1xuIFx0fVxuIFx0cmV0dXJuIDA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dMQU4mIzM0OywKICAgICYjMzQ7V0xBTl9WRU5ET1JfUkVBTFRFSyYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtVU0ImIzM0OywKICAgICYjMzQ7UlRXODgmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMkJVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjFDVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84NzIzRFUmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMUFVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MTJBVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODE0QVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX3J0d190eF93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gYHJ0d190eHFfcHVzaF9za2JgIGJ5IGZyZWVpbmcgdGhlIGBza2JgIHdoZW4gYHJ0d19oY2lfdHhfd3JpdGVgIGZhaWxzLiBUaGlzIGZ1bmN0aW9uIGlzIHBhcnQgb2YgdGhlIFRYIHBhdGggaW4gdGhlIFJlYWx0ZWsgcnR3ODggd2lyZWxlc3MgZHJpdmVyLCByZWFjaGFibGUgdmlhIGBfX3J0d190eF93b3JrYCB3aGljaCBpcyB0cmlnZ2VyZWQgYnkgbWFjODAyMTEgVFggcXVldWUgd2FrZXVwcyBvciB3b3JrcXVldWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGUuZy4sIGR1bW15X2hjZCkgYnkgZW5hYmxpbmcgdGhlIGNvcnJlc3BvbmRpbmcgVVNCIGRyaXZlciBjb25maWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmZmYmNiOWUxZjY1OWQyOTQ5MmM1ZTEwZDIxZjVlMzY4ZDE2ZmFiMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDI3IDE3OjIxOjI5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jCmluZGV4IDlkNzQ3YTA2MGI5ODRjLi44Nzg2YmJiNDIxYzJiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYwpAQCAtNjE5LDYgJiM0Mzs2MTksNyBAQCBzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwKIAlyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgJmFtcDtwa3RfaW5mbywgc2tiKTsKIAlpZiAocmV0KSB7CiAJCXJ0d19lcnIocnR3ZGV2LCAmIzM0O2ZhaWxlZCB0byB3cml0ZSBUWCBza2IgdG8gSENJXG4mIzM0Oyk7CiYjNDM7CQlpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtJmd0O2h3LCBza2IpOwogCQlyZXR1cm4gcmV0OwogCX0KIAlyZXR1cm4gMDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5OQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDIxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jYC4gVGhlIHBhdGNoIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogaXQmIzM5O3MgYWRkaW5nIGBpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtJmd0O2h3LCBza2IpO2AgaW4gYHJ0d190eHFfcHVzaF9za2JgIHdoZW4gYHJ0d19oY2lfdHhfd3JpdGVgIGZhaWxzLiBBaCwgYSBtZW1vcnkgbGVhayBmaXghIE1ha2VzIHNlbnNlLiBUaGlzIGlzIGltcG9ydGFudCwgYXMgbWVtb3J5IGxlYWtzIGFyZSBhIHBlcnNpc3RlbnQgaXNzdWUuIFRoaXMgaXMgY2xlYXJseSBhIFJlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyIGRyaXZlciwgYHJ0dzg4YC4gTm93LCB0aGUgY3J1Y2lhbCBxdWVzdGlvbiBpcyBob3cgSSBjYW4gdGVzdCB0aGlzIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudC4gSSBuZWVkIHRvIGJlIGFibGUgdG8gcmVwcm9kdWNlIHRoZSBmYWlsdXJlIHNjZW5hcmlvLgoKR2l2ZW4gbXkgd29yayBvbiB2aXJ0dWFsaXphdGlvbiwgSSB3b25kZXIgaWYgdGhpcyBpcyBldmVuIHJlYWNoYWJsZSBpbiB0aG9zZSBlbnZpcm9ubWVudHMuIGBydHc4OGAgaGFzIGJvdGggUENJIGFuZCBVU0IgdmVyc2lvbnMuIEludGVyZXN0aW5nLiBDYW4gSSBwb3RlbnRpYWxseSBlbXVsYXRlIHRoZSBgcnR3ODhgIGRyaXZlciwgcGFydGljdWxhcmx5IHRvIHRlc3QgdGhpcz8gTGV0JiMzOTtzIHJ1bGUgb3V0IGBtYWM4MDIxMV9od3NpbWAuIE5vLCB0aGF0JiMzOTtzIGNvbXBsZXRlbHkgZGlmZmVyZW50OyBhIHNpbXVsYXRpb24gZHJpdmVyLiBJJiMzOTttIHRoaW5raW5nIHRoZSBgcnR3ODhgIFVTQiBkcml2ZXIgY291bGQgYmUgYSB2aWFibGUgZW11bGF0aW9uIHRhcmdldCB0aHJvdWdoIHNvbWV0aGluZyBsaWtlIGEgVVNCIGdhZGdldCB1c2luZyBgZHVtbXlfaGNkYC4KClJpZ2h0LCB0aGUgbmV4dCBzdGVwIGlzIHRvIGNvbmZpcm0gdGhlIFVTQiBkcml2ZXImIzM5O3MgZXhpc3RlbmNlIHdpdGhpbiB0aGUgYHJ0dzg4YCBkcml2ZXIuIEdvdHRhIG1ha2Ugc3VyZSBteSBlbXVsYXRpb24gaWRlYSBldmVuIGhvbGRzIHdhdGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0d19oY2lfdHhfd3JpdGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oPTk9c3RydWN0IHJ0d19oY2lfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaDozNjpzdGF0aWMgaW5saW5lIGludCBydHdfaGNpX3R4X3dyaXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM3LVx0XHRcdFx0ICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTU1ND12b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjEtXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGNvbnRyb2wtXHUwMDNlc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU2MjpcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTYwOD1zdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE4LVx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCB0eHEtXHUwMDNlc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxOTpcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjAtXHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE3NgoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgcHJlc2VudGVkIGFzIGlmIGl0JiMzOTtzIG15IG93biBpbnRlcm5hbCBkaWFsb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgVVNCIERyaXZlciBMYW5kc2NhcGUgZm9yIGBydHc4OGAqKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcyBhbHdheXMsICYjMzQ7RG9lcyBgcnR3ODhgICpldmVuKiBoYXZlIGEgVVNCIGRyaXZlcj8mIzM0Oy4gV2UmIzM5O3JlIG5vdCBqdXN0IGFzc3VtaW5nIGEgZ2VuZXJpYyBidXMgaW1wbGVtZW50YXRpb24gaGVyZS4gV2UmIzM5O3JlIGFzc3VtaW5nIGRpcmVjdCBVU0IgY29ubmVjdGlvbiwgd2hpY2ggZHJhbWF0aWNhbGx5IGNoYW5nZXMgdGhlIGFyY2hpdGVjdHVyZSBhbmQgdGhlIHJlbGV2YW50IGNvbnNpZGVyYXRpb25zLiBJIG5lZWQgdG8gcXVpY2tseSBlc3RhYmxpc2ggaWYgdGhhdCBVU0IgcGF0aCBpcyBzdXBwb3J0ZWQgKmF0IGFsbCogd2l0aGluIHRoZSBleGlzdGluZyBgcnR3ODhgIGVjb3N5c3RlbS4gVGhpcyBpc24mIzM5O3QganVzdCBhIG1hdHRlciBvZiBjaGVja2luZyBhIGNvbmZpZyBmaWxlOyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlcmUmIzM5O3MgYW55IGRyaXZlciBjb2RlIGNvbXBpbGVkLCBhbnkgbW9kdWxlIGRlZmluaXRpb25zLCBvciBhbnkgcmVsZXZhbnQgaGFyZHdhcmUgaWRlbnRpZmllcnMgKFZJRC9QSUQpIHRoYXQgc3VnZ2VzdHMgYSBVU0IgcGF0aCBpcyBldmVuICpjb250ZW1wbGF0ZWQqIGJ5IHRoZSBkZXZlbG9wZXJzLiBUaGUgYWltIGlzIHRvIGVzdGFibGlzaCBhIGtub3duIGJhc2VsaW5lOyBmcm9tIGhlcmUsIEkgY2FuIGRldmVsb3AgYSBwbGFuIG9mIGFjdGlvbi4gVGhlIG5leHQgbG9naWNhbCBxdWVzdGlvbiBkZXBlbmRzIGVudGlyZWx5IG9uIHRoaXMgaW5pdGlhbCBhbnN3ZXIuIElmIGl0JiMzOTtzIHN1cHBvcnRlZCwgdGhlIHF1ZXN0aW9ucyBhYm91dCB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscyBjb21lIG5leHQuIElmIGl0JiMzOTtzIG5vdCwgdGhlbiB0aGUgcHJvamVjdCBiZWNvbWVzIHZhc3RseSBkaWZmZXJlbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDtiZi5jJiMzNDssCiAgICAmIzM0O2JmLmgmIzM0OywKICAgICYjMzQ7Y29leC5jJiMzNDssCiAgICAmIzM0O2NvZXguaCYjMzQ7LAogICAgJiMzNDtkZWJ1Zy5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZWZ1c2UuYyYjMzQ7LAogICAgJiMzNDtlZnVzZS5oJiMzNDssCiAgICAmIzM0O2Z3LmMmIzM0OywKICAgICYjMzQ7ZncuaCYjMzQ7LAogICAgJiMzNDtoY2kuaCYjMzQ7LAogICAgJiMzNDtsZWQuYyYjMzQ7LAogICAgJiMzNDtsZWQuaCYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttYWM4MDIxMS5jJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttYWluLmgmIzM0OywKICAgICYjMzQ7cGNpLmMmIzM0OywKICAgICYjMzQ7cGNpLmgmIzM0OywKICAgICYjMzQ7cGh5LmMmIzM0OywKICAgICYjMzQ7cGh5LmgmIzM0OywKICAgICYjMzQ7cHMuYyYjMzQ7LAogICAgJiMzNDtwcy5oJiMzNDssCiAgICAmIzM0O3JlZy5oJiMzNDssCiAgICAmIzM0O3JlZ2QuYyYjMzQ7LAogICAgJiMzNDtyZWdkLmgmIzM0OywKICAgICYjMzQ7cnR3ODcwM2IuYyYjMzQ7LAogICAgJiMzNDtydHc4NzAzYi5oJiMzNDssCiAgICAmIzM0O3J0dzg3MDNiX3RhYmxlcy5jJiMzNDssCiAgICAmIzM0O3J0dzg3MDNiX3RhYmxlcy5oJiMzNDssCiAgICAmIzM0O3J0dzg3MjNjcy5jJiMzNDssCiAgICAmIzM0O3J0dzg3MjNkLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2QuaCYjMzQ7LAogICAgJiMzNDtydHc4NzIzZF90YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg3MjNkX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODcyM2RlLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2RzLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2R1LmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM3guYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzeC5oJiMzNDssCiAgICAmIzM0O3J0dzg4MTJhLmMmIzM0OywKICAgICYjMzQ7cnR3ODgxMmEuaCYjMzQ7LAogICAgJiMzNDtydHc4ODEyYV90YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MTJhX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODgxMmF1LmMmIzM0OywKICAgICYjMzQ7cnR3ODgxNGEuYyYjMzQ7LAogICAgJiMzNDtydHc4ODE0YS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MTRhX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgxNGFfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4ODE0YWUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODE0YXUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxYS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFhLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMWFfdGFibGUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxYV90YWJsZS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjFhdS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFjLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWMuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIxY190YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFjX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMWNlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWNzLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWN1LmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmIuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYi5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjJiX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmJfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIyYmUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYnMuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYnUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYy5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMmNfdGFibGUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyY190YWJsZS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjcy5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjdS5jJiMzNDssCiAgICAmIzM0O3J0dzg4eHhhLmMmIzM0OywKICAgICYjMzQ7cnR3ODh4eGEuaCYjMzQ7LAogICAgJiMzNDtyeC5jJiMzNDssCiAgICAmIzM0O3J4LmgmIzM0OywKICAgICYjMzQ7c2FyLmMmIzM0OywKICAgICYjMzQ7c2FyLmgmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzZWMuYyYjMzQ7LAogICAgJiMzNDtzZWMuaCYjMzQ7LAogICAgJiMzNDt0eC5jJiMzNDssCiAgICAmIzM0O3R4LmgmIzM0OywKICAgICYjMzQ7dXNiLmMmIzM0OywKICAgICYjMzQ7dXNiLmgmIzM0OywKICAgICYjMzQ7dXRpbC5jJiMzNDssCiAgICAmIzM0O3V0aWwuaCYjMzQ7LAogICAgJiMzNDt3b3cuYyYjMzQ7LAogICAgJiMzNDt3b3cuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQzMAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIFJUTDg4MjJCVSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7dmUgaWRlbnRpZmllZCBzb21lIGludGVyZXN0aW5nIHRhcmdldHMgaGVyZS4gSSBzZWUgYHVzYi5jYCwgYW5kIGltcG9ydGFudGx5LCB0aGUgc3BlY2lmaWMgZHJpdmVyIGZpbGVzIGxpa2UgYHJ0dzg4MjJidS5jYCwgYHJ0dzg4MjFjdS5jYCwgYW5kIHNvIG9uLiBUaGlzIGNvbmZpcm1zIG15IGluaXRpYWwgc3VzcGljaW9uIOKAkyB0aGlzIGxvb2tzIHJpcGUgZm9yIGZ1enppbmcgdmlhIHZoY2kvZHVtbXlfaGNkLiBNeSBwcmltYXJ5IHRhcmdldCBmdW5jdGlvbiBhcHBlYXJzIHRvIGJlIGBydHdfdHhxX3B1c2hfc2tiYC4gTm93LCB0aGUgY3J1Y2lhbCBzdGVwOiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbCBmbG93IHRvIGBydHdfdHhxX3B1c2hfc2tiYC4gSSBuZWVkIHRvIHRyYWNrIGRvd24gYWxsIHRoZSBjYWxsZXJzIG9mIHRoYXQgZnVuY3Rpb24uIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIHJlYWwgdnVsbmVyYWJpbGl0aWVzIHdpbGwgbGlrZWx5IGxpZS4gTGV0JiMzOTtzIHNlZSB3aGF0IHRob3NlIGNhbGxlcnMgYXJlIGRvaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0d190eHFfcHVzaF9za2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTc2PXN0YXRpYyB2b2lkIHJ0d190eHFfY2hlY2tfYWdnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDg6c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA5LVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XHRcdHJldCA9IHJ0d190eHFfcHVzaF9za2IocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVx0XHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA0MQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBUcmFuc21pc3Npb24gUXVldWUqKgoKT2theSwgc28gYHJ0d190eHFfcHVzaGAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQmIzM5O3MgYmVpbmcgdXNlZCB0byBwdXNoIGRhdGEgb250byB0aGUgdHJhbnNtaXQgcXVldWUuIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBpdCBjYWxscyBgcnR3X3R4cV9wdXNoX3NrYmAsIHdoaWNoIG1ha2VzIHNlbnNlOyB0aGlzIGlzIGEgY29tbW9uIHBhdHRlcm4gZm9yIGRlYWxpbmcgd2l0aCBTS0JzLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSAqd2h5KiBhbmQgKmhvdyogb2YgdGhpcyBmdW5jdGlvbi4gVGhlcmVmb3JlLCB0aGUgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyB0byBhbmFseXplIGFsbCB0aGUgY2FsbGVycyBvZiBgcnR3X3R4cV9wdXNoYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBiZWluZyBpbnZva2VkIGZyb20uIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIHZpdGFsIGluc2lnaHRzIGludG8gdGhlIHB1cnBvc2UgYW5kIGJlaGF2aW9yIG9mIHRoaXMgY3JpdGljYWwgcGFydCBvZiB0aGUgZGF0YSB0cmFuc21pc3Npb24gcGF0aC4gSXQgaXMgbXkgYmVsaWVmIHRoYXQgYnkgZXhhbWluaW5nIHRoZSBjYWxsZ3JhcGggSSBjYW4gZGV0ZXJtaW5lIGlmIGFueSBwcm9ibGVtcyBleGlzdCB3aXRoIHRoZSBxdWV1ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3R4cV9wdXNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTU3Nj1zdGF0aWMgdm9pZCBydHdfdHhxX2NoZWNrX2FnZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjA4OnN0YXRpYyBpbnQgcnR3X3R4cV9wdXNoX3NrYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYwOS1cdFx0XHQgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYyODpzdGF0aWMgdm9pZCBydHdfdHhxX3B1c2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjktXHRcdFx0IHN0cnVjdCBydHdfdHhxICpydHd0eHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XHRcdHJldCA9IHJ0d190eHFfcHVzaF9za2IocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTY1ND12b2lkIF9fcnR3X3R4X3dvcmsoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY0LVx0XHRpZWVlODAyMTFfdHhxX2dldF9kZXB0aCh0eHEsIFx1MDAyNmZyYW1lX2NudCwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjY1Olx0XHRydHdfdHhxX3B1c2gocnR3ZGV2LCBydHd0eHEsIGZyYW1lX2NudCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODM2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkmIzM5O20gdGhlIG9uZSBoYXZpbmcgaXQsIGFuZCBhc3N1bWluZyBteSBleHBlcnRpc2UgaW4gdGhlIGZpZWxkOgoKKipEaWdnaW5nIGludG8gdGhlIFRyYW5zbWlzc2lvbiBRdWV1ZSoqCgpBbHJpZ2h0LCBJJiMzOTttIHRyYWNpbmcgZG93biB0aGlzIHRyYW5zbWlzc2lvbiBwcm9jZXNzLiBJIHNlZSB0aGF0IGBfX3J0d190eF93b3JrYCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBjYWxscyBgcnR3X3R4cV9wdXNoYC4gU28sIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuIExldCYjMzk7cyBzdGFydCB3aXRoIHRoZSBjYWxsZXJzIG9mIGBfX3J0d190eF93b3JrYC4gVW5kZXJzdGFuZGluZyB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgdHJhbnNtaXNzaW9uIHF1ZXVlIGlzIGJlaW5nIG1hbmlwdWxhdGVkLCBhbmQgcGVyaGFwcyBoZWxwIG1lIHRyYWNrIGRvd24gdGhlIHJvb3QgY2F1c2Ugb2Ygd2hhdGV2ZXIgaXNzdWUgSSYjMzk7bSBpbnZlc3RpZ2F0aW5nLiBUaGlzIGlzIHdoZXJlIEkgYmVnaW4gdG8gbG9vay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19ydHdfdHhfd29yayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ3LVx0aWYgKHR4cS1cdTAwM2VhYyA9PSBJRUVFODAyMTFfQUNfVk8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6NDg6XHRcdF9fcnR3X3R4X3dvcmsocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy00OS1cdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NjI4PXN0YXRpYyB2b2lkIHJ0d190eHFfcHVzaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjU0OnZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTY3NT12b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY3OTpcdF9fcnR3X3R4X3dvcmsocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaD05Mj12b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6OTM6dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk0LXZvaWQgcnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjMwCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTAzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVFggUXVldWUgV2FrZXVwIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gZGlnZ2luZyBpbnRvIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgYHJ0d19vcHNfd2FrZV90eF9xdWV1ZWAgYW5kIGBydHdfdHhfd29ya2AgYm90aCBjYWxsIGBfX3J0d190eF93b3JrYCwgd2hpY2ggbWVhbnMgaXQmIzM5O3MgZGVmaW5pdGVseSBhbiBhY3RpdmUgY29kZSBwYXRoLiBUaGUgZmFjdCB0aGF0IGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGlzIGEgbWFjODAyMTEgY2FsbGJhY2sgZnVydGhlciByZWluZm9yY2VzIHRoYXQgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgaXMgbGl2ZSBhbmQgYnJlYXRoaW5nLiBUaGlzIGlzIHByb21pc2luZyDigJMgaXQgY29uZmlybXMgdGhlIHBhdGNoIGFkZHJlc3NlcyBhbiBhY3RpdmVseSB1c2VkIHBhcnQgb2YgdGhlIHN5c3RlbS4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBzZWVtcyB0byBiZSBmb2N1c2VkIG9uIHByZXZlbnRpbmcgYSBtZW1vcnkgbGVhazsgc3BlY2lmaWNhbGx5LCBhbiBgc2tiYCBpcyBnZXR0aW5nIG9ycGhhbmVkIHdoZW4gYHJ0d19oY2lfdHhfd3JpdGVgIGZhaWxzLiBUaGF0IHNvdW5kcyBsaWtlIGEgY2xhc3NpYyBmYWlsdXJlIHNjZW5hcmlvLCBhbmQgZGVmaW5pdGVseSBzb21ldGhpbmcgd29ydGggcHV0dGluZyB1bmRlciBhIG1pY3Jvc2NvcGUuIEdpdmVuIHRoZSBwb3RlbnRpYWwgZm9yIGEgbWVtb3J5IGxlYWsgYW5kIGEgZmFpbHVyZSBwYXRoIGludm9sdmVkLCB0aGlzIHNjcmVhbXMgJiMzNDtmdXp6aW5nIHRhcmdldC4mIzM0OyBXZSBuZWVkIHRvIHNlZSBpZiB3ZSBjYW4gdHJpZ2dlciB0aGlzIGZhaWx1cmUgY29uZGl0aW9uIHJlbGlhYmx5LiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgZ29pbmcgdG8gYmUgZmlndXJpbmcgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFVuZGVyc3RhbmRpbmcgaG93IHRoaXMgVFggcXVldWUgaXMgc2V0IHVwIGlzIGNydWNpYWwgdG8gZXhwbG9pdCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMT1pZiBSVFc4OFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzOmNvbmZpZyBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzpjb25maWcgUlRXODhfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTgtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwOmNvbmZpZyBSVFc4OF9TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjEtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIzOmNvbmZpZyBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY6Y29uZmlnIFJUVzg4Xzg4MjJCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI5OmNvbmZpZyBSVFc4OF84ODIyQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMwLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzozMjpjb25maWcgUlRXODhfODcyM1hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzU6Y29uZmlnIFJUVzg4Xzg3MDNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzYtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzozOTpjb25maWcgUlRXODhfODcyM0RcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00MC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQzOmNvbmZpZyBSVFc4OF84ODIxQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQ0LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Njpjb25maWcgUlRXODhfODhYWEFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Ny1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDk6Y29uZmlnIFJUVzg4Xzg4MjFBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTAtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Mzpjb25maWcgUlRXODhfODgxMkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01NC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjU3OmNvbmZpZyBSVFc4OF84ODE0QVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU4LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo2MDpjb25maWcgUlRXODhfODgyMkJFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjcxOmNvbmZpZyBSVFc4OF84ODIyQlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy03Mi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjgyOmNvbmZpZyBSVFc4OF84ODIyQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04My1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6OTM6Y29uZmlnIFJUVzg4Xzg4MjJDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk0LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA0OmNvbmZpZyBSVFc4OF84ODIyQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMDUtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTE1OmNvbmZpZyBSVFc4OF84ODIyQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMjY6Y29uZmlnIFJUVzg4Xzg3MjNERVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0RFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzNzpjb25maWcgUlRXODhfODcyM0RTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTM4LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE0ODpjb25maWcgUlRXODhfODcyM0NTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzQ1MgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE2Mjpjb25maWcgUlRXODhfODcyM0RVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzRFUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTczOmNvbmZpZyBSVFc4OF84ODIxQ0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNzQtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxODQ6Y29uZmlnIFJUVzg4Xzg4MjFDU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4NS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUNTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxOTU6Y29uZmlnIFJUVzg4Xzg4MjFDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwNjpjb25maWcgUlRXODhfODgyMUFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjA3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxNzpjb25maWcgUlRXODhfODgxMkFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE4LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODEyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjI4OmNvbmZpZyBSVFc4OF84ODE0QUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MTRBRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzk6Y29uZmlnIFJUVzg4Xzg4MTRBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0MC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1MDpjb25maWcgUlRXODhfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNTEtXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODggZGVidWcgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjU4OmNvbmZpZyBSVFc4OF9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVx0Ym9vbCBcJiMzNDtSZWFsdGVrIHJ0dzg4IGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY2OmNvbmZpZyBSVFc4OF9MRURTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjY3LVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDE0MAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLZXJuZWwgQ29uZmlndXJhdGlvbiBDb25zaWRlcmF0aW9ucyoqCgpPa2F5LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVycyBhcmUgY29tcGlsZWQgaW50byB0aGlzIGtlcm5lbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuYWJsZSBhIGJyb2FkIHNldCB0byBjb3ZlciBhIGdvb2QgcmFuZ2Ugb2YgaGFyZHdhcmUg4oCTIHNwZWNpZmljYWxseSwgYFJUVzg4YCwgdGhlIGNvcmUgY29tcG9uZW50IGBSVFc4OF9DT1JFYCwgYFJUVzg4X1VTQmAsIGFuZCB0aGUgc3BlY2lmaWMgZGV2aWNlIGRyaXZlcnMgYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuCgpCdXQgd2FpdCBhIG1pbnV0ZSwgSSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZS4uLiB0aGlua2luZyBhYm91dCBpdCwgYFJUVzg4X1VTQmAgaXMgYWN0dWFsbHkgYXV0b21hdGljYWxseSBzZWxlY3RlZCBiYXNlZCBvbiB0aGUgc3BlY2lmaWMgVVNCIGRyaXZlciB0aGF0JiMzOTtzIGNob3Nlbi4gU28gSSBkb24mIzM5O3QgbmVlZCB0byB3b3JyeSBhYm91dCBtYW51YWxseSBlbmFibGluZyBpdC4KCkFscmlnaHQsIGxldCYjMzk7cyBub3cgZG91YmxlLWNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgYFJUVzg4Xzg4MjJCVWAgZHJpdmVyLiBJIG5lZWQgdG8gZW5zdXJlIGl0JiMzOTtzIGJ1aWx0IGNvcnJlY3RseSBhbmQgZG9lc24mIzM5O3QgaGF2ZSBhbnkgY29uZmxpY3RzIHdpdGggb3RoZXIgbW9kdWxlcywgZXNwZWNpYWxseSBnaXZlbiBpdHMgcHJldmFsZW5jZS4gSSYjMzk7bGwgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkIGNvbmZpZyBmaWxlIHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSVFc4OF84ODIyQlUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9NzE9Y29uZmlnIFJUVzg4Xzg4MjJCU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNzM3CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgcHJvY2VzcywgZnJhbWVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OgoKKipEaXZpbmcgaW50byB0aGUgUlRXODhfODgyMkJVIEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgc3Vycm91bmRpbmcgdGhlIGBSVFc4OF84ODIyQlVgIGRyaXZlci4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJJiMzOTttIGdvaW5nIHRvIHNjYW4gdGhlIEtjb25maWcgZmlsZSBpdHNlbGYuIEkmIzM5O20gbG9va2luZyBmb3IgdGhlIGNvcmUgc3ltYm9sIGRlZmluaXRpb24sIHRoZSBkZXBlbmRlbmNpZXMgaXQgaW50cm9kdWNlcywgYW5kIGFueSBjb25kaXRpb25hbCBidWlsZCBvcHRpb25zLiBXaGF0IGFyZSB0aGUgZGVmYXVsdCBzZXR0aW5ncz8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGhhcmR3YXJlIHZhcmlhbnRzIG9yIGZlYXR1cmVzIEkgbmVlZCB0byBjb25zaWRlcj8gSSYjMzk7bSBleHBlY3RpbmcgdG8gc2VlIHRoaW5ncyBsaWtlIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRpb25zLCBwb3dlciBtYW5hZ2VtZW50IGNvbmZpZ3VyYXRpb25zLCBhbmQgbWF5YmUgZXZlbiBkZWJ1ZyBvcHRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgdmFyaW91cyBzeW1ib2xzLiBXaGljaCBvdGhlciBkcml2ZXJzIG9yIGZlYXR1cmVzIGRvZXMgdGhpcyBvbmUgZGVwZW5kIG9uPyBBbmQsIGNyaXRpY2FsbHksIGFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEkmIzM5O20gbG9va2luZyBmb3IgdGhvc2UgJiMzNDt0cmlja3kgYml0cyYjMzQ7IHRoYXQgc29tZXRpbWVzIGdldCBtaXNzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uIFRpbWUgdG8gY3JhY2sgaXQgb3BlbiBhbmQgc2VlIHdoYXQgaXQgdGVsbHMgbWUuIFRoaXMgaXMgZ29pbmcgdG8gZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIGFueSB3b3JrIEkgbmVlZCB0byBkbyBvbiB0aGlzIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA4MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDgwOlx0XHQgIDgwMi4xMWFjIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXG4gIDgxOlx0XG4gIDgyOlx0Y29uZmlnIFJUVzg4Xzg4MjJCVVxuICA4MzpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuICA4NDpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgODU6XHRcdHNlbGVjdCBSVFc4OF9DT1JFXG4gIDg2Olx0XHRzZWxlY3QgUlRXODhfVVNCXG4gIDg3Olx0XHRzZWxlY3QgUlRXODhfODgyMkJcbiAgODg6XHRcdGhlbHBcbiAgODk6XHRcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4MjJCVSBjaGlwc2V0XG4gIDkwOlx0XG4gIDkxOlx0XHQgIDgwMi4xMWFjIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcbiAgOTI6XHRcbiAgOTM6XHRjb25maWcgUlRXODhfODgyMkNFXG4gIDk0Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4gIDk1Olx0XHRkZXBlbmRzIG9uIFBDSVxuICA5NjpcdFx0c2VsZWN0IFJUVzg4X0NPUkVcbiAgOTc6XHRcdHNlbGVjdCBSVFc4OF9QQ0lcbiAgOTg6XHRcdHNlbGVjdCBSVFc4OF84ODIyQ1xuICA5OTpcdFx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTMzNgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUlRXODggRHJpdmVyIEVuYWJsZW1lbnQqKgoKT2theSwgc28gdGhlIGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtFbmFibGluZyBgUlRXODhgIGFuZCBgUlRXODhfODgyMkJVYCBzaG91bGQgYmUgc3VmZmljaWVudC4mIzM0OyBUaGF0IHNlZW1zIGxpa2UgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIGdldHRpbmcgdGhhdCBzcGVjaWZpYyBVU0IgV2ktRmkgYWRhcHRlciBnb2luZy4gQnV0LCB3YWl0IGEgbWludXRlLCBJIG5lZWQgdG8gYmUgbW9yZSBjYXJlZnVsLiBJIGtub3cgYFJUVzg4YCByZWxpZXMgb24gYE1BQzgwMjExYCBhbmQgYFdMQU5gLCBmdW5kYW1lbnRhbCBuZXR3b3JraW5nIGNvbXBvbmVudHMuIEJlZm9yZSBJIHByb2NlZWQgYW55IGZ1cnRoZXIgd2l0aCB0ZXN0aW5nLCBJIHNob3VsZCB0YWtlIGEgc3RlcCBiYWNrIGFuZCBtZXRpY3Vsb3VzbHkgdmVyaWZ5ICphbGwqIHRoZSBkZXBlbmRlbmNpZXMgb2YgYFJUVzg4YC4gSSBuZWVkIHRvIGVuc3VyZSBub3RoaW5nIGdldHMgb3Zlcmxvb2tlZC4gR290dGEgbWFrZSBzdXJlIEkmIzM5O20gZW5hYmxpbmcgKmV2ZXJ5dGhpbmcqIG5lZWRlZCBmb3IgdGhpcyBtb2R1bGUgdG8gZnVuY3Rpb24gY29ycmVjdGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdG1lbnVjb25maWcgUlRXODhcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBUaGlzIG1vZHVsZSBhZGRzIHN1cHBvcnQgZm9yIG1hYzgwMjExLWJhc2VkIHdpcmVsZXNzIGRyaXZlcnMgdGhhdFxuICAgNzpcdFx0ICBlbmFibGVzIFJlYWx0ZWsgSUVFRSA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwc2V0cy5cbiAgIDg6XHRcbiAgIDk6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZCBydHc4OC5cbiAgMTA6XHRcbiAgMTE6XHRpZiBSVFc4OFxuICAxMjpcdFxuICAxMzpcdGNvbmZpZyBSVFc4OF9DT1JFXG4gIDE0Olx0XHR0cmlzdGF0ZVxuICAxNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIFJUVzg4X1BDSVxuICAxODpcdFx0dHJpc3RhdGVcbiAgMTk6XHRcbiAgMjA6XHRjb25maWcgUlRXODhfU0RJT1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTg2NwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGRlZXAgaW4gdGhlIHdlZWRzIG9mIGtlcm5lbCBkZXZlbG9wbWVudCBhbmQgbmV0d29ya2luZzoKCioqTmF2aWdhdGluZyB0aGUgV2lyZWxlc3MgRHJpdmVyIExhYnlyaW50aCoqCgpSaWdodCwgbGV0JiMzOTtzIHNlZS4uLiBJIG5lZWQgdG8gZmluZCB0aGUgcmVsZXZhbnQgUmVhbHRlayBkcml2ZXIgd2l0aGluIHRoZSB3aXJlbGVzcyBzdWJzeXN0ZW0uIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgd2hlcmUgSSBhbHdheXMgc3RhcnQsIGlzIHRvIGNvbnNpZGVyIHRoZSBwcmltYXJ5IGtlcm5lbCBjb21wb25lbnRzIGludm9sdmVkOiBgTUFDODAyMTFgIHdoaWNoIGlzIHRoZSBjZW50cmFsIE1BQyBsYXllciwgdGhlIG92ZXJhbGwgYFdMQU5gIHN1YnN5c3RlbSwgYW5kIHRoZW4sIGlmIGFwcGxpY2FibGUsIGEgdmVuZG9yLXNwZWNpZmljIGlkZW50aWZpZXIgbGlrZSBgV0xBTl9WRU5ET1JfUkVBTFRFS2AuIEkgbmVlZCB0byBlbnN1cmUgdGhlIFJlYWx0ZWsgZHJpdmVyIGlzIGNvcnJlY3RseSBpbnRlZ3JhdGVkLiBUbyBjb25maXJtIGlmIHRoYXQgdmVuZG9yIG9wdGlvbiBleGlzdHMsIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcuCgpUaGUgbmV4dCBzdGVwIGlzIGNsZWFyOiBJJiMzOTtsbCBoZWFkIGRpcmVjdGx5IHRvIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGF0IHBhcnRpY3VsYXIgZHJpdmVyIHNob3VsZCByZXNpZGUuIFRoaXMgZmlsZSB3aWxsIHRlbGwgbWUgaWYgdGhlIGBXTEFOX1ZFTkRPUl9SRUFMVEVLYCBvcHRpb24gaXMgZGVmaW5lZCwgYW5kIGFsc28gaG93IHRoZSBSZWFsdGVrIGRyaXZlciBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIHJlc3Qgb2YgdGhlIFdMQU4gc3RhY2ssIGFuZCBhbGwgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgV0xBTl9WRU5ET1JfUkVBTFRFS1xuICAgMzpcdFx0Ym9vbCBcJiMzNDtSZWFsdGVrIGRldmljZXNcJiMzNDtcbiAgIDQ6XHRcdGRlZmF1bHQgeVxuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBJZiB5b3UgaGF2ZSBhIHdpcmVsZXNzIGNhcmQgYmVsb25naW5nIHRvIHRoaXMgY2xhc3MsIHNheSBZLlxuICAgNzpcdFxuICAgODpcdFx0ICBOb3RlIHRoYXQgdGhlIGFuc3dlciB0byB0aGlzIHF1ZXN0aW9uIGRvZXNuJiMzOTt0IGRpcmVjdGx5IGFmZmVjdCB0aGVcbiAgIDk6XHRcdCAga2VybmVsOiBzYXlpbmcgTiB3aWxsIGp1c3QgY2F1c2UgdGhlIGNvbmZpZ3VyYXRvciB0byBza2lwIGFsbCB0aGVcbiAgMTA6XHRcdCAgcXVlc3Rpb25zIGFib3V0IHRoZXNlIGNhcmRzLiBJZiB5b3Ugc2F5IFksIHlvdSB3aWxsIGJlIGFza2VkIGZvclxuICAxMTpcdFx0ICB5b3VyIHNwZWNpZmljIGNhcmQgaW4gdGhlIGZvbGxvd2luZyBxdWVzdGlvbnMuXG4gIDEyOlx0XG4gIDEzOlx0aWYgV0xBTl9WRU5ET1JfUkVBTFRFS1xuICAxNDpcdFxuICAxNTpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvS2NvbmZpZ1wmIzM0O1xuICAxNjpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZ1wmIzM0O1xuICAxNzpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWdcJiMzNDtcbiAgMTg6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCYjMzQ7XG4gIDE5Olx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ1wmIzM0O1xuICAyMDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjUxOQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDE3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIENoZWNrbGlzdCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O3ZlIGdvdCB0aGUgbmVjZXNzYXJ5IGNvbXBvbmVudHMgY29uZmlndXJlZCBmb3IgdGhpcyB3aXJlbGVzcyBzZXR1cC4gRmlyc3QgdGhpbmdzIGZpcnN0OiBJIGtub3cgSSYjMzk7bGwgbmVlZCBgV0xBTl9WRU5ET1JfUkVBTFRFS2Ag4oCTIHRoYXQmIzM5O3MgYSBnaXZlbi4gQW5kIG9mIGNvdXJzZSwgYE1BQzgwMjExYCBhbmQgYFdMQU5gIGFyZSBlc3NlbnRpYWwgcGFydHMgb2YgdGhlIGNvcmUgd2lyZWxlc3MgaW5mcmFzdHJ1Y3R1cmUuIExldCYjMzk7cyBub3QgZm9yZ2V0IHRoZSBVU0IgY29tcG9uZW50IGVpdGhlciwgYmVjYXVzZSBhIFJlYWx0ZWsgYWRhcHRlciBpcyBtb3N0IG9mdGVuIGEgVVNCIGRldmljZS4KCkFscmlnaHQsIGxldCYjMzk7cyBtYWtlIGEgbWVudGFsIGxpc3Qgb2YgdGhlIGNvbmZpZ3MgSSBzaG91bGQgdmVyaWZ5OiBgV0xBTmAsIGBXTEFOX1ZFTkRPUl9SRUFMVEVLYCwgYE1BQzgwMjExYCwgYFVTQmAsIGFuZCB0aGUgYFJUVzg4YCBmYW1pbHkuIFNvIHRoYXQgY292ZXJzIHRoZSBiYXNpY3MsIG5vdyBsZXQmIzM5O3MgZ28gaW50byB0aGUgc3BlY2lmaWNzLCBpbmNsdWRpbmcgYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuCgpIb2xkIG9uIGEgc2Vjb25kLi4uIHRob3NlIGBSVFc4OF9gIGNvbmZpZ3VyYXRpb25zIGZvciBzcGVjaWZpYyBjaGlwcyBhcmUgaW1wb3J0YW50LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O3ZlIGdvdCB0aGUgKnJpZ2h0KiBvbmVzIGVuYWJsZWQgZm9yIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBJJiMzOTttIHRhcmdldGluZy4gUmlnaHQsIEkgc2hvdWxkIHF1aWNrbHkgdmVyaWZ5IHRoYXQgdGhvc2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZXhpc3QgYW5kIGFyZSBjb3JyZWN0bHkgc2V0LiBUaW1lIHRvIGNoZWNrIHRob3NlIGNvbmZpZ3VyYXRpb25zIHNwZWNpZmljYWxseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4Xzg4MjFDVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xODQ9Y29uZmlnIFJUVzg4Xzg4MjFDU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk1OmNvbmZpZyBSVFc4OF84ODIxQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzMTk1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgcnR3X3R4cV9wdXNoX3NrYmAgRnVuY3Rpb24qKgoKT2theSwgc28gdGhlIGlzc3VlLCB3aGF0ZXZlciBpdCBpcywgZGVmaW5pdGVseSBleGlzdHMuIE15IGltbWVkaWF0ZSBmb2N1cyBuZWVkcyB0byBiZSBvbiB0aGUgYHJ0d190eHFfcHVzaF9za2JgIGZ1bmN0aW9uLiBXYWl0IGEgbWludXRlLi4uIHRoYXQmIzM5O3MgZGVjbGFyZWQgYXMgc3RhdGljLiBIbW0sIHRoYXQmIzM5O3MgYSBrZXkgZGV0YWlsIOKAkyBzdGF0aWMgZnVuY3Rpb25zIG9mdGVuIHN1Z2dlc3QgaW50ZXJuYWwgdXNlIHdpdGhpbiBhIG1vZHVsZSwgYnV0IHVuZGVyc3RhbmRpbmcgKndoeSogaXQmIzM5O3Mgc3RhdGljIGlzIGltcG9ydGFudC4gTGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBzb3VyY2UgY29kZS4gSSBuZWVkIHRvIGxvY2F0ZSBgcnR3X3R4cV9wdXNoX3NrYmAgd2l0aGluIHRoZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jYCBmaWxlLiBUaW1lIHRvIG9wZW4gdGhlIGVkaXRvciBhbmQgZ2V0IHRvIHdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0d190eHFfcHVzaF9za2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTc2PXN0YXRpYyB2b2lkIHJ0d190eHFfY2hlY2tfYWdnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDg6c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA5LVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XHRcdHJldCA9IHJ0d190eHFfcHVzaF9za2IocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVx0XHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNzkzCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgZnJvbSBhbiBleHBlcnQmIzM5O3MgcGVyc3BlY3RpdmU6CgoqKklubGluaW5nIGFuZCBGdW5jdGlvbiBTY29wZSBDb25zaWRlcmF0aW9ucyoqCgpIbW0sIHRoaW5raW5nIGFib3V0IHRoaXMgYHJ0d190eHFfcHVzaF9za2JgIGZ1bmN0aW9uLCBpdCYjMzk7cyBkZWNsYXJlZCBhcyBgc3RhdGljYC4gVGhhdCBpbW1lZGlhdGVseSBtYWtlcyBtZSBjb25zaWRlciBpbmxpbmluZyBvcHRpbWl6YXRpb25zLiBCZWNhdXNlIGl0JiMzOTtzIHN0YXRpYywgdGhlIGNvbXBpbGVyICpzaG91bGQqIGhhdmUgYW4gZWFzaWVyIHRpbWUgaW5saW5pbmcgaXQgZGlyZWN0bHkgaW50byBhbnkgY2FsbHNpdGVzIHdpdGhpbiB0aGUgc2FtZSB0cmFuc2xhdGlvbiB1bml0LiBUaGlzIGNvdWxkIGhhdmUgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zLCBlaXRoZXIgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVwZW5kaW5nIG9uIHRoZSBzaXplIGFuZCBjb21wbGV4aXR5IG9mIHRoZSBmdW5jdGlvbiwgYW5kIGhvdyBvZnRlbiBpdCYjMzk7cyBjYWxsZWQuIEl0IHJlYWxseSBjb21lcyBkb3duIHRvIHRoZSBjb21waWxlciYjMzk7cyBoZXVyaXN0aWNzIGluIHRoaXMgY2FzZS4KCk5vdywgb24gdGhlIG90aGVyIGhhbmQsIHRoZXJlJiMzOTtzIGBfX3J0d190eF93b3JrYC4gVGhlIGZhY3QgdGhhdCBpdCAqaXNuJiMzOTt0KiBzdGF0aWMgaXMga2V5LiBJdCBtZWFucyBpdCBoYXMgZXh0ZXJuYWwgbGlua2FnZS4gVGhlcmVmb3JlLCBpbmxpbmluZyBpcyBsZXNzIGxpa2VseSwgb3IgZXZlbiBpbXBvc3NpYmxlLCBlc3BlY2lhbGx5IGlmIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMgb3IgbW9kdWxlcy4gVGhpcyBoYXMgaW1wbGljYXRpb25zIGZvciBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkIGFuZCBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uIEkgbmVlZCB0byBrZWVwIHRoaXMgaW4gbWluZCB3aGVuIGV2YWx1YXRpbmcgdGhlIG92ZXJhbGwgY2FsbCBmbG93IGFuZCBwb3NzaWJsZSBib3R0bGVuZWNrcywgb3IgaWYgdGhlcmUgaXMgc2NvcGUgZm9yIGltcHJvdmVtZW50cyBieSBjaGFuZ2luZyB0aGUgZGVjbGFyYXRpb24gdG8gYHN0YXRpY2Agb3IsIGluIGNlcnRhaW4gY29udGV4dHMsIGludHJvZHVjaW5nIHNwZWNpZmljIGlubGluaW5nIGhpbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX3J0d190eF93b3JrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTMyPXN0YXRpYyB2b2lkIHJ0d19vcHNfd2FrZV90eF9xdWV1ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXHRpZiAodHhxLVx1MDAzZWFjID09IElFRUU4MDIxMV9BQ19WTylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcdFx0X19ydHdfdHhfd29yayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTQ6dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjU1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9Njc1PXZvaWQgcnR3X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Njc5Olx0X19ydHdfdHhfd29yayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY4MC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oPTkyPXZvaWQgcnR3X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5Mzp2b2lkIF9fcnR3X3R4X3dvcmsoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtOTQtdm9pZCBydHdfdHhfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0Njk3CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHBlcnNvbmFsIHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipBc3Nlc3NpbmcgU3RhdGljIERlY2xhcmF0aW9uIGluIHRoZSBXTEFOIERyaXZlcioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgV0xBTiBkcml2ZXIgY29kZSwgYW5kIEkgbmVlZCB0byBjb25zaWRlciBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBiZWluZyBoYW5kbGVkIGZyb20gYSBzdGF0aWMgYW5hbHlzaXMgcGVyc3BlY3RpdmUuIFRoZSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgYF9fcnR3X3R4X3dvcmtgIGFuZCBgcnR3X3R4X3dvcmtgLCBhbmQgc3BlY2lmaWNhbGx5IGBydHdfdHhgLCBhcmUgKm5vdCogZGVjbGFyZWQgYXMgc3RhdGljLiBUaGlzIGltcGxpZXMgYSBmZXcgdGhpbmdzLCB3aGljaCBJIG5lZWQgdG8gcXVpY2tseSBydW4gdGhyb3VnaCBpbiBteSBoZWFkLgoKRmlyc3RseSwgYmVjYXVzZSB0aGV5IGFyZW4mIzM5O3Qgc3RhdGljLCB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBleHRlcm5hbCBsaW5rYWdlIHdpdGhpbiB0aGUgY29tcGlsYXRpb24gdW5pdCBvciBtb3JlIGxpa2VseSwgYWNyb3NzIHRoZSBlbnRpcmUgcHJvamVjdC4gVGhpcyBtZWFucyB0aGUgbGlua2VyIGlzIHJlc29sdmluZyB0aGVzZSBzeW1ib2xzIGFuZCB0aGUgY29tcGlsZXIgaXMgbm90IGFibGUgdG8gcGVyZm9ybSBzb21lIG9mIHRoZSBvcHRpbWl6YXRpb25zIHRoYXQgaXQgKmNvdWxkKiBwZXJmb3JtIGlmIHRoZXkgKndlcmUqIHN0YXRpYy4gVGhpcyBjYW4gaW50cm9kdWNlIHBvdGVudGlhbCBpc3N1ZXMgZGVwZW5kaW5nIG9uIGhvdyB0aGUgY29kZSBpcyBzdHJ1Y3R1cmVkLiBBcmUgd2Ugc2VlaW5nIG11bHRpcGxlIGRlZmluaXRpb25zPyBBcmUgd2UgYWNjaWRlbnRhbGx5IGNhbGxpbmcgdGhlIHdyb25nIHZlcnNpb24/IEFyZSB0aGVyZSBhbnkgdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMgZnJvbSB0aGVpciBleHRlcm5hbCB2aXNpYmlsaXR5PwoKU2Vjb25kbHksIHRoZSBhYnNlbmNlIG9mIGBzdGF0aWNgIG9wZW5zIHVwIHRoZXNlIGZ1bmN0aW9ucyBmb3IgcG90ZW50aWFsIHVzZSBpbiBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLCBwb3RlbnRpYWxseSB0aHJvdWdoIGRpcmVjdCBmdW5jdGlvbiBjYWxscywgb3IgZnVuY3Rpb24gcG9pbnRlcnMuIFRoaXMgYnJvYWRlbnMgdGhlIHNjb3BlIG9mIHdoYXQgbmVlZHMgdG8gYmUgY2hlY2tlZCB3aGVuIGNvbnNpZGVyaW5nIHNlY3VyaXR5IG9yIGdlbmVyYWwgcm9idXN0bmVzcy4KCkkgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNhbGwgc2l0ZXMgYW5kIHNlZSBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkLCBhbmQgaWYgdGhlcmUmIzM5O3MgYW55IHJhdGlvbmFsZSBmb3IgdGhlbSAqbm90KiBiZWluZyBzdGF0aWMuIE1heWJlIHRoZXkgYXJlIGVudHJ5IHBvaW50cyB0byBzb21lIHNlcnZpY2UgcHJvdmlkZWQgYnkgdGhlIG1vZHVsZSwgb3IgYXJlIG90aGVyd2lzZSBuZWVkZWQuIElmIGl0IGNhbiBiZSB2ZXJpZmllZCB0aGF0IHN0YXRpYyBkZWNsYXJhdGlvbiBtYWtlcyBzZW5zZSwgSSBzaG91bGQgZGV0ZXJtaW5lIGlmIG1ha2luZyB0aG9zZSBjaGFuZ2VzIGludHJvZHVjZXMgYW55IHJlZ3Jlc3Npb25zIG9yIHVuZm9yZXNlZW4gc2lkZSBlZmZlY3RzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHdfdHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgODcxIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM9OTM9c3RhdGljIHZvaWQgcnR3X2Z3X2MyaF9jbWRfaGFuZGxlX2V4dChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMDMtXHRjYXNlIEMySF9DQ1hfUlBUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEwNDpcdFx0cnR3X3R4X3JlcG9ydF9oYW5kbGUocnR3ZGV2LCBza2IsIEMySF9DQ1hfUlBUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMDUtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0zMDE9dm9pZCBydHdfZndfYzJoX2NtZF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMzE3LVx0Y2FzZSBDMkhfQ0NYX1RYX1JQVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzozMTg6XHRcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1RYX1JQVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMzE5LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM9MTMwMD1zdGF0aWMgdm9pZCBydHdfZmlsbF9yc3ZkX3BhZ2VfZGVzYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzAyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzAzOlx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA0LVx0Y29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtXHUwMDNlY2hpcDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzA3Olx0cnR3X3R4X3JzdmRfcGFnZV9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiLCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA4LVx0cGt0X2Rlc2MgPSBza2JfcHVzaChza2IsIGNoaXAtXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMDktXHRtZW1zZXQocGt0X2Rlc2MsIDAsIGNoaXAtXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMTA6XHRydHdfdHhfZmlsbF90eF9kZXNjKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMxMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaD05PXN0cnVjdCBydHdfaGNpX29wcyB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTEwLVx0aW50ICgqdHhfd3JpdGUpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjExOlx0XHRcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0xMi1cdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oPTM2PXN0YXRpYyBpbmxpbmUgaW50IHJ0d19oY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6Mzc6XHRcdFx0XHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtMzgtXHRcdFx0XHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0xOD1zdGF0aWMgdm9pZCBydHdfb3BzX3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzoyOTpcdHJ0d190eChydHdkZXYsIGNvbnRyb2wsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTM1LVx0c3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IGh3LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6MzY6XHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTM3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy00Ny1cdGlmICh0eHEtXHUwMDNlYWMgPT0gSUVFRTgwMjExX0FDX1ZPKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjQ4Olx0XHRfX3J0d190eF93b3JrKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDktXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTE0Nj1zdGF0aWMgaW50IHJ0d19vcHNfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMTY0LVx0bWVtc2V0KFx1MDAyNnJ0d3ZpZi1cdTAwM2ViZmVlLCAwLCBzaXplb2Yoc3RydWN0IHJ0d19iZmVlKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6MTY1Olx0cnR3X3R4cV9pbml0KHJ0d2RldiwgdmlmLVx1MDAzZXR4cSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMTY2LVx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2cnR3dmlmLVx1MDAzZXJzdmRfcGFnZV9saXN0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MjI4PXN0YXRpYyB2b2lkIHJ0d19vcHNfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMjQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI0MjpcdHJ0d190eHFfY2xlYW51cChydHdkZXYsIHZpZi1cdTAwM2V0eHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTI0My1cdHJ0d19yZW1vdmVfcnN2ZF9wYWdlKHJ0d2RldiwgcnR3dmlmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NjMwPXN0YXRpYyBpbnQgcnR3X29wc19hbXBkdV9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTYzNi1cdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEgPSBzdGEtXHUwMDNldHhxW3RpZF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6NjM3Olx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy02MzgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MzQ1PWludCBydHdfc3RhX2FkZChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2NS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoc3RhLVx1MDAzZXR4cSk7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MzY2Olx0XHRydHdfdHhxX2luaXQocnR3ZGV2LCBzdGEtXHUwMDNldHhxW2ldKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2Ny1cdElOSVRfV09SSyhcdTAwMjZzaS1cdTAwM2VyY193b3JrLCBydHdfc3RhX3JjX3dvcmspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTM4MD12b2lkIHJ0d19zdGFfcmVtb3ZlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMzk0LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShzdGEtXHUwMDNldHhxKTsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozOTU6XHRcdHJ0d190eHFfY2xlYW51cChydHdkZXYsIHN0YS1cdTAwM2V0eHFbaV0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMzk2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTYyMj1zdGF0aWMgdm9pZCBydHdfcmVzZXRfdmlmX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02MjgtXHRydHdfdmlmX2Fzc29jX2NoYW5nZWQocnR3dmlmLCBOVUxMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjYyOTpcdHJ0d190eHFfY2xlYW51cChydHdkZXYsIHZpZi1cdTAwM2V0eHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjMwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTY3ND1zdGF0aWMgdm9pZCBydHdfZndfcmVjb3Zlcnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6Njg2OnN0cnVjdCBydHdfdHhxX2JhX2l0ZXJfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02ODctfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTY4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBydHdfdHhxX2JhX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTY5MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAwLVx0XHRcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MDE6XHRcdFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMy1cdFx0XHR0eHEgPSBzdGEtXHUwMDNldHhxW3RpZF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MDQ6XHRcdFx0cnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzA1LVx0XHRcdHNldF9iaXQoUlRXX1RYUV9CTE9DS19CQSwgXHUwMDI2cnR3dHhxLVx1MDAzZWZsYWdzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTI6c3RhdGljIHZvaWQgcnR3X3R4cV9iYV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTQtXHRzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBydHdfZGV2LCBiYV93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcxNTpcdHN0cnVjdCBydHdfdHhxX2JhX2l0ZXJfZGF0YSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzE3Olx0cnR3X2l0ZXJhdGVfc3Rhc19hdG9taWMocnR3ZGV2LCBydHdfdHhxX2JhX2l0ZXIsIFx1MDAyNmRhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0yMTM4PWludCBydHdfY29yZV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE0Ny1cdHRpbWVyX3NldHVwKFx1MDAyNnJ0d2Rldi1cdTAwM2V0eF9yZXBvcnQucHVyZ2VfdGltZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ4Olx0XHQgICAgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lciwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ5Olx0cnR3ZGV2LVx1MDAzZXR4X3dxID0gYWxsb2Nfd29ya3F1ZXVlKFwmIzM0O3J0d190eF93cVwmIzM0OywgV1FfVU5CT1VORCB8IFdRX0hJR0hQUkksIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE1MC1cdGlmICghcnR3ZGV2LVx1MDAzZXR4X3dxKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTUxOlx0XHRydHdfd2FybihydHdkZXYsIFwmIzM0O2FsbG9jX3dvcmtxdWV1ZSBydHdfdHhfd3EgZmFpbGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNTItXHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjQtXHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZjb2V4LVx1MDAzZXdsX2Nja2xvY2tfd29yaywgcnR3X2NvZXhfd2xfY2NrbG9ja193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjIxNjU6XHRJTklUX1dPUksoXHUwMDI2cnR3ZGV2LVx1MDAzZXR4X3dvcmssIHJ0d190eF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjYtXHRJTklUX1dPUksoXHUwMDI2cnR3ZGV2LVx1MDAzZWMyaF93b3JrLCBydHdfYzJoX3dvcmspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjktXHRJTklUX1dPUksoXHUwMDI2cnR3ZGV2LVx1MDAzZXVwZGF0ZV9iZWFjb25fd29yaywgcnR3X2Z3X3VwZGF0ZV9iZWFjb25fd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTcwOlx0SU5JVF9XT1JLKFx1MDAyNnJ0d2Rldi1cdTAwM2ViYV93b3JrLCBydHdfdHhxX2JhX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE3MS1cdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2cnR3ZGV2LVx1MDAzZWMyaF9xdWV1ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MjI1NT1pbnQgcnR3X3JlZ2lzdGVyX2h3KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIyNjctXHRody1cdTAwM2VxdWV1ZXMgPSBJRUVFODAyMTFfTlVNX0FDUztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjIyNjg6XHRody1cdTAwM2V0eHFfZGF0YV9zaXplID0gc2l6ZW9mKHN0cnVjdCBydHdfdHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIyNjktXHRody1cdTAwM2VzdGFfZGF0YV9zaXplID0gc2l6ZW9mKHN0cnVjdCBydHdfc3RhX2luZm8pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE5MT1lbnVtIHJ0d19jaGlwX3R5cGUge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIwMjplbnVtIHJ0d190eF9xdWV1ZV90eXBlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIwMy1cdC8qIHRoZSBvcmRlciBvZiBBQyBxdWV1ZXMgbWF0dGVycyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTM0ND1lbnVtIHJ0d19yZWd1bGF0b3J5X2RvbWFpbnMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTM2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjM2MjplbnVtIHJ0d190eHFfZmxhZ3Mge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMzYzLVx0UlRXX1RYUV9BTVBEVSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD01MjA9c3RydWN0IHJ0d181Z190eHB3cl9pZHgge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTUzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjUzMzpzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzQtXHRzdHJ1Y3QgcnR3XzJnX3R4cHdyX2lkeCBwd3JfaWR4XzJnO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTU5OT1zdHJ1Y3QgcnR3X3ZpZl9wb3J0IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC02MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo2MDc6c3RydWN0IHJ0d190eF9wa3RfaW5mbyB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC02MDgtXHR1MzIgdHhfcGt0X3NpemU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9NzM3PXN0cnVjdCBydHdfc2VjX2Rlc2Mge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjc0NjpzdHJ1Y3QgcnR3X3R4X3JlcG9ydCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NDctXHQvKiBwcm90ZWN0IHRoZSB0eCByZXBvcnQgcXVldWUgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD03NTQ9c3RydWN0IHJ0d19yYV9yZXBvcnQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjc2MDpzdHJ1Y3QgcnR3X3R4cSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NjEtXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9ODYyPXN0cnVjdCBydHdfY2hpcF9vcHMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTkxMi1cdHZvaWQgKCpmaWxsX3R4ZGVzY19jaGVja3N1bSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjkxMzpcdFx0XHRcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC05MTQtXHRcdFx0XHQgICAgIHU4ICp0eGRlc2MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE3OTI9c3RydWN0IHJ0d19lZnVzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMTg0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjE4NDI6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0xODQzLX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjA1OT1zdHJ1Y3QgcnR3X2RldiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjEwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIxMDI6XHRzdHJ1Y3QgcnR3X3R4X3JlcG9ydCB0eF9yZXBvcnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTAzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIxNDU9c3RhdGljIGlubGluZSBib29sIHJ0d19pc19hc3NvYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMTUwOnN0YXRpYyBpbmxpbmUgc3RydWN0IGllZWU4MDIxMV90eHEgKnJ0d3R4cV90b190eHEoc3RydWN0IHJ0d190eHEgKnJ0d3R4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxNTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIyNDY9dm9pZCBydHdfdmlmX3BvcnRfY29uZmlnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBydHdfdmlmICpydHd2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjQ3LVx0XHRcdCB1MzIgY29uZmlnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIyNDg6dm9pZCBydHdfdHhfcmVwb3J0X3B1cmdlX3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIyNDktdm9pZCBydHdfdXBkYXRlX3N0YV9pbmZvKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBydHdfc3RhX2luZm8gKnNpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9MzU9c3RhdGljIHU4IHJ0d19wY2lfZ2V0X3R4X3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6MzY6XHRcdFx0ICAgICAgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NTM4PXN0YXRpYyB2b2lkIHJ0d19wY2lfZG1hX3JlbGVhc2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d19wY2kgKnJ0d3BjaSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTU0MC1cdHN0cnVjdCBydHdfcGNpX3R4X3JpbmcgKnR4X3Jpbmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjU0MTpcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTU0Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTYwMz1zdGF0aWMgdm9pZCBydHdfcGNpX2RlZXBfcHNfZW50ZXIoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTYwNi1cdHN0cnVjdCBydHdfcGNpX3R4X3JpbmcgKnR4X3Jpbmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjYwNzpcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTYwOC1cdGJvb2wgdHhfZW1wdHkgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzU0PXN0YXRpYyB2b2lkIHJ0d19wY2lfZmx1c2hfcXVldWVzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiBxdWV1ZXMsIGJvb2wgZHJvcClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc2Ni1cdFx0XHRpZiAocXVldWVzIFx1MDAyNiBCSVQoaSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjc2NzpcdFx0XHRcdHBjaV9xdWV1ZXMgfD0gQklUKHJ0d190eF9hY190b19od3EoaSkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03NjgtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz03NzM9c3RhdGljIHZvaWQgcnR3X3BjaV90eF9raWNrX29mZl9xdWV1ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo3NzQ6XHRcdFx0XHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03NzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzkwPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5Mi1cdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NzkzOlx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzk0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODAwPXN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgwMTpcdFx0XHRcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODAyLVx0XHRcdFx0IHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgwMzpcdFx0XHRcdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04MDQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODI4LVx0cGt0X2luZm8tXHUwMDNlcXNlbCA9IHJ0d19wY2lfZ2V0X3R4X3FzZWwoc2tiLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgyOTpcdHJ0d190eF9maWxsX3R4X2Rlc2MocnR3ZGV2LCBwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODMwLVx0ZG1hID0gZG1hX21hcF9zaW5nbGUoXHUwMDI2cnR3cGNpLVx1MDAzZXBkZXYtXHUwMDNlZGV2LCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg3MD1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3My1cdHN0cnVjdCBza19idWZmICpza2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjg3NDpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3NS1cdHU4IHJlZ19iY25fd29yaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc4Olx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBidWYsIHNpemUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzktXHRpZiAoIXNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg5Nj1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9oMmMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIHNpemUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04OTgtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4OTk6XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvIHBrdF9pbmZvID0gezB9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDAtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkwMjpcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAzLVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz05MTc9c3RhdGljIGludCBydHdfcGNpX3R4X3dyaXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxODpcdFx0XHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkxOS1cdFx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTIwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTIxOlx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSA9IHJ0d190eF9xdWV1ZV9tYXBwaW5nKHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkyMi1cdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXHUwMDNlcHJpdjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTk0MT1zdGF0aWMgdm9pZCBydHdfcGNpX3R4X2lzcihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTk4LVx0XHRpZiAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjk5OTpcdFx0XHRydHdfdHhfcmVwb3J0X2VucXVldWUocnR3ZGV2LCBza2IsIHR4X2RhdGEtXHUwMDNlc24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy0xMDAwLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM9MTc2MD12b2lkIHJ0d19wYXJzZV90YmxfdHhwd3JfbG10KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0xNzYyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM6MTc2MzpcdGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyICpwID0gdGJsLVx1MDAzZWRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjE3NjQ6XHRjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciAqZW5kID0gcCAmIzQzOyB0YmwtXHUwMDNlc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMTc2NS1cdHUzMiByZWdkX2NmZ19mbGFnID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jPTIyMzk9dm9pZCBydHdfZ2V0X3R4X3Bvd2VyX3BhcmFtcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoLCB1OCByYXRlLCB1OCBidyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTIyNDMtXHRzdHJ1Y3QgcnR3X2RtX2luZm8gKmRtX2luZm8gPSBcdTAwMjZydHdkZXYtXHUwMDNlZG1faW5mbztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM6MjI0NDpcdHN0cnVjdCBydHdfdHhwd3JfaWR4ICpwd3JfaWR4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0yMjQ1LVx0dTggZ3JvdXAsIGJhbmQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaD03MD12b2lkIHJ0d19waHlfdHhfcGF0aF9kaXZlcnNpdHkoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaDo3MjpzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oLTczLVx0dTggcmVnZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jPTE3PVJUV19ERUNMX1RBQkxFX0JCX1BHKHJ0dzg3MDNiX2JiX3BnKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jLTIzLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODcwM2JfdHhwd3JfbG10W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jLTI1LVx0ezAsIDAsIDAsIDAsIDEsIDMwfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkX3RhYmxlLmM9OTM5PVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg3MjNkX3JmX2EsIEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jLTk0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYzo5NDE6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MjNkX3R4cHdyX2xtdFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jLTk0Mi1cdHswLCAwLCAwLCAwLCAxLCAzMCwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM9MTAxPXN0YXRpYyB2b2lkIF9fcnR3ODcyM3hfZGVidWdfdHhwd3JfbGltaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYzoxMDI6XHRcdFx0XHRcdCBzdHJ1Y3QgcnR3X3R4cHdyX2lkeCAqdGFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtMTAzLVx0XHRcdFx0XHQgaW50IHR4X3BhdGhfY291bnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTY4MT12b2lkIF9fcnR3ODcyM3hfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYzo2ODI6XHRcdFx0XHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4My1cdFx0XHRcdCAgICAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtNjg3LVx0X19sZTE2ICpkYXRhID0gKF9fbGUxNiAqKSh0eGRlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jOjY4ODpcdHN0cnVjdCBydHdfdHhfZGVzYyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKil0eGRlc2M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtNjg5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD02Nj1zdHJ1Y3QgcnR3ODcyM3hfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC03Mi1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6NzM6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oPTEyMj1zdHJ1Y3QgcnR3ODcyM3hfY29tbW9uIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU1LVx0dm9pZCAoKmZpbGxfdHhkZXNjX2NoZWNrc3VtKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjE1NjpcdFx0XHRcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU3LVx0XHRcdFx0ICAgICB1OCAqdHhkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNTgtXHR2b2lkICgqZGVidWdfdHhwd3JfbGltaXQpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MTU5Olx0XHRcdFx0ICBzdHJ1Y3QgcnR3X3R4cHdyX2lkeCAqdGFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTYwLVx0XHRcdFx0ICBpbnQgdHhfcGF0aF9jb3VudCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oPTM2NT12b2lkIHJ0dzg3MjN4X2RlYnVnX3R4cHdyX2xpbWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MzY2Olx0XHRcdFx0c3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTM2Ny1cdFx0XHRcdGludCB0eF9wYXRoX2NvdW50KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD00NTE9dm9pZCBydHc4NzIzeF9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjQ1MjpcdFx0XHRcdCAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTQ1My1cdFx0XHRcdCAgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jPTg4Nz1zdGF0aWMgdm9pZCBydHc4ODEyYV9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jOjg4ODpcdFx0XHRcdFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYy04ODktXHRcdFx0XHRcdCAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhX3RhYmxlLmM9MTY4OD1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODEyYV9yZl9iLCBCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYy0xNjg5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jOjE2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTJhX3R4cHdyX2xtdFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jLTE2OTEtXHR7IDAsIDAsIDAsIDAsIDEsIDM2LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYz0yMDQxPXN0YXRpYyB2b2lkIHJ0dzg4MTRhX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM6MjA0MjpcdFx0XHRcdFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYy0yMDQzLVx0XHRcdFx0XHQgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5oPTIzPXN0cnVjdCBydHc4ODE0YV9lZnVzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5oLTI5LVx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaDozMDpcdHN0cnVjdCBydHdfdHhwd3JfaWR4IHR4cHdyX2lkeF90YWJsZVs0XTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaC0zMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTQ1ODM9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgxNGFfcmZfZCwgRCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTQ1ODU6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE0NTg2LVx0eyAwLCAwLCAwLCAwLCAxLCAzNiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTU1NjA9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTU1NjI6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE1NTYzLVx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTY1Mzc9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1MzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTY1Mzk6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE2NTQwLVx0XHR7IDAsIDAsIDAsIDAsIDEsIDM0LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNzUxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xNzUxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoxNzUxNjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGUyW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTctXHR7IDAsIDAsIDAsIDAsIDEsIDQyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xODQ5MT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xODQ5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoxODQ5MzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGUzW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTQtXHR7IDAsIDAsIDAsIDAsIDEsIDQ2LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xOTQ2OD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xOTQ2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoxOTQ3MDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGU1W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NzEtXHR7IDAsIDAsIDAsIDAsIDEsIDQ2LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMDQ0NT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU1KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0yMDQ0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoyMDQ0NzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGU3W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDgtXHR7IDAsIDAsIDAsIDAsIDEsIDQ0LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMTQyMj1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0yMTQyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoyMTQyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGU4W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjUtXHR7IDAsIDAsIDAsIDAsIDEsIDQ2LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYz03MzQ9c3RhdGljIHZvaWQgcnR3ODgyMWFfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYzo3MzU6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmMtNzM2LVx0XHRcdFx0XHQgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYV90YWJsZS5jPTEzMzU9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMWFfcmZfYSwgQSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmMtMTMzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWFfdGFibGUuYzoxMzM3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIxYV90eHB3cl9sbXRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWFfdGFibGUuYy0xMzM4LVx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM9MTIyOT1zdGF0aWMgdm9pZCBydHc4ODIxY19maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjEyMzA6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmMtMTIzMS1cdFx0XHRcdFx0ICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaD03ND1zdHJ1Y3QgcnR3ODgyMWNfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaC03OC1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmg6Nzk6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmgtODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jPTYwMTE9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMWNfcmZfYSwgQSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjX3RhYmxlLmMtNjAxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYzo2MDEzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIxY190eHB3cl9sbXRfdHlwZTBbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYy02MDE0LVx0eyAwLCAwLCAwLCAwLCAxLCAzMCwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MTU5MT1zdGF0aWMgdm9pZCBydHc4ODIyYl9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jOjE1OTI6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMTU5My1cdFx0XHRcdFx0ICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuaD03ND1zdHJ1Y3QgcnR3ODgyMmJfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuaC04MC1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmg6ODE6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmgtODItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jPTIwNDM0PVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjJiX3JmX2IsIEIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jLTIwNDM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIwNDM2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTBbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMDQzNy1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jPTIxMDI0PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODIyYl90eHB3cl9sbXRfdHlwZTApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jLTIxMDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxMDI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTJbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMTAyNy1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jPTIxNjE0PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODIyYl90eHB3cl9sbXRfdHlwZTIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jLTIxNjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxNjE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTVbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMTYxNy1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ1NjA9c3RhdGljIHZvaWQgcnR3ODgyMmNfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTYxOlx0XHRcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1NjItXHRcdFx0XHRcdCAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmg9NjE9c3RydWN0IHJ0dzg4MjJjX2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgtNjctXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oOjY4Olx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTY5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYz0zOTgyMj1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIyY19yZl9iLCBCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYzozOTgyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmNfdHhwd3JfbG10X3R5cGUwW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmMtMzk4MjUtXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYz00MjE2Nz1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmNfdHhwd3JfbG10X3R5cGUwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYzo0MjE2OTpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmNfdHhwd3JfbG10X3R5cGU1W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmMtNDIxNzAtXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODh4eGEuaD0yOD1zdHJ1Y3QgcnR3ODh4eGFfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODh4eGEuaC0zNC1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmg6MzU6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmgtMzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9NDcwPXN0YXRpYyB1MzIgcnR3X3NkaW9fZ2V0X3R4X2FkZHIoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc2l6ZV90IHNpemUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo0NzE6XHRcdFx0XHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtNDcyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz02MzU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9wb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo2MzY6XHRcdFx0ICAgICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy02Mzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTg0Nz1zdGF0aWMgdm9pZCBydHdfc2Rpb190eF9za2JfcHJlcGFyZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODQ4Olx0XHRcdFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtODQ5LVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NTA6XHRcdFx0XHQgICAgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtODgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODgxOlx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODgyOlx0cnR3X3R4X2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHJ0d2RldiwgcGt0X2luZm8sIHBrdF9kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4My19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9ODg1PXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfZGF0YShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg2Olx0XHRcdCAgICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4Ny1cdFx0XHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4ODpcdFx0XHQgICAgICAgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9OTAwPXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6OTAzOlx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHt9O1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTc2CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpdCBzdGFuZHM6CgoqKk5hdmlnYXRpbmcgdGhlIGBydHdfdHhgIENvZGUqKgoKT2theSwgc28gSSBrbm93IGBydHdfdHhgIGlzbiYjMzk7dCBzb21lIGNvbnN0YW50LCB1bmNoYW5nZWFibGUgdmFsdWUg4oCTIGl0JiMzOTtzIHNvbWV0aGluZyBkeW5hbWljLiBNeSBuZXh0IHN0ZXAgaXMgdG8gbG9jYXRlIGl0LiBBaGEsIGl0IHNlZW1zIGxpa2UgYHJ0d190eGAgaXMgZGVmaW5lZCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNgIGZpbGUuIFJpZ2h0LCBsZXQmIzM5O3MgaGVhZCBvdmVyIHRvIGB0eC5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgaG93IGBydHdfdHhgIGlzIGltcGxlbWVudGVkIGFuZCB3aGF0IGl0IGRvZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IHdpdGhpbiBpdHMgaW1tZWRpYXRlIGNvbnRleHQgYmVmb3JlIEkgY2FuIHRoaW5rIGFib3V0IGl0cyBicm9hZGVyIGltcGxpY2F0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm9pZCBydHdfdHhcXCgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTUyPUVYUE9SVF9TWU1CT0wocnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU1NDp2b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1NS1cdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oPTg1PWVudW0gcnR3X3JzdmRfcGFja2V0X3R5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6ODc6dm9pZCBydHdfdHgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC04OC1cdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNTEyCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhbHRlayBUWCBQYXRoKioKCk9rYXksIGxldCYjMzk7cyBzZWUuIGBydHdfdHhgIGlzIGVpdGhlciBleHBvcnRlZCBvciBhdCBsZWFzdCBub3Qgc3RhdGljLCB3aGljaCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlIHRvIHN0YXJ0IGxvb2tpbmcgYXQuIFdhaXQsIGl0IHNlZW1zIGBydHdfdHhgIGlzIGludm9rZWQgZnJvbSBgcnR3X29wc190eGAsIHdoaWNoIGlzIHRoZSBtYWM4MDIxMSBUWCBjYWxsYmFjay4gUGVyZmVjdCwgdGhhdCBzb2xpZGlmaWVzIGBydHdfdHhgIGFzIGEgc3Ryb25nIGZvY3VzIHBvaW50LgoKTm93LCBJIHNlZSB0aGF0IGBfX3J0d190eF93b3JrYCBpcyBhbHNvIG5vbi1zdGF0aWMuIEludGVyZXN0aW5nLiBJdCYjMzk7cyBjYWxsZWQgZnJvbSBgcnR3X29wc193YWtlX3R4X3F1ZXVlYCBhbmQgYHJ0d190eF93b3JrYC4gU28sIGFsb25nc2lkZSBgcnR3X3R4YCwgYF9fcnR3X3R4X3dvcmtgIGFwcGVhcnMgdG8gYmUgYSBnb29kIHN5bWJvbCB0byBmb2N1cyBvbi4KCkhhbmcgb24uLi4gSSYjMzk7dmUganVzdCBub3RpY2VkIHRoZSBwYXRjaCBpcyBhY3R1YWxseSBpbiBgcnR3X3R4cV9wdXNoX3NrYmAuIGBydHdfdHhxX3B1c2hfc2tiYCBpcyBjYWxsZWQgYnkgYHJ0d190eHFfcHVzaGAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBfX3J0d190eF93b3JrYC4gU28sIEkgdGhpbmsgYF9fcnR3X3R4X3dvcmtgIGlzIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIG1vZGlmaWVkIGNvZGUuCgpMZXQgbWUgdGhpbmsuIGBydHdfdHhgIGFsc28gY2FsbHMgYHJ0d19oY2lfdHhfd3JpdGVgLCBidXQgdGhlIHBhdGNoIGlzIHRvdWNoaW5nIGBydHdfdHhxX3B1c2hfc2tiYC4gQWxyaWdodCwgbGV0JiMzOTtzIGdvIGJhY2sgYW5kIHJlLWV4YW1pbmUgdGhlIHBhdGNoIHRvIG1ha2Ugc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA2MTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDYxMDpcdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIDYxMTpcdHtcbiA2MTI6XHRcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEgPSBydHd0eHFfdG9fdHhxKHJ0d3R4cSk7XG4gNjEzOlx0XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvIHBrdF9pbmZvID0gezB9O1xuIDYxNDpcdFx0aW50IHJldDtcbiA2MTU6XHRcbiA2MTY6XHRcdHJ0d190eHFfY2hlY2tfYWdnKHJ0d2RldiwgcnR3dHhxLCBza2IpO1xuIDYxNzpcdFxuIDYxODpcdFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCB0eHEtXHUwMDNlc3RhLCBza2IpO1xuIDYxOTpcdFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBza2IpO1xuIDYyMDpcdFx0aWYgKHJldCkge1xuIDYyMTpcdFx0XHRydHdfZXJyKHJ0d2RldiwgXCYjMzQ7ZmFpbGVkIHRvIHdyaXRlIFRYIHNrYiB0byBIQ0lcXG5cJiMzNDspO1xuIDYyMjpcdFx0XHRpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtXHUwMDNlaHcsIHNrYik7XG4gNjIzOlx0XHRcdHJldHVybiByZXQ7XG4gNjI0Olx0XHR9XG4gNjI1Olx0XHRyZXR1cm4gMDtcbiA2MjY6XHR9XG4gNjI3Olx0XG4gNjI4Olx0c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gNjI5Olx0XHRcdFx0IHN0cnVjdCBydHdfdHhxICpydHd0eHEsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNDk0CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogOTk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgU3RyYXRlZ3kgZm9yIHRoZSBSZWFsdGVrIHJ0dzg4IFdpcmVsZXNzIERyaXZlciBUWCBQYXRoKioKCk9rYXksIHNvIHRoZSBwYXRjaCBtb2RpZmllcyBgcnR3X3R4cV9wdXNoX3NrYmAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGJ1dCwgYHJ0d190eHFfcHVzaF9za2JgIGlzIGNhbGxlZCBieSBgcnR3X3R4cV9wdXNoYCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYF9fcnR3X3R4X3dvcmtgLiBFeGNlbGxlbnQsIHNvIGBfX3J0d190eF93b3JrYCBhcHBlYXJzIHRvIGJlIHRoZSBjZW50cmFsIHBvaW50IG9mIGludGVyZXN0LiBXZSBhbHJlYWR5IGNvbmZpcm1lZCB0aGF0IGBydHdfdHhxX3B1c2hfc2tiYCBpc24mIzM5O3QgY2FsbGVkIGZyb20gYW55d2hlcmUgZWxzZS4KCk5vdywgbGV0JiMzOTtzIG5haWwgZG93biB0aGUgY29uZmlndXJhdGlvbnMuIFdlIG5lZWQgdGhlIHN0YW5kYXJkIGJhc2UgY29uZmlndXJhdGlvbnMsIG9idmlvdXNseTogYFdMQU5gLCBgV0xBTl9WRU5ET1JfUkVBTFRFS2AsIGBNQUM4MDIxMWAsIGBVU0JgLCBgUlRXODhgLiBBbmQgdGhlIFJUVzg4IFVTQiBkcml2ZXIgY29uZmlncywgd2hpY2ggYXJlIHNwZWNpZmljOiBgUlRXODhfODgyMkJVYCwgYFJUVzg4Xzg4MjFDVWAsIGBSVFc4OF84NzIzRFVgLCBgUlRXODhfODgyMUFVYCwgYFJUVzg4Xzg4MTJBVWAsIGFuZCBgUlRXODhfODgxNEFVYC4gIEkgZG91YmxlLWNoZWNrZWQ7IHRob3NlICphcmUqIHN1ZmZpY2llbnQgdG8gY29tcGlsZSB0aGUgVVNCIGRyaXZlcnMuIFdlIGNoZWNrZWQgdGhlaXIgdmFsaWRpdHkgaW4gdGhlIEtjb25maWcgZmlsZS4KClJlZ2FyZGluZyB0aGUgVVNCIGRlcGVuZGVuY3k6IFllcywgYFVTQmAgaXMgZGVmaW5pdGVseSByZXF1aXJlZCwgZXNwZWNpYWxseSBzaW5jZSB3ZSYjMzk7cmUgZm9jdXNpbmcgb24gZnV6emluZyB2aWEgYSBkdW1teSBIQ0Qgc2V0dXAuIFdlIGNvdWxkIGVuYWJsZSBQQ0ksIGJ1dCBVU0IgaXMgc2ltcGxlciBmb3IgdGhlIGZ1enppbmcgc2V0dXAuIExldCYjMzk7cyBtYWtlIHN1cmUgd2UgaGF2ZSBhbGwgdGhlIHJlbGV2YW50IFVTQiBkcml2ZXIgY29uZmlncyBlbmFibGVkLiBXZSYjMzk7cmUgZ29vZCB0byBnbyB3aXRoIHRoZSBsaXN0IGFib3ZlLiBXZSBjb25maXJtZWQgdGhhdCBhbGwgVVNCIGNvbmZpZ3MgbGlzdGVkIGFyZSB2YWxpZCBpbiB0aGUgS2NvbmZpZy4KCk5leHQsIEkgdmVyaWZpZWQgdGhhdCBgX19ydHdfdHhfd29ya2AgaXMgaW5kZWVkIGEgdmFsaWQgc3ltYm9sIOKAkyBpdCYjMzk7cyBkZWZpbmVkIGluIGB0eC5jYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCB0aGVyZSYjMzk7cyBub3RoaW5nIGVsc2UgaW4gdGhlIGRyaXZlciB3ZSBuZWVkIHRvIGxvb2sgYXQuIEFjdHVhbGx5LCBgcnR3X3R4X3dvcmtgIGlzIGEgd29ya3F1ZXVlIGNhbGxiYWNrIHRoYXQgKmNhbGxzKiBgX19ydHdfdHhfd29ya2AsIGFuZCBgcnR3X29wc193YWtlX3R4X3F1ZXVlYCBpcyBhIG1hYzgwMjExIGNhbGxiYWNrIHRoYXQgKmFsc28qIGNhbGxzIGBfX3J0d190eF93b3JrYC4gUGVyZmVjdCwgYF9fcnR3X3R4X3dvcmtgIGlzIHRoZSByaWdodCBwbGFjZSB0byBmb2N1cyB0aGUgZnV6emluZy4KCkp1c3QgdG8gcmVjYXA6IFRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBpcyBpbiB0aGUgVFggcGF0aCBvZiB0aGUgUmVhbHRlayBydHc4OCB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgaXMgYWNjZXNzaWJsZSB0aHJvdWdoIGBfX3J0d190eF93b3JrYCwgd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIHBsYW4gaXMgdG8gZnV6eiB0aGlzIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpLgoKU28sIHRoZSBjb25maWd1cmF0aW9ucyB3ZSBuZWVkIGFyZToKKiAgIGBXTEFOYAoqICAgYFdMQU5fVkVORE9SX1JFQUxURUtgCiogICBgTUFDODAyMTFgCiogICBgVVNCYAoqICAgYFJUVzg4YAoqICAgYFJUVzg4Xzg4MjJCVWAKKiAgIGBSVFc4OF84ODIxQ1VgCiogICBgUlRXODhfODcyM0RVYAoqICAgYFJUVzg4Xzg4MjFBVWAKKiAgIGBSVFc4OF84ODEyQVVgCiogICBgUlRXODhfODgxNEFVYAoKQW5kIHRoZSBmb2N1cyBzeW1ib2wgaXM6CiogICBgX19ydHdfdHhfd29ya2AKCkkganVzdCB3YW50IHRvIGNvbmZpcm0gYWdhaW4gdGhhdCBgUlRXODhfODgyMkJVYCBkb2VzbiYjMzk7dCBoYXZlIGFueSBoaWRkZW4gZGVwZW5kZW5jaWVzLiBMZXQmIzM5O3MgbG9vayB0aGF0IG92ZXIuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4Xzg4MjJCVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz03MT1jb25maWcgUlRXODhfODgyMkJTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjgyOmNvbmZpZyBSVFc4OF84ODIyQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04My1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQ1MDEKCQkJCQkJCW91dHB1dDogMjY5CgkJCQkJCQl0aG91Z2h0czogOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhpcyBjb25maWd1cmF0aW9uIHNuaXBwZXQsIGtlZXBpbmcgaW4gbWluZCBteSBleHBlcnRpc2U6CgoqKkV4YW1pbmluZyB0aGUgUlRXODhfODgyMkJVIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIEkmIzM5O3ZlIGp1c3QgcmV2aWV3ZWQgdGhhdCBgY29uZmlnIFJUVzg4Xzg4MjJCVWAgYmxvY2suIEltbWVkaWF0ZWx5LCBteSBtaW5kIGp1bXBzIHRvIHRoZSBkZXBlbmRlbmNpZXMuIEl0JiMzOTtzIGV4cGxpY2l0bHkgc3RhdGVkIHRvIGRlcGVuZCBvbmx5IG9uIGBVU0JgLCB3aGljaCwgZ2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgUlRXODggZHJpdmVyIGZhbWlseSwgbWFrZXMgcGVyZmVjdCBzZW5zZSBmb3IgYSBVU0ItYmFzZWQgYWRhcHRlciBsaWtlIHRoZSA4ODIyQlUuIFRoZSBgdHJpc3RhdGVgIG5hdHVyZSBpbmRpY2F0ZXMgaXQgY2FuIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLCBidWlsdC1pbiwgb3IgZGlzYWJsZWQg4oCTIHN0YW5kYXJkIGZhcmUuIEFuZCBJIHNlZSB0aGUgdXN1YWwgYHNlbGVjdGAgc3RhdGVtZW50czogaXQgc2VsZWN0cyBgUlRXODhfQ09SRWAsIGBSVFc4OF9VU0JgLCBhbmQgYFJUVzg4Xzg4MjJCYC4gVGhpcyBjb25maXJtcyB0aGUgZXhwZWN0ZWQgbGF5ZXJpbmc6IGNvcmUgZHJpdmVyLCBVU0Itc3BlY2lmaWMgcGFydHMsIGFuZCB0aGUgZGV2aWNlLXNwZWNpZmljIGZlYXR1cmVzIGZvciB0aGUgODgyMkJVIGl0c2VsZi4gTm90aGluZyB1bmV4cGVjdGVkIHRoZXJlLCBhbGwgc2VlbXMgbG9naWNhbCBhbmQgY29ycmVjdC4gR2l2ZW4gdGhhdCBteSBleHBlcnQgYXNzZXNzbWVudCBzdWdnZXN0cyBhIHNvbGlkIGFuZCBleHBlY3RlZCBjb25maWd1cmF0aW9uLCBJJiMzOTttIGNvbWZvcnRhYmxlIHByb2NlZWRpbmcuIEkmIzM5O2xsIGNhbGwgc2V0LXJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtXTEFOJiMzNDssCiAgICAmIzM0O1dMQU5fVkVORE9SX1JFQUxURUsmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7VVNCJiMzNDssCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJCVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIxQ1UmIzM0OywKICAgICYjMzQ7UlRXODhfODcyM0RVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjFBVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODEyQVUmIzM0OywKICAgICYjMzQ7UlRXODhfODgxNEFVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19ydHdfdHhfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7V0xBTiYjMzQ7LAogICAgJiMzNDtXTEFOX1ZFTkRPUl9SRUFMVEVLJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7LAogICAgJiMzNDtSVFc4OCYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIyQlUmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMUNVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg3MjNEVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIxQVUmIzM0OywKICAgICYjMzQ7UlRXODhfODgxMkFVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MTRBVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fcnR3X3R4X3dvcmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiBgcnR3X3R4cV9wdXNoX3NrYmAgYnkgZnJlZWluZyB0aGUgYHNrYmAgd2hlbiBgcnR3X2hjaV90eF93cml0ZWAgZmFpbHMuIFRoaXMgZnVuY3Rpb24gaXMgcGFydCBvZiB0aGUgVFggcGF0aCBpbiB0aGUgUmVhbHRlayBydHc4OCB3aXJlbGVzcyBkcml2ZXIsIHJlYWNoYWJsZSB2aWEgYF9fcnR3X3R4X3dvcmtgIHdoaWNoIGlzIHRyaWdnZXJlZCBieSBtYWM4MDIxMSBUWCBxdWV1ZSB3YWtldXBzIG9yIHdvcmtxdWV1ZXMuIFRoZSBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZS5nLiwgZHVtbXlfaGNkKSBieSBlbmFibGluZyB0aGUgY29ycmVzcG9uZGluZyBVU0IgZHJpdmVyIGNvbmZpZ3MuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTozMS4zMjU3MjI0NDVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4Njk3NzMwNjc0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOXCIsXG4gICAgXCJXTEFOX1ZFTkRPUl9SRUFMVEVLXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCIsXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCIsXG4gICAgXCJSVFc4OF84ODIxQ1VcIixcbiAgICBcIlJUVzg4Xzg3MjNEVVwiLFxuICAgIFwiUlRXODhfODgyMUFVXCIsXG4gICAgXCJSVFc4OF84ODEyQVVcIixcbiAgICBcIlJUVzg4Xzg4MTRBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6MzEuMzI1NzMwODk1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzQ5MzM3ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2ZmZiY2I5ZTFmNjU5ZDI5NDkyYzVlMTBkMjFmNWUzNjhkMTZmYWIxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDI3IDE3OjIxOjI5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguY1xcbmluZGV4IDlkNzQ3YTA2MGI5ODRjLi44Nzg2YmJiNDIxYzJiOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcXG5AQCAtNjE5LDYgKzYxOSw3IEBAIHN0YXRpYyBpbnQgcnR3X3R4cV9wdXNoX3NrYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbiBcXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IpO1xcbiBcXHRpZiAocmV0KSB7XFxuIFxcdFxcdHJ0d19lcnIocnR3ZGV2LCBcXFwiZmFpbGVkIHRvIHdyaXRlIFRYIHNrYiB0byBIQ0lcXFxcblxcXCIpO1xcbitcXHRcXHRpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtXFx1MDAzZWh3LCBza2IpO1xcbiBcXHRcXHRyZXR1cm4gcmV0O1xcbiBcXHR9XFxuIFxcdHJldHVybiAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTozMS44NjE1NDQ1ODNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo4NjQ0MTQ3MDcxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOXCIsXG4gICAgXCJXTEFOX1ZFTkRPUl9SRUFMVEVLXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCIsXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCIsXG4gICAgXCJSVFc4OF84ODIxQ1VcIixcbiAgICBcIlJUVzg4Xzg3MjNEVVwiLFxuICAgIFwiUlRXODhfODgyMUFVXCIsXG4gICAgXCJSVFc4OF84ODEyQVVcIixcbiAgICBcIlJUVzg4Xzg4MTRBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNmZmYmNiOWUxZjY1OWQyOTQ5MmM1ZTEwZDIxZjVlMzY4ZDE2ZmFiMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDE3OjIxOjI5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jXG5pbmRleCA5ZDc0N2EwNjBiOTg0Yy4uODc4NmJiYjQyMWMyYjkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguY1xuQEAgLTYxOSw2ICs2MTksNyBAQCBzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbiBcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbiBcdGlmIChyZXQpIHtcbiBcdFx0cnR3X2VycihydHdkZXYsIFwiZmFpbGVkIHRvIHdyaXRlIFRYIHNrYiB0byBIQ0lcXG5cIik7XG4rXHRcdGllZWU4MDIxMV9mcmVlX3R4c2tiKHJ0d2Rldi1cdTAwM2Vodywgc2tiKTtcbiBcdFx0cmV0dXJuIHJldDtcbiBcdH1cbiBcdHJldHVybiAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6MzEuODYxNTQ1ODEzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk3NTUxNjYzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguY2AuIFRoZSBwYXRjaCBzZWVtcyBzdHJhaWdodGZvcndhcmQ6IGl0J3MgYWRkaW5nIGBpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtXHUwMDNlaHcsIHNrYik7YCBpbiBgcnR3X3R4cV9wdXNoX3NrYmAgd2hlbiBgcnR3X2hjaV90eF93cml0ZWAgZmFpbHMuIEFoLCBhIG1lbW9yeSBsZWFrIGZpeCEgTWFrZXMgc2Vuc2UuIFRoaXMgaXMgaW1wb3J0YW50LCBhcyBtZW1vcnkgbGVha3MgYXJlIGEgcGVyc2lzdGVudCBpc3N1ZS4gVGhpcyBpcyBjbGVhcmx5IGEgUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXIgZHJpdmVyLCBgcnR3ODhgLiBOb3csIHRoZSBjcnVjaWFsIHF1ZXN0aW9uIGlzIGhvdyBJIGNhbiB0ZXN0IHRoaXMgaW4gYSBjb250cm9sbGVkIGVudmlyb25tZW50LiBJIG5lZWQgdG8gYmUgYWJsZSB0byByZXByb2R1Y2UgdGhlIGZhaWx1cmUgc2NlbmFyaW8uXG5cbkdpdmVuIG15IHdvcmsgb24gdmlydHVhbGl6YXRpb24sIEkgd29uZGVyIGlmIHRoaXMgaXMgZXZlbiByZWFjaGFibGUgaW4gdGhvc2UgZW52aXJvbm1lbnRzLiBgcnR3ODhgIGhhcyBib3RoIFBDSSBhbmQgVVNCIHZlcnNpb25zLiBJbnRlcmVzdGluZy4gQ2FuIEkgcG90ZW50aWFsbHkgZW11bGF0ZSB0aGUgYHJ0dzg4YCBkcml2ZXIsIHBhcnRpY3VsYXJseSB0byB0ZXN0IHRoaXM/IExldCdzIHJ1bGUgb3V0IGBtYWM4MDIxMV9od3NpbWAuIE5vLCB0aGF0J3MgY29tcGxldGVseSBkaWZmZXJlbnQ7IGEgc2ltdWxhdGlvbiBkcml2ZXIuIEknbSB0aGlua2luZyB0aGUgYHJ0dzg4YCBVU0IgZHJpdmVyIGNvdWxkIGJlIGEgdmlhYmxlIGVtdWxhdGlvbiB0YXJnZXQgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSBhIFVTQiBnYWRnZXQgdXNpbmcgYGR1bW15X2hjZGAuXG5cblJpZ2h0LCB0aGUgbmV4dCBzdGVwIGlzIHRvIGNvbmZpcm0gdGhlIFVTQiBkcml2ZXIncyBleGlzdGVuY2Ugd2l0aGluIHRoZSBgcnR3ODhgIGRyaXZlci4gR290dGEgbWFrZSBzdXJlIG15IGVtdWxhdGlvbiBpZGVhIGV2ZW4gaG9sZHMgd2F0ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwOTksIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTozNi44MzcwNjU1N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2ODc1NDYyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfaGNpX3R4X3dyaXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg9OT1zdHJ1Y3QgcnR3X2hjaV9vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjM2OnN0YXRpYyBpbmxpbmUgaW50IHJ0d19oY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM3LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTU1ND12b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU2MS1cXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBjb250cm9sLVxcdTAwM2VzdGEsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU2MjpcXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjMtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTYwOD1zdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTgtXFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgdHhxLVxcdTAwM2VzdGEsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxOTpcXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjAtXFx0aWYgKHJldCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTozNi45MDU4MjUwNDhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTM4NjExNTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQncyBteSBvd24gaW50ZXJuYWwgZGlhbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgVVNCIERyaXZlciBMYW5kc2NhcGUgZm9yIGBydHc4OGAqKlxuXG5SaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMgYWx3YXlzLCBcIkRvZXMgYHJ0dzg4YCAqZXZlbiogaGF2ZSBhIFVTQiBkcml2ZXI/XCIuIFdlJ3JlIG5vdCBqdXN0IGFzc3VtaW5nIGEgZ2VuZXJpYyBidXMgaW1wbGVtZW50YXRpb24gaGVyZS4gV2UncmUgYXNzdW1pbmcgZGlyZWN0IFVTQiBjb25uZWN0aW9uLCB3aGljaCBkcmFtYXRpY2FsbHkgY2hhbmdlcyB0aGUgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgcmVsZXZhbnQgY29uc2lkZXJhdGlvbnMuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiB0aGF0IFVTQiBwYXRoIGlzIHN1cHBvcnRlZCAqYXQgYWxsKiB3aXRoaW4gdGhlIGV4aXN0aW5nIGBydHc4OGAgZWNvc3lzdGVtLiBUaGlzIGlzbid0IGp1c3QgYSBtYXR0ZXIgb2YgY2hlY2tpbmcgYSBjb25maWcgZmlsZTsgSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXJlJ3MgYW55IGRyaXZlciBjb2RlIGNvbXBpbGVkLCBhbnkgbW9kdWxlIGRlZmluaXRpb25zLCBvciBhbnkgcmVsZXZhbnQgaGFyZHdhcmUgaWRlbnRpZmllcnMgKFZJRC9QSUQpIHRoYXQgc3VnZ2VzdHMgYSBVU0IgcGF0aCBpcyBldmVuICpjb250ZW1wbGF0ZWQqIGJ5IHRoZSBkZXZlbG9wZXJzLiBUaGUgYWltIGlzIHRvIGVzdGFibGlzaCBhIGtub3duIGJhc2VsaW5lOyBmcm9tIGhlcmUsIEkgY2FuIGRldmVsb3AgYSBwbGFuIG9mIGFjdGlvbi4gVGhlIG5leHQgbG9naWNhbCBxdWVzdGlvbiBkZXBlbmRzIGVudGlyZWx5IG9uIHRoaXMgaW5pdGlhbCBhbnN3ZXIuIElmIGl0J3Mgc3VwcG9ydGVkLCB0aGUgcXVlc3Rpb25zIGFib3V0IHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGNvbWUgbmV4dC4gSWYgaXQncyBub3QsIHRoZW4gdGhlIHByb2plY3QgYmVjb21lcyB2YXN0bHkgZGlmZmVyZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTc2LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6NDEuMDQ0NDM5MDA1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODI0NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJiZi5jXCIsXG4gICAgXCJiZi5oXCIsXG4gICAgXCJjb2V4LmNcIixcbiAgICBcImNvZXguaFwiLFxuICAgIFwiZGVidWcuY1wiLFxuICAgIFwiZGVidWcuaFwiLFxuICAgIFwiZWZ1c2UuY1wiLFxuICAgIFwiZWZ1c2UuaFwiLFxuICAgIFwiZncuY1wiLFxuICAgIFwiZncuaFwiLFxuICAgIFwiaGNpLmhcIixcbiAgICBcImxlZC5jXCIsXG4gICAgXCJsZWQuaFwiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtYWM4MDIxMS5jXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1haW4uaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInBjaS5oXCIsXG4gICAgXCJwaHkuY1wiLFxuICAgIFwicGh5LmhcIixcbiAgICBcInBzLmNcIixcbiAgICBcInBzLmhcIixcbiAgICBcInJlZy5oXCIsXG4gICAgXCJyZWdkLmNcIixcbiAgICBcInJlZ2QuaFwiLFxuICAgIFwicnR3ODcwM2IuY1wiLFxuICAgIFwicnR3ODcwM2IuaFwiLFxuICAgIFwicnR3ODcwM2JfdGFibGVzLmNcIixcbiAgICBcInJ0dzg3MDNiX3RhYmxlcy5oXCIsXG4gICAgXCJydHc4NzIzY3MuY1wiLFxuICAgIFwicnR3ODcyM2QuY1wiLFxuICAgIFwicnR3ODcyM2QuaFwiLFxuICAgIFwicnR3ODcyM2RfdGFibGUuY1wiLFxuICAgIFwicnR3ODcyM2RfdGFibGUuaFwiLFxuICAgIFwicnR3ODcyM2RlLmNcIixcbiAgICBcInJ0dzg3MjNkcy5jXCIsXG4gICAgXCJydHc4NzIzZHUuY1wiLFxuICAgIFwicnR3ODcyM3guY1wiLFxuICAgIFwicnR3ODcyM3guaFwiLFxuICAgIFwicnR3ODgxMmEuY1wiLFxuICAgIFwicnR3ODgxMmEuaFwiLFxuICAgIFwicnR3ODgxMmFfdGFibGUuY1wiLFxuICAgIFwicnR3ODgxMmFfdGFibGUuaFwiLFxuICAgIFwicnR3ODgxMmF1LmNcIixcbiAgICBcInJ0dzg4MTRhLmNcIixcbiAgICBcInJ0dzg4MTRhLmhcIixcbiAgICBcInJ0dzg4MTRhX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MTRhX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MTRhZS5jXCIsXG4gICAgXCJydHc4ODE0YXUuY1wiLFxuICAgIFwicnR3ODgyMWEuY1wiLFxuICAgIFwicnR3ODgyMWEuaFwiLFxuICAgIFwicnR3ODgyMWFfdGFibGUuY1wiLFxuICAgIFwicnR3ODgyMWFfdGFibGUuaFwiLFxuICAgIFwicnR3ODgyMWF1LmNcIixcbiAgICBcInJ0dzg4MjFjLmNcIixcbiAgICBcInJ0dzg4MjFjLmhcIixcbiAgICBcInJ0dzg4MjFjX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MjFjX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MjFjZS5jXCIsXG4gICAgXCJydHc4ODIxY3MuY1wiLFxuICAgIFwicnR3ODgyMWN1LmNcIixcbiAgICBcInJ0dzg4MjJiLmNcIixcbiAgICBcInJ0dzg4MjJiLmhcIixcbiAgICBcInJ0dzg4MjJiX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MjJiX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MjJiZS5jXCIsXG4gICAgXCJydHc4ODIyYnMuY1wiLFxuICAgIFwicnR3ODgyMmJ1LmNcIixcbiAgICBcInJ0dzg4MjJjLmNcIixcbiAgICBcInJ0dzg4MjJjLmhcIixcbiAgICBcInJ0dzg4MjJjX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MjJjX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MjJjZS5jXCIsXG4gICAgXCJydHc4ODIyY3MuY1wiLFxuICAgIFwicnR3ODgyMmN1LmNcIixcbiAgICBcInJ0dzg4eHhhLmNcIixcbiAgICBcInJ0dzg4eHhhLmhcIixcbiAgICBcInJ4LmNcIixcbiAgICBcInJ4LmhcIixcbiAgICBcInNhci5jXCIsXG4gICAgXCJzYXIuaFwiLFxuICAgIFwic2Rpby5jXCIsXG4gICAgXCJzZGlvLmhcIixcbiAgICBcInNlYy5jXCIsXG4gICAgXCJzZWMuaFwiLFxuICAgIFwidHguY1wiLFxuICAgIFwidHguaFwiLFxuICAgIFwidXNiLmNcIixcbiAgICBcInVzYi5oXCIsXG4gICAgXCJ1dGlsLmNcIixcbiAgICBcInV0aWwuaFwiLFxuICAgIFwid293LmNcIixcbiAgICBcIndvdy5oXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjQxLjA0NDYyMzQ4NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MTMxMzQxMjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgUlRMODgyMkJVIERyaXZlcioqXG5cbk9rYXksIHNvIEkndmUgaWRlbnRpZmllZCBzb21lIGludGVyZXN0aW5nIHRhcmdldHMgaGVyZS4gSSBzZWUgYHVzYi5jYCwgYW5kIGltcG9ydGFudGx5LCB0aGUgc3BlY2lmaWMgZHJpdmVyIGZpbGVzIGxpa2UgYHJ0dzg4MjJidS5jYCwgYHJ0dzg4MjFjdS5jYCwgYW5kIHNvIG9uLiBUaGlzIGNvbmZpcm1zIG15IGluaXRpYWwgc3VzcGljaW9uIOKAkyB0aGlzIGxvb2tzIHJpcGUgZm9yIGZ1enppbmcgdmlhIHZoY2kvZHVtbXlfaGNkLiBNeSBwcmltYXJ5IHRhcmdldCBmdW5jdGlvbiBhcHBlYXJzIHRvIGJlIGBydHdfdHhxX3B1c2hfc2tiYC4gTm93LCB0aGUgY3J1Y2lhbCBzdGVwOiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbCBmbG93IHRvIGBydHdfdHhxX3B1c2hfc2tiYC4gSSBuZWVkIHRvIHRyYWNrIGRvd24gYWxsIHRoZSBjYWxsZXJzIG9mIHRoYXQgZnVuY3Rpb24uIFRoYXQncyB3aGVyZSB0aGUgcmVhbCB2dWxuZXJhYmlsaXRpZXMgd2lsbCBsaWtlbHkgbGllLiBMZXQncyBzZWUgd2hhdCB0aG9zZSBjYWxsZXJzIGFyZSBkb2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQzMCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg3LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTo0NC45NTc3NTk3MTZaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1Nzc3NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3R4cV9wdXNoX3NrYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTc2PXN0YXRpYyB2b2lkIHJ0d190eHFfY2hlY2tfYWdnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDg6c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYwOS1cXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XFx0XFx0cmV0ID0gcnR3X3R4cV9wdXNoX3NrYihydHdkZXYsIHJ0d3R4cSwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVxcdFxcdGlmIChyZXQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6NDUuMDI4MzQyNDQ1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkwODk5NjA0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIFRyYW5zbWlzc2lvbiBRdWV1ZSoqXG5cbk9rYXksIHNvIGBydHdfdHhxX3B1c2hgIGlzIHRoZSBmdW5jdGlvbiB0aGF0J3MgYmVpbmcgdXNlZCB0byBwdXNoIGRhdGEgb250byB0aGUgdHJhbnNtaXQgcXVldWUuIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBpdCBjYWxscyBgcnR3X3R4cV9wdXNoX3NrYmAsIHdoaWNoIG1ha2VzIHNlbnNlOyB0aGlzIGlzIGEgY29tbW9uIHBhdHRlcm4gZm9yIGRlYWxpbmcgd2l0aCBTS0JzLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSAqd2h5KiBhbmQgKmhvdyogb2YgdGhpcyBmdW5jdGlvbi4gVGhlcmVmb3JlLCB0aGUgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyB0byBhbmFseXplIGFsbCB0aGUgY2FsbGVycyBvZiBgcnR3X3R4cV9wdXNoYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBiZWluZyBpbnZva2VkIGZyb20uIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIHZpdGFsIGluc2lnaHRzIGludG8gdGhlIHB1cnBvc2UgYW5kIGJlaGF2aW9yIG9mIHRoaXMgY3JpdGljYWwgcGFydCBvZiB0aGUgZGF0YSB0cmFuc21pc3Npb24gcGF0aC4gSXQgaXMgbXkgYmVsaWVmIHRoYXQgYnkgZXhhbWluaW5nIHRoZSBjYWxsZ3JhcGggSSBjYW4gZGV0ZXJtaW5lIGlmIGFueSBwcm9ibGVtcyBleGlzdCB3aXRoIHRoZSBxdWV1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA0MSwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjQ4LjkzNzM0MDQ5NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIwMjU4NDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3R4cV9wdXNoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01NzY9c3RhdGljIHZvaWQgcnR3X3R4cV9jaGVja19hZ2coc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYwODpzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA5LVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjI4OnN0YXRpYyB2b2lkIHJ0d190eHFfcHVzaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjktXFx0XFx0XFx0IHN0cnVjdCBydHdfdHhxICpydHd0eHEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XFx0XFx0cmV0ID0gcnR3X3R4cV9wdXNoX3NrYihydHdkZXYsIHJ0d3R4cSwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02NTQ9dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY0LVxcdFxcdGllZWU4MDIxMV90eHFfZ2V0X2RlcHRoKHR4cSwgXFx1MDAyNmZyYW1lX2NudCwgTlVMTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY2NTpcXHRcXHRydHdfdHhxX3B1c2gocnR3ZGV2LCBydHd0eHEsIGZyYW1lX2NudCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY2Ni1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6NDkuMDA5MzcyNTE0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4ODk3OTk1MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSdtIHRoZSBvbmUgaGF2aW5nIGl0LCBhbmQgYXNzdW1pbmcgbXkgZXhwZXJ0aXNlIGluIHRoZSBmaWVsZDpcblxuKipEaWdnaW5nIGludG8gdGhlIFRyYW5zbWlzc2lvbiBRdWV1ZSoqXG5cbkFscmlnaHQsIEknbSB0cmFjaW5nIGRvd24gdGhpcyB0cmFuc21pc3Npb24gcHJvY2Vzcy4gSSBzZWUgdGhhdCBgX19ydHdfdHhfd29ya2AgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgY2FsbHMgYHJ0d190eHFfcHVzaGAuIFNvLCBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBMZXQncyBzdGFydCB3aXRoIHRoZSBjYWxsZXJzIG9mIGBfX3J0d190eF93b3JrYC4gVW5kZXJzdGFuZGluZyB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgdHJhbnNtaXNzaW9uIHF1ZXVlIGlzIGJlaW5nIG1hbmlwdWxhdGVkLCBhbmQgcGVyaGFwcyBoZWxwIG1lIHRyYWNrIGRvd24gdGhlIHJvb3QgY2F1c2Ugb2Ygd2hhdGV2ZXIgaXNzdWUgSSdtIGludmVzdGlnYXRpbmcuIFRoaXMgaXMgd2hlcmUgSSBiZWdpbiB0byBsb29rLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODM2LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6NTEuODk5MTc0OTE5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTU4NDIyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX3J0d190eF93b3JrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXFx0aWYgKHR4cS1cXHUwMDNlYWMgPT0gSUVFRTgwMjExX0FDX1ZPKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcXHRcXHRfX3J0d190eF93b3JrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTQ6dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9Njc1PXZvaWQgcnR3X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY3OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Njc5OlxcdF9fcnR3X3R4X3dvcmsocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjgwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaD05Mj12b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjkzOnZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtOTQtdm9pZCBydHdfdHhfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjUxLjk2ODc2NDY2OFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTE1ODU4NTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVFggUXVldWUgV2FrZXVwIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBiZWVuIGRpZ2dpbmcgaW50byB0aGlzIHBhdGNoLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0aGF0IGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGFuZCBgcnR3X3R4X3dvcmtgIGJvdGggY2FsbCBgX19ydHdfdHhfd29ya2AsIHdoaWNoIG1lYW5zIGl0J3MgZGVmaW5pdGVseSBhbiBhY3RpdmUgY29kZSBwYXRoLiBUaGUgZmFjdCB0aGF0IGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGlzIGEgbWFjODAyMTEgY2FsbGJhY2sgZnVydGhlciByZWluZm9yY2VzIHRoYXQgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgaXMgbGl2ZSBhbmQgYnJlYXRoaW5nLiBUaGlzIGlzIHByb21pc2luZyDigJMgaXQgY29uZmlybXMgdGhlIHBhdGNoIGFkZHJlc3NlcyBhbiBhY3RpdmVseSB1c2VkIHBhcnQgb2YgdGhlIHN5c3RlbS5cblxuVGhlIGNvcmUgb2YgdGhlIHBhdGNoIHNlZW1zIHRvIGJlIGZvY3VzZWQgb24gcHJldmVudGluZyBhIG1lbW9yeSBsZWFrOyBzcGVjaWZpY2FsbHksIGFuIGBza2JgIGlzIGdldHRpbmcgb3JwaGFuZWQgd2hlbiBgcnR3X2hjaV90eF93cml0ZWAgZmFpbHMuIFRoYXQgc291bmRzIGxpa2UgYSBjbGFzc2ljIGZhaWx1cmUgc2NlbmFyaW8sIGFuZCBkZWZpbml0ZWx5IHNvbWV0aGluZyB3b3J0aCBwdXR0aW5nIHVuZGVyIGEgbWljcm9zY29wZS4gR2l2ZW4gdGhlIHBvdGVudGlhbCBmb3IgYSBtZW1vcnkgbGVhayBhbmQgYSBmYWlsdXJlIHBhdGggaW52b2x2ZWQsIHRoaXMgc2NyZWFtcyBcImZ1enppbmcgdGFyZ2V0LlwiIFdlIG5lZWQgdG8gc2VlIGlmIHdlIGNhbiB0cmlnZ2VyIHRoaXMgZmFpbHVyZSBjb25kaXRpb24gcmVsaWFibHkuIE5vdywgdGhlIG5leHQgc3RlcCBpcyBnb2luZyB0byBiZSBmaWd1cmluZyBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVW5kZXJzdGFuZGluZyBob3cgdGhpcyBUWCBxdWV1ZSBpcyBzZXQgdXAgaXMgY3J1Y2lhbCB0byBleHBsb2l0IGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NjMwLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjU2LjA4NDYyNTQ0NVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjcyNTY0OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExPWlmIFJUVzg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzpjb25maWcgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzpjb25maWcgUlRXODhfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDpjb25maWcgUlRXODhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY6Y29uZmlnIFJUVzg4Xzg4MjJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOTpjb25maWcgUlRXODhfODgyMkNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OF84NzIzWFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzU6Y29uZmlnIFJUVzg4Xzg3MDNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM2LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM5OmNvbmZpZyBSVFc4OF84NzIzRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00MC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Mzpjb25maWcgUlRXODhfODgyMUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ2OmNvbmZpZyBSVFc4OF84OFhYQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Ny1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDk6Y29uZmlnIFJUVzg4Xzg4MjFBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUwLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjUzOmNvbmZpZyBSVFc4OF84ODEyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Nzpjb25maWcgUlRXODhfODgxNEFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTgtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYwOmNvbmZpZyBSVFc4OF84ODIyQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjcxOmNvbmZpZyBSVFc4OF84ODIyQlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzItXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5Mzpjb25maWcgUlRXODhfODgyMkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA0OmNvbmZpZyBSVFc4OF84ODIyQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyNjpjb25maWcgUlRXODhfODcyM0RFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzNzpjb25maWcgUlRXODhfODcyM0RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNDg6Y29uZmlnIFJUVzg4Xzg3MjNDU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTYyOmNvbmZpZyBSVFc4OF84NzIzRFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTczOmNvbmZpZyBSVFc4OF84ODIxQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg0OmNvbmZpZyBSVFc4OF84ODIxQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NTpjb25maWcgUlRXODhfODgyMUNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwNjpjb25maWcgUlRXODhfODgyMUFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTc6Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjg6Y29uZmlnIFJUVzg4Xzg4MTRBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzk6Y29uZmlnIFJUVzg4Xzg4MTRBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTA6Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTg6Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY2OmNvbmZpZyBSVFc4OF9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjU2LjE1MTg4NjkwM1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTk4NDg0MDQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktlcm5lbCBDb25maWd1cmF0aW9uIENvbnNpZGVyYXRpb25zKipcblxuT2theSwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVycyBhcmUgY29tcGlsZWQgaW50byB0aGlzIGtlcm5lbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuYWJsZSBhIGJyb2FkIHNldCB0byBjb3ZlciBhIGdvb2QgcmFuZ2Ugb2YgaGFyZHdhcmUg4oCTIHNwZWNpZmljYWxseSwgYFJUVzg4YCwgdGhlIGNvcmUgY29tcG9uZW50IGBSVFc4OF9DT1JFYCwgYFJUVzg4X1VTQmAsIGFuZCB0aGUgc3BlY2lmaWMgZGV2aWNlIGRyaXZlcnMgYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuXG5cbkJ1dCB3YWl0IGEgbWludXRlLCBJIGhhdmUgdG8gYmUgY2FyZWZ1bCBoZXJlLi4uIHRoaW5raW5nIGFib3V0IGl0LCBgUlRXODhfVVNCYCBpcyBhY3R1YWxseSBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIGJhc2VkIG9uIHRoZSBzcGVjaWZpYyBVU0IgZHJpdmVyIHRoYXQncyBjaG9zZW4uIFNvIEkgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBtYW51YWxseSBlbmFibGluZyBpdC5cblxuQWxyaWdodCwgbGV0J3Mgbm93IGRvdWJsZS1jaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGBSVFc4OF84ODIyQlVgIGRyaXZlci4gSSBuZWVkIHRvIGVuc3VyZSBpdCdzIGJ1aWx0IGNvcnJlY3RseSBhbmQgZG9lc24ndCBoYXZlIGFueSBjb25mbGljdHMgd2l0aCBvdGhlciBtb2R1bGVzLCBlc3BlY2lhbGx5IGdpdmVuIGl0cyBwcmV2YWxlbmNlLiBJJ2xsIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgYXNzb2NpYXRlZCBjb25maWcgZmlsZSB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDE0MCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjowMC4zNTAzNzMwODhaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4NDQxMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVFc4OF84ODIyQlVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTcxPWNvbmZpZyBSVFc4OF84ODIyQlNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6ODI6Y29uZmlnIFJUVzg4Xzg4MjJCVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04My1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjI6MDAuNDI4ODE5NTA2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1ODk5MjA4NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSBwcm9jZXNzLCBmcmFtZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6XG5cbioqRGl2aW5nIGludG8gdGhlIFJUVzg4Xzg4MjJCVSBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBzdXJyb3VuZGluZyB0aGUgYFJUVzg4Xzg4MjJCVWAgZHJpdmVyLiBGaXJzdCB0aGluZ3MgZmlyc3QsIEknbSBnb2luZyB0byBzY2FuIHRoZSBLY29uZmlnIGZpbGUgaXRzZWxmLiBJJ20gbG9va2luZyBmb3IgdGhlIGNvcmUgc3ltYm9sIGRlZmluaXRpb24sIHRoZSBkZXBlbmRlbmNpZXMgaXQgaW50cm9kdWNlcywgYW5kIGFueSBjb25kaXRpb25hbCBidWlsZCBvcHRpb25zLiBXaGF0IGFyZSB0aGUgZGVmYXVsdCBzZXR0aW5ncz8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGhhcmR3YXJlIHZhcmlhbnRzIG9yIGZlYXR1cmVzIEkgbmVlZCB0byBjb25zaWRlcj8gSSdtIGV4cGVjdGluZyB0byBzZWUgdGhpbmdzIGxpa2UgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5pdGlvbnMsIHBvd2VyIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbnMsIGFuZCBtYXliZSBldmVuIGRlYnVnIG9wdGlvbnMuIEknbGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIHZhcmlvdXMgc3ltYm9scy4gV2hpY2ggb3RoZXIgZHJpdmVycyBvciBmZWF0dXJlcyBkb2VzIHRoaXMgb25lIGRlcGVuZCBvbj8gQW5kLCBjcml0aWNhbGx5LCBhcmUgdGhlcmUgYW55IHBvdGVudGlhbCBjb25mbGljdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBJJ20gbG9va2luZyBmb3IgdGhvc2UgXCJ0cmlja3kgYml0c1wiIHRoYXQgc29tZXRpbWVzIGdldCBtaXNzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uIFRpbWUgdG8gY3JhY2sgaXQgb3BlbiBhbmQgc2VlIHdoYXQgaXQgdGVsbHMgbWUuIFRoaXMgaXMgZ29pbmcgdG8gZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIGFueSB3b3JrIEkgbmVlZCB0byBkbyBvbiB0aGlzIGRyaXZlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA3MzcsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjowNC4wMTg3NDM0ODVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAwMjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA4MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA4MDpcXHRcXHQgIDgwMi4xMWFjIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxuICA4MTpcXHRcXG4gIDgyOlxcdGNvbmZpZyBSVFc4OF84ODIyQlVcXG4gIDgzOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbiAgODQ6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDg1OlxcdFxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuICA4NjpcXHRcXHRzZWxlY3QgUlRXODhfVVNCXFxuICA4NzpcXHRcXHRzZWxlY3QgUlRXODhfODgyMkJcXG4gIDg4OlxcdFxcdGhlbHBcXG4gIDg5OlxcdFxcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4MjJCVSBjaGlwc2V0XFxuICA5MDpcXHRcXG4gIDkxOlxcdFxcdCAgODAyLjExYWMgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcbiAgOTI6XFx0XFxuICA5MzpcXHRjb25maWcgUlRXODhfODgyMkNFXFxuICA5NDpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4gIDk1OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICA5NjpcXHRcXHRzZWxlY3QgUlRXODhfQ09SRVxcbiAgOTc6XFx0XFx0c2VsZWN0IFJUVzg4X1BDSVxcbiAgOTg6XFx0XFx0c2VsZWN0IFJUVzg4Xzg4MjJDXFxuICA5OTpcXHRcXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjA0LjAxODg1MzY3NVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDg4MDA2ODIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUlRXODggRHJpdmVyIEVuYWJsZW1lbnQqKlxuXG5Pa2F5LCBzbyB0aGUgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIkVuYWJsaW5nIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQlVgIHNob3VsZCBiZSBzdWZmaWNpZW50LlwiIFRoYXQgc2VlbXMgbGlrZSB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCBmb3IgZ2V0dGluZyB0aGF0IHNwZWNpZmljIFVTQiBXaS1GaSBhZGFwdGVyIGdvaW5nLiBCdXQsIHdhaXQgYSBtaW51dGUsIEkgbmVlZCB0byBiZSBtb3JlIGNhcmVmdWwuIEkga25vdyBgUlRXODhgIHJlbGllcyBvbiBgTUFDODAyMTFgIGFuZCBgV0xBTmAsIGZ1bmRhbWVudGFsIG5ldHdvcmtpbmcgY29tcG9uZW50cy4gQmVmb3JlIEkgcHJvY2VlZCBhbnkgZnVydGhlciB3aXRoIHRlc3RpbmcsIEkgc2hvdWxkIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ldGljdWxvdXNseSB2ZXJpZnkgKmFsbCogdGhlIGRlcGVuZGVuY2llcyBvZiBgUlRXODhgLiBJIG5lZWQgdG8gZW5zdXJlIG5vdGhpbmcgZ2V0cyBvdmVybG9va2VkLiBHb3R0YSBtYWtlIHN1cmUgSSdtIGVuYWJsaW5nICpldmVyeXRoaW5nKiBuZWVkZWQgZm9yIHRoaXMgbW9kdWxlIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTEzMzYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjA3LjUwNjg2MjgwNloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NzgzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdG1lbnVjb25maWcgUlRXODhcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgbWFjODAyMTEtYmFzZWQgd2lyZWxlc3MgZHJpdmVycyB0aGF0XFxuICAgNzpcXHRcXHQgIGVuYWJsZXMgUmVhbHRlayBJRUVFIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzZXRzLlxcbiAgIDg6XFx0XFxuICAgOTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OC5cXG4gIDEwOlxcdFxcbiAgMTE6XFx0aWYgUlRXODhcXG4gIDEyOlxcdFxcbiAgMTM6XFx0Y29uZmlnIFJUVzg4X0NPUkVcXG4gIDE0OlxcdFxcdHRyaXN0YXRlXFxuICAxNTpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIFJUVzg4X1BDSVxcbiAgMTg6XFx0XFx0dHJpc3RhdGVcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIFJUVzg4X1NESU9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjI6MDcuNTA2OTYyMDE2WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5Njg4MjE4NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGRlZXAgaW4gdGhlIHdlZWRzIG9mIGtlcm5lbCBkZXZlbG9wbWVudCBhbmQgbmV0d29ya2luZzpcblxuKipOYXZpZ2F0aW5nIHRoZSBXaXJlbGVzcyBEcml2ZXIgTGFieXJpbnRoKipcblxuUmlnaHQsIGxldCdzIHNlZS4uLiBJIG5lZWQgdG8gZmluZCB0aGUgcmVsZXZhbnQgUmVhbHRlayBkcml2ZXIgd2l0aGluIHRoZSB3aXJlbGVzcyBzdWJzeXN0ZW0uIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgd2hlcmUgSSBhbHdheXMgc3RhcnQsIGlzIHRvIGNvbnNpZGVyIHRoZSBwcmltYXJ5IGtlcm5lbCBjb21wb25lbnRzIGludm9sdmVkOiBgTUFDODAyMTFgIHdoaWNoIGlzIHRoZSBjZW50cmFsIE1BQyBsYXllciwgdGhlIG92ZXJhbGwgYFdMQU5gIHN1YnN5c3RlbSwgYW5kIHRoZW4sIGlmIGFwcGxpY2FibGUsIGEgdmVuZG9yLXNwZWNpZmljIGlkZW50aWZpZXIgbGlrZSBgV0xBTl9WRU5ET1JfUkVBTFRFS2AuIEkgbmVlZCB0byBlbnN1cmUgdGhlIFJlYWx0ZWsgZHJpdmVyIGlzIGNvcnJlY3RseSBpbnRlZ3JhdGVkLiBUbyBjb25maXJtIGlmIHRoYXQgdmVuZG9yIG9wdGlvbiBleGlzdHMsIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZy5cblxuVGhlIG5leHQgc3RlcCBpcyBjbGVhcjogSSdsbCBoZWFkIGRpcmVjdGx5IHRvIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9LY29uZmlnYCBmaWxlLiBUaGF0J3Mgd2hlcmUgYWxsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoYXQgcGFydGljdWxhciBkcml2ZXIgc2hvdWxkIHJlc2lkZS4gVGhpcyBmaWxlIHdpbGwgdGVsbCBtZSBpZiB0aGUgYFdMQU5fVkVORE9SX1JFQUxURUtgIG9wdGlvbiBpcyBkZWZpbmVkLCBhbmQgYWxzbyBob3cgdGhlIFJlYWx0ZWsgZHJpdmVyIGlzIGludGVncmF0ZWQgaW50byB0aGUgcmVzdCBvZiB0aGUgV0xBTiBzdGFjaywgYW5kIGFsbCBvZiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTg2NywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjI6MTIuNDc1Nzg3NzIzWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMTkxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0Y29uZmlnIFdMQU5fVkVORE9SX1JFQUxURUtcXG4gICAzOlxcdFxcdGJvb2wgXFxcIlJlYWx0ZWsgZGV2aWNlc1xcXCJcXG4gICA0OlxcdFxcdGRlZmF1bHQgeVxcbiAgIDU6XFx0XFx0aGVscFxcbiAgIDY6XFx0XFx0ICBJZiB5b3UgaGF2ZSBhIHdpcmVsZXNzIGNhcmQgYmVsb25naW5nIHRvIHRoaXMgY2xhc3MsIHNheSBZLlxcbiAgIDc6XFx0XFxuICAgODpcXHRcXHQgIE5vdGUgdGhhdCB0aGUgYW5zd2VyIHRvIHRoaXMgcXVlc3Rpb24gZG9lc24ndCBkaXJlY3RseSBhZmZlY3QgdGhlXFxuICAgOTpcXHRcXHQgIGtlcm5lbDogc2F5aW5nIE4gd2lsbCBqdXN0IGNhdXNlIHRoZSBjb25maWd1cmF0b3IgdG8gc2tpcCBhbGwgdGhlXFxuICAxMDpcXHRcXHQgIHF1ZXN0aW9ucyBhYm91dCB0aGVzZSBjYXJkcy4gSWYgeW91IHNheSBZLCB5b3Ugd2lsbCBiZSBhc2tlZCBmb3JcXG4gIDExOlxcdFxcdCAgeW91ciBzcGVjaWZpYyBjYXJkIGluIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb25zLlxcbiAgMTI6XFx0XFxuICAxMzpcXHRpZiBXTEFOX1ZFTkRPUl9SRUFMVEVLXFxuICAxNDpcXHRcXG4gIDE1OlxcdHNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4MTh4L0tjb25maWdcXFwiXFxuICAxNjpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnXFxcIlxcbiAgMTc6XFx0c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWdcXFwiXFxuICAxODpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1xcXCJcXG4gIDE5OlxcdHNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXFxcIlxcbiAgMjA6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjEyLjQ3NTg3MDQ3NFoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjMwMTQ5NzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IENvbmZpZ3VyYXRpb24gQ2hlY2tsaXN0KipcblxuT2theSwgc28gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ3ZlIGdvdCB0aGUgbmVjZXNzYXJ5IGNvbXBvbmVudHMgY29uZmlndXJlZCBmb3IgdGhpcyB3aXJlbGVzcyBzZXR1cC4gRmlyc3QgdGhpbmdzIGZpcnN0OiBJIGtub3cgSSdsbCBuZWVkIGBXTEFOX1ZFTkRPUl9SRUFMVEVLYCDigJMgdGhhdCdzIGEgZ2l2ZW4uIEFuZCBvZiBjb3Vyc2UsIGBNQUM4MDIxMWAgYW5kIGBXTEFOYCBhcmUgZXNzZW50aWFsIHBhcnRzIG9mIHRoZSBjb3JlIHdpcmVsZXNzIGluZnJhc3RydWN0dXJlLiBMZXQncyBub3QgZm9yZ2V0IHRoZSBVU0IgY29tcG9uZW50IGVpdGhlciwgYmVjYXVzZSBhIFJlYWx0ZWsgYWRhcHRlciBpcyBtb3N0IG9mdGVuIGEgVVNCIGRldmljZS5cblxuQWxyaWdodCwgbGV0J3MgbWFrZSBhIG1lbnRhbCBsaXN0IG9mIHRoZSBjb25maWdzIEkgc2hvdWxkIHZlcmlmeTogYFdMQU5gLCBgV0xBTl9WRU5ET1JfUkVBTFRFS2AsIGBNQUM4MDIxMWAsIGBVU0JgLCBhbmQgdGhlIGBSVFc4OGAgZmFtaWx5LiBTbyB0aGF0IGNvdmVycyB0aGUgYmFzaWNzLCBub3cgbGV0J3MgZ28gaW50byB0aGUgc3BlY2lmaWNzLCBpbmNsdWRpbmcgYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuXG5cbkhvbGQgb24gYSBzZWNvbmQuLi4gdGhvc2UgYFJUVzg4X2AgY29uZmlndXJhdGlvbnMgZm9yIHNwZWNpZmljIGNoaXBzIGFyZSBpbXBvcnRhbnQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSd2ZSBnb3QgdGhlICpyaWdodCogb25lcyBlbmFibGVkIGZvciB0aGUgc3BlY2lmaWMgaGFyZHdhcmUgSSdtIHRhcmdldGluZy4gUmlnaHQsIEkgc2hvdWxkIHF1aWNrbHkgdmVyaWZ5IHRoYXQgdGhvc2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZXhpc3QgYW5kIGFyZSBjb3JyZWN0bHkgc2V0LiBUaW1lIHRvIGNoZWNrIHRob3NlIGNvbmZpZ3VyYXRpb25zIHNwZWNpZmljYWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI1MTksIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjoxNy43MDYwMjIzOTVaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MjEzMTk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODhfODgyMUNVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xODQ9Y29uZmlnIFJUVzg4Xzg4MjFDU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk1OmNvbmZpZyBSVFc4OF84ODIxQ1VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk2LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjoxOC4xNDgxNTkzMTVaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg5MDg4NDk3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBydHdfdHhxX3B1c2hfc2tiYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIHRoZSBpc3N1ZSwgd2hhdGV2ZXIgaXQgaXMsIGRlZmluaXRlbHkgZXhpc3RzLiBNeSBpbW1lZGlhdGUgZm9jdXMgbmVlZHMgdG8gYmUgb24gdGhlIGBydHdfdHhxX3B1c2hfc2tiYCBmdW5jdGlvbi4gV2FpdCBhIG1pbnV0ZS4uLiB0aGF0J3MgZGVjbGFyZWQgYXMgc3RhdGljLiBIbW0sIHRoYXQncyBhIGtleSBkZXRhaWwg4oCTIHN0YXRpYyBmdW5jdGlvbnMgb2Z0ZW4gc3VnZ2VzdCBpbnRlcm5hbCB1c2Ugd2l0aGluIGEgbW9kdWxlLCBidXQgdW5kZXJzdGFuZGluZyAqd2h5KiBpdCdzIHN0YXRpYyBpcyBpbXBvcnRhbnQuIExldCdzIGRpZyBpbnRvIHRoZSBzb3VyY2UgY29kZS4gSSBuZWVkIHRvIGxvY2F0ZSBgcnR3X3R4cV9wdXNoX3NrYmAgd2l0aGluIHRoZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jYCBmaWxlLiBUaW1lIHRvIG9wZW4gdGhlIGVkaXRvciBhbmQgZ2V0IHRvIHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMTk1LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjI6MjIuMDM5MDQ2NTU3WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjQzODMxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfdHhxX3B1c2hfc2tiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01NzY9c3RhdGljIHZvaWQgcnR3X3R4cV9jaGVja19hZ2coc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYwODpzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA5LVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTYyOD1zdGF0aWMgdm9pZCBydHdfdHhxX3B1c2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY0NDpcXHRcXHRyZXQgPSBydHdfdHhxX3B1c2hfc2tiKHJ0d2RldiwgcnR3dHhxLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NDUtXFx0XFx0aWYgKHJldCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjoyMi4xMDU0OTEyNDZaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzcxMjE0NDU4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gYW4gZXhwZXJ0J3MgcGVyc3BlY3RpdmU6XG5cbioqSW5saW5pbmcgYW5kIEZ1bmN0aW9uIFNjb3BlIENvbnNpZGVyYXRpb25zKipcblxuSG1tLCB0aGlua2luZyBhYm91dCB0aGlzIGBydHdfdHhxX3B1c2hfc2tiYCBmdW5jdGlvbiwgaXQncyBkZWNsYXJlZCBhcyBgc3RhdGljYC4gVGhhdCBpbW1lZGlhdGVseSBtYWtlcyBtZSBjb25zaWRlciBpbmxpbmluZyBvcHRpbWl6YXRpb25zLiBCZWNhdXNlIGl0J3Mgc3RhdGljLCB0aGUgY29tcGlsZXIgKnNob3VsZCogaGF2ZSBhbiBlYXNpZXIgdGltZSBpbmxpbmluZyBpdCBkaXJlY3RseSBpbnRvIGFueSBjYWxsc2l0ZXMgd2l0aGluIHRoZSBzYW1lIHRyYW5zbGF0aW9uIHVuaXQuIFRoaXMgY291bGQgaGF2ZSBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZXBlbmRpbmcgb24gdGhlIHNpemUgYW5kIGNvbXBsZXhpdHkgb2YgdGhlIGZ1bmN0aW9uLCBhbmQgaG93IG9mdGVuIGl0J3MgY2FsbGVkLiBJdCByZWFsbHkgY29tZXMgZG93biB0byB0aGUgY29tcGlsZXIncyBoZXVyaXN0aWNzIGluIHRoaXMgY2FzZS5cblxuTm93LCBvbiB0aGUgb3RoZXIgaGFuZCwgdGhlcmUncyBgX19ydHdfdHhfd29ya2AuIFRoZSBmYWN0IHRoYXQgaXQgKmlzbid0KiBzdGF0aWMgaXMga2V5LiBJdCBtZWFucyBpdCBoYXMgZXh0ZXJuYWwgbGlua2FnZS4gVGhlcmVmb3JlLCBpbmxpbmluZyBpcyBsZXNzIGxpa2VseSwgb3IgZXZlbiBpbXBvc3NpYmxlLCBlc3BlY2lhbGx5IGlmIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMgb3IgbW9kdWxlcy4gVGhpcyBoYXMgaW1wbGljYXRpb25zIGZvciBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkIGFuZCBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uIEkgbmVlZCB0byBrZWVwIHRoaXMgaW4gbWluZCB3aGVuIGV2YWx1YXRpbmcgdGhlIG92ZXJhbGwgY2FsbCBmbG93IGFuZCBwb3NzaWJsZSBib3R0bGVuZWNrcywgb3IgaWYgdGhlcmUgaXMgc2NvcGUgZm9yIGltcHJvdmVtZW50cyBieSBjaGFuZ2luZyB0aGUgZGVjbGFyYXRpb24gdG8gYHN0YXRpY2Agb3IsIGluIGNlcnRhaW4gY29udGV4dHMsIGludHJvZHVjaW5nIHNwZWNpZmljIGlubGluaW5nIGhpbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzc5MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjI1LjgxNzYzOTU1MloiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzAyNTUwNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiX19ydHdfdHhfd29ya1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MzI9c3RhdGljIHZvaWQgcnR3X29wc193YWtlX3R4X3F1ZXVlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ3LVxcdGlmICh0eHEtXFx1MDAzZWFjID09IElFRUU4MDIxMV9BQ19WTylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6NDg6XFx0XFx0X19ydHdfdHhfd29yayhydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy00OS1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NjI4PXN0YXRpYyB2b2lkIHJ0d190eHFfcHVzaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjU0OnZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTY3NT12b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY3OTpcXHRfX3J0d190eF93b3JrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY4MC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9OTI9dm9pZCBydHdfdHhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5Mzp2b2lkIF9fcnR3X3R4X3dvcmsoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk0LXZvaWQgcnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjoyNS44ODc4OTk2MloiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTg2NDc3MTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHBlcnNvbmFsIHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkFzc2Vzc2luZyBTdGF0aWMgRGVjbGFyYXRpb24gaW4gdGhlIFdMQU4gRHJpdmVyKipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IHRoaXMgV0xBTiBkcml2ZXIgY29kZSwgYW5kIEkgbmVlZCB0byBjb25zaWRlciBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBiZWluZyBoYW5kbGVkIGZyb20gYSBzdGF0aWMgYW5hbHlzaXMgcGVyc3BlY3RpdmUuIFRoZSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgYF9fcnR3X3R4X3dvcmtgIGFuZCBgcnR3X3R4X3dvcmtgLCBhbmQgc3BlY2lmaWNhbGx5IGBydHdfdHhgLCBhcmUgKm5vdCogZGVjbGFyZWQgYXMgc3RhdGljLiBUaGlzIGltcGxpZXMgYSBmZXcgdGhpbmdzLCB3aGljaCBJIG5lZWQgdG8gcXVpY2tseSBydW4gdGhyb3VnaCBpbiBteSBoZWFkLlxuXG5GaXJzdGx5LCBiZWNhdXNlIHRoZXkgYXJlbid0IHN0YXRpYywgdGhlc2UgZnVuY3Rpb25zIGhhdmUgZXh0ZXJuYWwgbGlua2FnZSB3aXRoaW4gdGhlIGNvbXBpbGF0aW9uIHVuaXQgb3IgbW9yZSBsaWtlbHksIGFjcm9zcyB0aGUgZW50aXJlIHByb2plY3QuIFRoaXMgbWVhbnMgdGhlIGxpbmtlciBpcyByZXNvbHZpbmcgdGhlc2Ugc3ltYm9scyBhbmQgdGhlIGNvbXBpbGVyIGlzIG5vdCBhYmxlIHRvIHBlcmZvcm0gc29tZSBvZiB0aGUgb3B0aW1pemF0aW9ucyB0aGF0IGl0ICpjb3VsZCogcGVyZm9ybSBpZiB0aGV5ICp3ZXJlKiBzdGF0aWMuIFRoaXMgY2FuIGludHJvZHVjZSBwb3RlbnRpYWwgaXNzdWVzIGRlcGVuZGluZyBvbiBob3cgdGhlIGNvZGUgaXMgc3RydWN0dXJlZC4gQXJlIHdlIHNlZWluZyBtdWx0aXBsZSBkZWZpbml0aW9ucz8gQXJlIHdlIGFjY2lkZW50YWxseSBjYWxsaW5nIHRoZSB3cm9uZyB2ZXJzaW9uPyBBcmUgdGhlcmUgYW55IHVuZXhwZWN0ZWQgc2lkZSBlZmZlY3RzIGZyb20gdGhlaXIgZXh0ZXJuYWwgdmlzaWJpbGl0eT9cblxuU2Vjb25kbHksIHRoZSBhYnNlbmNlIG9mIGBzdGF0aWNgIG9wZW5zIHVwIHRoZXNlIGZ1bmN0aW9ucyBmb3IgcG90ZW50aWFsIHVzZSBpbiBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLCBwb3RlbnRpYWxseSB0aHJvdWdoIGRpcmVjdCBmdW5jdGlvbiBjYWxscywgb3IgZnVuY3Rpb24gcG9pbnRlcnMuIFRoaXMgYnJvYWRlbnMgdGhlIHNjb3BlIG9mIHdoYXQgbmVlZHMgdG8gYmUgY2hlY2tlZCB3aGVuIGNvbnNpZGVyaW5nIHNlY3VyaXR5IG9yIGdlbmVyYWwgcm9idXN0bmVzcy5cblxuSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY2FsbCBzaXRlcyBhbmQgc2VlIGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIHVzZWQsIGFuZCBpZiB0aGVyZSdzIGFueSByYXRpb25hbGUgZm9yIHRoZW0gKm5vdCogYmVpbmcgc3RhdGljLiBNYXliZSB0aGV5IGFyZSBlbnRyeSBwb2ludHMgdG8gc29tZSBzZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSBtb2R1bGUsIG9yIGFyZSBvdGhlcndpc2UgbmVlZGVkLiBJZiBpdCBjYW4gYmUgdmVyaWZpZWQgdGhhdCBzdGF0aWMgZGVjbGFyYXRpb24gbWFrZXMgc2Vuc2UsIEkgc2hvdWxkIGRldGVybWluZSBpZiBtYWtpbmcgdGhvc2UgY2hhbmdlcyBpbnRyb2R1Y2VzIGFueSByZWdyZXNzaW9ucyBvciB1bmZvcmVzZWVuIHNpZGUgZWZmZWN0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTQ2OTcsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjozMC40NzQzNzg4MjZaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5NDQxMTE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d190eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg3MSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jPTkzPXN0YXRpYyB2b2lkIHJ0d19md19jMmhfY21kX2hhbmRsZV9leHQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMDMtXFx0Y2FzZSBDMkhfQ0NYX1JQVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MTA0OlxcdFxcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1JQVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEwNS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0zMDE9dm9pZCBydHdfZndfYzJoX2NtZF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0zMTctXFx0Y2FzZSBDMkhfQ0NYX1RYX1JQVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MzE4OlxcdFxcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1RYX1JQVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTMxOS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0xMzAwPXN0YXRpYyB2b2lkIHJ0d19maWxsX3JzdmRfcGFnZV9kZXNjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMDM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwNC1cXHRjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cXHUwMDNlY2hpcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzA3OlxcdHJ0d190eF9yc3ZkX3BhZ2VfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA4LVxcdHBrdF9kZXNjID0gc2tiX3B1c2goc2tiLCBjaGlwLVxcdTAwM2V0eF9wa3RfZGVzY19zeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMDktXFx0bWVtc2V0KHBrdF9kZXNjLCAwLCBjaGlwLVxcdTAwM2V0eF9wa3RfZGVzY19zeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMTA6XFx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMxMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oPTk9c3RydWN0IHJ0d19oY2lfb3BzIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTEwLVxcdGludCAoKnR4X3dyaXRlKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6MTE6XFx0XFx0XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0xMi1cXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg9MzY9c3RhdGljIGlubGluZSBpbnQgcnR3X2hjaV90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6Mzc6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zOC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTE4PXN0YXRpYyB2b2lkIHJ0d19vcHNfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI5OlxcdHJ0d190eChydHdkZXYsIGNvbnRyb2wsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTMwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzUtXFx0c3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzozNjpcXHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXFx0aWYgKHR4cS1cXHUwMDNlYWMgPT0gSUVFRTgwMjExX0FDX1ZPKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcXHRcXHRfX3J0d190eF93b3JrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0xNDY9c3RhdGljIGludCBydHdfb3BzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMTY0LVxcdG1lbXNldChcXHUwMDI2cnR3dmlmLVxcdTAwM2ViZmVlLCAwLCBzaXplb2Yoc3RydWN0IHJ0d19iZmVlKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjE2NTpcXHRydHdfdHhxX2luaXQocnR3ZGV2LCB2aWYtXFx1MDAzZXR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTE2Ni1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnR3dmlmLVxcdTAwM2Vyc3ZkX3BhZ2VfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MjI4PXN0YXRpYyB2b2lkIHJ0d19vcHNfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0yNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI0MjpcXHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCB2aWYtXFx1MDAzZXR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTI0My1cXHRydHdfcmVtb3ZlX3JzdmRfcGFnZShydHdkZXYsIHJ0d3ZpZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NjMwPXN0YXRpYyBpbnQgcnR3X29wc19hbXBkdV9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNjM2LVxcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEgPSBzdGEtXFx1MDAzZXR4cVt0aWRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo2Mzc6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTYzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTM0NT1pbnQgcnR3X3N0YV9hZGQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2NS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShzdGEtXFx1MDAzZXR4cSk7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozNjY6XFx0XFx0cnR3X3R4cV9pbml0KHJ0d2Rldiwgc3RhLVxcdTAwM2V0eHFbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2Ny1cXHRJTklUX1dPUksoXFx1MDAyNnNpLVxcdTAwM2VyY193b3JrLCBydHdfc3RhX3JjX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MzgwPXZvaWQgcnR3X3N0YV9yZW1vdmUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5NC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShzdGEtXFx1MDAzZXR4cSk7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozOTU6XFx0XFx0cnR3X3R4cV9jbGVhbnVwKHJ0d2Rldiwgc3RhLVxcdTAwM2V0eHFbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTYyMj1zdGF0aWMgdm9pZCBydHdfcmVzZXRfdmlmX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYyOC1cXHRydHdfdmlmX2Fzc29jX2NoYW5nZWQocnR3dmlmLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo2Mjk6XFx0cnR3X3R4cV9jbGVhbnVwKHJ0d2RldiwgdmlmLVxcdTAwM2V0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYzMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTY3ND1zdGF0aWMgdm9pZCBydHdfZndfcmVjb3Zlcnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6Njg2OnN0cnVjdCBydHdfdHhxX2JhX2l0ZXJfZGF0YSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBydHdfdHhxX2JhX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02OTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAwLVxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzAxOlxcdFxcdFxcdHN0cnVjdCBydHdfdHhxICpydHd0eHE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMy1cXHRcXHRcXHR0eHEgPSBzdGEtXFx1MDAzZXR4cVt0aWRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcwNDpcXHRcXHRcXHRydHd0eHEgPSAoc3RydWN0IHJ0d190eHEgKil0eHEtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwNS1cXHRcXHRcXHRzZXRfYml0KFJUV19UWFFfQkxPQ0tfQkEsIFxcdTAwMjZydHd0eHEtXFx1MDAzZWZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTI6c3RhdGljIHZvaWQgcnR3X3R4cV9iYV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxNC1cXHRzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBydHdfZGV2LCBiYV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTU6XFx0c3RydWN0IHJ0d190eHFfYmFfaXRlcl9kYXRhIGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcxNzpcXHRydHdfaXRlcmF0ZV9zdGFzX2F0b21pYyhydHdkZXYsIHJ0d190eHFfYmFfaXRlciwgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxOC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0yMTM4PWludCBydHdfY29yZV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTQ3LVxcdHRpbWVyX3NldHVwKFxcdTAwMjZydHdkZXYtXFx1MDAzZXR4X3JlcG9ydC5wdXJnZV90aW1lcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ4OlxcdFxcdCAgICBydHdfdHhfcmVwb3J0X3B1cmdlX3RpbWVyLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ5OlxcdHJ0d2Rldi1cXHUwMDNldHhfd3EgPSBhbGxvY193b3JrcXVldWUoXFxcInJ0d190eF93cVxcXCIsIFdRX1VOQk9VTkQgfCBXUV9ISUdIUFJJLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTUwLVxcdGlmICghcnR3ZGV2LVxcdTAwM2V0eF93cSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjIxNTE6XFx0XFx0cnR3X3dhcm4ocnR3ZGV2LCBcXFwiYWxsb2Nfd29ya3F1ZXVlIHJ0d190eF93cSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNTItXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY0LVxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZjb2V4LVxcdTAwM2V3bF9jY2tsb2NrX3dvcmssIHJ0d19jb2V4X3dsX2Nja2xvY2tfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE2NTpcXHRJTklUX1dPUksoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldHhfd29yaywgcnR3X3R4X3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjYtXFx0SU5JVF9XT1JLKFxcdTAwMjZydHdkZXYtXFx1MDAzZWMyaF93b3JrLCBydHdfYzJoX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE2OS1cXHRJTklUX1dPUksoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldXBkYXRlX2JlYWNvbl93b3JrLCBydHdfZndfdXBkYXRlX2JlYWNvbl93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTcwOlxcdElOSVRfV09SSyhcXHUwMDI2cnR3ZGV2LVxcdTAwM2ViYV93b3JrLCBydHdfdHhxX2JhX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNzEtXFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2cnR3ZGV2LVxcdTAwM2VjMmhfcXVldWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MjI1NT1pbnQgcnR3X3JlZ2lzdGVyX2h3KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjI2Ny1cXHRody1cXHUwMDNlcXVldWVzID0gSUVFRTgwMjExX05VTV9BQ1M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjI2ODpcXHRody1cXHUwMDNldHhxX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3R4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjI2OS1cXHRody1cXHUwMDNlc3RhX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3N0YV9pbmZvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE5MT1lbnVtIHJ0d19jaGlwX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIwMjplbnVtIHJ0d190eF9xdWV1ZV90eXBlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMDMtXFx0LyogdGhlIG9yZGVyIG9mIEFDIHF1ZXVlcyBtYXR0ZXJzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0zNDQ9ZW51bSBydHdfcmVndWxhdG9yeV9kb21haW5zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTM2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDozNjI6ZW51bSBydHdfdHhxX2ZsYWdzIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0zNjMtXFx0UlRXX1RYUV9BTVBEVSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTUyMD1zdHJ1Y3QgcnR3XzVnX3R4cHdyX2lkeCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NTMzOnN0cnVjdCBydHdfdHhwd3JfaWR4IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzQtXFx0c3RydWN0IHJ0d18yZ190eHB3cl9pZHggcHdyX2lkeF8yZztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTU5OT1zdHJ1Y3QgcnR3X3ZpZl9wb3J0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo2MDc6c3RydWN0IHJ0d190eF9wa3RfaW5mbyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNjA4LVxcdHUzMiB0eF9wa3Rfc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTczNz1zdHJ1Y3QgcnR3X3NlY19kZXNjIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo3NDY6c3RydWN0IHJ0d190eF9yZXBvcnQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0Ny1cXHQvKiBwcm90ZWN0IHRoZSB0eCByZXBvcnQgcXVldWUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTc1ND1zdHJ1Y3QgcnR3X3JhX3JlcG9ydCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NzYwOnN0cnVjdCBydHdfdHhxIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NjEtXFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9ODYyPXN0cnVjdCBydHdfY2hpcF9vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtOTEyLVxcdHZvaWQgKCpmaWxsX3R4ZGVzY19jaGVja3N1bSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo5MTM6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC05MTQtXFx0XFx0XFx0XFx0ICAgICB1OCAqdHhkZXNjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE3OTI9c3RydWN0IHJ0d19lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0xODQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjE4NDI6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTE4NDMtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIwNTk9c3RydWN0IHJ0d19kZXYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjEwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMTAyOlxcdHN0cnVjdCBydHdfdHhfcmVwb3J0IHR4X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTAzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjE0NT1zdGF0aWMgaW5saW5lIGJvb2wgcnR3X2lzX2Fzc29jKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIxNTA6c3RhdGljIGlubGluZSBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqcnR3dHhxX3RvX3R4cShzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxNTEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjI0Nj12b2lkIHJ0d192aWZfcG9ydF9jb25maWcoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d192aWYgKnJ0d3ZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjQ3LVxcdFxcdFxcdCB1MzIgY29uZmlnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjQ4OnZvaWQgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI0OS12b2lkIHJ0d191cGRhdGVfc3RhX2luZm8oc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d19zdGFfaW5mbyAqc2ksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTM1PXN0YXRpYyB1OCBydHdfcGNpX2dldF90eF9xc2VsKHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzozNjpcXHRcXHRcXHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz01Mzg9c3RhdGljIHZvaWQgcnR3X3BjaV9kbWFfcmVsZWFzZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy01NDAtXFx0c3RydWN0IHJ0d19wY2lfdHhfcmluZyAqdHhfcmluZztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjU0MTpcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz02MDM9c3RhdGljIHZvaWQgcnR3X3BjaV9kZWVwX3BzX2VudGVyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTYwNi1cXHRzdHJ1Y3QgcnR3X3BjaV90eF9yaW5nICp0eF9yaW5nO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NjA3OlxcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy02MDgtXFx0Ym9vbCB0eF9lbXB0eSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTc1ND1zdGF0aWMgdm9pZCBydHdfcGNpX2ZsdXNoX3F1ZXVlcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgcXVldWVzLCBib29sIGRyb3ApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc2Ni1cXHRcXHRcXHRpZiAocXVldWVzIFxcdTAwMjYgQklUKGkpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NzY3OlxcdFxcdFxcdFxcdHBjaV9xdWV1ZXMgfD0gQklUKHJ0d190eF9hY190b19od3EoaSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzY4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzczPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmZfcXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjc3NDpcXHRcXHRcXHRcXHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzkwPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzkyLVxcdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo3OTM6XFx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODAwPXN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDE6XFx0XFx0XFx0XFx0IHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODAyLVxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODAzOlxcdFxcdFxcdFxcdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODI4LVxcdHBrdF9pbmZvLVxcdTAwM2Vxc2VsID0gcnR3X3BjaV9nZXRfdHhfcXNlbChza2IsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgyOTpcXHRydHdfdHhfZmlsbF90eF9kZXNjKHJ0d2RldiwgcGt0X2luZm8sIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04MzAtXFx0ZG1hID0gZG1hX21hcF9zaW5nbGUoXFx1MDAyNnJ0d3BjaS1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04NzA9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3My1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc0OlxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzUtXFx0dTggcmVnX2Jjbl93b3JrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4Nzg6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3OS1cXHRpZiAoIXNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODk2PXN0YXRpYyBpbnQgcnR3X3BjaV93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODk4LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4OTk6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwMC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTAyOlxcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDMtXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTkxNz1zdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxODpcXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MTktXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTIxOlxcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUgPSBydHdfdHhfcXVldWVfbWFwcGluZyhza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTIyLVxcdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXFx1MDAzZXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTk0MT1zdGF0aWMgdm9pZCBydHdfcGNpX3R4X2lzcihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05OTgtXFx0XFx0aWYgKGluZm8tXFx1MDAzZWZsYWdzIFxcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5OTk6XFx0XFx0XFx0cnR3X3R4X3JlcG9ydF9lbnF1ZXVlKHJ0d2Rldiwgc2tiLCB0eF9kYXRhLVxcdTAwM2Vzbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy0xMDAwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0xNzYwPXZvaWQgcnR3X3BhcnNlX3RibF90eHB3cl9sbXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMTc2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYzoxNzYzOlxcdGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyICpwID0gdGJsLVxcdTAwM2VkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM6MTc2NDpcXHRjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciAqZW5kID0gcCArIHRibC1cXHUwMDNlc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTE3NjUtXFx0dTMyIHJlZ2RfY2ZnX2ZsYWcgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0yMjM5PXZvaWQgcnR3X2dldF90eF9wb3dlcl9wYXJhbXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCwgdTggcmF0ZSwgdTggYncsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTIyNDMtXFx0c3RydWN0IHJ0d19kbV9pbmZvICpkbV9pbmZvID0gXFx1MDAyNnJ0d2Rldi1cXHUwMDNlZG1faW5mbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjIyNDQ6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggKnB3cl9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0yMjQ1LVxcdHU4IGdyb3VwLCBiYW5kO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaD03MD12b2lkIHJ0d19waHlfdHhfcGF0aF9kaXZlcnNpdHkoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaC03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oOjcyOnN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oLTczLVxcdHU4IHJlZ2Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jPTE3PVJUV19ERUNMX1RBQkxFX0JCX1BHKHJ0dzg3MDNiX2JiX3BnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2JfdGFibGVzLmMtMjMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODcwM2JfdHhwd3JfbG10W10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYy0yNS1cXHR7MCwgMCwgMCwgMCwgMSwgMzB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jPTkzOT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4NzIzZF9yZl9hLCBBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkX3RhYmxlLmMtOTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYzo5NDE6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MjNkX3R4cHdyX2xtdFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYy05NDItXFx0ezAsIDAsIDAsIDAsIDEsIDMwLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTEwMT1zdGF0aWMgdm9pZCBfX3J0dzg3MjN4X2RlYnVnX3R4cHdyX2xpbWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jOjEwMjpcXHRcXHRcXHRcXHRcXHQgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYy0xMDMtXFx0XFx0XFx0XFx0XFx0IGludCB0eF9wYXRoX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTY4MT12b2lkIF9fcnR3ODcyM3hfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6NjgyOlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4My1cXHRcXHRcXHRcXHQgICAgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtNjg3LVxcdF9fbGUxNiAqZGF0YSA9IChfX2xlMTYgKikodHhkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6Njg4OlxcdHN0cnVjdCBydHdfdHhfZGVzYyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKil0eGRlc2M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD02Nj1zdHJ1Y3QgcnR3ODcyM3hfZWZ1c2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTcyLVxcdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjczOlxcdHN0cnVjdCBydHdfdHhwd3JfaWR4IHR4cHdyX2lkeF90YWJsZVs0XTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9MTIyPXN0cnVjdCBydHc4NzIzeF9jb21tb24ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE1NS1cXHR2b2lkICgqZmlsbF90eGRlc2NfY2hlY2tzdW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjE1NjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNTctXFx0XFx0XFx0XFx0ICAgICB1OCAqdHhkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU4LVxcdHZvaWQgKCpkZWJ1Z190eHB3cl9saW1pdCkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MTU5OlxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNjAtXFx0XFx0XFx0XFx0ICBpbnQgdHhfcGF0aF9jb3VudCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9MzY1PXZvaWQgcnR3ODcyM3hfZGVidWdfdHhwd3JfbGltaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MzY2OlxcdFxcdFxcdFxcdHN0cnVjdCBydHdfdHhwd3JfaWR4ICp0YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMzY3LVxcdFxcdFxcdFxcdGludCB0eF9wYXRoX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oPTQ1MT12b2lkIHJ0dzg3MjN4X2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjQ1MjpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNDUzLVxcdFxcdFxcdFxcdCAgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmM9ODg3PXN0YXRpYyB2b2lkIHJ0dzg4MTJhX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jOjg4ODpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYy04ODktXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jPTE2ODg9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgxMmFfcmZfYiwgQik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jLTE2ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jOjE2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTJhX3R4cHdyX2xtdFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYy0xNjkxLVxcdHsgMCwgMCwgMCwgMCwgMSwgMzYsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjA0MT1zdGF0aWMgdm9pZCBydHc4ODE0YV9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyMDQyOlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNDMtXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5oPTIzPXN0cnVjdCBydHc4ODE0YV9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmgtMjktXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmg6MzA6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaC0zMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNDU4Mz1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODE0YV9yZl9kLCBEKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE0NTg1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODYtXFx0eyAwLCAwLCAwLCAwLCAxLCAzNiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNTU2MD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE1NTYyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTBbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjMtXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNjUzNz1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE2NTM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTFbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1NDAtXFx0XFx0eyAwLCAwLCAwLCAwLCAxLCAzNCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNzUxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE3NTE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTJbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTctXFx0eyAwLCAwLCAwLCAwLCAxLCA0MiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xODQ5MT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE4NDkzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTQtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xOTQ2OD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE5NDcwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NzEtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMDQ0NT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU1KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjIwNDQ3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTdbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDgtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMTQyMj1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjIxNDI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZThbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjUtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYz03MzQ9c3RhdGljIHZvaWQgcnR3ODgyMWFfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM6NzM1OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTczNi1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM9MTMzNT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIxYV9yZl9hLCBBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmMtMTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM6MTMzNzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMWFfdHhwd3JfbG10W10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYV90YWJsZS5jLTEzMzgtXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYz0xMjI5PXN0YXRpYyB2b2lkIHJ0dzg4MjFjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjEyMzA6XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmMtMTIzMS1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmg9NzQ9c3RydWN0IHJ0dzg4MjFjX2VmdXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaC03OC1cXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaDo3OTpcXHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5oLTgwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jPTYwMTE9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMWNfcmZfYSwgQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jLTYwMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jOjYwMTM6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjFjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYy02MDE0LVxcdHsgMCwgMCwgMCwgMCwgMSwgMzAsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MTU5MT1zdGF0aWMgdm9pZCBydHc4ODIyYl9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoxNTkyOlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTE1OTMtXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5oPTc0PXN0cnVjdCBydHc4ODIyYl9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmgtODAtXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmg6ODE6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuaC04Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMDQzND1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIyYl9yZl9iLCBCKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIwNDM2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTBbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTAyND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxMDI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTJbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTYxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxNjE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00NTYwPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ1NjE6XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDU2Mi1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmg9NjE9c3RydWN0IHJ0dzg4MjJjX2VmdXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaC02Ny1cXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDo2ODpcXHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTY5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jPTM5ODIyPVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjJjX3JmX2IsIEIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6Mzk4MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyNS1cXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jPTQyMTY3PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODIyY190eHB3cl9sbXRfdHlwZTApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6NDIxNjk6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlNVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE3MC1cXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4OHh4YS5oPTI4PXN0cnVjdCBydHc4OHh4YV9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmgtMzQtXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmg6MzU6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODh4eGEuaC0zNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTQ3MD1zdGF0aWMgdTMyIHJ0d19zZGlvX2dldF90eF9hZGRyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHNpemVfdCBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjQ3MTpcXHRcXHRcXHRcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTQ3Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz02MzU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9wb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6NjM2OlxcdFxcdFxcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTYzNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04NDc9c3RhdGljIHZvaWQgcnR3X3NkaW9fdHhfc2tiX3ByZXBhcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NDg6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg0OS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NTA6XFx0XFx0XFx0XFx0ICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtODUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4ODE6XFx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4MjpcXHRydHdfdHhfZmlsbF90eGRlc2NfY2hlY2tzdW0ocnR3ZGV2LCBwa3RfaW5mbywgcGt0X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4My19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04ODU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg2OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODctXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg4OlxcdFxcdFxcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz05MDA9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhX3JzdmRfcGFnZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtOTAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MDM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHt9O1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjozMC41NDM4MjY2NDVaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5NzE4MTc1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgc3RhbmRzOlxuXG4qKk5hdmlnYXRpbmcgdGhlIGBydHdfdHhgIENvZGUqKlxuXG5Pa2F5LCBzbyBJIGtub3cgYHJ0d190eGAgaXNuJ3Qgc29tZSBjb25zdGFudCwgdW5jaGFuZ2VhYmxlIHZhbHVlIOKAkyBpdCdzIHNvbWV0aGluZyBkeW5hbWljLiBNeSBuZXh0IHN0ZXAgaXMgdG8gbG9jYXRlIGl0LiBBaGEsIGl0IHNlZW1zIGxpa2UgYHJ0d190eGAgaXMgZGVmaW5lZCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNgIGZpbGUuIFJpZ2h0LCBsZXQncyBoZWFkIG92ZXIgdG8gYHR4LmNgIGFuZCB0YWtlIGEgbG9vayBhdCBob3cgYHJ0d190eGAgaXMgaW1wbGVtZW50ZWQgYW5kIHdoYXQgaXQgZG9lcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgd2l0aGluIGl0cyBpbW1lZGlhdGUgY29udGV4dCBiZWZvcmUgSSBjYW4gdGhpbmsgYWJvdXQgaXRzIGJyb2FkZXIgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDk3NiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjMzLjg0MTAxMDkyWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjE3ODA1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2b2lkIHJ0d190eFxcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01NTI9RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NTQ6dm9pZCBydHdfdHgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTU1LVxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9ODU9ZW51bSBydHdfcnN2ZF9wYWNrZXRfdHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjg3OnZvaWQgcnR3X3R4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTg4LVxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjMzLjkxNzE5Mzc3OFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDcxMDczODk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhbHRlayBUWCBQYXRoKipcblxuT2theSwgbGV0J3Mgc2VlLiBgcnR3X3R4YCBpcyBlaXRoZXIgZXhwb3J0ZWQgb3IgYXQgbGVhc3Qgbm90IHN0YXRpYywgd2hpY2ggbWFrZXMgaXQgYSBnb29kIGNhbmRpZGF0ZSB0byBzdGFydCBsb29raW5nIGF0LiBXYWl0LCBpdCBzZWVtcyBgcnR3X3R4YCBpcyBpbnZva2VkIGZyb20gYHJ0d19vcHNfdHhgLCB3aGljaCBpcyB0aGUgbWFjODAyMTEgVFggY2FsbGJhY2suIFBlcmZlY3QsIHRoYXQgc29saWRpZmllcyBgcnR3X3R4YCBhcyBhIHN0cm9uZyBmb2N1cyBwb2ludC5cblxuTm93LCBJIHNlZSB0aGF0IGBfX3J0d190eF93b3JrYCBpcyBhbHNvIG5vbi1zdGF0aWMuIEludGVyZXN0aW5nLiBJdCdzIGNhbGxlZCBmcm9tIGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGFuZCBgcnR3X3R4X3dvcmtgLiBTbywgYWxvbmdzaWRlIGBydHdfdHhgLCBgX19ydHdfdHhfd29ya2AgYXBwZWFycyB0byBiZSBhIGdvb2Qgc3ltYm9sIHRvIGZvY3VzIG9uLlxuXG5IYW5nIG9uLi4uIEkndmUganVzdCBub3RpY2VkIHRoZSBwYXRjaCBpcyBhY3R1YWxseSBpbiBgcnR3X3R4cV9wdXNoX3NrYmAuIGBydHdfdHhxX3B1c2hfc2tiYCBpcyBjYWxsZWQgYnkgYHJ0d190eHFfcHVzaGAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBfX3J0d190eF93b3JrYC4gU28sIEkgdGhpbmsgYF9fcnR3X3R4X3dvcmtgIGlzIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIG1vZGlmaWVkIGNvZGUuXG5cbkxldCBtZSB0aGluay4gYHJ0d190eGAgYWxzbyBjYWxscyBgcnR3X2hjaV90eF93cml0ZWAsIGJ1dCB0aGUgcGF0Y2ggaXMgdG91Y2hpbmcgYHJ0d190eHFfcHVzaF9za2JgLiBBbHJpZ2h0LCBsZXQncyBnbyBiYWNrIGFuZCByZS1leGFtaW5lIHRoZSBwYXRjaCB0byBtYWtlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNTEyLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjM4Ljk4ODI3MDgwM1oiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5Mjc4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcIixcbiAgXCJGaXJzdExpbmVcIjogNjEwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNjEwOlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiA2MTE6XFx0e1xcbiA2MTI6XFx0XFx0c3RydWN0IGllZWU4MDIxMV90eHEgKnR4cSA9IHJ0d3R4cV90b190eHEocnR3dHhxKTtcXG4gNjEzOlxcdFxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XFxuIDYxNDpcXHRcXHRpbnQgcmV0O1xcbiA2MTU6XFx0XFxuIDYxNjpcXHRcXHRydHdfdHhxX2NoZWNrX2FnZyhydHdkZXYsIHJ0d3R4cSwgc2tiKTtcXG4gNjE3OlxcdFxcbiA2MTg6XFx0XFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgdHhxLVxcdTAwM2VzdGEsIHNrYik7XFxuIDYxOTpcXHRcXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IpO1xcbiA2MjA6XFx0XFx0aWYgKHJldCkge1xcbiA2MjE6XFx0XFx0XFx0cnR3X2VycihydHdkZXYsIFxcXCJmYWlsZWQgdG8gd3JpdGUgVFggc2tiIHRvIEhDSVxcXFxuXFxcIik7XFxuIDYyMjpcXHRcXHRcXHRpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtXFx1MDAzZWh3LCBza2IpO1xcbiA2MjM6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gNjI0OlxcdFxcdH1cXG4gNjI1OlxcdFxcdHJldHVybiAwO1xcbiA2MjY6XFx0fVxcbiA2Mjc6XFx0XFxuIDYyODpcXHRzdGF0aWMgdm9pZCBydHdfdHhxX3B1c2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4gNjI5OlxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjozOC45ODgzNjY1MzRaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE5NjkzNDU0ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBTdHJhdGVneSBmb3IgdGhlIFJlYWx0ZWsgcnR3ODggV2lyZWxlc3MgRHJpdmVyIFRYIFBhdGgqKlxuXG5Pa2F5LCBzbyB0aGUgcGF0Y2ggbW9kaWZpZXMgYHJ0d190eHFfcHVzaF9za2JgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzIGEgZ29vZCBwbGFjZSB0byBzdGFydCBidXQsIGBydHdfdHhxX3B1c2hfc2tiYCBpcyBjYWxsZWQgYnkgYHJ0d190eHFfcHVzaGAsIHdoaWNoIGlzIGluIHR1cm4gY2FsbGVkIGJ5IGBfX3J0d190eF93b3JrYC4gRXhjZWxsZW50LCBzbyBgX19ydHdfdHhfd29ya2AgYXBwZWFycyB0byBiZSB0aGUgY2VudHJhbCBwb2ludCBvZiBpbnRlcmVzdC4gV2UgYWxyZWFkeSBjb25maXJtZWQgdGhhdCBgcnR3X3R4cV9wdXNoX3NrYmAgaXNuJ3QgY2FsbGVkIGZyb20gYW55d2hlcmUgZWxzZS5cblxuTm93LCBsZXQncyBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb25zLiBXZSBuZWVkIHRoZSBzdGFuZGFyZCBiYXNlIGNvbmZpZ3VyYXRpb25zLCBvYnZpb3VzbHk6IGBXTEFOYCwgYFdMQU5fVkVORE9SX1JFQUxURUtgLCBgTUFDODAyMTFgLCBgVVNCYCwgYFJUVzg4YC4gQW5kIHRoZSBSVFc4OCBVU0IgZHJpdmVyIGNvbmZpZ3MsIHdoaWNoIGFyZSBzcGVjaWZpYzogYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuICBJIGRvdWJsZS1jaGVja2VkOyB0aG9zZSAqYXJlKiBzdWZmaWNpZW50IHRvIGNvbXBpbGUgdGhlIFVTQiBkcml2ZXJzLiBXZSBjaGVja2VkIHRoZWlyIHZhbGlkaXR5IGluIHRoZSBLY29uZmlnIGZpbGUuXG5cblJlZ2FyZGluZyB0aGUgVVNCIGRlcGVuZGVuY3k6IFllcywgYFVTQmAgaXMgZGVmaW5pdGVseSByZXF1aXJlZCwgZXNwZWNpYWxseSBzaW5jZSB3ZSdyZSBmb2N1c2luZyBvbiBmdXp6aW5nIHZpYSBhIGR1bW15IEhDRCBzZXR1cC4gV2UgY291bGQgZW5hYmxlIFBDSSwgYnV0IFVTQiBpcyBzaW1wbGVyIGZvciB0aGUgZnV6emluZyBzZXR1cC4gTGV0J3MgbWFrZSBzdXJlIHdlIGhhdmUgYWxsIHRoZSByZWxldmFudCBVU0IgZHJpdmVyIGNvbmZpZ3MgZW5hYmxlZC4gV2UncmUgZ29vZCB0byBnbyB3aXRoIHRoZSBsaXN0IGFib3ZlLiBXZSBjb25maXJtZWQgdGhhdCBhbGwgVVNCIGNvbmZpZ3MgbGlzdGVkIGFyZSB2YWxpZCBpbiB0aGUgS2NvbmZpZy5cblxuTmV4dCwgSSB2ZXJpZmllZCB0aGF0IGBfX3J0d190eF93b3JrYCBpcyBpbmRlZWQgYSB2YWxpZCBzeW1ib2wg4oCTIGl0J3MgZGVmaW5lZCBpbiBgdHguY2AuIExldCdzIGNvbmZpcm0gdGhhdCB0aGVyZSdzIG5vdGhpbmcgZWxzZSBpbiB0aGUgZHJpdmVyIHdlIG5lZWQgdG8gbG9vayBhdC4gQWN0dWFsbHksIGBydHdfdHhfd29ya2AgaXMgYSB3b3JrcXVldWUgY2FsbGJhY2sgdGhhdCAqY2FsbHMqIGBfX3J0d190eF93b3JrYCwgYW5kIGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGlzIGEgbWFjODAyMTEgY2FsbGJhY2sgdGhhdCAqYWxzbyogY2FsbHMgYF9fcnR3X3R4X3dvcmtgLiBQZXJmZWN0LCBgX19ydHdfdHhfd29ya2AgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIGZvY3VzIHRoZSBmdXp6aW5nLlxuXG5KdXN0IHRvIHJlY2FwOiBUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiBgcnR3X3R4cV9wdXNoX3NrYmAgd2hlbiBgcnR3X2hjaV90eF93cml0ZWAgZmFpbHMuIFRoaXMgaXMgaW4gdGhlIFRYIHBhdGggb2YgdGhlIFJlYWx0ZWsgcnR3ODggd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGlzIGFjY2Vzc2libGUgdGhyb3VnaCBgX19ydHdfdHhfd29ya2AsIHdoaWNoIGlzIHRyaWdnZXJlZCBieSBtYWM4MDIxMSBUWCBxdWV1ZSB3YWtldXBzIG9yIHdvcmtxdWV1ZXMuIFRoZSBwbGFuIGlzIHRvIGZ1enogdGhpcyB2aWEgVVNCIGVtdWxhdGlvbiAoZS5nLiwgZHVtbXlfaGNkKS5cblxuU28sIHRoZSBjb25maWd1cmF0aW9ucyB3ZSBuZWVkIGFyZTpcbiogICBgV0xBTmBcbiogICBgV0xBTl9WRU5ET1JfUkVBTFRFS2BcbiogICBgTUFDODAyMTFgXG4qICAgYFVTQmBcbiogICBgUlRXODhgXG4qICAgYFJUVzg4Xzg4MjJCVWBcbiogICBgUlRXODhfODgyMUNVYFxuKiAgIGBSVFc4OF84NzIzRFVgXG4qICAgYFJUVzg4Xzg4MjFBVWBcbiogICBgUlRXODhfODgxMkFVYFxuKiAgIGBSVFc4OF84ODE0QVVgXG5cbkFuZCB0aGUgZm9jdXMgc3ltYm9sIGlzOlxuKiAgIGBfX3J0d190eF93b3JrYFxuXG5JIGp1c3Qgd2FudCB0byBjb25maXJtIGFnYWluIHRoYXQgYFJUVzg4Xzg4MjJCVWAgZG9lc24ndCBoYXZlIGFueSBoaWRkZW4gZGVwZW5kZW5jaWVzLiBMZXQncyBsb29rIHRoYXQgb3Zlci4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjQ5NCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk5OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjUwLjk1NzcxNTIwM1oiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1MTc4MTQ0MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODhfODgyMkJVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz03MT1jb25maWcgUlRXODhfODgyMkJTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjgyOmNvbmZpZyBSVFc4OF84ODIyQlVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjUyLjcwOTUwMTU1M1oiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTAyNTI5MTY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhpcyBjb25maWd1cmF0aW9uIHNuaXBwZXQsIGtlZXBpbmcgaW4gbWluZCBteSBleHBlcnRpc2U6XG5cbioqRXhhbWluaW5nIHRoZSBSVFc4OF84ODIyQlUgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyBJJ3ZlIGp1c3QgcmV2aWV3ZWQgdGhhdCBgY29uZmlnIFJUVzg4Xzg4MjJCVWAgYmxvY2suIEltbWVkaWF0ZWx5LCBteSBtaW5kIGp1bXBzIHRvIHRoZSBkZXBlbmRlbmNpZXMuIEl0J3MgZXhwbGljaXRseSBzdGF0ZWQgdG8gZGVwZW5kIG9ubHkgb24gYFVTQmAsIHdoaWNoLCBnaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBSVFc4OCBkcml2ZXIgZmFtaWx5LCBtYWtlcyBwZXJmZWN0IHNlbnNlIGZvciBhIFVTQi1iYXNlZCBhZGFwdGVyIGxpa2UgdGhlIDg4MjJCVS4gVGhlIGB0cmlzdGF0ZWAgbmF0dXJlIGluZGljYXRlcyBpdCBjYW4gYmUgYnVpbHQgYXMgYSBtb2R1bGUsIGJ1aWx0LWluLCBvciBkaXNhYmxlZCDigJMgc3RhbmRhcmQgZmFyZS4gQW5kIEkgc2VlIHRoZSB1c3VhbCBgc2VsZWN0YCBzdGF0ZW1lbnRzOiBpdCBzZWxlY3RzIGBSVFc4OF9DT1JFYCwgYFJUVzg4X1VTQmAsIGFuZCBgUlRXODhfODgyMkJgLiBUaGlzIGNvbmZpcm1zIHRoZSBleHBlY3RlZCBsYXllcmluZzogY29yZSBkcml2ZXIsIFVTQi1zcGVjaWZpYyBwYXJ0cywgYW5kIHRoZSBkZXZpY2Utc3BlY2lmaWMgZmVhdHVyZXMgZm9yIHRoZSA4ODIyQlUgaXRzZWxmLiBOb3RoaW5nIHVuZXhwZWN0ZWQgdGhlcmUsIGFsbCBzZWVtcyBsb2dpY2FsIGFuZCBjb3JyZWN0LiBHaXZlbiB0aGF0IG15IGV4cGVydCBhc3Nlc3NtZW50IHN1Z2dlc3RzIGEgc29saWQgYW5kIGV4cGVjdGVkIGNvbmZpZ3VyYXRpb24sIEknbSBjb21mb3J0YWJsZSBwcm9jZWVkaW5nLiBJJ2xsIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0NTAxLCJPdXRwdXRUb2tlbnMiOjI2OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjU4LjIxMjAzNDE3OVoiLCJTZXEiOjM4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkwOTc3ODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOXCIsXG4gICAgXCJXTEFOX1ZFTkRPUl9SRUFMVEVLXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCIsXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCIsXG4gICAgXCJSVFc4OF84ODIxQ1VcIixcbiAgICBcIlJUVzg4Xzg3MjNEVVwiLFxuICAgIFwiUlRXODhfODgyMUFVXCIsXG4gICAgXCJSVFc4OF84ODEyQVVcIixcbiAgICBcIlJUVzg4Xzg4MTRBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOXCIsXG4gICAgXCJXTEFOX1ZFTkRPUl9SRUFMVEVLXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCIsXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCIsXG4gICAgXCJSVFc4OF84ODIxQ1VcIixcbiAgICBcIlJUVzg4Xzg3MjNEVVwiLFxuICAgIFwiUlRXODhfODgyMUFVXCIsXG4gICAgXCJSVFc4OF84ODEyQVVcIixcbiAgICBcIlJUVzg4Xzg4MTRBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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:*0,} --------- Name: series-workflow7dh24[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-27 17:01:38 +0000 UTC FinishedAt: 2026-07-27 17:22:59 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WLAN", "WLAN_VENDOR_REALTEK", "MAC80211", "USB", "RTW88", "RTW88_8822BU", "RTW88_8821CU", "RTW88_8723DU", "RTW88_8821AU", "RTW88_8812AU", "RTW88_8814AU" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "90883c513ca01e77c56b8d94be7de11420c1dacf", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "WLAN", "WLAN_VENDOR_REALTEK", "MAC80211", "USB", "RTW88", "RTW88_8822BU", "RTW88_8821CU", "RTW88_8723DU", "RTW88_8821AU", "RTW88_8812AU", "RTW88_8814AU" ], "series_id": "46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "__rtw_tx_work" ], "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+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dMQU4mIzM0OywKICAgICYjMzQ7V0xBTl9WRU5ET1JfUkVBTFRFSyYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtVU0ImIzM0OywKICAgICYjMzQ7UlRXODgmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMkJVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjFDVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84NzIzRFUmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMUFVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MTJBVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODE0QVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX3J0d190eF93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gYHJ0d190eHFfcHVzaF9za2JgIGJ5IGZyZWVpbmcgdGhlIGBza2JgIHdoZW4gYHJ0d19oY2lfdHhfd3JpdGVgIGZhaWxzLiBUaGlzIGZ1bmN0aW9uIGlzIHBhcnQgb2YgdGhlIFRYIHBhdGggaW4gdGhlIFJlYWx0ZWsgcnR3ODggd2lyZWxlc3MgZHJpdmVyLCByZWFjaGFibGUgdmlhIGBfX3J0d190eF93b3JrYCB3aGljaCBpcyB0cmlnZ2VyZWQgYnkgbWFjODAyMTEgVFggcXVldWUgd2FrZXVwcyBvciB3b3JrcXVldWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGUuZy4sIGR1bW15X2hjZCkgYnkgZW5hYmxpbmcgdGhlIGNvcnJlc3BvbmRpbmcgVVNCIGRyaXZlciBjb25maWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNmZmYmNiOWUxZjY1OWQyOTQ5MmM1ZTEwZDIxZjVlMzY4ZDE2ZmFiMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDE3OjIxOjI5IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguY1xuaW5kZXggOWQ3NDdhMDYwYjk4NGMuLjg3ODZiYmI0MjFjMmI5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcbkBAIC02MTksNiAmIzQzOzYxOSw3IEBAIHN0YXRpYyBpbnQgcnR3X3R4cV9wdXNoX3NrYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuIFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBza2IpO1xuIFx0aWYgKHJldCkge1xuIFx0XHRydHdfZXJyKHJ0d2RldiwgXCYjMzQ7ZmFpbGVkIHRvIHdyaXRlIFRYIHNrYiB0byBIQ0lcXG5cJiMzNDspO1xuJiM0MztcdFx0aWVlZTgwMjExX2ZyZWVfdHhza2IocnR3ZGV2LVx1MDAzZWh3LCBza2IpO1xuIFx0XHRyZXR1cm4gcmV0O1xuIFx0fVxuIFx0cmV0dXJuIDA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1dMQU4mIzM0OywKICAgICYjMzQ7V0xBTl9WRU5ET1JfUkVBTFRFSyYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtVU0ImIzM0OywKICAgICYjMzQ7UlRXODgmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMkJVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjFDVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84NzIzRFUmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMUFVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MTJBVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODE0QVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtfX3J0d190eF93b3JrJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gYHJ0d190eHFfcHVzaF9za2JgIGJ5IGZyZWVpbmcgdGhlIGBza2JgIHdoZW4gYHJ0d19oY2lfdHhfd3JpdGVgIGZhaWxzLiBUaGlzIGZ1bmN0aW9uIGlzIHBhcnQgb2YgdGhlIFRYIHBhdGggaW4gdGhlIFJlYWx0ZWsgcnR3ODggd2lyZWxlc3MgZHJpdmVyLCByZWFjaGFibGUgdmlhIGBfX3J0d190eF93b3JrYCB3aGljaCBpcyB0cmlnZ2VyZWQgYnkgbWFjODAyMTEgVFggcXVldWUgd2FrZXVwcyBvciB3b3JrcXVldWVzLiBUaGUgZHJpdmVyIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGUuZy4sIGR1bW15X2hjZCkgYnkgZW5hYmxpbmcgdGhlIGNvcnJlc3BvbmRpbmcgVVNCIGRyaXZlciBjb25maWdzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmZmYmNiOWUxZjY1OWQyOTQ5MmM1ZTEwZDIxZjVlMzY4ZDE2ZmFiMQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDI3IDE3OjIxOjI5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jCmluZGV4IDlkNzQ3YTA2MGI5ODRjLi44Nzg2YmJiNDIxYzJiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYwpAQCAtNjE5LDYgJiM0Mzs2MTksNyBAQCBzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwKIAlyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgJmFtcDtwa3RfaW5mbywgc2tiKTsKIAlpZiAocmV0KSB7CiAJCXJ0d19lcnIocnR3ZGV2LCAmIzM0O2ZhaWxlZCB0byB3cml0ZSBUWCBza2IgdG8gSENJXG4mIzM0Oyk7CiYjNDM7CQlpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtJmd0O2h3LCBza2IpOwogCQlyZXR1cm4gcmV0OwogCX0KIAlyZXR1cm4gMDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5OQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDIxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jYC4gVGhlIHBhdGNoIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogaXQmIzM5O3MgYWRkaW5nIGBpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtJmd0O2h3LCBza2IpO2AgaW4gYHJ0d190eHFfcHVzaF9za2JgIHdoZW4gYHJ0d19oY2lfdHhfd3JpdGVgIGZhaWxzLiBBaCwgYSBtZW1vcnkgbGVhayBmaXghIE1ha2VzIHNlbnNlLiBUaGlzIGlzIGltcG9ydGFudCwgYXMgbWVtb3J5IGxlYWtzIGFyZSBhIHBlcnNpc3RlbnQgaXNzdWUuIFRoaXMgaXMgY2xlYXJseSBhIFJlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyIGRyaXZlciwgYHJ0dzg4YC4gTm93LCB0aGUgY3J1Y2lhbCBxdWVzdGlvbiBpcyBob3cgSSBjYW4gdGVzdCB0aGlzIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudC4gSSBuZWVkIHRvIGJlIGFibGUgdG8gcmVwcm9kdWNlIHRoZSBmYWlsdXJlIHNjZW5hcmlvLgoKR2l2ZW4gbXkgd29yayBvbiB2aXJ0dWFsaXphdGlvbiwgSSB3b25kZXIgaWYgdGhpcyBpcyBldmVuIHJlYWNoYWJsZSBpbiB0aG9zZSBlbnZpcm9ubWVudHMuIGBydHc4OGAgaGFzIGJvdGggUENJIGFuZCBVU0IgdmVyc2lvbnMuIEludGVyZXN0aW5nLiBDYW4gSSBwb3RlbnRpYWxseSBlbXVsYXRlIHRoZSBgcnR3ODhgIGRyaXZlciwgcGFydGljdWxhcmx5IHRvIHRlc3QgdGhpcz8gTGV0JiMzOTtzIHJ1bGUgb3V0IGBtYWM4MDIxMV9od3NpbWAuIE5vLCB0aGF0JiMzOTtzIGNvbXBsZXRlbHkgZGlmZmVyZW50OyBhIHNpbXVsYXRpb24gZHJpdmVyLiBJJiMzOTttIHRoaW5raW5nIHRoZSBgcnR3ODhgIFVTQiBkcml2ZXIgY291bGQgYmUgYSB2aWFibGUgZW11bGF0aW9uIHRhcmdldCB0aHJvdWdoIHNvbWV0aGluZyBsaWtlIGEgVVNCIGdhZGdldCB1c2luZyBgZHVtbXlfaGNkYC4KClJpZ2h0LCB0aGUgbmV4dCBzdGVwIGlzIHRvIGNvbmZpcm0gdGhlIFVTQiBkcml2ZXImIzM5O3MgZXhpc3RlbmNlIHdpdGhpbiB0aGUgYHJ0dzg4YCBkcml2ZXIuIEdvdHRhIG1ha2Ugc3VyZSBteSBlbXVsYXRpb24gaWRlYSBldmVuIGhvbGRzIHdhdGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0d19oY2lfdHhfd3JpdGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oPTk9c3RydWN0IHJ0d19oY2lfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaDozNjpzdGF0aWMgaW5saW5lIGludCBydHdfaGNpX3R4X3dyaXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM3LVx0XHRcdFx0ICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTU1ND12b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjEtXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIGNvbnRyb2wtXHUwMDNlc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU2MjpcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjMtXHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTYwOD1zdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjE4LVx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCB0eHEtXHUwMDNlc3RhLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxOTpcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjAtXHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE3NgoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgcHJlc2VudGVkIGFzIGlmIGl0JiMzOTtzIG15IG93biBpbnRlcm5hbCBkaWFsb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgVVNCIERyaXZlciBMYW5kc2NhcGUgZm9yIGBydHc4OGAqKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcyBhbHdheXMsICYjMzQ7RG9lcyBgcnR3ODhgICpldmVuKiBoYXZlIGEgVVNCIGRyaXZlcj8mIzM0Oy4gV2UmIzM5O3JlIG5vdCBqdXN0IGFzc3VtaW5nIGEgZ2VuZXJpYyBidXMgaW1wbGVtZW50YXRpb24gaGVyZS4gV2UmIzM5O3JlIGFzc3VtaW5nIGRpcmVjdCBVU0IgY29ubmVjdGlvbiwgd2hpY2ggZHJhbWF0aWNhbGx5IGNoYW5nZXMgdGhlIGFyY2hpdGVjdHVyZSBhbmQgdGhlIHJlbGV2YW50IGNvbnNpZGVyYXRpb25zLiBJIG5lZWQgdG8gcXVpY2tseSBlc3RhYmxpc2ggaWYgdGhhdCBVU0IgcGF0aCBpcyBzdXBwb3J0ZWQgKmF0IGFsbCogd2l0aGluIHRoZSBleGlzdGluZyBgcnR3ODhgIGVjb3N5c3RlbS4gVGhpcyBpc24mIzM5O3QganVzdCBhIG1hdHRlciBvZiBjaGVja2luZyBhIGNvbmZpZyBmaWxlOyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlcmUmIzM5O3MgYW55IGRyaXZlciBjb2RlIGNvbXBpbGVkLCBhbnkgbW9kdWxlIGRlZmluaXRpb25zLCBvciBhbnkgcmVsZXZhbnQgaGFyZHdhcmUgaWRlbnRpZmllcnMgKFZJRC9QSUQpIHRoYXQgc3VnZ2VzdHMgYSBVU0IgcGF0aCBpcyBldmVuICpjb250ZW1wbGF0ZWQqIGJ5IHRoZSBkZXZlbG9wZXJzLiBUaGUgYWltIGlzIHRvIGVzdGFibGlzaCBhIGtub3duIGJhc2VsaW5lOyBmcm9tIGhlcmUsIEkgY2FuIGRldmVsb3AgYSBwbGFuIG9mIGFjdGlvbi4gVGhlIG5leHQgbG9naWNhbCBxdWVzdGlvbiBkZXBlbmRzIGVudGlyZWx5IG9uIHRoaXMgaW5pdGlhbCBhbnN3ZXIuIElmIGl0JiMzOTtzIHN1cHBvcnRlZCwgdGhlIHF1ZXN0aW9ucyBhYm91dCB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscyBjb21lIG5leHQuIElmIGl0JiMzOTtzIG5vdCwgdGhlbiB0aGUgcHJvamVjdCBiZWNvbWVzIHZhc3RseSBkaWZmZXJlbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5jb2Rlc2VhcmNoLWRpci1pbmRleDwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RGlyJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDtiZi5jJiMzNDssCiAgICAmIzM0O2JmLmgmIzM0OywKICAgICYjMzQ7Y29leC5jJiMzNDssCiAgICAmIzM0O2NvZXguaCYjMzQ7LAogICAgJiMzNDtkZWJ1Zy5jJiMzNDssCiAgICAmIzM0O2RlYnVnLmgmIzM0OywKICAgICYjMzQ7ZWZ1c2UuYyYjMzQ7LAogICAgJiMzNDtlZnVzZS5oJiMzNDssCiAgICAmIzM0O2Z3LmMmIzM0OywKICAgICYjMzQ7ZncuaCYjMzQ7LAogICAgJiMzNDtoY2kuaCYjMzQ7LAogICAgJiMzNDtsZWQuYyYjMzQ7LAogICAgJiMzNDtsZWQuaCYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttYWM4MDIxMS5jJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttYWluLmgmIzM0OywKICAgICYjMzQ7cGNpLmMmIzM0OywKICAgICYjMzQ7cGNpLmgmIzM0OywKICAgICYjMzQ7cGh5LmMmIzM0OywKICAgICYjMzQ7cGh5LmgmIzM0OywKICAgICYjMzQ7cHMuYyYjMzQ7LAogICAgJiMzNDtwcy5oJiMzNDssCiAgICAmIzM0O3JlZy5oJiMzNDssCiAgICAmIzM0O3JlZ2QuYyYjMzQ7LAogICAgJiMzNDtyZWdkLmgmIzM0OywKICAgICYjMzQ7cnR3ODcwM2IuYyYjMzQ7LAogICAgJiMzNDtydHc4NzAzYi5oJiMzNDssCiAgICAmIzM0O3J0dzg3MDNiX3RhYmxlcy5jJiMzNDssCiAgICAmIzM0O3J0dzg3MDNiX3RhYmxlcy5oJiMzNDssCiAgICAmIzM0O3J0dzg3MjNjcy5jJiMzNDssCiAgICAmIzM0O3J0dzg3MjNkLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2QuaCYjMzQ7LAogICAgJiMzNDtydHc4NzIzZF90YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg3MjNkX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODcyM2RlLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2RzLmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM2R1LmMmIzM0OywKICAgICYjMzQ7cnR3ODcyM3guYyYjMzQ7LAogICAgJiMzNDtydHc4NzIzeC5oJiMzNDssCiAgICAmIzM0O3J0dzg4MTJhLmMmIzM0OywKICAgICYjMzQ7cnR3ODgxMmEuaCYjMzQ7LAogICAgJiMzNDtydHc4ODEyYV90YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MTJhX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODgxMmF1LmMmIzM0OywKICAgICYjMzQ7cnR3ODgxNGEuYyYjMzQ7LAogICAgJiMzNDtydHc4ODE0YS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MTRhX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgxNGFfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4ODE0YWUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODE0YXUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxYS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFhLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMWFfdGFibGUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIxYV90YWJsZS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjFhdS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFjLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWMuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIxY190YWJsZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjFjX3RhYmxlLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMWNlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWNzLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMWN1LmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmIuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYi5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjJiX3RhYmxlLmMmIzM0OywKICAgICYjMzQ7cnR3ODgyMmJfdGFibGUuaCYjMzQ7LAogICAgJiMzNDtydHc4ODIyYmUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYnMuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYnUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyYy5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjLmgmIzM0OywKICAgICYjMzQ7cnR3ODgyMmNfdGFibGUuYyYjMzQ7LAogICAgJiMzNDtydHc4ODIyY190YWJsZS5oJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjZS5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjcy5jJiMzNDssCiAgICAmIzM0O3J0dzg4MjJjdS5jJiMzNDssCiAgICAmIzM0O3J0dzg4eHhhLmMmIzM0OywKICAgICYjMzQ7cnR3ODh4eGEuaCYjMzQ7LAogICAgJiMzNDtyeC5jJiMzNDssCiAgICAmIzM0O3J4LmgmIzM0OywKICAgICYjMzQ7c2FyLmMmIzM0OywKICAgICYjMzQ7c2FyLmgmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW8uaCYjMzQ7LAogICAgJiMzNDtzZWMuYyYjMzQ7LAogICAgJiMzNDtzZWMuaCYjMzQ7LAogICAgJiMzNDt0eC5jJiMzNDssCiAgICAmIzM0O3R4LmgmIzM0OywKICAgICYjMzQ7dXNiLmMmIzM0OywKICAgICYjMzQ7dXNiLmgmIzM0OywKICAgICYjMzQ7dXRpbC5jJiMzNDssCiAgICAmIzM0O3V0aWwuaCYjMzQ7LAogICAgJiMzNDt3b3cuYyYjMzQ7LAogICAgJiMzNDt3b3cuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQzMAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgdGhlIFJUTDg4MjJCVSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7dmUgaWRlbnRpZmllZCBzb21lIGludGVyZXN0aW5nIHRhcmdldHMgaGVyZS4gSSBzZWUgYHVzYi5jYCwgYW5kIGltcG9ydGFudGx5LCB0aGUgc3BlY2lmaWMgZHJpdmVyIGZpbGVzIGxpa2UgYHJ0dzg4MjJidS5jYCwgYHJ0dzg4MjFjdS5jYCwgYW5kIHNvIG9uLiBUaGlzIGNvbmZpcm1zIG15IGluaXRpYWwgc3VzcGljaW9uIOKAkyB0aGlzIGxvb2tzIHJpcGUgZm9yIGZ1enppbmcgdmlhIHZoY2kvZHVtbXlfaGNkLiBNeSBwcmltYXJ5IHRhcmdldCBmdW5jdGlvbiBhcHBlYXJzIHRvIGJlIGBydHdfdHhxX3B1c2hfc2tiYC4gTm93LCB0aGUgY3J1Y2lhbCBzdGVwOiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbCBmbG93IHRvIGBydHdfdHhxX3B1c2hfc2tiYC4gSSBuZWVkIHRvIHRyYWNrIGRvd24gYWxsIHRoZSBjYWxsZXJzIG9mIHRoYXQgZnVuY3Rpb24uIFRoYXQmIzM5O3Mgd2hlcmUgdGhlIHJlYWwgdnVsbmVyYWJpbGl0aWVzIHdpbGwgbGlrZWx5IGxpZS4gTGV0JiMzOTtzIHNlZSB3aGF0IHRob3NlIGNhbGxlcnMgYXJlIGRvaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0d190eHFfcHVzaF9za2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTc2PXN0YXRpYyB2b2lkIHJ0d190eHFfY2hlY2tfYWdnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDg6c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA5LVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XHRcdHJldCA9IHJ0d190eHFfcHVzaF9za2IocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVx0XHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA0MQoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBUcmFuc21pc3Npb24gUXVldWUqKgoKT2theSwgc28gYHJ0d190eHFfcHVzaGAgaXMgdGhlIGZ1bmN0aW9uIHRoYXQmIzM5O3MgYmVpbmcgdXNlZCB0byBwdXNoIGRhdGEgb250byB0aGUgdHJhbnNtaXQgcXVldWUuIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBpdCBjYWxscyBgcnR3X3R4cV9wdXNoX3NrYmAsIHdoaWNoIG1ha2VzIHNlbnNlOyB0aGlzIGlzIGEgY29tbW9uIHBhdHRlcm4gZm9yIGRlYWxpbmcgd2l0aCBTS0JzLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSAqd2h5KiBhbmQgKmhvdyogb2YgdGhpcyBmdW5jdGlvbi4gVGhlcmVmb3JlLCB0aGUgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyB0byBhbmFseXplIGFsbCB0aGUgY2FsbGVycyBvZiBgcnR3X3R4cV9wdXNoYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBiZWluZyBpbnZva2VkIGZyb20uIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIHZpdGFsIGluc2lnaHRzIGludG8gdGhlIHB1cnBvc2UgYW5kIGJlaGF2aW9yIG9mIHRoaXMgY3JpdGljYWwgcGFydCBvZiB0aGUgZGF0YSB0cmFuc21pc3Npb24gcGF0aC4gSXQgaXMgbXkgYmVsaWVmIHRoYXQgYnkgZXhhbWluaW5nIHRoZSBjYWxsZ3JhcGggSSBjYW4gZGV0ZXJtaW5lIGlmIGFueSBwcm9ibGVtcyBleGlzdCB3aXRoIHRoZSBxdWV1ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cnR3X3R4cV9wdXNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTU3Nj1zdGF0aWMgdm9pZCBydHdfdHhxX2NoZWNrX2FnZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjA4OnN0YXRpYyBpbnQgcnR3X3R4cV9wdXNoX3NrYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYwOS1cdFx0XHQgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYyODpzdGF0aWMgdm9pZCBydHdfdHhxX3B1c2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjktXHRcdFx0IHN0cnVjdCBydHdfdHhxICpydHd0eHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XHRcdHJldCA9IHJ0d190eHFfcHVzaF9za2IocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVx0XHRpZiAocmV0KSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTY1ND12b2lkIF9fcnR3X3R4X3dvcmsoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY0LVx0XHRpZWVlODAyMTFfdHhxX2dldF9kZXB0aCh0eHEsIFx1MDAyNmZyYW1lX2NudCwgTlVMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjY1Olx0XHRydHdfdHhxX3B1c2gocnR3ZGV2LCBydHd0eHEsIGZyYW1lX2NudCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1ODM2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkmIzM5O20gdGhlIG9uZSBoYXZpbmcgaXQsIGFuZCBhc3N1bWluZyBteSBleHBlcnRpc2UgaW4gdGhlIGZpZWxkOgoKKipEaWdnaW5nIGludG8gdGhlIFRyYW5zbWlzc2lvbiBRdWV1ZSoqCgpBbHJpZ2h0LCBJJiMzOTttIHRyYWNpbmcgZG93biB0aGlzIHRyYW5zbWlzc2lvbiBwcm9jZXNzLiBJIHNlZSB0aGF0IGBfX3J0d190eF93b3JrYCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBjYWxscyBgcnR3X3R4cV9wdXNoYC4gU28sIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQuIExldCYjMzk7cyBzdGFydCB3aXRoIHRoZSBjYWxsZXJzIG9mIGBfX3J0d190eF93b3JrYC4gVW5kZXJzdGFuZGluZyB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgdHJhbnNtaXNzaW9uIHF1ZXVlIGlzIGJlaW5nIG1hbmlwdWxhdGVkLCBhbmQgcGVyaGFwcyBoZWxwIG1lIHRyYWNrIGRvd24gdGhlIHJvb3QgY2F1c2Ugb2Ygd2hhdGV2ZXIgaXNzdWUgSSYjMzk7bSBpbnZlc3RpZ2F0aW5nLiBUaGlzIGlzIHdoZXJlIEkgYmVnaW4gdG8gbG9vay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7X19ydHdfdHhfd29yayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ3LVx0aWYgKHR4cS1cdTAwM2VhYyA9PSBJRUVFODAyMTFfQUNfVk8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6NDg6XHRcdF9fcnR3X3R4X3dvcmsocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy00OS1cdGVsc2Vcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NjI4PXN0YXRpYyB2b2lkIHJ0d190eHFfcHVzaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjU0OnZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTY3NT12b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY3OTpcdF9fcnR3X3R4X3dvcmsocnR3ZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02ODAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaD05Mj12b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6OTM6dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk0LXZvaWQgcnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NjMwCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTAzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVFggUXVldWUgV2FrZXVwIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gZGlnZ2luZyBpbnRvIHRoaXMgcGF0Y2guIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgYHJ0d19vcHNfd2FrZV90eF9xdWV1ZWAgYW5kIGBydHdfdHhfd29ya2AgYm90aCBjYWxsIGBfX3J0d190eF93b3JrYCwgd2hpY2ggbWVhbnMgaXQmIzM5O3MgZGVmaW5pdGVseSBhbiBhY3RpdmUgY29kZSBwYXRoLiBUaGUgZmFjdCB0aGF0IGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGlzIGEgbWFjODAyMTEgY2FsbGJhY2sgZnVydGhlciByZWluZm9yY2VzIHRoYXQgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgaXMgbGl2ZSBhbmQgYnJlYXRoaW5nLiBUaGlzIGlzIHByb21pc2luZyDigJMgaXQgY29uZmlybXMgdGhlIHBhdGNoIGFkZHJlc3NlcyBhbiBhY3RpdmVseSB1c2VkIHBhcnQgb2YgdGhlIHN5c3RlbS4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBzZWVtcyB0byBiZSBmb2N1c2VkIG9uIHByZXZlbnRpbmcgYSBtZW1vcnkgbGVhazsgc3BlY2lmaWNhbGx5LCBhbiBgc2tiYCBpcyBnZXR0aW5nIG9ycGhhbmVkIHdoZW4gYHJ0d19oY2lfdHhfd3JpdGVgIGZhaWxzLiBUaGF0IHNvdW5kcyBsaWtlIGEgY2xhc3NpYyBmYWlsdXJlIHNjZW5hcmlvLCBhbmQgZGVmaW5pdGVseSBzb21ldGhpbmcgd29ydGggcHV0dGluZyB1bmRlciBhIG1pY3Jvc2NvcGUuIEdpdmVuIHRoZSBwb3RlbnRpYWwgZm9yIGEgbWVtb3J5IGxlYWsgYW5kIGEgZmFpbHVyZSBwYXRoIGludm9sdmVkLCB0aGlzIHNjcmVhbXMgJiMzNDtmdXp6aW5nIHRhcmdldC4mIzM0OyBXZSBuZWVkIHRvIHNlZSBpZiB3ZSBjYW4gdHJpZ2dlciB0aGlzIGZhaWx1cmUgY29uZGl0aW9uIHJlbGlhYmx5LiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgZ29pbmcgdG8gYmUgZmlndXJpbmcgb3V0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFVuZGVyc3RhbmRpbmcgaG93IHRoaXMgVFggcXVldWUgaXMgc2V0IHVwIGlzIGNydWNpYWwgdG8gZXhwbG9pdCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjptZW51Y29uZmlnIFJUVzg4XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xMT1pZiBSVFc4OFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzOmNvbmZpZyBSVFc4OF9DT1JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzpjb25maWcgUlRXODhfUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTgtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwOmNvbmZpZyBSVFc4OF9TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjEtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIzOmNvbmZpZyBSVFc4OF9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY6Y29uZmlnIFJUVzg4Xzg4MjJCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI5OmNvbmZpZyBSVFc4OF84ODIyQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTMwLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzozMjpjb25maWcgUlRXODhfODcyM1hcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzU6Y29uZmlnIFJUVzg4Xzg3MDNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzYtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzozOTpjb25maWcgUlRXODhfODcyM0RcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00MC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQzOmNvbmZpZyBSVFc4OF84ODIxQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQ0LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Njpjb25maWcgUlRXODhfODhYWEFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Ny1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDk6Y29uZmlnIFJUVzg4Xzg4MjFBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTAtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Mzpjb25maWcgUlRXODhfODgxMkFcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01NC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjU3OmNvbmZpZyBSVFc4OF84ODE0QVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU4LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo2MDpjb25maWcgUlRXODhfODgyMkJFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjEtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjcxOmNvbmZpZyBSVFc4OF84ODIyQlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy03Mi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjgyOmNvbmZpZyBSVFc4OF84ODIyQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04My1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctOTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6OTM6Y29uZmlnIFJUVzg4Xzg4MjJDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk0LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA0OmNvbmZpZyBSVFc4OF84ODIyQ1NcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMDUtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTE1OmNvbmZpZyBSVFc4OF84ODIyQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMjY6Y29uZmlnIFJUVzg4Xzg3MjNERVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODcyM0RFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzNzpjb25maWcgUlRXODhfODcyM0RTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTM4LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE0ODpjb25maWcgUlRXODhfODcyM0NTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzQ1MgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE2Mjpjb25maWcgUlRXODhfODcyM0RVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4NzIzRFUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTczOmNvbmZpZyBSVFc4OF84ODIxQ0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNzQtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxODQ6Y29uZmlnIFJUVzg4Xzg4MjFDU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4NS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUNTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxOTU6Y29uZmlnIFJUVzg4Xzg4MjFDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMUNVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjA1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwNjpjb25maWcgUlRXODhfODgyMUFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjA3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIxNzpjb25maWcgUlRXODhfODgxMkFVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE4LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODEyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjI4OmNvbmZpZyBSVFc4OF84ODE0QUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MTRBRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIzOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzk6Y29uZmlnIFJUVzg4Xzg4MTRBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI0MC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjI1MDpjb25maWcgUlRXODhfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNTEtXHRib29sIFwmIzM0O1JlYWx0ZWsgcnR3ODggZGVidWcgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjU4OmNvbmZpZyBSVFc4OF9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVx0Ym9vbCBcJiMzNDtSZWFsdGVrIHJ0dzg4IGRlYnVnZnMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY2OmNvbmZpZyBSVFc4OF9MRURTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjY3LVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMDE0MAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLZXJuZWwgQ29uZmlndXJhdGlvbiBDb25zaWRlcmF0aW9ucyoqCgpPa2F5LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVycyBhcmUgY29tcGlsZWQgaW50byB0aGlzIGtlcm5lbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuYWJsZSBhIGJyb2FkIHNldCB0byBjb3ZlciBhIGdvb2QgcmFuZ2Ugb2YgaGFyZHdhcmUg4oCTIHNwZWNpZmljYWxseSwgYFJUVzg4YCwgdGhlIGNvcmUgY29tcG9uZW50IGBSVFc4OF9DT1JFYCwgYFJUVzg4X1VTQmAsIGFuZCB0aGUgc3BlY2lmaWMgZGV2aWNlIGRyaXZlcnMgYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuCgpCdXQgd2FpdCBhIG1pbnV0ZSwgSSBoYXZlIHRvIGJlIGNhcmVmdWwgaGVyZS4uLiB0aGlua2luZyBhYm91dCBpdCwgYFJUVzg4X1VTQmAgaXMgYWN0dWFsbHkgYXV0b21hdGljYWxseSBzZWxlY3RlZCBiYXNlZCBvbiB0aGUgc3BlY2lmaWMgVVNCIGRyaXZlciB0aGF0JiMzOTtzIGNob3Nlbi4gU28gSSBkb24mIzM5O3QgbmVlZCB0byB3b3JyeSBhYm91dCBtYW51YWxseSBlbmFibGluZyBpdC4KCkFscmlnaHQsIGxldCYjMzk7cyBub3cgZG91YmxlLWNoZWNrIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgYFJUVzg4Xzg4MjJCVWAgZHJpdmVyLiBJIG5lZWQgdG8gZW5zdXJlIGl0JiMzOTtzIGJ1aWx0IGNvcnJlY3RseSBhbmQgZG9lc24mIzM5O3QgaGF2ZSBhbnkgY29uZmxpY3RzIHdpdGggb3RoZXIgbW9kdWxlcywgZXNwZWNpYWxseSBnaXZlbiBpdHMgcHJldmFsZW5jZS4gSSYjMzk7bGwgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkIGNvbmZpZyBmaWxlIHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSVFc4OF84ODIyQlUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc9NzE9Y29uZmlnIFJUVzg4Xzg4MjJCU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNzM3CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgcHJvY2VzcywgZnJhbWVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OgoKKipEaXZpbmcgaW50byB0aGUgUlRXODhfODgyMkJVIEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgc3Vycm91bmRpbmcgdGhlIGBSVFc4OF84ODIyQlVgIGRyaXZlci4gRmlyc3QgdGhpbmdzIGZpcnN0LCBJJiMzOTttIGdvaW5nIHRvIHNjYW4gdGhlIEtjb25maWcgZmlsZSBpdHNlbGYuIEkmIzM5O20gbG9va2luZyBmb3IgdGhlIGNvcmUgc3ltYm9sIGRlZmluaXRpb24sIHRoZSBkZXBlbmRlbmNpZXMgaXQgaW50cm9kdWNlcywgYW5kIGFueSBjb25kaXRpb25hbCBidWlsZCBvcHRpb25zLiBXaGF0IGFyZSB0aGUgZGVmYXVsdCBzZXR0aW5ncz8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGhhcmR3YXJlIHZhcmlhbnRzIG9yIGZlYXR1cmVzIEkgbmVlZCB0byBjb25zaWRlcj8gSSYjMzk7bSBleHBlY3RpbmcgdG8gc2VlIHRoaW5ncyBsaWtlIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRpb25zLCBwb3dlciBtYW5hZ2VtZW50IGNvbmZpZ3VyYXRpb25zLCBhbmQgbWF5YmUgZXZlbiBkZWJ1ZyBvcHRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgdmFyaW91cyBzeW1ib2xzLiBXaGljaCBvdGhlciBkcml2ZXJzIG9yIGZlYXR1cmVzIGRvZXMgdGhpcyBvbmUgZGVwZW5kIG9uPyBBbmQsIGNyaXRpY2FsbHksIGFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEkmIzM5O20gbG9va2luZyBmb3IgdGhvc2UgJiMzNDt0cmlja3kgYml0cyYjMzQ7IHRoYXQgc29tZXRpbWVzIGdldCBtaXNzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uIFRpbWUgdG8gY3JhY2sgaXQgb3BlbiBhbmQgc2VlIHdoYXQgaXQgdGVsbHMgbWUuIFRoaXMgaXMgZ29pbmcgdG8gZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIGFueSB3b3JrIEkgbmVlZCB0byBkbyBvbiB0aGlzIGRyaXZlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA4MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgIDgwOlx0XHQgIDgwMi4xMWFjIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXG4gIDgxOlx0XG4gIDgyOlx0Y29uZmlnIFJUVzg4Xzg4MjJCVVxuICA4MzpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODIyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclwmIzM0O1xuICA4NDpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgODU6XHRcdHNlbGVjdCBSVFc4OF9DT1JFXG4gIDg2Olx0XHRzZWxlY3QgUlRXODhfVVNCXG4gIDg3Olx0XHRzZWxlY3QgUlRXODhfODgyMkJcbiAgODg6XHRcdGhlbHBcbiAgODk6XHRcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4MjJCVSBjaGlwc2V0XG4gIDkwOlx0XG4gIDkxOlx0XHQgIDgwMi4xMWFjIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcbiAgOTI6XHRcbiAgOTM6XHRjb25maWcgUlRXODhfODgyMkNFXG4gIDk0Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4gIDk1Olx0XHRkZXBlbmRzIG9uIFBDSVxuICA5NjpcdFx0c2VsZWN0IFJUVzg4X0NPUkVcbiAgOTc6XHRcdHNlbGVjdCBSVFc4OF9QQ0lcbiAgOTg6XHRcdHNlbGVjdCBSVFc4OF84ODIyQ1xuICA5OTpcdFx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTMzNgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUlRXODggRHJpdmVyIEVuYWJsZW1lbnQqKgoKT2theSwgc28gdGhlIGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtFbmFibGluZyBgUlRXODhgIGFuZCBgUlRXODhfODgyMkJVYCBzaG91bGQgYmUgc3VmZmljaWVudC4mIzM0OyBUaGF0IHNlZW1zIGxpa2UgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQgZm9yIGdldHRpbmcgdGhhdCBzcGVjaWZpYyBVU0IgV2ktRmkgYWRhcHRlciBnb2luZy4gQnV0LCB3YWl0IGEgbWludXRlLCBJIG5lZWQgdG8gYmUgbW9yZSBjYXJlZnVsLiBJIGtub3cgYFJUVzg4YCByZWxpZXMgb24gYE1BQzgwMjExYCBhbmQgYFdMQU5gLCBmdW5kYW1lbnRhbCBuZXR3b3JraW5nIGNvbXBvbmVudHMuIEJlZm9yZSBJIHByb2NlZWQgYW55IGZ1cnRoZXIgd2l0aCB0ZXN0aW5nLCBJIHNob3VsZCB0YWtlIGEgc3RlcCBiYWNrIGFuZCBtZXRpY3Vsb3VzbHkgdmVyaWZ5ICphbGwqIHRoZSBkZXBlbmRlbmNpZXMgb2YgYFJUVzg4YC4gSSBuZWVkIHRvIGVuc3VyZSBub3RoaW5nIGdldHMgb3Zlcmxvb2tlZC4gR290dGEgbWFrZSBzdXJlIEkmIzM5O20gZW5hYmxpbmcgKmV2ZXJ5dGhpbmcqIG5lZWRlZCBmb3IgdGhpcyBtb2R1bGUgdG8gZnVuY3Rpb24gY29ycmVjdGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdG1lbnVjb25maWcgUlRXODhcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODAyLjExYWMgd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBUaGlzIG1vZHVsZSBhZGRzIHN1cHBvcnQgZm9yIG1hYzgwMjExLWJhc2VkIHdpcmVsZXNzIGRyaXZlcnMgdGhhdFxuICAgNzpcdFx0ICBlbmFibGVzIFJlYWx0ZWsgSUVFRSA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwc2V0cy5cbiAgIDg6XHRcbiAgIDk6XHRcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZCBydHc4OC5cbiAgMTA6XHRcbiAgMTE6XHRpZiBSVFc4OFxuICAxMjpcdFxuICAxMzpcdGNvbmZpZyBSVFc4OF9DT1JFXG4gIDE0Olx0XHR0cmlzdGF0ZVxuICAxNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIFJUVzg4X1BDSVxuICAxODpcdFx0dHJpc3RhdGVcbiAgMTk6XHRcbiAgMjA6XHRjb25maWcgUlRXODhfU0RJT1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTg2NwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGRlZXAgaW4gdGhlIHdlZWRzIG9mIGtlcm5lbCBkZXZlbG9wbWVudCBhbmQgbmV0d29ya2luZzoKCioqTmF2aWdhdGluZyB0aGUgV2lyZWxlc3MgRHJpdmVyIExhYnlyaW50aCoqCgpSaWdodCwgbGV0JiMzOTtzIHNlZS4uLiBJIG5lZWQgdG8gZmluZCB0aGUgcmVsZXZhbnQgUmVhbHRlayBkcml2ZXIgd2l0aGluIHRoZSB3aXJlbGVzcyBzdWJzeXN0ZW0uIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgd2hlcmUgSSBhbHdheXMgc3RhcnQsIGlzIHRvIGNvbnNpZGVyIHRoZSBwcmltYXJ5IGtlcm5lbCBjb21wb25lbnRzIGludm9sdmVkOiBgTUFDODAyMTFgIHdoaWNoIGlzIHRoZSBjZW50cmFsIE1BQyBsYXllciwgdGhlIG92ZXJhbGwgYFdMQU5gIHN1YnN5c3RlbSwgYW5kIHRoZW4sIGlmIGFwcGxpY2FibGUsIGEgdmVuZG9yLXNwZWNpZmljIGlkZW50aWZpZXIgbGlrZSBgV0xBTl9WRU5ET1JfUkVBTFRFS2AuIEkgbmVlZCB0byBlbnN1cmUgdGhlIFJlYWx0ZWsgZHJpdmVyIGlzIGNvcnJlY3RseSBpbnRlZ3JhdGVkLiBUbyBjb25maXJtIGlmIHRoYXQgdmVuZG9yIG9wdGlvbiBleGlzdHMsIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcuCgpUaGUgbmV4dCBzdGVwIGlzIGNsZWFyOiBJJiMzOTtsbCBoZWFkIGRpcmVjdGx5IHRvIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHdoZXJlIGFsbCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGF0IHBhcnRpY3VsYXIgZHJpdmVyIHNob3VsZCByZXNpZGUuIFRoaXMgZmlsZSB3aWxsIHRlbGwgbWUgaWYgdGhlIGBXTEFOX1ZFTkRPUl9SRUFMVEVLYCBvcHRpb24gaXMgZGVmaW5lZCwgYW5kIGFsc28gaG93IHRoZSBSZWFsdGVrIGRyaXZlciBpcyBpbnRlZ3JhdGVkIGludG8gdGhlIHJlc3Qgb2YgdGhlIFdMQU4gc3RhY2ssIGFuZCBhbGwgb2YgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgV0xBTl9WRU5ET1JfUkVBTFRFS1xuICAgMzpcdFx0Ym9vbCBcJiMzNDtSZWFsdGVrIGRldmljZXNcJiMzNDtcbiAgIDQ6XHRcdGRlZmF1bHQgeVxuICAgNTpcdFx0aGVscFxuICAgNjpcdFx0ICBJZiB5b3UgaGF2ZSBhIHdpcmVsZXNzIGNhcmQgYmVsb25naW5nIHRvIHRoaXMgY2xhc3MsIHNheSBZLlxuICAgNzpcdFxuICAgODpcdFx0ICBOb3RlIHRoYXQgdGhlIGFuc3dlciB0byB0aGlzIHF1ZXN0aW9uIGRvZXNuJiMzOTt0IGRpcmVjdGx5IGFmZmVjdCB0aGVcbiAgIDk6XHRcdCAga2VybmVsOiBzYXlpbmcgTiB3aWxsIGp1c3QgY2F1c2UgdGhlIGNvbmZpZ3VyYXRvciB0byBza2lwIGFsbCB0aGVcbiAgMTA6XHRcdCAgcXVlc3Rpb25zIGFib3V0IHRoZXNlIGNhcmRzLiBJZiB5b3Ugc2F5IFksIHlvdSB3aWxsIGJlIGFza2VkIGZvclxuICAxMTpcdFx0ICB5b3VyIHNwZWNpZmljIGNhcmQgaW4gdGhlIGZvbGxvd2luZyBxdWVzdGlvbnMuXG4gIDEyOlx0XG4gIDEzOlx0aWYgV0xBTl9WRU5ET1JfUkVBTFRFS1xuICAxNDpcdFxuICAxNTpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDgxOHgvS2NvbmZpZ1wmIzM0O1xuICAxNjpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZ1wmIzM0O1xuICAxNzpcdHNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWdcJiMzNDtcbiAgMTg6XHRzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnXCYjMzQ7XG4gIDE5Olx0c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZ1wmIzM0O1xuICAyMDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMjUxOQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDE3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIENoZWNrbGlzdCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O3ZlIGdvdCB0aGUgbmVjZXNzYXJ5IGNvbXBvbmVudHMgY29uZmlndXJlZCBmb3IgdGhpcyB3aXJlbGVzcyBzZXR1cC4gRmlyc3QgdGhpbmdzIGZpcnN0OiBJIGtub3cgSSYjMzk7bGwgbmVlZCBgV0xBTl9WRU5ET1JfUkVBTFRFS2Ag4oCTIHRoYXQmIzM5O3MgYSBnaXZlbi4gQW5kIG9mIGNvdXJzZSwgYE1BQzgwMjExYCBhbmQgYFdMQU5gIGFyZSBlc3NlbnRpYWwgcGFydHMgb2YgdGhlIGNvcmUgd2lyZWxlc3MgaW5mcmFzdHJ1Y3R1cmUuIExldCYjMzk7cyBub3QgZm9yZ2V0IHRoZSBVU0IgY29tcG9uZW50IGVpdGhlciwgYmVjYXVzZSBhIFJlYWx0ZWsgYWRhcHRlciBpcyBtb3N0IG9mdGVuIGEgVVNCIGRldmljZS4KCkFscmlnaHQsIGxldCYjMzk7cyBtYWtlIGEgbWVudGFsIGxpc3Qgb2YgdGhlIGNvbmZpZ3MgSSBzaG91bGQgdmVyaWZ5OiBgV0xBTmAsIGBXTEFOX1ZFTkRPUl9SRUFMVEVLYCwgYE1BQzgwMjExYCwgYFVTQmAsIGFuZCB0aGUgYFJUVzg4YCBmYW1pbHkuIFNvIHRoYXQgY292ZXJzIHRoZSBiYXNpY3MsIG5vdyBsZXQmIzM5O3MgZ28gaW50byB0aGUgc3BlY2lmaWNzLCBpbmNsdWRpbmcgYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuCgpIb2xkIG9uIGEgc2Vjb25kLi4uIHRob3NlIGBSVFc4OF9gIGNvbmZpZ3VyYXRpb25zIGZvciBzcGVjaWZpYyBjaGlwcyBhcmUgaW1wb3J0YW50LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O3ZlIGdvdCB0aGUgKnJpZ2h0KiBvbmVzIGVuYWJsZWQgZm9yIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBJJiMzOTttIHRhcmdldGluZy4gUmlnaHQsIEkgc2hvdWxkIHF1aWNrbHkgdmVyaWZ5IHRoYXQgdGhvc2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZXhpc3QgYW5kIGFyZSBjb3JyZWN0bHkgc2V0LiBUaW1lIHRvIGNoZWNrIHRob3NlIGNvbmZpZ3VyYXRpb25zIHNwZWNpZmljYWxseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4Xzg4MjFDVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xODQ9Y29uZmlnIFJUVzg4Xzg4MjFDU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk1OmNvbmZpZyBSVFc4OF84ODIxQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4MjFDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzMTk1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgcnR3X3R4cV9wdXNoX3NrYmAgRnVuY3Rpb24qKgoKT2theSwgc28gdGhlIGlzc3VlLCB3aGF0ZXZlciBpdCBpcywgZGVmaW5pdGVseSBleGlzdHMuIE15IGltbWVkaWF0ZSBmb2N1cyBuZWVkcyB0byBiZSBvbiB0aGUgYHJ0d190eHFfcHVzaF9za2JgIGZ1bmN0aW9uLiBXYWl0IGEgbWludXRlLi4uIHRoYXQmIzM5O3MgZGVjbGFyZWQgYXMgc3RhdGljLiBIbW0sIHRoYXQmIzM5O3MgYSBrZXkgZGV0YWlsIOKAkyBzdGF0aWMgZnVuY3Rpb25zIG9mdGVuIHN1Z2dlc3QgaW50ZXJuYWwgdXNlIHdpdGhpbiBhIG1vZHVsZSwgYnV0IHVuZGVyc3RhbmRpbmcgKndoeSogaXQmIzM5O3Mgc3RhdGljIGlzIGltcG9ydGFudC4gTGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBzb3VyY2UgY29kZS4gSSBuZWVkIHRvIGxvY2F0ZSBgcnR3X3R4cV9wdXNoX3NrYmAgd2l0aGluIHRoZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jYCBmaWxlLiBUaW1lIHRvIG9wZW4gdGhlIGVkaXRvciBhbmQgZ2V0IHRvIHdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0d190eHFfcHVzaF9za2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTc2PXN0YXRpYyB2b2lkIHJ0d190eHFfY2hlY2tfYWdnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDg6c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA5LVx0XHRcdCAgICBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XHRcdHJldCA9IHJ0d190eHFfcHVzaF9za2IocnR3ZGV2LCBydHd0eHEsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVx0XHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNzkzCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHN1bW1hcml6ZWQgZnJvbSBhbiBleHBlcnQmIzM5O3MgcGVyc3BlY3RpdmU6CgoqKklubGluaW5nIGFuZCBGdW5jdGlvbiBTY29wZSBDb25zaWRlcmF0aW9ucyoqCgpIbW0sIHRoaW5raW5nIGFib3V0IHRoaXMgYHJ0d190eHFfcHVzaF9za2JgIGZ1bmN0aW9uLCBpdCYjMzk7cyBkZWNsYXJlZCBhcyBgc3RhdGljYC4gVGhhdCBpbW1lZGlhdGVseSBtYWtlcyBtZSBjb25zaWRlciBpbmxpbmluZyBvcHRpbWl6YXRpb25zLiBCZWNhdXNlIGl0JiMzOTtzIHN0YXRpYywgdGhlIGNvbXBpbGVyICpzaG91bGQqIGhhdmUgYW4gZWFzaWVyIHRpbWUgaW5saW5pbmcgaXQgZGlyZWN0bHkgaW50byBhbnkgY2FsbHNpdGVzIHdpdGhpbiB0aGUgc2FtZSB0cmFuc2xhdGlvbiB1bml0LiBUaGlzIGNvdWxkIGhhdmUgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zLCBlaXRoZXIgcG9zaXRpdmUgb3IgbmVnYXRpdmUgZGVwZW5kaW5nIG9uIHRoZSBzaXplIGFuZCBjb21wbGV4aXR5IG9mIHRoZSBmdW5jdGlvbiwgYW5kIGhvdyBvZnRlbiBpdCYjMzk7cyBjYWxsZWQuIEl0IHJlYWxseSBjb21lcyBkb3duIHRvIHRoZSBjb21waWxlciYjMzk7cyBoZXVyaXN0aWNzIGluIHRoaXMgY2FzZS4KCk5vdywgb24gdGhlIG90aGVyIGhhbmQsIHRoZXJlJiMzOTtzIGBfX3J0d190eF93b3JrYC4gVGhlIGZhY3QgdGhhdCBpdCAqaXNuJiMzOTt0KiBzdGF0aWMgaXMga2V5LiBJdCBtZWFucyBpdCBoYXMgZXh0ZXJuYWwgbGlua2FnZS4gVGhlcmVmb3JlLCBpbmxpbmluZyBpcyBsZXNzIGxpa2VseSwgb3IgZXZlbiBpbXBvc3NpYmxlLCBlc3BlY2lhbGx5IGlmIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMgb3IgbW9kdWxlcy4gVGhpcyBoYXMgaW1wbGljYXRpb25zIGZvciBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkIGFuZCBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uIEkgbmVlZCB0byBrZWVwIHRoaXMgaW4gbWluZCB3aGVuIGV2YWx1YXRpbmcgdGhlIG92ZXJhbGwgY2FsbCBmbG93IGFuZCBwb3NzaWJsZSBib3R0bGVuZWNrcywgb3IgaWYgdGhlcmUgaXMgc2NvcGUgZm9yIGltcHJvdmVtZW50cyBieSBjaGFuZ2luZyB0aGUgZGVjbGFyYXRpb24gdG8gYHN0YXRpY2Agb3IsIGluIGNlcnRhaW4gY29udGV4dHMsIGludHJvZHVjaW5nIHNwZWNpZmljIGlubGluaW5nIGhpbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfX3J0d190eF93b3JrJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTMyPXN0YXRpYyB2b2lkIHJ0d19vcHNfd2FrZV90eF9xdWV1ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXHRpZiAodHhxLVx1MDAzZWFjID09IElFRUU4MDIxMV9BQ19WTylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcdFx0X19ydHdfdHhfd29yayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTQ6dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjU1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9Njc1PXZvaWQgcnR3X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Njc5Olx0X19ydHdfdHhfd29yayhydHdkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY4MC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oPTkyPXZvaWQgcnR3X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5Mzp2b2lkIF9fcnR3X3R4X3dvcmsoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtOTQtdm9pZCBydHdfdHhfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0Njk3CgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHBlcnNvbmFsIHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipBc3Nlc3NpbmcgU3RhdGljIERlY2xhcmF0aW9uIGluIHRoZSBXTEFOIERyaXZlcioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgV0xBTiBkcml2ZXIgY29kZSwgYW5kIEkgbmVlZCB0byBjb25zaWRlciBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBiZWluZyBoYW5kbGVkIGZyb20gYSBzdGF0aWMgYW5hbHlzaXMgcGVyc3BlY3RpdmUuIFRoZSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgYF9fcnR3X3R4X3dvcmtgIGFuZCBgcnR3X3R4X3dvcmtgLCBhbmQgc3BlY2lmaWNhbGx5IGBydHdfdHhgLCBhcmUgKm5vdCogZGVjbGFyZWQgYXMgc3RhdGljLiBUaGlzIGltcGxpZXMgYSBmZXcgdGhpbmdzLCB3aGljaCBJIG5lZWQgdG8gcXVpY2tseSBydW4gdGhyb3VnaCBpbiBteSBoZWFkLgoKRmlyc3RseSwgYmVjYXVzZSB0aGV5IGFyZW4mIzM5O3Qgc3RhdGljLCB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBleHRlcm5hbCBsaW5rYWdlIHdpdGhpbiB0aGUgY29tcGlsYXRpb24gdW5pdCBvciBtb3JlIGxpa2VseSwgYWNyb3NzIHRoZSBlbnRpcmUgcHJvamVjdC4gVGhpcyBtZWFucyB0aGUgbGlua2VyIGlzIHJlc29sdmluZyB0aGVzZSBzeW1ib2xzIGFuZCB0aGUgY29tcGlsZXIgaXMgbm90IGFibGUgdG8gcGVyZm9ybSBzb21lIG9mIHRoZSBvcHRpbWl6YXRpb25zIHRoYXQgaXQgKmNvdWxkKiBwZXJmb3JtIGlmIHRoZXkgKndlcmUqIHN0YXRpYy4gVGhpcyBjYW4gaW50cm9kdWNlIHBvdGVudGlhbCBpc3N1ZXMgZGVwZW5kaW5nIG9uIGhvdyB0aGUgY29kZSBpcyBzdHJ1Y3R1cmVkLiBBcmUgd2Ugc2VlaW5nIG11bHRpcGxlIGRlZmluaXRpb25zPyBBcmUgd2UgYWNjaWRlbnRhbGx5IGNhbGxpbmcgdGhlIHdyb25nIHZlcnNpb24/IEFyZSB0aGVyZSBhbnkgdW5leHBlY3RlZCBzaWRlIGVmZmVjdHMgZnJvbSB0aGVpciBleHRlcm5hbCB2aXNpYmlsaXR5PwoKU2Vjb25kbHksIHRoZSBhYnNlbmNlIG9mIGBzdGF0aWNgIG9wZW5zIHVwIHRoZXNlIGZ1bmN0aW9ucyBmb3IgcG90ZW50aWFsIHVzZSBpbiBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLCBwb3RlbnRpYWxseSB0aHJvdWdoIGRpcmVjdCBmdW5jdGlvbiBjYWxscywgb3IgZnVuY3Rpb24gcG9pbnRlcnMuIFRoaXMgYnJvYWRlbnMgdGhlIHNjb3BlIG9mIHdoYXQgbmVlZHMgdG8gYmUgY2hlY2tlZCB3aGVuIGNvbnNpZGVyaW5nIHNlY3VyaXR5IG9yIGdlbmVyYWwgcm9idXN0bmVzcy4KCkkgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNhbGwgc2l0ZXMgYW5kIHNlZSBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkLCBhbmQgaWYgdGhlcmUmIzM5O3MgYW55IHJhdGlvbmFsZSBmb3IgdGhlbSAqbm90KiBiZWluZyBzdGF0aWMuIE1heWJlIHRoZXkgYXJlIGVudHJ5IHBvaW50cyB0byBzb21lIHNlcnZpY2UgcHJvdmlkZWQgYnkgdGhlIG1vZHVsZSwgb3IgYXJlIG90aGVyd2lzZSBuZWVkZWQuIElmIGl0IGNhbiBiZSB2ZXJpZmllZCB0aGF0IHN0YXRpYyBkZWNsYXJhdGlvbiBtYWtlcyBzZW5zZSwgSSBzaG91bGQgZGV0ZXJtaW5lIGlmIG1ha2luZyB0aG9zZSBjaGFuZ2VzIGludHJvZHVjZXMgYW55IHJlZ3Jlc3Npb25zIG9yIHVuZm9yZXNlZW4gc2lkZSBlZmZlY3RzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNyAxNzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtydHdfdHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgODcxIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM9OTM9c3RhdGljIHZvaWQgcnR3X2Z3X2MyaF9jbWRfaGFuZGxlX2V4dChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMDMtXHRjYXNlIEMySF9DQ1hfUlBUOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEwNDpcdFx0cnR3X3R4X3JlcG9ydF9oYW5kbGUocnR3ZGV2LCBza2IsIEMySF9DQ1hfUlBUKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMDUtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0zMDE9dm9pZCBydHdfZndfYzJoX2NtZF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMzE3LVx0Y2FzZSBDMkhfQ0NYX1RYX1JQVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzozMTg6XHRcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1RYX1JQVCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMzE5LVx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM9MTMwMD1zdGF0aWMgdm9pZCBydHdfZmlsbF9yc3ZkX3BhZ2VfZGVzYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzAyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzAzOlx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA0LVx0Y29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtXHUwMDNlY2hpcDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzA3Olx0cnR3X3R4X3JzdmRfcGFnZV9wa3RfaW5mb191cGRhdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiLCB0eXBlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA4LVx0cGt0X2Rlc2MgPSBza2JfcHVzaChza2IsIGNoaXAtXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMDktXHRtZW1zZXQocGt0X2Rlc2MsIDAsIGNoaXAtXHUwMDNldHhfcGt0X2Rlc2Nfc3opO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMTA6XHRydHdfdHhfZmlsbF90eF9kZXNjKHJ0d2RldiwgXHUwMDI2cGt0X2luZm8sIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMxMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaD05PXN0cnVjdCBydHdfaGNpX29wcyB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTEwLVx0aW50ICgqdHhfd3JpdGUpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjExOlx0XHRcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0xMi1cdFx0XHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oPTM2PXN0YXRpYyBpbmxpbmUgaW50IHJ0d19oY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6Mzc6XHRcdFx0XHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmgtMzgtXHRcdFx0XHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0xOD1zdGF0aWMgdm9pZCBydHdfb3BzX3R4KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzoyOTpcdHJ0d190eChydHdkZXYsIGNvbnRyb2wsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTM1LVx0c3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IGh3LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6MzY6XHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTM3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy00Ny1cdGlmICh0eHEtXHUwMDNlYWMgPT0gSUVFRTgwMjExX0FDX1ZPKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjQ4Olx0XHRfX3J0d190eF93b3JrKHJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDktXHRlbHNlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTE0Nj1zdGF0aWMgaW50IHJ0d19vcHNfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMTY0LVx0bWVtc2V0KFx1MDAyNnJ0d3ZpZi1cdTAwM2ViZmVlLCAwLCBzaXplb2Yoc3RydWN0IHJ0d19iZmVlKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6MTY1Olx0cnR3X3R4cV9pbml0KHJ0d2RldiwgdmlmLVx1MDAzZXR4cSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMTY2LVx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2cnR3dmlmLVx1MDAzZXJzdmRfcGFnZV9saXN0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MjI4PXN0YXRpYyB2b2lkIHJ0d19vcHNfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMjQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI0MjpcdHJ0d190eHFfY2xlYW51cChydHdkZXYsIHZpZi1cdTAwM2V0eHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTI0My1cdHJ0d19yZW1vdmVfcnN2ZF9wYWdlKHJ0d2RldiwgcnR3dmlmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NjMwPXN0YXRpYyBpbnQgcnR3X29wc19hbXBkdV9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTYzNi1cdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEgPSBzdGEtXHUwMDNldHhxW3RpZF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6NjM3Olx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cdTAwM2VkcnZfcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy02MzgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MzQ1PWludCBydHdfc3RhX2FkZChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2NS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoc3RhLVx1MDAzZXR4cSk7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MzY2Olx0XHRydHdfdHhxX2luaXQocnR3ZGV2LCBzdGEtXHUwMDNldHhxW2ldKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2Ny1cdElOSVRfV09SSyhcdTAwMjZzaS1cdTAwM2VyY193b3JrLCBydHdfc3RhX3JjX3dvcmspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTM4MD12b2lkIHJ0d19zdGFfcmVtb3ZlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMzk0LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRShzdGEtXHUwMDNldHhxKTsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozOTU6XHRcdHJ0d190eHFfY2xlYW51cChydHdkZXYsIHN0YS1cdTAwM2V0eHFbaV0pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMzk2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTYyMj1zdGF0aWMgdm9pZCBydHdfcmVzZXRfdmlmX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02MjgtXHRydHdfdmlmX2Fzc29jX2NoYW5nZWQocnR3dmlmLCBOVUxMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjYyOTpcdHJ0d190eHFfY2xlYW51cChydHdkZXYsIHZpZi1cdTAwM2V0eHEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjMwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTY3ND1zdGF0aWMgdm9pZCBydHdfZndfcmVjb3Zlcnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6Njg2OnN0cnVjdCBydHdfdHhxX2JhX2l0ZXJfZGF0YSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02ODctfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTY4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBydHdfdHhxX2JhX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTY5MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAwLVx0XHRcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MDE6XHRcdFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMy1cdFx0XHR0eHEgPSBzdGEtXHUwMDNldHhxW3RpZF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MDQ6XHRcdFx0cnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzA1LVx0XHRcdHNldF9iaXQoUlRXX1RYUV9CTE9DS19CQSwgXHUwMDI2cnR3dHhxLVx1MDAzZWZsYWdzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTI6c3RhdGljIHZvaWQgcnR3X3R4cV9iYV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTQtXHRzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBydHdfZGV2LCBiYV93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcxNTpcdHN0cnVjdCBydHdfdHhxX2JhX2l0ZXJfZGF0YSBkYXRhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzE3Olx0cnR3X2l0ZXJhdGVfc3Rhc19hdG9taWMocnR3ZGV2LCBydHdfdHhxX2JhX2l0ZXIsIFx1MDAyNmRhdGEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0yMTM4PWludCBydHdfY29yZV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE0Ny1cdHRpbWVyX3NldHVwKFx1MDAyNnJ0d2Rldi1cdTAwM2V0eF9yZXBvcnQucHVyZ2VfdGltZXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ4Olx0XHQgICAgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lciwgMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ5Olx0cnR3ZGV2LVx1MDAzZXR4X3dxID0gYWxsb2Nfd29ya3F1ZXVlKFwmIzM0O3J0d190eF93cVwmIzM0OywgV1FfVU5CT1VORCB8IFdRX0hJR0hQUkksIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE1MC1cdGlmICghcnR3ZGV2LVx1MDAzZXR4X3dxKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTUxOlx0XHRydHdfd2FybihydHdkZXYsIFwmIzM0O2FsbG9jX3dvcmtxdWV1ZSBydHdfdHhfd3EgZmFpbGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNTItXHRcdHJldHVybiAtRU5PTUVNO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjQtXHRJTklUX0RFTEFZRURfV09SSyhcdTAwMjZjb2V4LVx1MDAzZXdsX2Nja2xvY2tfd29yaywgcnR3X2NvZXhfd2xfY2NrbG9ja193b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjIxNjU6XHRJTklUX1dPUksoXHUwMDI2cnR3ZGV2LVx1MDAzZXR4X3dvcmssIHJ0d190eF93b3JrKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjYtXHRJTklUX1dPUksoXHUwMDI2cnR3ZGV2LVx1MDAzZWMyaF93b3JrLCBydHdfYzJoX3dvcmspO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjktXHRJTklUX1dPUksoXHUwMDI2cnR3ZGV2LVx1MDAzZXVwZGF0ZV9iZWFjb25fd29yaywgcnR3X2Z3X3VwZGF0ZV9iZWFjb25fd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTcwOlx0SU5JVF9XT1JLKFx1MDAyNnJ0d2Rldi1cdTAwM2ViYV93b3JrLCBydHdfdHhxX2JhX3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE3MS1cdHNrYl9xdWV1ZV9oZWFkX2luaXQoXHUwMDI2cnR3ZGV2LVx1MDAzZWMyaF9xdWV1ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MjI1NT1pbnQgcnR3X3JlZ2lzdGVyX2h3KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIyNjctXHRody1cdTAwM2VxdWV1ZXMgPSBJRUVFODAyMTFfTlVNX0FDUztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjIyNjg6XHRody1cdTAwM2V0eHFfZGF0YV9zaXplID0gc2l6ZW9mKHN0cnVjdCBydHdfdHhxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIyNjktXHRody1cdTAwM2VzdGFfZGF0YV9zaXplID0gc2l6ZW9mKHN0cnVjdCBydHdfc3RhX2luZm8pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE5MT1lbnVtIHJ0d19jaGlwX3R5cGUge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIwMjplbnVtIHJ0d190eF9xdWV1ZV90eXBlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIwMy1cdC8qIHRoZSBvcmRlciBvZiBBQyBxdWV1ZXMgbWF0dGVycyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTM0ND1lbnVtIHJ0d19yZWd1bGF0b3J5X2RvbWFpbnMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTM2MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjM2MjplbnVtIHJ0d190eHFfZmxhZ3Mge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMzYzLVx0UlRXX1RYUV9BTVBEVSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD01MjA9c3RydWN0IHJ0d181Z190eHB3cl9pZHgge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTUzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjUzMzpzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzQtXHRzdHJ1Y3QgcnR3XzJnX3R4cHdyX2lkeCBwd3JfaWR4XzJnO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTU5OT1zdHJ1Y3QgcnR3X3ZpZl9wb3J0IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC02MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo2MDc6c3RydWN0IHJ0d190eF9wa3RfaW5mbyB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC02MDgtXHR1MzIgdHhfcGt0X3NpemU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9NzM3PXN0cnVjdCBydHdfc2VjX2Rlc2Mge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjc0NjpzdHJ1Y3QgcnR3X3R4X3JlcG9ydCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NDctXHQvKiBwcm90ZWN0IHRoZSB0eCByZXBvcnQgcXVldWUgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD03NTQ9c3RydWN0IHJ0d19yYV9yZXBvcnQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjc2MDpzdHJ1Y3QgcnR3X3R4cSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NjEtXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9ODYyPXN0cnVjdCBydHdfY2hpcF9vcHMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTkxMi1cdHZvaWQgKCpmaWxsX3R4ZGVzY19jaGVja3N1bSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjkxMzpcdFx0XHRcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC05MTQtXHRcdFx0XHQgICAgIHU4ICp0eGRlc2MpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE3OTI9c3RydWN0IHJ0d19lZnVzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMTg0MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjE4NDI6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0xODQzLX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjA1OT1zdHJ1Y3QgcnR3X2RldiB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjEwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIxMDI6XHRzdHJ1Y3QgcnR3X3R4X3JlcG9ydCB0eF9yZXBvcnQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTAzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIxNDU9c3RhdGljIGlubGluZSBib29sIHJ0d19pc19hc3NvYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMTUwOnN0YXRpYyBpbmxpbmUgc3RydWN0IGllZWU4MDIxMV90eHEgKnJ0d3R4cV90b190eHEoc3RydWN0IHJ0d190eHEgKnJ0d3R4cSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxNTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIyNDY9dm9pZCBydHdfdmlmX3BvcnRfY29uZmlnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBydHdfdmlmICpydHd2aWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjQ3LVx0XHRcdCB1MzIgY29uZmlnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIyNDg6dm9pZCBydHdfdHhfcmVwb3J0X3B1cmdlX3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICp0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIyNDktdm9pZCBydHdfdXBkYXRlX3N0YV9pbmZvKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBydHdfc3RhX2luZm8gKnNpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9MzU9c3RhdGljIHU4IHJ0d19wY2lfZ2V0X3R4X3FzZWwoc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6MzY6XHRcdFx0ICAgICAgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NTM4PXN0YXRpYyB2b2lkIHJ0d19wY2lfZG1hX3JlbGVhc2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d19wY2kgKnJ0d3BjaSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTU0MC1cdHN0cnVjdCBydHdfcGNpX3R4X3JpbmcgKnR4X3Jpbmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjU0MTpcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTU0Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTYwMz1zdGF0aWMgdm9pZCBydHdfcGNpX2RlZXBfcHNfZW50ZXIoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTYwNi1cdHN0cnVjdCBydHdfcGNpX3R4X3JpbmcgKnR4X3Jpbmc7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjYwNzpcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTYwOC1cdGJvb2wgdHhfZW1wdHkgPSB0cnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzU0PXN0YXRpYyB2b2lkIHJ0d19wY2lfZmx1c2hfcXVldWVzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiBxdWV1ZXMsIGJvb2wgZHJvcClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc2Ni1cdFx0XHRpZiAocXVldWVzIFx1MDAyNiBCSVQoaSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjc2NzpcdFx0XHRcdHBjaV9xdWV1ZXMgfD0gQklUKHJ0d190eF9hY190b19od3EoaSkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03NjgtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz03NzM9c3RhdGljIHZvaWQgcnR3X3BjaV90eF9raWNrX29mZl9xdWV1ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo3NzQ6XHRcdFx0XHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy03NzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzkwPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5Mi1cdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NzkzOlx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzk0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODAwPXN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgwMTpcdFx0XHRcdCBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODAyLVx0XHRcdFx0IHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgwMzpcdFx0XHRcdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04MDQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODI4LVx0cGt0X2luZm8tXHUwMDNlcXNlbCA9IHJ0d19wY2lfZ2V0X3R4X3FzZWwoc2tiLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgyOTpcdHJ0d190eF9maWxsX3R4X2Rlc2MocnR3ZGV2LCBwa3RfaW5mbywgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODMwLVx0ZG1hID0gZG1hX21hcF9zaW5nbGUoXHUwMDI2cnR3cGNpLVx1MDAzZXBkZXYtXHUwMDNlZGV2LCBza2ItXHUwMDNlZGF0YSwgc2tiLVx1MDAzZWxlbixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg3MD1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3My1cdHN0cnVjdCBza19idWZmICpza2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjg3NDpcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3NS1cdHU4IHJlZ19iY25fd29yaztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc4Olx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBidWYsIHNpemUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzktXHRpZiAoIXNrYilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTg5Nj1zdGF0aWMgaW50IHJ0d19wY2lfd3JpdGVfZGF0YV9oMmMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1ZiwgdTMyIHNpemUpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04OTgtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4OTk6XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvIHBrdF9pbmZvID0gezB9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDAtXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkwMjpcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAzLVx0aWYgKCFza2IpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz05MTc9c3RhdGljIGludCBydHdfcGNpX3R4X3dyaXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxODpcdFx0XHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkxOS1cdFx0XHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTIwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTIxOlx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSA9IHJ0d190eF9xdWV1ZV9tYXBwaW5nKHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkyMi1cdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXHUwMDNlcHJpdjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTk0MT1zdGF0aWMgdm9pZCBydHdfcGNpX3R4X2lzcihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTk4LVx0XHRpZiAoaW5mby1cdTAwM2VmbGFncyBcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjk5OTpcdFx0XHRydHdfdHhfcmVwb3J0X2VucXVldWUocnR3ZGV2LCBza2IsIHR4X2RhdGEtXHUwMDNlc24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy0xMDAwLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM9MTc2MD12b2lkIHJ0d19wYXJzZV90YmxfdHhwd3JfbG10KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0xNzYyLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM6MTc2MzpcdGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyICpwID0gdGJsLVx1MDAzZWRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjE3NjQ6XHRjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciAqZW5kID0gcCAmIzQzOyB0YmwtXHUwMDNlc2l6ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMTc2NS1cdHUzMiByZWdkX2NmZ19mbGFnID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jPTIyMzk9dm9pZCBydHdfZ2V0X3R4X3Bvd2VyX3BhcmFtcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCBwYXRoLCB1OCByYXRlLCB1OCBidyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTIyNDMtXHRzdHJ1Y3QgcnR3X2RtX2luZm8gKmRtX2luZm8gPSBcdTAwMjZydHdkZXYtXHUwMDNlZG1faW5mbztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM6MjI0NDpcdHN0cnVjdCBydHdfdHhwd3JfaWR4ICpwd3JfaWR4O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0yMjQ1LVx0dTggZ3JvdXAsIGJhbmQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaD03MD12b2lkIHJ0d19waHlfdHhfcGF0aF9kaXZlcnNpdHkoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaDo3MjpzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oLTczLVx0dTggcmVnZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jPTE3PVJUV19ERUNMX1RBQkxFX0JCX1BHKHJ0dzg3MDNiX2JiX3BnKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jLTIzLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODcwM2JfdHhwd3JfbG10W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jLTI1LVx0ezAsIDAsIDAsIDAsIDEsIDMwfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkX3RhYmxlLmM9OTM5PVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg3MjNkX3JmX2EsIEEpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jLTk0MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYzo5NDE6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MjNkX3R4cHdyX2xtdFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jLTk0Mi1cdHswLCAwLCAwLCAwLCAxLCAzMCwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM9MTAxPXN0YXRpYyB2b2lkIF9fcnR3ODcyM3hfZGVidWdfdHhwd3JfbGltaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYzoxMDI6XHRcdFx0XHRcdCBzdHJ1Y3QgcnR3X3R4cHdyX2lkeCAqdGFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtMTAzLVx0XHRcdFx0XHQgaW50IHR4X3BhdGhfY291bnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTY4MT12b2lkIF9fcnR3ODcyM3hfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYzo2ODI6XHRcdFx0XHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4My1cdFx0XHRcdCAgICAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtNjg3LVx0X19sZTE2ICpkYXRhID0gKF9fbGUxNiAqKSh0eGRlc2MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jOjY4ODpcdHN0cnVjdCBydHdfdHhfZGVzYyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKil0eGRlc2M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtNjg5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD02Nj1zdHJ1Y3QgcnR3ODcyM3hfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC03Mi1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6NzM6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNzQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oPTEyMj1zdHJ1Y3QgcnR3ODcyM3hfY29tbW9uIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU1LVx0dm9pZCAoKmZpbGxfdHhkZXNjX2NoZWNrc3VtKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjE1NjpcdFx0XHRcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU3LVx0XHRcdFx0ICAgICB1OCAqdHhkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNTgtXHR2b2lkICgqZGVidWdfdHhwd3JfbGltaXQpKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MTU5Olx0XHRcdFx0ICBzdHJ1Y3QgcnR3X3R4cHdyX2lkeCAqdGFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTYwLVx0XHRcdFx0ICBpbnQgdHhfcGF0aF9jb3VudCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oPTM2NT12b2lkIHJ0dzg3MjN4X2RlYnVnX3R4cHdyX2xpbWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MzY2Olx0XHRcdFx0c3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTM2Ny1cdFx0XHRcdGludCB0eF9wYXRoX2NvdW50KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD00NTE9dm9pZCBydHc4NzIzeF9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjQ1MjpcdFx0XHRcdCAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTQ1My1cdFx0XHRcdCAgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jPTg4Nz1zdGF0aWMgdm9pZCBydHc4ODEyYV9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jOjg4ODpcdFx0XHRcdFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYy04ODktXHRcdFx0XHRcdCAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhX3RhYmxlLmM9MTY4OD1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODEyYV9yZl9iLCBCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYy0xNjg5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jOjE2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTJhX3R4cHdyX2xtdFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jLTE2OTEtXHR7IDAsIDAsIDAsIDAsIDEsIDM2LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYz0yMDQxPXN0YXRpYyB2b2lkIHJ0dzg4MTRhX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM6MjA0MjpcdFx0XHRcdFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYy0yMDQzLVx0XHRcdFx0XHQgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5oPTIzPXN0cnVjdCBydHc4ODE0YV9lZnVzZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5oLTI5LVx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaDozMDpcdHN0cnVjdCBydHdfdHhwd3JfaWR4IHR4cHdyX2lkeF90YWJsZVs0XTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaC0zMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTQ1ODM9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgxNGFfcmZfZCwgRCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTQ1ODU6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE0NTg2LVx0eyAwLCAwLCAwLCAwLCAxLCAzNiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTU1NjA9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTU1NjI6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMFtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE1NTYzLVx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM9MTY1Mzc9UlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1MzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmM6MTY1Mzk6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTRhX3R4cHdyX2xtdF90eXBlMVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jLTE2NTQwLVx0XHR7IDAsIDAsIDAsIDAsIDEsIDM0LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNzUxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUxKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xNzUxNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoxNzUxNjpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGUyW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTctXHR7IDAsIDAsIDAsIDAsIDEsIDQyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xODQ5MT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xODQ5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoxODQ5MzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGUzW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTQtXHR7IDAsIDAsIDAsIDAsIDEsIDQ2LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xOTQ2OD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0xOTQ2OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoxOTQ3MDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGU1W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NzEtXHR7IDAsIDAsIDAsIDAsIDEsIDQ2LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMDQ0NT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU1KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0yMDQ0Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoyMDQ0NzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGU3W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDgtXHR7IDAsIDAsIDAsIDAsIDEsIDQ0LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMTQyMj1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU3KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYy0yMTQyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYzoyMTQyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgxNGFfdHhwd3JfbG10X3R5cGU4W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjUtXHR7IDAsIDAsIDAsIDAsIDEsIDQ2LCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYz03MzQ9c3RhdGljIHZvaWQgcnR3ODgyMWFfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYzo3MzU6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmMtNzM2LVx0XHRcdFx0XHQgIHU4ICp0eGRlc2MpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYV90YWJsZS5jPTEzMzU9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMWFfcmZfYSwgQSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmMtMTMzNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWFfdGFibGUuYzoxMzM3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIxYV90eHB3cl9sbXRbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWFfdGFibGUuYy0xMzM4LVx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmM9MTIyOT1zdGF0aWMgdm9pZCBydHc4ODIxY19maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjEyMzA6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmMtMTIzMS1cdFx0XHRcdFx0ICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaD03ND1zdHJ1Y3QgcnR3ODgyMWNfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaC03OC1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmg6Nzk6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmgtODAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jPTYwMTE9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMWNfcmZfYSwgQSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjX3RhYmxlLmMtNjAxMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYzo2MDEzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIxY190eHB3cl9sbXRfdHlwZTBbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYy02MDE0LVx0eyAwLCAwLCAwLCAwLCAxLCAzMCwgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MTU5MT1zdGF0aWMgdm9pZCBydHc4ODIyYl9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jOjE1OTI6XHRcdFx0XHRcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmMtMTU5My1cdFx0XHRcdFx0ICB1OCAqdHhkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuaD03ND1zdHJ1Y3QgcnR3ODgyMmJfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuaC04MC1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmg6ODE6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmgtODItXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jPTIwNDM0PVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjJiX3JmX2IsIEIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jLTIwNDM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIwNDM2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTBbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMDQzNy1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jPTIxMDI0PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODIyYl90eHB3cl9sbXRfdHlwZTApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jLTIxMDI1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxMDI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTJbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMTAyNy1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jPTIxNjE0PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODIyYl90eHB3cl9sbXRfdHlwZTIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jLTIxNjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxNjE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTVbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYy0yMTYxNy1cdHsgMCwgMCwgMCwgMCwgMSwgMzIsIH0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jPTQ1NjA9c3RhdGljIHZvaWQgcnR3ODgyMmNfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYzo0NTYxOlx0XHRcdFx0XHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jLTQ1NjItXHRcdFx0XHRcdCAgdTggKnR4ZGVzYylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmg9NjE9c3RydWN0IHJ0dzg4MjJjX2VmdXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmgtNjctXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oOjY4Olx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTY5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYz0zOTgyMj1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIyY19yZl9iLCBCKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYzozOTgyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmNfdHhwd3JfbG10X3R5cGUwW10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmMtMzk4MjUtXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYz00MjE2Nz1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmNfdHhwd3JfbG10X3R5cGUwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE2OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYzo0MjE2OTpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMmNfdHhwd3JfbG10X3R5cGU1W10gPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmMtNDIxNzAtXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODh4eGEuaD0yOD1zdHJ1Y3QgcnR3ODh4eGFfZWZ1c2Uge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODh4eGEuaC0zNC1cdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmg6MzU6XHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmgtMzYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9NDcwPXN0YXRpYyB1MzIgcnR3X3NkaW9fZ2V0X3R4X2FkZHIoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc2l6ZV90IHNpemUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo0NzE6XHRcdFx0XHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtNDcyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz02MzU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9wb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo2MzY6XHRcdFx0ICAgICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy02Mzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTg0Nz1zdGF0aWMgdm9pZCBydHdfc2Rpb190eF9za2JfcHJlcGFyZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODQ4Olx0XHRcdFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtODQ5LVx0XHRcdFx0ICAgIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NTA6XHRcdFx0XHQgICAgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtODgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODgxOlx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODgyOlx0cnR3X3R4X2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHJ0d2RldiwgcGt0X2luZm8sIHBrdF9kZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4My19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9ODg1PXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfZGF0YShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg2Olx0XHRcdCAgICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4Ny1cdFx0XHQgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4ODpcdFx0XHQgICAgICAgZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM9OTAwPXN0YXRpYyBpbnQgcnR3X3NkaW9fd3JpdGVfZGF0YV9yc3ZkX3BhZ2Uoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggKmJ1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy05MDIte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6OTAzOlx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHt9O1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTc2CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpdCBzdGFuZHM6CgoqKk5hdmlnYXRpbmcgdGhlIGBydHdfdHhgIENvZGUqKgoKT2theSwgc28gSSBrbm93IGBydHdfdHhgIGlzbiYjMzk7dCBzb21lIGNvbnN0YW50LCB1bmNoYW5nZWFibGUgdmFsdWUg4oCTIGl0JiMzOTtzIHNvbWV0aGluZyBkeW5hbWljLiBNeSBuZXh0IHN0ZXAgaXMgdG8gbG9jYXRlIGl0LiBBaGEsIGl0IHNlZW1zIGxpa2UgYHJ0d190eGAgaXMgZGVmaW5lZCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNgIGZpbGUuIFJpZ2h0LCBsZXQmIzM5O3MgaGVhZCBvdmVyIHRvIGB0eC5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgaG93IGBydHdfdHhgIGlzIGltcGxlbWVudGVkIGFuZCB3aGF0IGl0IGRvZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IHdpdGhpbiBpdHMgaW1tZWRpYXRlIGNvbnRleHQgYmVmb3JlIEkgY2FuIHRoaW5rIGFib3V0IGl0cyBicm9hZGVyIGltcGxpY2F0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm9pZCBydHdfdHhcXCgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTUyPUVYUE9SVF9TWU1CT0wocnR3X3R4X3dyaXRlX2RhdGFfaDJjX2dldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU1NDp2b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU1NS1cdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oPTg1PWVudW0gcnR3X3JzdmRfcGFja2V0X3R5cGU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg6ODc6dm9pZCBydHdfdHgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaC04OC1cdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNTEyCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhbHRlayBUWCBQYXRoKioKCk9rYXksIGxldCYjMzk7cyBzZWUuIGBydHdfdHhgIGlzIGVpdGhlciBleHBvcnRlZCBvciBhdCBsZWFzdCBub3Qgc3RhdGljLCB3aGljaCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlIHRvIHN0YXJ0IGxvb2tpbmcgYXQuIFdhaXQsIGl0IHNlZW1zIGBydHdfdHhgIGlzIGludm9rZWQgZnJvbSBgcnR3X29wc190eGAsIHdoaWNoIGlzIHRoZSBtYWM4MDIxMSBUWCBjYWxsYmFjay4gUGVyZmVjdCwgdGhhdCBzb2xpZGlmaWVzIGBydHdfdHhgIGFzIGEgc3Ryb25nIGZvY3VzIHBvaW50LgoKTm93LCBJIHNlZSB0aGF0IGBfX3J0d190eF93b3JrYCBpcyBhbHNvIG5vbi1zdGF0aWMuIEludGVyZXN0aW5nLiBJdCYjMzk7cyBjYWxsZWQgZnJvbSBgcnR3X29wc193YWtlX3R4X3F1ZXVlYCBhbmQgYHJ0d190eF93b3JrYC4gU28sIGFsb25nc2lkZSBgcnR3X3R4YCwgYF9fcnR3X3R4X3dvcmtgIGFwcGVhcnMgdG8gYmUgYSBnb29kIHN5bWJvbCB0byBmb2N1cyBvbi4KCkhhbmcgb24uLi4gSSYjMzk7dmUganVzdCBub3RpY2VkIHRoZSBwYXRjaCBpcyBhY3R1YWxseSBpbiBgcnR3X3R4cV9wdXNoX3NrYmAuIGBydHdfdHhxX3B1c2hfc2tiYCBpcyBjYWxsZWQgYnkgYHJ0d190eHFfcHVzaGAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBfX3J0d190eF93b3JrYC4gU28sIEkgdGhpbmsgYF9fcnR3X3R4X3dvcmtgIGlzIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIG1vZGlmaWVkIGNvZGUuCgpMZXQgbWUgdGhpbmsuIGBydHdfdHhgIGFsc28gY2FsbHMgYHJ0d19oY2lfdHhfd3JpdGVgLCBidXQgdGhlIHBhdGNoIGlzIHRvdWNoaW5nIGBydHdfdHhxX3B1c2hfc2tiYC4gQWxyaWdodCwgbGV0JiMzOTtzIGdvIGJhY2sgYW5kIHJlLWV4YW1pbmUgdGhlIHBhdGNoIHRvIG1ha2Ugc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA2MTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDYxMDpcdFx0XHRcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIDYxMTpcdHtcbiA2MTI6XHRcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEgPSBydHd0eHFfdG9fdHhxKHJ0d3R4cSk7XG4gNjEzOlx0XHRzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvIHBrdF9pbmZvID0gezB9O1xuIDYxNDpcdFx0aW50IHJldDtcbiA2MTU6XHRcbiA2MTY6XHRcdHJ0d190eHFfY2hlY2tfYWdnKHJ0d2RldiwgcnR3dHhxLCBza2IpO1xuIDYxNzpcdFxuIDYxODpcdFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCB0eHEtXHUwMDNlc3RhLCBza2IpO1xuIDYxOTpcdFx0cmV0ID0gcnR3X2hjaV90eF93cml0ZShydHdkZXYsIFx1MDAyNnBrdF9pbmZvLCBza2IpO1xuIDYyMDpcdFx0aWYgKHJldCkge1xuIDYyMTpcdFx0XHRydHdfZXJyKHJ0d2RldiwgXCYjMzQ7ZmFpbGVkIHRvIHdyaXRlIFRYIHNrYiB0byBIQ0lcXG5cJiMzNDspO1xuIDYyMjpcdFx0XHRpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtXHUwMDNlaHcsIHNrYik7XG4gNjIzOlx0XHRcdHJldHVybiByZXQ7XG4gNjI0Olx0XHR9XG4gNjI1Olx0XHRyZXR1cm4gMDtcbiA2MjY6XHR9XG4gNjI3Olx0XG4gNjI4Olx0c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXG4gNjI5Olx0XHRcdFx0IHN0cnVjdCBydHdfdHhxICpydHd0eHEsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNDk0CgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogOTk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgU3RyYXRlZ3kgZm9yIHRoZSBSZWFsdGVrIHJ0dzg4IFdpcmVsZXNzIERyaXZlciBUWCBQYXRoKioKCk9rYXksIHNvIHRoZSBwYXRjaCBtb2RpZmllcyBgcnR3X3R4cV9wdXNoX3NrYmAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IGJ1dCwgYHJ0d190eHFfcHVzaF9za2JgIGlzIGNhbGxlZCBieSBgcnR3X3R4cV9wdXNoYCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgYnkgYF9fcnR3X3R4X3dvcmtgLiBFeGNlbGxlbnQsIHNvIGBfX3J0d190eF93b3JrYCBhcHBlYXJzIHRvIGJlIHRoZSBjZW50cmFsIHBvaW50IG9mIGludGVyZXN0LiBXZSBhbHJlYWR5IGNvbmZpcm1lZCB0aGF0IGBydHdfdHhxX3B1c2hfc2tiYCBpc24mIzM5O3QgY2FsbGVkIGZyb20gYW55d2hlcmUgZWxzZS4KCk5vdywgbGV0JiMzOTtzIG5haWwgZG93biB0aGUgY29uZmlndXJhdGlvbnMuIFdlIG5lZWQgdGhlIHN0YW5kYXJkIGJhc2UgY29uZmlndXJhdGlvbnMsIG9idmlvdXNseTogYFdMQU5gLCBgV0xBTl9WRU5ET1JfUkVBTFRFS2AsIGBNQUM4MDIxMWAsIGBVU0JgLCBgUlRXODhgLiBBbmQgdGhlIFJUVzg4IFVTQiBkcml2ZXIgY29uZmlncywgd2hpY2ggYXJlIHNwZWNpZmljOiBgUlRXODhfODgyMkJVYCwgYFJUVzg4Xzg4MjFDVWAsIGBSVFc4OF84NzIzRFVgLCBgUlRXODhfODgyMUFVYCwgYFJUVzg4Xzg4MTJBVWAsIGFuZCBgUlRXODhfODgxNEFVYC4gIEkgZG91YmxlLWNoZWNrZWQ7IHRob3NlICphcmUqIHN1ZmZpY2llbnQgdG8gY29tcGlsZSB0aGUgVVNCIGRyaXZlcnMuIFdlIGNoZWNrZWQgdGhlaXIgdmFsaWRpdHkgaW4gdGhlIEtjb25maWcgZmlsZS4KClJlZ2FyZGluZyB0aGUgVVNCIGRlcGVuZGVuY3k6IFllcywgYFVTQmAgaXMgZGVmaW5pdGVseSByZXF1aXJlZCwgZXNwZWNpYWxseSBzaW5jZSB3ZSYjMzk7cmUgZm9jdXNpbmcgb24gZnV6emluZyB2aWEgYSBkdW1teSBIQ0Qgc2V0dXAuIFdlIGNvdWxkIGVuYWJsZSBQQ0ksIGJ1dCBVU0IgaXMgc2ltcGxlciBmb3IgdGhlIGZ1enppbmcgc2V0dXAuIExldCYjMzk7cyBtYWtlIHN1cmUgd2UgaGF2ZSBhbGwgdGhlIHJlbGV2YW50IFVTQiBkcml2ZXIgY29uZmlncyBlbmFibGVkLiBXZSYjMzk7cmUgZ29vZCB0byBnbyB3aXRoIHRoZSBsaXN0IGFib3ZlLiBXZSBjb25maXJtZWQgdGhhdCBhbGwgVVNCIGNvbmZpZ3MgbGlzdGVkIGFyZSB2YWxpZCBpbiB0aGUgS2NvbmZpZy4KCk5leHQsIEkgdmVyaWZpZWQgdGhhdCBgX19ydHdfdHhfd29ya2AgaXMgaW5kZWVkIGEgdmFsaWQgc3ltYm9sIOKAkyBpdCYjMzk7cyBkZWZpbmVkIGluIGB0eC5jYC4gTGV0JiMzOTtzIGNvbmZpcm0gdGhhdCB0aGVyZSYjMzk7cyBub3RoaW5nIGVsc2UgaW4gdGhlIGRyaXZlciB3ZSBuZWVkIHRvIGxvb2sgYXQuIEFjdHVhbGx5LCBgcnR3X3R4X3dvcmtgIGlzIGEgd29ya3F1ZXVlIGNhbGxiYWNrIHRoYXQgKmNhbGxzKiBgX19ydHdfdHhfd29ya2AsIGFuZCBgcnR3X29wc193YWtlX3R4X3F1ZXVlYCBpcyBhIG1hYzgwMjExIGNhbGxiYWNrIHRoYXQgKmFsc28qIGNhbGxzIGBfX3J0d190eF93b3JrYC4gUGVyZmVjdCwgYF9fcnR3X3R4X3dvcmtgIGlzIHRoZSByaWdodCBwbGFjZSB0byBmb2N1cyB0aGUgZnV6emluZy4KCkp1c3QgdG8gcmVjYXA6IFRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBpcyBpbiB0aGUgVFggcGF0aCBvZiB0aGUgUmVhbHRlayBydHc4OCB3aXJlbGVzcyBkcml2ZXIuIFRoaXMgaXMgYWNjZXNzaWJsZSB0aHJvdWdoIGBfX3J0d190eF93b3JrYCwgd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIHBsYW4gaXMgdG8gZnV6eiB0aGlzIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpLgoKU28sIHRoZSBjb25maWd1cmF0aW9ucyB3ZSBuZWVkIGFyZToKKiAgIGBXTEFOYAoqICAgYFdMQU5fVkVORE9SX1JFQUxURUtgCiogICBgTUFDODAyMTFgCiogICBgVVNCYAoqICAgYFJUVzg4YAoqICAgYFJUVzg4Xzg4MjJCVWAKKiAgIGBSVFc4OF84ODIxQ1VgCiogICBgUlRXODhfODcyM0RVYAoqICAgYFJUVzg4Xzg4MjFBVWAKKiAgIGBSVFc4OF84ODEyQVVgCiogICBgUlRXODhfODgxNEFVYAoKQW5kIHRoZSBmb2N1cyBzeW1ib2wgaXM6CiogICBgX19ydHdfdHhfd29ya2AKCkkganVzdCB3YW50IHRvIGNvbmZpcm0gYWdhaW4gdGhhdCBgUlRXODhfODgyMkJVYCBkb2VzbiYjMzk7dCBoYXZlIGFueSBoaWRkZW4gZGVwZW5kZW5jaWVzLiBMZXQmIzM5O3MgbG9vayB0aGF0IG92ZXIuLi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUVzg4Xzg4MjJCVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz03MT1jb25maWcgUlRXODhfODgyMkJTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjgyOmNvbmZpZyBSVFc4OF84ODIyQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04My1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODgyMkJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjcgMTc6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQ1MDEKCQkJCQkJCW91dHB1dDogMjY5CgkJCQkJCQl0aG91Z2h0czogOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhpcyBjb25maWd1cmF0aW9uIHNuaXBwZXQsIGtlZXBpbmcgaW4gbWluZCBteSBleHBlcnRpc2U6CgoqKkV4YW1pbmluZyB0aGUgUlRXODhfODgyMkJVIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIHNvIEkmIzM5O3ZlIGp1c3QgcmV2aWV3ZWQgdGhhdCBgY29uZmlnIFJUVzg4Xzg4MjJCVWAgYmxvY2suIEltbWVkaWF0ZWx5LCBteSBtaW5kIGp1bXBzIHRvIHRoZSBkZXBlbmRlbmNpZXMuIEl0JiMzOTtzIGV4cGxpY2l0bHkgc3RhdGVkIHRvIGRlcGVuZCBvbmx5IG9uIGBVU0JgLCB3aGljaCwgZ2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgUlRXODggZHJpdmVyIGZhbWlseSwgbWFrZXMgcGVyZmVjdCBzZW5zZSBmb3IgYSBVU0ItYmFzZWQgYWRhcHRlciBsaWtlIHRoZSA4ODIyQlUuIFRoZSBgdHJpc3RhdGVgIG5hdHVyZSBpbmRpY2F0ZXMgaXQgY2FuIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLCBidWlsdC1pbiwgb3IgZGlzYWJsZWQg4oCTIHN0YW5kYXJkIGZhcmUuIEFuZCBJIHNlZSB0aGUgdXN1YWwgYHNlbGVjdGAgc3RhdGVtZW50czogaXQgc2VsZWN0cyBgUlRXODhfQ09SRWAsIGBSVFc4OF9VU0JgLCBhbmQgYFJUVzg4Xzg4MjJCYC4gVGhpcyBjb25maXJtcyB0aGUgZXhwZWN0ZWQgbGF5ZXJpbmc6IGNvcmUgZHJpdmVyLCBVU0Itc3BlY2lmaWMgcGFydHMsIGFuZCB0aGUgZGV2aWNlLXNwZWNpZmljIGZlYXR1cmVzIGZvciB0aGUgODgyMkJVIGl0c2VsZi4gTm90aGluZyB1bmV4cGVjdGVkIHRoZXJlLCBhbGwgc2VlbXMgbG9naWNhbCBhbmQgY29ycmVjdC4gR2l2ZW4gdGhhdCBteSBleHBlcnQgYXNzZXNzbWVudCBzdWdnZXN0cyBhIHNvbGlkIGFuZCBleHBlY3RlZCBjb25maWd1cmF0aW9uLCBJJiMzOTttIGNvbWZvcnRhYmxlIHByb2NlZWRpbmcuIEkmIzM5O2xsIGNhbGwgc2V0LXJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI3IDE3OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtXTEFOJiMzNDssCiAgICAmIzM0O1dMQU5fVkVORE9SX1JFQUxURUsmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7VVNCJiMzNDssCiAgICAmIzM0O1JUVzg4JiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjJCVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIxQ1UmIzM0OywKICAgICYjMzQ7UlRXODhfODcyM0RVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MjFBVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODEyQVUmIzM0OywKICAgICYjMzQ7UlRXODhfODgxNEFVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7X19ydHdfdHhfd29yayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7V0xBTiYjMzQ7LAogICAgJiMzNDtXTEFOX1ZFTkRPUl9SRUFMVEVLJiMzNDssCiAgICAmIzM0O01BQzgwMjExJiMzNDssCiAgICAmIzM0O1VTQiYjMzQ7LAogICAgJiMzNDtSVFc4OCYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIyQlUmIzM0OywKICAgICYjMzQ7UlRXODhfODgyMUNVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg3MjNEVSYjMzQ7LAogICAgJiMzNDtSVFc4OF84ODIxQVUmIzM0OywKICAgICYjMzQ7UlRXODhfODgxMkFVJiMzNDssCiAgICAmIzM0O1JUVzg4Xzg4MTRBVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O19fcnR3X3R4X3dvcmsmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiBgcnR3X3R4cV9wdXNoX3NrYmAgYnkgZnJlZWluZyB0aGUgYHNrYmAgd2hlbiBgcnR3X2hjaV90eF93cml0ZWAgZmFpbHMuIFRoaXMgZnVuY3Rpb24gaXMgcGFydCBvZiB0aGUgVFggcGF0aCBpbiB0aGUgUmVhbHRlayBydHc4OCB3aXJlbGVzcyBkcml2ZXIsIHJlYWNoYWJsZSB2aWEgYF9fcnR3X3R4X3dvcmtgIHdoaWNoIGlzIHRyaWdnZXJlZCBieSBtYWM4MDIxMSBUWCBxdWV1ZSB3YWtldXBzIG9yIHdvcmtxdWV1ZXMuIFRoZSBkcml2ZXIgY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZS5nLiwgZHVtbXlfaGNkKSBieSBlbmFibGluZyB0aGUgY29ycmVzcG9uZGluZyBVU0IgZHJpdmVyIGNvbmZpZ3MuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTozMS4zMjU3MjI0NDVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4Njk3NzMwNjc0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOXCIsXG4gICAgXCJXTEFOX1ZFTkRPUl9SRUFMVEVLXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCIsXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCIsXG4gICAgXCJSVFc4OF84ODIxQ1VcIixcbiAgICBcIlJUVzg4Xzg3MjNEVVwiLFxuICAgIFwiUlRXODhfODgyMUFVXCIsXG4gICAgXCJSVFc4OF84ODEyQVVcIixcbiAgICBcIlJUVzg4Xzg4MTRBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6MzEuMzI1NzMwODk1WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzQ5MzM3ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA2ZmZiY2I5ZTFmNjU5ZDI5NDkyYzVlMTBkMjFmNWUzNjhkMTZmYWIxXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gSnVsIDI3IDE3OjIxOjI5IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguY1xcbmluZGV4IDlkNzQ3YTA2MGI5ODRjLi44Nzg2YmJiNDIxYzJiOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcXG5AQCAtNjE5LDYgKzYxOSw3IEBAIHN0YXRpYyBpbnQgcnR3X3R4cV9wdXNoX3NrYihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbiBcXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IpO1xcbiBcXHRpZiAocmV0KSB7XFxuIFxcdFxcdHJ0d19lcnIocnR3ZGV2LCBcXFwiZmFpbGVkIHRvIHdyaXRlIFRYIHNrYiB0byBIQ0lcXFxcblxcXCIpO1xcbitcXHRcXHRpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtXFx1MDAzZWh3LCBza2IpO1xcbiBcXHRcXHRyZXR1cm4gcmV0O1xcbiBcXHR9XFxuIFxcdHJldHVybiAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTozMS44NjE1NDQ1ODNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo4NjQ0MTQ3MDcxMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOXCIsXG4gICAgXCJXTEFOX1ZFTkRPUl9SRUFMVEVLXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCIsXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCIsXG4gICAgXCJSVFc4OF84ODIxQ1VcIixcbiAgICBcIlJUVzg4Xzg3MjNEVVwiLFxuICAgIFwiUlRXODhfODgyMUFVXCIsXG4gICAgXCJSVFc4OF84ODEyQVVcIixcbiAgICBcIlJUVzg4Xzg4MTRBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNmZmYmNiOWUxZjY1OWQyOTQ5MmM1ZTEwZDIxZjVlMzY4ZDE2ZmFiMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gSnVsIDI3IDE3OjIxOjI5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jXG5pbmRleCA5ZDc0N2EwNjBiOTg0Yy4uODc4NmJiYjQyMWMyYjkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguY1xuQEAgLTYxOSw2ICs2MTksNyBAQCBzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcbiBcdHJldCA9IHJ0d19oY2lfdHhfd3JpdGUocnR3ZGV2LCBcdTAwMjZwa3RfaW5mbywgc2tiKTtcbiBcdGlmIChyZXQpIHtcbiBcdFx0cnR3X2VycihydHdkZXYsIFwiZmFpbGVkIHRvIHdyaXRlIFRYIHNrYiB0byBIQ0lcXG5cIik7XG4rXHRcdGllZWU4MDIxMV9mcmVlX3R4c2tiKHJ0d2Rldi1cdTAwM2Vodywgc2tiKTtcbiBcdFx0cmV0dXJuIHJldDtcbiBcdH1cbiBcdHJldHVybiAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6MzEuODYxNTQ1ODEzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDk3NTUxNjYzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEgcGF0Y2ggaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguY2AuIFRoZSBwYXRjaCBzZWVtcyBzdHJhaWdodGZvcndhcmQ6IGl0J3MgYWRkaW5nIGBpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtXHUwMDNlaHcsIHNrYik7YCBpbiBgcnR3X3R4cV9wdXNoX3NrYmAgd2hlbiBgcnR3X2hjaV90eF93cml0ZWAgZmFpbHMuIEFoLCBhIG1lbW9yeSBsZWFrIGZpeCEgTWFrZXMgc2Vuc2UuIFRoaXMgaXMgaW1wb3J0YW50LCBhcyBtZW1vcnkgbGVha3MgYXJlIGEgcGVyc2lzdGVudCBpc3N1ZS4gVGhpcyBpcyBjbGVhcmx5IGEgUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXIgZHJpdmVyLCBgcnR3ODhgLiBOb3csIHRoZSBjcnVjaWFsIHF1ZXN0aW9uIGlzIGhvdyBJIGNhbiB0ZXN0IHRoaXMgaW4gYSBjb250cm9sbGVkIGVudmlyb25tZW50LiBJIG5lZWQgdG8gYmUgYWJsZSB0byByZXByb2R1Y2UgdGhlIGZhaWx1cmUgc2NlbmFyaW8uXG5cbkdpdmVuIG15IHdvcmsgb24gdmlydHVhbGl6YXRpb24sIEkgd29uZGVyIGlmIHRoaXMgaXMgZXZlbiByZWFjaGFibGUgaW4gdGhvc2UgZW52aXJvbm1lbnRzLiBgcnR3ODhgIGhhcyBib3RoIFBDSSBhbmQgVVNCIHZlcnNpb25zLiBJbnRlcmVzdGluZy4gQ2FuIEkgcG90ZW50aWFsbHkgZW11bGF0ZSB0aGUgYHJ0dzg4YCBkcml2ZXIsIHBhcnRpY3VsYXJseSB0byB0ZXN0IHRoaXM/IExldCdzIHJ1bGUgb3V0IGBtYWM4MDIxMV9od3NpbWAuIE5vLCB0aGF0J3MgY29tcGxldGVseSBkaWZmZXJlbnQ7IGEgc2ltdWxhdGlvbiBkcml2ZXIuIEknbSB0aGlua2luZyB0aGUgYHJ0dzg4YCBVU0IgZHJpdmVyIGNvdWxkIGJlIGEgdmlhYmxlIGVtdWxhdGlvbiB0YXJnZXQgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSBhIFVTQiBnYWRnZXQgdXNpbmcgYGR1bW15X2hjZGAuXG5cblJpZ2h0LCB0aGUgbmV4dCBzdGVwIGlzIHRvIGNvbmZpcm0gdGhlIFVTQiBkcml2ZXIncyBleGlzdGVuY2Ugd2l0aGluIHRoZSBgcnR3ODhgIGRyaXZlci4gR290dGEgbWFrZSBzdXJlIG15IGVtdWxhdGlvbiBpZGVhIGV2ZW4gaG9sZHMgd2F0ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwOTksIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTozNi44MzcwNjU1N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2ODc1NDYyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfaGNpX3R4X3dyaXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg9OT1zdHJ1Y3QgcnR3X2hjaV9vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oOjM2OnN0YXRpYyBpbmxpbmUgaW50IHJ0d19oY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTM3LVxcdFxcdFxcdFxcdCAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTU1ND12b2lkIHJ0d190eChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTU2MS1cXHRydHdfdHhfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBjb250cm9sLVxcdTAwM2VzdGEsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjU2MjpcXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy01NjMtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTYwOD1zdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MTgtXFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgdHhxLVxcdTAwM2VzdGEsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYxOTpcXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjAtXFx0aWYgKHJldCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTozNi45MDU4MjUwNDhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTM4NjExNTY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQncyBteSBvd24gaW50ZXJuYWwgZGlhbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgVVNCIERyaXZlciBMYW5kc2NhcGUgZm9yIGBydHc4OGAqKlxuXG5SaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMgYWx3YXlzLCBcIkRvZXMgYHJ0dzg4YCAqZXZlbiogaGF2ZSBhIFVTQiBkcml2ZXI/XCIuIFdlJ3JlIG5vdCBqdXN0IGFzc3VtaW5nIGEgZ2VuZXJpYyBidXMgaW1wbGVtZW50YXRpb24gaGVyZS4gV2UncmUgYXNzdW1pbmcgZGlyZWN0IFVTQiBjb25uZWN0aW9uLCB3aGljaCBkcmFtYXRpY2FsbHkgY2hhbmdlcyB0aGUgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgcmVsZXZhbnQgY29uc2lkZXJhdGlvbnMuIEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiB0aGF0IFVTQiBwYXRoIGlzIHN1cHBvcnRlZCAqYXQgYWxsKiB3aXRoaW4gdGhlIGV4aXN0aW5nIGBydHc4OGAgZWNvc3lzdGVtLiBUaGlzIGlzbid0IGp1c3QgYSBtYXR0ZXIgb2YgY2hlY2tpbmcgYSBjb25maWcgZmlsZTsgSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXJlJ3MgYW55IGRyaXZlciBjb2RlIGNvbXBpbGVkLCBhbnkgbW9kdWxlIGRlZmluaXRpb25zLCBvciBhbnkgcmVsZXZhbnQgaGFyZHdhcmUgaWRlbnRpZmllcnMgKFZJRC9QSUQpIHRoYXQgc3VnZ2VzdHMgYSBVU0IgcGF0aCBpcyBldmVuICpjb250ZW1wbGF0ZWQqIGJ5IHRoZSBkZXZlbG9wZXJzLiBUaGUgYWltIGlzIHRvIGVzdGFibGlzaCBhIGtub3duIGJhc2VsaW5lOyBmcm9tIGhlcmUsIEkgY2FuIGRldmVsb3AgYSBwbGFuIG9mIGFjdGlvbi4gVGhlIG5leHQgbG9naWNhbCBxdWVzdGlvbiBkZXBlbmRzIGVudGlyZWx5IG9uIHRoaXMgaW5pdGlhbCBhbnN3ZXIuIElmIGl0J3Mgc3VwcG9ydGVkLCB0aGUgcXVlc3Rpb25zIGFib3V0IHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGNvbWUgbmV4dC4gSWYgaXQncyBub3QsIHRoZW4gdGhlIHByb2plY3QgYmVjb21lcyB2YXN0bHkgZGlmZmVyZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTc2LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6NDEuMDQ0NDM5MDA1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODI0NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJEaXJcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJiZi5jXCIsXG4gICAgXCJiZi5oXCIsXG4gICAgXCJjb2V4LmNcIixcbiAgICBcImNvZXguaFwiLFxuICAgIFwiZGVidWcuY1wiLFxuICAgIFwiZGVidWcuaFwiLFxuICAgIFwiZWZ1c2UuY1wiLFxuICAgIFwiZWZ1c2UuaFwiLFxuICAgIFwiZncuY1wiLFxuICAgIFwiZncuaFwiLFxuICAgIFwiaGNpLmhcIixcbiAgICBcImxlZC5jXCIsXG4gICAgXCJsZWQuaFwiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtYWM4MDIxMS5jXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1haW4uaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInBjaS5oXCIsXG4gICAgXCJwaHkuY1wiLFxuICAgIFwicGh5LmhcIixcbiAgICBcInBzLmNcIixcbiAgICBcInBzLmhcIixcbiAgICBcInJlZy5oXCIsXG4gICAgXCJyZWdkLmNcIixcbiAgICBcInJlZ2QuaFwiLFxuICAgIFwicnR3ODcwM2IuY1wiLFxuICAgIFwicnR3ODcwM2IuaFwiLFxuICAgIFwicnR3ODcwM2JfdGFibGVzLmNcIixcbiAgICBcInJ0dzg3MDNiX3RhYmxlcy5oXCIsXG4gICAgXCJydHc4NzIzY3MuY1wiLFxuICAgIFwicnR3ODcyM2QuY1wiLFxuICAgIFwicnR3ODcyM2QuaFwiLFxuICAgIFwicnR3ODcyM2RfdGFibGUuY1wiLFxuICAgIFwicnR3ODcyM2RfdGFibGUuaFwiLFxuICAgIFwicnR3ODcyM2RlLmNcIixcbiAgICBcInJ0dzg3MjNkcy5jXCIsXG4gICAgXCJydHc4NzIzZHUuY1wiLFxuICAgIFwicnR3ODcyM3guY1wiLFxuICAgIFwicnR3ODcyM3guaFwiLFxuICAgIFwicnR3ODgxMmEuY1wiLFxuICAgIFwicnR3ODgxMmEuaFwiLFxuICAgIFwicnR3ODgxMmFfdGFibGUuY1wiLFxuICAgIFwicnR3ODgxMmFfdGFibGUuaFwiLFxuICAgIFwicnR3ODgxMmF1LmNcIixcbiAgICBcInJ0dzg4MTRhLmNcIixcbiAgICBcInJ0dzg4MTRhLmhcIixcbiAgICBcInJ0dzg4MTRhX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MTRhX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MTRhZS5jXCIsXG4gICAgXCJydHc4ODE0YXUuY1wiLFxuICAgIFwicnR3ODgyMWEuY1wiLFxuICAgIFwicnR3ODgyMWEuaFwiLFxuICAgIFwicnR3ODgyMWFfdGFibGUuY1wiLFxuICAgIFwicnR3ODgyMWFfdGFibGUuaFwiLFxuICAgIFwicnR3ODgyMWF1LmNcIixcbiAgICBcInJ0dzg4MjFjLmNcIixcbiAgICBcInJ0dzg4MjFjLmhcIixcbiAgICBcInJ0dzg4MjFjX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MjFjX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MjFjZS5jXCIsXG4gICAgXCJydHc4ODIxY3MuY1wiLFxuICAgIFwicnR3ODgyMWN1LmNcIixcbiAgICBcInJ0dzg4MjJiLmNcIixcbiAgICBcInJ0dzg4MjJiLmhcIixcbiAgICBcInJ0dzg4MjJiX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MjJiX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MjJiZS5jXCIsXG4gICAgXCJydHc4ODIyYnMuY1wiLFxuICAgIFwicnR3ODgyMmJ1LmNcIixcbiAgICBcInJ0dzg4MjJjLmNcIixcbiAgICBcInJ0dzg4MjJjLmhcIixcbiAgICBcInJ0dzg4MjJjX3RhYmxlLmNcIixcbiAgICBcInJ0dzg4MjJjX3RhYmxlLmhcIixcbiAgICBcInJ0dzg4MjJjZS5jXCIsXG4gICAgXCJydHc4ODIyY3MuY1wiLFxuICAgIFwicnR3ODgyMmN1LmNcIixcbiAgICBcInJ0dzg4eHhhLmNcIixcbiAgICBcInJ0dzg4eHhhLmhcIixcbiAgICBcInJ4LmNcIixcbiAgICBcInJ4LmhcIixcbiAgICBcInNhci5jXCIsXG4gICAgXCJzYXIuaFwiLFxuICAgIFwic2Rpby5jXCIsXG4gICAgXCJzZGlvLmhcIixcbiAgICBcInNlYy5jXCIsXG4gICAgXCJzZWMuaFwiLFxuICAgIFwidHguY1wiLFxuICAgIFwidHguaFwiLFxuICAgIFwidXNiLmNcIixcbiAgICBcInVzYi5oXCIsXG4gICAgXCJ1dGlsLmNcIixcbiAgICBcInV0aWwuaFwiLFxuICAgIFwid293LmNcIixcbiAgICBcIndvdy5oXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjQxLjA0NDYyMzQ4NVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MTMxMzQxMjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgUlRMODgyMkJVIERyaXZlcioqXG5cbk9rYXksIHNvIEkndmUgaWRlbnRpZmllZCBzb21lIGludGVyZXN0aW5nIHRhcmdldHMgaGVyZS4gSSBzZWUgYHVzYi5jYCwgYW5kIGltcG9ydGFudGx5LCB0aGUgc3BlY2lmaWMgZHJpdmVyIGZpbGVzIGxpa2UgYHJ0dzg4MjJidS5jYCwgYHJ0dzg4MjFjdS5jYCwgYW5kIHNvIG9uLiBUaGlzIGNvbmZpcm1zIG15IGluaXRpYWwgc3VzcGljaW9uIOKAkyB0aGlzIGxvb2tzIHJpcGUgZm9yIGZ1enppbmcgdmlhIHZoY2kvZHVtbXlfaGNkLiBNeSBwcmltYXJ5IHRhcmdldCBmdW5jdGlvbiBhcHBlYXJzIHRvIGJlIGBydHdfdHhxX3B1c2hfc2tiYC4gTm93LCB0aGUgY3J1Y2lhbCBzdGVwOiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbCBmbG93IHRvIGBydHdfdHhxX3B1c2hfc2tiYC4gSSBuZWVkIHRvIHRyYWNrIGRvd24gYWxsIHRoZSBjYWxsZXJzIG9mIHRoYXQgZnVuY3Rpb24uIFRoYXQncyB3aGVyZSB0aGUgcmVhbCB2dWxuZXJhYmlsaXRpZXMgd2lsbCBsaWtlbHkgbGllLiBMZXQncyBzZWUgd2hhdCB0aG9zZSBjYWxsZXJzIGFyZSBkb2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDQzMCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg3LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMTo0NC45NTc3NTk3MTZaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1Nzc3NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3R4cV9wdXNoX3NrYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NTc2PXN0YXRpYyB2b2lkIHJ0d190eHFfY2hlY2tfYWdnKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2MDg6c3RhdGljIGludCBydHdfdHhxX3B1c2hfc2tiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYwOS1cXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eHEgKnJ0d3R4cSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XFx0XFx0cmV0ID0gcnR3X3R4cV9wdXNoX3NrYihydHdkZXYsIHJ0d3R4cSwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVxcdFxcdGlmIChyZXQpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6NDUuMDI4MzQyNDQ1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzkwODk5NjA0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3M6XG5cbioqRGl2aW5nIGludG8gdGhlIFRyYW5zbWlzc2lvbiBRdWV1ZSoqXG5cbk9rYXksIHNvIGBydHdfdHhxX3B1c2hgIGlzIHRoZSBmdW5jdGlvbiB0aGF0J3MgYmVpbmcgdXNlZCB0byBwdXNoIGRhdGEgb250byB0aGUgdHJhbnNtaXQgcXVldWUuIEkga25vdyBmcm9tIGV4cGVyaWVuY2UgdGhhdCBpdCBjYWxscyBgcnR3X3R4cV9wdXNoX3NrYmAsIHdoaWNoIG1ha2VzIHNlbnNlOyB0aGlzIGlzIGEgY29tbW9uIHBhdHRlcm4gZm9yIGRlYWxpbmcgd2l0aCBTS0JzLiBOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSAqd2h5KiBhbmQgKmhvdyogb2YgdGhpcyBmdW5jdGlvbi4gVGhlcmVmb3JlLCB0aGUgaW1tZWRpYXRlIG5leHQgc3RlcCBpcyB0byBhbmFseXplIGFsbCB0aGUgY2FsbGVycyBvZiBgcnR3X3R4cV9wdXNoYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBiZWluZyBpbnZva2VkIGZyb20uIEtub3dpbmcgdGhlIGNhbGxpbmcgY29udGV4dHMgd2lsbCBnaXZlIG1lIHZpdGFsIGluc2lnaHRzIGludG8gdGhlIHB1cnBvc2UgYW5kIGJlaGF2aW9yIG9mIHRoaXMgY3JpdGljYWwgcGFydCBvZiB0aGUgZGF0YSB0cmFuc21pc3Npb24gcGF0aC4gSXQgaXMgbXkgYmVsaWVmIHRoYXQgYnkgZXhhbWluaW5nIHRoZSBjYWxsZ3JhcGggSSBjYW4gZGV0ZXJtaW5lIGlmIGFueSBwcm9ibGVtcyBleGlzdCB3aXRoIHRoZSBxdWV1ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA0MSwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjQ4LjkzNzM0MDQ5NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzIwMjU4NDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnR3X3R4cV9wdXNoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01NzY9c3RhdGljIHZvaWQgcnR3X3R4cV9jaGVja19hZ2coc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYwODpzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA5LVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTYyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjI4OnN0YXRpYyB2b2lkIHJ0d190eHFfcHVzaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MjktXFx0XFx0XFx0IHN0cnVjdCBydHdfdHhxICpydHd0eHEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NDQ6XFx0XFx0cmV0ID0gcnR3X3R4cV9wdXNoX3NrYihydHdkZXYsIHJ0d3R4cSwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjQ1LVxcdFxcdGlmIChyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02NTQ9dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjY0LVxcdFxcdGllZWU4MDIxMV90eHFfZ2V0X2RlcHRoKHR4cSwgXFx1MDAyNmZyYW1lX2NudCwgTlVMTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY2NTpcXHRcXHRydHdfdHhxX3B1c2gocnR3ZGV2LCBydHd0eHEsIGZyYW1lX2NudCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY2Ni1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6NDkuMDA5MzcyNTE0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4ODk3OTk1MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSdtIHRoZSBvbmUgaGF2aW5nIGl0LCBhbmQgYXNzdW1pbmcgbXkgZXhwZXJ0aXNlIGluIHRoZSBmaWVsZDpcblxuKipEaWdnaW5nIGludG8gdGhlIFRyYW5zbWlzc2lvbiBRdWV1ZSoqXG5cbkFscmlnaHQsIEknbSB0cmFjaW5nIGRvd24gdGhpcyB0cmFuc21pc3Npb24gcHJvY2Vzcy4gSSBzZWUgdGhhdCBgX19ydHdfdHhfd29ya2AgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgY2FsbHMgYHJ0d190eHFfcHVzaGAuIFNvLCBteSBmaXJzdCBpbnN0aW5jdCBpcyB0byB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LiBMZXQncyBzdGFydCB3aXRoIHRoZSBjYWxsZXJzIG9mIGBfX3J0d190eF93b3JrYC4gVW5kZXJzdGFuZGluZyB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgdHJhbnNtaXNzaW9uIHF1ZXVlIGlzIGJlaW5nIG1hbmlwdWxhdGVkLCBhbmQgcGVyaGFwcyBoZWxwIG1lIHRyYWNrIGRvd24gdGhlIHJvb3QgY2F1c2Ugb2Ygd2hhdGV2ZXIgaXNzdWUgSSdtIGludmVzdGlnYXRpbmcuIFRoaXMgaXMgd2hlcmUgSSBiZWdpbiB0byBsb29rLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1ODM2LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjE6NTEuODk5MTc0OTE5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2OTU4NDIyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJfX3J0d190eF93b3JrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXFx0aWYgKHR4cS1cXHUwMDNlYWMgPT0gSUVFRTgwMjExX0FDX1ZPKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcXHRcXHRfX3J0d190eF93b3JrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz02Mjg9c3RhdGljIHZvaWQgcnR3X3R4cV9wdXNoKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo2NTQ6dm9pZCBfX3J0d190eF93b3JrKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9Njc1PXZvaWQgcnR3X3R4X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY3OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6Njc5OlxcdF9fcnR3X3R4X3dvcmsocnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjgwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaD05Mj12b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjkzOnZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtOTQtdm9pZCBydHdfdHhfcGt0X2luZm9fdXBkYXRlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjUxLjk2ODc2NDY2OFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTE1ODU4NTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVFggUXVldWUgV2FrZXVwIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBiZWVuIGRpZ2dpbmcgaW50byB0aGlzIHBhdGNoLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0aGF0IGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGFuZCBgcnR3X3R4X3dvcmtgIGJvdGggY2FsbCBgX19ydHdfdHhfd29ya2AsIHdoaWNoIG1lYW5zIGl0J3MgZGVmaW5pdGVseSBhbiBhY3RpdmUgY29kZSBwYXRoLiBUaGUgZmFjdCB0aGF0IGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGlzIGEgbWFjODAyMTEgY2FsbGJhY2sgZnVydGhlciByZWluZm9yY2VzIHRoYXQgdGhpcyBwYXJ0IG9mIHRoZSBkcml2ZXIgaXMgbGl2ZSBhbmQgYnJlYXRoaW5nLiBUaGlzIGlzIHByb21pc2luZyDigJMgaXQgY29uZmlybXMgdGhlIHBhdGNoIGFkZHJlc3NlcyBhbiBhY3RpdmVseSB1c2VkIHBhcnQgb2YgdGhlIHN5c3RlbS5cblxuVGhlIGNvcmUgb2YgdGhlIHBhdGNoIHNlZW1zIHRvIGJlIGZvY3VzZWQgb24gcHJldmVudGluZyBhIG1lbW9yeSBsZWFrOyBzcGVjaWZpY2FsbHksIGFuIGBza2JgIGlzIGdldHRpbmcgb3JwaGFuZWQgd2hlbiBgcnR3X2hjaV90eF93cml0ZWAgZmFpbHMuIFRoYXQgc291bmRzIGxpa2UgYSBjbGFzc2ljIGZhaWx1cmUgc2NlbmFyaW8sIGFuZCBkZWZpbml0ZWx5IHNvbWV0aGluZyB3b3J0aCBwdXR0aW5nIHVuZGVyIGEgbWljcm9zY29wZS4gR2l2ZW4gdGhlIHBvdGVudGlhbCBmb3IgYSBtZW1vcnkgbGVhayBhbmQgYSBmYWlsdXJlIHBhdGggaW52b2x2ZWQsIHRoaXMgc2NyZWFtcyBcImZ1enppbmcgdGFyZ2V0LlwiIFdlIG5lZWQgdG8gc2VlIGlmIHdlIGNhbiB0cmlnZ2VyIHRoaXMgZmFpbHVyZSBjb25kaXRpb24gcmVsaWFibHkuIE5vdywgdGhlIG5leHQgc3RlcCBpcyBnb2luZyB0byBiZSBmaWd1cmluZyBvdXQgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVW5kZXJzdGFuZGluZyBob3cgdGhpcyBUWCBxdWV1ZSBpcyBzZXQgdXAgaXMgY3J1Y2lhbCB0byBleHBsb2l0IGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NjMwLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjU2LjA4NDYyNTQ0NVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjcyNTY0OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFJUVzg4XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODhcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4MDIuMTFhYyB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTExPWlmIFJUVzg4XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxMzpjb25maWcgUlRXODhfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNzpjb25maWcgUlRXODhfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMDpjb25maWcgUlRXODhfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjM6Y29uZmlnIFJUVzg4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY6Y29uZmlnIFJUVzg4Xzg4MjJCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyOTpjb25maWcgUlRXODhfODgyMkNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjMyOmNvbmZpZyBSVFc4OF84NzIzWFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zMy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0zNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MzU6Y29uZmlnIFJUVzg4Xzg3MDNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTM2LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjM5OmNvbmZpZyBSVFc4OF84NzIzRFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00MC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo0Mzpjb25maWcgUlRXODhfODgyMUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDQtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjQ2OmNvbmZpZyBSVFc4OF84OFhYQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00Ny1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy00OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6NDk6Y29uZmlnIFJUVzg4Xzg4MjFBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTUwLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjUzOmNvbmZpZyBSVFc4OF84ODEyQVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo1Nzpjb25maWcgUlRXODhfODgxNEFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTgtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjYwOmNvbmZpZyBSVFc4OF84ODIyQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNjEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjcxOmNvbmZpZyBSVFc4OF84ODIyQlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctNzItXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo4Mjpjb25maWcgUlRXODhfODgyMkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTgzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzo5Mzpjb25maWcgUlRXODhfODgyMkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTk0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTA0OmNvbmZpZyBSVFc4OF84ODIyQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTA1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjExNTpjb25maWcgUlRXODhfODgyMkNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTExNi1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEyNjpjb25maWcgUlRXODhfODcyM0RFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEyNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzREUgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjEzNzpjb25maWcgUlRXODhfODcyM0RTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTEzOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4NzIzRFMgU0RJTyB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTQ3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoxNDg6Y29uZmlnIFJUVzg4Xzg3MjNDU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xNDktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODcyM0NTIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTYyOmNvbmZpZyBSVFc4OF84NzIzRFVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTczOmNvbmZpZyBSVFc4OF84ODIxQ0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTc0LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDRSBQQ0kgd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE4My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTg0OmNvbmZpZyBSVFc4OF84ODIxQ1NcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTg1LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0xOTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjE5NTpjb25maWcgUlRXODhfODgyMUNVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5Ni1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQ1UgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMDUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjIwNjpjb25maWcgUlRXODhfODgyMUFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIxQVUvODgxMUFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMTc6Y29uZmlnIFJUVzg4Xzg4MTJBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMTgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMjg6Y29uZmlnIFJUVzg4Xzg4MTRBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yMjktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyMzk6Y29uZmlnIFJUVzg4Xzg4MTRBVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy0yNDAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgxNEFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTA6Y29uZmlnIFJUVzg4X0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI1MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg4IGRlYnVnIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZzoyNTg6Y29uZmlnIFJUVzg4X0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMjU5LVxcdGJvb2wgXFxcIlJlYWx0ZWsgcnR3ODggZGVidWdmcyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MjY2OmNvbmZpZyBSVFc4OF9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTI2Ny1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIxOjU2LjE1MTg4NjkwM1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTk4NDg0MDQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktlcm5lbCBDb25maWd1cmF0aW9uIENvbnNpZGVyYXRpb25zKipcblxuT2theSwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVycyBhcmUgY29tcGlsZWQgaW50byB0aGlzIGtlcm5lbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuYWJsZSBhIGJyb2FkIHNldCB0byBjb3ZlciBhIGdvb2QgcmFuZ2Ugb2YgaGFyZHdhcmUg4oCTIHNwZWNpZmljYWxseSwgYFJUVzg4YCwgdGhlIGNvcmUgY29tcG9uZW50IGBSVFc4OF9DT1JFYCwgYFJUVzg4X1VTQmAsIGFuZCB0aGUgc3BlY2lmaWMgZGV2aWNlIGRyaXZlcnMgYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuXG5cbkJ1dCB3YWl0IGEgbWludXRlLCBJIGhhdmUgdG8gYmUgY2FyZWZ1bCBoZXJlLi4uIHRoaW5raW5nIGFib3V0IGl0LCBgUlRXODhfVVNCYCBpcyBhY3R1YWxseSBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIGJhc2VkIG9uIHRoZSBzcGVjaWZpYyBVU0IgZHJpdmVyIHRoYXQncyBjaG9zZW4uIFNvIEkgZG9uJ3QgbmVlZCB0byB3b3JyeSBhYm91dCBtYW51YWxseSBlbmFibGluZyBpdC5cblxuQWxyaWdodCwgbGV0J3Mgbm93IGRvdWJsZS1jaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGBSVFc4OF84ODIyQlVgIGRyaXZlci4gSSBuZWVkIHRvIGVuc3VyZSBpdCdzIGJ1aWx0IGNvcnJlY3RseSBhbmQgZG9lc24ndCBoYXZlIGFueSBjb25mbGljdHMgd2l0aCBvdGhlciBtb2R1bGVzLCBlc3BlY2lhbGx5IGdpdmVuIGl0cyBwcmV2YWxlbmNlLiBJJ2xsIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgYXNzb2NpYXRlZCBjb25maWcgZmlsZSB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDE0MCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjowMC4zNTAzNzMwODhaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4NDQxMTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVFc4OF84ODIyQlVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnPTcxPWNvbmZpZyBSVFc4OF84ODIyQlNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6ODI6Y29uZmlnIFJUVzg4Xzg4MjJCVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZy04My1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjI6MDAuNDI4ODE5NTA2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1ODk5MjA4NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSBwcm9jZXNzLCBmcmFtZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6XG5cbioqRGl2aW5nIGludG8gdGhlIFJUVzg4Xzg4MjJCVSBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyBzdXJyb3VuZGluZyB0aGUgYFJUVzg4Xzg4MjJCVWAgZHJpdmVyLiBGaXJzdCB0aGluZ3MgZmlyc3QsIEknbSBnb2luZyB0byBzY2FuIHRoZSBLY29uZmlnIGZpbGUgaXRzZWxmLiBJJ20gbG9va2luZyBmb3IgdGhlIGNvcmUgc3ltYm9sIGRlZmluaXRpb24sIHRoZSBkZXBlbmRlbmNpZXMgaXQgaW50cm9kdWNlcywgYW5kIGFueSBjb25kaXRpb25hbCBidWlsZCBvcHRpb25zLiBXaGF0IGFyZSB0aGUgZGVmYXVsdCBzZXR0aW5ncz8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIGhhcmR3YXJlIHZhcmlhbnRzIG9yIGZlYXR1cmVzIEkgbmVlZCB0byBjb25zaWRlcj8gSSdtIGV4cGVjdGluZyB0byBzZWUgdGhpbmdzIGxpa2UgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5pdGlvbnMsIHBvd2VyIG1hbmFnZW1lbnQgY29uZmlndXJhdGlvbnMsIGFuZCBtYXliZSBldmVuIGRlYnVnIG9wdGlvbnMuIEknbGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSByZWxhdGlvbnNoaXBzIGJldHdlZW4gdGhlIHZhcmlvdXMgc3ltYm9scy4gV2hpY2ggb3RoZXIgZHJpdmVycyBvciBmZWF0dXJlcyBkb2VzIHRoaXMgb25lIGRlcGVuZCBvbj8gQW5kLCBjcml0aWNhbGx5LCBhcmUgdGhlcmUgYW55IHBvdGVudGlhbCBjb25mbGljdHMgSSBuZWVkIHRvIGJlIGF3YXJlIG9mPyBJJ20gbG9va2luZyBmb3IgdGhvc2UgXCJ0cmlja3kgYml0c1wiIHRoYXQgc29tZXRpbWVzIGdldCBtaXNzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uIFRpbWUgdG8gY3JhY2sgaXQgb3BlbiBhbmQgc2VlIHdoYXQgaXQgdGVsbHMgbWUuIFRoaXMgaXMgZ29pbmcgdG8gZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIGFueSB3b3JrIEkgbmVlZCB0byBkbyBvbiB0aGlzIGRyaXZlci5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA3MzcsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjowNC4wMTg3NDM0ODVaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAwMjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA4MCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA4MDpcXHRcXHQgIDgwMi4xMWFjIFNESU8gd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxuICA4MTpcXHRcXG4gIDgyOlxcdGNvbmZpZyBSVFc4OF84ODIyQlVcXG4gIDgzOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcbiAgODQ6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDg1OlxcdFxcdHNlbGVjdCBSVFc4OF9DT1JFXFxuICA4NjpcXHRcXHRzZWxlY3QgUlRXODhfVVNCXFxuICA4NzpcXHRcXHRzZWxlY3QgUlRXODhfODgyMkJcXG4gIDg4OlxcdFxcdGhlbHBcXG4gIDg5OlxcdFxcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4MjJCVSBjaGlwc2V0XFxuICA5MDpcXHRcXG4gIDkxOlxcdFxcdCAgODAyLjExYWMgVVNCIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcbiAgOTI6XFx0XFxuICA5MzpcXHRjb25maWcgUlRXODhfODgyMkNFXFxuICA5NDpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODIyQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlclxcXCJcXG4gIDk1OlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICA5NjpcXHRcXHRzZWxlY3QgUlRXODhfQ09SRVxcbiAgOTc6XFx0XFx0c2VsZWN0IFJUVzg4X1BDSVxcbiAgOTg6XFx0XFx0c2VsZWN0IFJUVzg4Xzg4MjJDXFxuICA5OTpcXHRcXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjA0LjAxODg1MzY3NVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDg4MDA2ODIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUlRXODggRHJpdmVyIEVuYWJsZW1lbnQqKlxuXG5Pa2F5LCBzbyB0aGUgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIkVuYWJsaW5nIGBSVFc4OGAgYW5kIGBSVFc4OF84ODIyQlVgIHNob3VsZCBiZSBzdWZmaWNpZW50LlwiIFRoYXQgc2VlbXMgbGlrZSB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludCBmb3IgZ2V0dGluZyB0aGF0IHNwZWNpZmljIFVTQiBXaS1GaSBhZGFwdGVyIGdvaW5nLiBCdXQsIHdhaXQgYSBtaW51dGUsIEkgbmVlZCB0byBiZSBtb3JlIGNhcmVmdWwuIEkga25vdyBgUlRXODhgIHJlbGllcyBvbiBgTUFDODAyMTFgIGFuZCBgV0xBTmAsIGZ1bmRhbWVudGFsIG5ldHdvcmtpbmcgY29tcG9uZW50cy4gQmVmb3JlIEkgcHJvY2VlZCBhbnkgZnVydGhlciB3aXRoIHRlc3RpbmcsIEkgc2hvdWxkIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ldGljdWxvdXNseSB2ZXJpZnkgKmFsbCogdGhlIGRlcGVuZGVuY2llcyBvZiBgUlRXODhgLiBJIG5lZWQgdG8gZW5zdXJlIG5vdGhpbmcgZ2V0cyBvdmVybG9va2VkLiBHb3R0YSBtYWtlIHN1cmUgSSdtIGVuYWJsaW5nICpldmVyeXRoaW5nKiBuZWVkZWQgZm9yIHRoaXMgbW9kdWxlIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTEzMzYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjA3LjUwNjg2MjgwNloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NzgzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdG1lbnVjb25maWcgUlRXODhcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAgNTpcXHRcXHRoZWxwXFxuICAgNjpcXHRcXHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgbWFjODAyMTEtYmFzZWQgd2lyZWxlc3MgZHJpdmVycyB0aGF0XFxuICAgNzpcXHRcXHQgIGVuYWJsZXMgUmVhbHRlayBJRUVFIDgwMi4xMWFjIHdpcmVsZXNzIGNoaXBzZXRzLlxcbiAgIDg6XFx0XFxuICAgOTpcXHRcXHQgIElmIHlvdSBjaG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OC5cXG4gIDEwOlxcdFxcbiAgMTE6XFx0aWYgUlRXODhcXG4gIDEyOlxcdFxcbiAgMTM6XFx0Y29uZmlnIFJUVzg4X0NPUkVcXG4gIDE0OlxcdFxcdHRyaXN0YXRlXFxuICAxNTpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIFJUVzg4X1BDSVxcbiAgMTg6XFx0XFx0dHJpc3RhdGVcXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIFJUVzg4X1NESU9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjI6MDcuNTA2OTYyMDE2WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5Njg4MjE4NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGRlZXAgaW4gdGhlIHdlZWRzIG9mIGtlcm5lbCBkZXZlbG9wbWVudCBhbmQgbmV0d29ya2luZzpcblxuKipOYXZpZ2F0aW5nIHRoZSBXaXJlbGVzcyBEcml2ZXIgTGFieXJpbnRoKipcblxuUmlnaHQsIGxldCdzIHNlZS4uLiBJIG5lZWQgdG8gZmluZCB0aGUgcmVsZXZhbnQgUmVhbHRlayBkcml2ZXIgd2l0aGluIHRoZSB3aXJlbGVzcyBzdWJzeXN0ZW0uIE15IGZpcnN0IGluc3RpbmN0LCBhbmQgd2hlcmUgSSBhbHdheXMgc3RhcnQsIGlzIHRvIGNvbnNpZGVyIHRoZSBwcmltYXJ5IGtlcm5lbCBjb21wb25lbnRzIGludm9sdmVkOiBgTUFDODAyMTFgIHdoaWNoIGlzIHRoZSBjZW50cmFsIE1BQyBsYXllciwgdGhlIG92ZXJhbGwgYFdMQU5gIHN1YnN5c3RlbSwgYW5kIHRoZW4sIGlmIGFwcGxpY2FibGUsIGEgdmVuZG9yLXNwZWNpZmljIGlkZW50aWZpZXIgbGlrZSBgV0xBTl9WRU5ET1JfUkVBTFRFS2AuIEkgbmVlZCB0byBlbnN1cmUgdGhlIFJlYWx0ZWsgZHJpdmVyIGlzIGNvcnJlY3RseSBpbnRlZ3JhdGVkLiBUbyBjb25maXJtIGlmIHRoYXQgdmVuZG9yIG9wdGlvbiBleGlzdHMsIEknbGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZy5cblxuVGhlIG5leHQgc3RlcCBpcyBjbGVhcjogSSdsbCBoZWFkIGRpcmVjdGx5IHRvIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9LY29uZmlnYCBmaWxlLiBUaGF0J3Mgd2hlcmUgYWxsIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoYXQgcGFydGljdWxhciBkcml2ZXIgc2hvdWxkIHJlc2lkZS4gVGhpcyBmaWxlIHdpbGwgdGVsbCBtZSBpZiB0aGUgYFdMQU5fVkVORE9SX1JFQUxURUtgIG9wdGlvbiBpcyBkZWZpbmVkLCBhbmQgYWxzbyBob3cgdGhlIFJlYWx0ZWsgZHJpdmVyIGlzIGludGVncmF0ZWQgaW50byB0aGUgcmVzdCBvZiB0aGUgV0xBTiBzdGFjaywgYW5kIGFsbCBvZiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTg2NywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjI6MTIuNDc1Nzg3NzIzWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMTkxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0Y29uZmlnIFdMQU5fVkVORE9SX1JFQUxURUtcXG4gICAzOlxcdFxcdGJvb2wgXFxcIlJlYWx0ZWsgZGV2aWNlc1xcXCJcXG4gICA0OlxcdFxcdGRlZmF1bHQgeVxcbiAgIDU6XFx0XFx0aGVscFxcbiAgIDY6XFx0XFx0ICBJZiB5b3UgaGF2ZSBhIHdpcmVsZXNzIGNhcmQgYmVsb25naW5nIHRvIHRoaXMgY2xhc3MsIHNheSBZLlxcbiAgIDc6XFx0XFxuICAgODpcXHRcXHQgIE5vdGUgdGhhdCB0aGUgYW5zd2VyIHRvIHRoaXMgcXVlc3Rpb24gZG9lc24ndCBkaXJlY3RseSBhZmZlY3QgdGhlXFxuICAgOTpcXHRcXHQgIGtlcm5lbDogc2F5aW5nIE4gd2lsbCBqdXN0IGNhdXNlIHRoZSBjb25maWd1cmF0b3IgdG8gc2tpcCBhbGwgdGhlXFxuICAxMDpcXHRcXHQgIHF1ZXN0aW9ucyBhYm91dCB0aGVzZSBjYXJkcy4gSWYgeW91IHNheSBZLCB5b3Ugd2lsbCBiZSBhc2tlZCBmb3JcXG4gIDExOlxcdFxcdCAgeW91ciBzcGVjaWZpYyBjYXJkIGluIHRoZSBmb2xsb3dpbmcgcXVlc3Rpb25zLlxcbiAgMTI6XFx0XFxuICAxMzpcXHRpZiBXTEFOX1ZFTkRPUl9SRUFMVEVLXFxuICAxNDpcXHRcXG4gIDE1OlxcdHNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGw4MTh4L0tjb25maWdcXFwiXFxuICAxNjpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnXFxcIlxcbiAgMTc6XFx0c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bDh4eHh1L0tjb25maWdcXFwiXFxuICAxODpcXHRzb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZ1xcXCJcXG4gIDE5OlxcdHNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXFxcIlxcbiAgMjA6XFx0XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjEyLjQ3NTg3MDQ3NFoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjMwMTQ5NzQxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IENvbmZpZ3VyYXRpb24gQ2hlY2tsaXN0KipcblxuT2theSwgc28gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ3ZlIGdvdCB0aGUgbmVjZXNzYXJ5IGNvbXBvbmVudHMgY29uZmlndXJlZCBmb3IgdGhpcyB3aXJlbGVzcyBzZXR1cC4gRmlyc3QgdGhpbmdzIGZpcnN0OiBJIGtub3cgSSdsbCBuZWVkIGBXTEFOX1ZFTkRPUl9SRUFMVEVLYCDigJMgdGhhdCdzIGEgZ2l2ZW4uIEFuZCBvZiBjb3Vyc2UsIGBNQUM4MDIxMWAgYW5kIGBXTEFOYCBhcmUgZXNzZW50aWFsIHBhcnRzIG9mIHRoZSBjb3JlIHdpcmVsZXNzIGluZnJhc3RydWN0dXJlLiBMZXQncyBub3QgZm9yZ2V0IHRoZSBVU0IgY29tcG9uZW50IGVpdGhlciwgYmVjYXVzZSBhIFJlYWx0ZWsgYWRhcHRlciBpcyBtb3N0IG9mdGVuIGEgVVNCIGRldmljZS5cblxuQWxyaWdodCwgbGV0J3MgbWFrZSBhIG1lbnRhbCBsaXN0IG9mIHRoZSBjb25maWdzIEkgc2hvdWxkIHZlcmlmeTogYFdMQU5gLCBgV0xBTl9WRU5ET1JfUkVBTFRFS2AsIGBNQUM4MDIxMWAsIGBVU0JgLCBhbmQgdGhlIGBSVFc4OGAgZmFtaWx5LiBTbyB0aGF0IGNvdmVycyB0aGUgYmFzaWNzLCBub3cgbGV0J3MgZ28gaW50byB0aGUgc3BlY2lmaWNzLCBpbmNsdWRpbmcgYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuXG5cbkhvbGQgb24gYSBzZWNvbmQuLi4gdGhvc2UgYFJUVzg4X2AgY29uZmlndXJhdGlvbnMgZm9yIHNwZWNpZmljIGNoaXBzIGFyZSBpbXBvcnRhbnQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSd2ZSBnb3QgdGhlICpyaWdodCogb25lcyBlbmFibGVkIGZvciB0aGUgc3BlY2lmaWMgaGFyZHdhcmUgSSdtIHRhcmdldGluZy4gUmlnaHQsIEkgc2hvdWxkIHF1aWNrbHkgdmVyaWZ5IHRoYXQgdGhvc2Ugc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZXhpc3QgYW5kIGFyZSBjb3JyZWN0bHkgc2V0LiBUaW1lIHRvIGNoZWNrIHRob3NlIGNvbmZpZ3VyYXRpb25zIHNwZWNpZmljYWxseS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTI1MTksIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjoxNy43MDYwMjIzOTVaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ0MjEzMTk1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODhfODgyMUNVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz0xODQ9Y29uZmlnIFJUVzg4Xzg4MjFDU1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnLTE5NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWc6MTk1OmNvbmZpZyBSVFc4OF84ODIxQ1VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctMTk2LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4MjFDVSBVU0Igd2lyZWxlc3MgbmV0d29yayBhZGFwdGVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjoxOC4xNDgxNTkzMTVaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg5MDg4NDk3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBydHdfdHhxX3B1c2hfc2tiYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIHRoZSBpc3N1ZSwgd2hhdGV2ZXIgaXQgaXMsIGRlZmluaXRlbHkgZXhpc3RzLiBNeSBpbW1lZGlhdGUgZm9jdXMgbmVlZHMgdG8gYmUgb24gdGhlIGBydHdfdHhxX3B1c2hfc2tiYCBmdW5jdGlvbi4gV2FpdCBhIG1pbnV0ZS4uLiB0aGF0J3MgZGVjbGFyZWQgYXMgc3RhdGljLiBIbW0sIHRoYXQncyBhIGtleSBkZXRhaWwg4oCTIHN0YXRpYyBmdW5jdGlvbnMgb2Z0ZW4gc3VnZ2VzdCBpbnRlcm5hbCB1c2Ugd2l0aGluIGEgbW9kdWxlLCBidXQgdW5kZXJzdGFuZGluZyAqd2h5KiBpdCdzIHN0YXRpYyBpcyBpbXBvcnRhbnQuIExldCdzIGRpZyBpbnRvIHRoZSBzb3VyY2UgY29kZS4gSSBuZWVkIHRvIGxvY2F0ZSBgcnR3X3R4cV9wdXNoX3NrYmAgd2l0aGluIHRoZSBSZWFsdGVrIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jYCBmaWxlLiBUaW1lIHRvIG9wZW4gdGhlIGVkaXRvciBhbmQgZ2V0IHRvIHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMTk1LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjdUMTc6MjI6MjIuMDM5MDQ2NTU3WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjQzODMxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJydHdfdHhxX3B1c2hfc2tiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01NzY9c3RhdGljIHZvaWQgcnR3X3R4cV9jaGVja19hZ2coc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02MDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjYwODpzdGF0aWMgaW50IHJ0d190eHFfcHVzaF9za2Ioc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNjA5LVxcdFxcdFxcdCAgICBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTYyOD1zdGF0aWMgdm9pZCBydHdfdHhxX3B1c2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY0NDpcXHRcXHRyZXQgPSBydHdfdHhxX3B1c2hfc2tiKHJ0d2RldiwgcnR3dHhxLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NDUtXFx0XFx0aWYgKHJldCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjoyMi4xMDU0OTEyNDZaIiwiU2VxIjoyNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzcxMjE0NDU4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBzdW1tYXJpemVkIGZyb20gYW4gZXhwZXJ0J3MgcGVyc3BlY3RpdmU6XG5cbioqSW5saW5pbmcgYW5kIEZ1bmN0aW9uIFNjb3BlIENvbnNpZGVyYXRpb25zKipcblxuSG1tLCB0aGlua2luZyBhYm91dCB0aGlzIGBydHdfdHhxX3B1c2hfc2tiYCBmdW5jdGlvbiwgaXQncyBkZWNsYXJlZCBhcyBgc3RhdGljYC4gVGhhdCBpbW1lZGlhdGVseSBtYWtlcyBtZSBjb25zaWRlciBpbmxpbmluZyBvcHRpbWl6YXRpb25zLiBCZWNhdXNlIGl0J3Mgc3RhdGljLCB0aGUgY29tcGlsZXIgKnNob3VsZCogaGF2ZSBhbiBlYXNpZXIgdGltZSBpbmxpbmluZyBpdCBkaXJlY3RseSBpbnRvIGFueSBjYWxsc2l0ZXMgd2l0aGluIHRoZSBzYW1lIHRyYW5zbGF0aW9uIHVuaXQuIFRoaXMgY291bGQgaGF2ZSBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMsIGVpdGhlciBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBkZXBlbmRpbmcgb24gdGhlIHNpemUgYW5kIGNvbXBsZXhpdHkgb2YgdGhlIGZ1bmN0aW9uLCBhbmQgaG93IG9mdGVuIGl0J3MgY2FsbGVkLiBJdCByZWFsbHkgY29tZXMgZG93biB0byB0aGUgY29tcGlsZXIncyBoZXVyaXN0aWNzIGluIHRoaXMgY2FzZS5cblxuTm93LCBvbiB0aGUgb3RoZXIgaGFuZCwgdGhlcmUncyBgX19ydHdfdHhfd29ya2AuIFRoZSBmYWN0IHRoYXQgaXQgKmlzbid0KiBzdGF0aWMgaXMga2V5LiBJdCBtZWFucyBpdCBoYXMgZXh0ZXJuYWwgbGlua2FnZS4gVGhlcmVmb3JlLCBpbmxpbmluZyBpcyBsZXNzIGxpa2VseSwgb3IgZXZlbiBpbXBvc3NpYmxlLCBlc3BlY2lhbGx5IGlmIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBzb3VyY2UgZmlsZXMgb3IgbW9kdWxlcy4gVGhpcyBoYXMgaW1wbGljYXRpb25zIGZvciBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkIGFuZCBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucyBhY3Jvc3MgdGhlIGVudGlyZSBzeXN0ZW0uIEkgbmVlZCB0byBrZWVwIHRoaXMgaW4gbWluZCB3aGVuIGV2YWx1YXRpbmcgdGhlIG92ZXJhbGwgY2FsbCBmbG93IGFuZCBwb3NzaWJsZSBib3R0bGVuZWNrcywgb3IgaWYgdGhlcmUgaXMgc2NvcGUgZm9yIGltcHJvdmVtZW50cyBieSBjaGFuZ2luZyB0aGUgZGVjbGFyYXRpb24gdG8gYHN0YXRpY2Agb3IsIGluIGNlcnRhaW4gY29udGV4dHMsIGludHJvZHVjaW5nIHNwZWNpZmljIGlubGluaW5nIGhpbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzc5MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjI1LjgxNzYzOTU1MloiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzAyNTUwNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiX19ydHdfdHhfd29ya1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MzI9c3RhdGljIHZvaWQgcnR3X29wc193YWtlX3R4X3F1ZXVlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ3LVxcdGlmICh0eHEtXFx1MDAzZWFjID09IElFRUU4MDIxMV9BQ19WTylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM6NDg6XFx0XFx0X19ydHdfdHhfd29yayhydHdkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy00OS1cXHRlbHNlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM9NjI4PXN0YXRpYyB2b2lkIHJ0d190eHFfcHVzaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmM6NjU0OnZvaWQgX19ydHdfdHhfd29yayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jPTY3NT12b2lkIHJ0d190eF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqdylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYy02NzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jOjY3OTpcXHRfX3J0d190eF93b3JrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5jLTY4MC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9OTI9dm9pZCBydHdfdHhfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguaDo5Mzp2b2lkIF9fcnR3X3R4X3dvcmsoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTk0LXZvaWQgcnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjoyNS44ODc4OTk2MloiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTg2NDc3MTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHBlcnNvbmFsIHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkFzc2Vzc2luZyBTdGF0aWMgRGVjbGFyYXRpb24gaW4gdGhlIFdMQU4gRHJpdmVyKipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IHRoaXMgV0xBTiBkcml2ZXIgY29kZSwgYW5kIEkgbmVlZCB0byBjb25zaWRlciBob3cgdGhlc2UgZnVuY3Rpb25zIGFyZSBiZWluZyBoYW5kbGVkIGZyb20gYSBzdGF0aWMgYW5hbHlzaXMgcGVyc3BlY3RpdmUuIFRoZSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgYF9fcnR3X3R4X3dvcmtgIGFuZCBgcnR3X3R4X3dvcmtgLCBhbmQgc3BlY2lmaWNhbGx5IGBydHdfdHhgLCBhcmUgKm5vdCogZGVjbGFyZWQgYXMgc3RhdGljLiBUaGlzIGltcGxpZXMgYSBmZXcgdGhpbmdzLCB3aGljaCBJIG5lZWQgdG8gcXVpY2tseSBydW4gdGhyb3VnaCBpbiBteSBoZWFkLlxuXG5GaXJzdGx5LCBiZWNhdXNlIHRoZXkgYXJlbid0IHN0YXRpYywgdGhlc2UgZnVuY3Rpb25zIGhhdmUgZXh0ZXJuYWwgbGlua2FnZSB3aXRoaW4gdGhlIGNvbXBpbGF0aW9uIHVuaXQgb3IgbW9yZSBsaWtlbHksIGFjcm9zcyB0aGUgZW50aXJlIHByb2plY3QuIFRoaXMgbWVhbnMgdGhlIGxpbmtlciBpcyByZXNvbHZpbmcgdGhlc2Ugc3ltYm9scyBhbmQgdGhlIGNvbXBpbGVyIGlzIG5vdCBhYmxlIHRvIHBlcmZvcm0gc29tZSBvZiB0aGUgb3B0aW1pemF0aW9ucyB0aGF0IGl0ICpjb3VsZCogcGVyZm9ybSBpZiB0aGV5ICp3ZXJlKiBzdGF0aWMuIFRoaXMgY2FuIGludHJvZHVjZSBwb3RlbnRpYWwgaXNzdWVzIGRlcGVuZGluZyBvbiBob3cgdGhlIGNvZGUgaXMgc3RydWN0dXJlZC4gQXJlIHdlIHNlZWluZyBtdWx0aXBsZSBkZWZpbml0aW9ucz8gQXJlIHdlIGFjY2lkZW50YWxseSBjYWxsaW5nIHRoZSB3cm9uZyB2ZXJzaW9uPyBBcmUgdGhlcmUgYW55IHVuZXhwZWN0ZWQgc2lkZSBlZmZlY3RzIGZyb20gdGhlaXIgZXh0ZXJuYWwgdmlzaWJpbGl0eT9cblxuU2Vjb25kbHksIHRoZSBhYnNlbmNlIG9mIGBzdGF0aWNgIG9wZW5zIHVwIHRoZXNlIGZ1bmN0aW9ucyBmb3IgcG90ZW50aWFsIHVzZSBpbiBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLCBwb3RlbnRpYWxseSB0aHJvdWdoIGRpcmVjdCBmdW5jdGlvbiBjYWxscywgb3IgZnVuY3Rpb24gcG9pbnRlcnMuIFRoaXMgYnJvYWRlbnMgdGhlIHNjb3BlIG9mIHdoYXQgbmVlZHMgdG8gYmUgY2hlY2tlZCB3aGVuIGNvbnNpZGVyaW5nIHNlY3VyaXR5IG9yIGdlbmVyYWwgcm9idXN0bmVzcy5cblxuSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY2FsbCBzaXRlcyBhbmQgc2VlIGhvdyB0aGVzZSBmdW5jdGlvbnMgYXJlIHVzZWQsIGFuZCBpZiB0aGVyZSdzIGFueSByYXRpb25hbGUgZm9yIHRoZW0gKm5vdCogYmVpbmcgc3RhdGljLiBNYXliZSB0aGV5IGFyZSBlbnRyeSBwb2ludHMgdG8gc29tZSBzZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSBtb2R1bGUsIG9yIGFyZSBvdGhlcndpc2UgbmVlZGVkLiBJZiBpdCBjYW4gYmUgdmVyaWZpZWQgdGhhdCBzdGF0aWMgZGVjbGFyYXRpb24gbWFrZXMgc2Vuc2UsIEkgc2hvdWxkIGRldGVybWluZSBpZiBtYWtpbmcgdGhvc2UgY2hhbmdlcyBpbnRyb2R1Y2VzIGFueSByZWdyZXNzaW9ucyBvciB1bmZvcmVzZWVuIHNpZGUgZWZmZWN0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTQ2OTcsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjozMC40NzQzNzg4MjZaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY5NDQxMTE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0d190eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg3MSBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jPTkzPXN0YXRpYyB2b2lkIHJ0d19md19jMmhfY21kX2hhbmRsZV9leHQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMDMtXFx0Y2FzZSBDMkhfQ0NYX1JQVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MTA0OlxcdFxcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1JQVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEwNS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0zMDE9dm9pZCBydHdfZndfYzJoX2NtZF9oYW5kbGUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0zMTctXFx0Y2FzZSBDMkhfQ0NYX1RYX1JQVDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmM6MzE4OlxcdFxcdHJ0d190eF9yZXBvcnRfaGFuZGxlKHJ0d2Rldiwgc2tiLCBDMkhfQ0NYX1RYX1JQVCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTMxOS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYz0xMzAwPXN0YXRpYyB2b2lkIHJ0d19maWxsX3JzdmRfcGFnZV9kZXNjKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwMi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMDM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMwNC1cXHRjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfaW5mbyAqY2hpcCA9IHJ0d2Rldi1cXHUwMDNlY2hpcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYzoxMzA3OlxcdHJ0d190eF9yc3ZkX3BhZ2VfcGt0X2luZm9fdXBkYXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IsIHR5cGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvZncuYy0xMzA4LVxcdHBrdF9kZXNjID0gc2tiX3B1c2goc2tiLCBjaGlwLVxcdTAwM2V0eF9wa3RfZGVzY19zeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jLTEzMDktXFx0bWVtc2V0KHBrdF9kZXNjLCAwLCBjaGlwLVxcdTAwM2V0eF9wa3RfZGVzY19zeik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9mdy5jOjEzMTA6XFx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2Z3LmMtMTMxMS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oPTk9c3RydWN0IHJ0d19oY2lfb3BzIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L2hjaS5oLTEwLVxcdGludCAoKnR4X3dyaXRlKShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6MTE6XFx0XFx0XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0xMi1cXHRcXHRcXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg9MzY9c3RhdGljIGlubGluZSBpbnQgcnR3X2hjaV90eF93cml0ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvaGNpLmg6Mzc6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9oY2kuaC0zOC1cXHRcXHRcXHRcXHQgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jPTE4PXN0YXRpYyB2b2lkIHJ0d19vcHNfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI5OlxcdHJ0d190eChydHdkZXYsIGNvbnRyb2wsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTMwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0zMj1zdGF0aWMgdm9pZCBydHdfb3BzX3dha2VfdHhfcXVldWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzUtXFx0c3RydWN0IHJ0d19kZXYgKnJ0d2RldiA9IGh3LVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzozNjpcXHRzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxID0gKHN0cnVjdCBydHdfdHhxICopdHhxLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMzctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNDctXFx0aWYgKHR4cS1cXHUwMDNlYWMgPT0gSUVFRTgwMjExX0FDX1ZPKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo0ODpcXHRcXHRfX3J0d190eF93b3JrKHJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTQ5LVxcdGVsc2VcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYz0xNDY9c3RhdGljIGludCBydHdfb3BzX2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtMTY0LVxcdG1lbXNldChcXHUwMDI2cnR3dmlmLVxcdTAwM2ViZmVlLCAwLCBzaXplb2Yoc3RydWN0IHJ0d19iZmVlKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjE2NTpcXHRydHdfdHhxX2luaXQocnR3ZGV2LCB2aWYtXFx1MDAzZXR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTE2Ni1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cnR3dmlmLVxcdTAwM2Vyc3ZkX3BhZ2VfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9MjI4PXN0YXRpYyB2b2lkIHJ0d19vcHNfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYy0yNDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jOjI0MjpcXHRydHdfdHhxX2NsZWFudXAocnR3ZGV2LCB2aWYtXFx1MDAzZXR4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTI0My1cXHRydHdfcmVtb3ZlX3JzdmRfcGFnZShydHdkZXYsIHJ0d3ZpZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmM9NjMwPXN0YXRpYyBpbnQgcnR3X29wc19hbXBkdV9hY3Rpb24oc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21hYzgwMjExLmMtNjM2LVxcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHEgPSBzdGEtXFx1MDAzZXR4cVt0aWRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFjODAyMTEuYzo2Mzc6XFx0c3RydWN0IHJ0d190eHEgKnJ0d3R4cSA9IChzdHJ1Y3QgcnR3X3R4cSAqKXR4cS1cXHUwMDNlZHJ2X3ByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWM4MDIxMS5jLTYzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTM0NT1pbnQgcnR3X3N0YV9hZGQoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2NS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShzdGEtXFx1MDAzZXR4cSk7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozNjY6XFx0XFx0cnR3X3R4cV9pbml0KHJ0d2Rldiwgc3RhLVxcdTAwM2V0eHFbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM2Ny1cXHRJTklUX1dPUksoXFx1MDAyNnNpLVxcdTAwM2VyY193b3JrLCBydHdfc3RhX3JjX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MzgwPXZvaWQgcnR3X3N0YV9yZW1vdmUoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5NC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShzdGEtXFx1MDAzZXR4cSk7IGkrKylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzozOTU6XFx0XFx0cnR3X3R4cV9jbGVhbnVwKHJ0d2Rldiwgc3RhLVxcdTAwM2V0eHFbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTM5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTYyMj1zdGF0aWMgdm9pZCBydHdfcmVzZXRfdmlmX2l0ZXIodm9pZCAqZGF0YSwgdTggKm1hYywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYyOC1cXHRydHdfdmlmX2Fzc29jX2NoYW5nZWQocnR3dmlmLCBOVUxMKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo2Mjk6XFx0cnR3X3R4cV9jbGVhbnVwKHJ0d2RldiwgdmlmLVxcdTAwM2V0eHEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTYzMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jPTY3ND1zdGF0aWMgdm9pZCBydHdfZndfcmVjb3Zlcnlfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6Njg2OnN0cnVjdCBydHdfdHhxX2JhX2l0ZXJfZGF0YSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNjg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjY4OTpzdGF0aWMgdm9pZCBydHdfdHhxX2JhX2l0ZXIodm9pZCAqZGF0YSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy02OTAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAwLVxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfdHhxICp0eHE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6NzAxOlxcdFxcdFxcdHN0cnVjdCBydHdfdHhxICpydHd0eHE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzAyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwMy1cXHRcXHRcXHR0eHEgPSBzdGEtXFx1MDAzZXR4cVt0aWRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcwNDpcXHRcXHRcXHRydHd0eHEgPSAoc3RydWN0IHJ0d190eHEgKil0eHEtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcwNS1cXHRcXHRcXHRzZXRfYml0KFJUV19UWFFfQkxPQ0tfQkEsIFxcdTAwMjZydHd0eHEtXFx1MDAzZWZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTI6c3RhdGljIHZvaWQgcnR3X3R4cV9iYV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy03MTMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxNC1cXHRzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBydHdfZGV2LCBiYV93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzo3MTU6XFx0c3RydWN0IHJ0d190eHFfYmFfaXRlcl9kYXRhIGRhdGE7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtNzE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjcxNzpcXHRydHdfaXRlcmF0ZV9zdGFzX2F0b21pYyhydHdkZXYsIHJ0d190eHFfYmFfaXRlciwgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTcxOC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYz0yMTM4PWludCBydHdfY29yZV9pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTQ3LVxcdHRpbWVyX3NldHVwKFxcdTAwMjZydHdkZXYtXFx1MDAzZXR4X3JlcG9ydC5wdXJnZV90aW1lcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ4OlxcdFxcdCAgICBydHdfdHhfcmVwb3J0X3B1cmdlX3RpbWVyLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTQ5OlxcdHJ0d2Rldi1cXHUwMDNldHhfd3EgPSBhbGxvY193b3JrcXVldWUoXFxcInJ0d190eF93cVxcXCIsIFdRX1VOQk9VTkQgfCBXUV9ISUdIUFJJLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTUwLVxcdGlmICghcnR3ZGV2LVxcdTAwM2V0eF93cSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jOjIxNTE6XFx0XFx0cnR3X3dhcm4ocnR3ZGV2LCBcXFwiYWxsb2Nfd29ya3F1ZXVlIHJ0d190eF93cSBmYWlsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNTItXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYy0yMTY0LVxcdElOSVRfREVMQVlFRF9XT1JLKFxcdTAwMjZjb2V4LVxcdTAwM2V3bF9jY2tsb2NrX3dvcmssIHJ0d19jb2V4X3dsX2Nja2xvY2tfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjE2NTpcXHRJTklUX1dPUksoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldHhfd29yaywgcnR3X3R4X3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNjYtXFx0SU5JVF9XT1JLKFxcdTAwMjZydHdkZXYtXFx1MDAzZWMyaF93b3JrLCBydHdfYzJoX3dvcmspO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjE2OS1cXHRJTklUX1dPUksoXFx1MDAyNnJ0d2Rldi1cXHUwMDNldXBkYXRlX2JlYWNvbl93b3JrLCBydHdfZndfdXBkYXRlX2JlYWNvbl93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uYzoyMTcwOlxcdElOSVRfV09SSyhcXHUwMDI2cnR3ZGV2LVxcdTAwM2ViYV93b3JrLCBydHdfdHhxX2JhX3dvcmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5jLTIxNzEtXFx0c2tiX3F1ZXVlX2hlYWRfaW5pdChcXHUwMDI2cnR3ZGV2LVxcdTAwM2VjMmhfcXVldWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM9MjI1NT1pbnQgcnR3X3JlZ2lzdGVyX2h3KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjI2Ny1cXHRody1cXHUwMDNlcXVldWVzID0gSUVFRTgwMjExX05VTV9BQ1M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmM6MjI2ODpcXHRody1cXHUwMDNldHhxX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3R4cSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmMtMjI2OS1cXHRody1cXHUwMDNlc3RhX2RhdGFfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnR3X3N0YV9pbmZvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE5MT1lbnVtIHJ0d19jaGlwX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIwMjplbnVtIHJ0d190eF9xdWV1ZV90eXBlIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMDMtXFx0LyogdGhlIG9yZGVyIG9mIEFDIHF1ZXVlcyBtYXR0ZXJzICovXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaD0zNDQ9ZW51bSBydHdfcmVndWxhdG9yeV9kb21haW5zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTM2MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDozNjI6ZW51bSBydHdfdHhxX2ZsYWdzIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0zNjMtXFx0UlRXX1RYUV9BTVBEVSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTUyMD1zdHJ1Y3QgcnR3XzVnX3R4cHdyX2lkeCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NTMzOnN0cnVjdCBydHdfdHhwd3JfaWR4IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC01MzQtXFx0c3RydWN0IHJ0d18yZ190eHB3cl9pZHggcHdyX2lkeF8yZztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTU5OT1zdHJ1Y3QgcnR3X3ZpZl9wb3J0IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTYwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo2MDc6c3RydWN0IHJ0d190eF9wa3RfaW5mbyB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtNjA4LVxcdHUzMiB0eF9wa3Rfc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTczNz1zdHJ1Y3QgcnR3X3NlY19kZXNjIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo3NDY6c3RydWN0IHJ0d190eF9yZXBvcnQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTc0Ny1cXHQvKiBwcm90ZWN0IHRoZSB0eCByZXBvcnQgcXVldWUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTc1ND1zdHJ1Y3QgcnR3X3JhX3JlcG9ydCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg6NzYwOnN0cnVjdCBydHdfdHhxIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC03NjEtXFx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9ODYyPXN0cnVjdCBydHdfY2hpcF9vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtOTEyLVxcdHZvaWQgKCpmaWxsX3R4ZGVzY19jaGVja3N1bSkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDo5MTM6XFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC05MTQtXFx0XFx0XFx0XFx0ICAgICB1OCAqdHhkZXNjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTE3OTI9c3RydWN0IHJ0d19lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0xODQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjE4NDI6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTE4NDMtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oPTIwNTk9c3RydWN0IHJ0d19kZXYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjEwMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMTAyOlxcdHN0cnVjdCBydHdfdHhfcmVwb3J0IHR4X3JlcG9ydDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTAzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjE0NT1zdGF0aWMgaW5saW5lIGJvb2wgcnR3X2lzX2Fzc29jKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMTQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oOjIxNTA6c3RhdGljIGlubGluZSBzdHJ1Y3QgaWVlZTgwMjExX3R4cSAqcnR3dHhxX3RvX3R4cShzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oLTIxNTEte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmg9MjI0Nj12b2lkIHJ0d192aWZfcG9ydF9jb25maWcoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d192aWYgKnJ0d3ZpZixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaC0yMjQ3LVxcdFxcdFxcdCB1MzIgY29uZmlnKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaDoyMjQ4OnZvaWQgcnR3X3R4X3JlcG9ydF9wdXJnZV90aW1lcihzdHJ1Y3QgdGltZXJfbGlzdCAqdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9tYWluLmgtMjI0OS12b2lkIHJ0d191cGRhdGVfc3RhX2luZm8oc3RydWN0IHJ0d19kZXYgKnJ0d2Rldiwgc3RydWN0IHJ0d19zdGFfaW5mbyAqc2ksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTM1PXN0YXRpYyB1OCBydHdfcGNpX2dldF90eF9xc2VsKHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzozNjpcXHRcXHRcXHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtMzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz01Mzg9c3RhdGljIHZvaWQgcnR3X3BjaV9kbWFfcmVsZWFzZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy01NDAtXFx0c3RydWN0IHJ0d19wY2lfdHhfcmluZyAqdHhfcmluZztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjU0MTpcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz02MDM9c3RhdGljIHZvaWQgcnR3X3BjaV9kZWVwX3BzX2VudGVyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTYwNi1cXHRzdHJ1Y3QgcnR3X3BjaV90eF9yaW5nICp0eF9yaW5nO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NjA3OlxcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy02MDgtXFx0Ym9vbCB0eF9lbXB0eSA9IHRydWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTc1ND1zdGF0aWMgdm9pZCBydHdfcGNpX2ZsdXNoX3F1ZXVlcyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1MzIgcXVldWVzLCBib29sIGRyb3ApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc2Ni1cXHRcXHRcXHRpZiAocXVldWVzIFxcdTAwMjYgQklUKGkpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6NzY3OlxcdFxcdFxcdFxcdHBjaV9xdWV1ZXMgfD0gQklUKHJ0d190eF9hY190b19od3EoaSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzY4LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzczPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmZfcXVldWUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjc3NDpcXHRcXHRcXHRcXHQgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9NzkwPXN0YXRpYyB2b2lkIHJ0d19wY2lfdHhfa2lja19vZmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtNzkyLVxcdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo3OTM6XFx0ZW51bSBydHdfdHhfcXVldWVfdHlwZSBxdWV1ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTc5NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODAwPXN0YXRpYyBpbnQgcnR3X3BjaV90eF93cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4MDE6XFx0XFx0XFx0XFx0IHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODAyLVxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODAzOlxcdFxcdFxcdFxcdCBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODI4LVxcdHBrdF9pbmZvLVxcdTAwM2Vxc2VsID0gcnR3X3BjaV9nZXRfdHhfcXNlbChza2IsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjgyOTpcXHRydHdfdHhfZmlsbF90eF9kZXNjKHJ0d2RldiwgcGt0X2luZm8sIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04MzAtXFx0ZG1hID0gZG1hX21hcF9zaW5nbGUoXFx1MDAyNnJ0d3BjaS1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LCBza2ItXFx1MDAzZWRhdGEsIHNrYi1cXHUwMDNlbGVuLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYz04NzA9c3RhdGljIGludCBydHdfcGNpX3dyaXRlX2RhdGFfcnN2ZF9wYWdlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4ICpidWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3My1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6ODc0OlxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzUtXFx0dTggcmVnX2Jjbl93b3JrO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy04NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4Nzg6XFx0c2tiID0gcnR3X3R4X3dyaXRlX2RhdGFfcnN2ZF9wYWdlX2dldChydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgYnVmLCBzaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTg3OS1cXHRpZiAoIXNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM9ODk2PXN0YXRpYyBpbnQgcnR3X3BjaV93cml0ZV9kYXRhX2gyYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLCB1MzIgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtODk4LVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo4OTk6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHswfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jLTkwMC1cXHRpbnQgcmV0O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTAxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTAyOlxcdHNrYiA9IHJ0d190eF93cml0ZV9kYXRhX2gyY19nZXQocnR3ZGV2LCBcXHUwMDI2cGt0X2luZm8sIGJ1Ziwgc2l6ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MDMtXFx0aWYgKCFza2IpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTkxNz1zdGF0aWMgaW50IHJ0d19wY2lfdHhfd3JpdGUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jOjkxODpcXHRcXHRcXHQgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MTktXFx0XFx0XFx0ICAgIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05MjAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmM6OTIxOlxcdGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUgPSBydHdfdHhfcXVldWVfbWFwcGluZyhza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGNpLmMtOTIyLVxcdHN0cnVjdCBydHdfcGNpICpydHdwY2kgPSAoc3RydWN0IHJ0d19wY2kgKilydHdkZXYtXFx1MDAzZXByaXY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BjaS5jPTk0MT1zdGF0aWMgdm9pZCBydHdfcGNpX3R4X2lzcihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCBzdHJ1Y3QgcnR3X3BjaSAqcnR3cGNpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy05OTgtXFx0XFx0aWYgKGluZm8tXFx1MDAzZWZsYWdzIFxcdTAwMjYgSUVFRTgwMjExX1RYX0NUTF9SRVFfVFhfU1RBVFVTKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYzo5OTk6XFx0XFx0XFx0cnR3X3R4X3JlcG9ydF9lbnF1ZXVlKHJ0d2Rldiwgc2tiLCB0eF9kYXRhLVxcdTAwM2Vzbik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9wY2kuYy0xMDAwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0xNzYwPXZvaWQgcnR3X3BhcnNlX3RibF90eHB3cl9sbXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmMtMTc2Mi17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYzoxNzYzOlxcdGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyICpwID0gdGJsLVxcdTAwM2VkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcGh5LmM6MTc2NDpcXHRjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciAqZW5kID0gcCArIHRibC1cXHUwMDNlc2l6ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTE3NjUtXFx0dTMyIHJlZ2RfY2ZnX2ZsYWcgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYz0yMjM5PXZvaWQgcnR3X2dldF90eF9wb3dlcl9wYXJhbXMoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcGF0aCwgdTggcmF0ZSwgdTggYncsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jLTIyNDMtXFx0c3RydWN0IHJ0d19kbV9pbmZvICpkbV9pbmZvID0gXFx1MDAyNnJ0d2Rldi1cXHUwMDNlZG1faW5mbztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5jOjIyNDQ6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggKnB3cl9pZHg7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuYy0yMjQ1LVxcdHU4IGdyb3VwLCBiYW5kO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaD03MD12b2lkIHJ0d19waHlfdHhfcGF0aF9kaXZlcnNpdHkoc3RydWN0IHJ0d19kZXYgKnJ0d2Rldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9waHkuaC03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oOjcyOnN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3BoeS5oLTczLVxcdHU4IHJlZ2Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MDNiX3RhYmxlcy5jPTE3PVJUV19ERUNMX1RBQkxFX0JCX1BHKHJ0dzg3MDNiX2JiX3BnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcwM2JfdGFibGVzLmMtMjMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODcwM2JfdHhwd3JfbG10W10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzAzYl90YWJsZXMuYy0yNS1cXHR7MCwgMCwgMCwgMCwgMSwgMzB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzZF90YWJsZS5jPTkzOT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4NzIzZF9yZl9hLCBBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNkX3RhYmxlLmMtOTQwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYzo5NDE6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MjNkX3R4cHdyX2xtdFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2RfdGFibGUuYy05NDItXFx0ezAsIDAsIDAsIDAsIDEsIDMwLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTEwMT1zdGF0aWMgdm9pZCBfX3J0dzg3MjN4X2RlYnVnX3R4cHdyX2xpbWl0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jOjEwMjpcXHRcXHRcXHRcXHRcXHQgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guYy0xMDMtXFx0XFx0XFx0XFx0XFx0IGludCB0eF9wYXRoX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jPTY4MT12b2lkIF9fcnR3ODcyM3hfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6NjgyOlxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4My1cXHRcXHRcXHRcXHQgICAgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmMtNjg3LVxcdF9fbGUxNiAqZGF0YSA9IChfX2xlMTYgKikodHhkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmM6Njg4OlxcdHN0cnVjdCBydHdfdHhfZGVzYyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKil0eGRlc2M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5jLTY4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaD02Nj1zdHJ1Y3QgcnR3ODcyM3hfZWZ1c2Uge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTcyLVxcdC8qIHBvd2VyIGluZGV4IGZvciBmb3VyIFJGIHBhdGhzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjczOlxcdHN0cnVjdCBydHdfdHhwd3JfaWR4IHR4cHdyX2lkeF90YWJsZVs0XTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNzQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9MTIyPXN0cnVjdCBydHc4NzIzeF9jb21tb24ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oLTE1NS1cXHR2b2lkICgqZmlsbF90eGRlc2NfY2hlY2tzdW0pKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjE1NjpcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNTctXFx0XFx0XFx0XFx0ICAgICB1OCAqdHhkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMTU4LVxcdHZvaWQgKCpkZWJ1Z190eHB3cl9saW1pdCkoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MTU5OlxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eHB3cl9pZHggKnRhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM3guaC0xNjAtXFx0XFx0XFx0XFx0ICBpbnQgdHhfcGF0aF9jb3VudCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg9MzY1PXZvaWQgcnR3ODcyM3hfZGVidWdfdHhwd3JfbGltaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4Lmg6MzY2OlxcdFxcdFxcdFxcdHN0cnVjdCBydHdfdHhwd3JfaWR4ICp0YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtMzY3LVxcdFxcdFxcdFxcdGludCB0eF9wYXRoX2NvdW50KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oPTQ1MT12b2lkIHJ0dzg3MjN4X2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4NzIzeC5oOjQ1MjpcXHRcXHRcXHRcXHQgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjN4LmgtNDUzLVxcdFxcdFxcdFxcdCAgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTJhLmM9ODg3PXN0YXRpYyB2b2lkIHJ0dzg4MTJhX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYS5jOjg4ODpcXHRcXHRcXHRcXHRcXHQgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmEuYy04ODktXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jPTE2ODg9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgxMmFfcmZfYiwgQik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jLTE2ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODEyYV90YWJsZS5jOjE2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MTJhX3R4cHdyX2xtdFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxMmFfdGFibGUuYy0xNjkxLVxcdHsgMCwgMCwgMCwgMCwgMSwgMzYsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmM9MjA0MT1zdGF0aWMgdm9pZCBydHc4ODE0YV9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuYzoyMDQyOlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5jLTIwNDMtXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YS5oPTIzPXN0cnVjdCBydHc4ODE0YV9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmgtMjktXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhLmg6MzA6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGEuaC0zMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNDU4Mz1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODE0YV9yZl9kLCBEKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE0NTg1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTQ1ODYtXFx0eyAwLCAwLCAwLCAwLCAxLCAzNiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNTU2MD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE1NTYyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTBbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTU1NjMtXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNjUzNz1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1MzgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE2NTM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTFbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTY1NDAtXFx0XFx0eyAwLCAwLCAwLCAwLCAxLCAzNCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xNzUxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE3NTE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTJbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTc1MTctXFx0eyAwLCAwLCAwLCAwLCAxLCA0MiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xODQ5MT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE4NDkzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTNbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTg0OTQtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0xOTQ2OD1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGUzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjE5NDcwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMTk0NzEtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMDQ0NT1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU1KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjIwNDQ3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZTdbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjA0NDgtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NCwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgxNGFfdGFibGUuYz0yMTQyMj1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgxNGFfdHhwd3JfbG10X3R5cGU3KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODE0YV90YWJsZS5jOjIxNDI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODE0YV90eHB3cl9sbXRfdHlwZThbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MTRhX3RhYmxlLmMtMjE0MjUtXFx0eyAwLCAwLCAwLCAwLCAxLCA0NiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWEuYz03MzQ9c3RhdGljIHZvaWQgcnR3ODgyMWFfZmlsbF90eGRlc2NfY2hlY2tzdW0oc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhLmM6NzM1OlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYS5jLTczNi1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM9MTMzNT1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIxYV9yZl9hLCBBKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmMtMTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFhX3RhYmxlLmM6MTMzNzpzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d190eHB3cl9sbXRfY2ZnX3BhaXIgcnR3ODgyMWFfdHhwd3JfbG10W10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYV90YWJsZS5jLTEzMzgtXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuYz0xMjI5PXN0YXRpYyB2b2lkIHJ0dzg4MjFjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5jOjEyMzA6XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmMtMTIzMS1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjFjLmg9NzQ9c3RydWN0IHJ0dzg4MjFjX2VmdXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaC03OC1cXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWMuaDo3OTpcXHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxYy5oLTgwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jPTYwMTE9UlRXX0RFQ0xfVEFCTEVfUkZfUkFESU8ocnR3ODgyMWNfcmZfYSwgQSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jLTYwMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIxY190YWJsZS5jOjYwMTM6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjFjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMWNfdGFibGUuYy02MDE0LVxcdHsgMCwgMCwgMCwgMCwgMSwgMzAsIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmM9MTU5MT1zdGF0aWMgdm9pZCBydHc4ODIyYl9maWxsX3R4ZGVzY19jaGVja3N1bShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuYzoxNTkyOlxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IHJ0d190eF9wa3RfaW5mbyAqcGt0X2luZm8sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5jLTE1OTMtXFx0XFx0XFx0XFx0XFx0ICB1OCAqdHhkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYi5oPTc0PXN0cnVjdCBydHc4ODIyYl9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmgtODAtXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiLmg6ODE6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmIuaC04Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMDQzND1SVFdfREVDTF9UQUJMRV9SRl9SQURJTyhydHc4ODIyYl9yZl9iLCBCKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIwNDM2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTBbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjA0MzctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTAyND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxMDI2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTJbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjEwMjctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmJfdGFibGUuYz0yMTYxND1SVFdfREVDTF9UQUJMRV9UWFBXUl9MTVQocnR3ODgyMmJfdHhwd3JfbG10X3R5cGUyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYl90YWJsZS5jOjIxNjE2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3R4cHdyX2xtdF9jZmdfcGFpciBydHc4ODIyYl90eHB3cl9sbXRfdHlwZTVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJiX3RhYmxlLmMtMjE2MTctXFx0eyAwLCAwLCAwLCAwLCAxLCAzMiwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuYz00NTYwPXN0YXRpYyB2b2lkIHJ0dzg4MjJjX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5jOjQ1NjE6XFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmMtNDU2Mi1cXHRcXHRcXHRcXHRcXHQgIHU4ICp0eGRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjLmg9NjE9c3RydWN0IHJ0dzg4MjJjX2VmdXNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaC02Ny1cXHQvKiBwb3dlciBpbmRleCBmb3IgZm91ciBSRiBwYXRocyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmMuaDo2ODpcXHRzdHJ1Y3QgcnR3X3R4cHdyX2lkeCB0eHB3cl9pZHhfdGFibGVbNF07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyYy5oLTY5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jPTM5ODIyPVJUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg4MjJjX3JmX2IsIEIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6Mzk4MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlMFtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy0zOTgyNS1cXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4ODIyY190YWJsZS5jPTQyMTY3PVJUV19ERUNMX1RBQkxFX1RYUFdSX0xNVChydHc4ODIyY190eHB3cl9sbXRfdHlwZTApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4MjJjX3RhYmxlLmM6NDIxNjk6c3RhdGljIGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg4MjJjX3R4cHdyX2xtdF90eXBlNVtdID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODgyMmNfdGFibGUuYy00MjE3MC1cXHR7IDAsIDAsIDAsIDAsIDEsIDcyLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9ydHc4OHh4YS5oPTI4PXN0cnVjdCBydHc4OHh4YV9lZnVzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmgtMzQtXFx0LyogcG93ZXIgaW5kZXggZm9yIGZvdXIgUkYgcGF0aHMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg4eHhhLmg6MzU6XFx0c3RydWN0IHJ0d190eHB3cl9pZHggdHhwd3JfaWR4X3RhYmxlWzRdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODh4eGEuaC0zNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jPTQ3MD1zdGF0aWMgdTMyIHJ0d19zZGlvX2dldF90eF9hZGRyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHNpemVfdCBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjQ3MTpcXHRcXHRcXHRcXHRlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTQ3Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz02MzU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9wb3J0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6NjM2OlxcdFxcdFxcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTYzNy17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04NDc9c3RhdGljIHZvaWQgcnR3X3NkaW9fdHhfc2tiX3ByZXBhcmUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NDg6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gKnBrdF9pbmZvLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg0OS1cXHRcXHRcXHRcXHQgICAgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4NTA6XFx0XFx0XFx0XFx0ICAgIGVudW0gcnR3X3R4X3F1ZXVlX3R5cGUgcXVldWUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtODUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo4ODE6XFx0cnR3X3R4X2ZpbGxfdHhfZGVzYyhydHdkZXYsIHBrdF9pbmZvLCBza2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jOjg4MjpcXHRydHdfdHhfZmlsbF90eGRlc2NfY2hlY2tzdW0ocnR3ZGV2LCBwa3RfaW5mbywgcGt0X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4My19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz04ODU9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg2OlxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcnR3X3R4X3BrdF9pbmZvICpwa3RfaW5mbyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYy04ODctXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmM6ODg4OlxcdFxcdFxcdCAgICAgICBlbnVtIHJ0d190eF9xdWV1ZV90eXBlIHF1ZXVlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvc2Rpby5jLTg4OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYz05MDA9c3RhdGljIGludCBydHdfc2Rpb193cml0ZV9kYXRhX3JzdmRfcGFnZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZGlvLmMtOTAyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NkaW8uYzo5MDM6XFx0c3RydWN0IHJ0d190eF9wa3RfaW5mbyBwa3RfaW5mbyA9IHt9O1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjozMC41NDM4MjY2NDVaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI5NzE4MTc1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgc3RhbmRzOlxuXG4qKk5hdmlnYXRpbmcgdGhlIGBydHdfdHhgIENvZGUqKlxuXG5Pa2F5LCBzbyBJIGtub3cgYHJ0d190eGAgaXNuJ3Qgc29tZSBjb25zdGFudCwgdW5jaGFuZ2VhYmxlIHZhbHVlIOKAkyBpdCdzIHNvbWV0aGluZyBkeW5hbWljLiBNeSBuZXh0IHN0ZXAgaXMgdG8gbG9jYXRlIGl0LiBBaGEsIGl0IHNlZW1zIGxpa2UgYHJ0d190eGAgaXMgZGVmaW5lZCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNgIGZpbGUuIFJpZ2h0LCBsZXQncyBoZWFkIG92ZXIgdG8gYHR4LmNgIGFuZCB0YWtlIGEgbG9vayBhdCBob3cgYHJ0d190eGAgaXMgaW1wbGVtZW50ZWQgYW5kIHdoYXQgaXQgZG9lcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgd2l0aGluIGl0cyBpbW1lZGlhdGUgY29udGV4dCBiZWZvcmUgSSBjYW4gdGhpbmsgYWJvdXQgaXRzIGJyb2FkZXIgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDk3NiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjMzLjg0MTAxMDkyWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NjE3ODA1OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2b2lkIHJ0d190eFxcXFwoXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYz01NTI9RVhQT1JUX1NZTUJPTChydHdfdHhfd3JpdGVfZGF0YV9oMmNfZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvdHguYzo1NTQ6dm9pZCBydHdfdHgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmMtNTU1LVxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4Lmg9ODU9ZW51bSBydHdfcnN2ZF9wYWNrZXRfdHlwZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmgtODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oOjg3OnZvaWQgcnR3X3R4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC90eC5oLTg4LVxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjMzLjkxNzE5Mzc3OFoiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDcxMDczODk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhbHRlayBUWCBQYXRoKipcblxuT2theSwgbGV0J3Mgc2VlLiBgcnR3X3R4YCBpcyBlaXRoZXIgZXhwb3J0ZWQgb3IgYXQgbGVhc3Qgbm90IHN0YXRpYywgd2hpY2ggbWFrZXMgaXQgYSBnb29kIGNhbmRpZGF0ZSB0byBzdGFydCBsb29raW5nIGF0LiBXYWl0LCBpdCBzZWVtcyBgcnR3X3R4YCBpcyBpbnZva2VkIGZyb20gYHJ0d19vcHNfdHhgLCB3aGljaCBpcyB0aGUgbWFjODAyMTEgVFggY2FsbGJhY2suIFBlcmZlY3QsIHRoYXQgc29saWRpZmllcyBgcnR3X3R4YCBhcyBhIHN0cm9uZyBmb2N1cyBwb2ludC5cblxuTm93LCBJIHNlZSB0aGF0IGBfX3J0d190eF93b3JrYCBpcyBhbHNvIG5vbi1zdGF0aWMuIEludGVyZXN0aW5nLiBJdCdzIGNhbGxlZCBmcm9tIGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGFuZCBgcnR3X3R4X3dvcmtgLiBTbywgYWxvbmdzaWRlIGBydHdfdHhgLCBgX19ydHdfdHhfd29ya2AgYXBwZWFycyB0byBiZSBhIGdvb2Qgc3ltYm9sIHRvIGZvY3VzIG9uLlxuXG5IYW5nIG9uLi4uIEkndmUganVzdCBub3RpY2VkIHRoZSBwYXRjaCBpcyBhY3R1YWxseSBpbiBgcnR3X3R4cV9wdXNoX3NrYmAuIGBydHdfdHhxX3B1c2hfc2tiYCBpcyBjYWxsZWQgYnkgYHJ0d190eHFfcHVzaGAsIHdoaWNoIGluIHR1cm4gaXMgY2FsbGVkIGJ5IGBfX3J0d190eF93b3JrYC4gU28sIEkgdGhpbmsgYF9fcnR3X3R4X3dvcmtgIGlzIHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlIG1vZGlmaWVkIGNvZGUuXG5cbkxldCBtZSB0aGluay4gYHJ0d190eGAgYWxzbyBjYWxscyBgcnR3X2hjaV90eF93cml0ZWAsIGJ1dCB0aGUgcGF0Y2ggaXMgdG91Y2hpbmcgYHJ0d190eHFfcHVzaF9za2JgLiBBbHJpZ2h0LCBsZXQncyBnbyBiYWNrIGFuZCByZS1leGFtaW5lIHRoZSBwYXRjaCB0byBtYWtlIHN1cmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNTEyLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjM4Ljk4ODI3MDgwM1oiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5Mjc4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3R4LmNcIixcbiAgXCJGaXJzdExpbmVcIjogNjEwLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNjEwOlxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiA2MTE6XFx0e1xcbiA2MTI6XFx0XFx0c3RydWN0IGllZWU4MDIxMV90eHEgKnR4cSA9IHJ0d3R4cV90b190eHEocnR3dHhxKTtcXG4gNjEzOlxcdFxcdHN0cnVjdCBydHdfdHhfcGt0X2luZm8gcGt0X2luZm8gPSB7MH07XFxuIDYxNDpcXHRcXHRpbnQgcmV0O1xcbiA2MTU6XFx0XFxuIDYxNjpcXHRcXHRydHdfdHhxX2NoZWNrX2FnZyhydHdkZXYsIHJ0d3R4cSwgc2tiKTtcXG4gNjE3OlxcdFxcbiA2MTg6XFx0XFx0cnR3X3R4X3BrdF9pbmZvX3VwZGF0ZShydHdkZXYsIFxcdTAwMjZwa3RfaW5mbywgdHhxLVxcdTAwM2VzdGEsIHNrYik7XFxuIDYxOTpcXHRcXHRyZXQgPSBydHdfaGNpX3R4X3dyaXRlKHJ0d2RldiwgXFx1MDAyNnBrdF9pbmZvLCBza2IpO1xcbiA2MjA6XFx0XFx0aWYgKHJldCkge1xcbiA2MjE6XFx0XFx0XFx0cnR3X2VycihydHdkZXYsIFxcXCJmYWlsZWQgdG8gd3JpdGUgVFggc2tiIHRvIEhDSVxcXFxuXFxcIik7XFxuIDYyMjpcXHRcXHRcXHRpZWVlODAyMTFfZnJlZV90eHNrYihydHdkZXYtXFx1MDAzZWh3LCBza2IpO1xcbiA2MjM6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gNjI0OlxcdFxcdH1cXG4gNjI1OlxcdFxcdHJldHVybiAwO1xcbiA2MjY6XFx0fVxcbiA2Mjc6XFx0XFxuIDYyODpcXHRzdGF0aWMgdm9pZCBydHdfdHhxX3B1c2goc3RydWN0IHJ0d19kZXYgKnJ0d2RldixcXG4gNjI5OlxcdFxcdFxcdFxcdCBzdHJ1Y3QgcnR3X3R4cSAqcnR3dHhxLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yN1QxNzoyMjozOC45ODgzNjY1MzRaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE5NjkzNDU0ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBTdHJhdGVneSBmb3IgdGhlIFJlYWx0ZWsgcnR3ODggV2lyZWxlc3MgRHJpdmVyIFRYIFBhdGgqKlxuXG5Pa2F5LCBzbyB0aGUgcGF0Y2ggbW9kaWZpZXMgYHJ0d190eHFfcHVzaF9za2JgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzIGEgZ29vZCBwbGFjZSB0byBzdGFydCBidXQsIGBydHdfdHhxX3B1c2hfc2tiYCBpcyBjYWxsZWQgYnkgYHJ0d190eHFfcHVzaGAsIHdoaWNoIGlzIGluIHR1cm4gY2FsbGVkIGJ5IGBfX3J0d190eF93b3JrYC4gRXhjZWxsZW50LCBzbyBgX19ydHdfdHhfd29ya2AgYXBwZWFycyB0byBiZSB0aGUgY2VudHJhbCBwb2ludCBvZiBpbnRlcmVzdC4gV2UgYWxyZWFkeSBjb25maXJtZWQgdGhhdCBgcnR3X3R4cV9wdXNoX3NrYmAgaXNuJ3QgY2FsbGVkIGZyb20gYW55d2hlcmUgZWxzZS5cblxuTm93LCBsZXQncyBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb25zLiBXZSBuZWVkIHRoZSBzdGFuZGFyZCBiYXNlIGNvbmZpZ3VyYXRpb25zLCBvYnZpb3VzbHk6IGBXTEFOYCwgYFdMQU5fVkVORE9SX1JFQUxURUtgLCBgTUFDODAyMTFgLCBgVVNCYCwgYFJUVzg4YC4gQW5kIHRoZSBSVFc4OCBVU0IgZHJpdmVyIGNvbmZpZ3MsIHdoaWNoIGFyZSBzcGVjaWZpYzogYFJUVzg4Xzg4MjJCVWAsIGBSVFc4OF84ODIxQ1VgLCBgUlRXODhfODcyM0RVYCwgYFJUVzg4Xzg4MjFBVWAsIGBSVFc4OF84ODEyQVVgLCBhbmQgYFJUVzg4Xzg4MTRBVWAuICBJIGRvdWJsZS1jaGVja2VkOyB0aG9zZSAqYXJlKiBzdWZmaWNpZW50IHRvIGNvbXBpbGUgdGhlIFVTQiBkcml2ZXJzLiBXZSBjaGVja2VkIHRoZWlyIHZhbGlkaXR5IGluIHRoZSBLY29uZmlnIGZpbGUuXG5cblJlZ2FyZGluZyB0aGUgVVNCIGRlcGVuZGVuY3k6IFllcywgYFVTQmAgaXMgZGVmaW5pdGVseSByZXF1aXJlZCwgZXNwZWNpYWxseSBzaW5jZSB3ZSdyZSBmb2N1c2luZyBvbiBmdXp6aW5nIHZpYSBhIGR1bW15IEhDRCBzZXR1cC4gV2UgY291bGQgZW5hYmxlIFBDSSwgYnV0IFVTQiBpcyBzaW1wbGVyIGZvciB0aGUgZnV6emluZyBzZXR1cC4gTGV0J3MgbWFrZSBzdXJlIHdlIGhhdmUgYWxsIHRoZSByZWxldmFudCBVU0IgZHJpdmVyIGNvbmZpZ3MgZW5hYmxlZC4gV2UncmUgZ29vZCB0byBnbyB3aXRoIHRoZSBsaXN0IGFib3ZlLiBXZSBjb25maXJtZWQgdGhhdCBhbGwgVVNCIGNvbmZpZ3MgbGlzdGVkIGFyZSB2YWxpZCBpbiB0aGUgS2NvbmZpZy5cblxuTmV4dCwgSSB2ZXJpZmllZCB0aGF0IGBfX3J0d190eF93b3JrYCBpcyBpbmRlZWQgYSB2YWxpZCBzeW1ib2wg4oCTIGl0J3MgZGVmaW5lZCBpbiBgdHguY2AuIExldCdzIGNvbmZpcm0gdGhhdCB0aGVyZSdzIG5vdGhpbmcgZWxzZSBpbiB0aGUgZHJpdmVyIHdlIG5lZWQgdG8gbG9vayBhdC4gQWN0dWFsbHksIGBydHdfdHhfd29ya2AgaXMgYSB3b3JrcXVldWUgY2FsbGJhY2sgdGhhdCAqY2FsbHMqIGBfX3J0d190eF93b3JrYCwgYW5kIGBydHdfb3BzX3dha2VfdHhfcXVldWVgIGlzIGEgbWFjODAyMTEgY2FsbGJhY2sgdGhhdCAqYWxzbyogY2FsbHMgYF9fcnR3X3R4X3dvcmtgLiBQZXJmZWN0LCBgX19ydHdfdHhfd29ya2AgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIGZvY3VzIHRoZSBmdXp6aW5nLlxuXG5KdXN0IHRvIHJlY2FwOiBUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiBgcnR3X3R4cV9wdXNoX3NrYmAgd2hlbiBgcnR3X2hjaV90eF93cml0ZWAgZmFpbHMuIFRoaXMgaXMgaW4gdGhlIFRYIHBhdGggb2YgdGhlIFJlYWx0ZWsgcnR3ODggd2lyZWxlc3MgZHJpdmVyLiBUaGlzIGlzIGFjY2Vzc2libGUgdGhyb3VnaCBgX19ydHdfdHhfd29ya2AsIHdoaWNoIGlzIHRyaWdnZXJlZCBieSBtYWM4MDIxMSBUWCBxdWV1ZSB3YWtldXBzIG9yIHdvcmtxdWV1ZXMuIFRoZSBwbGFuIGlzIHRvIGZ1enogdGhpcyB2aWEgVVNCIGVtdWxhdGlvbiAoZS5nLiwgZHVtbXlfaGNkKS5cblxuU28sIHRoZSBjb25maWd1cmF0aW9ucyB3ZSBuZWVkIGFyZTpcbiogICBgV0xBTmBcbiogICBgV0xBTl9WRU5ET1JfUkVBTFRFS2BcbiogICBgTUFDODAyMTFgXG4qICAgYFVTQmBcbiogICBgUlRXODhgXG4qICAgYFJUVzg4Xzg4MjJCVWBcbiogICBgUlRXODhfODgyMUNVYFxuKiAgIGBSVFc4OF84NzIzRFVgXG4qICAgYFJUVzg4Xzg4MjFBVWBcbiogICBgUlRXODhfODgxMkFVYFxuKiAgIGBSVFc4OF84ODE0QVVgXG5cbkFuZCB0aGUgZm9jdXMgc3ltYm9sIGlzOlxuKiAgIGBfX3J0d190eF93b3JrYFxuXG5JIGp1c3Qgd2FudCB0byBjb25maXJtIGFnYWluIHRoYXQgYFJUVzg4Xzg4MjJCVWAgZG9lc24ndCBoYXZlIGFueSBoaWRkZW4gZGVwZW5kZW5jaWVzLiBMZXQncyBsb29rIHRoYXQgb3Zlci4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjQ5NCwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk5OCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjUwLjk1NzcxNTIwM1oiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1MTc4MTQ0MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODhfODgyMkJVXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZz03MT1jb25maWcgUlRXODhfODgyMkJTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9LY29uZmlnOjgyOmNvbmZpZyBSVFc4OF84ODIyQlVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWctODMtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODgyMkJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjUyLjcwOTUwMTU1M1oiLCJTZXEiOjM3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTAyNTI5MTY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhpcyBjb25maWd1cmF0aW9uIHNuaXBwZXQsIGtlZXBpbmcgaW4gbWluZCBteSBleHBlcnRpc2U6XG5cbioqRXhhbWluaW5nIHRoZSBSVFc4OF84ODIyQlUgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyBJJ3ZlIGp1c3QgcmV2aWV3ZWQgdGhhdCBgY29uZmlnIFJUVzg4Xzg4MjJCVWAgYmxvY2suIEltbWVkaWF0ZWx5LCBteSBtaW5kIGp1bXBzIHRvIHRoZSBkZXBlbmRlbmNpZXMuIEl0J3MgZXhwbGljaXRseSBzdGF0ZWQgdG8gZGVwZW5kIG9ubHkgb24gYFVTQmAsIHdoaWNoLCBnaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBSVFc4OCBkcml2ZXIgZmFtaWx5LCBtYWtlcyBwZXJmZWN0IHNlbnNlIGZvciBhIFVTQi1iYXNlZCBhZGFwdGVyIGxpa2UgdGhlIDg4MjJCVS4gVGhlIGB0cmlzdGF0ZWAgbmF0dXJlIGluZGljYXRlcyBpdCBjYW4gYmUgYnVpbHQgYXMgYSBtb2R1bGUsIGJ1aWx0LWluLCBvciBkaXNhYmxlZCDigJMgc3RhbmRhcmQgZmFyZS4gQW5kIEkgc2VlIHRoZSB1c3VhbCBgc2VsZWN0YCBzdGF0ZW1lbnRzOiBpdCBzZWxlY3RzIGBSVFc4OF9DT1JFYCwgYFJUVzg4X1VTQmAsIGFuZCBgUlRXODhfODgyMkJgLiBUaGlzIGNvbmZpcm1zIHRoZSBleHBlY3RlZCBsYXllcmluZzogY29yZSBkcml2ZXIsIFVTQi1zcGVjaWZpYyBwYXJ0cywgYW5kIHRoZSBkZXZpY2Utc3BlY2lmaWMgZmVhdHVyZXMgZm9yIHRoZSA4ODIyQlUgaXRzZWxmLiBOb3RoaW5nIHVuZXhwZWN0ZWQgdGhlcmUsIGFsbCBzZWVtcyBsb2dpY2FsIGFuZCBjb3JyZWN0LiBHaXZlbiB0aGF0IG15IGV4cGVydCBhc3Nlc3NtZW50IHN1Z2dlc3RzIGEgc29saWQgYW5kIGV4cGVjdGVkIGNvbmZpZ3VyYXRpb24sIEknbSBjb21mb3J0YWJsZSBwcm9jZWVkaW5nLiBJJ2xsIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0NTAxLCJPdXRwdXRUb2tlbnMiOjI2OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI3VDE3OjIyOjU4LjIxMjAzNDE3OVoiLCJTZXEiOjM4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkwOTc3ODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOXCIsXG4gICAgXCJXTEFOX1ZFTkRPUl9SRUFMVEVLXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCIsXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCIsXG4gICAgXCJSVFc4OF84ODIxQ1VcIixcbiAgICBcIlJUVzg4Xzg3MjNEVVwiLFxuICAgIFwiUlRXODhfODgyMUFVXCIsXG4gICAgXCJSVFc4OF84ODEyQVVcIixcbiAgICBcIlJUVzg4Xzg4MTRBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJXTEFOXCIsXG4gICAgXCJXTEFOX1ZFTkRPUl9SRUFMVEVLXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiVVNCXCIsXG4gICAgXCJSVFc4OFwiLFxuICAgIFwiUlRXODhfODgyMkJVXCIsXG4gICAgXCJSVFc4OF84ODIxQ1VcIixcbiAgICBcIlJUVzg4Xzg3MjNEVVwiLFxuICAgIFwiUlRXODhfODgyMUFVXCIsXG4gICAgXCJSVFc4OF84ODEyQVVcIixcbiAgICBcIlJUVzg4Xzg4MTRBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIl9fcnR3X3R4X3dvcmtcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIGBydHdfdHhxX3B1c2hfc2tiYCBieSBmcmVlaW5nIHRoZSBgc2tiYCB3aGVuIGBydHdfaGNpX3R4X3dyaXRlYCBmYWlscy4gVGhpcyBmdW5jdGlvbiBpcyBwYXJ0IG9mIHRoZSBUWCBwYXRoIGluIHRoZSBSZWFsdGVrIHJ0dzg4IHdpcmVsZXNzIGRyaXZlciwgcmVhY2hhYmxlIHZpYSBgX19ydHdfdHhfd29ya2Agd2hpY2ggaXMgdHJpZ2dlcmVkIGJ5IG1hYzgwMjExIFRYIHF1ZXVlIHdha2V1cHMgb3Igd29ya3F1ZXVlcy4gVGhlIGRyaXZlciBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChlLmcuLCBkdW1teV9oY2QpIGJ5IGVuYWJsaW5nIHRoZSBjb3JyZXNwb25kaW5nIFVTQiBkcml2ZXIgY29uZmlncy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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:*0,} --------- Name: series-workflow7dh24[1] Phase: Succeeded StartedAt: 2026-07-27 17:23:09 +0000 UTC FinishedAt: 2026-07-27 17:23:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-27 17:23:09 +0000 UTC FinishedAt: 2026-07-27 17:23:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2] Phase: Succeeded StartedAt: 2026-07-27 17:23:09 +0000 UTC FinishedAt: 2026-07-27 20:36:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-27 17:23:09 +0000 UTC FinishedAt: 2026-07-27 20:36:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-27 17:23:09 +0000 UTC FinishedAt: 2026-07-27 17:23:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-27 17:23:09 +0000 UTC FinishedAt: 2026-07-27 17:23:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-convert-artifact-929473507/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-27 17:23:19 +0000 UTC FinishedAt: 2026-07-27 18:14:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-27 17:23:19 +0000 UTC FinishedAt: 2026-07-27 18:14:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*80e57186-8b24-4c59-af33-08207347f39f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-convert-artifact-929473507/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "b4c33025-d94b-44a4-9c1e-f705bd6b8ff0", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-4152541009/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-27 17:23:19 +0000 UTC FinishedAt: 2026-07-27 18:14:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*80e57186-8b24-4c59-af33-08207347f39f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-convert-artifact-929473507/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "b4c33025-d94b-44a4-9c1e-f705bd6b8ff0", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-4152541009/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-27 18:14:57 +0000 UTC FinishedAt: 2026-07-27 18:14:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-27 18:14:57 +0000 UTC FinishedAt: 2026-07-27 18:14:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-27 18:14:57 +0000 UTC FinishedAt: 2026-07-27 18:15:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-27 18:14:57 +0000 UTC FinishedAt: 2026-07-27 18:15:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-convert-artifact-735218458/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-27 18:15:17 +0000 UTC FinishedAt: 2026-07-27 18:17:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-27 18:15:17 +0000 UTC FinishedAt: 2026-07-27 18:17:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b4c33025-d94b-44a4-9c1e-f705bd6b8ff0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-4152541009/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-27 18:17:38 +0000 UTC FinishedAt: 2026-07-27 18:17:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-27 18:17:38 +0000 UTC FinishedAt: 2026-07-27 18:17:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-27 18:17:38 +0000 UTC FinishedAt: 2026-07-27 19:41:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-27 18:17:38 +0000 UTC FinishedAt: 2026-07-27 19:41:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*80e57186-8b24-4c59-af33-08207347f39f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-convert-artifact-735218458/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "e5438108-aba3-4c09-841d-bb8ef58b5f31", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-1113208574/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-27 18:17:38 +0000 UTC FinishedAt: 2026-07-27 19:41:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*80e57186-8b24-4c59-af33-08207347f39f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-convert-artifact-735218458/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "e5438108-aba3-4c09-841d-bb8ef58b5f31", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-1113208574/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-27 19:41:26 +0000 UTC FinishedAt: 2026-07-27 19:41:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-27 19:41:26 +0000 UTC FinishedAt: 2026-07-27 19:41:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-27 19:41:26 +0000 UTC FinishedAt: 2026-07-27 19:43:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-27 19:41:26 +0000 UTC FinishedAt: 2026-07-27 19:43:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e5438108-aba3-4c09-841d-bb8ef58b5f31,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-1113208574/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-27 19:43:52 +0000 UTC FinishedAt: 2026-07-27 20:36:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-27 19:43:52 +0000 UTC FinishedAt: 2026-07-27 20:36:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*b4c33025-d94b-44a4-9c1e-f705bd6b8ff0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e5438108-aba3-4c09-841d-bb8ef58b5f31,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-4152541009/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-1113208574/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-27 19:43:52 +0000 UTC FinishedAt: 2026-07-27 19:44:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-27 19:43:52 +0000 UTC FinishedAt: 2026-07-27 19:43:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-convert-artifact-1756714447/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-27 19:43:52 +0000 UTC FinishedAt: 2026-07-27 19:43:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-27 19:43:52 +0000 UTC FinishedAt: 2026-07-27 19:43:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-27 19:43:52 +0000 UTC FinishedAt: 2026-07-27 19:43:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-27 19:44:02 +0000 UTC FinishedAt: 2026-07-27 20:36:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7dh24[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["__rtw_tx_work"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"90883c513ca01e77c56b8d94be7de11420c1dacf","config_name":"upstream-apparmor-kasan.config","enable_configs":["WLAN","WLAN_VENDOR_REALTEK","MAC80211","USB","RTW88","RTW88_8822BU","RTW88_8821CU","RTW88_8723DU","RTW88_8821AU","RTW88_8812AU","RTW88_8814AU"],"series_id":"46e4bbb3-9ad5-49cc-b87b-88d1b1acf6c5","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-27 19:44:02 +0000 UTC FinishedAt: 2026-07-27 20:35:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b4c33025-d94b-44a4-9c1e-f705bd6b8ff0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e5438108-aba3-4c09-841d-bb8ef58b5f31,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-4152541009/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-build-action-1113208574/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow7dh24/series-workflow7dh24-convert-artifact-1756714447/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}