PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5BcGFjaGUncyBIYW5kbGVyIFVzZSAtIEFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuNTwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5BcGFjaGUgSFRUUCBTZXJ2ZXIgVmVyc2lvbiAyLjU8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZmVhdGhlci5wbmciIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+SFRUUCBTZXJ2ZXI8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi8iPlZlcnNpb24gMi41PC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5BcGFjaGUncyBIYW5kbGVyIFVzZTwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi9lbi9oYW5kbGVyLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VzL2hhbmRsZXIuaHRtbCIgaHJlZmxhbmc9ImVzIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvaGFuZGxlci5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvaGFuZGxlci5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vaGFuZGxlci5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2hhbmRsZXIuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi96aC1jbi9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJ6aC1jbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJTaW1wbGlmaWVkIENoaW5lc2UiPiZuYnNwO3poLWNuJm5ic3A7PC9hPjwvcD4KPC9kaXY+CgogICAgPHA+VGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIHVzZSBvZiBBcGFjaGUncyBIYW5kbGVycy48L3A+CiAgPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PHVsIGlkPSJ0b2MiPjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZGVmaW5pdGlvbiI+V2hhdCBpcyBhIEhhbmRsZXI8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNleGFtcGxlcyI+RXhhbXBsZXM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNwcm9ncmFtbWVyIj5Qcm9ncmFtbWVyJ3MgTm90ZTwvYT48L2xpPgo8L3VsPjxoMz5TZWUgYWxzbzwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJkZWZpbml0aW9uIiBpZD0iZGVmaW5pdGlvbiI+V2hhdCBpcyBhIEhhbmRsZXI8L2E+PC9oMj4KICAgIAogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPlJlbGF0ZWQgTW9kdWxlczwvdGg+PHRoPlJlbGF0ZWQgRGlyZWN0aXZlczwvdGg+PC90cj48dHI+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2FjdGlvbnMuaHRtbCI+bW9kX2FjdGlvbnM8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9hc2lzLmh0bWwiPm1vZF9hc2lzPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfY2dpLmh0bWwiPm1vZF9jZ2k8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9pbWFnZW1hcC5odG1sIj5tb2RfaW1hZ2VtYXA8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9pbmZvLmh0bWwiPm1vZF9pbmZvPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfbWltZS5odG1sIj5tb2RfbWltZTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX25lZ290aWF0aW9uLmh0bWwiPm1vZF9uZWdvdGlhdGlvbjwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3N0YXR1cy5odG1sIj5tb2Rfc3RhdHVzPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfYWN0aW9ucy5odG1sI2FjdGlvbiI+QWN0aW9uPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbWltZS5odG1sI2FkZGhhbmRsZXIiPkFkZEhhbmRsZXI8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9taW1lLmh0bWwjcmVtb3ZlaGFuZGxlciI+UmVtb3ZlSGFuZGxlcjwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3NldGhhbmRsZXIiPlNldEhhbmRsZXI8L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT4KCgogICAgPHA+QSAiaGFuZGxlciIgaXMgYW4gaW50ZXJuYWwgQXBhY2hlIHJlcHJlc2VudGF0aW9uIG9mIHRoZQogICAgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCB3aGVuIGEgZmlsZSBpcyBjYWxsZWQuIEdlbmVyYWxseSwgZmlsZXMKICAgIGhhdmUgaW1wbGljaXQgaGFuZGxlcnMsIGJhc2VkIG9uIHRoZSBmaWxlIHR5cGUuIE5vcm1hbGx5LCBhbGwKICAgIGZpbGVzIGFyZSBzaW1wbHkgc2VydmVkIGJ5IHRoZSBzZXJ2ZXIsIGJ1dCBjZXJ0YWluIGZpbGUgdHlwZXMKICAgIGFyZSAiaGFuZGxlZCIgc2VwYXJhdGVseS48L3A+CgogICAgPHA+SGFuZGxlcnMgbWF5IGFsc28gYmUgY29uZmlndXJlZCBleHBsaWNpdGx5LAogICAgYmFzZWQgb24gZWl0aGVyIGZpbGVuYW1lIGV4dGVuc2lvbnMgb3Igb24gbG9jYXRpb24sCiAgICB3aXRob3V0IHJlbGF0aW9uIHRvIGZpbGUgdHlwZS4gVGhpcyBpcwogICAgYWR2YW50YWdlb3VzIGJvdGggYmVjYXVzZSBpdCBpcyBhIG1vcmUgZWxlZ2FudCBzb2x1dGlvbiwgYW5kCiAgICBiZWNhdXNlIGl0IGFsc28gYWxsb3dzIGZvciBib3RoIGEgdHlwZSA8c3Ryb25nPmFuZDwvc3Ryb25nPiBhCiAgICBoYW5kbGVyIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCBhIGZpbGUuIChTZWUgYWxzbyA8YSBocmVmPSJtb2QvbW9kX21pbWUuaHRtbCNtdWx0aXBsZWV4dCI+RmlsZXMgd2l0aCBNdWx0aXBsZQogICAgRXh0ZW5zaW9uczwvYT4uKTwvcD4KCiAgICA8cD5IYW5kbGVycyBjYW4gZWl0aGVyIGJlIGJ1aWx0IGludG8gdGhlIHNlcnZlciBvciBpbmNsdWRlZCBpbgogICAgYSBtb2R1bGUsIG9yIHRoZXkgY2FuIGJlIGFkZGVkIHdpdGggdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9hY3Rpb25zLmh0bWwjYWN0aW9uIj5BY3Rpb248L2E+PC9jb2RlPiBkaXJlY3RpdmUuIFRoZQogICAgYnVpbHQtaW4gaGFuZGxlcnMgaW4gdGhlIHN0YW5kYXJkIGRpc3RyaWJ1dGlvbiBhcmUgYXMKICAgIGZvbGxvd3M6PC9wPgoKICAgIDx1bD4KICAgICAgPGxpPjxzdHJvbmc+ZGVmYXVsdC1oYW5kbGVyPC9zdHJvbmc+OiBTZW5kIHRoZSBmaWxlIHVzaW5nIHRoZQogICAgICA8Y29kZT5kZWZhdWx0X2hhbmRsZXIoKTwvY29kZT4sIHdoaWNoIGlzIHRoZSBoYW5kbGVyIHVzZWQgYnkKICAgICAgZGVmYXVsdCB0byBoYW5kbGUgc3RhdGljIGNvbnRlbnQuIChjb3JlKTwvbGk+CgogICAgICA8bGk+PHN0cm9uZz5zZW5kLWFzLWlzPC9zdHJvbmc+OiBTZW5kIGZpbGUgd2l0aCBIVFRQIGhlYWRlcnMKICAgICAgYXMgaXMuICg8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfYXNpcy5odG1sIj5tb2RfYXNpczwvYT48L2NvZGU+KTwvbGk+CgogICAgICA8bGk+PHN0cm9uZz5jZ2ktc2NyaXB0PC9zdHJvbmc+OiBUcmVhdCB0aGUgZmlsZSBhcyBhIENHSQogICAgICBzY3JpcHQuICg8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfY2dpLmh0bWwiPm1vZF9jZ2k8L2E+PC9jb2RlPik8L2xpPgoKICAgICAgPGxpPjxzdHJvbmc+aW1hcC1maWxlPC9zdHJvbmc+OiBQYXJzZSBhcyBhbiBpbWFnZW1hcCBydWxlCiAgICAgIGZpbGUuICg8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaW1hZ2VtYXAuaHRtbCI+bW9kX2ltYWdlbWFwPC9hPjwvY29kZT4pPC9saT4KCiAgICAgIDxsaT48c3Ryb25nPnNlcnZlci1pbmZvPC9zdHJvbmc+OiBHZXQgdGhlIHNlcnZlcidzCiAgICAgIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24uICg8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaW5mby5odG1sIj5tb2RfaW5mbzwvYT48L2NvZGU+KTwvbGk+CgogICAgICA8bGk+PHN0cm9uZz5zZXJ2ZXItc3RhdHVzPC9zdHJvbmc+OiBHZXQgdGhlIHNlcnZlcidzIHN0YXR1cwogICAgICByZXBvcnQuICg8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2Rfc3RhdHVzLmh0bWwiPm1vZF9zdGF0dXM8L2E+PC9jb2RlPik8L2xpPgoKICAgICAgPGxpPjxzdHJvbmc+dHlwZS1tYXA8L3N0cm9uZz46IFBhcnNlIGFzIGEgdHlwZSBtYXAgZmlsZSBmb3IKICAgICAgY29udGVudCBuZWdvdGlhdGlvbi4gKDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9uZWdvdGlhdGlvbi5odG1sIj5tb2RfbmVnb3RpYXRpb248L2E+PC9jb2RlPik8L2xpPgogICAgPC91bD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImV4YW1wbGVzIiBpZD0iZXhhbXBsZXMiPkV4YW1wbGVzPC9hPjwvaDI+CiAgICAKCiAgICA8aDM+PGEgbmFtZT0iZXhhbXBsZTEiIGlkPSJleGFtcGxlMSI+TW9kaWZ5aW5nIHN0YXRpYyBjb250ZW50IHVzaW5nIGEgQ0dJIHNjcmlwdDwvYT48L2gzPgogICAgICAKCiAgICAgIDxwPlRoZSBmb2xsb3dpbmcgZGlyZWN0aXZlcyB3aWxsIGNhdXNlIHJlcXVlc3RzIGZvciBmaWxlcyB3aXRoCiAgICAgIHRoZSA8Y29kZT5odG1sPC9jb2RlPiBleHRlbnNpb24gdG8gdHJpZ2dlciB0aGUgbGF1bmNoIG9mIHRoZQogICAgICA8Y29kZT5mb290ZXIucGw8L2NvZGU+IENHSSBzY3JpcHQuPC9wPgoKICAgICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkFjdGlvbiBhZGQtZm9vdGVyIC9jZ2ktYmluL2Zvb3Rlci5wbApBZGRIYW5kbGVyIGFkZC1mb290ZXIgLmh0bWw8L3ByZT4KCgogICAgICA8cD5UaGVuIHRoZSBDR0kgc2NyaXB0IGlzIHJlc3BvbnNpYmxlIGZvciBzZW5kaW5nIHRoZQogICAgICBvcmlnaW5hbGx5IHJlcXVlc3RlZCBkb2N1bWVudCAocG9pbnRlZCB0byBieSB0aGUKICAgICAgPGNvZGU+UEFUSF9UUkFOU0xBVEVEPC9jb2RlPiBlbnZpcm9ubWVudCB2YXJpYWJsZSkgYW5kIG1ha2luZwogICAgICB3aGF0ZXZlciBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucyBhcmUgZGVzaXJlZC48L3A+CgogICAgCiAgICA8aDM+PGEgbmFtZT0iZXhhbXBsZTIiIGlkPSJleGFtcGxlMiI+RmlsZXMgd2l0aCBIVFRQIGhlYWRlcnM8L2E+PC9oMz4KICAgICAgCgogICAgICA8cD5UaGUgZm9sbG93aW5nIGRpcmVjdGl2ZXMgd2lsbCBlbmFibGUgdGhlCiAgICAgIDxjb2RlPnNlbmQtYXMtaXM8L2NvZGU+IGhhbmRsZXIsIHdoaWNoIGlzIHVzZWQgZm9yIGZpbGVzIHdoaWNoCiAgICAgIGNvbnRhaW4gdGhlaXIgb3duIEhUVFAgaGVhZGVycy4gQWxsIGZpbGVzIGluIHRoZQogICAgICA8Y29kZT4vd2ViL2h0ZG9jcy9hc2lzLzwvY29kZT4gZGlyZWN0b3J5IHdpbGwgYmUgcHJvY2Vzc2VkIGJ5CiAgICAgIHRoZSA8Y29kZT5zZW5kLWFzLWlzPC9jb2RlPiBoYW5kbGVyLCByZWdhcmRsZXNzIG9mIHRoZWlyCiAgICAgIGZpbGVuYW1lIGV4dGVuc2lvbnMuPC9wPgoKICAgICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtEaXJlY3RvcnkgIi93ZWIvaHRkb2NzL2FzaXMiJmd0OwogICAgU2V0SGFuZGxlciBzZW5kLWFzLWlzCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCiAgICAKICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InByb2dyYW1tZXIiIGlkPSJwcm9ncmFtbWVyIj5Qcm9ncmFtbWVyJ3MgTm90ZTwvYT48L2gyPgogICAgCgogICAgPHA+SW4gb3JkZXIgdG8gaW1wbGVtZW50IHRoZSBoYW5kbGVyIGZlYXR1cmVzLCBhbiBhZGRpdGlvbiBoYXMKICAgIGJlZW4gbWFkZSB0byB0aGUgPGEgaHJlZj0iZGV2ZWxvcGVyL0FQSS5odG1sIj5BcGFjaGUgQVBJPC9hPiB0aGF0CiAgICB5b3UgbWF5IHdpc2ggdG8gbWFrZSB1c2Ugb2YuIFNwZWNpZmljYWxseSwgYSBuZXcgcmVjb3JkIGhhcwogICAgYmVlbiBhZGRlZCB0byB0aGUgPGNvZGU+cmVxdWVzdF9yZWM8L2NvZGU+IHN0cnVjdHVyZTo8L3A+CgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jIj5jaGFyICpoYW5kbGVyPC9wcmU+CgoKICAgIDxwPklmIHlvdSB3aXNoIHRvIGhhdmUgeW91ciBtb2R1bGUgZW5nYWdlIGEgaGFuZGxlciwgeW91IG5lZWQKICAgIG9ubHkgdG8gc2V0IDxjb2RlPnItJmd0O2hhbmRsZXI8L2NvZGU+IHRvIHRoZSBuYW1lIG9mIHRoZQogICAgaGFuZGxlciBhdCBhbnkgdGltZSBwcmlvciB0byB0aGUgPGNvZGU+aW52b2tlX2hhbmRsZXI8L2NvZGU+CiAgICBzdGFnZSBvZiB0aGUgcmVxdWVzdC4gSGFuZGxlcnMgYXJlIGltcGxlbWVudGVkIGFzIHRoZXkgd2VyZQogICAgYmVmb3JlLCBhbGJlaXQgdXNpbmcgdGhlIGhhbmRsZXIgbmFtZSBpbnN0ZWFkIG9mIGEgY29udGVudAogICAgdHlwZS4gV2hpbGUgaXQgaXMgbm90IG5lY2Vzc2FyeSwgdGhlIG5hbWluZyBjb252ZW50aW9uIGZvcgogICAgaGFuZGxlcnMgaXMgdG8gdXNlIGEgZGFzaC1zZXBhcmF0ZWQgd29yZCwgd2l0aCBubyBzbGFzaGVzLCBzbwogICAgYXMgdG8gbm90IGludmFkZSB0aGUgbWVkaWEgdHlwZSBuYW1lLXNwYWNlLjwvcD4KICA8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuL2VuL2hhbmRsZXIuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZXMvaGFuZGxlci5odG1sIiBocmVmbGFuZz0iZXMiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRXNwYfFvbCI+Jm5ic3A7ZXMmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9mci9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9oYW5kbGVyLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvaGFuZGxlci5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3poLWNuL2hhbmRsZXIuaHRtbCIgaHJlZmxhbmc9InpoLWNuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlNpbXBsaWZpZWQgQ2hpbmVzZSI+Jm5ic3A7emgtY24mbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudHM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy90cnVuay9oYW5kbGVyLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPkNvbW1lbnRzIGFyZSBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIGF0IHRoZSBtb21lbnQuPFwvZGl2PicpOwogICAgfQp9KSh3aW5kb3csIGRvY3VtZW50KTsKLy8tLT48IV1dPjwvc2NyaXB0PjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAyMDE3IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5MaWNlbnNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=