PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2Rfc2VkIC0gQXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi41PC90aXRsZT4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi4vc3R5bGUvc2NyaXB0cy9wcmV0dGlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0PgoKPGxpbmsgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keT4KPGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuNTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5wbmciIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAgU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4uLyI+VmVyc2lvbiAyLjU8L2E+ICZndDsgPGEgaHJlZj0iLi8iPk1vZHVsZXM8L2E+PC9kaXY+CjxkaXYgaWQ9InBhZ2UtY29udGVudCI+CjxkaXYgaWQ9InByZWFtYmxlIj48aDE+QXBhY2hlIE1vZHVsZSBtb2Rfc2VkPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9tb2QvbW9kX3NlZC5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvbW9kL21vZF9zZWQuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8dGFibGUgY2xhc3M9Im1vZHVsZSI+PHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+RmlsdGVyIElucHV0IChyZXF1ZXN0KSBhbmQgT3V0cHV0IChyZXNwb25zZSkgY29udGVudCB1c2luZyA8Y29kZT5zZWQ8L2NvZGU+IHN5bnRheDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHBlcmltZW50YWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5Nb2R1bGWgSWRlbnRpZmllcjo8L2E+PC90aD48dGQ+c2VkX21vZHVsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1NvdXJjZUZpbGUiPlNvdXJjZaBGaWxlOjwvYT48L3RoPjx0ZD5tb2Rfc2VkLmMgc2VkMC5jIHNlZDEuYyByZWdleHAuYyByZWdleHAuaCBzZWQuaDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI0NvbXBhdGliaWxpdHkiPkNvbXBhdGliaWxpdHk6PC9hPjwvdGg+PHRkPkF2YWlsYWJsZSBpbiBBcGFjaGUgMi4zIGFuZCBsYXRlcjwvdGQ+PC90cj48L3RhYmxlPgo8aDM+U3VtbWFyeTwvaDM+Cgo8cD4KPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9zZWQuaHRtbCI+bW9kX3NlZDwvYT48L2NvZGU+IGlzIGFuIGluLXByb2Nlc3MgY29udGVudCBmaWx0ZXIuIFRoZSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3NlZC5odG1sIj5tb2Rfc2VkPC9hPjwvY29kZT4gZmlsdGVyIGltcGxlbWVudHMgdGhlIDxjb2RlPnNlZDwvY29kZT4gZWRpdGluZwpjb21tYW5kcyBpbXBsZW1lbnRlZCBieSB0aGUgU29sYXJpcyAxMCA8Y29kZT5zZWQ8L2NvZGU+CnByb2dyYW0gYXMgZGVzY3JpYmVkIGluIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvc2VkL21hbnVhbC9zZWQudHh0Ij5tYW51YWwKcGFnZTwvYT4uIEhvd2V2ZXIsIHVubGlrZSA8Y29kZT5zZWQ8L2NvZGU+LCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3NlZC5odG1sIj5tb2Rfc2VkPC9hPjwvY29kZT4gZG9lc24ndCB0YWtlIGRhdGEgZnJvbQpzdGFuZGFyZAppbnB1dC4gSW5zdGVhZCwgdGhlIGZpbHRlciBhY3RzIG9uIHRoZSBlbnRpdHkgZGF0YSBzZW50IGJldHdlZW4gY2xpZW50IGFuZApzZXJ2ZXIuIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2Rfc2VkLmh0bWwiPm1vZF9zZWQ8L2E+PC9jb2RlPiBjYW4gYmUgdXNlZCBhcyBhbiBpbnB1dCBvciBvdXRwdXQgZmlsdGVyLiA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3NlZC5odG1sIj5tb2Rfc2VkPC9hPjwvY29kZT4gaXMgYQpjb250ZW50IGZpbHRlciwgd2hpY2ggbWVhbnMgdGhhdCBpdCBjYW5ub3QgYmUgdXNlZCB0byBtb2RpZnkgY2xpZW50IG9yCnNlcnZlciBodHRwIGhlYWRlcnMuCjwvcD4KPHA+ClRoZSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3NlZC5odG1sIj5tb2Rfc2VkPC9hPjwvY29kZT4gb3V0cHV0IGZpbHRlciBhY2NlcHRzIGEgY2h1bmsgb2YgZGF0YSwgZXhlY3V0ZXMgdGhlIDxjb2RlPnNlZDwvY29kZT4gc2NyaXB0cyBvbiB0aGUgZGF0YSwgYW5kIGdlbmVyYXRlcyB0aGUgb3V0cHV0IHdoaWNoIGlzIHBhc3NlZCB0byB0aGUgbmV4dCBmaWx0ZXIgaW4gdGhlIGNoYWluLgo8L3A+Cgo8cD4KVGhlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2Rfc2VkLmh0bWwiPm1vZF9zZWQ8L2E+PC9jb2RlPiBpbnB1dCBmaWx0ZXIgcmVhZHMgdGhlIGRhdGEgZnJvbSB0aGUgbmV4dCBmaWx0ZXIgaW4gdGhlIGNoYWluLCBleGVjdXRlcyB0aGUgPGNvZGU+c2VkPC9jb2RlPiBzY3JpcHRzLCBhbmQgcmV0dXJucyB0aGUgZ2VuZXJhdGVkIGRhdGEgdG8gdGhlIGNhbGxlciBmaWx0ZXIgaW4gdGhlIGZpbHRlciBjaGFpbi4KPC9wPgoKPHA+CkJvdGggdGhlIGlucHV0IGFuZCBvdXRwdXQgZmlsdGVycyBvbmx5IHByb2Nlc3MgdGhlIGRhdGEgaWYgbmV3bGluZSBjaGFyYWN0ZXJzIGFyZSBzZWVuIGluIHRoZSBjb250ZW50LiBBdCB0aGUgZW5kIG9mIHRoZSBkYXRhLCB0aGUgcmVzdCBvZiB0aGUgZGF0YSBpcyB0cmVhdGVkIGFzIHRoZSBsYXN0IGxpbmUuCjwvcD4KCjxwPkEgdHV0b3JpYWwgYXJ0aWNsZSBvbiA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3NlZC5odG1sIj5tb2Rfc2VkPC9hPjwvY29kZT4sIGFuZCB3aHkgaXQgaXMgbW9yZSBwb3dlcmZ1bCB0aGFuIHNpbXBsZQpzdHJpbmcgb3IgcmVndWxhciBleHByZXNzaW9uIHNlYXJjaCBhbmQgcmVwbGFjZSwgaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHBzOi8vYmxvZ3Mub3JhY2xlLmNvbS9iYXNhbnQvZW50cnkvdXNpbmdfbW9kX3NlZF90b19maWx0ZXIiPm9uCnRoZSBhdXRob3IncyBibG9nPC9hPi48L3A+Cgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48aDM+VG9waWNzPC9oMz4KPHVsIGlkPSJ0b3BpY3MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNzYW1wbGVjb25mIj5TYW1wbGUgQ29uZmlndXJhdGlvbjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNzZWRfY29tbWFuZHMiPlNlZCBDb21tYW5kczwvYT48L2xpPgo8L3VsPjxoMyBjbGFzcz0iZGlyZWN0aXZlcyI+RGlyZWN0aXZlczwvaDM+Cjx1bCBpZD0idG9jIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjaW5wdXRzZWQiPklucHV0U2VkPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI291dHB1dHNlZCI+T3V0cHV0U2VkPC9hPjwvbGk+CjwvdWw+CjxoMz5CdWdmaXggY2hlY2tsaXN0PC9oMz48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5hcGFjaGUub3JnL2Rpc3QvaHR0cGQvQ0hBTkdFU18yLjQiPmh0dHBkIGNoYW5nZWxvZzwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2J6LmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1fX29wZW5fXyZhbXA7bGlzdF9pZD0xNDQ1MzImYW1wO3Byb2R1Y3Q9QXBhY2hlJTIwaHR0cGQtMiZhbXA7cXVlcnlfZm9ybWF0PXNwZWNpZmljJmFtcDtvcmRlcj1jaGFuZ2VkZGF0ZSUyMERFU0MlMkNwcmlvcml0eSUyQ2J1Z19zZXZlcml0eSZhbXA7Y29tcG9uZW50PW1vZF9zZWQiPktub3duIGlzc3VlczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2J6LmFwYWNoZS5vcmcvYnVnemlsbGEvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PUFwYWNoZSUyMGh0dHBkLTImYW1wO2NvbXBvbmVudD1tb2Rfc2VkIj5SZXBvcnQgYSBidWc8L2E+PC9saT48L3VsPjxoMz5TZWUgYWxzbzwvaDM+Cjx1bCBjbGFzcz0ic2VlYWxzbyI+CjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudHM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzYW1wbGVjb25mIiBpZD0ic2FtcGxlY29uZiI+U2FtcGxlIENvbmZpZ3VyYXRpb248L2E+PC9oMj4KICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxoMz5BZGRpbmcgYW4gb3V0cHV0IGZpbHRlciA8L2gzPjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4jIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIHNlZCBmaWx0ZXIgd2lsbCBjaGFuZ2UgdGhlIHN0cmluZwojICJtb25kYXkiIHRvICJNT04iIGFuZCB0aGUgc3RyaW5nICJzdW5kYXkiIHRvIFNVTiBpbiBodG1sIGRvY3VtZW50cwojIGJlZm9yZSBzZW5kaW5nIHRvIHRoZSBjbGllbnQuCiZsdDtEaXJlY3RvcnkgIi92YXIvd3d3L2RvY3Mvc2VkIiZndDsKICAgIEFkZE91dHB1dEZpbHRlciBTZWQgaHRtbAogICAgT3V0cHV0U2VkICJzL21vbmRheS9NT04vZyIKICAgIE91dHB1dFNlZCAicy9zdW5kYXkvU1VOL2ciCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgo8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+QWRkaW5nIGFuIGlucHV0IGZpbHRlciA8L2gzPjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4jIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIHNlZCBmaWx0ZXIgd2lsbCBjaGFuZ2UgdGhlIHN0cmluZwojICJtb25kYXkiIHRvICJNT04iIGFuZCB0aGUgc3RyaW5nICJzdW5kYXkiIHRvIFNVTiBpbiB0aGUgUE9TVCBkYXRhCiMgc2VudCB0byBQSFAuCiZsdDtEaXJlY3RvcnkgIi92YXIvd3d3L2RvY3Mvc2VkIiZndDsKICAgIEFkZElucHV0RmlsdGVyIFNlZCBwaHAKICAgIElucHV0U2VkICJzL21vbmRheS9NT04vZyIKICAgIElucHV0U2VkICJzL3N1bmRheS9TVU4vZyIKJmx0Oy9EaXJlY3RvcnkmZ3Q7PC9wcmU+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzZWRfY29tbWFuZHMiIGlkPSJzZWRfY29tbWFuZHMiPlNlZCBDb21tYW5kczwvYT48L2gyPgogICAgPHA+CiAgICBDb21wbGV0ZSBkZXRhaWxzIG9mIHRoZSA8Y29kZT5zZWQ8L2NvZGU+IGNvbW1hbmQgY2FuIGJlIGZvdW5kIGZyb20gdGhlCiAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9zZWQvbWFudWFsL3NlZC50eHQiPnNlZCBtYW51YWwKcGFnZTwvYT4uCiAgICA8L3A+CiAgICA8ZGw+CiAgICAgICAgPGR0Pjxjb2RlPmI8L2NvZGU+PC9kdD4KICAgICAgICA8ZGQ+QnJhbmNoIHRvIHRoZSBsYWJlbCBzcGVjaWZpZWQgKHNpbWlsYXIgdG8gZ290bykuPC9kZD4KICAgICAgICA8ZHQ+PGNvZGU+aDwvY29kZT48L2R0PgogICAgICAgIDxkZD5Db3B5IHRoZSBjdXJyZW50IGxpbmUgdG8gdGhlIGhvbGQgYnVmZmVyLjwvZGQ+CiAgICAgICAgPGR0Pjxjb2RlPkg8L2NvZGU+PC9kdD4KICAgICAgICA8ZGQ+QXBwZW5kIHRoZSBjdXJyZW50IGxpbmUgdG8gdGhlIGhvbGQgYnVmZmVyLjwvZGQ+CiAgICAgICAgPGR0Pjxjb2RlPmc8L2NvZGU+PC9kdD4KICAgICAgICA8ZGQ+Q29weSB0aGUgaG9sZCBidWZmZXIgdG8gdGhlIGN1cnJlbnQgbGluZS48L2RkPgogICAgICAgIDxkdD48Y29kZT5HPC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPkFwcGVuZCB0aGUgaG9sZCBidWZmZXIgdG8gdGhlIGN1cnJlbnQgbGluZS48L2RkPgogICAgICAgIDxkdD48Y29kZT54PC9jb2RlPjwvZHQ+CiAgICAgICAgPGRkPlN3YXAgdGhlIGNvbnRlbnRzIG9mIHRoZSBob2xkIGJ1ZmZlciBhbmQgdGhlIGN1cnJlbnQgbGluZS48L2RkPgogICAgPC9kbD4KPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IklucHV0U2VkIiBpZD0iSW5wdXRTZWQiPklucHV0U2VkPC9hPiA8YSBuYW1lPSJpbnB1dHNlZCIgaWQ9ImlucHV0c2VkIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TZWQgY29tbWFuZCB0byBmaWx0ZXIgcmVxdWVzdCBkYXRhICh0eXBpY2FsbHkgPGNvZGU+UE9TVDwvY29kZT4gZGF0YSk8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+SW5wdXRTZWQgPHZhcj5zZWQtY29tbWFuZDwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHBlcmltZW50YWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX3NlZDwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5JbnB1dFNlZDwvY29kZT4gZGlyZWN0aXZlIHNwZWNpZmllcyB0aGUgPGNvZGU+c2VkPC9jb2RlPiBjb21tYW5kCiAgICB0byBleGVjdXRlIG9uIHRoZSByZXF1ZXN0IGRhdGEgZS5nLiwgPGNvZGU+UE9TVDwvY29kZT4gZGF0YS4KICAgIDwvcD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJPdXRwdXRTZWQiIGlkPSJPdXRwdXRTZWQiPk91dHB1dFNlZDwvYT4gPGEgbmFtZT0ib3V0cHV0c2VkIiBpZD0ib3V0cHV0c2VkIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TZWQgY29tbWFuZCBmb3IgZmlsdGVyaW5nIHJlc3BvbnNlIGNvbnRlbnQ8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+T3V0cHV0U2VkIDx2YXI+c2VkLWNvbW1hbmQ8L3Zhcj48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXhwZXJpbWVudGFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9zZWQ8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+T3V0cHV0U2VkPC9jb2RlPiBkaXJlY3RpdmUgc3BlY2lmaWVzIHRoZSA8Y29kZT5zZWQ8L2NvZGU+CiAgICBjb21tYW5kIHRvIGV4ZWN1dGUgb24gdGhlIHJlc3BvbnNlLgogICAgPC9wPgoKPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2Rfc2VkLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9mci9tb2QvbW9kX3NlZC5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50czwvYT48L2gyPjxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPjxiciAvPlRoaXMgaXMgbm90IGEgUSZhbXA7QSBzZWN0aW9uLiBDb21tZW50cyBwbGFjZWQgaGVyZSBzaG91bGQgYmUgcG9pbnRlZCB0b3dhcmRzIHN1Z2dlc3Rpb25zIG9uIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBvciBzZXJ2ZXIsIGFuZCBtYXkgYmUgcmVtb3ZlZCBhZ2FpbiBieSBvdXIgbW9kZXJhdG9ycyBpZiB0aGV5IGFyZSBlaXRoZXIgaW1wbGVtZW50ZWQgb3IgY29uc2lkZXJlZCBpbnZhbGlkL29mZi10b3BpYy4gUXVlc3Rpb25zIG9uIGhvdyB0byBtYW5hZ2UgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBzaG91bGQgYmUgZGlyZWN0ZWQgYXQgZWl0aGVyIG91ciBJUkMgY2hhbm5lbCwgI2h0dHBkLCBvbiBGcmVlbm9kZSwgb3Igc2VudCB0byBvdXIgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL3RydW5rL21vZC9tb2Rfc2VkLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPkNvbW1lbnRzIGFyZSBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIGF0IHRoZSBtb21lbnQuPFwvZGl2PicpOwogICAgfQp9KSh3aW5kb3csIGRvY3VtZW50KTsKLy8tLT48IV1dPjwvc2NyaXB0PjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAyMDE3IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5MaWNlbnNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCmlmICh0eXBlb2YocHJldHR5UHJpbnQpICE9PSAndW5kZWZpbmVkJykgewogICAgcHJldHR5UHJpbnQoKTsKfQovLy0tPjwhXV0+PC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+