PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2RfZXhhbXBsZV9ob29rcyAtIFNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjQ8L3RpdGxlPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FpcmU8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5QbGFuIGR1IHNpdGU8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5TZXJ2ZXVyIEFwYWNoZSBIVFRQIFZlcnNpb24gMi40PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9mZWF0aGVyLnBuZyIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+U2VydmV1ciBIVFRQPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4uLyI+VmVyc2lvbiAyLjQ8L2E+ICZndDsgPGEgaHJlZj0iLi8iPk1vZHVsZXM8L2E+PC9kaXY+CjxkaXYgaWQ9InBhZ2UtY29udGVudCI+CjxkaXYgaWQ9InByZWFtYmxlIj48aDE+TW9kdWxlIEFwYWNoZSBtb2RfZXhhbXBsZV9ob29rczwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9leGFtcGxlX2hvb2tzLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9mci9tb2QvbW9kX2V4YW1wbGVfaG9va3MuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9tb2QvbW9kX2V4YW1wbGVfaG9va3MuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJtb2R1bGUiPjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPklsbHVzdHJhdGlvbiBkZSBsJ0FQSSBkZXMgbW9kdWxlcyBBcGFjaGU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1dDo8L2E+PC90aD48dGQ+RXhw6XJpbWVudGFsPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjTW9kdWxlSWRlbnRpZmllciI+SWRlbnRpZmljYXRldXKgZGWgTW9kdWxlOjwvYT48L3RoPjx0ZD5leGFtcGxlX2hvb2tzX21vZHVsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1NvdXJjZUZpbGUiPkZpY2hpZXKgU291cmNlOjwvYT48L3RoPjx0ZD5tb2RfZXhhbXBsZV9ob29rcy5jPC90ZD48L3RyPjwvdGFibGU+CjxoMz5Tb21tYWlyZTwvaDM+CgogICAgPHA+Q2VydGFpbnMgZmljaGllcnMgc2l0delzIGRhbnMgbGUgculwZXJ0b2lyZQogICAgPGNvZGU+bW9kdWxlcy9leGFtcGxlczwvY29kZT4gZGUgbCdhcmJvcmVzY2VuY2UgZGUgbGEKICAgIGRpc3RyaWJ1dGlvbiBkJ0FwYWNoZSBzb250IGZvdXJuaXMg4CB0aXRyZSBkJ2V4ZW1wbGVzIHBvdXIgY2V1eCBxdWkKICAgIHNvdWhhaXRlbnQg6WNyaXJlIGRlcyBtb2R1bGVzIHF1aSB1dGlsaXNlbnQgbCdBUEkgZCdBcGFjaGUuPC9wPgoKICAgIDxwPkxlIGZpY2hpZXIgcHJpbmNpcGFsIGVzdCA8Y29kZT5tb2RfZXhhbXBsZV9ob29rcy5jPC9jb2RlPiwgcXVpCiAgICBjb25zdGl0dWUgdW5lIGlsbHVzdHJhdGlvbiBleGhhdXN0aXZlIGRlcyBkaWZm6XJlbnRzIG3pY2FuaXNtZXMgZXQKICAgIHN5bnRheGVzIGQnYXBwZWxzLiBFbiBhdWN1biBjYXMgdW4gbW9kdWxlIGFkZGl0aW9ubmVsIG4nYXVyYSDgCiAgICBpbmNsdXJlIGRlcyByb3V0aW5lcyBwb3VyIHRvdXMgbGVzIGFwcGVscyAtIGlsIG4nZW4gbuljZXNzaXRlcmEgYXUKICAgIGNvbnRyYWlyZSBxdSd1biBwZXRpdCBub21icmUgITwvcD4KCiAgICA8cD5MZSBtb2R1bGUgZXhhbXBsZV9ob29rcyBmb25jdGlvbm5lIHLpZWxsZW1lbnQuIFNpIHZvdXMgbGUgY2hhcmdleiBkYW5zCiAgICB2b3RyZSBzZXJ2ZXVyLCBhY3RpdmV6IGxlIGdlc3Rpb25uYWlyZSAiZXhhbXBsZS1ob29rcy1oYW5kbGVyIiBkYW5zIHVuZQogICAgc2VjdGlvbiBsb2NhdGlvbiwgZXQgZXNzYXlleiBkJ2FjY+lkZXIg4CBsYSB6b25lIGR1IHNpdGUgd2ViCiAgICBjb3JyZXNwb25kYW50ZSwgdm91cyB2ZXJyZXogcydhZmZpY2hlciBjZXJ0YWluZXMgc29ydGllcyBxdWUgbGUKICAgIG1vZHVsZSBleGFtcGxlX2hvb2tzIHByb2R1aXQgYXUgY291cnMgZGVzIGRpZmbpcmVudHMgYXBwZWxzLjwvcD4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzPlN1amV0czwvaDM+Cjx1bCBpZD0idG9waWNzIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjY29tcGlsaW5nIj5Db21waWxhdGlvbiBkdSBtb2R1bGUgZXhhbXBsZV9ob29rczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN1c2luZyI+VXRpbGlzYXRpb24gZHUgbW9kdWxlCjxjb2RlPm1vZF9leGFtcGxlX2hvb2tzPC9jb2RlPjwvYT48L2xpPgo8L3VsPjxoMyBjbGFzcz0iZGlyZWN0aXZlcyI+RGlyZWN0aXZlczwvaDM+Cjx1bCBpZD0idG9jIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjZXhhbXBsZSI+RXhhbXBsZTwvYT48L2xpPgo8L3VsPgo8aDM+VHJhaXRlbWVudCBkZXMgYnVnczwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2h0dHBkL0NIQU5HRVNfMi40Ij5Kb3VybmFsIGRlcyBtb2RpZmljYXRpb25zIGRlIGh0dHBkPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYnouYXBhY2hlLm9yZy9idWd6aWxsYS9idWdsaXN0LmNnaT9idWdfc3RhdHVzPV9fb3Blbl9fJmFtcDtsaXN0X2lkPTE0NDUzMiZhbXA7cHJvZHVjdD1BcGFjaGUlMjBodHRwZC0yJmFtcDtxdWVyeV9mb3JtYXQ9c3BlY2lmaWMmYW1wO29yZGVyPWNoYW5nZWRkYXRlJTIwREVTQyUyQ3ByaW9yaXR5JTJDYnVnX3NldmVyaXR5JmFtcDtjb21wb25lbnQ9bW9kX2V4YW1wbGVfaG9va3MiPlByb2Js6G1lcyBjb25udXM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9iei5hcGFjaGUub3JnL2J1Z3ppbGxhL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD1BcGFjaGUlMjBodHRwZC0yJmFtcDtjb21wb25lbnQ9bW9kX2V4YW1wbGVfaG9va3MiPlNpZ25hbGVyIHVuIGJ1ZzwvYT48L2xpPjwvdWw+PGgzPlZvaXIgYXVzc2k8L2gzPgo8dWwgY2xhc3M9InNlZWFsc28iPgo8bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImNvbXBpbGluZyIgaWQ9ImNvbXBpbGluZyI+Q29tcGlsYXRpb24gZHUgbW9kdWxlIGV4YW1wbGVfaG9va3M8L2E+PC9oMj4KCiAgICA8cD5Qb3VyIGluY2x1cmUgbGUgbW9kdWxlIGV4YW1wbGVfaG9va3MgZGFucyB2b3RyZSBzZXJ2ZXVyLCBlZmZlY3R1ZXogbGVzCiAgICDpdGFwZXMgc3VpdmFudGVzIDo8L3A+CgogICAgPG9sPgogICAgICA8bGk+RXjpY3V0ZXogPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4uL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPiBhdmVjIGwnb3B0aW9uCiAgICAgIDxjb2RlPi0tZW5hYmxlLWV4YW1wbGUtaG9va3M8L2NvZGU+LjwvbGk+CgogICAgICA8bGk+Q29tcGlsZXogbGUgc2VydmV1ciAoZXjpY3V0ZXogbGEgY29tbWFuZGUKICAgICAgIjxjb2RlPm1ha2U8L2NvZGU+IikuPC9saT4KICAgIDwvb2w+CgogICAgPHA+UG91ciBham91dGVyIHZvdHJlIHByb3ByZSBtb2R1bGUgOjwvcD4KCiAgICA8b2wgY2xhc3M9InVwLUEiPgogICAgICA8bGk+PGNvZGU+Y3AgbW9kdWxlcy9leGFtcGxlcy9tb2RfZXhhbXBsZV9ob29rcy5jCiAgICAgIG1vZHVsZXMvbm91dmVhdV9tb2R1bGUvPGVtPm1vZF9tb25leGVtcGxlLmM8L2VtPjwvY29kZT48L2xpPgoKICAgICAgPGxpPk1vZGlmaWV6IGxlIGZpY2hpZXIuPC9saT4KCiAgICAgIDxsaT5DculleiA8Y29kZT5tb2R1bGVzL25vdXZlYXVfbW9kdWxlL2NvbmZpZy5tNDwvY29kZT4uCiAgICAgICAgPG9sPgogICAgICAgICAgPGxpPkFqb3V0ZXogPGNvZGU+QVBBQ0hFX01PRFBBVEhfSU5JVChub3V2ZWF1X21vZHVsZSk8L2NvZGU+LjwvbGk+CiAgICAgICAgICA8bGk+Q29waWV6IGxhIGxpZ25lIEFQQUNIRV9NT0RVTEUgY29udGVuYW50ICJleGFtcGxlX2hvb2tzIiBkZXB1aXMKCSAgPGNvZGU+bW9kdWxlcy9leGFtcGxlcy9jb25maWcubTQ8L2NvZGU+LjwvbGk+CiAgICAgICAgICA8bGk+UmVtcGxhY2V6IGxlIHByZW1pZXIgYXJndW1lbnQgImV4YW1wbGUtaG9va3MiIHBhcgoJICA8ZW0+bW9uZXhlbXBsZTwvZW0+LjwvbGk+CiAgICAgICAgICA8bGk+UmVtcGxhY2V6IGxlIHNlY29uZCBhcmd1bWVudCBwYXIgdW5lIGJy6HZlIGRlc2NyaXB0aW9uIGRlCgkgIHZvdHJlIG1vZHVsZS4gQ2V0dGUgZGVzY3JpcHRpb24gc2VyYSB1dGlsaXPpZSBwYXIgbGEgY29tbWFuZGUKCSAgPGNvZGU+Y29uZmlndXJlIC0taGVscDwvY29kZT4uPC9saT4KICAgICAgICAgIDxsaT5TaSBsYSBjb21waWxhdGlvbiBkZSB2b3RyZSBtb2R1bGUgbuljZXNzaXRlIGRlcyBkcmFwZWF1eAoJICBkZSBjb21waWxhdGlvbiBDLCBkZXMgZHJhcGVhdXggZCfpZGl0aW9uIGRlIGxpZW5zLCBvdSBkZQoJICBiaWJsaW90aOhxdWVzIHN1cHBs6W1lbnRhaXJlcywgYWpvdXRleiBsZXMgcmVzcGVjdGl2ZW1lbnQg4AoJICBDRkxBR1MsIExERkxBR1MgZXQgTElCUy4gUmVwb3J0ZXotdm91cyBhdXggZmljaGllcnMKCSAgPGNvZGU+Y29uZmlnLm00PC9jb2RlPiBkZXMgculwZXJ0b2lyZXMgZGVzIGF1dHJlcyBtb2R1bGVzIHBvdXIKCSAgcGx1cyBkJ2V4ZW1wbGVzLjwvbGk+CiAgICAgICAgICA8bGk+QWpvdXRleiA8Y29kZT5BUEFDSEVfTU9EUEFUSF9GSU5JU0g8L2NvZGU+LjwvbGk+CiAgICAgICAgPC9vbD4KICAgICAgPC9saT4KCiAgICAgIDxsaT5DculleiBsZSBmaWNoaWVyCiAgICAgIDxjb2RlPm1vZHVsZS9ub3V2ZWF1X21vZHVsZS9NYWtlZmlsZS5pbjwvY29kZT4uCiAgICAgIFNpIGxhIGNvbXBpbGF0aW9uIGRlIHZvdHJlIG1vZHVsZSBuZSBu6WNlc3NpdGUgcGFzIGQnaW5zdHJ1Y3Rpb25zCiAgICAgIHBhcnRpY3VsaehyZXMsIGNlIGZpY2hpZXIgbmUgZG9pdCBjb250ZW5pciBxdWUgbGEgbGlnbmUKICAgICAgPGNvZGU+aW5jbHVkZSAkKHRvcF9zcmNkaXIpL2J1aWxkL3NwZWNpYWwubWs8L2NvZGU+LjwvbGk+CgogICAgICA8bGk+RXjpY3V0ZXogLi9idWlsZGNvbmYg4CBsYSByYWNpbmUgZHUgculwZXJ0b2lyZS48L2xpPgoKICAgICAgPGxpPkNvbXBpbGV6IGxlIHNlcnZldXIgYXBy6HMgYXZvaXIgZXjpY3V06SBsYSBjb21tYW5kZSBjb25maWd1cmUKICAgICAgYXZlYyBsJ29wdGlvbiAtLWVuYWJsZS1tb25leGVtcGxlLjwvbGk+CgogICAgPC9vbD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idXNpbmciIGlkPSJ1c2luZyI+VXRpbGlzYXRpb24gZHUgbW9kdWxlCjxjb2RlPm1vZF9leGFtcGxlX2hvb2tzPC9jb2RlPjwvYT48L2gyPgoKICAgIDxwPlBvdXIgYWN0aXZlciBsZSBtb2R1bGUgZXhhbXBsZV9ob29rcywgYWpvdXRleiDgIHZvdHJlIGZpY2hpZXIKICAgIDxjb2RlPmh0dHBkLmNvbmY8L2NvZGU+IHVuIGJsb2MgZHUgc3R5bGUgOjwvcD4KPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtMb2NhdGlvbiAiL2V4YW1wbGUtaG9va3MtaW5mbyImZ3Q7CiAgIFNldEhhbmRsZXIgZXhhbXBsZS1ob29rcy1oYW5kbGVyCiZsdDsvTG9jYXRpb24mZ3Q7PC9wcmU+CgoKICAgIDxwPlZvdXMgcG91dmV6IGF1c3NpIGFqb3V0ZXIgY2UgcXVpIHN1aXQgZGFucyB1biBmaWNoaWVyIDxhIGhyZWY9ImNvcmUuaHRtbCNhY2Nlc3NmaWxlbmFtZSI+PGNvZGU+Lmh0YWNjZXNzPC9jb2RlPjwvYT4sIHB1aXMKICAgIGFjY+lkZXIgYXUgZmljaGllciAidGVzdC5leGFtcGxlIiDgIHBhcnRpciBkdSBy6XBlcnRvaXJlCiAgICBjb3JyZXNwb25kYW50IDo8L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+QWRkSGFuZGxlciBleGFtcGxlLWhvb2tzLWhhbmRsZXIgIi5leGFtcGxlIjwvcHJlPgoKCiAgICA8cD5BcHLocyBhdm9pciByZWNoYXJn6SBsYSBjb25maWd1cmF0aW9uIG91IHJlZOltYXJy6SB2b3RyZSBzZXJ2ZXVyLAogICAgdm91cyBkZXZyaWV6IHBvdXZvaXIgYWNj6WRlciDgIGNlIGZpY2hpZXIgZXQgdm9pciBzJ2FmZmljaGVyIGNlIHF1aQogICAgYSDpdOkgZOljcml0IHBsdXMgaGF1dC48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJleGFtcGxlIiBpZD0iZXhhbXBsZSI+RGlyZWN0aXZlPC9hPiA8YSBuYW1lPSJFeGFtcGxlIiBpZD0iRXhhbXBsZSI+RXhhbXBsZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkRpcmVjdGl2ZSBkZSBk6W1vbnN0cmF0aW9uIHBvdXIgaWxsdXN0cmVyIGwnQVBJIGRlcyBtb2R1bGVzCkFwYWNoZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4ZTo8L2E+PC90aD48dGQ+PGNvZGU+RXhhbXBsZTwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0ZTo8L2E+PC90aD48dGQ+Y29uZmlndXJhdGlvbiBkdSBzZXJ2ZXVyLCBzZXJ2ZXVyIHZpcnR1ZWwsIHLpcGVydG9pcmUsIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHV0OjwvYT48L3RoPjx0ZD5FeHDpcmltZW50YWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2V4YW1wbGVfaG9va3M8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RXhhbXBsZTwvY29kZT4gbidhIHBvdXIgZm9uY3Rpb24gcXVlCiAgICBkZSBk6WZpbmlyIHVuIGRyYXBlYXUgZGUgZOltb25zdHJhdGlvbiBxdWUgbGUgZ2VzdGlvbm5haXJlIGRlCiAgICBjb250ZW51IGR1IG1vZHVsZSBleGFtcGxlX2hvb2tzIHZhIGFmZmljaGVyLiBFbGxlIG5lIHBvc3PoZGUgYXVjdW4KICAgIGFyZ3VtZW50LiBTaSB2b3VzIG5hdmlndWV6IHZlcnMgdW5lIFVSTCDgIGxhcXVlbGxlIGxlIGdlc3Rpb25uYWlyZQogICAgZGUgY29udGVudSBleGFtcGxlX2hvb2tzIHMnYXBwbGlxdWUsIHZvdXMgdmVycmV6IHMnYWZmaWNoZXIgbGVzIHJvdXRpbmVzCiAgICBkdSBtb2R1bGUsIGFpbnNpIHF1ZSBsJ29yZHJlIGRhbnMgbGVxdWVsIGVsbGVzIG9udCDpdOkgYXBwZWzpZXMgcG91cgogICAgc2VydmlyIGxlIGRvY3VtZW50IGRlbWFuZOkuIE9uIHBldXQgb2JzZXJ2ZXIgbCdlZmZldCBkZSBjZXR0ZQogICAgZGlyZWN0aXZlIGRhbnMgbGEgcGhyYXNlICI8Y29kZT5FeGFtcGxlCiAgICBkaXJlY3RpdmUgZGVjbGFyZWQgaGVyZTogWUVTL05PPC9jb2RlPiIuPC9wPgoKPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfZXhhbXBsZV9ob29rcy5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvbW9kL21vZF9leGFtcGxlX2hvb2tzLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vbW9kL21vZF9leGFtcGxlX2hvb2tzLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjQvbW9kL21vZF9leGFtcGxlX2hvb2tzLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsgCiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+QXV0b3Jpc+kgc291cyA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==