PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPm1vZF9jZ2kgLSBBcGFjaGUgSFRUUCBTZXJ2ZXI8L3RpdGxlPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLXByaW50LmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0icHJpbnQiIHR5cGU9InRleHQvY3NzIiAvPgo8bGluayBocmVmPSIuLi9pbWFnZXMvZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz48L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuMzwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5naWYiIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAgU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4uLyI+VmVyc2lvbiAyLjM8L2E+ICZndDsgPGEgaHJlZj0iLi8iPk1vZHVsZXM8L2E+PC9kaXY+CjxkaXYgaWQ9InBhZ2UtY29udGVudCI+CjxkaXYgaWQ9InByZWFtYmxlIj48aDE+QXBhY2hlIE1vZHVsZSBtb2RfY2dpPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9tb2QvbW9kX2NnaS5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vamEvbW9kL21vZF9jZ2kuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9tb2QvbW9kX2NnaS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8dGFibGUgY2xhc3M9Im1vZHVsZSI+PHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+RXhlY3V0aW9uIG9mIENHSSBzY3JpcHRzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5Nb2R1bGWgSWRlbnRpZmllcjo8L2E+PC90aD48dGQ+Y2dpX21vZHVsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1NvdXJjZUZpbGUiPlNvdXJjZaBGaWxlOjwvYT48L3RoPjx0ZD5tb2RfY2dpLmM8L3RkPjwvdHI+PC90YWJsZT4KPGgzPlN1bW1hcnk8L2gzPgoKICAgIDxwPkFueSBmaWxlIHRoYXQgaGFzIHRoZSBoYW5kbGVyCiAgICA8Y29kZT5jZ2ktc2NyaXB0PC9jb2RlPiB3aWxsIGJlIHRyZWF0ZWQKICAgIGFzIGEgQ0dJIHNjcmlwdCwgYW5kIHJ1biBieSB0aGUgc2VydmVyLCB3aXRoIGl0cyBvdXRwdXQgYmVpbmcKICAgIHJldHVybmVkIHRvIHRoZSBjbGllbnQuIEZpbGVzIGFjcXVpcmUgdGhpcyBoYW5kbGVyIGVpdGhlciBieQogICAgaGF2aW5nIGEgbmFtZSBjb250YWluaW5nIGFuIGV4dGVuc2lvbiBkZWZpbmVkIGJ5IHRoZQogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9taW1lLmh0bWwjYWRkaGFuZGxlciI+QWRkSGFuZGxlcjwvYT48L2NvZGU+IGRpcmVjdGl2ZSwgb3IgYnkgYmVpbmcKICAgIGluIGEgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hbGlhcy5odG1sI3NjcmlwdGFsaWFzIj5TY3JpcHRBbGlhczwvYT48L2NvZGU+CiAgICBkaXJlY3RvcnkuPC9wPgoKICAgIDxwPkZvciBhbiBpbnRyb2R1Y3Rpb24gdG8gdXNpbmcgQ0dJIHNjcmlwdHMgd2l0aCBBcGFjaGUsIHNlZQogICAgb3VyIHR1dG9yaWFsIG9uIDxhIGhyZWY9Ii4uL2hvd3RvL2NnaS5odG1sIj5EeW5hbWljIENvbnRlbnQKICAgIFdpdGggQ0dJPC9hPi48L3A+CgogICAgPHA+V2hlbiB1c2luZyBhIG11bHRpLXRocmVhZGVkIE1QTSB1bmRlciB1bml4LCB0aGUgbW9kdWxlCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaWQuaHRtbCI+bW9kX2NnaWQ8L2E+PC9jb2RlPiBzaG91bGQgYmUgdXNlZCBpbiBwbGFjZSBvZgogICAgdGhpcyBtb2R1bGUuIEF0IHRoZSB1c2VyIGxldmVsLCB0aGUgdHdvIG1vZHVsZXMgYXJlIGVzc2VudGlhbGx5CiAgICBpZGVudGljYWwuPC9wPgogICAgCiAgICA8cD5Gb3IgYmFja3dhcmQtY29tcGF0aWJpbGl0eSwgdGhlIGNnaS1zY3JpcHQgaGFuZGxlciB3aWxsIGFsc28gYmUgYWN0aXZhdGVkCiAgICBmb3IgYW55IGZpbGUgd2l0aCB0aGUgbWltZS10eXBlIDxjb2RlPmFwcGxpY2F0aW9uL3gtaHR0cGQtY2dpPC9jb2RlPi4gVGhlCiAgICB1c2Ugb2YgdGhlIG1hZ2ljIG1pbWUtdHlwZSBpcyBkZXByZWNhdGVkLjwvcD4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzIGNsYXNzPSJkaXJlY3RpdmVzIj5EaXJlY3RpdmVzPC9oMz4KPHVsIGlkPSJ0b2MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNzY3JpcHRsb2ciPlNjcmlwdExvZzwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNzY3JpcHRsb2didWZmZXIiPlNjcmlwdExvZ0J1ZmZlcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNzY3JpcHRsb2dsZW5ndGgiPlNjcmlwdExvZ0xlbmd0aDwvYT48L2xpPgo8L3VsPgo8aDM+VG9waWNzPC9oMz4KPHVsIGlkPSJ0b3BpY3MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNlbnYiPkNHSSBFbnZpcm9ubWVudCB2YXJpYWJsZXM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjY2dpLWRlYnVnIj5DR0kgRGVidWdnaW5nPC9hPjwvbGk+CjwvdWw+PGgzPlNlZSBhbHNvPC9oMz4KPHVsIGNsYXNzPSJzZWVhbHNvIj4KPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjYWNjZXB0cGF0aGluZm8iPkFjY2VwdFBhdGhJbmZvPC9hPjwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNvcHRpb25zIj5PcHRpb25zPC9hPjwvY29kZT4gRXhlY0NHSTwvbGk+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2FsaWFzLmh0bWwjc2NyaXB0YWxpYXMiPlNjcmlwdEFsaWFzPC9hPjwvY29kZT48L2xpPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9taW1lLmh0bWwjYWRkaGFuZGxlciI+QWRkSGFuZGxlcjwvYT48L2NvZGU+PC9saT4KPGxpPjxhIGhyZWY9Ii4uL3N1ZXhlYy5odG1sIj5SdW5uaW5nIENHSSBwcm9ncmFtcyB1bmRlciBkaWZmZXJlbnQKICAgIHVzZXIgSURzPC9hPjwvbGk+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzODc1Ij5DR0kgU3BlY2lmaWNhdGlvbjwvYT48L2xpPgo8L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJlbnYiIGlkPSJlbnYiPkNHSSBFbnZpcm9ubWVudCB2YXJpYWJsZXM8L2E+PC9oMj4KICAgIDxwPlRoZSBzZXJ2ZXIgd2lsbCBzZXQgdGhlIENHSSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXMgZGVzY3JpYmVkCiAgICBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzg3NSI+Q0dJIHNwZWNpZmljYXRpb248L2E+LAogICAgd2l0aCB0aGUgZm9sbG93aW5nIHByb3Zpc2lvbnM6PC9wPgoKICAgIDxkbD4KICAgICAgPGR0PlBBVEhfSU5GTzwvZHQ+CgogICAgICA8ZGQ+VGhpcyB3aWxsIG5vdCBiZSBhdmFpbGFibGUgaWYgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjYWNjZXB0cGF0aGluZm8iPkFjY2VwdFBhdGhJbmZvPC9hPjwvY29kZT4gZGlyZWN0aXZlIGlzIGV4cGxpY2l0bHkgc2V0IHRvCiAgICAgIDxjb2RlPm9mZjwvY29kZT4uICBUaGUgZGVmYXVsdCBiZWhhdmlvciwgaWYgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+QWNjZXB0UGF0aEluZm88L2NvZGU+IGlzIG5vdCBnaXZlbiwgaXMgdGhhdCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaS5odG1sIj5tb2RfY2dpPC9hPjwvY29kZT4gd2lsbCBhY2NlcHQgcGF0aCBpbmZvICh0cmFpbGluZyA8Y29kZT4KICAgICAgL21vcmUvcGF0aC9pbmZvPC9jb2RlPiBmb2xsb3dpbmcgdGhlIHNjcmlwdCBmaWxlbmFtZSBpbiB0aGUgVVJJKSwKICAgICAgd2hpbGUgdGhlIGNvcmUgc2VydmVyIHdpbGwgcmV0dXJuIGEgNDA0IE5PVCBGT1VORCBlcnJvciBmb3IgcmVxdWVzdHMKICAgICAgd2l0aCBhZGRpdGlvbmFsIHBhdGggaW5mby4gT21pdHRpbmcgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkFjY2VwdFBhdGhJbmZvPC9jb2RlPiBkaXJlY3RpdmUgaGFzIHRoZSBzYW1lIGVmZmVjdCBhcyBzZXR0aW5nCiAgICAgIGl0IDxjb2RlPk9uPC9jb2RlPiBmb3IgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2NvZGU+IHJlcXVlc3RzLjwvZGQ+CgogICAgICA8ZHQ+UkVNT1RFX0hPU1Q8L2R0PgoKICAgICAgPGRkPlRoaXMgd2lsbCBvbmx5IGJlIHNldCBpZiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2hvc3RuYW1lbG9va3VwcyI+SG9zdG5hbWVMb29rdXBzPC9hPjwvY29kZT4gaXMgc2V0IHRvIDxjb2RlPm9uPC9jb2RlPiAoaXQKICAgICAgaXMgb2ZmIGJ5IGRlZmF1bHQpLCBhbmQgaWYgYSByZXZlcnNlIEROUyBsb29rdXAgb2YgdGhlIGFjY2Vzc2luZwogICAgICBob3N0J3MgYWRkcmVzcyBpbmRlZWQgZmluZHMgYSBob3N0IG5hbWUuPC9kZD4KCiAgICAgIDxkdD5SRU1PVEVfSURFTlQ8L2R0PgoKICAgICAgPGRkPlRoaXMgd2lsbCBvbmx5IGJlIHNldCBpZiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2lkZW50aXR5Y2hlY2siPklkZW50aXR5Q2hlY2s8L2E+PC9jb2RlPiBpcyBzZXQgdG8KICAgICAgPGNvZGU+b248L2NvZGU+IGFuZCB0aGUgYWNjZXNzaW5nIGhvc3Qgc3VwcG9ydHMgdGhlIGlkZW50CiAgICAgIHByb3RvY29sLiBOb3RlIHRoYXQgdGhlIGNvbnRlbnRzIG9mIHRoaXMgdmFyaWFibGUgY2Fubm90IGJlCiAgICAgIHJlbGllZCB1cG9uIGJlY2F1c2UgaXQgY2FuIGVhc2lseSBiZSBmYWtlZCwgYW5kIGlmIHRoZXJlIGlzIGEKICAgICAgcHJveHkgYmV0d2VlbiB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyLCBpdCBpcyB1c3VhbGx5CiAgICAgIHRvdGFsbHkgdXNlbGVzcy48L2RkPgoKICAgICAgPGR0PlJFTU9URV9VU0VSPC9kdD4KCiAgICAgIDxkZD5UaGlzIHdpbGwgb25seSBiZSBzZXQgaWYgdGhlIENHSSBzY3JpcHQgaXMgc3ViamVjdCB0bwogICAgICBhdXRoZW50aWNhdGlvbi48L2RkPgogICAgPC9kbD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iY2dpLWRlYnVnIiBpZD0iY2dpLWRlYnVnIj5DR0kgRGVidWdnaW5nPC9hPjwvaDI+CiAgICA8cD5EZWJ1Z2dpbmcgQ0dJIHNjcmlwdHMgaGFzIHRyYWRpdGlvbmFsbHkgYmVlbiBkaWZmaWN1bHQsIG1haW5seQogICAgYmVjYXVzZSBpdCBoYXMgbm90IGJlZW4gcG9zc2libGUgdG8gc3R1ZHkgdGhlIG91dHB1dCAoc3RhbmRhcmQKICAgIG91dHB1dCBhbmQgZXJyb3IpIGZvciBzY3JpcHRzIHdoaWNoIGFyZSBmYWlsaW5nIHRvIHJ1bgogICAgcHJvcGVybHkuIFRoZXNlIGRpcmVjdGl2ZXMgcHJvdmlkZSBtb3JlIGRldGFpbGVkIGxvZ2dpbmcgb2YgZXJyb3JzCiAgICB3aGVuIHRoZXkgb2NjdXIuPC9wPgoKICAgIDxoMz5DR0kgTG9nZmlsZSBGb3JtYXQ8L2gzPgogICAgICA8cD5XaGVuIGNvbmZpZ3VyZWQsIHRoZSBDR0kgZXJyb3IgbG9nIGxvZ3MgYW55IENHSSB3aGljaCBkb2VzIG5vdAogICAgICBleGVjdXRlIHByb3Blcmx5LiBFYWNoIENHSSBzY3JpcHQgd2hpY2ggZmFpbHMgdG8gb3BlcmF0ZSBjYXVzZXMKICAgICAgc2V2ZXJhbCBsaW5lcyBvZiBpbmZvcm1hdGlvbiB0byBiZSBsb2dnZWQuIFRoZSBmaXJzdCB0d28gbGluZXMKICAgICAgYXJlIGFsd2F5cyBvZiB0aGUgZm9ybWF0OjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAgICUlIFs8dmFyPnRpbWU8L3Zhcj5dIDx2YXI+cmVxdWVzdC1saW5lPC92YXI+PGJyIC8+CiAgICAgICAgJSUgPHZhcj5IVFRQLXN0YXR1czwvdmFyPiA8dmFyPkNHSS1zY3JpcHQtZmlsZW5hbWU8L3Zhcj4KICAgICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgIDxwPklmIHRoZSBlcnJvciBpcyB0aGF0IENHSSBzY3JpcHQgY2Fubm90IGJlIHJ1biwgdGhlIGxvZyBmaWxlCiAgICAgIHdpbGwgY29udGFpbiBhbiBleHRyYSB0d28gbGluZXM6PC9wPgoKICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICAgJSVlcnJvcjxiciAvPgogICAgICAgIDx2YXI+ZXJyb3ItbWVzc2FnZTwvdmFyPgogICAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgICAgPHA+QWx0ZXJuYXRpdmVseSwgaWYgdGhlIGVycm9yIGlzIHRoZSByZXN1bHQgb2YgdGhlIHNjcmlwdAogICAgICByZXR1cm5pbmcgaW5jb3JyZWN0IGhlYWRlciBpbmZvcm1hdGlvbiAob2Z0ZW4gZHVlIHRvIGEgYnVnIGluCiAgICAgIHRoZSBzY3JpcHQpLCB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIGxvZ2dlZDo8L3A+CgogICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgICAlcmVxdWVzdDxiciAvPgogICAgICAgIDx2YXI+QWxsIEhUVFAgcmVxdWVzdCBoZWFkZXJzIHJlY2VpdmVkPC92YXI+PGJyIC8+CiAgICAgICAgPHZhcj5QT1NUIG9yIFBVVCBlbnRpdHkgKGlmIGFueSk8L3Zhcj48YnIgLz4KICAgICAgICAlcmVzcG9uc2U8YnIgLz4KICAgICAgICA8dmFyPkFsbCBoZWFkZXJzIG91dHB1dCBieSB0aGUgQ0dJIHNjcmlwdDwvdmFyPjxiciAvPgogICAgICAgICVzdGRvdXQ8YnIgLz4KICAgICAgICA8dmFyPkNHSSBzdGFuZGFyZCBvdXRwdXQ8L3Zhcj48YnIgLz4KICAgICAgICAlc3RkZXJyPGJyIC8+CiAgICAgICAgPHZhcj5DR0kgc3RhbmRhcmQgZXJyb3I8L3Zhcj48YnIgLz4KICAgICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgIDxwPihUaGUgJXN0ZG91dCBhbmQgJXN0ZGVyciBwYXJ0cyBtYXkgYmUgbWlzc2luZyBpZiB0aGUgc2NyaXB0IGRpZAogICAgICBub3Qgb3V0cHV0IGFueXRoaW5nIG9uIHN0YW5kYXJkIG91dHB1dCBvciBzdGFuZGFyZCBlcnJvcikuPC9wPgogICAgCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJTY3JpcHRMb2ciIGlkPSJTY3JpcHRMb2ciPlNjcmlwdExvZzwvYT4gPGEgbmFtZT0ic2NyaXB0bG9nIiBpZD0ic2NyaXB0bG9nIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5Mb2NhdGlvbiBvZiB0aGUgQ0dJIHNjcmlwdCBlcnJvciBsb2dmaWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPlNjcmlwdExvZyA8dmFyPmZpbGUtcGF0aDwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnLCB2aXJ0dWFsIGhvc3Q8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+QmFzZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaS5odG1sIj5tb2RfY2dpPC9hPjwvY29kZT4sIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfY2dpZC5odG1sIj5tb2RfY2dpZDwvYT48L2NvZGU+PC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPlNjcmlwdExvZzwvY29kZT4gZGlyZWN0aXZlIHNldHMgdGhlIENHSQogICAgc2NyaXB0IGVycm9yIGxvZ2ZpbGUuIElmIG5vIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPlNjcmlwdExvZzwvY29kZT4gaXMgZ2l2ZW4sCiAgICBubyBlcnJvciBsb2cgaXMgY3JlYXRlZC4gSWYgZ2l2ZW4sIGFueSBDR0kgZXJyb3JzIGFyZSBsb2dnZWQgaW50byB0aGUKICAgIGZpbGVuYW1lIGdpdmVuIGFzIGFyZ3VtZW50LiBJZiB0aGlzIGlzIGEgcmVsYXRpdmUgZmlsZSBvciBwYXRoIGl0IGlzCiAgICB0YWtlbiByZWxhdGl2ZSB0byB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNzZXJ2ZXJyb290Ij5TZXJ2ZXJSb290PC9hPjwvY29kZT4uCiAgICA8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPkV4YW1wbGU8L2gzPjxwPjxjb2RlPgogICAgICBTY3JpcHRMb2cgbG9ncy9jZ2lfbG9nCiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPlRoaXMgbG9nIHdpbGwgYmUgb3BlbmVkIGFzIHRoZSB1c2VyIHRoZSBjaGlsZCBwcm9jZXNzZXMgcnVuCiAgICBhcywgPGVtPmkuZS48L2VtPiB0aGUgdXNlciBzcGVjaWZpZWQgaW4gdGhlIG1haW4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF91bml4ZC5odG1sI3VzZXIiPlVzZXI8L2E+PC9jb2RlPiBkaXJlY3RpdmUuIFRoaXMgbWVhbnMgdGhhdAogICAgZWl0aGVyIHRoZSBkaXJlY3RvcnkgdGhlIHNjcmlwdCBsb2cgaXMgaW4gbmVlZHMgdG8gYmUgd3JpdGFibGUKICAgIGJ5IHRoYXQgdXNlciBvciB0aGUgZmlsZSBuZWVkcyB0byBiZSBtYW51YWxseSBjcmVhdGVkIGFuZCBzZXQKICAgIHRvIGJlIHdyaXRhYmxlIGJ5IHRoYXQgdXNlci4gSWYgeW91IHBsYWNlIHRoZSBzY3JpcHQgbG9nIGluCiAgICB5b3VyIG1haW4gbG9ncyBkaXJlY3RvcnksIGRvIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGNoYW5nZSB0aGUKICAgIGRpcmVjdG9yeSBwZXJtaXNzaW9ucyB0byBtYWtlIGl0IHdyaXRhYmxlIGJ5IHRoZSB1c2VyIHRoZSBjaGlsZAogICAgcHJvY2Vzc2VzIHJ1biBhcy48L3A+CgogICAgPHA+Tm90ZSB0aGF0IHNjcmlwdCBsb2dnaW5nIGlzIG1lYW50IHRvIGJlIGEgZGVidWdnaW5nIGZlYXR1cmUKICAgIHdoZW4gd3JpdGluZyBDR0kgc2NyaXB0cywgYW5kIGlzIG5vdCBtZWFudCB0byBiZSBhY3RpdmF0ZWQKICAgIGNvbnRpbnVvdXNseSBvbiBydW5uaW5nIHNlcnZlcnMuIEl0IGlzIG5vdCBvcHRpbWl6ZWQgZm9yIHNwZWVkCiAgICBvciBlZmZpY2llbmN5LCBhbmQgbWF5IGhhdmUgc2VjdXJpdHkgcHJvYmxlbXMgaWYgdXNlZCBpbiBhCiAgICBtYW5uZXIgb3RoZXIgdGhhbiB0aGF0IGZvciB3aGljaCBpdCB3YXMgZGVzaWduZWQuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IlNjcmlwdExvZ0J1ZmZlciIgaWQ9IlNjcmlwdExvZ0J1ZmZlciI+U2NyaXB0TG9nQnVmZmVyPC9hPiA8YSBuYW1lPSJzY3JpcHRsb2didWZmZXIiIGlkPSJzY3JpcHRsb2didWZmZXIiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPk1heGltdW0gYW1vdW50IG9mIFBVVCBvciBQT1NUIHJlcXVlc3RzIHRoYXQgd2lsbCBiZSByZWNvcmRlZAppbiB0aGUgc2NyaXB0bG9nPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPlNjcmlwdExvZ0J1ZmZlciA8dmFyPmJ5dGVzPC92YXI+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPlNjcmlwdExvZ0J1ZmZlciAxMDI0PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPnNlcnZlciBjb25maWcsIHZpcnR1YWwgaG9zdDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5CYXNlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfY2dpLmh0bWwiPm1vZF9jZ2k8L2E+PC9jb2RlPiwgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9jZ2lkLmh0bWwiPm1vZF9jZ2lkPC9hPjwvY29kZT48L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5UaGUgc2l6ZSBvZiBhbnkgUFVUIG9yIFBPU1QgZW50aXR5IGJvZHkgdGhhdCBpcyBsb2dnZWQgdG8KICAgIHRoZSBmaWxlIGlzIGxpbWl0ZWQsIHRvIHByZXZlbnQgdGhlIGxvZyBmaWxlIGdyb3dpbmcgdG9vIGJpZwogICAgdG9vIHF1aWNrbHkgaWYgbGFyZ2UgYm9kaWVzIGFyZSBiZWluZyByZWNlaXZlZC4gQnkgZGVmYXVsdCwgdXAKICAgIHRvIDEwMjQgYnl0ZXMgYXJlIGxvZ2dlZCwgYnV0IHRoaXMgY2FuIGJlIGNoYW5nZWQgd2l0aCB0aGlzCiAgICBkaXJlY3RpdmUuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IlNjcmlwdExvZ0xlbmd0aCIgaWQ9IlNjcmlwdExvZ0xlbmd0aCI+U2NyaXB0TG9nTGVuZ3RoPC9hPiA8YSBuYW1lPSJzY3JpcHRsb2dsZW5ndGgiIGlkPSJzY3JpcHRsb2dsZW5ndGgiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNpemUgbGltaXQgb2YgdGhlIENHSSBzY3JpcHQgbG9nZmlsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5TY3JpcHRMb2dMZW5ndGggPHZhcj5ieXRlczwvdmFyPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5TY3JpcHRMb2dMZW5ndGggMTAzODU3NjA8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9jZ2kuaHRtbCI+bW9kX2NnaTwvYT48L2NvZGU+LCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaWQuaHRtbCI+bW9kX2NnaWQ8L2E+PC9jb2RlPjwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPlNjcmlwdExvZ0xlbmd0aDwvY29kZT4gY2FuIGJlIHVzZWQgdG8gbGltaXQgdGhlCiAgICBzaXplIG9mIHRoZSBDR0kgc2NyaXB0IGxvZ2ZpbGUuIFNpbmNlIHRoZSBsb2dmaWxlIGxvZ3MgYSBsb3Qgb2YKICAgIGluZm9ybWF0aW9uIHBlciBDR0kgZXJyb3IgKGFsbCByZXF1ZXN0IGhlYWRlcnMsIGFsbCBzY3JpcHQgb3V0cHV0KQogICAgaXQgY2FuIGdyb3cgdG8gYmUgYSBiaWcgZmlsZS4gVG8gcHJldmVudCBwcm9ibGVtcyBkdWUgdG8gdW5ib3VuZGVkCiAgICBncm93dGgsIHRoaXMgZGlyZWN0aXZlIGNhbiBiZSB1c2VkIHRvIHNldCBhbiBtYXhpbXVtIGZpbGUtc2l6ZSBmb3IKICAgIHRoZSBDR0kgbG9nZmlsZS4gSWYgdGhlIGZpbGUgZXhjZWVkcyB0aGlzIHNpemUsIG5vIG1vcmUKICAgIGluZm9ybWF0aW9uIHdpbGwgYmUgd3JpdHRlbiB0byBpdC48L3A+Cgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9jZ2kuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2phL21vZC9tb2RfY2dpLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vbW9kL21vZF9jZ2kuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxMSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+CjwvYm9keT48L2h0bWw+