PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5Db25maWd1cmF0aW9uIOAgbCfpY2hlbGxlIGR1IHNlcnZldXIgLSBTZXJ2ZXVyIEFwYWNoZSBIVFRQIFZlcnNpb24gMi40PC90aXRsZT4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+U2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNDwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9mZWF0aGVyLmdpZiIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5TZXJ2ZXVyIEhUVFA8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi8iPlZlcnNpb24gMi40PC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5Db25maWd1cmF0aW9uIOAgbCfpY2hlbGxlIGR1IHNlcnZldXI8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4vZW4vc2VydmVyLXdpZGUuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvc2VydmVyLXdpZGUuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL3NlcnZlci13aWRlLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9zZXJ2ZXItd2lkZS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL3NlcnZlci13aWRlLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+Cgo8cD5DZSBkb2N1bWVudCBleHBsaXF1ZSBsZSBmb25jdGlvbm5lbWVudCBkZSBjZXJ0YWluZXMgZGlyZWN0aXZlcyBkdSBzZXJ2ZXVyCmRlIGJhc2UgcXVpIHNvbnQgdXRpbGlz6WVzIHBvdXIgY29uZmlndXJlciBsZXMgb3DpcmF0aW9ucyDpbOltZW50YWlyZXMgZHUKc2VydmV1ci48L3A+CjwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjx1bCBpZD0idG9jIj48bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2lkZW50aWZpY2F0aW9uIj5JZGVudGlmaWNhdGlvbiBkdSBzZXJ2ZXVyPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbG9jYXRpb25zIj5Mb2NhbGlzYXRpb24gZGVzIGZpY2hpZXJzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjcmVzb3VyY2UiPkxpbWl0YXRpb24gZGUgbCd1dGlsaXNhdGlvbiBkZXMgcmVzc291cmNlczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2ltcGxlbWVudGF0aW9uIj5DaG9peCBkJ2ltcGzpbWVudGF0aW9uPC9hPjwvbGk+CjwvdWw+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iaWRlbnRpZmljYXRpb24iIGlkPSJpZGVudGlmaWNhdGlvbiI+SWRlbnRpZmljYXRpb24gZHUgc2VydmV1cjwvYT48L2gyPgogICAgCgogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPk1vZHVsZXMgQXBwYXJlbnTpczwvdGg+PHRoPkRpcmVjdGl2ZXMgQXBwYXJlbnTpZXM8L3RoPjwvdHI+PHRyPjx0ZCAvPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJuYW1lIj5TZXJ2ZXJOYW1lPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjc2VydmVyYWRtaW4iPlNlcnZlckFkbWluPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjc2VydmVyc2lnbmF0dXJlIj5TZXJ2ZXJTaWduYXR1cmU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJ0b2tlbnMiPlNlcnZlclRva2VuczwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3VzZWNhbm9uaWNhbG5hbWUiPlVzZUNhbm9uaWNhbE5hbWU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN1c2VjYW5vbmljYWxwaHlzaWNhbHBvcnQiPlVzZUNhbm9uaWNhbFBoeXNpY2FsUG9ydDwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PC90cj48L3RhYmxlPgoKICAgIDxwPkxlcyBkaXJlY3RpdmVzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJhZG1pbiI+U2VydmVyQWRtaW48L2E+PC9jb2RlPiBldAogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3NlcnZlcnRva2VucyI+U2VydmVyVG9rZW5zPC9hPjwvY29kZT4gY29udHL0bGVudCBsYSBuYXR1cmUgZGVzCiAgICBpbmZvcm1hdGlvbnMg4CBwcm9wb3MgZHUgc2VydmV1ciBxdWkgc2Vyb250IGFmZmljaOllcyBkYW5zIGxlcyBkb2N1bWVudHMKICAgIGfpbuly6XMgcGFyIGxlIHNlcnZldXIgY29tbWUgbGVzIG1lc3NhZ2VzIGQnZXJyZXVyLiBMYSBkaXJlY3RpdmUKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJ0b2tlbnMiPlNlcnZlclRva2VuczwvYT48L2NvZGU+IGTpZmluaXQgbGEgdmFsZXVyIGR1CiAgICBjaGFtcCBkJ2VuLXTqdGUgZGUgbGEgculwb25zZSBkdSBzZXJ2ZXVyIEhUVFAuPC9wPgoKICAgIDxwPkxlIHNlcnZldXIgdXRpbGlzZSBsZXMgZGlyZWN0aXZlcwogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3NlcnZlcm5hbWUiPlNlcnZlck5hbWU8L2E+PC9jb2RlPiwKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN1c2VjYW5vbmljYWxuYW1lIj5Vc2VDYW5vbmljYWxOYW1lPC9hPjwvY29kZT4gZXQKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN1c2VjYW5vbmljYWxwaHlzaWNhbHBvcnQiPlVzZUNhbm9uaWNhbFBoeXNpY2FsUG9ydDwvYT48L2NvZGU+IHBvdXIKICAgIGTpdGVybWluZXIgbGEgbWFuaehyZSBkZSBjb25zdHJ1aXJlIGRlcyBVUkxzIHZlcnMgc2VzIHByb3ByZXMgcmVzc291cmNlcy4KICAgIFBhciBleGVtcGxlLCBxdWFuZCB1biBjbGllbnQg6W1ldCB1bmUgcmVxdep0ZSB2ZXJzIHVuIHLpcGVydG9pcmUsIG1haXMKICAgIG4nYWpvdXRlIHBhcyBsZSBzbGFzaCBmaW5hbCBhdSBub20gZHUgculwZXJ0b2lyZSwgaHR0cGQgZG9pdCByZWRpcmlnZXIgbGUKICAgIGNsaWVudCB2ZXJzIGxlIG5vbSBjb21wbGV0IGluY2x1YW50IGxlIHNsYXNoIGZpbmFsIGFmaW4gcXVlIGxlIGNsaWVudAogICAgcHVpc3NlIHLpc291ZHJlIGNvcnJlY3RlbWVudCBsZXMgculm6XJlbmNlcyByZWxhdGl2ZXMgcHLpc2VudGVzIGRhbnMKICAgIGxlIGRvY3VtZW50LjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImxvY2F0aW9ucyIgaWQ9ImxvY2F0aW9ucyI+TG9jYWxpc2F0aW9uIGRlcyBmaWNoaWVyczwvYT48L2gyPgogICAgCgogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPk1vZHVsZXMgQXBwYXJlbnTpczwvdGg+PHRoPkRpcmVjdGl2ZXMgQXBwYXJlbnTpZXM8L3RoPjwvdHI+PHRyPjx0ZCAvPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNjb3JlZHVtcGRpcmVjdG9yeSI+Q29yZUR1bXBEaXJlY3Rvcnk8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkb2N1bWVudHJvb3QiPkRvY3VtZW50Um9vdDwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2Vycm9ybG9nIj5FcnJvckxvZzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI211dGV4Ij5NdXRleDwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI3BpZGZpbGUiPlBpZEZpbGU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNzY29yZWJvYXJkZmlsZSI+U2NvcmVCb2FyZEZpbGU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJyb290Ij5TZXJ2ZXJSb290PC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgogICAgPHA+Q2VzIGRpcmVjdGl2ZXMgY29udHL0bGVudCBsYSBsb2NhbGlzYXRpb24gZGVzIGRpZmbpcmVudHMgZmljaGllcnMKICAgIG7pY2Vzc2FpcmVzIGF1IGJvbiBmb25jdGlvbm5lbWVudCBkZSBodHRwZC4gUXVhbmQgbGUgY2hlbWluIHV0aWxpc+kgbmUKICAgIGNvbW1lbmNlIHBhcyBwYXIgdW4gc2xhc2ggKC8pLCBsYSBsb2NhbGlzYXRpb24gZGVzIGZpY2hpZXJzIGVzdCByZWxhdGl2ZQogICAg4CBsYSB2YWxldXIgZGUgbGEgZGlyZWN0aXZlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjc2VydmVycm9vdCI+U2VydmVyUm9vdDwvYT48L2NvZGU+LiBTb3lleiBwcnVkZW50IGF2ZWMgbGEKICAgIGxvY2FsaXNhdGlvbiBkZSBmaWNoaWVycyBkYW5zIGRlcyBy6XBlcnRvaXJlcyBv+SBsZXMgdXRpbGlzYXRldXJzIG5vbiByb290CiAgICBvbnQgbGVzIGRyb2l0cyBlbiDpY3JpdHVyZS4gVm9pciBsYSBkb2N1bWVudGlvbiBzdXIgbGVzCiAgICA8YSBocmVmPSJtaXNjL3NlY3VyaXR5X3RpcHMuaHRtbCNzZXJ2ZXJyb290Ij5Db25zZWlscyDgIHByb3BvcwogICAgZGUgbGEgc+ljdXJpdOk8L2E+IHBvdXIgcGx1cyBkZSBk6XRhaWxzLjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InJlc291cmNlIiBpZD0icmVzb3VyY2UiPkxpbWl0YXRpb24gZGUgbCd1dGlsaXNhdGlvbiBkZXMgcmVzc291cmNlczwvYT48L2gyPgogICAgCgogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPk1vZHVsZXMgQXBwYXJlbnTpczwvdGg+PHRoPkRpcmVjdGl2ZXMgQXBwYXJlbnTpZXM8L3RoPjwvdHI+PHRyPjx0ZCAvPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsaW1pdHJlcXVlc3Rib2R5Ij5MaW1pdFJlcXVlc3RCb2R5PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbGltaXRyZXF1ZXN0ZmllbGRzIj5MaW1pdFJlcXVlc3RGaWVsZHM8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsaW1pdHJlcXVlc3RmaWVsZHNpemUiPkxpbWl0UmVxdWVzdEZpZWxkc2l6ZTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xpbWl0cmVxdWVzdGxpbmUiPkxpbWl0UmVxdWVzdExpbmU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNybGltaXRjcHUiPlJMaW1pdENQVTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3JsaW1pdG1lbSI+UkxpbWl0TUVNPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjcmxpbWl0bnByb2MiPlJMaW1pdE5QUk9DPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjdGhyZWFkc3RhY2tzaXplIj5UaHJlYWRTdGFja1NpemU8L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT4KCiAgICA8cD5MZXMgZGlyZWN0aXZlcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5MaW1pdFJlcXVlc3Q8L2NvZGU+KiBwZXJtZXR0ZW50IGRlCiAgICBsaW1pdGVyIGxhIHF1YW50aXTpIGRlIHJlc3NvdXJjZXMgY29uc29tbellcyBwYXIgaHR0cGQgcG91ciBsZSB0cmFpdGVtZW50CiAgICBkZXMgcmVxdep0ZXMgZGVzIGNsaWVudHMuIENldHRlIGxpbWl0YXRpb24gcGVybWV0IGRlIG1pbmltaXNlciBsZXMgZWZmZXRzCiAgICBkZSBjZXJ0YWlucyB0eXBlcyBkJ2F0dGFxdWVzIHBhciBk6W5pIGRlIHNlcnZpY2UuPC9wPgoKICAgIDxwPkxlcyBkaXJlY3RpdmVzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPlJMaW1pdDwvY29kZT4qIHBlcm1ldHRlbnQgZGUgbGltaXRlciBsYQogICAgcXVhbnRpdOkgZGUgcmVzc291cmNlcyB1dGlsaXNhYmxlIHBhciBsZXMgcHJvY2Vzc3VzIGluaXRp6XMgKGZvcmtlZCkgcGFyCiAgICBsZXMgcHJvY2Vzc3VzIGVuZmFudHMgaHR0cGQuIEVsbGVzIHBlcm1ldHRlbnQgZW4gcGFydGljdWxpZXIgZGUgY29udHL0bGVyCiAgICBsZXMgcmVzc291cmNlcyB1dGlsaXPpZXMgcGFyIGxlcyBzY3JpcHRzIENHSSBldCBsZXMgY29tbWFuZGVzIGV4ZWMgZGVzCiAgICAiSW5jbHVzaW9ucyBj9HTpIHNlcnZldXIiIChTZXJ2ZXIgU2lkZSBJbmNsdWRlcyBvdSBTU0kpLjwvcD4KCiAgICA8cD5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI3RocmVhZHN0YWNrc2l6ZSI+VGhyZWFkU3RhY2tTaXplPC9hPjwvY29kZT4KICAgIHBlcm1ldCBzdXIgY2VydGFpbmVzIHBsYXRlcy1mb3JtZXMgZGUgY29udHL0bGVyIGxhIHRhaWxsZSBkZSBsYSBwaWxlLjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImltcGxlbWVudGF0aW9uIiBpZD0iaW1wbGVtZW50YXRpb24iPkNob2l4IGQnaW1wbOltZW50YXRpb248L2E+PC9oMj4KICAgIAoKICAgIDx0YWJsZSBjbGFzcz0icmVsYXRlZCI+PHRyPjx0aD5Nb2R1bGVzIEFwcGFyZW506XM8L3RoPjx0aD5EaXJlY3RpdmVzIEFwcGFyZW506WVzPC90aD48L3RyPjx0cj48dGQgLz48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbXV0ZXgiPk11dGV4PC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgogICAgPHA+TGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPk11dGV4PC9jb2RlPiBwZXJtZXQgZGUgbW9kaWZpZXIKICAgIGwnaW1wbOltZW50YXRpb24gc291cy1qYWNlbnRlIGRlcyBtdXRleCwgYWZpbiBkZSBy6XNvdWRyZSBsZXMKICAgIHByb2Js6G1lcyBkZSBmb25jdGlvbm5lbWVudCBvdSBkZSBwZXJmb3JtYW5jZSBkdXMgYXUgY2hvaXggcGFyCiAgICBk6WZhdXQgZCc8YSBjbGFzcz0iZ2xvc3NhcnlsaW5rIiBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwjYXByIiB0aXRsZT0idm9pciBnbG9zc2FpcmUiPkFQUjwvYT4uPC9wPgogIDwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4vZW4vc2VydmVyLXdpZGUuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvc2VydmVyLXdpZGUuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL3NlcnZlci13aWRlLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9zZXJ2ZXItd2lkZS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL3NlcnZlci13aWRlLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgc3JjPSIuL2ltYWdlcy91cC5naWYiIGFsdD0idG9wIiAvPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDI+PGEgaWQ9ImNvbW1lbnRzX3NlY3Rpb24iIG5hbWU9ImNvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2gyPjxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPjxiciAvPlRoaXMgaXMgbm90IGEgUSZhbXA7QSBzZWN0aW9uLiBDb21tZW50cyBwbGFjZWQgaGVyZSBzaG91bGQgYmUgcG9pbnRlZCB0b3dhcmRzIHN1Z2dlc3Rpb25zIG9uIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBvciBzZXJ2ZXIsIGFuZCBtYXkgYmUgcmVtb3ZlZCBhZ2FpbiBieSBvdXIgbW9kZXJhdG9ycyBpZiB0aGV5IGFyZSBlaXRoZXIgaW1wbGVtZW50ZWQgb3IgY29uc2lkZXJlZCBpbnZhbGlkL29mZi10b3BpYy4gUXVlc3Rpb25zIG9uIGhvdyB0byBtYW5hZ2UgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBzaG91bGQgYmUgZGlyZWN0ZWQgYXQgZWl0aGVyIG91ciBJUkMgY2hhbm5lbCwgI2h0dHBkLCBvbiBGcmVlbm9kZSwgb3Igc2VudCB0byBvdXIgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuNC9zZXJ2ZXItd2lkZS5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7IAogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkF1dG9yaXPpIHNvdXMgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==