PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPm1vZF9hdXRoel9kYm0gLSBBcGFjaGUgSFRUUCBTZXJ2ZXI8L3RpdGxlPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPgo8bGluayBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuMzwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5naWYiIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAgU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MtcHJvamVjdC8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuMzwvYT4gJmd0OyA8YSBocmVmPSIuLyI+TW9kdWxlczwvYT48L2Rpdj4KPGRpdiBpZD0icGFnZS1jb250ZW50Ij4KPGRpdiBpZD0icHJlYW1ibGUiPjxoMT5BcGFjaGUgTW9kdWxlIG1vZF9hdXRoel9kYm08L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfYXV0aHpfZGJtLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9tb2QvbW9kX2F1dGh6X2RibS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8dGFibGUgY2xhc3M9Im1vZHVsZSI+PHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+R3JvdXAgYXV0aG9yaXphdGlvbiB1c2luZyBEQk0gZmlsZXM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjTW9kdWxlSWRlbnRpZmllciI+TW9kdWxloElkZW50aWZpZXI6PC9hPjwvdGg+PHRkPmF1dGh6X2RibV9tb2R1bGU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTb3VyY2VGaWxlIj5Tb3VyY2WgRmlsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGh6X2RibS5jPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjQ29tcGF0aWJpbGl0eSI+Q29tcGF0aWJpbGl0eTo8L2E+PC90aD48dGQ+QXZhaWxhYmxlIGluIEFwYWNoZSAyLjEgYW5kIGxhdGVyPC90ZD48L3RyPjwvdGFibGU+CjxoMz5TdW1tYXJ5PC9oMz4KCiAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhdXRob3JpemF0aW9uIGNhcGFiaWxpdGllcyBzbyB0aGF0CiAgICAgICBhdXRoZW50aWNhdGVkIHVzZXJzIGNhbiBiZSBhbGxvd2VkIG9yIGRlbmllZCBhY2Nlc3MgdG8gcG9ydGlvbnMKICAgICAgIG9mIHRoZSB3ZWIgc2l0ZSBieSBncm91cCBtZW1iZXJzaGlwLiBTaW1pbGFyIGZ1bmN0aW9uYWxpdHkgaXMKICAgICAgIHByb3ZpZGVkIGJ5IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aHpfZ3JvdXBmaWxlLmh0bWwiPm1vZF9hdXRoel9ncm91cGZpbGU8L2E+PC9jb2RlPi48L3A+CjwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjxoMyBjbGFzcz0iZGlyZWN0aXZlcyI+RGlyZWN0aXZlczwvaDM+Cjx1bCBpZD0idG9jIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGRibWdyb3VwZmlsZSI+QXV0aERCTUdyb3VwRmlsZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNhdXRoemRibWF1dGhvcml0YXRpdmUiPkF1dGh6REJNQXV0aG9yaXRhdGl2ZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNhdXRoemRibXR5cGUiPkF1dGh6REJNVHlwZTwvYT48L2xpPgo8L3VsPgo8aDM+U2VlIGFsc288L2gzPgo8dWwgY2xhc3M9InNlZWFsc28iPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNyZXF1aXJlIj5SZXF1aXJlPC9hPjwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNzYXRpc2Z5Ij5TYXRpc2Z5PC9hPjwvY29kZT48L2xpPgo8L3VsPjwvZGl2PgoKPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iQXV0aERCTUdyb3VwRmlsZSIgaWQ9IkF1dGhEQk1Hcm91cEZpbGUiPkF1dGhEQk1Hcm91cEZpbGU8L2E+IDxhIG5hbWU9ImF1dGhkYm1ncm91cGZpbGUiIGlkPSJhdXRoZGJtZ3JvdXBmaWxlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TZXRzIHRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSBmaWxlIGNvbnRhaW5pbmcgdGhlIGxpc3QKb2YgdXNlciBncm91cHMgZm9yIGF1dGhvcml6YXRpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aERCTUdyb3VwRmlsZSA8dmFyPmZpbGUtcGF0aDwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+QXV0aENvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGh6X2RibTwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5BdXRoREJNR3JvdXBGaWxlPC9jb2RlPiBkaXJlY3RpdmUgc2V0cyB0aGUKICAgIG5hbWUgb2YgYSBEQk0gZmlsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIHVzZXIgZ3JvdXBzIGZvciB1c2VyCiAgICBhdXRob3JpemF0aW9uLiAgPHZhcj5GaWxlLXBhdGg8L3Zhcj4gaXMgdGhlIGFic29sdXRlIHBhdGggdG8gdGhlCiAgICBncm91cCBmaWxlLjwvcD4KCiAgICA8cD5UaGUgZ3JvdXAgZmlsZSBpcyBrZXllZCBvbiB0aGUgdXNlcm5hbWUuIFRoZSB2YWx1ZSBmb3IgYQogICAgdXNlciBpcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBncm91cHMgdG8gd2hpY2ggdGhlIHVzZXJzCiAgICBiZWxvbmdzLiBUaGVyZSBtdXN0IGJlIG5vIHdoaXRlc3BhY2Ugd2l0aGluIHRoZSB2YWx1ZSwgYW5kIGl0CiAgICBtdXN0IG5ldmVyIGNvbnRhaW4gYW55IGNvbG9ucy48L3A+CgogICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPlNlY3VyaXR5PC9oMz4KICAgICAgPHA+TWFrZSBzdXJlIHRoYXQgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkF1dGhEQk1Hcm91cEZpbGU8L2NvZGU+IGlzCiAgICAgIHN0b3JlZCBvdXRzaWRlIHRoZSBkb2N1bWVudCB0cmVlIG9mIHRoZSB3ZWItc2VydmVyLiBEbwogICAgICA8c3Ryb25nPm5vdDwvc3Ryb25nPiBwdXQgaXQgaW4gdGhlIGRpcmVjdG9yeSB0aGF0IGl0IHByb3RlY3RzLgogICAgICBPdGhlcndpc2UsIGNsaWVudHMgd2lsbCBiZSBhYmxlIHRvIGRvd25sb2FkIHRoZQogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5BdXRoREJNR3JvdXBGaWxlPC9jb2RlPiB1bmxlc3Mgb3RoZXJ3aXNlCiAgICAgIHByb3RlY3RlZC48L3A+CiAgICA8L2Rpdj4KCiAgICA8cD5Db21iaW5pbmcgR3JvdXAgYW5kIFBhc3N3b3JkIERCTSBmaWxlczogSW4gc29tZSBjYXNlcyBpdCBpcwogICAgZWFzaWVyIHRvIG1hbmFnZSBhIHNpbmdsZSBkYXRhYmFzZSB3aGljaCBjb250YWlucyBib3RoIHRoZQogICAgcGFzc3dvcmQgYW5kIGdyb3VwIGRldGFpbHMgZm9yIGVhY2ggdXNlci4gVGhpcyBzaW1wbGlmaWVzIGFueQogICAgc3VwcG9ydCBwcm9ncmFtcyB0aGF0IG5lZWQgdG8gYmUgd3JpdHRlbjogdGhleSBub3cgb25seSBoYXZlIHRvCiAgICBkZWFsIHdpdGggd3JpdGluZyB0byBhbmQgbG9ja2luZyBhIHNpbmdsZSBEQk0gZmlsZS4gVGhpcyBjYW4gYmUKICAgIGFjY29tcGxpc2hlZCBieSBmaXJzdCBzZXR0aW5nIHRoZSBncm91cCBhbmQgcGFzc3dvcmQgZmlsZXMgdG8KICAgIHBvaW50IHRvIHRoZSBzYW1lIERCTTo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgIEF1dGhEQk1Hcm91cEZpbGUgL3d3dy91c2VyYmFzZTxiciAvPgogICAgICBBdXRoREJNVXNlckZpbGUgL3d3dy91c2VyYmFzZQogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5UaGUga2V5IGZvciB0aGUgc2luZ2xlIERCTSBpcyB0aGUgdXNlcm5hbWUuIFRoZSB2YWx1ZSBjb25zaXN0cwogICAgb2Y8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgIEVuY3J5cHRlZCBQYXNzd29yZCA6IExpc3Qgb2YgR3JvdXBzIFsgOiAoaWdub3JlZCkgXQogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5UaGUgcGFzc3dvcmQgc2VjdGlvbiBjb250YWlucyB0aGUgZW5jcnlwdGVkCiAgICBwYXNzd29yZCBhcyBiZWZvcmUuIFRoaXMgaXMgZm9sbG93ZWQgYnkgYSBjb2xvbiBhbmQgdGhlIGNvbW1hCiAgICBzZXBhcmF0ZWQgbGlzdCBvZiBncm91cHMuIE90aGVyIGRhdGEgbWF5IG9wdGlvbmFsbHkgYmUgbGVmdCBpbiB0aGUKICAgIERCTSBmaWxlIGFmdGVyIGFub3RoZXIgY29sb247IGl0IGlzIGlnbm9yZWQgYnkgdGhlIGF1dGhvcml6YXRpb24KICAgIG1vZHVsZS4gVGhpcyBpcyB3aGF0IHd3dy50ZWxlc2NvcGUub3JnIHVzZXMgZm9yIGl0cyBjb21iaW5lZAogICAgcGFzc3dvcmQgYW5kIGdyb3VwIGRhdGFiYXNlLjwvcD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoekRCTUF1dGhvcml0YXRpdmUiIGlkPSJBdXRoekRCTUF1dGhvcml0YXRpdmUiPkF1dGh6REJNQXV0aG9yaXRhdGl2ZTwvYT4gPGEgbmFtZT0iYXV0aHpkYm1hdXRob3JpdGF0aXZlIiBpZD0iYXV0aHpkYm1hdXRob3JpdGF0aXZlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TZXRzIHdoZXRoZXIgYXV0aG9yaXphdGlvbiB3aWxsIGJlIHBhc3NlZCBvbiB0byBsb3dlciBsZXZlbAptb2R1bGVzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGh6REJNQXV0aG9yaXRhdGl2ZSBPbnxPZmY8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aHpEQk1BdXRob3JpdGF0aXZlIE9uPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5BdXRoQ29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfYXV0aHpfZGJtPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+U2V0dGluZyB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+QXV0aHpEQk1BdXRob3JpdGF0aXZlPC9jb2RlPgogICAgZGlyZWN0aXZlIGV4cGxpY2l0bHkgdG8gPGNvZGU+T2ZmPC9jb2RlPiBhbGxvd3MgZ3JvdXAgYXV0aG9yaXphdGlvbgogICAgdG8gYmUgcGFzc2VkIG9uIHRvIGxvd2VyIGxldmVsIG1vZHVsZXMgKGFzIGRlZmluZWQgaW4gdGhlCiAgICA8Y29kZT5tb2R1bGVzLmM8L2NvZGU+IGZpbGUpIGlmIHRoZXJlIGlzIG5vIGdyb3VwIGZvdW5kCiAgICBmb3IgdGhlIHRoZSBzdXBwbGllZCB1c2VySUQuIElmIHRoZXJlIGFyZSBhbnkgZ3JvdXBzCiAgICBzcGVjaWZpZWQsIHRoZSB1c3VhbCBjaGVja3Mgd2lsbCBiZSBhcHBsaWVkIGFuZCBhIGZhaWx1cmUgd2lsbAogICAgZ2l2ZSBhbiBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZCByZXBseS48L3A+CgogICAgPHA+U28gaWYgYSB1c2VySUQgYXBwZWFycyBpbiB0aGUgZGF0YWJhc2Ugb2YgbW9yZSB0aGFuIG9uZSBtb2R1bGU7CiAgICBvciBpZiBhIHZhbGlkIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjcmVxdWlyZSI+UmVxdWlyZTwvYT48L2NvZGU+CiAgICBkaXJlY3RpdmUgYXBwbGllcyB0byBtb3JlIHRoYW4gb25lIG1vZHVsZTsgdGhlbiB0aGUgZmlyc3QgbW9kdWxlCiAgICB3aWxsIHZlcmlmeSB0aGUgY3JlZGVudGlhbHM7IGFuZCBubyBhY2Nlc3MgaXMgcGFzc2VkIG9uOwogICAgcmVnYXJkbGVzcyBvZiB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+QXV0aEF1dGhvcml0YXRpdmU8L2NvZGU+IHNldHRpbmcuPC9wPgoKICAgIDxwPkEgY29tbW9uIHVzZSBmb3IgdGhpcyBpcyBpbiBjb25qdW5jdGlvbiB3aXRoIG9uZSBvZiB0aGUKICAgIGF1dGggcHJvdmlkZXJzOyBzdWNoIGFzIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG5fZGJtLmh0bWwiPm1vZF9hdXRobl9kYm08L2E+PC9jb2RlPiBvcgogICAgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobl9maWxlLmh0bWwiPm1vZF9hdXRobl9maWxlPC9hPjwvY29kZT4uIFdoZXJlYXMgdGhpcyBEQk0gbW9kdWxlIHN1cHBsaWVzCiAgICB0aGUgYnVsayBvZiB0aGUgdXNlciBjcmVkZW50aWFsIGNoZWNraW5nOyBhIGZldyAoYWRtaW5pc3RyYXRvcikgcmVsYXRlZAogICAgYWNjZXNzZXMgZmFsbCB0aHJvdWdoIHRvIGEgbG93ZXIgbGV2ZWwgd2l0aCBhIHdlbGwgcHJvdGVjdGVkCiAgICA8Y29kZT4uaHRwYXNzd2Q8L2NvZGU+IGZpbGUuPC9wPgoKICAgIDxwPkJ5IGRlZmF1bHQsIGNvbnRyb2wgaXMgbm90IHBhc3NlZCBvbiBhbmQgYW4gdW5rbm93biBncm91cAogICAgd2lsbCByZXN1bHQgaW4gYW4gQXV0aGVudGljYXRpb24gUmVxdWlyZWQgcmVwbHkuIE5vdAogICAgc2V0dGluZyBpdCB0aHVzIGtlZXBzIHRoZSBzeXN0ZW0gc2VjdXJlIGFuZCBmb3JjZXMgYW4gTkNTQQogICAgY29tcGxpYW50IGJlaGF2aW91ci48L3A+CgogICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGgzPlNlY3VyaXR5PC9oMz4KICAgICAgPHA+RG8gY29uc2lkZXIgdGhlIGltcGxpY2F0aW9ucyBvZiBhbGxvd2luZyBhIHVzZXIgdG8KICAgICAgYWxsb3cgZmFsbC10aHJvdWdoIGluIGhpcyAuaHRhY2Nlc3MgZmlsZTsgYW5kIHZlcmlmeSB0aGF0IHRoaXMKICAgICAgaXMgcmVhbGx5IHdoYXQgeW91IHdhbnQ7IEdlbmVyYWxseSBpdCBpcyBlYXNpZXIgdG8ganVzdCBzZWN1cmUKICAgICAgYSBzaW5nbGUgPGNvZGU+Lmh0cGFzc3dkPC9jb2RlPiBmaWxlLCB0aGFuIGl0IGlzIHRvIHNlY3VyZSBhCiAgICAgIGRhdGFiYXNlIHdoaWNoIG1pZ2h0IGhhdmUgbW9yZSBhY2Nlc3MgaW50ZXJmYWNlcy48L3A+CiAgICA8L2Rpdj4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoekRCTVR5cGUiIGlkPSJBdXRoekRCTVR5cGUiPkF1dGh6REJNVHlwZTwvYT4gPGEgbmFtZT0iYXV0aHpkYm10eXBlIiBpZD0iYXV0aHpkYm10eXBlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TZXRzIHRoZSB0eXBlIG9mIGRhdGFiYXNlIGZpbGUgdGhhdCBpcyB1c2VkIHRvCnN0b3JlIGxpc3Qgb2YgdXNlciBncm91cHM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aHpEQk1UeXBlIGRlZmF1bHR8U0RCTXxHREJNfE5EQk18REI8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aHpEQk1UeXBlIGRlZmF1bHQ8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkF1dGhDb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9hdXRoel9kYm08L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5TZXRzIHRoZSB0eXBlIG9mIGRhdGFiYXNlIGZpbGUgdGhhdCBpcyB1c2VkIHRvIHN0b3JlIHRoZSBsaXN0CiAgICBvZiB1c2VyIGdyb3Vwcy4KICAgIFRoZSBkZWZhdWx0IGRhdGFiYXNlIHR5cGUgaXMgZGV0ZXJtaW5lZCBhdCBjb21waWxlIHRpbWUuICBUaGUKICAgIGF2YWlsYWJpbGl0eSBvZiBvdGhlciB0eXBlcyBvZiBkYXRhYmFzZSBmaWxlcyBhbHNvIGRlcGVuZHMgb24KICAgIDxhIGhyZWY9Ii4uL2luc3RhbGwuaHRtbCNkYm0iPmNvbXBpbGUtdGltZSBzZXR0aW5nczwvYT4uPC9wPgoKICAgIDxwPkl0IGlzIGNydWNpYWwgdGhhdCB3aGF0ZXZlciBwcm9ncmFtIHlvdSB1c2UgdG8gY3JlYXRlIHlvdXIgZ3JvdXAKICAgIGZpbGVzIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBzYW1lIHR5cGUgb2YgZGF0YWJhc2UuPC9wPgoKPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfYXV0aHpfZGJtLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9tb2QvbW9kX2F1dGh6X2RibS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAxOTk1LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsIGFzIGFwcGxpY2FibGUuPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+CjwvYm9keT48L2h0bWw+