PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iRVVDLUtSIj8+CjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImtvIiB4bWw6bGFuZz0ia28iPjxoZWFkPjwhLS0KICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAgICAgICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSB4bWwgc291cmNlOiBETyBOT1QgRURJVAogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgIC0tPgo8dGl0bGU+YXBhY2hlY3RsIC0gvsbGxMShIMClvK259iDBtsD9IMDOxc3G5MDMvbogLSBBcGFjaGUgSFRUUCBTZXJ2ZXI8L3RpdGxlPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5IGlkPSJtYW51YWwtcGFnZSI+PGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+uPC14jwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj7B9r3Dvu616TwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPr/rvu48L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj6758DMxq64yjwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuNDwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5naWYiIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAgU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4uLyI+VmVyc2lvbiAyLjQ8L2E+ICZndDsgPGEgaHJlZj0iLi8iPlByb2dyYW1zPC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5hcGFjaGVjdGwgLSC+xsbExKEgwKW8rbn2IMG2wP0gwM7FzcbkwMy9ujwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj6wobTJx9EgvvC+7jogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL3Byb2dyYW1zL2FwYWNoZWN0bC5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvcHJvZ3JhbXMvYXBhY2hlY3RsLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFuJiMyMzE7YWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9wcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vdHIvcHJvZ3JhbXMvYXBhY2hlY3RsLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJUJiMyNTI7cmsmIzIzMTtlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJvdXRvZmRhdGUiPsDMILmuvK20wiDD1r3Fxscgufi/qsDMIL7GtNW0z7TZLgogICAgICAgICAgICDD1rHZv6Eguq+w5rXIILO7v+vAuiC/tb7uILmuvK24piDC/LDtx8+8vL/kLjwvZGl2PgoKICAgICA8cD48Y29kZT5hcGFjaGVjdGw8L2NvZGU+wLogvsbGxMShIMfPwMzG28XYvbrGriDA/LzbCiAgICAgx8G3zsXkxN0gKEhUVFApILytufbAxyC+1bTcwMy02S4gwMwgx8G3zrHXt6XAuiCw/LiuwNqwoQogICAgIL7GxsTEoSA8YSBocmVmPSJodHRwZC5odG1sIj5odHRwZDwvYT4gtaW488C7IMG2waTHz7W1t88KICAgICC1vbTCtNkuPC9wPgoKICAgICA8cD48Y29kZT5hcGFjaGVjdGw8L2NvZGU+IL26xam4s8autMIgtc6wocH2ILnmuf3AuLfOIL3Hx+DH0bTZLgogICAgIMO5ufjCsCC55rn9wLogPGNvZGU+aHR0cGQ8L2NvZGU+wLsgus64o7TCILCjtNzH0SC9usWpuLPGrgogICAgIL+qx9LAuyDHz7+pLCDHyr/kx9EgyK+w5rqvvPa4piC8s8Gkx8+w7SC53sC6ILjtt8nH4CC+xrHUuNXGrrimCiAgICAgsKHB9rDtIDxjb2RlPmh0dHBkPC9jb2RlPrimIL3Hx+DH0bTZLiC1zrn4wrAguea5/cC6CiAgICAgPGNvZGU+YXBhY2hlY3RsPC9jb2RlPrimIFN5c1YgaW5pdCC9usWpuLPGrrfOILvnv+vHz7+pLAogICAgIDxjb2RlPnN0YXJ0PC9jb2RlPiwgPGNvZGU+cmVzdGFydDwvY29kZT4sIDxjb2RlPnN0b3A8L2NvZGU+CiAgICAgsLDAuiDH0bTcvu4gvsax1LjVxq64piC53r7GvK0gPGNvZGU+aHR0cGQ8L2NvZGU+v6Gw1AogICAgIMD7wP3H0SC9xcijuKYgurizvbTZLjwvcD4KCiAgICAgPHA+vsbGxMShuKYgwM+53cD7wM4gsOa3zr+hILyzxKHHz8H2IL7KvtK02bjpLCDA+8D9x9EKICAgICA8Y29kZT5odHRwZDwvY29kZT4gsOa3zrfOIDxjb2RlPmFwYWNoZWN0bDwvY29kZT4gvbrFqbizxq64pgogICAgILz2waTH2L7fIMfRtNkuILbHLCA8Y29kZT5odHRwZDwvY29kZT4guO23ycfgIL7GsdS41cauuKYKICAgICDD37Cht84gwfbBpMfSILz2IMDWtNkuIMDavLzH0SCzu7/rwLogvbrFqbizxq7AxyDB1ryuwLsKICAgICDC/LDtx8+28y48L3A+CgogICAgIDxwPjxjb2RlPmFwYWNoZWN0bDwvY29kZT4gvbrFqbizxq60wiC8urD4vcMgwb634cTateUgMMC7LAogICAgIL/At/m9wyAmZ3Q7MMC7ILndyK/H0bTZLiDA2ry8x9Egs7u/68C6IL26xam4s8auwMcgwda8rsC7CiAgICAgwvyw7cfPtvMuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjc3lub3BzaXMiPrCzv+Q8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjb3B0aW9ucyI+v8m8xzwvYT48L2xpPgo8L3VsPjxoMz7C/LDtPC9oMz48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSIuLi9pbnZva2luZy5odG1sIj6+xsbExKEgvcPA2zwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9zdG9wcGluZy5odG1sIj6+xsbExKEgwd+03DwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9jb25maWd1cmluZy5odG1sIj68s8GkxsTAzzwvYT48L2xpPjxsaT48YSBocmVmPSIuLi9wbGF0Zm9ybS8iPsfDt6HG+yC5rrytPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBkLmh0bWwiPmh0dHBkPC9hPjwvbGk+PC91bD48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudHM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzeW5vcHNpcyIgaWQ9InN5bm9wc2lzIj6ws7/kPC9hPjwvaDI+Cgo8cD6wo7Tcx9EgvcfH4CC9usWpuLPGrrfOILW/wNvHz7jpLCA8Y29kZT5hcGFjaGVjdGw8L2NvZGU+wLoKPGEgaHJlZj0iaHR0cGQuaHRtbCI+aHR0cGQ8L2E+IL3Hx+DGxMDPwMcguPC15yC+xrHUuNXGrrimILnetMK02S48L3A+Cgo8cD48Y29kZT48c3Ryb25nPmFwYWNoZWN0bDwvc3Ryb25nPiBbIDx2YXI+aHR0cGQtYXJndW1lbnQ8L3Zhcj4gXTwvY29kZT48L3A+Cgo8cD5TeXNWIGluaXQguea9xMC4t84gtb/A28fPuOksIDxjb2RlPmFwYWNoZWN0bDwvY29kZT7AuiC+xrehvK0KvLO47cfSILCjtNzH0SDH0bTcvu4guO23yb7uuKYgud60wrTZLjwvcD4KCjxwPjxjb2RlPjxzdHJvbmc+YXBhY2hlY3RsPC9zdHJvbmc+IDx2YXI+Y29tbWFuZDwvdmFyPjwvY29kZT48L3A+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJvcHRpb25zIiBpZD0ib3B0aW9ucyI+v8m8xzwvYT48L2gyPgoKPHA+v6mx4ryttMIgU3lzViBpbml0Lb3EIL/JvMe4uCC8s7jtx9G02S4gtNm4pSC/ybzHwLogPGEgaHJlZj0iaHR0cGQuaHRtbCI+aHR0cGQ8L2E+IG1hbnBhZ2W/obytILyzuO3H0bTZLjwvcD4KCjxkbD4KCjxkdD48Y29kZT5zdGFydDwvY29kZT48L2R0PgoKPGRkPr7GxsTEoSA8Y29kZT5odHRwZDwvY29kZT4gtaW488C7IL3DwNvH0bTZLiDAzLnMIL3Hx+DB38DMtvO46Qq/wLf5uKYgs7202S4gPGNvZGU+YXBhY2hlY3RsIC1rIHN0YXJ0PC9jb2RlPr/NILCwtNkuPC9kZD4KCjxkdD48Y29kZT5zdG9wPC9jb2RlPjwvZHQ+Cgo8ZGQ+vsbGxMShIDxjb2RlPmh0dHBkPC9jb2RlPiC1pbjzwLsgwd+03MfRtNkuIDxjb2RlPmFwYWNoZWN0bAotayBzdG9wPC9jb2RlPrD6ILCwtNkuPC9kZD4KCjxkdD48Y29kZT5yZXN0YXJ0PC9jb2RlPjwvZHQ+Cgo8ZGQ+vsbGxMShIDxjb2RlPmh0dHBkPC9jb2RlPiC1pbjzwLsgwOe9w8Dbx9G02S4gtaW488DMIL3Hx+DB38DMCr7GtM+287jpLCC9w8Dbx9G02S4gtaW488DMIMDnvcPA273DIL3HxtDHz8H2IL7KwL3AuyDIrsDOx8+x4sCnx9gKwOe9w8DbIMD8v6EgwNq1v8C4t84gPGNvZGU+Y29uZmlndGVzdDwvY29kZT4guO23ybD6ILCwwMwgvLPBpMbEwM/Auwqwy7vnx9G02S4gPGNvZGU+YXBhY2hlY3RsIC1rIHJlc3RhcnQ8L2NvZGU+v80gsLC02S48L2RkPgoKPGR0Pjxjb2RlPmZ1bGxzdGF0dXM8L2NvZGU+PC9kdD4KCjxkZD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3N0YXR1cy5odG1sIj5tb2Rfc3RhdHVzPC9hPjwvY29kZT7AxyC48LXnILvzxcIgwaS6uLimIMPit8LH0bTZLgrAzCC47bfJwLsgu+e/68fPseLAp8fYvK20wiC8rbn2sKEgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9zdGF0dXMuaHRtbCI+bW9kX3N0YXR1czwvYT48L2NvZGU+uKYKu+e/68fPsO0sIL3DvbrF27+hIDxjb2RlPmx5bng8L2NvZGU+ILCwwLogua7A2rHiud0guuq287/swPqwoQrHyr/kx8+02S4gu/PFwiDBpLq4v6EgwaKx2cfPtMIgVVJMwLogvbrFqbizxq7Axwo8Y29kZT5TVEFUVVNVUkw8L2NvZGU+ILqvvPa4piC89sGkx8+/qSC8s8Gkx9IgvPYgwNa02S48L2RkPgoKPGR0Pjxjb2RlPnN0YXR1czwvY29kZT48L2R0PgoKPGRkPrCjtNzH0SC788XCIMGkuri4piDD4rfCx9G02S4gPGNvZGU+ZnVsbHN0YXR1czwvY29kZT4gv8m8x7D6CrrxvcHHz8H2uLgsIMf2wOcgvK268b26wd/AziC/5MO7ILjxt8/AuyDD4rfCx8/B9iC+yrTCtNkuPC9kZD4KCjxkdD48Y29kZT5ncmFjZWZ1bDwvY29kZT48L2R0PgoKPGRkPr7GxsTEoSA8Y29kZT5odHRwZDwvY29kZT4gtaW488C7IMGhwN2w1ChncmFjZWZ1bGx5KSDA573DwNvH0bTZLgq1pbjzwMwgvcfH4MHfwMwgvsa0z7bzuOksIL3DwNvH0bTZLiDAz7ndwPvAziDA573DwNuw+iC03riuIMf2wOcKv623wcDWtMIgv6yw4cC7ILL3wfa+yrTCtNkuILbHLCDAzMD8ILfOsdfGxMDPwLsgwe+9wyC03cH2IL7KtMK02S4Kwe8sILfOsde8+MivIL26xam4s8auv6G8rSDAzCC47bfJwLsgu+e/68fRtNm46SwgwMzA/CC3zrHXxsTAz8C7CsOzuK7Hz7HiwPy/oSC3zrHXxsTAz8C7ILTdx/vAvcC7ILq4wOXHz7HiwKfH2CC787TnyPcgseK02bfBvt8Kx9G02S4gvsbGxMShsKEgwOe9w8DbvcMgvcfG0MfPwfYgvsrAvcC7IMiuwM7Hz7HiwKfH2CDA573DwNsKwPy/oSDA2rW/wLi3ziA8Y29kZT5jb25maWd0ZXN0PC9jb2RlPiC47bfJsPogsLDAzCC8s8GkxsTAz8C7CrDLu+fH0bTZLiA8Y29kZT5hcGFjaGVjdGwgLWsgZ3JhY2VmdWw8L2NvZGU+sPogsLC02S48L2RkPgoKPGR0Pjxjb2RlPmNvbmZpZ3Rlc3Q8L2NvZGU+PC9kdD4KCjxkZD68s8GkxsTAz8DHILmuuf3AuyCwy7vnx9G02S4gvLPBpMbEwM/AuyDA0LDtIDxjb2RlPlN5bnRheApPazwvY29kZT4gyKTAuiDGr8GkILyzwaS/wLf5v6EgtOvH0SDA2ry8x9EgwaS6uLimIL7Lt8HB2LTZLgo8Y29kZT5hcGFjaGVjdGwgLXQ8L2NvZGU+v80gsLC02S48L2RkPgoKPC9kbD4KCjxwPr7Gt6Egv8m8x8C7ILvnv+vH0iC89iDA1sH2uLgsIL7VwLi3ziC757bzwfogsM3AzLTZLjwvcD4KCjxkbD4KCjxkdD48Y29kZT5zdGFydHNzbDwvY29kZT48L2R0PgoKPGRkPjxjb2RlPmFwYWNoZWN0bCAtayBzdGFydCAtRFNTTDwvY29kZT6w+iCwsLTZLiC/7LiutMIgwffBogq+1cDHILjtt8m+7rimILvnv+vHz7DFs6ogx9e78yBTU0zAuyC757/rx8+1tbfPCjxjb2RlPmh0dHBkLmNvbmY8L2NvZGU+v6G8rSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2lmZGVmaW5lIj4mbHQ7SWZEZWZpbmUmZ3Q7PC9hPjwvY29kZT4gvL28x8C7IMGmsMXHz7HmILHHx9G02S48L2RkPgoKPC9kbD4KCjwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+sKG0ycfRIL7wvu46IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9wcm9ncmFtcy9hcGFjaGVjdGwuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2ZyL3Byb2dyYW1zL2FwYWNoZWN0bC5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbiYjMjMxO2FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vcHJvZ3JhbXMvYXBhY2hlY3RsLmh0bWwiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL3RyL3Byb2dyYW1zL2FwYWNoZWN0bC5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVCYjMjUyO3JrJiMyMzE7ZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIGFsdD0idG9wIiAvPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDI+PGEgaWQ9ImNvbW1lbnRzX3NlY3Rpb24iIG5hbWU9ImNvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRzPC9hPjwvaDI+PGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+PGJyIC8+VGhpcyBpcyBub3QgYSBRJmFtcDtBIHNlY3Rpb24uIENvbW1lbnRzIHBsYWNlZCBoZXJlIHNob3VsZCBiZSBwb2ludGVkIHRvd2FyZHMgc3VnZ2VzdGlvbnMgb24gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9yIHNlcnZlciwgYW5kIG1heSBiZSByZW1vdmVkIGFnYWluIGJ5IG91ciBtb2RlcmF0b3JzIGlmIHRoZXkgYXJlIGVpdGhlciBpbXBsZW1lbnRlZCBvciBjb25zaWRlcmVkIGludmFsaWQvb2ZmLXRvcGljLiBRdWVzdGlvbnMgb24gaG93IHRvIG1hbmFnZSB0aGUgQXBhY2hlIEhUVFAgU2VydmVyIHNob3VsZCBiZSBkaXJlY3RlZCBhdCBlaXRoZXIgb3VyIElSQyBjaGFubmVsLCAjaHR0cGQsIG9uIEZyZWVub2RlLCBvciBzZW50IHRvIG91ciA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9saXN0cy5odG1sIj5tYWlsaW5nIGxpc3RzPC9hPi48L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KdmFyIGNvbW1lbnRzX3Nob3J0bmFtZSA9ICdodHRwZCc7CnZhciBjb21tZW50c19pZGVudGlmaWVyID0gJ2h0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvMi40L3Byb2dyYW1zL2FwYWNoZWN0bC5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7IAogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkxpY2Vuc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+uPC14jwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj7B9r3Dvu616TwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPr/rvu48L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj6758DMxq64yjwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=