PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlcyIgeG1sOmxhbmc9ImVzIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5N82R1bG9zIGRlIE11bHRpUHJvY2VzYW1pZW50byAoTVBNcykgLSBTZXJ2aWRvciBIVFRQIEFwYWNoZSBWZXJzafNuIDIuNTwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk3zZHVsb3M8L2E+IHwgPGEgaHJlZj0iLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZhczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+UHJlZ3VudGFzIEZyZWN1ZW50ZXM8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zYXJpbzwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+TWFwYSBkZWwgc2l0aW8gd2ViPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+VmVyc2nzbiAyLjUgZGVsIFNlcnZpZG9yIEhUVFAgQXBhY2hlPC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPlNlcnZpZG9yIEhUVFA8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YWNp8248L2E+ICZndDsgPGEgaHJlZj0iLi8iPlZlcnNp824gMi41PC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5N82R1bG9zIGRlIE11bHRpUHJvY2VzYW1pZW50byAoTVBNcyk8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+SWRpb21hcyBkaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4vZGUvbXBtLmh0bWwiIGhyZWZsYW5nPSJkZSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJEZXV0c2NoIj4mbmJzcDtkZSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VuL21wbS5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9tcG0uaHRtbCIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvbXBtLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9tcG0uaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL21wbS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL21wbS5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3poLWNuL21wbS5odG1sIiBocmVmbGFuZz0iemgtY24iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iU2ltcGxpZmllZCBDaGluZXNlIj4mbmJzcDt6aC1jbiZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdXRvZmRhdGUiPkVzdGEgdHJhZHVjY2nzbiBwb2Ry7WEgZXN0YXIKICAgICAgICAgICAgb2Jzb2xldGEuIENvbnN1bHRlIGxhIHZlcnNp824gZW4gaW5nbOlzIGRlIGxhCiAgICAgICAgICAgIGRvY3VtZW50YWNp824gcGFyYSBjb21wcm9iYXIgc2kgc2UgaGFuIHByb2R1Y2lkbyBjYW1iaW9zCiAgICAgICAgICAgIHJlY2llbnRlbWVudGUuPC9kaXY+Cgo8cD5Fc3RlIGRvY3VtZW50byBkZXNjcmliZSBxdWUgZXMgdW4gTfNkdWxvIGRlIE11bHRpcHJvY2VzYW1pZW50byB5CmNvbW8gbG9zIHVzYSBBcGFjaGUuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNpbnRyb2R1Y3Rpb24iPkludHJvZHVjY2nzbjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2Nob29zaW5nIj5D821vIEVsZWdpciB1biBNUE08L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNkZWZhdWx0cyI+TVBNIHBvciBkZWZlY3RvPC9hPjwvbGk+CjwvdWw+PGgzPkNvbnN1bHRlIHRhbWJp6W48L2gzPjx1bCBjbGFzcz0ic2VlYWxzbyI+PGxpPjxhIGhyZWY9IiNjb21tZW50c19zZWN0aW9uIj5Db21lbnRhcmlvczwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iaW50cm9kdWN0aW9uIiBpZD0iaW50cm9kdWN0aW9uIj5JbnRyb2R1Y2Np8248L2E+PC9oMj4KCiAgICA8cD5BcGFjaGUgZXN04SBkaXNl8WFkbyBwYXJhIHNlciB1biBzZXJ2aWRvciB3ZWIgcG90ZW50ZQogICAgeSBmbGV4aWJsZSBxdWUgcHVlZGEgZnVuY2lvbmFyIGVuIGxhIG3hcyBhbXBsaWEgdmFyaWVkYWQgZGUKICAgIHBsYXRhZm9ybWFzIHkgZW50b3Jub3MuIExhcyBkaWZlcmVudGVzIHBsYXRhZm9ybWFzIHkgbG9zCiAgICBkaWZlcmVudGVzIGVudG9ybm9zLCBoYWNlbiBxdWUgYSBtZW51ZG8gc2VhbiBuZWNlc2FyaWFzIGRpZmVyZW50ZXMKICAgIGNhcmFjdGVy7XN0aWNhcyBvIGZ1bmNpb25hbGlkYWRlcywgbyBxdWUgdW5hIG1pc21hCiAgICBjYXJhY3Rlcu1zdGljYSBvIGZ1bmNpb25hbGlkYWQgc2VhIGltcGxlbWVudGFkYSBkZSBkaWZlcmVudGUKICAgIG1hbmVyYSBwYXJhIG9idGVuZXIgdW5hIG1heW9yIGVmaWNpZW5jaWEuIEFwYWNoZSBzZSBoYSBhZGFwdGFkbwogICAgc2llbXByZSBhIHVuYSBncmFuIHZhcmllZGFkIGRlIGVudG9ybm9zIGEgdHJhdulzIGRlIHN1CiAgICBkaXNl8W8gbW9kdWxhci4gRXN0ZSBkaXNl8W8gcGVybWl0ZSBhIGxvcwogICAgYWRtaW5pc3RyYWRvcmVzIGRlIHNpdGlvcyB3ZWIgZWxlZ2lyIHF1ZSBjYXJhY3Rlcu1zdGljYXMgdmFuCiAgICBhIHNlciBpbmNsdWlkYXMgZW4gZWwgc2Vydmlkb3Igc2VsZWNjaW9uYW5kbyBxdWUgbfNkdWxvcyBzZQogICAgdmFuIGEgY2FyZ2FyLCB5YSBzZWEgYWwgY29tcGlsYXIgbyBhbCBlamVjdXRhciBlbCBzZXJ2aWRvci48L3A+CgogICAgPHA+QXBhY2hlIDIuMCBleHRpZW5kZSBlc3RlIGRpc2XxbyBtb2R1bGFyIGhhc3RhIGxhcwogICAgZnVuY2lvbmVzIG3hcyBi4XNpY2FzIGRlIHVuIHNlcnZpZG9yIHdlYi4gRWwgc2Vydmlkb3IKICAgIHZpZW5lIGNvbiB1bmEgc2VyaWUgZGUgTfNkdWxvcyBkZSBNdWx0aVByb2Nlc2FtaWVudG8gcXVlIHNvbgogICAgcmVzcG9uc2FibGVzIGRlIGNvbmVjdGFyIGNvbiBsb3MgcHVlcnRvcyBkZSByZWQgZGUgbGEKICAgIG3hcXVpbmEsIGFjY2VwdGFyIGxhcyBwZXRpY2lvbmVzLCB5IGdlbmVyYXIgbG9zIHByb2Nlc29zIGhpam8KICAgIHF1ZSBzZSBlbmNhcmdhbiBkZSBzZXJ2aXJsYXMuPC9wPgoKICAgIDxwPkxhIGV4dGVuc2nzbiBkZWwgZGlzZfFvIG1vZHVsYXIgYSBlc3RlIG5pdmVsIGRlbAogICAgc2Vydmlkb3Igb2ZyZWNlIGRvcyBiZW5lZmljaW9zIGltcG9ydGFudGVzOjwvcD4KCiAgICA8dWw+CiAgICAgIDxsaT5BcGFjaGUgcHVlZGUgc29wb3J0YXIgZGUgdW5hIGZvcm1hIG3hcyBm4WNpbCB5CiAgICAgIGVmaWNpZW50ZSB1bmEgYW1wbGlhIHZhcmllZGFkIGRlIHNpc3RlbWFzIG9wZXJhdGl2b3MuIEVuCiAgICAgIGNvbmNyZXRvLCBsYSB2ZXJzafNuIGRlIFdpbmRvd3MgZGUgQXBhY2hlIGVzIG11Y2hvIG3hcwogICAgICBlZmljaWVudGUsIHBvcnF1ZSBlbCBt82R1bG8gPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbXBtX3dpbm50Lmh0bWwiPm1wbV93aW5udDwvYT48L2NvZGU+CiAgICAgIHB1ZWRlIHVzYXIgZnVuY2lvbmFsaWRhZGVzIG5hdGl2YXMgZGUgcmVkIGVuIGx1Z2FyIGRlIHVzYXIgbGEKICAgICAgY2FwYSBQT1NJWCBjb21vIGhhY2UgQXBhY2hlIDEuMy4gRXN0ZSBiZW5lZmljaW8gc2UgZXh0aWVuZGUKICAgICAgdGFtYmnpbiBhIG90cm9zIHNpc3RlbWFzIG9wZXJhdGl2b3MgcXVlIGltcGxlbWVudGFuIHN1cwogICAgICByZXNwZWN0aXZvcyBNUE1zLjwvbGk+CgogICAgICA8bGk+RWwgc2Vydmlkb3IgcHVlZGUgcGVyc29uYWxpemFyc2UgbWVqb3IgcGFyYSBsYXMgbmVjZXNpZGFkZXMKICAgICAgZGUgY2FkYSBzaXRpbyB3ZWIuIFBvciBlamVtcGxvLCBsb3Mgc2l0aW9zIHdlYiBxdWUgbmVjZXNpdGFuCiAgICAgIG3hcyBxdWUgbmFkYSBlc2NhbGliaWxkYWQgcHVlZGVuIHVzYXIgdW4gTVBNIGhlYnJhZG8gY29tbwogICAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC93b3JrZXIuaHRtbCI+d29ya2VyPC9hPjwvY29kZT4sIG1pZW50cmFzIHF1ZSBsb3Mgc2l0aW9zIHdlYiBxdWUKICAgICAgcmVxdWllcmFuIHBvciBlbmNpbWEgZGUgb3RyYXMgY29zYXMgZXN0YWJpbGlkYWQgbyBjb21wYXRpYmlsaWRhZAogICAgICBjb24gc29mdHdhcmUgYW50aWd1byBwdWVkZW4gdXNhcgogICAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9wcmVmb3JrLmh0bWwiPnByZWZvcms8L2E+PC9jb2RlPi4gQWRlbeFzLCBzZSBwdWVkZW4gY29uZmlndXJhcgogICAgICBmdW5jaW9uYWxpZGFkZXMgZXNwZWNpYWxlcyBjb21vIHNlcnZpciBkaWZlcmVudGVzIGhvc3RzIGNvbgogICAgICBkaWZlcmVudGVzIGlkZW50aWZpY2Fkb3JlcyBkZSB1c3VhcmlvCiAgICAgICg8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9wZXJjaGlsZC5odG1sIj5wZXJjaGlsZDwvYT48L2NvZGU+KS48L2xpPgogICAgPC91bD4KCiAgICA8cD5BIG5pdmVsIGRlIHVzdWFyaW8sIGxvcyBNUE1zIHNvbiBjb21vIGN1YWxxdWllciBvdHJvCiAgICBt82R1bG8gZGUgQXBhY2hlLiBMYSBkaWZlcmVuY2lhIG3hcyBpbXBvcnRhbnRlIGVzIHF1ZQogICAgc29sbyB1biBNUE0gcHVlZGUgZXN0YXIgY2FyZ2FkbyBlbiBlbCBzZXJ2aWRvciBlbiB1biBkZXRlcm1pbmFkbwogICAgbW9tZW50by4gTGEgbGlzdGEgZGUgTVBNcyBkaXNwb25pYmxlcyBlc3ThIGVuIGxhIDxhIGhyZWY9Im1vZC8iPnNlY2Np824g7W5kaWNlIGRlIE3zZHVsb3M8L2E+LjwvcD4KCjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iY2hvb3NpbmciIGlkPSJjaG9vc2luZyI+Q/NtbyBFbGVnaXIgdW4gTVBNPC9hPjwvaDI+CgogICAgPHA+TG9zIE1QTXMgZGViZW4gZWxlZ2lyc2UgZHVyYW50ZSBlbCBwcm9jZXNvIGRlCiAgICBjb25maWd1cmFjafNuLCB5IGRlYmVuIHNlciBjb21waWxhZG9zIGVuIGVsIHNlcnZpZG9yLiBMb3MKICAgIGNvbXBpbGFkb3JlcyBzb24gY2FwYWNlcyBkZSBvcHRpbWl6YXIgbXVjaGFzIGZ1bmNpb25lcyBzaSBzZSB1c2FuCiAgICBoZWJyYXMsIHBlcm8gc29sbyBzaSBzZSBzYWJlIHF1ZSBzZSBlc3ThbiB1c2FuZG8gaGVicmFzLiBDb21vCiAgICBhbGd1bm9zIE1QTSB1c2FuIGhlYnJhcyBlbiBVbml4IHkgb3Ryb3Mgbm8sIEFwYWNoZSB0ZW5kcuEgdW4KICAgIG1lam9yIHJlbmRpbWllbnRvIHNpIGVsIE1QTSBlcyBlbGVnaWRvIGVuIGVsIG1vbWVudG8gZGUgY29tcGlsYXIgeQogICAgZXN04SBpbmNvcnBvcmFkbyBlbiBlbCBzZXJ2aWRvci48L3A+CgogICAgPHA+UGFyYSBlbGVnaXIgZWwgTVBNIGRlc2VhZG8sIHVzZSBlbCBhcmd1bWVudG8gLS13aXRoLW1wbT0KICAgIDxlbT5OQU1FPC9lbT4gY29uIGVsIHNjcmlwdCAuL2NvbmZpZ3VyZS4gIDxlbT5OQU1FPC9lbT4gZXMgZWwKICAgIG5vbWJyZSBkZWwgTVBNIGRlc2VhZG8uPC9wPgoKICAgIDxwPlVuYSB2ZXogcXVlIGVsIHNlcnZpZG9yIGhhIHNpZG8gY29tcGlsYWRvLCBlcyBwb3NpYmxlCiAgICBkZXRlcm1pbmFyIHF1ZSBNUE0gaGEgc2lkbyBlbGVnaWRvIHVzYW5kbyA8Y29kZT4uL2h0dHBkCiAgICAtbDwvY29kZT4uIEVzdGUgY29tYW5kbyBsaXN0YSB0b2RvcyBsb3MgbfNkdWxvcyBjb21waWxhZG9zIGVuCiAgICBlbCBzZXJ2aWRvciwgaW5jbHVpZG8gZW4gTVBNLjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJkZWZhdWx0cyIgaWQ9ImRlZmF1bHRzIj5NUE0gcG9yIGRlZmVjdG88L2E+PC9oMj4KCjxwPkVuIGxhIHNpZ3VpZW50ZSB0YWJsYSBzZSBtdWVzdHJhbiBsb3MgTVBNcyBwb3IgZGVmZWN0byBwYXJhIHZhcmlvcwpzaXN0ZW1hcyBvcGVyYXRpdm9zLiAgRXN0b3Mgc2Vy4W4gbG9zIE1QTSBzZWxlY2Npb25hZG9zIHNpIG5vIHNlCmVzcGVjaWZpY2EgbG8gY29udHJhcmlvIGFsIGNvbXBpbGFyLjwvcD4KCjx0YWJsZT4KCjx0cj48dGQ+QmVPUzwvdGQ+PHRkPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL2Jlb3MuaHRtbCI+YmVvczwvYT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRkPk5ldHdhcmU8L3RkPjx0ZD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tcG1fbmV0d2FyZS5odG1sIj5tcG1fbmV0d2FyZTwvYT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRkPk9TLzI8L3RkPjx0ZD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tcG10X29zMi5odG1sIj5tcG10X29zMjwvYT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRkPlVuaXg8L3RkPjx0ZD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9wcmVmb3JrLmh0bWwiPnByZWZvcms8L2E+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0ZD5XaW5kb3dzPC90ZD48dGQ+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbXBtX3dpbm50Lmh0bWwiPm1wbV93aW5udDwvYT48L2NvZGU+PC90ZD48L3RyPgo8L3RhYmxlPgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPklkaW9tYXMgZGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2RlL21wbS5odG1sIiBocmVmbGFuZz0iZGUiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRGV1dHNjaCI+Jm5ic3A7ZGUmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lbi9tcG0uaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZXMvbXBtLmh0bWwiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL21wbS5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvbXBtLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9tcG0uaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9tcG0uaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi96aC1jbi9tcG0uaHRtbCIgaHJlZmxhbmc9InpoLWNuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlNpbXBsaWZpZWQgQ2hpbmVzZSI+Jm5ic3A7emgtY24mbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tZW50YXJpb3M8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy90cnVuay9tcG0uaHRtbCc7CihmdW5jdGlvbih3LCBkKSB7CiAgICBpZiAody5sb2NhdGlvbi5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpID09ICJodHRwZC5hcGFjaGUub3JnIikgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+PFwvZGl2PicpOwogICAgICAgIHZhciBzID0gZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsKICAgICAgICBzLnNyYyA9ICdodHRwczovL2NvbW1lbnRzLmFwYWNoZS5vcmcvc2hvd19jb21tZW50cy5sdWE/c2l0ZT0nICsgY29tbWVudHNfc2hvcnRuYW1lICsgJyZwYWdlPScgKyBjb21tZW50c19pZGVudGlmaWVyOwogICAgICAgIChkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0gfHwgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZChzKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkxpY2VuY2lhIGJham8gbG9zIHTpcm1pbm9zIGRlIGxhIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk3zZHVsb3M8L2E+IHwgPGEgaHJlZj0iLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZhczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+UHJlZ3VudGFzIEZyZWN1ZW50ZXM8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zYXJpbzwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+TWFwYSBkZWwgc2l0aW8gd2ViPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==