PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5GaWNoaWVycyBkZSBjb25maWd1cmF0aW9uIC0gU2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNDwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FpcmU8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPlNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjQ8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZmVhdGhlci5wbmciIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+U2VydmV1ciBIVFRQPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5WZXJzaW9uIDIuNDwvYT48L2Rpdj48ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPjxkaXYgaWQ9InByZWFtYmxlIj48aDE+RmljaGllcnMgZGUgY29uZmlndXJhdGlvbjwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi9kZS9jb25maWd1cmluZy5odG1sIiBocmVmbGFuZz0iZGUiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRGV1dHNjaCI+Jm5ic3A7ZGUmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lbi9jb25maWd1cmluZy5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9mci9jb25maWd1cmluZy5odG1sIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvY29uZmlndXJpbmcuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2NvbmZpZ3VyaW5nLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvY29uZmlndXJpbmcuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj4KCjxwPkNlIGRvY3VtZW50IGTpY3JpdCBsZXMgZmljaGllcnMgdXRpbGlz6XMgcG91ciBjb25maWd1cmVyCmxlIFNlcnZldXIgSFRUUCBBcGFjaGUuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNtYWluIj5GaWNoaWVycyBkZSBjb25maWd1cmF0aW9uIHByaW5jaXBhdXg8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNzeW50YXgiPlN5bnRheGUgZGVzIGZpY2hpZXJzIGRlIGNvbmZpZ3VyYXRpb248L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNtb2R1bGVzIj5Nb2R1bGVzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjc2NvcGUiPlBvcnTpZSBkZXMgZGlyZWN0aXZlczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2h0YWNjZXNzIj5GaWNoaWVycyAuaHRhY2Nlc3M8L2E+PC9saT4KPC91bD48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudGFpcmVzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJtYWluIiBpZD0ibWFpbiI+RmljaGllcnMgZGUgY29uZmlndXJhdGlvbiBwcmluY2lwYXV4PC9hPjwvaDI+CiAgICAKICAgIDx0YWJsZSBjbGFzcz0icmVsYXRlZCI+PHRyPjx0aD5Nb2R1bGVzIEFwcGFyZW506XM8L3RoPjx0aD5EaXJlY3RpdmVzIEFwcGFyZW506WVzPC90aD48L3RyPjx0cj48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfbWltZS5odG1sIj5tb2RfbWltZTwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmZGVmaW5lIj4mbHQ7SWZEZWZpbmUmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaW5jbHVkZSI+SW5jbHVkZTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX21pbWUuaHRtbCN0eXBlc2NvbmZpZyI+VHlwZXNDb25maWc8L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT4KCiAgICA8cD5MYSBjb25maWd1cmF0aW9uIGR1IHNlcnZldXIgSFRUUCBBcGFjaGUgZXN0IGVmZmVjdHXpZSBlbiBwbGHnYW50IGRlcyA8YSBocmVmPSJtb2QvZGlyZWN0aXZlcy5odG1sIj5kaXJlY3RpdmVzPC9hPiBkYW5zIGRlcyBmaWNoaWVycyBkZQogICAgY29uZmlndXJhdGlvbiBhdSBmb3JtYXQgdGV4dGUuIExlIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBwcmluY2lwYWwgc2Ugbm9tbWUKICAgIGVuIGfpbulyYWwKICAgIDxjb2RlPmh0dHBkLmNvbmY8L2NvZGU+LiBMYSBsb2NhbGlzYXRpb24gZGUgY2UgZmljaGllciBlc3QgZOlmaW5pZQogICAg4CBsYSBjb21waWxhdGlvbiwgbWFpcyBwZXV0IOp0cmUgcmVk6WZpbmllIOAgbCdhaWRlIGRlIGwnb3B0aW9uCiAgICBkZSBsaWduZSBkZSBjb21tYW5kZSA8Y29kZT4tZjwvY29kZT4uIEVuIG91dHJlLCBkJ2F1dHJlcyBmaWNoaWVycyBkZQogICAgY29uZmlndXJhdGlvbiBwZXV2ZW50IOp0cmUgYWpvdXTpcyDgIGwnYWlkZSBkZSBsYSBkaXJlY3RpdmUKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpbmNsdWRlIj5JbmNsdWRlPC9hPjwvY29kZT4sIGV0IGRlcyBjYXJhY3TocmVzIGRlCiAgICByZW1wbGFjZW1lbnQKICAgIHBldXZlbnQg6nRyZSB1dGlsaXPpcyBwb3VyIGluY2x1cmUgZGUgbm9tYnJldXggZmljaGllcnMgZGUgY29uZmlndXJhdGlvbi4KICAgIERlcyBkaXJlY3RpdmVzIGRlIHRvdXMgdHlwZXMgcGV1dmVudCDqdHJlIHBsYWPpZXMgZGFucyBjaGFjdW4gZGUgY2VzIGZpY2hpZXJzCiAgICBkZSBjb25maWd1cmF0aW9uLiAgTGVzIG1vZGlmaWNhdGlvbnMgZGFucyBsZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbgogICAgcHJpbmNpcGF1eCBuZSBzb250IHByaXNlcyBlbiBjb21wdGUgcGFyIGh0dHBkIHF1ZSBsb3JzcXVlIGxlIHNlcnZldXIKICAgIGVzdCBk6W1hcnLpIG91IHJlZOltYXJy6S48L3A+CgogICAgPHA+TGUgc2VydmV1ciBsaXQgYXVzc2kgdW4gZmljaGllciBjb250ZW5hbnQgbGVzIHR5cGVzIGRlIGRvY3VtZW50IG1pbWU7CiAgICBjZSBmaWNoaWVyIGVzdCBk6WZpbmkgcGFyIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbWltZS5odG1sI3R5cGVzY29uZmlnIj5UeXBlc0NvbmZpZzwvYT48L2NvZGU+LAogICAgZXQgc2Ugbm9tbWUgPGNvZGU+bWltZS50eXBlczwvY29kZT4gcGFyIGTpZmF1dC48L3A+CiAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzeW50YXgiIGlkPSJzeW50YXgiPlN5bnRheGUgZGVzIGZpY2hpZXJzIGRlIGNvbmZpZ3VyYXRpb248L2E+PC9oMj4KICAgIAoKICAgIDxwPkxlcyBmaWNoaWVycyBkZSBjb25maWd1cmF0aW9uIGRlIGh0dHBkIGNvbnRpZW5uZW50IHVuZSBkaXJlY3RpdmUKICAgIHBhciBsaWduZS4KICAgIE9uIHBldXQgdXRpbGlzZXIgbCdhbnRpLXNsYXNoICJcIiBjb21tZSBkZXJuaWVyIGNhcmFjdOhyZSBkJ3VuZSBsaWduZQogICAgcG91ciBpbmRpcXVlciBxdWUgbGEgZGlyZWN0aXZlIGNvbnRpbnVlIOAgbGEgbGlnbmUgc3VpdmFudGUuCiAgICBJbCBuZSBkb2l0IHkgYXZvaXIgYXVjdW4gY2FyYWN06HJlIG5pIGVzcGFjZSBlbnRyZSBsJ2FudGktc2xhc2ggZXQKICAgIGxhIGZpbiBkZSBsYSBsaWduZS48L3A+CgogICAgPHA+TGVzIGFyZ3VtZW50cyBkZXMgZGlyZWN0aXZlcyBzb250IHPpcGFy6XMgbGVzIHVucyBkZXMgYXV0cmVzIHBhcgogICAgZGVzIGVzcGFjZXMuIFNpIHVuIGFyZ3VtZW50IGNvbnRpZW50IGRlcyBlc3BhY2VzLCBpbCBkb2l0IOp0cmUKICAgIGVudG91cukgZGUgZ3VpbGxlbWV0cy48L3A+CgogICAgPHA+TGVzIGRpcmVjdGl2ZXMgZGFucyBsZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbiBuZSBzb250IHBhcwogICAgc2Vuc2libGVzIOAgbGEgY2Fzc2UsIG1haXMgbGV1cnMgYXJndW1lbnRzIGxlIHNvbnQgc291dmVudC4gTGVzIGxpZ25lcwogICAgcXVpIGTpYnV0ZW50IHBhciBsZSBjYXJhY3TocmUgIiMiIHNvbnQgaW50ZXJwcul06WVzIGNvbW1lIGRlcwogICAgY29tbWVudGFpcmVzLCBldCBzb250IGlnbm9y6WVzLiBMZXMgY29tbWVudGFpcmVzIG5lIGRvaXZlbnQKICAgIDxzdHJvbmc+cGFzPC9zdHJvbmc+IGFwcGFyYe50cmUgc3VyIGxhIG3qbWUgbGlnbmUgcXUndW5lIGRpcmVjdGl2ZQogICAgZGUgY29uZmlndXJhdGlvbi4gTGVzIGVzcGFjZXMgcHLpY+lkYW50IHVuZSBkaXJlY3RpdmUKICAgIHNvbnQgaWdub3Lpczsgdm91cyBwb3V2ZXogcGFyIGNvbnPpcXVlbnQgaW5kZW50ZXIgbGVzIGRpcmVjdGl2ZXMKICAgIGFmaW4gZCdhbelsaW9yZXIgbGEgbGlzaWJpbGl06S4gTGVzIGxpZ25lcyB2aWRlcyBzb250CiAgICBhdXNzaSBpZ25vcullcy48L3A+CgogICAgPHA+TGVzIHZhbGV1cnMgZGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgb3UgZGVzIHZhcmlhYmxlcwogICAgZOlmaW5pZXMgdmlhIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGVmaW5lIj5EZWZpbmU8L2E+PC9jb2RlPiBwZXV2ZW50IOp0cmUgdXRpbGlz6WVzIGRhbnMgbGUKICAgIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBlbiB1dGlsaXNhbnQgbGEgc3ludGF4ZQogICAgPGNvZGU+JHtWQVJ9PC9jb2RlPi4gU2kgIlZBUiIgZXN0IGxlIG5vbSBkJ3VuZSB2YXJpYWJsZSB2YWxpZGUsIGxhCiAgICB2YWxldXIgZGUgbGEgdmFyaWFibGUgZXN0IGFsb3JzIHN1YnN0aXR16WUg4CBsYSBjaGHubmUKICAgIDxjb2RlPiR7VkFSfTwvY29kZT4sIGV0IGxlIHByb2Nlc3N1cyBkZSBsZWN0dXJlIGR1IGZpY2hpZXIgZGUKICAgIGNvbmZpZ3VyYXRpb24gY29udGludWUgY29tbWUgc2kgbGEgY2hh7m5lIGNvcnJlc3BvbmRhbnQg4CBsYSB2YWxldXIKICAgIGRlIGxhIHZhcmlhYmxlIHMneSDpdGFpdCB0cm91dullIGxpdHTpcmFsZW1lbnQuIExlcyB2YXJpYWJsZXMgZOlmaW5pZXMKICAgIHZpYSBsYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RlZmluZSI+RGVmaW5lPC9hPjwvY29kZT4KICAgIGwnZW1wb3J0ZW50IHN1ciBsZXMgYXV0cmVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZHUgc2hlbGwuIFNpIGxhCiAgICB2YXJpYWJsZSAiVkFSIiBuJ2VzdCBwYXMgdHJvdXbpZSwgbGEgY2hh7m5lIDxjb2RlPiR7VkFSfTwvY29kZT4KICAgIG4nZXN0IHBhcyBtb2RpZmnpZSwgZXQgdW4gYXZlcnRpc3NlbWVudCBlc3QgZW5yZWdpc3Ry6SBkYW5zIGxlCiAgICBqb3VybmFsLiBMZSBjYXJhY3TocmUgIjoiIGVzdCBpbnRlcmRpdCBkYW5zIGxlcyBub21zIGRlIHZhcmlhYmxlcwogICAgYWZpbiBkJ+l2aXRlciB0b3V0IGNvbmZsaXQgYXZlYyBsYSBzeW50YXhlIGRlIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcmV3cml0ZS5odG1sI3Jld3JpdGVtYXAiPlJld3JpdGVNYXA8L2E+PC9jb2RlPi48L3A+CgogICAgPHA+U2V1bGVzIGxlcyB2YXJpYWJsZXMgZCdlbnZpcm9ubmVtZW50IGR1IHNoZWxsIGTpZmluaWVzIGF2YW50IGxlIGTpbWFycmFnZQogICAgZHUgc2VydmV1ciBwZXV2ZW50IOp0cmUgdXRpbGlz6WVzIGRhbnMgbGVzIGV4dGVuc2lvbnMuCiAgICBMZXMgdmFyaWFibGVzIGQnZW52aXJvbm5lbWVudAogICAgZOlmaW5pZXMgZGFucyBsZSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gbHVpLW3qbWUsIHBhciBleGVtcGxlIGF2ZWMgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2Vudi5odG1sI3NldGVudiI+U2V0RW52PC9hPjwvY29kZT4sIHByZW5uZW50IGVmZmV0IHRyb3AgdGFyZCBwb3VyCiAgICBwb3V2b2lyIOp0cmUgdXRpbGlz6WVzIGRhbnMgbGVzIGV4dGVuc2lvbnMgYXUgc2VpbiBkdSBmaWNoaWVyIGRlCiAgICBjb25maWd1cmF0aW9uLjwvcD4KCiAgICA8cD5MYSBsb25ndWV1ciBtYXhpbWFsZSBkJ3VuZSBsaWduZSBkYW5zIHVuIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbgogICAgbm9ybWFsLCBhcHLocyBzdWJzdGl0dXRpb24gZGVzIHZhcmlhYmxlcyBldCBmdXNpb24gZGVzIGxpZ25lcwogICAgaW50ZXJyb21wdWVzLCBlc3QgYXBwcm94aW1hdGl2ZW1lbnQgZGUgMTYgTW8uIERhbnMgbGVzIDxhIGhyZWY9ImNvbmZpZ3VyaW5nLmh0bWwjaHRhY2Nlc3MiPmZpY2hpZXJzIC5odGFjY2VzczwvYT4sIGxhIGxvbmd1ZXVyCiAgICBtYXhpbWFsZSBlc3QgZGUgODE5MCBjYXJhY3TocmVzLjwvcD4KCiAgICA8cD5Wb3VzIHBvdXZleiB26XJpZmllciBsJ2Fic2VuY2UgZCdlcnJldXJzIGRlIHN5bnRheGUgZGFucyB2b3MgZmljaGllcnMKICAgIGRlIGNvbmZpZ3VyYXRpb24gc2FucyBk6W1hcnJlciBsZSBzZXJ2ZXVyIOAgbCdhaWRlIGRlIGxhIGNvbW1hbmRlCiAgICA8Y29kZT5hcGFjaGVjdGwgY29uZmlndGVzdDwvY29kZT4gb3UgZGUgbCdvcHRpb24gZGUgbGlnbmUgZGUgY29tbWFuZGUKICAgIDxjb2RlPi10PC9jb2RlPi48L3A+CgogICAgPHA+Vm91cyBwb3V2ZXogdXRpbGlzZXIgbGEgZOlmaW5pdGlvbiA8Y29kZT4tRERVTVBfQ09ORklHPC9jb2RlPiBkZQogICAgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2luZm8uaHRtbCI+bW9kX2luZm88L2E+PC9jb2RlPiBwb3VyIGFmZmljaGVyIGxhIGNvbmZpZ3VyYXRpb24gYXZlYyB0b3VzCiAgICBsZXMgZmljaGllcnMgaW5jbHVzIGV0IGxlcyB2YXJpYWJsZXMgZCdlbnZpcm9ubmVtZW50IOl2YWx16WVzLCB0b3VzCiAgICBsZXMgY29tbWVudGFpcmVzIGV0IGxlcyBzZWN0aW9ucyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZkZWZpbmUiPiZsdDtJZkRlZmluZSZndDs8L2E+PC9jb2RlPiBldCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZtb2R1bGUiPiZsdDtJZk1vZHVsZSZndDs8L2E+PC9jb2RlPiBub24gYWN0aXZlcyBheWFudAogICAg6XTpIHN1cHByaW3pcy4gQ2VwZW5kYW50LCBsYSBzb3J0aWUgbmUgcmVmbOh0ZQogICAgcGFzIGxlcyBmdXNpb25zIG91IOljcmFzZW1lbnRzIHBvdXZhbnQgaW50ZXJ2ZW5pciBlbiBjYXMgZGUKICAgIGTpZmluaXRpb25zIG11bHRpcGxlcyBkZSBkaXJlY3RpdmVzLjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9Im1vZHVsZXMiIGlkPSJtb2R1bGVzIj5Nb2R1bGVzPC9hPjwvaDI+CiAgICAKCiAgICA8dGFibGUgY2xhc3M9InJlbGF0ZWQiPjx0cj48dGg+TW9kdWxlcyBBcHBhcmVudOlzPC90aD48dGg+RGlyZWN0aXZlcyBBcHBhcmVudOllczwvdGg+PC90cj48dHI+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3NvLmh0bWwiPm1vZF9zbzwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmbW9kdWxlIj4mbHQ7SWZNb2R1bGUmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2Rfc28uaHRtbCNsb2FkbW9kdWxlIj5Mb2FkTW9kdWxlPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgogICAgPHA+aHR0cGQgZXN0IHVuIHNlcnZldXIgbW9kdWxhaXJlLiBDZWNpIGltcGxpcXVlIHF1ZSBzZXVsZXMgbGVzCiAgICBmb25jdGlvbm5hbGl06XMgbGVzIHBsdXMgY291cmFudGVzIHNvbnQgaW5jbHVzZXMgZGFucyBsZSBzZXJ2ZXVyIGRlIGJhc2UuCiAgICBMZXMgZm9uY3Rpb25uYWxpdOlzIOl0ZW5kdWVzIHNvbnQgZm91cm5pZXMg4CBsJ2FpZGUgZGUgPGEgaHJlZj0ibW9kLyI+bW9kdWxlczwvYT4gcXVpIHBldXZlbnQg6nRyZSBjaGFyZ+lzIGRhbnMgaHR0cGQuCiAgICBQYXIgZOlmYXV0LCB1biBqZXUgZGUgPGEgaHJlZj0ibW9kL21vZHVsZS1kaWN0Lmh0bWwjU3RhdHVzIj5tb2R1bGVzIGRlIGJhc2U8L2E+IGVzdCBpbmNsdXMgZGFucyBsZQogICAgc2VydmV1ciDgIGxhIGNvbXBpbGF0aW9uLiBTaSBsZSBzZXJ2ZXVyIGVzdCBjb21waWzpIGRlIGZh529uIOAgdXRpbGlzZXIKICAgIGxlcyA8YSBocmVmPSJkc28uaHRtbCI+bW9kdWxlcyBjaGFyZ+lzIGR5bmFtaXF1ZW1lbnQ8L2E+LAogICAgYWxvcnMgbGVzIG1vZHVsZXMgcGV1dmVudCDqdHJlIGNvbXBpbOlzIHPpcGFy6W1lbnQgZXQgY2hhcmfpcyDgCiAgICBuJ2ltcG9ydGUgcXVlbCBtb21lbnQg4CBsJ2FpZGUgZGUgbGEgZGlyZWN0aXZlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2Rfc28uaHRtbCNsb2FkbW9kdWxlIj5Mb2FkTW9kdWxlPC9hPjwvY29kZT4uCiAgICBEYW5zIGxlIGNhcyBjb250cmFpcmUsIGh0dHBkIGRvaXQg6nRyZSByZWNvbXBpbOkgcG91ciBham91dGVyIG91CiAgICBzdXBwcmltZXIgZGVzIG1vZHVsZXMuCiAgICBMZXMgZGlyZWN0aXZlcyBkZSBjb25maWd1cmF0aW9uIHBldXZlbnQg6nRyZSBpbmNsdXNlcyBkZSBtYW5p6HJlCiAgICBjb25kaXRpb25uZWxsZSBzZWxvbiBsYSBwculzZW5jZSBvdSBsJ2Fic2VuY2UgZCd1biBtb2R1bGUgcGFydGljdWxpZXIKICAgIGVuIGxlcyBwbGHnYW50IGRhbnMgdW4gYmxvYyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZtb2R1bGUiPiZsdDtJZk1vZHVsZSZndDs8L2E+PC9jb2RlPi48L3A+CgogICAgPHA+UG91ciB2b2lyIHF1ZWxzIG1vZHVsZXMgb250IOl06SBjb21waWzpcyBhdmVjIGxlIHNlcnZldXIsCiAgICB2b3VzIHBvdXZleiB1dGlsaXNlciBsJ29wdGlvbiBkZSBsaWduZSBkZSBjb21tYW5kZSA8Y29kZT4tbDwvY29kZT4uPC9wPgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0ic2NvcGUiIGlkPSJzY29wZSI+UG9ydOllIGRlcyBkaXJlY3RpdmVzPC9hPjwvaDI+CiAgICAKCiAgICA8dGFibGUgY2xhc3M9InJlbGF0ZWQiPjx0cj48dGg+TW9kdWxlcyBBcHBhcmVudOlzPC90aD48dGg+RGlyZWN0aXZlcyBBcHBhcmVudOllczwvdGg+PC90cj48dHI+PHRkIC8+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnltYXRjaCI+Jmx0O0RpcmVjdG9yeU1hdGNoJmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzIj4mbHQ7RmlsZXMmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXNtYXRjaCI+Jmx0O0ZpbGVzTWF0Y2gmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbm1hdGNoIj4mbHQ7TG9jYXRpb25NYXRjaCZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPgoKICAgIDxwPkxlcyBkaXJlY3RpdmVzIHBsYWPpZXMgZGFucyBsZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbiBwcmluY2lwYXV4CiAgICBzJ2FwcGxpcXVlbnQgYXUgc2VydmV1ciBkYW5zIHNvbiBlbnNlbWJsZS4gU2kgdm91cyBzb3VoYWl0ZXogbW9kaWZpZXIgbGEKICAgIGNvbmZpZ3VyYXRpb24gZCd1bmUgcGFydGllIGR1IHNlcnZldXIgc2V1bGVtZW50LCB2b3VzIHBvdXZleiBsaW1pdGVyIGxhCiAgICBwb3J06WUgZGUgdm9zIGRpcmVjdGl2ZXMgZW4gbGVzIHBsYedhbnQgZGFucyB1bmUgc2VjdGlvbgogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeW1hdGNoIj4mbHQ7RGlyZWN0b3J5TWF0Y2gmZ3Q7PC9hPjwvY29kZT4sIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+LCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXNtYXRjaCI+Jmx0O0ZpbGVzTWF0Y2gmZ3Q7PC9hPjwvY29kZT4sIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+LCBvdSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb25tYXRjaCI+Jmx0O0xvY2F0aW9uTWF0Y2gmZ3Q7PC9hPjwvY29kZT4uCiAgICBDZXMgc2VjdGlvbnMgbGltaXRlbnQgbGUgY2hhbXAgZCdhcHBsaWNhdGlvbiBkZXMgZGlyZWN0aXZlcyBxdSdlbGxlcwogICAgY29udGllbm5lbnQg4CBkZXMgVVJscyBvdSBkZXMgcG9ydGlvbnMgZHUgc3lzdOhtZSBkZSBmaWNoaWVycyBwYXJ0aWN1bGnocmVzLgogICAgRWxsZXMgcGV1dmVudCBhdXNzaSDqdHJlIGltYnJpcXXpZXMsIGNlIHF1aSBwZXJtZXQKICAgIHVuZSBjb25maWd1cmF0aW9uIHRy6HMgZmluZS48L3A+CgogICAgPHA+aHR0cGQgcGV1dCBzZXJ2aXIgc2ltdWx0YW7pbWVudCBkZSBub21icmV1eCBzaXRlcyB3ZWIgYXUgdHJhdmVycyBkZXMKICAgIDxhIGhyZWY9InZob3N0cy8iPkj0dGVzIFZpcnR1ZWxzPC9hPi4gTGEgcG9ydOllIGRlcyBkaXJlY3RpdmVzIHBldXQgYWluc2kKICAgIOp0cmUgbGltaXTpZSBlbiBsZXMgcGxh52FudCBkYW5zIGRlcyBzZWN0aW9ucwogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3ZpcnR1YWxob3N0Ij4mbHQ7VmlydHVhbEhvc3QmZ3Q7PC9hPjwvY29kZT4sCiAgICBhZmluIHF1J2VsbGVzIG5lIHMnYXBwbGlxdWVudCBxdSdhdXggcmVxdep0ZXMKICAgIHBvdXIgdW4gc2l0ZSB3ZWIgcGFydGljdWxpZXIuPC9wPgoKICAgIDxwPkJpZW4gcXVlIGxhIHBsdXBhcnQgZGVzIGRpcmVjdGl2ZXMgcHVpc3NlbnQg6nRyZSBwbGFj6WVzIGRhbnMKICAgIGNoYWN1bmUgZGUgY2VzIHNlY3Rpb25zLCBjZXJ0YWluZXMgZCdlbnRyZSBlbGxlcyBuJ29udCBhdWN1biBzZW5zCiAgICBkYW5zIGNlcnRhaW5zIGNvbnRleHRlcy4KICAgIFBhciBleGVtcGxlLCBsZXMgZGlyZWN0aXZlcyBxdWkgY29udHL0bGVudCBsYSBjculhdGlvbiBkZXMgcHJvY2Vzc3VzCiAgICBuJ29udCBkZSBzZW5zIHF1ZSBkYW5zIGxlIGNvbnRleHRlIGR1IHNlcnZldXIgcHJpbmNpcGFsLiBQb3VyIGTpdGVybWluZXIKICAgIHF1ZWxsZXMgZGlyZWN0aXZlcyBwZXV2ZW50IOp0cmUgcGxhY+llcyBkYW5zIHF1ZWxsZXMgc2VjdGlvbnMsIGNvbnN1bHRlegogICAgbGUgPGEgaHJlZj0ibW9kL2RpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dGU8L2E+IGRlIGxhCiAgICBkaXJlY3RpdmUuIFBvdXIgcGx1cyBkJ2luZm9ybWF0aW9ucywgbm91cyBmb3Vybmlzc29ucyBkZXMgZOl0YWlscyBkYW5zCiAgICA8YSBocmVmPSJzZWN0aW9ucy5odG1sIj5Db21tZW50IGZvbmN0aW9ubmVudCBsZXMgc2VjdGlvbnMgRGlyZWN0b3J5LAogICAgTG9jYXRpb24gZXQgRmlsZXM8L2E+LjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9Imh0YWNjZXNzIiBpZD0iaHRhY2Nlc3MiPkZpY2hpZXJzIC5odGFjY2VzczwvYT48L2gyPgogICAgCgogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPk1vZHVsZXMgQXBwYXJlbnTpczwvdGg+PHRoPkRpcmVjdGl2ZXMgQXBwYXJlbnTpZXM8L3RoPjwvdHI+PHRyPjx0ZCAvPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNhY2Nlc3NmaWxlbmFtZSI+QWNjZXNzRmlsZU5hbWU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNhbGxvd292ZXJyaWRlIj5BbGxvd092ZXJyaWRlPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgogICAgPHA+aHR0cGQgcGVybWV0IGxhIGdlc3Rpb24gZOljZW50cmFsaXPpZSBkZSBsYSBjb25maWd1cmF0aW9uCiAgICB2aWEgZGVzIGZpY2hpZXJzIHNw6WNpYXV4IHBsYWPpcyBkYW5zIGwnYXJib3Jlc2NlbmNlIGR1IHNpdGUgd2ViLgogICAgQ2VzIGZpY2hpZXJzIHNw6WNpYXV4IHNlIG5vbW1lbnQgZW4gZ+lu6XJhbCA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+LAogICAgbWFpcyB0b3V0IGF1dHJlIG5vbSBwZXV0IOp0cmUgc3DpY2lmaekg4CBsJ2FpZGUgZGUgbGEgZGlyZWN0aXZlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjYWNjZXNzZmlsZW5hbWUiPkFjY2Vzc0ZpbGVOYW1lPC9hPjwvY29kZT4uCiAgICBMZXMgZGlyZWN0aXZlcyBwbGFj6WVzIGRhbnMgbGVzIGZpY2hpZXJzIDxjb2RlPi5odGFjY2VzczwvY29kZT4KICAgIHMnYXBwbGlxdWVudCBhdSBy6XBlcnRvaXJlIGRhbnMgbGVxdWVsIHZvdXMgYXZleiBwbGFj6SBsZSBmaWNoaWVyLAogICAgYWluc2kgcXUn4CB0b3VzIHNlcyBzb3VzLXLpcGVydG9pcmVzLgogICAgTGEgc3ludGF4ZSBkZXMgZmljaGllcnMgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBlc3QgbGEgbeptZSBxdWUgY2VsbGUKICAgIGRlcyBmaWNoaWVycyBkZSBjb25maWd1cmF0aW9uIHByaW5jaXBhdXguIENvbW1lIGxlcyBmaWNoaWVycwogICAgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBzb250IGx1cyDgIGNoYXF1ZSByZXF16nRlLCBsZXMgbW9kaWZpY2F0aW9ucyBkZQogICAgY2VzIGZpY2hpZXJzIHByZW5uZW50IGVmZmV0IGltbelkaWF0ZW1lbnQuPC9wPgoKICAgIDxwPlBvdXIgZOl0ZXJtaW5lciBxdWVsbGVzIGRpcmVjdGl2ZXMgcGV1dmVudCDqdHJlIHBsYWPpZXMKICAgIGRhbnMgbGVzIGZpY2hpZXJzIDxjb2RlPi5odGFjY2VzczwvY29kZT4sIGNvbnN1bHRleiBsZQogICAgPGEgaHJlZj0ibW9kL2RpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dGU8L2E+IGRlIGxhCiAgICBkaXJlY3RpdmUuIEwnYWRtaW5pc3RyYXRldXIgZHUgc2VydmV1ciBwZXV0IGNvbnRy9GxlciBxdWVsbGVzCiAgICBkaXJlY3RpdmVzIHBldXZlbnQg6nRyZSBwbGFj6WVzIGRhbnMgbGVzIGZpY2hpZXJzCiAgICA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGVuIGTpZmluaXNzYW50IGxhIGRpcmVjdGl2ZQogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2FsbG93b3ZlcnJpZGUiPkFsbG93T3ZlcnJpZGU8L2E+PC9jb2RlPgogICAgZGFucyBsZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbiBwcmluY2lwYXV4LjwvcD4KCiAgICA8cD5Qb3VyIHBsdXMgZCdpbmZvcm1hdGlvbnMgc3VyIGxlcyBmaWNoaWVycyA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+LAogICAgc2Ugculm6XJlciBhdSA8YSBocmVmPSJob3d0by9odGFjY2Vzcy5odG1sIj50dXRvcmllbCAuaHRhY2Nlc3M8L2E+LjwvcD4KICA8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2RlL2NvbmZpZ3VyaW5nLmh0bWwiIGhyZWZsYW5nPSJkZSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJEZXV0c2NoIj4mbmJzcDtkZSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VuL2NvbmZpZ3VyaW5nLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2NvbmZpZ3VyaW5nLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9jb25maWd1cmluZy5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vY29uZmlndXJpbmcuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9jb25maWd1cmluZy5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjQvY29uZmlndXJpbmcuaHRtbCc7CihmdW5jdGlvbih3LCBkKSB7CiAgICBpZiAody5sb2NhdGlvbi5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpID09ICJodHRwZC5hcGFjaGUub3JnIikgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+PFwvZGl2PicpOwogICAgICAgIHZhciBzID0gZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsKICAgICAgICBzLnNyYyA9ICdodHRwczovL2NvbW1lbnRzLmFwYWNoZS5vcmcvc2hvd19jb21tZW50cy5sdWE/c2l0ZT0nICsgY29tbWVudHNfc2hvcnRuYW1lICsgJyZwYWdlPScgKyBjb21tZW50c19pZGVudGlmaWVyOwogICAgICAgIChkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0gfHwgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZChzKTsKICAgIH0KICAgIGVsc2UgeyAKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPkNvbW1lbnRzIGFyZSBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIGF0IHRoZSBtb21lbnQuPFwvZGl2PicpOwogICAgfQp9KSh3aW5kb3csIGRvY3VtZW50KTsKLy8tLT48IV1dPjwvc2NyaXB0PjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAyMDE2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5BdXRvcmlz6SBzb3VzIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FpcmU8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=