PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJkZSIgeG1sOmxhbmc9ImRlIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT7cYmVyc2ljaHQgZGVyIG5ldWVuIEZ1bmt0aW9uZW4gaW0gQXBhY2hlIEhUVFAgU2VydmVyIDIuMCAtIEFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuNDwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZTwvYT4gfCA8YSBocmVmPSIuL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVrdGl2ZW48L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXI8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlNlaXRlbmluZGV4PC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi40PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAtU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2t1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5WZXJzaW9uIDIuNDwvYT48L2Rpdj48ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPjxkaXYgaWQ9InByZWFtYmxlIj48aDE+3GJlcnNpY2h0IGRlciBuZXVlbiBGdW5rdGlvbmVuIGltIEFwYWNoZSBIVFRQIFNlcnZlciAyLjA8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+VmVyZvxnYmFyZSBTcHJhY2hlbjogPC9zcGFuPjxhIGhyZWY9Ii4vZGUvbmV3X2ZlYXR1cmVzXzJfMC5odG1sIiB0aXRsZT0iRGV1dHNjaCI+Jm5ic3A7ZGUmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lbi9uZXdfZmVhdHVyZXNfMl8wLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL25ld19mZWF0dXJlc18yXzAuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL25ld19mZWF0dXJlc18yXzAuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL25ld19mZWF0dXJlc18yXzAuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9wdC1ici9uZXdfZmVhdHVyZXNfMl8wLmh0bWwiIGhyZWZsYW5nPSJwdC1iciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJQb3J0dWd16nMgKEJyYXNpbCkiPiZuYnNwO3B0LWJyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvbmV3X2ZlYXR1cmVzXzJfMC5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PgoKICA8cD5EaWVzZXMgRG9rdW1lbnQgYmVzY2hyZWlidCBlaW5pZ2UgZGVyIHdpY2h0aWdzdGVuIMRuZGVydW5nZW4KICAgICBkZXMgQXBhY2hlIEhUVFAgU2VydmVycyAyLjAgZ2VnZW78YmVyIGRlciBWZXJzaW9uIDEuMy48L3A+CjwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvZm91bmRhdGlvbi9jb250cmlidXRpbmcuaHRtbCIgY2xhc3M9ImJhZGdlIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9pbWFnZXMvU3VwcG9ydEFwYWNoZS1zbWFsbC5wbmciIGFsdD0iU3VwcG9ydCBBcGFjaGUhIiAvPjwvYT48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNjb3JlIj5Db3JlLUVyd2VpdGVydW5nZW48L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNtb2R1bGUiPk1vZHVsLUVyd2VpdGVydW5nZW48L2E+PC9saT4KPC91bD48aDM+U2llaGUgYXVjaDwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0idXBncmFkaW5nLmh0bWwiPlVwZ3JhZGUgdm9uIDEuMyBhdWYgMi4wPC9hPjwvbGk+PGxpPjxhIGhyZWY9IiNjb21tZW50c19zZWN0aW9uIj5Lb21tZW50YXJlPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJjb3JlIiBpZD0iY29yZSI+Q29yZS1FcndlaXRlcnVuZ2VuPC9hPjwvaDI+CiAgICAKCiAgICA8ZGw+CiAgICAgIDxkdD48c3Ryb25nPlVuaXgtVGhyZWFkaW5nPC9zdHJvbmc+PC9kdD4KCiAgICAgIDxkZD5BdWYgVW5peC1TeXN0ZW1lbiBtaXQgVW50ZXJzdPx0enVuZyBm/HIKICAgICAgUE9TSVgtVGhyZWFkcywga2FubiBkZXIgQXBhY2hlIGh0dHBkIGpldHp0IGluIGVpbmVtIE11bHRpLVByb2Nlc3MsCiAgICAgIE11bHRpLVRocmVhZGVkIEh5YnJpZC1Nb2RlIGdlc3RhcnRldCB3ZXJkZW4uIERpZXMgdmVyYmVzc2VydCBkaWUKICAgICAgU2thbGllcmbkaGlna2VpdCBm/HIgdmllbGUsIGplZG9jaCBuaWNodCB1bmJlZGluZ3QgYWxsZQogICAgICBLb25maWd1cmF0aW9uZW4uPC9kZD4KCiAgICAgIDxkdD48c3Ryb25nPk5ldWVzIEJ1aWxkLVN5c3RlbTwvc3Ryb25nPjwvZHQ+CgogICAgICA8ZGQ+RGFzIEJ1aWxkLVN5c3RlbSB3dXJkZSBrb21wbGV0dCBhdWYgZGVyIEJhc2lzIHZvbgogICAgICA8Y29kZT5hdXRvY29uZjwvY29kZT4gdW5kIDxjb2RlPmxpYnRvb2w8L2NvZGU+IG5ldSBnZXNjaHJpZWJlbi4KICAgICAgRGFkdXJjaCB3aXJkIGRhcyBLb25maWd1cmF0aW9uc3N5c3RlbSBkZXMgQXBhY2hlIGh0dHBkIGRlbSB2aWVsZXIKICAgICAgYW5kZXJlciBQYWNrYWdlcyDkaG5saWNoZXIuPC9kZD4KCiAgICAgIDxkdD48c3Ryb25nPk11bHRpLVByb3Rva29sbC1VbnRlcnN0/HR6dW5nPC9zdHJvbmc+PC9kdD4KCiAgICAgIDxkZD5EZXIgQXBhY2hlIEhUVFAgU2VydmVyIHN0ZWxsdCBqZXR6dCBkaWUgbm90d2VuZGlnZW4KICAgICAgR3J1bmRmdW5rdGlvbmFsaXTkdGVuIGJlcmVpdCwgdW0gbWVocmVyZSBQcm90b2tvbGxlCiAgICAgIHVudGVyc3T8dHplbiB1bmQgdmVyYXJiZWl0ZW4genUga/ZubmVuLgogICAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfZWNoby5odG1sIj5tb2RfZWNobzwvYT48L2NvZGU+IHd1cmRlIGhpZXJm/HIgYWxzIEJlaXNwaWVsCiAgICAgIGdlc2NocmllYmVuLjwvZGQ+CgogICAgICA8ZHQ+PHN0cm9uZz5CZXNzZXJlIFVudGVyc3T8dHp1bmcgdm9uCiAgICAgIE5pY2h0LVVuaXgtUGxhdHRmb3JtZW48L3N0cm9uZz48L2R0PgoKICAgICAgPGRkPkRlciBBcGFjaGUgSFRUUCBTZXJ2ZXIgMi4wIGlzdCBzY2huZWxsZXIgdW5kIHN0YWJpbGVyIGF1ZgogICAgICBOaWNodC1Vbml4LVBsYXR0Zm9ybWVuIHdpZSBCZU9TLCBPUy8yIHVuZCBXaW5kb3dzLiBNaXQgZGVyCiAgICAgIEVpbmb8aHJ1bmcgdm9uIFBsYXR0Zm9ybS1zcGV6aWZpc2NoZW4gPGEgaHJlZj0ibXBtLmh0bWwiPk11bHRpLVByb2Nlc3NpbmcgTW9kdWxlbjwvYT4gKE1QTXMpIHVuZCBkZXIgQXBhY2hlCiAgICAgIFBvcnRhYmxlIFJ1bnRpbWUgKEFQUiksIHNpbmQgZGllc2UgUGxhdHRmb3JtZW4gamV0enQgaW4gaWhyZW0KICAgICAgbmF0aXZlbiBBUEkgaW1wbGVtZW50aWVydCwgd29kdXJjaCBkaWUgVmVyd2VuZHVuZyBkZXIgaOR1ZmlnCiAgICAgIGZlaGxlcmJlaGFmdGV0ZW4gdW5kIHNjaGxlY2h0IGZ1bmt0aW9uaWVyZW5kZW4KICAgICAgUE9TSVgtRW11bGF0aW9uLUxheWVyIHZlcm1pZWRlbiB3aXJkLjwvZGQ+CgogICAgICA8ZHQ+PHN0cm9uZz5OZXVlcyBBcGFjaGUtaHR0cGQgQVBJPC9zdHJvbmc+PC9kdD4KCiAgICAgIDxkZD5EYXMgQVBJIGb8ciBNb2R1bGUgaGF0IHNpY2ggaW4gMi4wIHN0YXJrIHZlcuRuZGVydC4KICAgICAgRGllIG1laXN0ZW4gZGVyIFNvcnRpZXJ1bmdzLS9Qcmlvcml05HRzcHJvYmxlbWUgdm9uIE1vZHVsZW4gYmVpCiAgICAgIDEuMyBzb2xsdGVuIG51biB2ZXJzY2h3dW5kZW4gc2Vpbi4gSW4gMi4wIHdpcmQgaGllcnZvbiB2aWVsZXMKICAgICAgYXV0b21hdGlzY2ggZHVyY2hnZWb8aHJ0LiBEaWUgTW9kdWxzb3J0aWVydW5nIHdpcmQgamV0enQKICAgICAg/GJlciBlaW5lbiBwcmUtaG9vayB2b3JnZW5vbW1lbiwgdW0gbWVociBGbGV4aWJpbGl05HQKICAgICAgenUgYmlldGVuLiBBdd9lcmRlbSB3dXJkZW4gbmV1ZSBBUEktQ2FsbHMgaGluenVnZWb8Z3QsCiAgICAgIGRpZSB6dXPkdHpsaWNoZSBNb2R1bGbkaGlna2VpdGVuIHp1ciBWZXJm/Gd1bmcgc3RlbGxlbiwKICAgICAgb2huZSBkZW4gS2VybiBkZXMgQXBhY2hlIEhUVFAgU2VydmVycyBhbnBhc3NlbiB6dSBt/HNzZW4uPC9kZD4KCiAgICAgIDxkdD48c3Ryb25nPklQdjYtVW50ZXJzdPx0enVuZzwvc3Ryb25nPjwvZHQ+CgogICAgICA8ZGQ+QXVmIFN5c3RlbWVuLCBiZWkgZGVuZW4gZGllIHp1Z3J1bmRlbGllZ2VuZGUgQXBhY2hlIFBvcnRhYmxlCiAgICAgIFJ1bnRpbWUtQmlibGlvdGhlayBJUHY2IHVudGVyc3T8dHp0LCBiZWtvbW10IGRlciBBcGFjaGUgaHR0cGQKICAgICAgc3RhbmRhcm3k32lnIElQdjYgTGlzdGVuaW5nIFNvY2tldHMuIFp1c+R0emxpY2gKICAgICAgdW50ZXJzdPx0emVuIGRpZSBLb25maWd1cmF0aW9uc2Fud2Vpc3VuZ2VuIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+LCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbmFtZXZpcnR1YWxob3N0Ij5OYW1lVmlydHVhbEhvc3Q8L2E+PC9jb2RlPiB1bmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3ZpcnR1YWxob3N0Ij5WaXJ0dWFsSG9zdDwvYT48L2NvZGU+IG51bWVyaXNjaGUgSVB2Ni1BZHJlc3NhbmdhYmVuCiAgICAgICh6LkIuLCAiPGNvZGU+TGlzdGVuIFsyMDAxOmRiODo6MV06ODA4MDwvY29kZT4iKS48L2RkPgoKICAgICAgPGR0PjxzdHJvbmc+RmlsdGVydW5nPC9zdHJvbmc+PC9kdD4KCiAgICAgIDxkZD5BcGFjaGUtaHR0cGQtTW9kdWxlIGv2bm5lbiBqZXR6dCBhbHMgRmlsdGVyIGVudHdpY2tlbHQKICAgICAgdW5kIHp1ciBGaWx0ZXJ1bmcgZGVzIHJlaW4tIHVuZCByYXVzZ2VoZW5kZW4gRGF0ZW5zdHJvbXMgZGVzCiAgICAgIFNlcnZlcnMgZWluZ2VzZXR6dCB3ZXJkZW4uIEhpZXJkdXJjaCBrYW5uIGJlaXNwaWVsc3dlaXNlIGRpZQogICAgICBBdXNnYWJlIHZvbiBDR0ktU2tyaXB0ZW4gZHVyY2ggZGVuIDxjb2RlPklOQ0xVREVTPC9jb2RlPi1GaWx0ZXIKICAgICAgdm9uIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9pbmNsdWRlLmh0bWwiPm1vZF9pbmNsdWRlPC9hPjwvY29kZT4gYmVhcmJlaXRldCB3ZXJkZW4gdW5kIHNvCiAgICAgIFNlcnZlci1TaWRlIEluY2x1ZGUtQW53ZWlzdW5nZW4gYXVzZ2Vm/GhydCB3ZXJkZW4uIERhcyBNb2R1bAogICAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfZXh0X2ZpbHRlci5odG1sIj5tb2RfZXh0X2ZpbHRlcjwvYT48L2NvZGU+IGVybGF1YnQgZXh0ZXJuZW4gUHJvZ3JhbW1lbiBhbHMKICAgICAgRmlsdGVyIHp1IGFnaWVyZW4sIGluIGRlciBnbGVpY2hlbiBXZWlzZSB3aWUgQ0dJLVByb2dyYW1tZSBhbHMKICAgICAgRWluZ2FiZSBkaWVuZW4ga/ZubmVuLjwvZGQ+CgogICAgICA8ZHQ+PHN0cm9uZz5NZWhyc3ByYWNoaWdlIEZlaGxlcm1lbGR1bmdlbjwvc3Ryb25nPjwvZHQ+CgogICAgICA8ZGQ+RmVobGVybWVsZHVuZ2VuIGRpZSBhbiBkZW4gQnJvd3NlciByYXVzZ2VoZW4sIHN0ZWhlbiBqZXR6dCBhbHMKICAgICAgU1NJLURva3VtZW50ZSBpbiB2ZXJzY2hpZWRlbmVuIFNwcmFjaGVuIHp1ciBWZXJm/Gd1bmcuIFNpZQogICAgICBr9m5uZW4gYmVpIEJlZGFyZiBkdXJjaCBkZW4gQWRtaW5pc3RyYXRvciBhbmdlcGFzc3Qgd2VyZGVuLAogICAgICB1bSBlaW4gZWluaGVpdGxpY2hlcyBEZXNpZ24genUgZXJyZWljaGVuLjwvZGQ+CgogICAgICA8ZHQ+PHN0cm9uZz5WZXJlaW5mYWNodGUgS29uZmlndXJhdGlvbjwvc3Ryb25nPjwvZHQ+CgogICAgICA8ZGQ+VmllbGUgZGVyIHZlcndpcnJlbmRlbiBLb25maWd1cmF0aW9uc2Fud2Vpc3VuZ2VuIHd1cmRlbiB2ZXJlaW5mYWNodC4KICAgICAgRGllIG9mdCBm/HIgVmVyd2lycnVuZyBzb3JnZW5kZW4gPGNvZGU+UG9ydDwvY29kZT4tIHVuZAogICAgICA8Y29kZT5CaW5kQWRkcmVzczwvY29kZT4tQW53ZWlzdW5nZW4gd3VyZGVuIGVudGZlcm50LgogICAgICBBdXNzY2hsaWXfbGljaCBkaWUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2xpc3RlbiI+TGlzdGVuPC9hPjwvY29kZT4tQW53ZWlzdW5nIHdpcmQgbnVuIHp1bQogICAgICBTZXR6ZW4gdm9uIElQLUFkZHJlc3NlbiB1bmQgUG9ydG51bW1lcm4gYmVudXR6dC4KICAgICAgRGVyIFNlcnZlcm5hbWUgdW5kIGRpZSBQb3J0bnVtbWVyLCBkaWUgZvxyIFdlaXRlcmxlaXR1bmdlbiB1bmQKICAgICAgenVyIEVya2VubnVuZyB2aXJ0dWVsbGVyIFNlcnZlciB2ZXJ3ZW5kZXQgd2VyZGVuLCB3ZXJkZW4g/GJlcgogICAgICBkaWUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3NlcnZlcm5hbWUiPlNlcnZlck5hbWU8L2E+PC9jb2RlPi1BbndlaXN1bmcKICAgICAga29uZmlndXJpZXJ0LjwvZGQ+CgogICAgICA8ZHQ+PHN0cm9uZz5OYXRpdmUgV2luZG93cyBOVCBVbmljb2RlLVVudGVyc3T8dHp1bmc8L3N0cm9uZz48L2R0PgoKICAgICAgPGRkPkRlciBBcGFjaGUgaHR0cGQgMi4wIGF1ZiBXaW5kb3dzIE5UIGJlbnV0enQgamV0enQgdXRmLTgKICAgICAgZvxyIGFsbGUgRGF0ZWluYW1lbi1Lb2RpZXJ1bmdlbi4gRGllc2Ugd2VyZGVuIGRpcmVrdCBhdWYgZGFzCiAgICAgIHp1Z3J1bmRlbGllZ2VuZGUgVW5pY29kZS1EYXRlaXN5c3RlbSBhYmdlYmlsZGV0LCB3b2R1cmNoCiAgICAgIE1laHJzcHJhY2gtVW50ZXJzdPx0enVuZyBm/HIgYWxsZSBXaW5kb3dzIE5ULWJhc2llcnRlbgogICAgICBJbnN0YWxsYXRpb25lbiwgaW5rbHVzaXZlIFdpbmRvd3MgMjAwMCB1bmQgV2luZG93cyBYUCwgenVyCiAgICAgIFZlcmb8Z3VuZyBnZXN0ZWxsdCB3aXJkLiAgPGVtPkRpZXNlIFVudGVyc3T8dHp1bmcgaXN0CiAgICAgIG5pY2h0IGF1ZiBXaW5kb3dzIDk1LCA5OCBvZGVyIE1FIHZlcmb8Z2Jhci4gSGllciB3aXJkCiAgICAgIHdlaXRlcmhpbiBkaWUgamV3ZWlscyBsb2thbGUgQ29kZXBhZ2UgZGVzIFJlY2huZXJzIGb8ciBkZW4KICAgICAgWnVncmlmZiBhdWYgZGFzIERhdGVpc3lzdGVtIHZlcndlbmRldC48L2VtPjwvZGQ+CgogICAgICA8ZHQ+QmlibGlvdGhlayBm/HIgcmVndWzkcmUgQXVzZHL8Y2tlIGFrdHVhbGlzaWVydDwvZHQ+CgogICAgICA8ZGQ+RGVyIEFwYWNoZSBodHRwZCAyLjAgZW50aORsdCBkaWUgPGEgaHJlZj0iaHR0cDovL3d3dy5wY3JlLm9yZy8iPiJQZXJsIENvbXBhdGlibGUKICAgICAgUmVndWxhciBFeHByZXNzaW9uIExpYnJhcnkiPC9hPiAoUENSRSkuCiAgICAgIEJlaSBkZXIgQXVzd2VydHVuZyBhbGxlciByZWd1bORyZW4gQXVzZHL8Y2tlIHdpcmQgbnVuCiAgICAgIGRpZSBsZWlzdHVuZ3Nm5GhpZ2VyZSBTeW50YXggdm9uIFBlcmwgNSB2ZXJ3ZW5kZXQuPC9kZD4KCiAgICA8L2RsPgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0ibW9kdWxlIiBpZD0ibW9kdWxlIj5Nb2R1bC1FcndlaXRlcnVuZ2VuPC9hPjwvaDI+CiAgICAKCiAgICA8ZGw+CiAgICAgIDxkdD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2Rfc3NsLmh0bWwiPm1vZF9zc2w8L2E+PC9jb2RlPjwvZHQ+CgogICAgICA8ZGQ+TmV1ZXMgTW9kdWwgaW4gQXBhY2hlIGh0dHBkIDIuMC4gRGllc2VzIE1vZHVsIGlzdCBlaW4KICAgICAgSW50ZXJmYWNlIHp1IGRlbiB2b24gT3BlblNTTCBiZXJlaXRnZXN0ZWxsdGVuIFNTTC9UTFMKICAgICAgVmVyc2NobPxzc2VsdW5ncy1Qcm90b2tvbGxlbi48L2RkPgoKICAgICAgPGR0Pjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9kYXYuaHRtbCI+bW9kX2RhdjwvYT48L2NvZGU+PC9kdD4KCiAgICAgIDxkZD5OZXVlcyBNb2R1bCBpbiBBcGFjaGUgaHR0cGQgMi4wLiBEaWVzZXMgTW9kdWwgaW1wbGVtZW50aWVydAogICAgICBkaWUgSFRUUCBEaXN0cmlidXRlZCBBdXRob3JpbmcgYW5kIFZlcnNpb25pbmcgKERBVikgU3BlemlmaWthdGlvbgogICAgICB6dXIgRXJ6ZXVndW5nIHVuZCBQZmxlZ2Ugdm9uIFdlYi1JbmhhbHRlbi48L2RkPgoKICAgICAgPGR0Pjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9kZWZsYXRlLmh0bWwiPm1vZF9kZWZsYXRlPC9hPjwvY29kZT48L2R0PgoKICAgICAgPGRkPk5ldWVzIE1vZHVsIGluIEFwYWNoZSBodHRwZCAyLjAuIERpZXNlcyBNb2R1bCBlcmxhdWJ0IGVzCiAgICAgIEJyb3dzZXJuLCBkaWUgZGllcyB1bnRlcnN0/HR6ZW4sIGVpbmUgS29tcHJpbWllcnVuZyBkZXMKICAgICAgSW5oYWx0ZXMgdm9yIGRlciBBdXNsaWVmZXJ1bmcgYW56dWZvcmRlcm4sIHVtIHNvCiAgICAgIE5ldHp3ZXJrLUJhbmRicmVpdGUgenUgc3BhcmVuLjwvZGQ+CgogICAgICA8ZHQ+PGNvZGUgY2xhc3M9Im1vZHVsZSI+bW9kX2F1dGhfbGRhcDwvY29kZT48L2R0PgoKICAgICAgPGRkPk5ldWVzIE1vZHVsIGluIEFwYWNoZSBodHRwZCAyLjAuNDEuIERpZXNlIE1vZHVsCiAgICAgIGVybfZnbGljaHQgZGllIFZlcndlbmR1bmcgZWluZXIgTERBUC1EYXRlbmJhbmsgenVyCiAgICAgIFNwZWljaGVydW5nIHZvbiBCZXJlY2h0aWd1bmdzZGF0ZW4gZvxyIGRpZQogICAgICBIVFRQLUJhc2ljLUF1dGhlbnRpY2F0aW9uLiAgRWluIEJlZ2xlaXRtb2R1bCwKICAgICAgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2xkYXAuaHRtbCI+bW9kX2xkYXA8L2E+PC9jb2RlPiwgc3RlbGx0IGVpbmVuIFZlcmJpbmR1bmdzLVBvb2wgdW5kIGRpZQogICAgICBQdWZmZXJ1bmcgdm9uIEFiZnJhZ2VlcmdlYm5pc3NlbiB6dXIgVmVyZvxndW5nLjwvZGQ+CgogICAgICA8ZHQ+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2F1dGhfZGlnZXN0Lmh0bWwiPm1vZF9hdXRoX2RpZ2VzdDwvYT48L2NvZGU+PC9kdD4KCiAgICAgIDxkZD5adXPkdHpsaWNoZSBVbnRlcnN0/HR6dW5nIGb8cgogICAgICBwcm96ZXNz/GJlcmdyZWlmZW5kZXMgU2Vzc2lvbi1DYWNoaW5nIG1pdHRlbHMgU2hhcmVkLU1lbW9yeS4KICAgICAgPC9kZD4KCiAgICAgIDxkdD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfY2hhcnNldF9saXRlLmh0bWwiPm1vZF9jaGFyc2V0X2xpdGU8L2E+PC9jb2RlPjwvZHQ+CgogICAgICA8ZGQ+TmV1ZXMgTW9kdWwgaW4gQXBhY2hlIGh0dHBkIDIuMC4KICAgICAgRGllc2VzIGV4cGVyaW1lbnRlbGxlIE1vZHVsIGVybGF1YnQgWmVpY2hlbnNhdHot3GJlcnNldHp1bmdlbiBvZGVyCiAgICAgIC1VbXNjaGz8c3NlbHVuZy48L2RkPgoKICAgICAgPGR0Pjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9maWxlX2NhY2hlLmh0bWwiPm1vZF9maWxlX2NhY2hlPC9hPjwvY29kZT48L2R0PgoKICAgICAgPGRkPk5ldWVzIE1vZHVsIGluIEFwYWNoZSBodHRwZCAyLjAuIERpZXNlcyBNb2R1bCBiZWluaGFsdGV0IGRpZQogICAgICBGdW5rdGlvbmFsaXTkdCB2b24gPGNvZGU+bW9kX21tYXBfc3RhdGljPC9jb2RlPiBhdXMgVmVyc2lvbgogICAgICAxLjMgZGVzIEFwYWNoZSBIVFRQIFNlcnZlciB6dXr8Z2xpY2ggZWluaWdlciB3ZWl0ZXJlcgogICAgICBDYWNoaW5nLUZ1bmt0aW9uZW4uPC9kZD4KCiAgICAgIDxkdD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaGVhZGVycy5odG1sIj5tb2RfaGVhZGVyczwvYT48L2NvZGU+PC9kdD4KCiAgICAgIDxkZD5EaWVzZXMgTW9kdWwgaXN0IGluIEFwYWNoZSBodHRwZCAyLjAgZGV1dGxpY2ggZmxleGlibGVyCiAgICAgIGdld29yZGVuLiBFcyBrYW5uIGpldHp0IGRpZSB2b24gPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+CiAgICAgIGdlbnV0enRlbiBSZXF1ZXN0LUhlYWRlciBtYW5pcHVsaWVyZW4gdW5kIGVzIGlzdCBt9mdsaWNoCiAgICAgIFJlc3BvbnNlLUhlYWRlciBhdWYgQmFzaXMgdm9uIGRlZmluaWVydGVuIEJlZGluZ3VuZ2VuIHp1CiAgICAgIHZlcuRuZGVybi48L2RkPgoKICAgICAgPGR0Pjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9wcm94eS5odG1sIj5tb2RfcHJveHk8L2E+PC9jb2RlPjwvZHQ+CgogICAgICA8ZGQ+RGFzIFByb3h5IE1vZHVsIHd1cmRlIGtvbXBsZXR0IG5ldSBnZXNjaHJpZWJlbiB1bSBkaWUKICAgICAgTfZnbGljaGtlaXRlbiBkZXIgbmV1ZW4gRmlsdGVyLUZ1bmt0aW9uYWxpdOR0CiAgICAgIGF1c3p1c2No9nBmZW4gdW5kIHVtIGVpbmVuIHp1dmVybORzc2lnZW4gUHJveHkgenUgaGFiZW4sIGRlcgogICAgICBkZW4gSFRUUC8xLjEtU3BlemlmaWthdGlvbmVuIGVudHNwcmljaHQuIE5ldWUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwjcHJveHkiPiZsdDtQcm94eSZndDs8L2E+PC9jb2RlPgogICAgICAtS29uZmlndXJhdGlvbnNhYnNjaG5pdHRlIGJpZXRlbiBlaW5lIGJlc3NlciBsZXNiYXJlICh1bmQgaW50ZXJuCiAgICAgIHNjaG5lbGxlcmUpIEtvbnRyb2xsZSBkZXIgdmVybWl0dGVsdGVuIFNlaXRlbi4KICAgICAgRGllIPxiZXJsYWRlbmVuIDxjb2RlPiZsdDtEaXJlY3RvcnkKICAgICAgInByb3h5Oi4uLiImZ3Q7PC9jb2RlPi1Lb25maWd1cmF0aW9uZW4gd2VyZGVuIG5pY2h0CiAgICAgIG1laHIgdW50ZXJzdPx0enQuIERhcyBNb2R1bCBpc3QgbnVuIGluIG1laHJlcmUgTW9kdWxlCiAgICAgIHVudGVydGVpbHQsIGRpZSBqZXdlaWxzIGVpbiBiZXN0aW1tdGVzINxiZXJ0cmFndW5nc3Byb3Rva29sbAogICAgICB1bnRlcnN0/HR6ZW4sIHdpZSA8Y29kZT5wcm94eV9jb25uZWN0PC9jb2RlPiwKICAgICAgPGNvZGU+cHJveHlfZnRwPC9jb2RlPiB1bmQgPGNvZGU+cHJveHlfaHR0cDwvY29kZT4uPC9kZD4KCiAgICAgIDxkdD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfbmVnb3RpYXRpb24uaHRtbCI+bW9kX25lZ290aWF0aW9uPC9hPjwvY29kZT48L2R0PgoKICAgICAgPGRkPkRpZSBuZXVlIEtvbmZpZ3VyYXRpb25zYW53ZWlzdW5nIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9uZWdvdGlhdGlvbi5odG1sI2ZvcmNlbGFuZ3VhZ2Vwcmlvcml0eSI+Rm9yY2VMYW5ndWFnZVByaW9yaXR5PC9hPjwvY29kZT4KICAgICAga2FubiBiZW51dHp0IHdlcmRlbiwgdW0gc2ljaGVyenVzdGVsbGVuLCBkYXNzIGVpbiBDbGllbnQgYXVmIGplZGVuCiAgICAgIEZhbGwgZWluIGVpbnplbG5lcyBEb2t1bWVudCwgYW5zdGF0dCBlaW5lciBOT1QgQUNDRVBUQUJMRS0gb2RlcgogICAgICBNVUxUSVBMRSBDSE9JQ0VTLUFudHdvcnQsIGJla29tbXQuIFp1c+R0emxpY2ggd3VyZGVuIGRpZQogICAgICBOZWdvdGlhdGlvbi0gdW5kIE11bHRpdmlldy1BbGdvcml0aG1lbiBhbmdlcGFzc3QgdW0gZWluaGVpdGxpY2hlcmUKICAgICAgRXJnZWJuaXNzZSB6dSBsaWVmZXJuLiBBdd9lcmRlbSB3aXJkIGVpbiBuZXVlcwogICAgICBUeXBlLU1hcC1Gb3JtYXQgYmVyZWl0Z2VzdGVsbHQsIGRhcyBEb2t1bWVudGVuaW5oYWx0ZSBkaXJla3QKICAgICAgZW50aGFsdGVuIGthbm4uPC9kZD4KCiAgICAgIDxkdD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfYXV0b2luZGV4Lmh0bWwiPm1vZF9hdXRvaW5kZXg8L2E+PC9jb2RlPjwvZHQ+CgogICAgICA8ZGQ+QXV0b21hdGlzY2ggZXJ6ZXVndGUgVmVyemVpY2huaXNpbmRpemVzIGv2bm5lbiB6dXIgYmVzc2VyZW4KICAgICAg3GJlcnNpY2h0bGljaGtlaXQgZHVyY2ggSFRNTC1UYWJlbGxlbiBkYXJnZXN0ZWxsdCB3ZXJkZW4uCiAgICAgIEdlbmF1ZXJlIFNvcnRpZXJ1bmdlbiwgd2llIFNvcnRpZXJ1bmcgbmFjaCBWZXJzaW9uc251bW1lciB1bmQKICAgICAgV2lsZGNhcmQtRmlsdGVydW5nIGRlcyBWZXJ6ZWljaG5pc2luZGl6ZXMgd2VyZGVuIHVudGVyc3T8dHp0LjwvZGQ+CgogICAgICA8ZHQ+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2luY2x1ZGUuaHRtbCI+bW9kX2luY2x1ZGU8L2E+PC9jb2RlPjwvZHQ+CgogICAgICA8ZGQ+TmV1ZSBBbndlaXN1bmdlbiBlcmxhdWJlbiBlcywgZGllIFN0YW5kYXJkIFN0YXJ0LSB1bmQgRW5kdGFncyB2b24KICAgICAgU1NJLUVsZW1lbnRlbiB6dSDkbmRlcm4uIFp1ZGVtIGv2bm5lbiBkaWUgRGVmYXVsdC1Gb3JtYXRlCiAgICAgIGb8ciBGZWhsZXJtZWxkdW5nZW4gdW5kIFplaXRhbmdhYmVuIG51biBlYmVuZmFsbHMgaW4gZGVyCiAgICAgIFNlcnZlcmtvbmZpZ3VyYXRpb24gdm9yZ2Vub21tZW4gd2VyZGVuLiBBdWYgZGllIEVyZ2Vibmlzc2UgZGVyCiAgICAgIEF1c3dlcnR1bmcgdW5kIEdydXBwaWVydW5nIHZvbiByZWd1bORyZW4gQXVzZHL8Y2tlbiAoamV0enQKICAgICAgYXVmIEJhc2lzIGRlciBQZXJsLVN5bnRheCBm/HIgcmVndWzkcmUgQXVzZHL8Y2tlKSBrYW5uCiAgICAgIPxiZXIgZGllIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9pbmNsdWRlLmh0bWwiPm1vZF9pbmNsdWRlPC9hPjwvY29kZT4gVmFyaWFibGVuIDxjb2RlPiQwPC9jb2RlPgogICAgICBiaXMgPGNvZGU+JDk8L2NvZGU+IHp1Z2VncmlmZmVuIHdlcmRlbi48L2RkPgoKICAgICAgPGR0Pjxjb2RlIGNsYXNzPSJtb2R1bGUiPm1vZF9hdXRoX2RibTwvY29kZT48L2R0PgoKICAgICAgPGRkPkRCTS3kaG5saWNoZSBEYXRlbmJhbmtlbiB3ZXJkZW4gamV0enQgZHVyY2ggZGllCiAgICAgIEtvbmZpZ3VyYXRpb25zYXdlaXN1bmcgPGNvZGU+QXV0aERCTVR5cGU8L2NvZGU+CiAgICAgIHVudGVyc3T8dHp0LjwvZGQ+CiAgICA8L2RsPgogIDwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+VmVyZvxnYmFyZSBTcHJhY2hlbjogPC9zcGFuPjxhIGhyZWY9Ii4vZGUvbmV3X2ZlYXR1cmVzXzJfMC5odG1sIiB0aXRsZT0iRGV1dHNjaCI+Jm5ic3A7ZGUmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lbi9uZXdfZmVhdHVyZXNfMl8wLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL25ld19mZWF0dXJlc18yXzAuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL25ld19mZWF0dXJlc18yXzAuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL25ld19mZWF0dXJlc18yXzAuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9wdC1ici9uZXdfZmVhdHVyZXNfMl8wLmh0bWwiIGhyZWZsYW5nPSJwdC1iciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJQb3J0dWd16nMgKEJyYXNpbCkiPiZuYnNwO3B0LWJyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvbmV3X2ZlYXR1cmVzXzJfMC5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Lb21tZW50YXJlPC9hPjwvaDI+PGRpdiBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5Ob3RpY2U6PC9zdHJvbmc+PGJyIC8+VGhpcyBpcyBub3QgYSBRJmFtcDtBIHNlY3Rpb24uIENvbW1lbnRzIHBsYWNlZCBoZXJlIHNob3VsZCBiZSBwb2ludGVkIHRvd2FyZHMgc3VnZ2VzdGlvbnMgb24gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9yIHNlcnZlciwgYW5kIG1heSBiZSByZW1vdmVkIGJ5IG91ciBtb2RlcmF0b3JzIGlmIHRoZXkgYXJlIGVpdGhlciBpbXBsZW1lbnRlZCBvciBjb25zaWRlcmVkIGludmFsaWQvb2ZmLXRvcGljLiBRdWVzdGlvbnMgb24gaG93IHRvIG1hbmFnZSB0aGUgQXBhY2hlIEhUVFAgU2VydmVyIHNob3VsZCBiZSBkaXJlY3RlZCBhdCBlaXRoZXIgb3VyIElSQyBjaGFubmVsLCAjaHR0cGQsIG9uIExpYmVyYS5jaGF0LCBvciBzZW50IHRvIG91ciA8YSBocmVmPSJodHRwczovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuNC9uZXdfZmVhdHVyZXNfMl8wLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsgCiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAyMSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGl6ZW56aWVydCB1bnRlciBkZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlPC9hPiB8IDxhIGhyZWY9Ii4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWt0aXZlbjwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhcjwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+U2VpdGVuaW5kZXg8L2E+PC9wPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCmlmICh0eXBlb2YocHJldHR5UHJpbnQpICE9PSAndW5kZWZpbmVkJykgewogICAgcHJldHR5UHJpbnQoKTsKfQovLy0tPjwhXV0+PC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+