PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KPGh0bWw+Cgo8aGVhZD4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Cjx0aXRsZT5FY2xpcHNlIFByb2plY3QgUmVsZWFzZSBOb3RlcyAzLjQuMjwvdGl0bGU+CjwvaGVhZD4KCjxib2R5PgoKPGgxPkVjbGlwc2UgUHJvamVjdCBSZWxlYXNlIE5vdGVzPC9oMT4KPHA+UmVsZWFzZSAzLjQuMjxicj4KICBMYXN0IHJldmlzZWQgSmFudWFyeSAyMiwgMjAwOTwvcD4KPHAgYWxpZ249ImxlZnQiPjxzdHJvbmc+VGhpcyBzb2Z0d2FyZSBpcyBPU0kgQ2VydGlmaWVkIE9wZW4gU291cmNlIFNvZnR3YXJlLjxicj4KT1NJIENlcnRpZmllZCBpcyBhIGNlcnRpZmljYXRpb24gbWFyayBvZiB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZS4mbmJzcDs8L3N0cm9uZz48L3A+CjxibG9ja3F1b3RlPgogIDxwIGFsaWduPSJsZWZ0Ij48YSBocmVmPSIjVGFyZ2V0T3BlcmF0aW5nRW52aXJvbm1lbnRzIj4xLiBUYXJnZXQgT3BlcmF0aW5nCiAgRW52aXJvbm1lbnRzPC9hPjxicj4KICA8YSBocmVmPSIjQ29tcGF0aWJpbGl0eSI+Mi4gQ29tcGF0aWJpbGl0eSB3aXRoIFByZXZpb3VzCiAgUmVsZWFzZXM8L2E+PGJyPgogIDxhIGhyZWY9IiNLbm93biBJc3N1ZXMiPjMuIEtub3duIElzc3VlczwvYT48YnI+CiAgPGEgaHJlZj0iI1J1bm5pbmcgRWNsaXBzZSI+NC4gUnVubmluZyBFY2xpcHNlPC9hPjxicj4KICA8YSBocmVmPSIjVXBncmFkaW5nIj41LiBVcGdyYWRpbmcgYSBXb3Jrc3BhY2UgZnJvbSBhIFByZXZpb3VzIFJlbGVhc2U8L2E+PGJyPgogIDxhIGhyZWY9IiNJbnRlcm9wZXJhYmlsaXR5IHdpdGggUHJldmlvdXMgUmVsZWFzZXMiPjYuIEludGVyb3BlcmFiaWxpdHkgd2l0aAogIFByZXZpb3VzIFJlbGVhc2VzPC9hPjxicj4KICA8YSBocmVmPSIjRGVmZWN0c0ZpeGVkIj43LiBEZWZlY3RzIEZpeGVkIHNpbmNlIFByZXZpb3VzIFJlbGVhc2U8L2E+PGJyPgogIDwvcD4KPC9ibG9ja3F1b3RlPgoKPGgyPjEuIDxhIG5hbWU9IlRhcmdldE9wZXJhdGluZ0Vudmlyb25tZW50cyI+PC9hPlRhcmdldCBPcGVyYXRpbmcgRW52aXJvbm1lbnRzPC9oMj4KPHA+SW4gb3JkZXIgdG8gcmVtYWluIGN1cnJlbnQsIGVhY2ggRWNsaXBzZSByZWxlYXNlIHRhcmdldHMgcmVhc29uYWJseSBjdXJyZW50CiAgb3BlcmF0aW5nIGVudmlyb25tZW50cy4gPC9wPgo8cD5Nb3N0IG9mIHRoZSBFY2xpcHNlIFNESyBpcyAmcXVvdDtwdXJlJnF1b3Q7IEphdmEgY29kZSBhbmQgaGFzIG5vIGRpcmVjdCBkZXBlbmRlbmNlCiAgb24gdGhlIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbS4gVGhlIGNoaWVmIGRlcGVuZGVuY2UgaXMgdGhlcmVmb3JlIG9uIHRoZQogIEphdmEgUGxhdGZvcm0gaXRzZWxmLiBQb3J0aW9ucyBvZiB0aGUgRWNsaXBzZSBTREsgKGluY2x1ZGluZyB0aGUgUkNQIGJhc2UsCiAgU1dULCBPU0dpIGFuZCBKRFQgY29yZSBwbHVnLWlucykgYXJlIHRhcmdldGVkIHRvIHNwZWNpZmljIGNsYXNzZXMgb2Ygb3BlcmF0aW5nCiAgZW52aXJvbm1lbnRzLCByZXF1aXJpbmcgdGhlaXIgc291cmNlIGNvZGUgdG8gb25seSByZWZlcmVuY2UgZmFjaWxpdGllcyBhdmFpbGFibGUKICBpbiBwYXJ0aWN1bGFyIGNsYXNzIGxpYnJhcmllcyAoZS5nLiBKMk1FIEZvdW5kYXRpb24gMS4wLCBKMlNFIDEuMyBhbmQgMS40LAogIGV0Yy4pLiA8L3A+CjxwPiBJbiBnZW5lcmFsLCB0aGUgMy40IHJlbGVhc2Ugb2YgdGhlIEVjbGlwc2UgUHJvamVjdCBpcyBkZXZlbG9wZWQgb24gYSBtaXgKICBvZiBKYXZhIDEuNCBhbmQgSmF2YTUgVk1zLiBBcyBzdWNoLCB0aGUgRWNsaXBzZSBQcm9qZWN0IFNESyBhcyBhIHdob2xlIGlzIHRhcmdldGVkCiAgYXQgYm90aCAxLjQgYW5kIEphdmE1IFZNcywgd2l0aCBmdWxsIGZ1bmN0aW9uYWxpdHkgYXZhaWxhYmxlIGZvciAxLjQgbGV2ZWwKICBkZXZlbG9wbWVudCBldmVyeXdoZXJlLCBhbmQgbmV3IEphdmE1IHNwZWNpZmljIGNhcGFiaWxpdGllcyBhdmFpbGFibGUgd2hlbgogIHJ1bm5pbmcgb24gYSBKYXZhNSBWTS4gU2ltaWxhcmx5LCBpbiBjYXNlcyB3aGVyZSBzdXBwb3J0IGhhcyBiZWVuIGFkZGVkIGZvcgogIEphdmE2IHNwZWNpZmljIGZlYXR1cmVzIChlLmcuIEpTUi0xOTksIEpTUi0yNjksIGV0Yy4pIEphdmE2IFZNcyBhcmUgcmVxdWlyZWQuIDwvcD4KPHA+IDxhIGhyZWY9IiNBcHBlbmRpeDEiPkFwcGVuZGl4IDE8L2E+IGNvbnRhaW5zIGEgdGFibGUgdGhhdCBpbmRpY2F0ZXMgdGhlIGNsYXNzCiAgbGlicmFyeSBsZXZlbCByZXF1aXJlZCBmb3IgZWFjaCBwbHVnLWluLiA8L3A+CjxwPlRoZXJlIGFyZSBtYW55IGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIEphdmEgUGxhdGZvcm0gcnVubmluZyBhdG9wCiAgYSB2YXJpZXR5IG9mIG9wZXJhdGluZyBzeXN0ZW1zLiBXZSBmb2N1cyBFY2xpcHNlIFNESyB0ZXN0aW5nIG9uIGEgaGFuZGZ1bCBvZgogIHBvcHVsYXIgY29tYmluYXRpb25zIG9mIG9wZXJhdGluZyBzeXN0ZW0gYW5kIEphdmEgUGxhdGZvcm07IHRoZXNlIGFyZSBvdXIgPGVtPnJlZmVyZW5jZQogIHBsYXRmb3JtczwvZW0+LiBFY2xpcHNlIHVuZG91YnRlZGx5IHJ1bnMgZmluZSBpbiBtYW55IG9wZXJhdGluZyBlbnZpcm9ubWVudHMKICBiZXlvbmQgdGhlIHJlZmVyZW5jZSBwbGF0Zm9ybXMgd2UgdGVzdCwgaW5jbHVkaW5nIHRob3NlIHVzaW5nIEphdmE2IFZNcy4gSG93ZXZlciwKICBzaW5jZSB3ZSBkbyBub3Qgc3lzdGVtYXRpY2FsbHkgdGVzdCB0aGVtIHdlIGNhbm5vdCB2b3VjaCBmb3IgdGhlbS4gUHJvYmxlbXMKICBlbmNvdW50ZXJlZCB3aGVuIHJ1bm5pbmcgRWNsaXBzZSBvbiBhIG5vbi1yZWZlcmVuY2UgcGxhdGZvcm0gdGhhdCBjYW5ub3QgYmUKICByZWNyZWF0ZWQgb24gYW55IHJlZmVyZW5jZSBwbGF0Zm9ybSB3aWxsIGJlIGdpdmVuIGxvd2VyIHByaW9yaXR5IHRoYW4gcHJvYmxlbXMKICB3aXRoIHJ1bm5pbmcgRWNsaXBzZSBvbiBhIHJlZmVyZW5jZSBwbGF0Zm9ybS48L3A+CjxwPiBUaGUgRWNsaXBzZSBTREsgMy40IGlzIHRlc3RlZCBhbmQgdmFsaWRhdGVkIG9uIHRoZSBmb2xsb3dpbmcgcmVmZXJlbmNlIHBsYXRmb3JtczwvcD4KPGNlbnRlcj4KICA8dGFibGUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjIiIHdpZHRoPSI4MCUiIHN1bW1hcnk9IkVjbGlwc2UgUmVmZXJlbmNlIFBsYXRmb3JtcyI+CiAgICA8dGJvZHk+CiAgICAgIDx0ciBhbGlnbj0iY2VudGVyIj4KICAgICAgICA8dGQ+PGI+UmVmZXJlbmNlIFBsYXRmb3JtczwvYj48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjxiPk1pY3Jvc29mdCBXaW5kb3dzIFZpc3RhLCB4ODYtMzIsIFdpbjMyPC9iPiBydW5uaW5nIChhbnkgb2YpOgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+U3VuIEphdmEgMiBTdGFuZGFyZCBFZGl0aW9uIDUuMCBVcGRhdGUgMTQgZm9yIE1pY3Jvc29mdCBXaW5kb3dzPC9saT4KICAgICAgICAgICAgPGxpPklCTSAzMi1iaXQgU0RLIGZvciBXaW5kb3dzLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uIDUuMCwgU1I2YjwvbGk+CiAgICAgICAgICAgIDxsaT5CRUEgSlJvY2tpdCAyNy40LjAsIGZvciBNaWNyb3NvZnQgV2luZG93czwvbGk+CiAgICAgICAgICA8L3VsPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGI+TWljcm9zb2Z0IFdpbmRvd3MgWFAsIHg4Ni0zMiwgV2luMzI8L2I+IHJ1bm5pbmcgKGFueSBvZik6CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5TdW4gSmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gNi4wIFVwZGF0ZSA0IGZvciBNaWNyb3NvZnQgV2luZG93czwvbGk+CiAgICAgICAgICAgIDxsaT5TdW4gSmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gNS4wIFVwZGF0ZSAxNCBmb3IgTWljcm9zb2Z0IFdpbmRvd3M8L2xpPgogICAgICAgICAgICA8bGk+SUJNIDMyLWJpdCBTREsgZm9yIFdpbmRvd3MsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24gNS4wLCBTUjZiPC9saT4KICAgICAgICAgICAgPGxpPkJFQSBKUm9ja2l0IDI3LjQuMCwgZm9yIE1pY3Jvc29mdCBXaW5kb3dzPC9saT4KICAgICAgICAgICAgPGxpPlN1biBKYXZhIDIgU3RhbmRhcmQgRWRpdGlvbiAxLjQuMl8xNiBmb3IgTWljcm9zb2Z0IFdpbmRvd3M8L2xpPgogICAgICAgICAgICA8bGk+SUJNIDMyLWJpdCBTREsgZm9yIFdpbmRvd3MsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24gMS40LjIgU1IxMDwvbGk+CiAgICAgICAgICA8L3VsPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGI+UmVkIEhhdCBFbnRlcnByaXNlIExpbnV4IDUuMCwgeDg2LTMyLCBHVEs8L2I+IHJ1bm5pbmcgKGFueSBvZik6CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5TdW4gSmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gNS4wIFVwZGF0ZSAxNCBmb3IgTGludXggeDg2PC9saT4KICAgICAgICAgICAgPGxpPklCTSAzMi1iaXQgU0RLIGZvciBMaW51eCBvbiBJbnRlbCBhcmNoaXRlY3R1cmUsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24gNS4wLCBTUjZiPC9saT4KICAgICAgICAgICAgPGxpPkJFQSBKUm9ja2l0IDI3LjQuMCwgZm9yIExpbnV4IHg4NjwvbGk+CiAgICAgICAgICAgIDxsaT5TdW4gSmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gMS40LjJfMTYgZm9yIExpbnV4IHg4NjwvbGk+CiAgICAgICAgICAgIDxsaT5JQk0gMzItYml0IFNESyBmb3IgTGludXggb24gSW50ZWwgYXJjaGl0ZWN0dXJlLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uIDEuNC4yIFNSMTA8L2xpPgogICAgICAgICAgPC91bD48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjxiPlNVU0UgTGludXggRW50ZXJwcmlzZSBTZXJ2ZXIgMTAsIHg4Ni0zMiwgR1RLPC9iPiBydW5uaW5nIChhbnkKICAgICAgICAgIG9mKToKICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPlN1biBKYXZhIDIgU3RhbmRhcmQgRWRpdGlvbiA1LjAgVXBkYXRlIDE0IGZvciBMaW51eCB4ODY8L2xpPgogICAgICAgICAgICA8bGk+SUJNIDMyLWJpdCBTREsgZm9yIExpbnV4IG9uIEludGVsIGFyY2hpdGVjdHVyZSwgSmF2YSAyIFRlY2hub2xvZ3kgRWRpdGlvbiA1LjAsIFNSNmI8L2xpPgogICAgICAgICAgPC91bD48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjxiPk1pY3Jvc29mdCBXaW5kb3dzIFZpc3RhLCB4ODYtNjQsIFdpbjMyPC9iPiBydW5uaW5nIChhbnkgb2YpOgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+U3VuIEphdmEgMiBTdGFuZGFyZCBFZGl0aW9uIDUuMCBVcGRhdGUgMTQgZm9yIE1pY3Jvc29mdCBXaW5kb3dzIChBTUQ2NC9FTTY0VCk8L2xpPgogICAgICAgICAgICA8bGk+SUJNIDY0LWJpdCBTREsgZm9yIFdpbmRvd3MsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24gNS4wLCBTUjZiPC9saT4KICAgICAgICAgIDwvdWw+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD48Yj5NaWNyb3NvZnQgV2luZG93cyBYUCBQcm9mZXNzaW9uYWwgeDY0IEVkaXRpb24sIHg4Ni02NCwgV2luMzI8L2I+IHJ1bm5pbmcgKGFueSBvZik6CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5TdW4gSmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gNS4wIFVwZGF0ZSAxNCBmb3IgTWljcm9zb2Z0IFdpbmRvd3MgKEFNRDY0L0VNNjRUKTwvbGk+CiAgICAgICAgICAgIDxsaT5JQk0gNjQtYml0IFNESyBmb3IgV2luZG93cywgSmF2YSAyIFRlY2hub2xvZ3kgRWRpdGlvbiA1LjAsIFNSNmI8L2xpPgogICAgICAgICAgPC91bD48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjxiPlJlZCBIYXQgRW50ZXJwcmlzZSBMaW51eCA0LjAgdXBkYXRlIDIsIHg4Ni02NCwgR1RLPC9iPiBydW5uaW5nOgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+U3VuIEphdmEgMiBTdGFuZGFyZCBFZGl0aW9uIDUuMCBVcGRhdGUgMTQgZm9yIExpbnV4IHg4Nl82NDwvbGk+CiAgICAgICAgICA8L3VsPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGI+U3VuIFNvbGFyaXMgMTAsIFNQQVJDLCBHVEs8L2I+IHJ1bm5pbmc6CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5TdW4gSmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gNS4wIFVwZGF0ZSAxNCBmb3IgU29sYXJpcyBTUEFSQzwvbGk+CiAgICAgICAgICA8L3VsPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGI+SFAtVVggMTFpIHYyLCBpYTY0LCBNb3RpZiAyLjEsIEdUSzwvYj4gcnVubmluZzoKICAgICAgICAgIDx1bD4KICAgICAgICAgICAgPGxpPkhQLVVYIEphdmEgMiBTdGFuZGFyZCBFZGl0aW9uIDUuMCBVcGRhdGUgNyBmb3IgSXRhbml1bTwvbGk+CiAgICAgICAgICA8L3VsPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGI+SUJNIEFJWCA1LjMsIFBvd2VyLCBNb3RpZiAyLjE8L2I+IHJ1bm5pbmc6CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5JQk0gMzItYml0IFNESywgSmF2YSAyIFRlY2hub2xvZ3kgRWRpdGlvbiA1LjAsIFNSNmI8L2xpPgogICAgICAgICAgPC91bD48L3RkPgogICAgICA8L3RyPgogICAgICA8dHI+CiAgICAgICAgPHRkPjxiPlJlZCBIYXQgRW50ZXJwcmlzZSBMaW51eCA1LjAsIFBvd2VyLCBHVEs8L2I+IHJ1bm5pbmc6CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5JQk0gMzItYml0IFNESyBmb3IgTGludXggb24gcFNlcmllcyBhcmNoaXRlY3R1cmUsIEphdmEgMiBUZWNobm9sb2d5IEVkaXRpb24gNS4wLCBTUjZiPC9saT4KICAgICAgICAgIDwvdWw+PC90ZD4KICAgICAgPC90cj4KICAgICAgPHRyPgogICAgICAgIDx0ZD48Yj5TVVNFIExpbnV4IEVudGVycHJpc2UgU2VydmVyIDEwLCBQb3dlciwgR1RLPC9iPiBydW5uaW5nOgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+SUJNIDMyLWJpdCBTREsgZm9yIExpbnV4IG9uIHBTZXJpZXMgYXJjaGl0ZWN0dXJlLCBKYXZhIDIgVGVjaG5vbG9neSBFZGl0aW9uIDUuMCwgU1I2YjwvbGk+CiAgICAgICAgICA8L3VsPjwvdGQ+CiAgICAgIDwvdHI+CiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGI+QXBwbGUgTWFjIE9TIFggMTAuNSwgVW5pdmVyc2FsLCBDYXJib248L2I+IHJ1bm5pbmc6CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5BcHBsZSBKYXZhIDIgUGxhdGZvcm0gU3RhbmRhcmQgRWRpdGlvbiAoSjJTRSkgNSwgc2VydmljZSByZWxlYXNlIDQ8L2xpPgogICAgICAgICAgPC91bD48L3RkPgogICAgICA8L3RyPgogICAgPC90Ym9keT4KICA8L3RhYmxlPgo8L2NlbnRlcj4KPHA+QmVjYXVzZSBKYXZhIDEuNC4yIGFuZCBKYXZhNSBiYXNlZCBwbGF0Zm9ybXMgYXJlIHVzZWQgZm9yIG1vc3QgRWNsaXBzZSBkZXZlbG9wbWVudCwKICB0aG9zZSBwbGF0Zm9ybXMgYXJlIGxpc3RlZCBoZXJlLiBBbHRob3VnaCB0aGVyZSBhcmUgdGVhbXMgZG9pbmcgc29tZSBKYXZhIDYKICBiYXNlZCBkZXZlbG9wbWVudCB3ZSBoYXZlIG5vdCBpbmNsdWRlZCBzcGVjaWZpYyBKYXZhNiBWTXMsIHNpbmNlIHRoZXkgaGF2ZQogIG5vdCB5ZXQgcmVjZWl2ZWQgdGhlIGdlbmVyYWwgbGV2ZWwgb2YgdGVzdGluZyB3ZSByZXF1aXJlLiA8aT5XZSBleHBlY3QgdGhhdAogIEVjbGlwc2Ugd2lsbCB3b3JrIGZpbmUgb24gb3RoZXIgY3VycmVudCBKYXZhIFZNcyBydW5uaW5nIG9uIHdpbmRvdyBzeXN0ZW1zCiAgc3VwcG9ydGVkIGJ5IFNXVCwgYnV0IGNhbiBub3QgZmxhZyB0aGVzZSBhcyByZWZlcmVuY2UgcGxhdGZvcm1zIHdpdGhvdXQgc2lnbmlmaWNhbnQKICBjb21tdW5pdHkgc3VwcG9ydCBmb3IgdGVzdGluZyB0aGVtLjwvaT48L3A+CjxwPlNpbWlsYXJseSwgYWx0aG91Z2ggdW50ZXN0ZWQsIHRoZSBFY2xpcHNlIFNESyBzaG91bGQgd29yayBmaW5lIG9uIG90aGVyIE9TZXMKICB0aGF0IHN1cHBvcnQgdGhlIHNhbWUgd2luZG93IHN5c3RlbS4gRm9yIFdpbjMyOiBOVCwgMjAwMCwgYW5kIFNlcnZlciAyMDAzOwogIFNXVCBIVE1MIHZpZXdlciByZXF1aXJlcyBJbnRlcm5ldCBFeHBsb3JlciA1IChvciBoaWdoZXIpLiBGb3IgR1RLIG9uIG90aGVyCiAgTGludXggc3lzdGVtczogdmVyc2lvbiAyLjIuMSBvZiB0aGUgR1RLKyB3aWRnZXQgdG9vbGtpdCBhbmQgYXNzb2NpYXRlZCBsaWJyYXJpZXMKICAoR0xpYiwgUGFuZ28pOyBTV1QgSFRNTCB2aWV3ZXIgcmVxdWlyZXMgTW96aWxsYSAxLjRHVEsyLiBGb3IgTW90aWYgb24gTGludXgKICBzeXN0ZW1zOiBPcGVuIE1vdGlmIDIuMSAoaW5jbHVkZWQpOyBTV1QgSFRNTCB2aWV3ZXIgcmVxdWlyZXMgTW96aWxsYSAxLjRHVEsyLjwvcD4KPHA+U1dUIGlzIGFsc28gc3VwcG9ydGVkIG9uIHRoZSBRTlggTmV1dHJpbm8gb3BlcmF0aW5nIHN5c3RlbSwgeDg2IHByb2Nlc3NvciwKICBQaG90b24gd2luZG93IHN5c3RlbSwgYW5kIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL0o5Ij5JQk0gSjkmdHJhZGU7IFZNPC9hPi4KICBFY2xpcHNlIDMuNCBvbiBXaW5kb3dzIG9yIExpbnV4IGNhbiBiZSB1c2VkIHRvIGNyb3NzLWRldmVsb3AgUU5YIGFwcGxpY2F0aW9ucy4KICAoRWNsaXBzZSAzLjQgaXMgdW5hdmFpbGFibGUgb24gUU5YIGJlY2F1c2UgdGhlcmUgaXMgY3VycmVudGx5IG5vIDEuNSBKMlNFIGZvcgogIFFOWC4pPC9wPgo8aDQ+SW50ZXJuYXRpb25hbGl6YXRpb248L2g0Pgo8cD5UaGUgRWNsaXBzZSBTREsgaXMgZGVzaWduZWQgYXMgdGhlIGJhc2lzIGZvciBpbnRlcm5hdGlvbmFsaXplZCBwcm9kdWN0cy4gVGhlCiAgdXNlciBpbnRlcmZhY2UgZWxlbWVudHMgcHJvdmlkZWQgYnkgdGhlIEVjbGlwc2UgU0RLIGNvbXBvbmVudHMsIGluY2x1ZGluZyBkaWFsb2dzCiAgYW5kIGVycm9yIG1lc3NhZ2VzLCBhcmUgZXh0ZXJuYWxpemVkLiBUaGUgRW5nbGlzaCBzdHJpbmdzIGFyZSBwcm92aWRlZCBhcyB0aGUKICBkZWZhdWx0IHJlc291cmNlIGJ1bmRsZXMuPC9wPgo8cD5MYXRpbi0xIGFuZCBEQkNTIGxvY2FsZXMgYXJlIHN1cHBvcnRlZCBieSB0aGUgRWNsaXBzZSBTREsgb24gYWxsIHJlZmVyZW5jZSBwbGF0Zm9ybXM7CiAgQklESSBsb2NhbGVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIEVjbGlwc2UgU0RLIGV2ZXJ5d2hlcmUgYnV0IG9uIE1vdGlmLjwvcD4KPHA+VGhlIEVjbGlwc2UgU0RLIHN1cHBvcnRzIEdCIDE4MDMwIChsZXZlbCAxKSwgdGhlIENoaW5lc2UgY29kZSBwYWdlIHN0YW5kYXJkLAogIG9uIFdpbmRvd3MgWFAgYW5kIDIwMDAsIExpbnV4L0dUSyBhbmQgdGhlIE1hY2ludG9zaC48L3A+CjxwPkdlcm1hbiBhbmQgSmFwYW5lc2UgbG9jYWxlcyBhcmUgdGVzdGVkLjwvcD4KCjxoMj4yLiA8YSBuYW1lPSJDb21wYXRpYmlsaXR5Ij48L2E+Q29tcGF0aWJpbGl0eSB3aXRoIFByZXZpb3VzIFJlbGVhc2VzPC9oMj4KPGgzPkNvbXBhdGliaWxpdHkgb2YgUmVsZWFzZSAzLjQgd2l0aCAzLjM8L2gzPgo8cD5FY2xpcHNlIDMuNCBpcyBjb21wYXRpYmxlIHdpdGggRWNsaXBzZSAzLjMgKGFuZCwgaGVuY2UsIHdpdGggMy4yLCAzLjEKICBhbmQgMy4wKS48L3A+CjxwPiA8c3Ryb25nPkFQSSBDb250cmFjdCBDb21wYXRpYmlsaXR5Ojwvc3Ryb25nPiBFY2xpcHNlIFNESyAzLjQgaXMgdXB3YXJkcwogIGNvbnRyYWN0LWNvbXBhdGlibGUgd2l0aCBFY2xpcHNlIFNESyAzLjMgZXhjZXB0IGluIHRob3NlIGFyZWFzIG5vdGVkIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZGV2LmVjbGlwc2Uub3JnL3ZpZXdjdnMvaW5kZXguY2dpLyU3RWNoZWNrb3V0JTdFL29yZy5lY2xpcHNlLnBsYXRmb3JtLmRvYy5pc3YvcG9ydGluZy9lY2xpcHNlXzNfNF9wb3J0aW5nX2d1aWRlLmh0bWwiIHRhcmdldD0iX3RvcCI+IDxlbT5FY2xpcHNlCiAgMy40IFBsdWctaW4gTWlncmF0aW9uIEd1aWRlPC9lbT48L2E+LiBQcm9ncmFtcyB0aGF0IHVzZSBhZmZlY3RlZCBBUElzIGFuZCBleHRlbnNpb24KICBwb2ludHMgbmVlZCB0byBiZSBwb3J0ZWQgdG8gRWNsaXBzZSBTREsgMy40IEFQSXMuIERvd253YXJkIGNvbnRyYWN0IGNvbXBhdGliaWxpdHkKICBpcyBub3Qgc3VwcG9ydGVkLiBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBjb21wbGlhbmNlIHdpdGggRWNsaXBzZSBTREsgMy40CiAgQVBJcyB3b3VsZCBlbnN1cmUgY29tcGxpYW5jZSB3aXRoIEVjbGlwc2UgU0RLIDMuMyBBUElzLiBSZWZlciB0byA8YSBocmVmPSJodHRwOi8vd2lraS5lY2xpcHNlLm9yZy9pbmRleC5waHAvRXZvbHZpbmdfSmF2YS1iYXNlZF9BUElzIj4gPGVtPkV2b2x2aW5nCiAgSmF2YS1iYXNlZCBBUElzPC9lbT4gPC9hPiBmb3IgYSBkaXNjdXNzaW9uIG9mIHRoZSBraW5kcyBvZiBBUEkgY2hhbmdlcyB0aGF0CiAgbWFpbnRhaW4gY29udHJhY3QgY29tcGF0aWJpbGl0eS4gPC9wPgo8cD48c3Ryb25nPkJpbmFyeSAocGx1Zy1pbikgQ29tcGF0aWJpbGl0eTo8L3N0cm9uZz4gRWNsaXBzZSBTREsgMy40IGlzIHVwd2FyZHMKICBiaW5hcnktY29tcGF0aWJsZSB3aXRoIEVjbGlwc2UgU0RLIDMuMyBleGNlcHQgaW4gdGhvc2UgYXJlYXMgbm90ZWQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuZWNsaXBzZS5vcmcvdmlld2N2cy9pbmRleC5jZ2kvJTdFY2hlY2tvdXQlN0Uvb3JnLmVjbGlwc2UucGxhdGZvcm0uZG9jLmlzdi9wb3J0aW5nL2VjbGlwc2VfM180X3BvcnRpbmdfZ3VpZGUuaHRtbCIgdGFyZ2V0PSJfdG9wIj4gPGVtPkVjbGlwc2UKICAzLjQgUGx1Zy1pbiBNaWdyYXRpb24gR3VpZGU8L2VtPjwvYT4uIERvd253YXJkIHBsdWctaW4gY29tcGF0aWJpbGl0eSBpcyBub3QKICBzdXBwb3J0ZWQuIFBsdWctaW5zIGZvciBFY2xpcHNlIFNESyAzLjQgYXJlIG5vdCB1c2FibGUgaW4gRWNsaXBzZSBTREsgMy4zLgogIFJlZmVyIHRvIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL2luZGV4LnBocC9Fdm9sdmluZ19KYXZhLWJhc2VkX0FQSXMiPiA8ZW0+RXZvbHZpbmcKICBKYXZhLWJhc2VkIEFQSXM8L2VtPiA8L2E+IGZvciBhIGRpc2N1c3Npb24gb2YgdGhlIGtpbmRzIG9mIEFQSSBjaGFuZ2VzIHRoYXQKICBtYWludGFpbiBiaW5hcnkgY29tcGF0aWJpbGl0eS4gPC9wPgo8cD48c3Ryb25nPlNvdXJjZSBDb21wYXRpYmlsaXR5Ojwvc3Ryb25nPiBFY2xpcHNlIFNESyAzLjQgaXMgdXB3YXJkcyBzb3VyY2UtY29tcGF0aWJsZQogIHdpdGggRWNsaXBzZSBTREsgMy4zIGV4Y2VwdCBpbiB0aGUgYXJlYXMgbm90ZWQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuZWNsaXBzZS5vcmcvdmlld2N2cy9pbmRleC5jZ2kvJTdFY2hlY2tvdXQlN0Uvb3JnLmVjbGlwc2UucGxhdGZvcm0uZG9jLmlzdi9wb3J0aW5nL2VjbGlwc2VfM180X3BvcnRpbmdfZ3VpZGUuaHRtbCIgdGFyZ2V0PSJfdG9wIj4gPGVtPkVjbGlwc2UKICAzLjQgUGx1Zy1pbiBNaWdyYXRpb24gR3VpZGU8L2VtPjwvYT4uIFRoaXMgbWVhbnMgdGhhdCBzb3VyY2UgZmlsZXMgd3JpdHRlbgogIHRvIHVzZSBFY2xpcHNlIFNESyAzLjMgQVBJcyBtaWdodCBzdWNjZXNzZnVsbHkgY29tcGlsZSBhbmQgcnVuIGFnYWluc3QgRWNsaXBzZQogIFNESyAzLjQgQVBJcywgYWx0aG91Z2ggdGhpcyBpcyBub3QgZ3VhcmFudGVlZC4gRG93bndhcmQgc291cmNlIGNvbXBhdGliaWxpdHkKICBpcyBub3Qgc3VwcG9ydGVkLiBJZiBzb3VyY2UgZmlsZXMgdXNlIG5ldyBFY2xpcHNlIFNESyBBUElzLCB0aGV5IHdpbGwgbm90IGJlCiAgdXNhYmxlIHdpdGggYW4gZWFybGllciB2ZXJzaW9uIG9mIHRoZSBFY2xpcHNlIFNESy4gPC9wPgo8cD48c3Ryb25nPldvcmtzcGFjZSBDb21wYXRpYmlsaXR5Ojwvc3Ryb25nPiBFY2xpcHNlIFNESyAzLjQgaXMgdXB3YXJkcwogIHdvcmtzcGFjZS1jb21wYXRpYmxlIHdpdGggRWNsaXBzZSBTREsgMy4zIHVubGVzcyBub3RlZC4gVGhpcyBtZWFucyB0aGF0IHdvcmtzcGFjZXMKICBhbmQgcHJvamVjdHMgY3JlYXRlZCB3aXRoIEVjbGlwc2UgU0RLIDMuMywgMy4yLCAzLjEgb3IgMy4wIGNhbiBiZSBzdWNjZXNzZnVsbHkKICBvcGVuZWQgYnkgRWNsaXBzZSBTREsgMy40IGFuZCB1cGdyYWRlZCB0byBhIDMuNCB3b3Jrc3BhY2UuIFRoaXMgaW5jbHVkZXMgYm90aAogIGhpZGRlbiBtZXRhZGF0YSwgd2hpY2ggaXMgbG9jYWxpemVkIHRvIGEgcGFydGljdWxhciB3b3Jrc3BhY2UsIGFzIHdlbGwgYXMgbWV0YWRhdGEKICBmaWxlcyBmb3VuZCB3aXRoaW4gYSB3b3Jrc3BhY2UgcHJvamVjdCAoZS5nLiwgdGhlIC5wcm9qZWN0IGZpbGUpLCB3aGljaCBtYXkKICBwcm9wYWdhdGUgYmV0d2VlbiB3b3Jrc3BhY2VzIHZpYSBmaWxlIGNvcHlpbmcgb3IgdGVhbSByZXBvc2l0b3JpZXMuIEluZGl2aWR1YWwKICBwbHVnLWlucyBkZXZlbG9wZWQgZm9yIEVjbGlwc2UgU0RLIDMuNCBzaG91bGQgcHJvdmlkZSBzaW1pbGFyIHVwd2FyZHMgY29tcGF0aWJpbGl0eQogIGZvciB0aGVpciBoaWRkZW4gYW5kIHZpc2libGUgd29ya3NwYWNlIG1ldGFkYXRhIGNyZWF0ZWQgYnkgZWFybGllciB2ZXJzaW9uczsKICAzLjQgcGx1Zy1pbiBkZXZlbG9wZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhhdCB0aGVpciBwbHVnLWlucyByZWNvZ25pemUKICAzLjMsIDMuMiwgMy4xLCAzLjAsIDIuMSwgYW5kIDIuMCBtZXRhZGF0YSBhbmQgcHJvY2VzcyBpdCBhcHByb3ByaWF0ZWx5LiBVc2VyCiAgaW50ZXJmYWNlIHNlc3Npb24gc3RhdGUgbWF5IGJlIGRpc2NhcmRlZCB3aGVuIGEgd29ya3NwYWNlIGlzIHVwZ3JhZGVkLiBEb3dud2FyZAogIHdvcmtzcGFjZSBjb21wYXRpYmlsaXR5IGlzIG5vdCBzdXBwb3J0ZWQuIEEgd29ya3NwYWNlIGNyZWF0ZWQgKG9yIG9wZW5lZCkgYnkKICBhIHByb2R1Y3QgYmFzZWQgb24gRWNsaXBzZSAzLjQgd2lsbCBiZSB1bnVzYWJsZSB3aXRoIGEgcHJvZHVjdCBiYXNlZCBhbiBlYXJsaWVyCiAgdmVyc2lvbiBvZiBFY2xpcHNlLiBWaXNpYmxlIG1ldGFkYXRhIGZpbGVzIGNyZWF0ZWQgKG9yIG92ZXJ3cml0dGVuKSBieSBFY2xpcHNlCiAgMy40IHdpbGwgZ2VuZXJhbGx5IGJlIHVudXNhYmxlIHdpdGggZWFybGllciB2ZXJzaW9ucyBvZiBFY2xpcHNlLiA8L3A+CjxwPjxzdHJvbmc+Tm9uLWNvbXBsaWFudCB1c2FnZSBvZiBBUEknczwvc3Ryb25nPjogQWxsIG5vbi1BUEkgbWV0aG9kcyBhbmQgY2xhc3NlcywKICBhbmQgY2VydGFpbmx5IGV2ZXJ5dGhpbmcgaW4gYSBwYWNrYWdlIHdpdGggJnF1b3Q7aW50ZXJuYWwmcXVvdDsgaW4gaXRzIG5hbWUsCiAgYXJlIGNvbnNpZGVyZWQgaW1wbGVtZW50YXRpb24gZGV0YWlscyB3aGljaCBtYXkgdmFyeSBiZXR3ZWVuIG9wZXJhdGluZyBlbnZpcm9ubWVudAogIGFuZCBhcmUgc3ViamVjdCB0byBjaGFuZ2Ugd2l0aG91dCBub3RpY2UuIENsaWVudCBwbHVnLWlucyB0aGF0IGRpcmVjdGx5IGRlcGVuZAogIG9uIGFueXRoaW5nIG90aGVyIHRoYW4gd2hhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIEVjbGlwc2UgU0RLIEFQSSBhcmUgaW5oZXJlbnRseQogIHVuc3VwcG9ydGFibGUgYW5kIHJlY2VpdmUgbm8gZ3VhcmFudGVlcyBhYm91dCBjb21wYXRpYmlsaXR5IHdpdGhpbiBhIHNpbmdsZQogIHJlbGVhc2UgbXVjaCBsZXNzIHdpdGggZWFybGllciByZWxlYXNlcy4gUmVmZXIgdG8gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hcnRpY2xlcy9BcnRpY2xlLUFQSSUyMHVzZS9lY2xpcHNlLWFwaS11c2FnZS1ydWxlcy5odG1sIj4gPGVtPkhvdwogIHRvIFVzZSB0aGUgRWNsaXBzZSBBUEk8L2VtPiA8L2E+IGZvciBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gd3JpdGUgY29tcGxpYW50CiAgcGx1Zy1pbnMuIDwvcD4KCjxoMj4zLiA8YSBuYW1lPSJLbm93biBJc3N1ZXMiPjwvYT4gS25vd24gSXNzdWVzPC9oMj4KPGJsb2NrcXVvdGU+CiAgPGEgaHJlZj0iI0ktR2VuZXJhbCI+CiAgMy4xIEdlbmVyYWwgcHJvYmxlbXM8L2E+PGJyPgogICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSIjSS1HZW5lcmFsLVN0YXJ0dXAiPjMuMS4xIFN0YXJ0dXA8L2E+PGJyPgogICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSIjSS1HZW5lcmFsLUdDSiI+My4xLjIgR0NKPC9hPjxicj4KICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0iI0ktR2VuZXJhbC1VTkMiPjMuMS4zIFVOQyBQYXRoczwvYT48YnI+CiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9IiNJLUdlbmVyYWwtNjRiaXRKYXZhIj4zLjEuNCA2NC1iaXQgSmF2YSBIb3RTcG90KFRNKSBWTTwvYT48YnI+CiAgPGEgaHJlZj0iI0ktUGxhdGZvcm0iPjMuMiBQbGF0Zm9ybTwvYT48YnI+CiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9IiNJLVBsYXRmb3JtLUNvcmUiPjMuMi4xIENvcmU8L2E+PGJyPgoKICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0iI0ktUGxhdGZvcm0tQW50Ij4zLjIuMiBBbnQ8L2E+PGJyPgogICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSIjSS1QbGF0Zm9ybS1Vc2VyLUFzc2lzdGFuY2UiPjMuMi4zIFVzZXIgQXNzaXN0YW5jZTwvYT48YnI+CiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9IiNJLVBsYXRmb3JtLVVJIj4zLjIuNCBVSTwvYT48YnI+CiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9IiNJLVBsYXRmb3JtLVRleHQiPjMuMi41IFRleHQ8L2E+PGJyPgogICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSIjSS1QbGF0Zm9ybS1TV1QiPjMuMi42IFNXVDwvYT48YnI+CgogICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8YSBocmVmPSIjSS1QbGF0Zm9ybS1UZWFtLUNWUyI+My4yLjcgVGVhbSBhbmQgQ1ZTPC9hPjxicj4KICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPGEgaHJlZj0iI0ktUGxhdGZvcm0tSW5zdGFsbC1VcGRhdGUiPjMuMi44ICBJbnN0YWxsL1VwZGF0ZTwvYT48YnI+CiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9IiNJLVBsYXRmb3JtLURlYnVnIj4zLjIuOSBEZWJ1ZzwvYT48YnI+CiAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxhIGhyZWY9IiNJLVBsYXRmb3JtLUNvbXBhcmUiPjMuMi4xMCBDb21wYXJlPC9hPjxicj4KICA8YSBocmVmPSIjSS1KRFQiPgogIDMuMyBKYXZhIGRldmVsb3BtZW50IHRvb2xzIChKRFQpPC9hPjxicj4KICA8YSBocmVmPSIjSS1QREUiPgogIDMuNCBQbHVnLWluIERldmVsb3BtZW50IEVudmlyb25tZW50IChQREUpPC9hPjxicj4KCjwvYmxvY2txdW90ZT4KPHA+Tm90ZTogQnVnIG51bWJlcnMgcmVmZXIgdG8gdGhlIEVjbGlwc2UgcHJvamVjdCBidWcgZGF0YWJhc2UgYXQgPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy9idWdzLyI+aHR0cDovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy88L2E+PC9wPgoKPGgzPjMuMSA8YSBuYW1lPSJJLUdlbmVyYWwiPkdlbmVyYWwgcHJvYmxlbXM8L2E+PC9oMz4KPGgzPjMuMS4xIDxhIG5hbWU9IkktR2VuZXJhbC1TdGFydHVwIj5HZW5lcmFsIC0gU3RhcnR1cDwvYT48L2gzPgo8aDQ+SW5zdGFsbGF0aW9uL0NvbmZpZ3VyYXRpb24gaXNzdWVzIHRoYXQgY2FuIGNhdXNlIEVjbGlwc2UgdG8gZmFpbCBzdGFydDwvaDQ+CjxwPkhlcmUgYXJlIHNvbWUgY29tbW9uIHByb2JsZW1zIHRoYXQgY2FuIGNhdXNlIEVjbGlwc2Ugbm90IHRvIHN0YXJ0OjwvcD4KPHVsPgogIDxsaT5BcyBzaG93biA8YSBocmVmPSIjVGFyZ2V0T3BlcmF0aW5nRW52aXJvbm1lbnRzIj5hYm92ZTwvYT4sIEVjbGlwc2UgMy40IHJlcXVpcmVzIAogICAgYXQgbGVhc3QgYSAxLjQuMiBWTS4gUGVyaGFwcyBhbiBvbGRlciB2ZXJzaW9uIG9mIHRoZSBWTSBpcyBiZWluZyBmb3VuZCBpbiAKICAgIHlvdXIgcGF0aC4gVG8gZXhwbGljaXRseSBzcGVjaWZ5IHdoaWNoIFZNIHRvIHJ1biB3aXRoLCB1c2UgdGhlIEVjbGlwc2UgPHR0Pi12bTwvdHQ+IAogICAgY29tbWFuZC1saW5lIGFyZ3VtZW50LiAoU2VlIGFsc28gdGhlIDxhIGhyZWY9IiNSdW5uaW5nIEVjbGlwc2UiPlJ1bm5pbmcgRWNsaXBzZTwvYT4gCiAgICBzZWN0aW9uIGJlbG93Lik8L2xpPgogIDxsaT4KICAgIFJ1bm5pbmcgRWNsaXBzZSBvbiBHZW50b28gTGludXggbWF5IHJlc3VsdCBpbiB0aGUgZm9sbG93aW5nIGVycm9yIG1lc3NhZ2U6CiAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tbGVmdDogNDBweDsiPgo8dHQ+KiBydW4tamF2YS10b29sIGlzIG5vdCBhdmFpbGFibGUgZm9yIHN1bi1qZGstMS42IG9uIGk2ODY8YnI+KiBJTVBPUlRBTlQ6IHNvbWUgSmF2YSB0b29scyBhcmUgbm90IGF2YWlsYWJsZSBvbiBzb21lIFZNcyBvbiBzb21lIGFyY2hpdGVjdHVyZXM8L3R0PgogICAgPC9kaXY+CgpJZiB0aGlzIG9jY3Vycywgc3RhcnQgRWNsaXBzZSBieSBzcGVjaWZ5aW5nIGEgLXZtIGFyZ3VtZW50LCBlaXRoZXIKc3BlY2lmeSB0aGUgcGF0aCB0byBhIGphdmEgdm0gb3IgdXNlOiA8dHQ+ZWNsaXBzZSAtdm0gYGphdmEtY29uZmlnPC90dD4KLS1qYXZhYCAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xNzYwMjEiPjE3NjAyMTwvYT4pPC9saT4KPGxpPkVjbGlwc2UgbXVzdCBiZSBpbnN0YWxsZWQgdG8gYSBjbGVhbiBkaXJlY3RvcnkgYW5kIG5vdCBpbnN0YWxsZWQgb3ZlciB0b3Agb2YKYSBwcmV2aW91cyBpbnN0YWxsYXRpb24uIElmIHlvdSBoYXZlIGRvbmUgdGhpcyB0aGVuIHBsZWFzZSByZS1pbnN0YWxsIHRvIGEgbmV3CmRpcmVjdG9yeS4gSWYgeW91ciB3b3Jrc3BhY2UgaXMgaW4gYSBjaGlsZCBkaXJlY3Rvcnkgb2YgeW91ciBvbGQgaW5zdGFsbGF0aW9uCmRpcmVjdG9yeSwgdGhlbiBzZWUgdGhlIGluc3RydWN0aW9ucyBiZWxvdyBvbiAiPGEgaHJlZj0iI3VwZ3JhZGluZyI+VXBncmFkaW5nIFdvcmtzcGFjZSBmcm9tIGEKUHJldmlvdXMgUmVsZWFzZSI8L2E+LjwvbGk+Cgo8bGk+SmF2YSBzb21ldGltZXMgaGFzIGRpZmZpY3VsdHkgZGV0ZWN0aW5nIHdoZXRoZXIgYSBmaWxlIHN5c3RlbSBpcyB3cml0YWJsZS4gSW4KcGFydGljdWxhciwgdGhlIG1ldGhvZCBqYXZhLmlvLkZpbGUuY2FuV3JpdGUoKSBhcHBlYXJzIHRvIHJldHVybiB0cnVlIGluCnVuZXhwZWN0ZWQgY2FzZXMgKGUuZy4sIHVzaW5nIFdpbmRvd3MgZHJpdmUgc2hhcmluZyB3aGVyZSB0aGUgc2hhcmUgaXMgYQpyZWFkLW9ubHkgU2FtYmEgZHJpdmUpLiBUaGUgRWNsaXBzZSBydW50aW1lIGdlbmVyYWxseSBuZWVkcyBhIHdyaXRhYmxlCmNvbmZpZ3VyYXRpb24gYXJlYSBhbmQgYXMgYSByZXN1bHQgb2YgdGhpcyBwcm9ibGVtLCBtYXkgZXJyb25lb3VzbHkgZGV0ZWN0IHRoZQpjdXJyZW50IGNvbmZpZ3VyYXRpb24gbG9jYXRpb24gYXMgd3JpdGFibGUuIFRoZSBuZXQgcmVzdWx0IGlzIHRoYXQgRWNsaXBzZSB3aWxsCmZhaWwgdG8gc3RhcnQgYW5kIGRlcGVuZGluZyBvbiB0aGUgY2lyY3Vtc3RhbmNlcywgbWF5IGZhaWwgdG8gd3JpdGUgYSBsb2cgZmlsZQp3aXRoIGFueSBkZXRhaWxzLiBUbyB3b3JrIGFyb3VuZCB0aGlzLCB3ZSBzdWdnZXN0IHVzZXJzIGV4cGVyaWVuY2luZyB0aGlzCnByb2JsZW0gc2V0IHRoZWlyIGNvbmZpZ3VyYXRpb24gYXJlYSBleHBsaWNpdGx5IHVzaW5nIHRoZSA8dHQ+LWNvbmZpZ3VyYXRpb248L3R0PiBjb21tYW5kCmxpbmUgYXJndW1lbnQuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTY3NzE5Ij42NzcxOTwvYT4pPC9saT4KPC91bD4KCjxoND48Yj5JbnZhbGlkIGNoYXJhY3RlcnMgaW4gaW5zdGFsbCBkaXJlY3RvcnkgcHJldmVudHMgRWNsaXBzZSBmcm9tIHN0YXJ0aW5nPC9iPjwvaDQ+CjxwPkVjbGlwc2Ugd2lsbCBmYWlsIHRvIGxhdW5jaCBpZiBpbnN0YWxsZWQgaW4gYSBkaXJlY3Rvcnkgd2hvc2UgcGF0aApjb250YWlucyBjZXJ0YWluIGludmFsaWQgY2hhcmFjdGVycywgaW5jbHVkaW5nIDolIyZsdDsmZ3Q7JnF1b3Q7IS4gVGhlCndvcmthcm91bmQgaXMgdG8gaW5zdGFsbCBFY2xpcHNlIGluIGEgZGlyZWN0b3J5IHdob3NlIHBhdGggZG9lcyBub3QgY29udGFpbgppbnZhbGlkIGNoYXJhY3RlcnMuIChidWdzIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMTA5Ij4zMTA5PC9hPgphbmQgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE3MjgxIj4xNzI4MTwvYT4pPC9wPgoKPGg0PkhhbmdpbmcgZHVyaW5nIGNsYXNzIGxvYWRpbmcgd2hlbiBvdXQgb2YgcGVybWFuZW50IGdlbmVyYXRpb24gbWVtb3J5PC9oND4KPHA+ClRoZSBTdW4gVk0gbWF5IGhhbmcgaW5kZWZpbml0ZWx5IGR1cmluZyBjbGFzcyBsb2FkaW5nIGlmIGl0IHJ1bnMgb3V0IG9mIHBlcm1hbmVudApnZW5lcmF0aW9uIG1lbW9yeS4gIFRoaXMgd2lsbCBjYXVzZSBDUFUgdXNhZ2UgdG8gc3RheSBhdCAxMDAlIHVudGlsIHRoZSBwcm9jZXNzCmlzIGVuZGVkLiAgU2VlIHRoZSBzZWN0aW9uIDxhIGhyZWY9IiNSdW5uaW5nIEVjbGlwc2UiPlJ1bm5pbmcgRWNsaXBzZTwvYT4gZm9yIGRldGFpbHMKb24gYWRkcmVzc2luZyB0aGlzIFZNIHByb2JsZW0uCjwvcD4KCjxoMz4zLjEuMiA8YSBuYW1lPSJJLUdlbmVyYWwtR0NKIj5HZW5lcmFsIC0gR0NKPC9hPjwvaDM+CjxwPkdDSiBpcyBhbiBlZmZvcnQgYnkgdGhlIEdDQyB0ZWFtIHRvIHByb3ZpZGUgYW4gb3BlbiBzb3VyY2UgSmF2YSBjb21waWxlciBhbmQKcnVudGltZSBlbnZpcm9ubWVudCB0byBpbnRlcnByZXQgSmF2YSBieXRlY29kZS4gVW5mb3J0dW5hdGVseSwgdGhlIEdDSiBydW50aW1lCmVudmlyb25tZW50IGlzIG5vdCBhbiBlbnZpcm9ubWVudCB0aGF0IGlzIG9mdGVuIHRlc3RlZCBvbiBieSBFY2xpcHNlCmRldmVsb3BlcnMuPC9wPgoKPHA+VGhlIG1vc3QgY29tbW9uIHByb2JsZW1zIHN1cnJvdW5kaW5nIEdDSiBhcmU6PC9wPgo8dWw+CjxsaT5FY2xpcHNlIGRvZXMgbm90IHN0YXJ0IGF0IGFsbDwvbGk+CjxsaT5FY2xpcHNlIHRocm93cyBhICdqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbjogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLlBsdWdpbicgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIGxvZ3MgKGxvY2F0ZWQgaW4Kd29ya3NwYWNlLy5tZXRhZGF0YS8ubG9nKTwvbGk+CjwvdWw+Cgo8cD5UaGUgd29ya3NwYWNlJ3MgbG9nIGZpbGUgaXMgYSBnb29kIHBsYWNlIHRvIGNoZWNrIHRvIGlkZW50aWZ5IHdoZXRoZXIgR0NKIGlzCmJlaW5nIHVzZWQgb3Igbm90LiBFdmVyeSBFY2xpcHNlIGxvZyBzZXNzaW9uIHNob3VsZCBiZSBwcmVwZW5kZWQgd2l0aAppbmZvcm1hdGlvbiBhYm91dCB0aGUgcnVudGltZSBlbnZpcm9ubWVudCB0aGF0IHdhcyB1c2VkIHRvIHJ1biBFY2xpcHNlLiBUaGUgbG9nCm1heSBpbmNsdWRlIHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmc6PC9wPgoKPGNvZGU+amF2YS5mdWxsdmVyc2lvbj1HTlUgbGliZ2NqIDQuMi4xIChEZWJpYW4gNC4yLjEtNSk8L2NvZGU+Cgo8cD5JZiBFY2xpcHNlIGRvZXMgc3RhcnQsIG9uZSBjYW4gY2hlY2sgd2hpY2ggcnVudGltZSBlbnZpcm9ubWVudCBpcyBiZWluZyB1c2VkIHRvCnJ1biBFY2xpcHNlIGJ5IGdvaW5nIHRvICdIZWxwID4gQWJvdXQgRWNsaXBzZSBTREsgPiBDb25maWd1cmF0aW9uIERldGFpbHMnLiBUaGUKQWJvdXQgRGlhbG9nIGl0c2VsZiBjYW4gYWxzbyBwcm92aWRlIG90aGVyIGluZm9ybWF0aW9uLCB0aGUgYnVpbGQgaWRlbnRpZmllcgpjYW4gYmUgb2YgcGFydGljdWxhciBpbnRlcmVzdCBhcyBpdCBpcyB0YWdnZWQgYnkgc29tZSBkaXN0cmlidXRpb25zLiBUaGlzIGFsbG93cyB0aGUKdXNlciB0byBpZGVudGlmeSB3aGV0aGVyIEVjbGlwc2Ugd2FzIGRvd25sb2FkZWQgdGhyb3VnaCB0aGUgZGlzdHJpYnV0aW9uJ3MKcGFja2FnZSBtYW5hZ2VtZW50IHN5c3RlbSBvciBkaXJlY3RseSBmcm9tIHRoZSBlY2xpcHNlLm9yZyB3ZWJzaXRlLjwvcD4KCkVnOiA8Y29kZT5CdWlsZCBpZDogTTIwMDcwMjEyLTEzMzAgKFVidW50dSB2ZXJzaW9uOiAzLjIuMi0wdWJ1bnR1Myk8L2NvZGU+Cgo8cD5UaGUgdHdvIG1vc3QgY29tbW9uIHdvcmthcm91bmRzIGFyZTo8L3A+PHVsPgo8bGk+ZG93bmxvYWQgdGhlIEVjbGlwc2UgYmluYXJ5IGZyb20gZWNsaXBzZS5vcmcgZGlyZWN0bHk8L2xpPgo8bGk+cnVuIEVjbGlwc2UgdXNpbmcgYW4gYWx0ZXJuYXRlIEphdmEgcnVudGltZSBlbnZpcm9ubWVudDwvbGk+PC91bD4KCjxwPlRvIGRvd25sb2FkIEVjbGlwc2UsIHRyeSBvbmUgb2YgdGhlIGxpbmtzIGJlbG93OjwvcD48dWw+CjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2Rvd25sb2Fkcy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZG93bmxvYWRzLzwvYT48L2xpPgo8bGk+PGEgaHJlZj0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL2VjbGlwc2UvZG93bmxvYWRzLyI+aHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL2VjbGlwc2UvZG93bmxvYWRzLzwvYT48L2xpPjwvdWw+CgpJdCBpcyBpbXBlcmF0aXZlIHRoYXQgNjQtYml0IGJ1aWxkcyBhcmUgZG93bmxvYWRlZCBhbmQgdXNlZCBpZiBhIDY0LWJpdCBKYXZhCnJ1bnRpbWUgZW52aXJvbm1lbnQgaGFzIGJlZW4gaW5zdGFsbGVkLiBCZWxvdyBhcmUgdHdvIHNhbXBsZSB0YXJiYWxsIG5hbWVzIG9mCnZlcnNpb24gMy40LjAgb2YgdGhlIEVjbGlwc2UgU0RLIHBhY2thZ2VkIGZvciAzMi1iaXQgYW5kIDY0LWJpdCBwcm9jZXNzb3JzLgoKPHByZT5lY2xpcHNlLVNESy0zLjQtbGludXgtZ3RrLnRhci5neiAoMzItYml0KQplY2xpcHNlLVNESy0zLjQtbGludXgtZ3RrLXg4Nl82NC50YXIuZ3ogKDY0LWJpdCk8L3ByZT4KCjxwPlRvIHJ1biBFY2xpcHNlIHdpdGggYW4gYWx0ZXJuYXRlIEphdmEgcnVudGltZSBlbnZpcm9ubWVudCwgdGhlIHBhdGggdG8gdGhlIEphdmEKdmlydHVhbCBtYWNoaW5lJ3MgYmluYXJ5IG11c3QgYmUgaWRlbnRpZmllZC4gV2l0aCBhbiBFY2xpcHNlIGluc3RhbGxhdGlvbiBmcm9tCnRoZSBkaXN0cmlidXRpb24sIGFsdGVyaW5nIHRoZSAkUEFUSCB2YXJpYWJsZSB0byBpbmNsdWRlIHRoZSBwYXRoIHRvIHRoZQphbHRlcm5hdGUgSmF2YSBydW50aW1lIGVudmlyb25tZW50IGlzIG9mdGVuIG5vdCBlbm91Z2ggYXMgdGhlIEVjbGlwc2UgdGhhdApMaW51eCBkaXN0cmlidXRpb25zIHBhY2thZ2Ugb2Z0ZW4gcGVyZm9ybXMgYSBzY2FuIGludGVybmFsbHkgdG8gcGljayB1cCBHQ0ogYnkKaXRzZWxmIHdoaWxzdCBpZ25vcmluZyB3aGF0J3Mgb24gdGhlICRQQVRILiBBbiBleGFtcGxlIG9mIHRoZSB0ZXJtaW5hbCdzIG91dHB1dAppcyBzaG93biBiZWxvdzo8L3A+Cgo8Y29kZT5zZWFyY2hpbmcgZm9yIGNvbXBhdGlibGUgdm0uLi48YnI+CiAgdGVzdGluZyAvdXNyL2xpYi9qdm0vamF2YS03LWljZWR0ZWEuLi5ub3QgZm91bmQ8YnI+CiAgdGVzdGluZyAvdXNyL2xpYi9qdm0vamF2YS1nY2ouLi5mb3VuZDwvY29kZT4KCjxwPk9uY2UgdGhlIHBhdGggdG8gdGhlIHZpcnR1YWwgbWFjaGluZSdzIGJpbmFyeSBoYXMgYmVlbiBpZGVudGlmaWVkLCB0cnkgcnVubmluZwpFY2xpcHNlIHdpdGggdGhlIGZvbGxvd2luZyBjb21tYW5kOjwvcD4KCjxjb2RlPi4vZWNsaXBzZSAtdm0gL3BhdGgvdG8vanJlL2Jpbi9qYXZhPC9jb2RlPgoKPHA+Rm9yIGFuIGFjdHVhbCBleGFtcGxlLCBpdCBtaWdodCBsb29rIHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmc6PC9wPgoKPGNvZGU+Li9lY2xpcHNlIC12bSAvdXNyL2xpYi9qdm0vc3VuLWphdmEtNi9iaW4vamF2YTxicj4KLi9lY2xpcHNlIC12bSAvb3B0L3N1bi1qZGstMS42LjAuMDIvYmluL2phdmE8L2NvZGU+Cgo8cD5JZiB0aGlzIHNlZW1zIHRvIHNvbHZlIHRoZSBwcm9ibGVtLCBpdCBpcyBsaWtlbHkgdGhhdCB0aGUgcHJvYmxlbSByZWFsbHkgd2FzCnJlbGF0ZWQgdG8gdGhlIHVzZSBvZiBHQ0ogYXMgdGhlIEphdmEgcnVudGltZSBmb3IgcnVubmluZyBFY2xpcHNlLiBUaGUKZWNsaXBzZS5pbmkgZmlsZSBsb2NhdGVkIHdpdGhpbiBFY2xpcHNlJ3MgZm9sZGVyIGNhbiBiZSBhbHRlcmVkIHRvCmF1dG9tYXRpY2FsbHkgcGFzcyB0aGlzIGFyZ3VtZW50IHRvIEVjbGlwc2UgYXQgc3RhcnR1cC4gQW4gZXhhbXBsZSBvZiBpdHMKY29udGVudCBpcyBwcmVzZW50ZWQgYmVsb3c6PC9wPgoKPGNvZGU+LXNob3dzcGxhc2g8YnI+Cm9yZy5lY2xpcHNlLnBsYXRmb3JtPGJyPgotLWxhdW5jaGVyLlhYTWF4UGVybVNpemU8YnI+CjI1Nm08YnI+Ci12bTxicj4KL29wdC9zdW4tamRrLTEuNi4wLjAyL2Jpbi9qYXZhPGJyPgotdm1hcmdzPGJyPgotWG1zNDBtPGJyPgotWG14NTEybTwvY29kZT4KCjxwPk5vdGUgdGhhdCBldmVyeSBhcmd1bWVudCBtdXN0IGJlIG9uIGl0cyBvd24gbGluZS4gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUKZWNsaXBzZS5pbmkgZmlsZSBjYW4gYmUgZm91bmQgYXQgPGEgaHJlZj0iaHR0cDovL3dpa2kuZWNsaXBzZS5vcmcvRWNsaXBzZS5pbmkiPmh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL0VjbGlwc2UuaW5pPC9hPi48L3A+Cgo8cD5JZiBwcm9ibGVtcyBwZXJzaXN0cyBhZnRlciBkb3dubG9hZGluZyBhbiBpbnN0YWxsYXRpb24gb2YgRWNsaXBzZSBmcm9tCmVjbGlwc2Uub3JnIGFuZCB1c2luZyBhIHN1cHBvcnRlZCBKYXZhIHJ1bnRpbWUgZW52aXJvbm1lbnQgKGEgbGlzdCBvZiB3aGljaCBtYXkgYmUgZm91bmQgPGEgaHJlZj0iI1RhcmdldE9wZXJhdGluZ0Vudmlyb25tZW50cyI+YWJvdmU8L2E+KSwgCnlvdSBjYW4gc2VlayBmdXJ0aGVyIGFzc2lzdGFuY2UgdGhyb3VnaCB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9uZXdzZ3JvdXBzLyI+bmV3c2dyb3VwczwvYT4sIAp0aGUgSVJDIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2VjbGlwc2UiPmNoYW5uZWw8L2E+LCAKYW5kL29yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzLyI+YnVnemlsbGE8L2E+Lgo8L3A+Cgo8aDM+My4xLjMgPGEgbmFtZT0iSS1HZW5lcmFsLVVOQyI+R2VuZXJhbCAtIFVOQyBQYXRoczwvYT48L2gzPgo8cD5FY2xpcHNlIDMuNC4wIGRvZXMgbm90IHByb3Blcmx5IGhhbmRsZSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkgdXNpbmcgClVuaXZlcnNhbCBOYW1pbmcgQ29udmVudGlvbiAoVU5DKSBwYXRocy4gTGltaXRlZCB1c2VzIG9mIHRoZSBwbGF0Zm9ybSB3aWxsCndvcmsgaW4gdGhpcyBlbnZpcm9ubWVudCwgYnV0IHRoZXJlIGFyZSBrbm93biBidWdzIHdpdGggc3RhcnRpbmcgd29ya3NwYWNlcyBvbgphIFVOQyBsb2NhdGlvbiwgb3IgdXBncmFkaW5nIHNvZnR3YXJlIGluc3RhbGxlZCBpbiBhIFVOQyBsb2NhdGlvbgooYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMzU2MjkiPjIzNTYyOTwvYT4sCmJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTAzIj4yMDcxMDM8L2E+KS4KVGhlIHBsYXRmb3JtIGlzIG5vdCB3ZWxsIHRlc3RlZCBpbiBzdWNoIGFuIGVudmlyb25tZW50LjwvcD4KCjxoMz4zLjEuMyA8YSBuYW1lPSJJLUdlbmVyYWwtNjRiaXRKYXZhIj5HZW5lcmFsIC0gNjQtYml0IEphdmEgSG90U3BvdChUTSkgVk08L2E+PC9oMz4KPHA+ClRoZXJlIGlzIGEga25vd24gaXNzdWUgd2l0aCB0aGUgNjQtYml0IEphdmEgSG90U3BvdChUTSkgMS42LjAgVk0gY29tcGlsZXIgd2hpY2ggY2F1c2VzIGVjbGlwc2UgdG8gCmNyYXNoIChzZWUgU3VuIGJ1ZyA8YSBocmVmPSJodHRwOi8vYnVncy5zdW4uY29tL2J1Z2RhdGFiYXNlL3ZpZXdfYnVnLmRvP2J1Z19pZD02NjE0MTAwIj5odHRwOi8vYnVncy5zdW4uY29tL2J1Z2RhdGFiYXNlL3ZpZXdfYnVnLmRvP2J1Z19pZD02NjE0MTAwPC9hPiwKYW5kIEVjbGlwc2UgYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMTQwOTIiPjIxNDA5MjwvYT4pLgpUaGUgY3Jhc2ggdXN1YWxseSBvY2N1cnMgd2l0aGluIGEgVk0gQ29tcGlsZXJUaHJlYWQgd2hlbiBhdHRlbXB0aW5nIHRvIGNvbXBpbGUgdGhlIG1ldGhvZCBvcmcuZWNsaXBzZS5jb3JlLmludGVybmFsLmR0cmVlLkRhdGFUcmVlTm9kZS5mb3J3YXJkRGVsdGFXaXRoLgo8L3A+Cgo8cD4KVG8gd29yayBhcm91bmQgdGhlIGlzc3VlIHlvdSBjYW4gZXhjbHVkZSB0aGUgbWV0aG9kIG9yZy5lY2xpcHNlLmNvcmUuaW50ZXJuYWwuZHRyZWUuRGF0YVRyZWVOb2RlLmZvcndhcmREZWx0YVdpdGggZnJvbSBiZWluZyBjb21waWxlZCB3aXRoIHRoZSBmb2xsb3dpbmcKVk0gYXJndW1lbnQ6CjwvcD4KCjxjb2RlPgotWFg6Q29tcGlsZUNvbW1hbmQ9ZXhjbHVkZSxvcmcvZWNsaXBzZS9jb3JlL2ludGVybmFsL2R0cmVlL0RhdGFUcmVlTm9kZSxmb3J3YXJkRGVsdGFXaXRoCjwvY29kZT4KCjxwPgpUaGlzIFZNIGFyZ3VtZW50IGNhbiBiZSBwbGFjZWQgaW4gdGhlIGVjbGlwc2UuaW5pIGZpbGUgYWZ0ZXIgdGhlIC12bWFyZ3MgbGluZSBsaWtlIHRoZSBmb2xsb3dpbmc6CjwvcD4KCjxjb2RlPgotc3RhcnR1cDxicj4KcGx1Z2luc1xvcmcuZWNsaXBzZS5lcXVpbm94LmxhdW5jaGVyXzEuMC4xMDAudjIwMDgwNTA5LTE4MDAuamFyPGJyPgotLWxhdW5jaGVyLmxpYnJhcnk8YnI+CnBsdWdpbnNcb3JnLmVjbGlwc2UuZXF1aW5veC5sYXVuY2hlci53aW4zMi53aW4zMi54ODZfMS4wLjEwMC52MjAwODA1MDktMTgwMDxicj4KLXNob3dzcGxhc2g8YnI+Cm9yZy5lY2xpcHNlLnBsYXRmb3JtPGJyPgotLWxhdW5jaGVyLlhYTWF4UGVybVNpemU8YnI+CjI1Nm08YnI+Ci12bWFyZ3M8YnI+Ci1YWDpDb21waWxlQ29tbWFuZD1leGNsdWRlLG9yZy9lY2xpcHNlL2NvcmUvaW50ZXJuYWwvZHRyZWUvRGF0YVRyZWVOb2RlLGZvcndhcmREZWx0YVdpdGg8YnI+Ci1YbXM0MG08YnI+Ci1YbXgyNTZtPGJyPgo8L2NvZGU+Cgo8cD4KVGhlcmUgaGF2ZSBiZWVuIHJlcG9ydHMgb2Ygb3RoZXIgY2xhc3NlcyB0aGF0IGNhdXNlIHRoZSBjb21waWxlciB0byBjcmFzaC4gIElmIGFsbCBlbHNlIGZhaWxzIHlvdSBjYW4gCmRpc2FibGUgdGhlIGNvbXBpbGVyIHdpdGggdGhlIFZNIGFyZyAmcXVvdDstWGludCZxdW90Oy4KPC9wPgoKPGgzPjMuMiA8YSBuYW1lPSJJLVBsYXRmb3JtIj5QbGF0Zm9ybTwvYT48L2gzPgoKPGgzPjMuMi4xIDxhIG5hbWU9IkktUGxhdGZvcm0tQ29yZSI+UGxhdGZvcm0gLSBDb3JlPC9hPjwvaDM+Cgo8aDQ+SW5zdGFsbGluZyBwbHVnLWlucyBieSB1bnppcHBpbmcgdGhlbSBpbnRvIHRoZSBwbHVnaW5zIGRpcmVjdG9yeTwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCBuZXcgcGx1Zy1pbnMgYW5kIHRoZXkgYXJlbid0IHNob3dpbmcgdXAgd2hlbiB5b3UgcnVuLAp0aGVuIHBlcmhhcHMgeW91IHVuemlwcGVkIHRoZW0gaW50byB5b3VyICJwbHVnaW5zIiBkaXJlY3RvcnkgYW5kIHlvdXIKY29uZmlndXJhdGlvbiBtaWdodCBuZWVkIHRvIGJlIHJlZnJlc2hlZC4gVGhpcyBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IHN0YXJ0aW5nCkVjbGlwc2Ugd2l0aCB0aGUgPHR0Pi1jbGVhbjwvdHQ+IGNvbW1hbmQgbGluZSBhcmd1bWVudC48L3A+Cgo8aDQ+WE1MIGZpbGVzIHdpdGggVVRGLTggYnl0ZSBvcmRlciBtYXJrIGZhaWwgdG8gaGF2ZSBjb250ZW50IHR5cGUgZGV0ZWN0ZWQ8L2g0Pgo8cD5FY2xpcHNlIHdpbGwgZmFpbCB0byBkZXRlY3QgdGhlIHByb3BlciBjb250ZW50IHR5cGUgZm9yIFhNTCBmaWxlcyB0aGF0IGhhdmUgYQpVVEYtOCBieXRlIG9yZGVyIG1hcmsgaWYgQ3JpbXNvbiBpcyB0aGUgWE1MIHBhcnNlciAoYXMgaXQgaXMgb24gU3VuIDEuNCBKUkVzLApidXQgbm90IG9uIFN1biAxLjUgSlJFcykuIFRoaXMKcHJvYmxlbSB3aWxsIHByZXZlbnQgYWN0aW9ucyBub3JtYWxseSBhdmFpbGFibGUgd2hlbiBmaWxlcyBvZiB0aGUgYWZmZWN0ZWQKY29udGVudCB0eXBlcyBhcmUgc2VsZWN0ZWQgZnJvbSBiZWluZyBwcmVzZW50ZWQgdG8gdGhlIHVzZXIuIFRoZSB3b3JrYXJvdW5kIGlzCnRvIGVuc3VyZSB0aGUgZGVmYXVsdCBYTUwgcGFyc2VyIHN1cHBvcnRzIFVURi04IEJPTXMgKHN1Y2ggYXMgWGVyY2VzIGRvZXMpLiAoYnVnCjxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD02NzA0OCI+NjcwNDg8L2E+KTwvcD4KPGg0Pk5vIGJyYW5kaW5nIHdpdGggb2xkIGNvbmZpZy5pbmk8L2g0Pgo8cD5JZiB5b3UgaGF2ZSBhbiBvbGQgY29uZmlnLmluaSBmaWxlIGFuZCB1c2UgaXQgd2l0aCBhIG5ldyBFY2xpcHNlIGJ1aWxkLCB5b3UKbWF5IG5vdCBnZXQgdGhlIGNvcnJlY3QgcHJvZHVjdCBicmFuZGluZy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBpZCBvZiB0aGUgc3RhbmRhcmQKRWNsaXBzZSBwcm9kdWN0IGNoYW5nZWQuIFVzZXJzIGluIHNoYXJlZCBpbnN0YWxsIHNjZW5hcmlvcyBtYXkgZW5kIHVwIGluIHRoaXMKc2l0dWF0aW9uIGFzIHByZXZpb3VzIGJ1aWxkcyBvZiBFY2xpcHNlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGNvbmZpZy5pbmkgZmlsZXMKaW4gc29tZSBjYXNlcy4gVGhlIHdvcmsgYXJvdW5kIGlzIGVpdGhlciB0byBkZWxldGUgdGhlIGxvY2FsIGNvbmZpZy5pbmkgb3IKdXBkYXRlIHRoZSBlY2xpcHNlLnByb2R1Y3QgbGluZSB0byByZWFkIGVjbGlwc2UucHJvZHVjdD1vcmcuZWNsaXBzZS5wbGF0Zm9ybS5pZGUuPC9wPgoKPGg0PlByb2JsZW1zIHdpdGgKY2xhc3Nsb2FkZXJzIGluIGNyZWF0ZWQgdGhyZWFkczwvaDQ+CjxwPlRoZXJlIGlzIGEga25vd24gaXNzdWUgd2l0aCB0cnlpbmcgdG8gbG9hZCBjbGFzc2VzIGZyb20gYSBuZXdseS1jcmVhdGVkCnRocmVhZCB1c2luZyBhIGNsYXNzIGxvYWRlciBkaWZmZXJlbnQgZnJvbSB0aGUgcGx1Zy1pbiBjbGFzcyBsb2FkZXIuIFRoZSByZXN1bHQKd2lsbCBiZSBhIDxjb2RlPkNsYXNzTm90Rm91bmRFeGNlcHRpb248L2NvZGU+LiBBcyBhIHdvcmthcm91bmQsIGRvIHRoZQpmb2xsb3dpbmc6PC9wPgo8b2w+CiAgPGxpPkNyZWF0ZSBhIHRocmVhZCBpbiB3aGljaCB0byBydW4geW91ciBjb2RlLjwvbGk+CiAgPGxpPlNlbmQgeW91clRocmVhZC5zZXRDb250ZXh0Q2xhc3NMb2FkZXIoeW91ckNsYXNzTG9hZGVyKTsgLy8geW91IGNhbiBmaW5kCiAgICB5b3VyIGNsYXNzbG9hZGVyIGJ5IGdyYWJiaW5nIGEgY2xhc3MgaXQgbG9hZGVkIChZb3VyUGx1Z2luQ2xhc3MuY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKSk8L2xpPgogIDxsaT5SdW4geW91ciBjb2RlIGluIHRoZSBuZXdseSBjcmVhdGVkIHRocmVhZC48L2xpPgo8L29sPgo8cD5JZiB5b3Ugc2V0IHRoZSBjb250ZXh0IGNsYXNzIGxvYWRlciBmb3IgdGhlIGN1cnJlbnQgdGhyZWFkLCB5b3UgYXJlCmNvbXBldGluZyB3aXRoIG90aGVyIHVzZXJzIG9mIHRoZSB0aHJlYWQgKGFsbCBvZiBFY2xpcHNlKSwgc28gdGhlIHJlc3VsdHMgd2lsbApiZSB1bnByZWRpY3RhYmxlLiBIb3dldmVyLCB0aGVyZSBzaG91bGQgYmUgbm8gcHJvYmxlbSBpbiBwcmFjdGljZSBwcm92aWRlZCB5b3UKcmVzZXQgdGhlIGNvbnRleHQgY2xhc3MgbG9hZGVyIGJhY2sgdG8gaXRzIG9yaWdpbmFsIHZhbHVlIHdoZW4geW91ciB1c2UgaW4gdGhlCmN1cnJlbnQgdGhyZWFkIGlzJm5ic3A7Y29tcGxldGUuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTg5MDciPjg5MDc8L2E+KTwvcD4KCjxoND5EZWFkbG9jayBjcmVhdGluZyBleGVjdXRhYmxlCmV4dGVuc2lvbiBpbiBQbHVnaW4uc3RhcnR1cDwvaDQ+CjxwPklmIDxjb2RlPlBsdWdpbi5zdGFydHVwPC9jb2RlPiBjb2RlIGlzIHRvbyBjb21wbGV4IGFuZCBwZXJmb3JtcyB0YXNrcyBzdWNoCmFzIGNyZWF0aW5nIGFuIGV4ZWN1dGFibGUgZXh0ZW5zaW9uLCBhIGRlYWRsb2NrIHNpdHVhdGlvbiBjYW4gYmUgY3JlYXRlZC4gT25seQpzaW1wbGUgYm9va2tlZXBpbmcgdGFza3Mgc2hvdWxkIGJlIHBlcmZvcm1lZCBpbiA8Y29kZT5QbHVnaW4uc3RhcnR1cDwvY29kZT4KY29kZS4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NTg3NSI+NTg3NTwvYT4pPC9wPgo8aDQ+UG90ZW50aWFsIFByb2JsZW1zIENvbnZlcnRpbmcgUGx1Zy1pbiBNYW5pZmVzdHM8L2g0Pgo8cD5JZiB5b3VyIHBsdWctaW4gc2hpcHMgd2l0aCBhIHBsdWctaW4gbWFuaWZlc3QgYW5kIG5vdCBhbiBPU0dpIGJ1bmRsZSBtYW5pZmVzdCwKaXMgc2hpcHBlZCBhcyBhIEpBUiBmaWxlLCBhbmQgY29udGFpbnMgYSBuZXN0ZWQgSkFSIGZpbGUgdGhlbiB0aGVyZSBtYXkgYmUKcHJvYmxlbXMgaW4gdGhlIGF1dG9tYXRpYyBnZW5lcmF0aW9uIG9mIHRoZSBidW5kbGUgbWFuaWZlc3QgZmlsZS4gVGhlIHBhY2thZ2VzCmRlZmluZWQgaW4gdGhlIG5lc3RlZCBKQVIgbWF5IG5vdCBiZSBleHBvcnRlZCBjb3JyZWN0bHkgaW4gdGhlIDx0dD5FeHBvcnQtcGFja2FnZXM8L3R0PgoKYnVuZGxlIG1hbmlmZXN0IGhlYWRlci4gVG8gd29yayBhcm91bmQgdGhpcyB5b3Ugc2hvdWxkIHNoaXAgeW91ciBwbHVnLWluIHdpdGggYQpidW5kbGUgbWFuaWZlc3QuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTk3Njg5Ij45NzY4OTwvYT4pPC9wPgo8aDQ+TG9jYXRpb24gZm9yIERlYnVnIE9wdGlvbnMgRmlsZSBvbiBNYWMgT1M8L2g0Pgo8cD5JZiB5b3UgYXJlIHJ1bm5pbmcgaW4gZGVidWcgbW9kZSBvbiBNYWMgT1MsIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGUKLm9wdGlvbnMgZmlsZSBpcyBpbnNpZGUgdGhlIGFwcGxpY2F0aW9uIGJ1bmRsZSBpbiB0aGUgRWNsaXBzZS5hcHAvQ29udGVudHMvTWFjT1MKZGlyZWN0b3J5IChsaWtlIHRoZSBlY2xpcHNlLmluaSkuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTg4NzgyIj44ODc4MjwvYT4pPC9wPgo8aDQ+Q29uZmlndXJhdGlvbiBjYW4gYmVjb21lIGludmFsaWQgd2hlbiByZW1vdmluZyBvcmcuZWNsaXBzZS51cGRhdGUuY29uZmlndXJhdG9yPC9oND4KPHA+V2hlbiBsYXVuY2hpbmcgYW4gRWNsaXBzZSBBcHBsaWNhdGlvbiBmcm9tIHdpdGhpbiB0aGUgRWNsaXBzZSBJREUgaXQgaXMgcG9zc2libGUKdG8gc2VsZWN0IHRoZSBzZXQgb2YgcGx1Zy1pbnMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIEVjbGlwc2UgQXBwbGljYXRpb24uIApSZW1vdmluZyB0aGUgb3JnLmVjbGlwc2UudXBkYXRlLmNvbmZpZ3VyYXRvciBwbHVnLWluIGZyb20gdGhlIHNldCBvZiBwbHVnLWlucyB0bwphbiBleGlzdGluZyBjb25maWd1cmF0aW9uIGNhbiBjYXVzZSB0aGUgY29uZmlndXJhdGlvbiB0byBiZWNvbWUgaW52YWxpZC4gIFRoaXMKY2FuIHJlc3VsdCBpbiBleHRyYSBwbHVnLWlucyBpbnN0YWxsZWQgaW4gdGhlIHRhcmdldCBhcHBsaWNhdGlvbiB0aGF0IGFyZSBub3QKcmVzb2x2ZWQuICBUbyB3b3JrIGFyb3VuZCB0aGlzLCBhZnRlciB0aGUgb3JnLmVjbGlwc2UudXBkYXRlLmNvbmZpZ3VyYXRvcgpwbHVnLWluIGhhcyBiZWVuIHJlbW92ZWQsIHRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiBhcmVhIHNob3VsZCBiZSBjbGVhcmVkIGJlZm9yZQpsYXVuY2hpbmcuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTg1ODM1Ij44NTgzNTwvYT4pPC9wPgoKPGg0Pklzc3VlcyB3aXRoIEpOSSB0aGF0IHVzZSBGaW5kQ2xhc3M8L2g0Pgo8cD4KVGhlcmUgbWF5IGJlIGlzc3VlcyB3aGVuIHVzaW5nIGEgSk5JIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyBGaW5kQ2xhc3MgCmluIGEgZnVuY3Rpb24gd2hlcmUgdGhlIEpOSUVudiBwb2ludGVyIGlzIG5vdCBhdmFpbGFibGUsIHN1Y2ggYXMgaW4gYSBDIApjYWxsYmFjayAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMjUyNTAiPjEyNTI1MDwvYT4pLiAgVGhlIHJlYXNvbiBpcyB0aGF0IEZpbmRDbGFzcywgaW4gdGhpcyBjYXNlLCB1c2VzIHRoZSBhcHBsaWNhdGlvbgpjbGFzcyBsb2FkZXIgdG8gZmluZCB0aGUgY2xhc3MuCklmIHRoZSBkZXNpcmVkIGNsYXNzIGlzIGluIHRoZSBjbGFzc3BhdGggdXNlZCBmb3IgdGhlIGFwcGxpY2F0aW9uIGNsYXNzbG9hZGVyCihlLmcuIGRlZmluZWQgYnkgdGhlIFZNIGFyZ3VtZW50IC1jcCAmbHQ7Y2xhc3NwYXRoJmd0OyksIGFzIGl0IHdvdWxkIHR5cGljYWxseSBiZSBpbiAKYSBzdGFuZC1hbG9uZSBhcHBsaWNhdGlvbiwgdGhlcmUgaXMgbm8gcHJvYmxlbS4gIEhvd2V2ZXIsIHVuZGVyCkVjbGlwc2UsIHRoZSBhcHBsaWNhdGlvbiBjbGFzc2xvYWRlciBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBjbGFzc2VzIApjb250YWluZWQgaW4gcGx1Zy1pbnMuICBFY2xpcHNlIHVzZXMgaXRzIG93biBjbGFzcyBsb2FkZXIgdG8gZmluZCBjbGFzc2VzIApjb250YWluZWQgaW4gcGx1Zy1pbnMuCjwvcD4KPHA+ClRoZSBwcm9wZXIgcGx1Zy1pbiBjbGFzcyBsb2FkZXIgaXMgdXNlZCBieSBGaW5kQ2xhc3MgaW4gSk5JIGZ1bmN0aW9ucyB3aGljaCBhcmUgCnBhc3NlZCB0aGUgSk5JRW52IHBvaW50ZXIsIGJ1dCBub3Qgd2hlbiB5b3UgaGF2ZSB0byB1c2UgQXR0YWNoQ3VycmVudFRocmVhZCB0byBnZXQgdGhlIApKTklFbnYgcG9pbnRlci4gIEluIHRoaXMgY2FzZSB0aGUgYXBwbGljYXRpb24gY2xhc3Nsb2FkZXIgaXMgdXNlZC4KPC9wPgo8cD4KRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgd2lsbCBmYWlsIGJlY2F1c2UgQXR0YWNoQ3VycmVudFRocmVhZCBpcyB1c2VkIHRvIApnZXQgdGhlIEpOSUVudiBwb2ludGVyOjwvcD4KPHByZT4Kc3RhdGljIEphdmFWTSoganZtOyAgLy8gR2xvYmFsIHZhcmlhYmxlCgp2b2lkIG15Q2FsbGJhY2sodm9pZCkgewogICAgSk5JRW52KiBlbnY7CiAgICBqdm0tPkF0dGFjaEN1cnJlbnRUaHJlYWQoKHZvaWQqKikmYW1wO2VudiwgTlVMTCk7CiAgICAvLyBGYWlscyBpZiBzb21lL2NsYXNzIGlzIG5vdCBpbiB0aGUgYXBwbGljYXRpb24gY2xhc3Nsb2FkZXI6CiAgICBqY2xhc3MgY2xzID0gZW52LT5GaW5kQ2xhc3MoJnF1b3Q7c29tZS9jbGFzcyZxdW90Oyk7CiAgICBqbWV0aG9kSUQgbWV0aG9kSUQgPSBlbnYtPkdldE1ldGhvZElEKGNscywgJnF1b3Q7bWV0aG9kTmFtZSZxdW90OywKICAgICAgJnF1b3Q7KExqYXZhL2xhbmcvU3RyaW5nOylWIG9yIHdoYXRldmVyIHNpZ25hdHVyZSZxdW90Oyk7CiAgICBlbnYtPkNhbGxWb2lkTWV0aG9kKGNhbGxiYWNrLCBtZXRob2RJRCwgLi4uKTsKICAgIGp2bS0+RGV0YWNoQ3VycmVudFRocmVhZCgpOwogIH0KfQo8L3ByZT4KPHA+CkEgc29sdXRpb24gaXMgdG8gY2FjaGUgdGhlIG1ldGhvZCBJRCwgZm9yIGV4YW1wbGU6CjwvcD4KPHByZT4Kc3RhdGljIGptZXRob2RJRCBtaWQ7ICAvLyBHbG9iYWwgdmFyaWFibGUKCkpOSUVYUE9SVCBqaW50IEpOSUNBTEwgSk5JX09uTG9hZChKYXZhVk0gKnZtLCB2b2lkICpyZXNlcnZlZCkgewouLi4KICAvLyBTdG9yZSB0aGUgSmF2YVZNIHBvaW50ZXIKICAgIGp2bSA9IHZtOwoKICAvLyBGaW5kIHRoZSBjbGFzcyBhbmQgc3RvcmUgdGhlIG1ldGhvZCBJRAogIC8vIFdpbGwgdXNlIHRoZSBjbGFzcyBsb2FkZXIgdGhhdCBsb2FkZWQgdGhlIEpOSSBsaWJyYXJ5CiAgICBqY2xhc3MgY2xzID0gZW52LT5GaW5kQ2xhc3MoY2xhc3NOYW1lJnF1b3Q7c29tZS9jbGFzcyZxdW90Oyk7CiAgICBpZighY2xzKSBnb3RvIEVSUjsKCiAgICBtaWQgPSBlbnYtPkdldE1ldGhvZElEKGNscywgJnF1b3Q7bWV0aG9kTmFtZSZxdW90OywKICAgICAgJnF1b3Q7KExqYXZhL2xhbmcvU3RyaW5nOylWIG9yIHdoYXRldmVyIHNpZ25hdHVyZSZxdW90Oyk7CiAgICBpZighbWlkKSBnb3RvIEVSUjsKLi4uCn0KCnZvaWQgbXlDYWxsYmFjayh2b2lkKSB7CiAgICBKTklFbnYqIGVudjsKICAgIGp2bS0+QXR0YWNoQ3VycmVudFRocmVhZCgodm9pZCoqKSZhbXA7ZW52LCBOVUxMKTsKICAgIGVudi0+Q2FsbFZvaWRNZXRob2QoY2FsbGJhY2ssIG1pZCwgLi4uKTsKICAgICAvLyBIYW5kbGUgZXJyb3IgLi4uCiAgICBqdm0tPkRldGFjaEN1cnJlbnRUaHJlYWQoKTsKICB9Cn0KPC9wcmU+CgoKPGgzPjMuMi4yIDxhIG5hbWU9IkktUGxhdGZvcm0tQW50Ij5QbGF0Zm9ybSAtIEFudDwvYT48L2gzPgo8aDQ+VVRGLTggZW5jb2RlZCBidWlsZGZpbGVzIHdpdGggQnl0ZSBPcmRlciBNYXJrPC9oND4KPHA+VVRGLTggZW5jb2RlZCBidWlsZGZpbGVzIHdpdGggYnl0ZSBvcmRlciBtYXJrcyB3aWxsIGZhaWwgdG8gYmUgcGFyc2VkIGNvcnJlY3RseSBkZXBlbmRpbmcgb24gdGhlIFhNTCBwYXJzZXIgYmVpbmcgdXNlZCBmb3IgdGhlIGJ1aWxkLiBUaGVyZWZvcmUgYSB2YWxpZCBidWlsZGZpbGUgd2lsbCBmYWlsIHRvIGJ1aWxkIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBzaW1pbGFyIHRvOiAiQlVJTEQgRkFJTEVEOiBDOlx3b3Jrc3BhY2VcYm9tLnhtbDoxOiBEb2N1bWVudCByb290IGVsZW1lbnQgaXMgbWlzc2luZy4iLiBUbyBzdWNjZWVkIGluIGJ1aWxkaW5nIHdpdGggdGhlc2UgZmlsZXMsIGVuc3VyZSB0byBpbmNsdWRlIFhlcmNlcyBqYXJzIG9uIHRoZSBBbnQgcnVudGltZSBjbGFzc3BhdGggc28gdGhhdCB0aGUgWGVyY2VzIHBhcnNlciBpcyB1c2VkIHRvIHBhcnNlIHRoZSBYTUwuIEFzIHdlbGwgdGhlIGNvbnRleHQgbWVudSBmb3IgdGhlc2UgZmlsZXMgaW4gdGhlIE5hdmlnYXRvciBvciBQYWNrYWdlIEV4cGxvcmVyIHdpbGwgbm90IGhhdmUgdGhlIHJ1biBzaG9ydGN1dHMgZm9yIEFudCBidWlsZHMuIChidWcKPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTY3MDQ4Ij42NzA0ODwvYT4pPC9wPgo8aDQ+IEN1c3RvbSBBbnQgdGFza3MgYW5kIEFudAp0eXBlcyBtdXN0IGJlIHNlcGFyYXRlIGZyb20gcGx1Zy1pbiBsaWJyYXJ5IEpBUnM8L2g0Pgo8cD5JbmNsdWRpbmcgdGhlIGNsYXNzIGZpbGVzIGZvciBjdXN0b20gQW50IHRhc2tzIG9yIEFudCB0eXBlcyBpbiB0aGUgcmVndWxhcgpjb2RlIEpBUiBmb3IgeW91ciBwbHVnLWluIGNhdXNlcyBwcm9ibGVtcy4gVGhlc2UgY2xhc3MgZmlsZXMgbXVzdCBiZSBwcm92aWRlZCBpbgphIHNlcGFyYXRlIEpBUiB0aGF0IGlzIGNvbnRyaWJ1dGVkIHRvIHRoZSA8Y29kZT5vcmcuZWNsaXBzZS5hbnQuY29yZS5hbnRUYXNrczwvY29kZT4Kb3IgPGNvZGU+YW50VHlwZXM8L2NvZGU+IGV4dGVuc2lvbiBwb2ludCAoYW5kIG5vdCBkZWNsYXJlZCBhcyBhIGxpYnJhcnkgaW4gdGhlCnBsdWctaW4ncyBtYW5pZmVzdCkuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBBbnQgdGFza3MgYW5kIHR5cGVzIGFyZSBsb2FkZWQgYnkgdGhlCnNwZWNpYWwgQW50IGNsYXNzIGxvYWRlciBhbmQgbm90IGJ5IGEgcGx1Zy1pbiBjbGFzc2xvYWRlci4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NjYiPjM0NDY2PC9hPikuPC9wPgoKPGg0PiBDb25jdXJyZW50IEFudCBidWlsZHMgbm90IHN1cHBvcnRlZDwvaDQ+CjxwPkVjbGlwc2UgY2FuIHJ1biBBbnQgaW4gdGhlIHNhbWUgSlZNIGFzIHRoZSByZXN0IG9mIEVjbGlwc2UuIFNldmVyYWwgYXNwZWN0cwpvZiBBbnQgYW5kIGl0cyB1c2Ugb2YgZ2xvYmFsIEphdmEgcmVzb3VyY2VzIChzdWNoIGFzIFN5c3RlbS5vdXQgYW5kIFN5c3RlbS5lcnIpLAptYWtlIGl0IHVuc2FmZSB0byBydW4gbW9yZSB0aGFuIG9uZSBBbnQgYnVpbGQgY29uY3VycmVudGx5IGluIHRoZSBzYW1lIEpWTS4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQxMjkiPjI0MTI5PC9hPikuPC9wPgo8aDQ+IFJ1bm5pbmcgY2VydGFpbiBBbnQgdGFza3MKY2F1c2UgbWVtb3J5IGxlYWthZ2U8L2g0Pgo8cD5DZXJ0YWluIEFudCB0YXNrcyBhcmUga25vd24gdG8gbGVhayBtZW1vcnkuIFBsZWFzZSBzZWUgdGhlIGJ1ZyByZXBvcnQgZm9yCmRldGFpbHMsIHBhdGNoZXMsIGFuZCBwb3NzaWJsZSB3b3JrYXJvdW5kcy4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ0NDgiPjI0NDQ4PC9hPik8L3A+CjxoND4gVGFza3MgdGhhdCByZXF1aXJlIGlucHV0CmxvY2sgdXAgd29ya3NwYWNlPC9oND4KCjxwPkFzIHdpdGggdXNpbmcgQW50IGZyb20gdGhlIGNvbW1hbmQgbGluZSwgcHJvbXB0cyBmb3IgaW5wdXQgZnJvbSB0aGUKY29uc29sZSBpcyBub3QgaGFuZGxlZC4gVGhpcyBpcyBub3QgdGhlIHNhbWUgYXMgbWFraW5nIHVzZSBvZiB0aGUgJmx0O2lucHV0Jmd0Owp0YXNrLCB3aGljaCB3b3JrcyBjb3JyZWN0bHkgd2l0aGluIEVjbGlwc2UuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIxNzQ4Ij4yMTc0ODwvYT4pPC9wPgo8aDQ+JnF1b3Q7dmVyc2lvbiZxdW90OyBwcm9wZXJ0eSBpcyBhbHdheXMgc2V0IHdoZW4gcnVubmluZyBBbnQgaW4gdGhlIHNhbWUgVk0gYXMgRWNsaXBzZTwvaDQ+CjxwPlRoZSBYYWxhbiBsaWJyYXJpZXMgc2V0IHN5c3RlbSBwcm9wZXJ0aWVzIGluY2x1ZGluZyBhIHZlcnNpb24gcHJvcGVydHkuIFRoZXNlIGdldCBzZXQgYXMgcHJvcGVydGllcyB3aXRoaW4gdGhlIEFudCBidWlsZCBhbmQgdGhlcmVmb3JlIHRoZSAidmVyc2lvbiIgcHJvcGVydHkgY2Fubm90IGJlIHNldCB3aXRoaW4gYW4gQW50IGJ1aWxkZmlsZSBkdWUgdG8gdGhlIGltbXV0YWJsZSBuYXR1cmUgb2YgQW50IHByb3BlcnRpZXMuIFRoaXMgcHJvcGVydHkgd2lsbCBhbHdheXMgYmUgc2V0IHRvICIyLjQuMSIgZm9yIEFudCBidWlsZHMgaW4gdGhlIHNhbWUgVk0gYXMgRWNsaXBzZS4gKGJ1Zwo8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDU3MTciPjQ1NzE3PC9hPik8L3A+CjxoND5YRG9jbGV0IHN1cHBvcnQgZnJvbSB3aXRoaW4gRWNsaXBzZTwvaDQ+Cgo8cD5TaW5jZSB0aGVyZSBhcmUgZGlmZmVyZW5jZXMgd2hlbiBydW5uaW5nIEFudCBmcm9tIHRoZSBjb21tYW5kbGluZSBhbmQgd2l0aGluIEVjbGlwc2UsIHNvbWUgZXh0cmEgc3RlcHMgbWF5IGJlIG5lZWRlZCB0byBoYXZlIFhEb2NsZXQgc3VwcG9ydCBmdW5jdGlvbiBjb3JyZWN0bHkgd2l0aGluIEVjbGlwc2UuIFByb2JsZW1zIG1heSBvY2N1ciBjcmVhdGluZyBYRG9jbGV0IHN1YnRhc2tzLiBUaGUgd29ya2Fyb3VuZHMgYW5kIGZ1bGwgZGlzY3Vzc2lvbiBjYW4gYmUgZm91bmQgaW4gYnVnIHJlcG9ydC4gKGJ1Zwo8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzcwNzAiPjM3MDcwPC9hPik8L3A+CjxoND5BbnQgRWRpdG9yIGNvZGUgY29tcGxldGlvbiBiYXNlZCBvbiBBbnQgMS42LjE8L2g0Pgo8cD5Db2RlIGNvbXBsZXRpb24gcHJvdmlkZWQgYnkgdGhlIEFudCBlZGl0b3IgZG9lcyBub3QgcmVzcGVjdCB0aGUgdXNlci1zcGVjaWZpZWQgdmVyc2lvbiBvZiBvcmcuZWNsaXBzZS5hbnQuY29yZSBwbHVnLWluIG9yIEFOVF9IT01FLiBDb2RlIGNvbXBsZXRpb24gcHJvcG9zYWxzIGFyZSBtb3N0bHkgYmFzZWQgb24gQW50IDEuNi4xIHdpdGggc29tZSB1cGRhdGVzIHRvIEFudCAxLjYuNSAoYnVnCjxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMDg4NiI+MzA4ODY8L2E+KTwvcD4KPGg0PiBFY2xpcHNlIGNhbiBoYW5nIGR1ZSB0byBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQW50ICZsdDtwcm9wZXJ0eT4gdGFzayAoV2luZG93cyA5WApvbmx5KTwvaDQ+CjxwPk9uIFdpbmRvd3MgOVgsIHVzaW5nOiZsdDtwcm9wZXJ0eSBlbnZpcm9ubWVudD0iZW52Ii8+IHdpbGwgY2F1c2UgRWNsaXBzZSB0byBoYW5nIGlmIHRoZSBidWlsZCBvY2N1cnMgaW4gdGhlIHNhbWUgVk0gYXMgRWNsaXBzZS4gUnVubmluZyB0aGUgYnVpbGQgaW4gYSBzZXBhcmF0ZSBWTSB3aWxsIGhhbmcgdGhlIGJ1aWxkIGJ1dCBub3QgRWNsaXBzZS4KKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDQxOTYiPjQ0MTk2PC9hPik8L3A+Cgo8aDQ+IFNldHRpbmcgYnVpbGQgbG9nZ2VycyBub3Qgc3VwcG9ydGVkIHdoZW4gZGVidWdnaW5nIEFudCBidWlsZHM8L2g0Pgo8cD5XaGVuIGRlYnVnZ2luZyBBbnQgYnVpbGRzIHdpdGhpbiBFY2xpcHNlLCBzZXR0aW5nIC1sb2dnZXIgYXMgYSBwcm9ncmFtIGFyZ3VtZW50IHdpbGwgYmUgaWdub3JlZC48L3A+Cgo8aDQ+UmVuYW1pbmcgYW4gRXh0ZXJuYWwgVG9vbCBidWlsZGVyIHNldCB0byBydW4gZHVyaW5nIGF1dG8tYnVpbGQgd2lsbCBjYXVzZSBlcnJvcnM8L2g0Pgo8cD5JZiB5b3UgcmVuYW1lIGFuIGV4aXN0aW5nIGV4dGVybmFsIHRvb2wgYnVpbGRlciB0aGF0IGlzIGNvbmZpZ3VyZWQgdG8gcnVuIGR1cmluZyBhdXRvLWJ1aWxkcywgeW91IHdpbGwgZ2V0IHRoZSBmb2xsb3dpbmcgZXJyb3I6CiBFcnJvcnMgZHVyaW5nIGJ1aWxkLgogICAgICBFcnJvcnMgcnVubmluZyBidWlsZGVyICJJbnRlZ3JhdGVkIEV4dGVybmFsIFRvb2wgQnVpbGRlciIgb24gcHJvamVjdAogICAgICAmbHQ7UFJPSkVDVF9OQU1FJmd0Oy4KICAgICAgVGhlIGJ1aWxkZXIgbGF1bmNoIGNvbmZpZ3VyYXRpb24gY291bGQgbm90IGJlIGZvdW5kLgpUaGUgd29ya2Fyb3VuZCBpcyB0byBmaXJzdCBkaXNhYmxlIHRoZSBidWlsZGVyIGZvciBhdXRvLWJ1aWxkcyBhbmQgdGhlbiByZW5hbWUgdGhlIGJ1aWxkZXIuCihidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTExODI5NCI+MTE4Mjk0PC9hPik8L3A+Cgo8aDQ+U2xvdyB0eXBpbmcvc2F2aW5nIG9mIHRoZSBBbnQgZWRpdG9yIHdpdGggaW1wb3J0cyB0aGF0IGRlZmluZSBudW1lcm91cyBtYWNyb2RlZnM8L2g0Pgo8cD5UaGUgQW50IGVkaXRvciBpcyBzbG93IG9uIHNhdmluZyB3aXRoIGJ1aWxkZmlsZXMgdGhhdCBoYXZlICZsdDtpbXBvcnQmZ3Q7IGRlY2xhcmF0aW9ucyBvZiBidWlsZGZpbGVzIHRoYXQgaGF2ZSBudW1lcm91cyAmbHQ7bWFjcm9kZWYmZ3Q7cy4KU2VlIGJ1Z3MgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTkyNjQwIj45MjY0MDwvYT4gYW5kIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMjUxMTciPjEyNTExNzwvYT4gZm9yIHBvc3NpYmxlIHdvcmthcm91bmRzPC9wPgoKPGg0PkZhaWx1cmUgdG8gcnVuIEFudCBidWlsZHMgb24gbm9uLVdpbmRvd3MgcGxhdGZvcm1zIGlmIEVjbGlwc2UgaW5zdGFsbGVkIGluIGxvY2F0aW9uIHdpdGggc3BhY2VzIGluIHRoZSBwYXRoPC9oND4KPHA+RHVlIHRvIGEgYnVnIGluIEFudCAxLjcuMCwgQW50IGJ1aWxkcyB3aWxsIGZhaWwgd2l0aCBhbiBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaWYgdGhlIEVjbGlwc2UgaW5zdGFsbGF0aW9uIGlzIGluIGEgbG9jYXRpb24gd2l0aCBzcGFjZXMgaW4gdGhlIHBhdGguCkVtYmVkZGVkIHVzYWdlIG9mIEFudCBidWlsZHMsIHN1Y2ggYXMgcGx1Zy1pbiBleHBvcnQgd2lsbCBhbHNvIGZhaWwuClNlZSBidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE4Nzk5MyI+MTg3OTkzPC9hPiBmb3IgcG9zc2libGUgd29ya2Fyb3VuZHM8L3A+Cgo8aDM+My4yLjMgPGEgbmFtZT0iSS1QbGF0Zm9ybS1Vc2VyLUFzc2lzdGFuY2UiPlBsYXRmb3JtIC0gVXNlciBBc3Npc3RhbmNlPC9hPjwvaDM+CjxoND5XZWxjb21lIHBhZ2Ugbm90IGRpc3BsYXllZCBwcm9wZXJseSAoTGludXgvVW5peCk8L2g0Pgo8cD5UaGUgZGVmYXVsdCBXZWxjb21lIGltcGxlbWVudGF0aW9uIGlzIEhUTUwtYmFzZWQgYW5kIHJlcXVpcmVzIGEgc3VwcG9ydGVkIGJyb3dzZXIKaW4gb3JkZXIgdG8gd29yay4gSWYgbm8gc3VwcG9ydGVkIGJyb3dzZXIgY2FuIGJlIGZvdW5kLCBXZWxjb21lIGZhbGxzIGJhY2sgdG8gaXRzCkZvcm1zLWJhc2VkIGltcGxlbWVudGF0aW9uLCB3aGljaCBoYXMgYSBkaWZmZXJlbnQgKHNpbXBsZXIpIGFwcGVhcmFuY2UuIENvbnN1bHQgdGhlCjxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvc3d0L2ZhcS5waHAjYnJvd3NlcnBsYXRmb3JtcyI+U1dUIEZBUTwvYT4gZm9yIHN1cHBvcnRlZApicm93c2VycyBhbmQgc2V0dGluZyB1cCB5b3VyIGJyb3dzZXIgdG8gd29yayB3aXRoIGVjbGlwc2UuCjwvcD4KCjxoND5IZWxwIGJyb3dzZXIgdG9vbCBiYXIgYnV0dG9ucyBkbyBub3Qgd29yayBmb3Igc29tZSBkb2N1bWVudHM8L2g0Pgo8cD5UaGUgSGVscCBicm93c2VyJ3MgUHJpbnQsIFN5bmNocm9uaXplLCBhbmQgQm9va21hcmsgYnV0dG9ucyBkbyBub3Qgd29yayBmb3IKcGFnZXMgdGhhdCBhcmUgbm90IGFjdHVhbGx5IGluc3RhbGxlZCB3aXRoIHRoZSBwcm9kdWN0LiBIb3dldmVyLCB5b3UgY2FuIGFsd2F5cwp1c2UgdGhlIHByaW50IGNvbW1hbmQgaW4gdGhlIGJyb3dzZXIncyBjb250ZXh0IG1lbnUgdG8gcHJpbnQgdGhlIHBhZ2UgeW91J3JlCnJlYWRpbmcuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ0MjE2Ij40NDIxNjwvYT4pPC9wPgo8aDQ+IEhlbHAgZG9jdW1lbnRzIG5vdCBkaXNwbGF5ZWQKaW4gYSBicm93c2VyIG9yIHZlcnkgc2xvdyBkb2N1bWVudCBsb2FkaW5nIChXaW5kb3dzIG9ubHkpPC9oND4KCklmIHlvdXIgTEFOIHNldHRpbmdzIGFyZSBub3QgcHJvcGVybHkgY29uZmlndXJlZCBmb3IgbG9jYWwgaG9zdCBhY2Nlc3MsIHlvdXIKSGVscCBicm93c2VyIG1pZ2h0IG9wZW4gdG8gYSBibGFuayBwYWdlIG9yIGRpc3BsYXkgYW4gSFRUUCBlcnJvciBpbnN0ZWFkIG9mIGEKaGVscCBwYWdlLCBvciB5b3UgbWF5IGV4cGVyaWVuY2UgbG9uZyBkZWxheXMgd2hlbiBsb2FkaW5nIGhlbHAgZG9jdW1lbnRzLiBZb3VyCnN5c3RlbSBhZG1pbmlzdHJhdG9yIGNhbiBjb25maWd1cmUgeW91ciBMQU4gc2V0dGluZ3Mgc28gdGhhdCBoZWxwIGRvY3VtZW50cyBjYW4KYmUgYWNjZXNzZWQgZnJvbSB0aGUgbG9jYWwgaGVscCBzZXJ2ZXIuCjxibG9ja3F1b3RlPgogIDxvbD4KICAgIDxsaT5JbiB0aGUgQ29udHJvbCBQYW5lbCwgb3BlbiA8Yj5JbnRlcm5ldCBPcHRpb25zPC9iPiwgc2VsZWN0IHRoZSA8Yj5Db25uZWN0aW9uczwvYj4KICAgICAgdGFiIGFuZCBjaG9vc2UgPGI+TEFOIFNldHRpbmdzPC9iPi48L2xpPgogICAgPGxpPklmIHlvdXIgaG9zdCB3YXMgY29uZmlndXJlZCB0byB1c2UgREhDUCBmb3IgSVAgYXNzaWdubWVudCwgbWFrZSBzdXJlCiAgICAgIHRoYXQgdGhlICZxdW90O0F1dG9tYXRpY2FsbHkgZGV0ZWN0IHNldHRpbmdzJnF1b3Q7IGNoZWNrIGJveCBpcyBjbGVhcmVkLjwvbGk+CiAgICA8bGk+SWYgeW91IHVzZSBhIHByb3h5IHNlcnZlciwgZW5zdXJlIHRoYXQgdGhlICZxdW90O0J5cGFzcyBwcm94eSBzZXJ2ZXIKICAgICAgZm9yIGxvY2FsIGFkZHJlc3NlcyZxdW90OyBpcyBzZWxlY3RlZC48L2xpPgogICAgPGxpPkluICZxdW90O0FkdmFuY2VkJnF1b3Q7IHNldHRpbmdzIGZvciBwcm94aWVzLCBhZGQKICAgICAgJnF1b3Q7MTI3LjAuMC4xO2xvY2FsaG9zdCZxdW90OyB0byB0aGUgJnF1b3Q7RXhjZXB0aW9ucyZxdW90OyBpZiB0aGVzZQogICAgICBhZGRyZXNzZXMgYXJlIG5vdCBsaXN0ZWQuPC9saT4KICAgIDxsaT5JZiB5b3UgYXJlIHVzaW5nIGFuIGF1dG9tYXRpYyBjb25maWd1cmF0aW9uIHNjcmlwdCBmb3IgcHJveHkKICAgICAgc2V0dGluZ3MsIGFuZCBhcmUgbm90IHN1cmUgdGhhdCB0aGUgc2NyaXB0IGlzIGNvcnJlY3QsIGNsZWFyIHRoZSAmcXVvdDtVc2UKICAgICAgYXV0b21hdGljIGNvbmZpZ3VyYXRpb24gc2NyaXB0JnF1b3Q7IGNoZWNrIGJveC48L2xpPgoKICA8L29sPgo8L2Jsb2NrcXVvdGU+CjxwPklmIHRoZSBhYm92ZSBzdGVwcyBkbyBub3QgZml4IHlvdXIgcHJvYmxlbSwgdHJ5IGNoYW5naW5nIHRoZSBwb3J0IGFuZCBob3N0CnByb3BlcnRpZXMgb24gdGhlIDxiPkhlbHAgJmd0OyBIZWxwIFNlcnZlcjwvYj4gcHJlZmVyZW5jZSBwYWdlLiBJbiBnZW5lcmFsLApzZXR0aW5nIDxjb2RlPmhvc3Q8L2NvZGU+IHRvIDxjb2RlPmxvY2FsaG9zdDwvY29kZT4gb3IgPGNvZGU+MTI3LjAuMC4xPC9jb2RlPgoKc2hvdWxkIHdvcmsuIEFsc28sIGVzcGVjaWFsbHkgd2hlbiBydW5uaW5nIGEgZmlyZXdhbGwsIHlvdSBtYXkgd2FudCB0byBzcGVjaWZ5CnBvcnQgODAgb3Igc29tZSBvdGhlciBmaXJld2FsbC1mcmllbmRseSB2YWx1ZS4gKGJ1Z3MgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTcwMzYiPjcwMzY8L2E+LAo8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9OTQxOCI+OTQxODwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMTM5NCI+MTEzOTQ8L2E+KTwvcD4KPGg0PiBXb3JraW5nIGRpc2Nvbm5lY3RlZCBmcm9tCnRoZSBuZXR3b3JrIChXaW5kb3dzIG9ubHkpPC9oND4KSWYgeW91IGFyZSBleHBlcmllbmNpbmcgcHJvYmxlbXMgd2hlbiBub3QgY29ubmVjdGVkIHRvIHRoZSBuZXR3b3JrLCB5b3UgbXVzdAppbnN0YWxsIHRoZSBsb29wYmFjayBhZGFwdGVyIGZyb20gdGhlIFdpbmRvd3MgaW5zdGFsbGF0aW9uIENELiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD04MzEiPjgzMTwvYT4pCjxoND4gVXNpbmcgSW50ZXJuZXQgRXhwbG9yZXIgaW4Kb2ZmbGluZSBtb2RlIChXaW5kb3dzIG9ubHkpPC9oND4KCklmIHlvdSBoYXZlIGJlZW4gdXNpbmcgSW50ZXJuZXQgRXhwbG9yZXIgaW4gT2ZmbGluZSBtb2RlLCB3aGVuIHlvdSBhY2Nlc3MgdGhlCmhlbHAgc3lzdGVtIHlvdSB3aWxsIGdldCBhIG1lc3NhZ2UgaW5kaWNhdGluZyB0aGF0IHRoZSB3ZWIgcGFnZSB5b3UgcmVxdWVzdGVkIGlzCm5vdCBhdmFpbGFibGUgb2ZmbGluZSBvciBhIGJsYW5rIHBhZ2Ugd2lsbCBkaXNwbGF5LiBDbGljayA8Yj5Db25uZWN0PC9iPiBvcgpkZXNlbGVjdCAmcXVvdDtXb3JrIE9mZmxpbmUmcXVvdDsgaW4gdGhlIEludGVybmV0IEV4cGxvcmVyICZxdW90O0ZpbGUmcXVvdDsgbWVudQp0byByZXR1cm4gdGhlIHN5c3RlbSBiZWhhdmlvciB0byBub3JtYWwuCjxoND5IZWxwIHRvcGljcyBub3QgaGlnaGxpZ2h0ZWQgaW4gSGlnaCBDb250cmFzdCBtb2RlIChXaW5kb3dzIG9ubHkpPC9oND4KPHA+V2luZG93cyBIaWdoIENvbnRyYXN0IHNldHRpbmdzIGFyZSBub3QgY29uc2lzdGVudGx5IHBpY2tlZCB1cCBieSBJbnRlcm5ldApFeHBsb3JlciB3aGVuIHRoZXkgYXJlIHNldCBmcm9tIHRoZSBBY2Nlc3NpYmlsaXR5IE9wdGlvbnMgdXRpbGl0eSBhcyBvcHBvc2VkIHRvCndoZW4gdGhleSBhcmUgc2V0IHVzaW5nIHRoZSBwcmVkZWZpbmVkIHNjaGVtZXMuIE9uIFdpbmRvd3MgWFAsIGl0IGlzIHJlY29tbWVuZGVkCnRvIHNldCBIaWdoIENvbnRyYXN0IGFzIGZvbGxvd3M6IFJpZ2h0IGNsaWNrIHRoZSBkZXNrdG9wLCBjaG9zZSBwcm9wZXJ0aWVzLApzZWxlY3QgV2luZG93cyBDbGFzc2ljIHN0eWxlIGZyb20gdGhlIFdpbmRvd3MgYW5kIGJ1dHRvbnMgZHJvcCBkb3duIG9uIHRoZQpBcHBlYXJhbmNlIHRhYiwgYW5kIGNob29zZSB5b3VyIHNjaGVtZSAoZm9yIGV4YW1wbGUgSGlnaCBDb250cmFzdCBCbGFjaykgZnJvbQpDb2xvciBTY2hlbWUgZHJvcCBkb3duLiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yODYwOSI+Mjg2MDk8L2E+KTwvcD4KPGg0PkhlbHAgYnJvd3NlciBkaXNwbGF5cyBhIGJsYW5rIHBhZ2U8L2g0PgoKPHA+SWYgeW91IHNlZSBhIGhlbHAgbGF1bmNoZWQgd2l0aCBhIGJsYW5rIHBhZ2UsIGFuZCBubyBlcnJvcnMgZGlzcGxheWVkLCBpdCBjYW4KYmUgY2F1c2VkIGJ5IGEgY29uZmxpY3QgYmV0d2VlbiBsaWJyYXJpZXMgaW4gb3JnLmVjbGlwc2UudG9tY2F0IHBsdWctaW4gYW5kIGphcnMKb3B0aW9uYWxseSBpbnN0YWxsZWQgaW4gSlJFIGpyZS9saWIvZXh0IGRpcmVjdG9yeS4gVG8gZml4IHRoZSBwcm9ibGVtLCBlbnN1cmUKdGhhdCB0aGUgSlJFIHVzZWQgZm9yIHJ1bm5pbmcgRWNsaXBzZSBkb2VzIG5vdCBjb250YWluIGFueSBKMkVFIG9yIEFwYWNoZSBqYXJzCmluIHRoZSBqcmUvbGliL2V4dCBkaXJlY3RvcnkuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTYzOTcwIj42Mzk3MDwvYT4pPC9wPgoKPGgzPjMuMi40IDxhIG5hbWU9IkktUGxhdGZvcm0tVUkiPlBsYXRmb3JtIC0gVUk8L2E+PC9oMz4KPGg0PkhpZ2ggY29udHJhc3Qgc2V0dGluZ3M8L2g0Pgo8cD5FY2xpcHNlIHdhcyB0ZXN0ZWQgZm9yIEhpZ2ggQ29udHJhc3QgdXNpbmcgMTE1MiB4IDg2NCByZXNvbHV0aW9uIGluIFdpbmRvd3MKWFAgSGlnaCBDb250cmFzdCBtb2RlLiBZb3UgY2FuIHNlbGVjdCB0aGlzIG1vZGUgYnkgc2VsZWN0aW5nIEFjY2Vzc2liaWxpdHkKT3B0aW9ucyAmZ3Q7IERpc3BsYXkgJmd0OyBVc2UgSGlnaCBDb250cmFzdCBmcm9tIHRoZSBXaW5kb3dzIFhQIENvbnRyb2wgUGFuZWwKbWVudS48L3A+CjxoND5EZWZhdWx0IHRleHQgZmlsZSBlbmNvZGluZwptYXkgYmUgZGV0ZWN0ZWQgaW5jb3JyZWN0bHkgKFdpbmRvd3MgWFAvMjAwMCBvbmx5KTwvaDQ+Cgo8cD48c3Ryb25nPk5vdGU8L3N0cm9uZz46IHRoZSBidWcgcmVwb3J0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2JsZW0gaGFzIGJlZW4gZml4ZWQuIElmIHlvdSBydW4gRWNsaXBzZSB3aXRoIEpESyAxLjUgb3IgZ3JlYXRlciB5b3Ugc2hvdWxkIG5vdCBoYXZlIHRvIHVzZSB0aGUgd29ya2Fyb3VuZCBzdGF0ZWQgYmVsb3cgYW55IGxvbmdlci4gSG93ZXZlciwgdGhlIHByb2JsZW0gc3RpbGwgZXhpc3RzIHdoZW4gcnVubmluZyBFY2xpcHNlIHdpdGggSkRLIDEuNC54IG9yIGxvd2VyLCBzbyBpbiB0aGlzIGNhc2UgIHRoZSB3b3JrYXJvdW5kIGlzIHN0aWxsIHJlcXVpcmVkIC4gPC9wPgo8cD5UaGUgJnF1b3Q7VGV4dCBmaWxlIGVuY29kaW5nJnF1b3Q7IHZhbHVlIGRpc3BsYXllZCBpbiB0aGUgUHJlZmVyZW5jZXMKICBkaWFsb2cgdW5kZXIgJnF1b3Q7RWRpdG9ycyZxdW90OyBtYXkgYmUgd3Jvbmcgb24gcGxhdGZvcm1zIHJ1bm5pbmcgV2luZG93cyBYUAoob3IgMjAwMCkgd2hlbiB0aGUgdXNlciBsb2NhbGUgYW5kIHN5c3RlbSBsb2NhbGUgZGlmZmVyLiZuYnNwOzwvcD4KPHA+RXhhbXBsZSBvZiB0aGUgbWFuaWZlc3RhdGlvbiBvZiB0aGUgYnVnOiBBIEphcGFuZXNlIHVzZXIgdXNpbmcgSmFwYW5lc2UKV2luZG93cyAyMDAwIHdvcmtzIGluIE5ldyBZb3JrLCBVbml0ZWQgU3RhdGVzLiBUaGUgdXNlciBoYXMgc2VsZWN0ZWQgRW5nbGlzaAooVW5pdGVkIFN0YXRlcykgYXMgdGhlIHVzZXIgbG9jYWxlLiBUaGUgJnF1b3Q7VGV4dCBmaWxlIGVuY29kaW5nJnF1b3Q7IHZhbHVlCmRpc3BsYXllZCBieSBFY2xpcHNlIGlzIGluY29ycmVjdDogJnF1b3Q7Q3AxMjUyJnF1b3Q7IChFbmdsaXNoKS4gSXQgc2hvdWxkCmRpc3BsYXkgdGhlIHN5c3RlbSBsb2NhbGUgJnF1b3Q7TVM5MzImcXVvdDsgKEphcGFuZXNlKS48L3A+CjxwPldvcmthcm91bmQ6IFRoZSB1c2VyIGNhbiBtb2RpZnkgdGhlIHVzZXIgbG9jYWxlIHNvIHRoYXQgdXNlciBsb2NhbGUgYW5kCnN5c3RlbSBsb2NhbGUgYXJlIGlkZW50aWNhbC4gSW4gdGhlIGV4YW1wbGUgYWJvdmUsIHRoaXMgbWVhbnMgdGhlIHVzZXIgc2hvdWxkCnNldCBKYXBhbmVzZSBhcyB0aGUgdXNlciBsb2NhbGUuIFRoZW4gcmVzdGFydCBFY2xpcHNlLiBUaGUgJnF1b3Q7VGV4dCBmaWxlCmVuY29kaW5nJnF1b3Q7IHZhbHVlIHdpbGwgdGhlbiBiZSBjb3JyZWN0OiAmcXVvdDtNUzkzMiZxdW90OyAoSmFwYW5lc2UpLjwvcD4KCjxwPkZvciBXaW5kb3dzIFhQOjwvcD4KPHVsPgogIDxsaT5UbyBjaGVjayB0aGUgc3lzdGVtIGxvY2FsZTogT3BlbiB0aGUgQ29udHJvbCBQYW5lbC4gR28gdG8gUmVnaW9uYWwgYW5kCiAgICBMYW5ndWFnZSBPcHRpb25zLiBTd2l0Y2ggdG8gdGhlIEFkdmFuY2VkIHRhYi4gVGhlIHN5c3RlbSBsb2NhbGUgaXMgc3BlY2lmaWVkCiAgICBpbiAmcXVvdDtMYW5ndWFnZSBmb3Igbm9uLVVuaWNvZGUgcHJvZ3JhbXMmcXVvdDsuPC9saT4KICA8bGk+VG8gY2hhbmdlIHRoZSB1c2VyIGxvY2FsZTogT3BlbiB0aGUgQ29udHJvbCBQYW5lbC4gR28gdG8gUmVnaW9uYWwgYW5kCiAgICBMYW5ndWFnZSBPcHRpb25zLiBUaGUgdXNlciBsb2NhbGUgY2FuIGJlIG1vZGlmaWVkIGJ5IGNoYW5naW5nIHRoZSBsYW5ndWFnZQogICAgaW4gJnF1b3Q7U3RhbmRhcmRzIGFuZCBmb3JtYXRzJnF1b3Q7LjwvbGk+CjwvdWw+CjxwPkZvciBXaW5kb3dzIDIwMDA6PC9wPgo8dWw+CiAgPGxpPlRvIGNoZWNrIHRoZSBzeXN0ZW0gbG9jYWxlOiBPcGVuIHRoZSBDb250cm9sIFBhbmVsLiBHbyB0byBSZWdpb25hbAogICAgT3B0aW9ucy4gTG9vayB1cCB0aGUgaXRlbXMgaW4gdGhlIEdlbmVyYWwgdGFiLCBpbnNpZGUgdGhlICZxdW90O0xhbmd1YWdlCiAgICBzZXR0aW5ncyBmb3IgdGhlIHN5c3RlbSZxdW90OyBncm91cC4gVGhlIHN5c3RlbSBsb2NhbGUgaXMgdGhlIGl0ZW0gbWFya2VkIGFzCiAgICAoRGVmYXVsdCkuPC9saT4KICA8bGk+VG8gY2hhbmdlIHRoZSB1c2VyIGxvY2FsZTogT3BlbiB0aGUgQ29udHJvbCBQYW5lbC4gR28gdG8gUmVnaW9uYWwKICAgIE9wdGlvbnMuIFRoZSB1c2VyIGxvY2FsZSBjYW4gYmUgbW9kaWZpZWQgYnkgY2hhbmdpbmcgdGhlIGxvY2F0aW9uIGluCiAgICAmcXVvdDtTZXR0aW5ncyBmb3IgdGhlIGN1cnJlbnQgdXNlciZxdW90Oy48L2xpPgoKPC91bD4KPHA+KGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NDEiPjIwNjQxPC9hPik8L3A+CjxoND4gRGlydHkgc3RhdGUgbm90IHRyYWNrZWQKcHJvcGVybHkgZm9yIE9MRSBkb2N1bWVudHMgKFdpbmRvd3Mgb25seSk8L2g0Pgo8cD5UaGUgZGlydHkgc3RhdGUgZm9yIGFuIE9MRSBkb2N1bWVudCBpcyBub3QgdXBkYXRlZCBwcm9wZXJseS4gVGhpcyBjYXVzZXMKRWNsaXBzZSB0byBwcm9tcHQgdG8gc2F2ZSB0aGUgY29udGVudHMgb2YgdGhlIGVkaXRvciB3aGVuIHRoZSBkb2N1bWVudCBpcwpjbG9zZWQsIGV2ZW4gaWYgdGhlIGNvbnRlbnRzIGhhdmUgYWxyZWFkeSBiZWVuIHNhdmVkLiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTY0Ij4yNTY0PC9hPik8L3A+CjxoND4gT0xFIGRvY3VtZW50IGNyYXNoZXMgY2FuCmNhdXNlIEVjbGlwc2UgdG8gYWxzbyBjcmFzaCAoV2luZG93cyBvbmx5KTwvaDQ+CjxwPklmIGFuIE9MRSBkb2N1bWVudCBjcmFzaGVzLCBFY2xpcHNlIGNhbiBjcmFzaCwgb3IgdGhlIHdvcmtiZW5jaCBtZW51cyBjYW4KYmVjb21lIGluY29uc2lzdGVudC48L3A+CjxoND4yLjEgUHJlc2VudGF0aW9uIGJhc2VkIHdvcmtzcGFjZXMgaW5jb3JyZWN0bHkgZ2V0IG5ldyBNaW4vTWF4IGJlaGF2aW9yPC9oND4KPHA+CldvcmtzcGFjZXMgdGhhdCBhcmUgY3VycmVudGx5IHVzaW5nIHRoZSBFY2xpcHNlIDIuMSBQcmVzZW50YXRpb24gd2lsbCBpbmNvcnJlY3RseQonaW5oZXJpdCcgdGhlIG5ldyBtaW4vbWF4IGJlaGF2aW9yIHdoZW4gb3BlbmVkIHdpdGggMy4zLgo8L3A+CjxwPgpXb3JrYXJvdW5kOjwvcD4KPG9sPgogPGxpPkdvIHRvIHRoZSAnUHJlZmVyZW5jZXMgLT4gQXBwZWFyYW5jZScgcGFnZSwgY2hhbmdlIHRoZSBjdXJyZW50IHByZXNlbnRhdGlvbiB0byAnRGVmYXVsdCcgYW5kIHNlbGVjdCBhcHBseTwvbGk+CiA8bGk+Q2hhbmdlIGl0IGJhY2sgdG8gdGhlIDIuMSBQcmVzZW50YXRpb24sIHNlbGVjdCAnT0snIGFuZCAnWWVzJyB0byB0aGUgcmVzdGFydCBwcm9tcHQ8L2xpPgo8L29sPgpXaGVuIHRoZSB3b3JrYmVuY2ggcmUtb3BlbnMgdGhlIG9sZCBtaW4vbWF4IGJlaGF2aW91ciB3aWxsIGJlIHJlc3RvcmVkLgo8aDQ+VG9vbGJhcnMgb25seSBjb250YWluaW5nIGNvbnRyaWJ1dGVkIGNvbnRyb2xzIGV4aGliaXQgZGlzcGxheSBlcnJvcnMgb24gTWFjL0xpbnV4PC9oND4KPHA+CkN1cnJlbnRseSB0aGVyZSBpcyBubyB3YXkgb24gdGhlIE1heCBvciBMaW51eCBwbGF0Zm9ybXMgdG8gZGVmaW5lIHRoZSA8Yj5oZWlnaHQ8L2I+IGZvciBjb250cm9scyBjb250cmlidXRlZCB0bwp0b29sYmFycywgbm9yIHdpbGwgdGhvc2UgcGxhdGZvcm1zIHJlc3BlY3QgdGhlIHNpemUgcmV0dXJuZWQgYnkgdGhlIGNvbnRyb2wncyA8Y29kZT5jb21wdXRlU2l6ZTwvY29kZT4gbWV0aG9kLiBJZiB5b3UKZW5jb3VudGVyIHRoaXMgaXNzdWUgdGhlcmUgaXMgY3VycmVudGx5IG5vIHRydWx5IHZpYWJsZSB3b3JrYXJvdW5kLgooYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xODMwMDMiPjE4MzAwMzwvYT4pCjwvcD4KCgo8aDM+My4yLjUgPGEgbmFtZT0iSS1QbGF0Zm9ybS1UZXh0Ij5QbGF0Zm9ybSAtIFRleHQ8L2E+PC9oMz4KTm9uZS4KCjxoMz4zLjIuNiA8YSBuYW1lPSJJLVBsYXRmb3JtLVNXVCI+UGxhdGZvcm0gLSBTV1Q8L2E+PC9oMz4KPGg0PkVjbGlwc2UgcGx1Zy1pbiBiYXNlZCBvbiB0aGUgU1dUIEJyb3dzZXIgdGhyb3dzIGV4Y2VwdGlvbjwvaDQ+CjxwPlRoZSBTV1QgQnJvd3NlciB3aWRnZXQgdXNlcyBhIHBsYXRmb3JtLXNwZWNpZmljIHdlYiBicm93c2VyIHRvIHJlbmRlciBIVE1MLgpUaGUgb3JnLmVjbGlwc2Uuc3d0LlNXVEVycm9yIGV4Y2VwdGlvbiAoJnF1b3Q7Tm8gbW9yZSBoYW5kbGVzJnF1b3Q7KSBpcyB0aHJvd24Kb24gcGxhdGZvcm1zIHRoYXQgZG9uJ3QgbWVldCB0aGUgcmVxdWlyZW1lbnRzIGZvciBydW5uaW5nIHRoZSBCcm93c2VyIHdpZGdldC4KU3VwcG9ydGVkIHBsYXRmb3JtcyBhbmQgcHJlcmVxdWlzaXRlcyBhcmUgbGlzdGVkIG9uIHRoZSBTV1QgRkFRIGl0ZW0gPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9zd3QvZmFxLnBocCNicm93c2VycGxhdGZvcm1zIj4KJnF1b3Q7V2hpY2ggcGxhdGZvcm1zIHN1cHBvcnQgdGhlIFNXVCBCcm93c2VyPyZxdW90OzwvYT4uPC9wPgoKPGg0PkNyYXNoIHdoZW4gdXNpbmcgdGhlIGZpbGUgZGlhbG9nIChXaW5kb3dzIFhQIHdpdGggU1AyIG9ubHkpPC9oND4KPHA+V2l0aCBzb21lIHZlcnNpb25zIG9mIFN5bmVyZ3kgZnJvbSBUZWxlbG9naWMsIEVjbGlwc2Ugd2lsbCBjcmFzaCB3aGVuIHlvdSB0cnkgdG8gb3BlbiBhIGZpbGUgCmRpYWxvZy4gIFRoaXMgaXMgZHVlIHRvIGEgcHJvYmxlbSB3aXRoIHRoZSBDTUV4cGxvcmVyLmRsbC4gIFRoZSB3b3JrYXJvdW5kIGlzIHRvCnVwZ3JhZGUgdG8gU3luZXJneSA2LjQgKG9yIGhpZ2hlcikgb3IgdG8gcnVuIDxjb2RlPnJlZ3N2cjMyIC91IENNRXhwbG9yZXIuZGxsPC9jb2RlPiBhbmQgCnJlYm9vdCAobm90ZSB0aGF0IHRoaXMgd2lsbCBkaXNhYmxlIEFjdGl2ZSBDTSkuCihidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTg3Nzk4Ij44Nzc5ODwvYT4pPC9wPgoKPGg0Pk9wZW5pbmcgRmlsZSBEaWFsb2cgY3Jhc2hlcyBlY2xpcHNlIChWaXN0YSBvbmx5KTwvaDQ+CjxwPk9uIFZpc3RhLCBsYXVuY2hpbmcgZWNsaXBzZSB1c2luZyA8Y29kZT4tdm1hcmdzIC1YbXhbYW55IHNpemVdPC9jb2RlPiBjYW4gY3Jhc2ggZWNsaXBzZSB3aGVuIHRoZSBGaWxlRGlhbG9nIGlzIG9wZW5lZC4KVGhlIHdvcmthcm91bmQgaXMgdG8gdXNlIHRoZSBkZWZhdWx0IGhlYXAgc2l6ZSwgaS5lLiBkbyBub3QgdXNlIHRoZSA8Y29kZT4tWG14PC9jb2RlPiBWTSBhcmdzLgooYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xODgzMTciPjE4ODMxNzwvYT4pPC9wPgoKPGg0PkludGVybmV0IEV4cGxvcmVyIHNvbWV0aW1lcyBmcmVlemVzIG9uIFBERiBkb2N1bWVudHMgd2l0aCBBY3JvYmF0IFJlYWRlciA2IChXaW5kb3dzIG9ubHkpPC9oND4KPHA+V2l0aCBBY3JvYmF0IFJlYWRlciA2IG9yIDcsIHNvbWUgdXNlcnMgaGF2ZSBleHBlcmllbmNlZCBhbiB1bnJlc3BvbnNpdmUgdXNlciAKaW50ZXJmYWNlIGZvciB1cCB0byB0d28gbWludXRlcyB3aGVuIGNsb3NpbmcgYSBicm93c2VyIHdoaWNoIGlzIGRpc3BsYXlpbmcgYSBQREYgZG9jdW1lbnQuClRoZSB3b3JrYXJvdW5kIGlzIHRvIGRpc2FibGUgZGlzcGxheWluZyBQREYgaW4gdGhlIGJyb3dzZXIuIEluIEFkb2JlIFJlYWRlcgpzZWxlY3QgRWRpdCAmZ3Q7IFByZWZlcmVuY2VzLi4uICZndDsgSW50ZXJuZXQgYW5kIHVuY2hlY2sgJ0Rpc3BsYXkgUERGIGluIGJyb3dzZXInLgooYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD01NjE4NCI+NTYxODQ8L2E+KTwvcD4KCjxoND5DcmFzaCB3aGlsZSBlZGl0aW5nIHRleHQgKFdpbmRvd3MgWFAgd2l0aCBTUDIgb25seSk8L2g0Pgo8cD5Tb21lIHVzZXJzIHdobyBoYXZlIGluc3RhbGxlZCBTZXJ2aWNlIFBhY2sgMiBvbiBXaW5kb3dzIFhQIGhhdmUgZXhwZXJpZW5jZWQKY3Jhc2hlcyB3aGlsZSB1c2luZyBlZGl0b3JzIGluIEVjbGlwc2UuICBUaGUgd29ya2Fyb3VuZCBpcyB0byBwbGFjZSBhIHdvcmtpbmcgdmVyc2lvbiAKb2YgV2luZG93c1xTeXN0ZW0zMlxVU1AxMC5ETEwgaW4gdGhlIEVjbGlwc2Ugc3RhcnR1cCBkaXJlY3Rvcnkgb3IgdW5pbnN0YWxsClNlcnZpY2UgUGFjayAyLgooYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD01NjM5MCI+NTYzOTA8L2E+KTwvcD4KCjxoND5JbnB1dCBNZXRob2QgYnJva2VuIChNb3RpZiBvbmx5KTwvaDQ+CjxwPlNvbWUgdmVyc2lvbnMgb2YgUmVkSGF0IExpbnV4IHN1Y2ggYXMgRmVkb3JhIENvcmUgMyBhbmQgRW50ZXJwcmlzZSBMaW51eCBXUyAKcmVsZWFzZSA0IHVzZSBhIG5ldyB0ZWNobm9sb2d5IGNhbGxlZCBJSUlNIChJbnRyYW5ldC9JbnRlcm5ldCBJbnB1dCBNZXRob2QKRnJhbWV3b3JrKSB0byByZXBsYWNlIHRoZSBvbGQgWElNIChYIGlucHV0IG1ldGhvZCkuICAgV2hlbiBydW5uaW5nIG9uIHRoZXNlIApuZXcgc3lzdGVtcywgRWNsaXBzZSB3aWxsIGNyYXNoIGlmIHlvdSBhdHRlbXB0IHRvIGVudGVyIGFueSBEQkNTIGNoYXJhY3Rlci4gIFRoZSAKd29ya2Fyb3VuZCBpcyB0byB1c2UgYSBYSU0gYmFzZWQgaW5wdXQgbWV0aG9kIHN1Y2ggYXMgY2hpbnB1dC4gIFRoaXMgcHJvYmxlbSAKbWF5IGJlIGZpeGVkIGluIG5ld2VyIHJlbGVhc2VzIG9mIFJlZEhhdC4KKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9ODk3MjIiPjg5NzIyPC9hPik8L3A+Cgo8aDQ+RWNsaXBzZSBkb2VzIG5vdCBzdGFydCBvbiBMaW51eC1Nb3RpZiB3aXRoIFhpbmVyYW1hIGFuZCBhIFVURi04IGxvY2FsZTwvaDQ+CjxwPlRoZSBMaW51eC1tb3RpZiBidWlsZCBvZiBFY2xpcHNlIGRvZXMgbm90IGxhdW5jaCBwcm9wZXJseSB3aGVuIHJ1biBvbiBhIApjb21wdXRlciB3aXRoIFhpbmVyYW1hIChwcm92aWRlcyBzdXBwb3J0IGZvciBkdWFsIGhlYWQgbW9uaXRvcnMpIGFuZCBhIFVURi04IApsb2NhbGUuICBUaGUgd29ya2Fyb3VuZCBmb3IgdGhpcyBwcm9ibGVtIGlzIHRvIGNoYW5nZSB0aGUgbG9jYWxlIHRvIGEgbm9uLVVURi04IAp2YWx1ZSwgb3IgdG8gZGlzYWJsZSBYaW5lcmFtYS4KKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4NDMiPjM4ODQzPC9hPikKPC9wPgoKPGg0PkVjbGlwc2UgaGFuZ3Mgd2hlbiBwYXN0aW5nIGZyb20gYW4gdW5yZXNwb25zaXZlIGFwcGxpY2F0aW9uIChHVEsgb25seSk8L2g0Pgo8cD5JZiB0aGUgYXBwbGljYXRpb24gdGhhdCBpcyBzdXBwbHlpbmcgdGhlIGNsaXBib2FyZCBtYXRlcmlhbCBpcyB1bnJlc3BvbnNpdmUsCnRoZSBwYXN0ZSBvcGVyYXRpb24gaGFuZ3MgRWNsaXBzZSBmb3Igc2V2ZXJhbCBtaW51dGVzLiBUaGlzIHNpdHVhdGlvbiBjYW4gYmUKZW5jb3VudGVyZWQgd2hlbiBjb3B5aW5nIGZyb20gYW4gRWNsaXBzZSB0YXJnZXQgd29ya2JlbmNoLCBzdXNwZW5kaW5nIHRoZSB0YXJnZXQKd29ya2JlbmNoIGF0IGEgYnJlYWtwb2ludCBhbmQgcGFzdGluZyBpbnRvIHRoZSBob3N0aW5nIEVjbGlwc2Ugd29ya2JlbmNoLiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NDkxNSI+NDQ5MTU8L2E+KTwvcD4KCjxoND5VbmFibGUgdG8gZHJhZyBkYXRhIGJldHdlZW4gYXBwbGljYXRpb25zIGluIHNpbXBsaWZpZWQgQ2hpbmVzZSBsb2NhbGUgKE1vdGlmIG9ubHkpPC9oND4KPHA+V2hlbiBjb25maWd1cmVkIGZvciB0aGUgc2ltcGxpZmllZCBDaGluZXNlIGxvY2FsZSwgaXQgaXMgbm90IHBvc3NpYmxlIHRvCmRyYWcgZGF0YSBiZXR3ZWVuIGFwcGxpY2F0aW9ucyBydW5uaW5nIG9uIHRoZSBNb3RpZiB3aW5kb3cgc3lzdGVtLiBUaGlzIGlzIGEKa25vd24gbGltaXRhdGlvbiBvZiB0aGUgT3BlbiBNb3RpZiBsaWJyYXJ5LiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yOTc3NyI+Mjk3Nzc8L2E+KTwvcD4KCjxoND5DcmFzaCB3aGVuIGF0dGVtcHRpbmcgdG8gbGF1bmNoIGZpbGUgYnJvd3NlciAoQUlYIE1vdGlmIG9ubHkpPC9oND4KPHA+VGhlcmUgaXMgYSBrbm93biBBSVggZ3JhcGhpY3MgYnVnIGFmZmVjdGluZyBjZXJ0YWluIGxldmVscyBvZiBBSVgKcmVsZWFzZXMuIEVuc3VyZSB0aGF0IHRoZSBBSVggaW5zdGFsbCBpbmNsdWRlcyB0aGUgbmVjZXNzYXJ5IHNlcnZpY2UgdXBkYXRlcyBhcwpkZXNjcmliZWQgaW4gdGhlICZxdW90O0luc3RhbGwgbm90ZXMvcmVxdWlyZW1lbnRzIGZvciBFY2xpcHNlIG9uIEFJWCZxdW90OwphdHRhY2htZW50IHRvIEVjbGlwc2UgYnVnIHJlcG9ydCBudW1iZXIgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTM0NTI0Ij4zNDUyNDwvYT4uPC9wPgoKPGg0PkF2YWlsYWJsZSBjb2xvcnMgb24gOC1iaXQgTGludXggKExpbnV4IG9ubHkpPC9oND4KPHA+VHlwaWNhbGx5LCBpbiBHbm9tZSBMaW51eCBpbnN0YWxscyBydW5uaW5nIHdpdGggOC1iaXQgdmlzdWFscyAoaS5lLiAyNTYKY29sb3IgbW9kZSksIGJlZm9yZSB0aGUgRWNsaXBzZSBhcHBsaWNhdGlvbiBpcyBzdGFydGVkIHRoZXJlIGFyZSBubyBmcmVlIGNvbG9ycy4KVGhpcyBtYXkgbWVhbiB0aGF0IEVjbGlwc2UgaXMgdW5hYmxlIHRvIGFsbG9jYXRlIHRoZSBkZWZhdWx0IHdpZGdldCBiYWNrZ3JvdW5kCmNvbG9yLCBjYXVzaW5nIGl0IHRvIGRpc3BsYXkgYSB3aGl0ZSBiYWNrZ3JvdW5kLiBUaGUgZnVuY3Rpb25hbGl0eSwgaG93ZXZlciwgaXMKb3RoZXJ3aXNlIHVuYWZmZWN0ZWQuPC9wPgoKPGg0PklNRS1yZWxhdGVkIGNyYXNoIChMaW51eCBNb3RpZiBvbmx5KTwvaDQ+CjxwPldoZW4gdXNpbmcgTGludXggTW90aWYgYW5kIEdCMTgwMzAgSU1FICZxdW90O2NoaW5wdXQmcXVvdDssIEVjbGlwc2UgY2FuCmNyYXNoIGlmIHRoZSBJTUUgY2xpZW50IHdpbmRvdyBpcyBsZWZ0IG9wZW4gd2hlbiB0aGUgcGFyZW50IHdpbmRvdyBpcyBkaXNwb3NlZC4KKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzIwNDUiPjMyMDQ1PC9hPik8L3A+Cgo8aDQ+SU1FIGNvbnZlcnN0aW9uIHByb2JsZW0gKFNvbGFyaXMgR1RLIG9ubHkpPC9oND4KPHA+V2hlbiB0eXBpbmcgSmFwYW5lc2UgdGV4dCwgdGhlIGNvbnZlcnNpb24gdG8gS2FuamkgbXVzdCBiZSBkb25lIG9uZSBpZGVvZ3JhbSBhdAphIHRpbWUuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIyNjYzNiI+MjI2NjM2PC9hPik8L3A+Cgo8aDQ+VXNpbmcgSUJNIEo5IFZNIChQaG90b24gYW5kIEFJWCk8L2g0Pgo8cD5PbiBRTlggUGhvdG9uIGFuZCBJQk0gQUlYLCB0aGUgU1dUIGxpYnJhcnkgd2lsbCBub3QgYmUgZm91bmQgd2hlbiBydW5uaW5nCndpdGggYW4gSUJNIEo5IDEuNSBWTS4gVGhpcyBpcyBhIGJ1ZyBpbiB0aGUgSUJNIEo5IGNsYXNzIGxpYnJhcnkgaW4gdmVyc2lvbiAxLjUuCllvdSBjYW4gd29ya2Fyb3VuZCB0aGlzIHByb2JsZW0gYnkgYWRkaW5nIHRoZSBTV1QgbGlicmFyeSBkaXJlY3RvcnkgdG8geW91cgpMRF9MSUJSQVJZX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUuPC9wPgoKPGg0PiBndGtfaW5pdF9jaGVjayBhbmQgWDExIHNvY2tldCBmYWlsdXJlIHdoZW4gdXNpbmcgdGhlIElCTSAxLjQuMiBKUkUgKEdUSyBvbmx5KTwvaDQ+CjxwPlVuZGVyIFJIRUwgMy4xIHdpdGggdGhlIElCTSAxLjQuMiBKUkUgYW5kIGEgbGFyZ2UgbnVtYmVyCm9mIHBsdWdpbnMsIEVjbGlwc2UgbWF5IGZhaWwgdG8gbGF1bmNoIHdpdGggYW4gZXhjZXB0aW9uIGZyb20KPHR0Pmd0a19pbml0X2NoZWNrPC90dD4gYWxvbmcgd2l0aCB0aGlzIGVycm9yOjwvcD4KPHByZT4KX1gxMVRyYW5zU29ja2V0T3Blbjogc29ja2V0KCkgZmFpbGVkIGZvciBsb2NhbApfWDExVHJhbnNTb2NrZXRPcGVuQ09UU0NsaWVudDogVW5hYmxlIHRvIG9wZW4gc29ja2V0IGZvciBsb2NhbAo8L3ByZT4KPHA+QSB3b3JrYXJvdW5kIGlzIHRvIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgPHR0PkpBVkFfSElHSF9aSVBGRFM8L3R0PiB0bwphIHZhbHVlIG9mIDUwMCBiZWZvcmUgc3RhcnRpbmcgRWNsaXBzZS4gKGJ1Zwo8YSBocmVmPSJodHRwOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMDYzOTYiPjEwNjM5NjwvYT4pPC9wPgoKPGg0PktleSBiaW5kaW5ncyBjYW4gc3RvcCB3b3JraW5nIG9uIERlYmlhbiAoR1RLKyBvbmx5KTwvaDQ+CjxwPk9uIHNvbWUgdmVyc2lvbnMgb2YgRGViaWFuLCBFY2xpcHNlIGtleSBiaW5kaW5ncyBtYXkgc3RvcCB3b3JraW5nLiAgSW4gdGhpcyBjb250ZXh0CnRoZSBvbmx5IHdheSB0byBtYWtlIHRoZSBrZXkgYmluZGluZ3Mgd29yayBhZ2FpbiBpcyB0byByZXN0YXJ0IEVjbGlwc2UuCjwvcD48cD4KVGhlIHByb2JsZW0gaXMgdGhhdCBhIGZvY3VzIGlzc3VlIGV4aXN0cyBpbiBHVEsrIDIuNi43IGFuZCBlYXJsaWVyLCBmb3Igd2hpY2ggU1dUIGhhcwphIHdvcmthcm91bmQuICBUaGlzIHdvcmthcm91bmQgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIEdUSysgMi42LjcgZml4LCBzbyBhIEdUSysgdmVyc2lvbgpjaGVjayBpcyBkb25lIGF0IHJ1bnRpbWUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHdvcmthcm91bmQgc2hvdWxkIGJlIHVzZWQgb3Igbm90LgpIb3dldmVyLCBEZWJpYW4gYmFja3BvcnRlZCB0aGUgR1RLKyBmb2N1cyBmaXggaW50byB0aGVpciBsaWJndGsrMi4wICgyLjYuNC0yKSBwYWNrYWdlLApzbyB0aGUgU1dUIHdvcmthcm91bmQgYW5kIEdUSysgZml4IGFyZSBib3RoIGluY29ycmVjdGx5IGFwcGxpZWQgaW4gdGhpcyBjb250ZXh0Lgo8L3A+PHA+ClRvIHdvcmsgYXJvdW5kIHRoaXMgcHJvYmxlbSwgZWl0aGVyIGdldCB0aGUgRGViaWFuIHVuc3RhYmxlIHZlcnNpb24gb2YgR1RLKywgY29tcGlsZSB5b3VyCm93biBHVEsrLCBvciBoYWNrIFNXVCdzIFNoZWxsLmd0a19yZWFsaXplKGludCkgYW5kIGNoYW5nZSB0aGUgdmVyc2lvbiB0aGF0IGl0IGNoZWNrcy4KU2VlIFNXVCBidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEwNzAxMyI+MTA3MDEzPC9hPgphbmQgR1RLKyBidWcgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MjQ2Ij4xMDkyNDY8L2E+CmZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KCjxoND5Ccm93c2VyIGRvZXMgbm90IGRpc3BsYXkgYXBwbGV0cyAoV2luZG93cyBhbmQgT1MgWCk8L2g0Pgo8cD5UaGUgQnJvd3NlciB3aWRnZXQgY2Fubm90IGJlIHVzZWQgdG8gZGlzcGxheSBwYWdlcyBjb250YWluaW5nIEphdmEgYXBwbGV0cyBvbiBXaW5kb3dzCmFuZCBPUyBYLCBhcyBhIHJlc3VsdCBvZiBjcmFzaGVzIHRoYXQgb2NjdXIgd2hlbiBhdHRlbXB0aW5nIHRvIGxhdW5jaCBhIHNlY29uZCBKVk0gZm9yIHRoZQphcHBsZXQgdGhhdCBpcyBpbi1wcm9jZXNzIHdpdGggdGhlIG1haW4gcHJvY2VzcyBKVk0uICBUaGUgd29ya2Fyb3VuZCBmb3IgY2xpZW50cyB3aXNoaW5nCnRvIGRpc3BsYXkgd2ViIHBhZ2VzIHdpdGggSmF2YSBhcHBsZXRzIGlzIHRvIGxhdW5jaCBhbiBleHRlcm5hbCB3ZWIgYnJvd3NlciB0byBkbyBzbyB3aXRoCjxjb2RlPm9yZy5lY2xpcHNlLnN3dC5wcm9ncmFtLlByb2dyYW08L2NvZGU+IChzZWUgYnVncwo8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NTk1MDYiPjU5NTA2PC9hPiBhbmQKPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEwMDYyMiI+MTAwNjIyPC9hPikuPC9wPgoKPGg0PkVjbGlwc2UgaGFuZ3Mgd2l0aCBlYXJsaWVyIHZlcnNpb25zIG9mIFF1aWNrdGltZSAoSW50ZWwgTWFjIE9TIFggb25seSk8L2g0Pgo8cD5Tb21lIHVzZXJzIHJlcG9ydGVkIGVuY291bnRlcmluZyBzeXN0ZW0gaGFuZ3Mgd2hpbGUgdXNpbmcgRWNsaXBzZSBvbiBJbnRlbC1iYXNlZCBNYWNzLgpUaGVzZSBoYW5ncyB3ZXJlIHRyYWNlZCB0byBhIHByb2JsZW0gaW4gc29tZSB2ZXJzaW9ucyBvZiBRdWlja1RpbWUsIHdoaWNoIGhhcyBub3cgYmVlbiBmaXhlZC4KVGhlcmVmb3JlLCBFY2xpcHNlIHVzZXJzIG9uIEludGVsLWJhc2VkIE1hY3Mgc2hvdWxkIHVzZSBRdWlja3RpbWUncyB1cGRhdGUgZmFjaWxpdGllcyB0byBlbnN1cmUKdGhhdCB0aGVpciBRdWlja3RpbWUgdmVyc2lvbiBpcyBhdCBsZWFzdCA3LjEuMS4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTQyODkyIj4xNDI4OTI8L2E+KQo8L3A+Cgo8aDQ+VHlwaW5nIGluIGFuIGVkaXRvciBjcmFzaGVzIHdpdGggSUJNIDEuNSBWTSAoTGludXggR1RLIFBQQyBvbmx5KTwvaDQ+CjxwPldoZW4gcnVubmluZyBvbiB0aGUgSUJNIEphdmEgNS4wIFZNLCBFY2xpcHNlIGNyYXNoZXMgd2hpbGUgdGhlIHVzZXIgaXMgdHlwaW5nIGluIGFuIGVkaXRvci4KSWYgdXNpbmcgdGhpcyBWTSB5b3UgbXVzdCBkaXNhYmxlIHRoZSBKSVQgd2l0aCB0aGUgLVhub2ppdCB2bSBhcmd1bWVudCB0byBhdm9pZCB0aGUgY3Jhc2hlcwooc2VlIGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NzMwIj4xMTY3MzA8L2E+KS4KVGhlIGNvbW1hbmQgbGluZSBmb3IgbGF1bmNoaW5nIEVjbGlwc2Ugd2l0aCB0aGlzIHZtIHNob3VsZCBiZTogPGJyPgo8Y29kZT5lY2xpcHNlIC12bWFyZ3MgLURvc2dpLmxvY2tpbmc9bm9uZSAtWG5vaml0PC9jb2RlPgo8L3A+Cgo8aDQ+RWNsaXBzZSB3b24ndCBzdGFydCAoTGludXggR1RLIFBQQyBvbmx5KTwvaDQ+CjxwPkVjbGlwc2UgZmFpbHMgdG8gY3JlYXRlIGEgbG9jayBmaWxlIHdpdGggcmVhc29uICZxdW90O05vIGxvY2tzIGF2YWlsYWJsZSZxdW90Oy4gClRvIGxhdW5jaCBlY2xpcHNlIHlvdSBtdXN0IGRpc2FibGUgZmlsZSBsb2NraW5nIHVzaW5nIHRoZSBvc2dpLmxvY2tpbmcgcHJvcGVydHkuCkZvciBleGFtcGxlLCB5b3UgY291bGQgbGF1bmNoIGVjbGlwc2UgYXMgZm9sbG93czogPGJyPgo8Y29kZT5lY2xpcHNlIC12bWFyZ3MgLURvc2dpLmxvY2tpbmc9bm9uZTwvY29kZT4KPC9wPgoKPGg0PlNXVF9BV1QgYnJpZGdlIGRvZXNuJ3Qgd29yayAoTWFjIE9TWCBvbmx5KTwvaDQ+CjxwPkluIG9yZGVyIHRvIHVzZSB0aGUgU1dUX0FXVCBicmlkZ2Ugb24gdGhlIE1hYywgT1MgWCBqcmUgdmVyc2lvbiAxLjUuMCBSZWxlYXNlIDUKKG9yIGdyZWF0ZXIpIG11c3QgYmUgdXNlZC4KPC9wPgoKPGg0PkVjbGlwc2UgcHJpbnRpbmcgaXMgZGlzYWJsZWQgb3IgRWNsaXBzZSBoYW5ncyB3aGVuIG9wZW5pbmcgZWRpdG9yIChHVEsgb25seSk8L2g0Pgo8cD5JbiBvcmRlciB0byBwcmludCBmcm9tIGVjbGlwc2Ugb24gR1RLLCB5b3UgbmVlZCB0byBoYXZlIEdUSysgdmVyc2lvbiAyLjEwIG9yIGxhdGVyLgpJbiBhZGRpdGlvbiwgYXQgbGVhc3QgdHdvIHByaW50IGJhY2tlbmRzIG11c3QgZXhpc3Qgb24gdGhlIG1hY2hpbmU6IGZpbGUgYW5kIGxwci4KQXNzdW1pbmcgYSB0aGF0IEdUSyB3YXMgaW5zdGFsbGVkIGluIC91c3IsIHRoZSBpbnN0YWxsZWQgYmFja2VuZHMgY2FuIGJlIHZpZXdlZCBhdCAvdXNyL2xpYi9ndGstMi4wLzIuMTAuMC9wcmludGJhY2tlbmRzLgo8L3A+Cgo8aDQ+U1dUIGNhbm5vdCBiZSB1c2VkIHdpdGggT1MgWCBKUkUgdmVyc2lvbiAxLjYgKE1hYyBPU1ggb25seSk8L2g0Pgo8cD5PUyBYIEpSRSB2ZXJzaW9uIDEuNiBhc3N1bWVzIHRoYXQgcG9pbnRlcnMgaGF2ZSBhIHNpemUgb2YgNjQgYml0cywgYnV0IFNXVCdzIENhcmJvbgpwb3J0IG9ubHkgdXNlcyAzMi1iaXQgcG9pbnRlcnMsIHNvIFNXVCBhbmQgRWNsaXBzZSBjYW5ub3QgYmUgdXNlZCB3aXRoIE9TIFggSlJFIHZlcnNpb24KMS42LiAgVGhlIHdvcmthcm91bmQgaXMgdG8gdXNlIGFuIGVhcmxpZXIgc3VwcG9ydGVkIHZlcnNpb24gb2YgdGhlIE9TIFggSlJFLgo8L3A+Cgo8aDQ+QnJvd3Nlci5zZXRUZXh0KCkgY2Fubm90IGJlIHVzZWQgd2l0aCBiZXRhIHZlcnNpb25zIG9mIEZpcmVmb3ggMy4wL1hVTFJ1bm5lciAxLjk8L2g0Pgo8cD5BcyBhIHJlc3VsdCBvZiBhIGxhdGUgaW50ZXJmYWNlIGNoYW5nZSBpbiB0aGUgRmlyZWZveCAzLjAvWFVMUnVubmVyIDEuOSBkZXZlbG9wbWVudCBzdHJlYW0sCm1vc3QgYmV0YSB2ZXJzaW9ucyBvZiB0aGVzZSBhcHBsaWNhdGlvbnMgY2Fubm90IGJlIHVzZWQgYnkgdGhlIEJyb3dzZXIgaWYgaXRzIDxjb2RlPnNldFRleHQoKTwvY29kZT4KQVBJIGlzIHVzZWQuICBUaGlzIHByb2JsZW0gY2FuIGJlIGZpeGVkIGJ5IHVwZ3JhZGluZyB0byB0aGUgZmluYWwgcmVsZWFzZSB2ZXJzaW9ucyBvZiB0aGVzZQphcHBsaWNhdGlvbnMuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzNTAyMCI+MjM1MDIwPC9hPikKPC9wPgoKPGg0PlN0cmluZ3MgbWF5IGJlIHRydW5jYXRlZCBvciBpbmNvcnJlY3RseSB3cmFwcGVkIG9uIFJIRUw1IChMaW51eCBHVEsgb25seSk8L2g0Pgo8cD4KU3RyaW5ncyBvbiB3cmFwcGluZyBDb250cm9scyBtYXkgbm90IGFwcGVhciBjb3JyZWN0bHkgaW4gc29tZSBsb2NhbGVzIG9uIFJIRUw1IGFzIGEgcmVzdWx0Cm9mIGEgYnVnIGluIFBhbmdvIHZlcnNpb24gMS4xNC54LiAgVGhpcyBwcm9ibGVtIGNhbiBiZSBmaXhlZCBieSB1cGdyYWRpbmcgdGhlIGluc3RhbGxlZApQYW5nbyBsaWJyYXJ5IHRvIGEgdmVyc2lvbiB0aGF0IGlzIG5ld2VyIHRoYW4gMS4xNC54LiAgKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTUxIj4yMzE5NTE8L2E+KQo8L3A+Cgo8aDM+My4yLjcgPGEgbmFtZT0iSS1QbGF0Zm9ybS1UZWFtLUNWUyI+UGxhdGZvcm0gLSBUZWFtIC0gQ1ZTPC9hPjwvaDM+CjxwPlRoZSBmb2xsb3dpbmcgYXJlIGtub3duIHByb2JsZW1zIHdpdGggdGhlIENWUyByZXBvc2l0b3J5IHByb3ZpZGVyIG9ubHksIGFuZApkbyBub3QgYXBwbHkgdG8gb3RoZXIgcmVwb3NpdG9yeSBwcm92aWRlcnMuIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gb24gaG93IHRvIHVzZQpDVlMgZnJvbSBFY2xpcHNlIGNhbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2Rldi5lY2xpcHNlLm9yZy92aWV3Y3ZzL2luZGV4LmNnaS9+Y2hlY2tvdXR+L3BsYXRmb3JtLXZjbS1ob21lL2RvY3Mvb25saW5lL2N2c19mZWF0dXJlczIuMC9jdnMtZmFxLmh0bWwiPkVjbGlwc2UKQ1ZTIEZBUTwvYT4uPC9wPgo8aDQ+IENWUyBzZXJ2ZXIgY29tcGF0aWJpbGl0eTwvaDQ+CjxwPlRoZSBDVlMgcGx1Zy1pbiBwYXJzZXMgbWVzc2FnZXMgcmV0dXJuZWQgZnJvbSB0aGUgQ1ZTIHNlcnZlci4gSWYgdGhlIGZvcm1hdApvZiB0aGVzZSBtZXNzYWdlcyBpcyBub3QgYXMgZXhwZWN0ZWQsIHNvbWUgb2YgdGhlIHBsdWctaW4ncyBmdW5jdGlvbmFsaXR5IG1heSBiZQptaXNzaW5nLiBUaGUgQ1ZTIHBsdWctaW4gaXMgY29tcGF0aWJsZSB3aXRoIGFsbCBzdGFibGUgMS4xMS5YIGJ1aWxkcyBvZiB0aGUgQ1ZTCnNlcnZlciwgYW5kIHNob3VsZCBiZSBjb21wYXRpYmxlIHdpdGggZnV0dXJlIHJlbGVhc2VzIGluIHRoYXQgc3RyZWFtIHVubGVzcyB0ZXh0Cm1lc3NhZ2UgZm9ybWF0cyBjaGFuZ2UgKHRoZSBsYXN0IHRlc3RlZCBzZXJ2ZXIgd2FzIDEuMTEuMjIpLiBBcyBmb3IgdGhlIDEuMTIuWApmZWF0dXJlIHJlbGVhc2VzIG9mIENWUywgdGhlIEVjbGlwc2UgQ1ZTIGNsaWVudCBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCBidWlsZHMgdXAKdG8gMS4xMi4xMy4gSG93ZXZlciwgZnV0dXJlIHJlbGVhc2VzIGNvdWxkIGVhc2lseSBicmVhayB0aGUgRWNsaXBzZSBDVlMgY2xpZW50LgpCYXNpYyBmdW5jdGlvbmFsaXR5LCBzdWNoIGFzIENoZWNrb3V0LCBDb21taXQsIGFuZCBVcGRhdGUsIHNob3VsZCBhbHdheXMgd29yaywKYnV0IHRoZXJlIG1heSBiZSBwcm9ibGVtcyB3aXRoIG1vcmUgYWR2YW5jZWQgY29tbWFuZHMgc3VjaCBhcyBTeW5jaHJvbml6aW5nIGFuZApCcm93c2luZyB0aGUgcmVwb3NpdG9yeS48L3A+CiAgCjxoND5TU0gyIHByb3h5IHNldHRpbmdzIGxvc3QgdXBncmFkaW5nIHRvIDMuMzwvaDQ+CjxwPkNWUyBub3cgdXNlcyB0aGUgUGxhdGZvcm0gcHJveHkgc2V0dGluZ3MuIEFzIGEgcmVzdWx0LCBhbnkgQ1ZTIHByb3h5IHNldHRpbmdzCndpbGwgYmUgbG9zdCBhbmQgbXVzdCBiZSByZS1lbnRlcmVkIG9uIHRoZSBHZW5lcmFsJmd0O05ldHdvcmsgQ29ubmVjdGlvbnMgcHJlZmVyZW5jZSAKcGFnZS4gPC9wPgo8aDQ+Q29ubmVjdGlvbiBjYW5ub3QgYmUgZm91bmQgYWZ0ZXIgaW5pdGlhbGx5IG1pc3Npbmc8L2g0Pgo8cD5JZiBhIGNvbm5lY3Rpb24gaW5pdGlhbGx5IGZhaWxzIGR1ZSB0byBhIG5ldHdvcmsgcHJvYmxlbSwgdGhlIGNvbm5lY3Rpb24gbWF5CmNvbnRpbnVlIHRvIGZhaWwgZXZlbiB3aGVuIHRoZSBuZXR3b3JrIHByb2JsZW0gaXMgZml4ZWQuIEluIG9yZGVyIHRvIGVzdGFibGlzaAp0aGUgY29ubmVjdGlvbiB5b3UgbXVzdCBleGl0IGFuZCByZXN0YXJ0IEVjbGlwc2UuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTkyOTUiPjkyOTU8L2E+KTwvcD4KPGg0PiZxdW90O1JlY2VpdmVkIGJyb2tlbiBwaXBlIHNpZ25hbCZxdW90OyBlcnJvciBmcm9tIHNlcnZlcjwvaDQ+CjxwPkVjbGlwc2Ugc29tZXRpbWVzIHBlcmZvcm1zIG11bHRpcGxlIGNvbW1hbmRzIHdpdGhpbiBhIHNpbmdsZSBjb25uZWN0aW9uIHRvCnRoZSBzZXJ2ZXIuIFRoaXMgbWF5IGNhdXNlIHByb2JsZW1zIHdpdGggQ1ZTIHNlcnZlcnMgdGhhdCBhcmUgcnVubmluZyBzZXJ2ZXIKc2NyaXB0cyBpbiByZXNwb25zZSB0byBjZXJ0YWluIGNvbW1hbmRzLiAoYnVncyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NzUiPjIzNTc1PC9hPgphbmQgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzNTgxIj4yMzU4MTwvYT4pPC9wPgoKPGg0PiZxdW90O1Rlcm1pbmF0ZWQgd2l0aCBmYXRhbCBzaWduYWwgMTAmcXVvdDsgZXJyb3IgZnJvbSBzZXJ2ZXI8L2g0Pgo8cD5UaGVyZSBpcyBhIGJ1ZyBpbiB0aGUgQ1ZTIHNlcnZlciByZWxhdGVkIHRvIHNvbWUgY29tcHJlc3Npb24gbGV2ZWxzLiBJZiB5b3UKZ2V0IHRoaXMgZXJyb3IsIGNoYW5naW5nIHRoZSBjb21wcmVzc2lvbiBsZXZlbCBvbiB0aGUgQ1ZTIHByZWZlcmVuY2UgcGFnZSBtYXkKaGVscC4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MjQiPjE1NzI0PC9hPik8L3A+CjxoND4mcXVvdDtVbmtub3duIHJlc3BvbnNlJnF1b3Q7IGVycm9yIHVzaW5nIGV4dCBjb25uZWN0aW9uIG1ldGhvZDwvaDQ+CjxwPlRoZXJlIGFyZSBhIGZldyBzaXR1YXRpb25zIHRoYXQgY2FuIHJlc3VsdCBpbiBhbiAmcXVvdDtVbmtub3duIHJlc3BvbnNlJnF1b3Q7CmVycm9yIG1lc3NhZ2VzIHdoZW4gdXNpbmcgdGhlIGV4dCBjb25uZWN0aW9uIG1ldGhvZC4gT25lIHNpdHVhdGlvbiBpbnZvbHZlcwp1c2luZyBhbiBleHRlcm5hbCBjb21tdW5pY2F0aW9ucyBjbGllbnQgKGUuZy4gcnNoIG9yIHNzaCkgdGhhdCBhZGRzIENScyB0byB0aGUKY29tbXVuaWNhdGlvbnMgY2hhbm5lbCAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMTE4MCI+MjExODA8L2E+KS4KQW5vdGhlciBpbnZvbHZlcyBFY2xpcHNlIG5vdCBwcm9wZXJseSByZWFkaW5nIHRoZSBzdGRlcnIgb3V0cHV0IG9mIHRoZSBleHRlcm5hbApjb21tdW5pY2F0aW9ucyB0b29sLiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMTYzMyI+MTE2MzM8L2E+KTwvcD4KCjxoND5BIGRpc2FibGVkIENWUyBjYXBhYmlsaXR5IG1heSBub3QgYmUgYXV0by1lbmFibGVkIGluIGV4aXN0aW5nIHdvcmtzcGFjZXM8L2g0Pgo8cD5OZXcgaW4gMy4wIGlzIHRoZSBhYmlsaXR5IHRvIGRpc2FibGUgY2FwYWJpbGl0aWVzIGFuZCB0aGUgQ1ZTIHN1cHBvcnQgaW4KRWNsaXBzZSBjYW4gYmUgZGlzYWJsZWQuIEhvd2V2ZXIsIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB0aGUgQ1ZTIGNhcGFiaWxpdHkKaXMgYXV0by1lbmFibGVkIGluIGV4aXN0aW5nIHdvcmtzcGFjZXMgdGhhdCBhbHJlYWR5IGNvbnRhaW4gQ1ZTIHByb2plY3RzLiBUaGUKYXV0by1lbmFibGluZyBmdW5jdGlvbiBtYXkgbm90IHJ1biBpZiB0aGUgdGVhbSBzdXBwb3J0IHBsdWdpbiBpcyBub3QgbG9hZGVkIGF0CnN0YXJ0dXAuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTY2OTc3Ij42Njk3NzwvYT4pPC9wPgo8aDQ+QnVpbGRlciBvdXRwdXQgZmlsZXMgbWF5IGFwcGVhciBhcyBjaGFuZ2VkPC9oND4KPHA+V2hlbiBmb2xkZXJzIGNvbnRhaW5pbmcgYnVpbGQgb3V0cHV0IGFyZSBzaGFyZWQgdGhleSBtYXkgZ2V0IGltcHJvcGVybHkKbWFya2VkIGFzIGRpcnR5IHdoZW4gYnVpbGQgb3V0cHV0IGlzIGdlbmVyYXRlZC48L3A+Cgo8aDM+My4yLjggPGEgbmFtZT0iSS1QbGF0Zm9ybS1JbnN0YWxsLVVwZGF0ZSI+UGxhdGZvcm0gLSBJbnN0YWxsL1VwZGF0ZTwvYT48L2gzPgo8aDQ+TWFudWFsbHkgaW5zdGFsbGluZyBmZWF0dXJlcyBhbmQgcGx1Zy1pbnMgb24gYSBGQVQgZmlsZSBzeXN0ZW0gKFdpbmRvd3Mgb25seSk8L2g0PgoKPHA+V2hlbiBmZWF0dXJlcyBhbmQgcGx1Zy1pbnMgYXJlIG1hbnVhbGx5IGluc3RhbGxlZCBvbiB0b3Agb2YgYW4gRWNsaXBzZS1iYXNlZAogcHJvZHVjdCBpbnN0YWxsIGxvY2F0ZWQgb24gYSBGQVQgZmlsZSBzeXN0ZW0gdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHJ1biBhdCBsZWFzdCAKIG9uY2UsIHRoZSBwcm9kdWN0IG11c3QgYmUgZXhwbGljaXRseSByZXN0YXJ0ZWQgd2l0aCAtY2xlYW4uIFRoYXQgaXMsPC9wPgo8cHJlPmVjbGlwc2UuZXhlIC1jbGVhbgo8L3ByZT4KCjxoND5Db25uZWN0aW5nIHRvIHVudHJ1c3RlZCBzaXRlcyB1c2luZyBodHRwczwvaDQ+CjxwPllvdSBjYW5ub3QgaW5zdGFsbCBvciB1cGRhdGUgc29mdHdhcmUgZnJvbSBhIHNpdGUgdXNpbmcgaHR0cHMgd2hvc2UgY2VydGlmaWNhdGUKaXMgbm90IGNoYWluZWQgdG8gYSB0cnVzdGVkIHJvb3QgY2VydGlmaWNhdGUgaW4geW91ciBsb2NhbCBjZXJ0aWZpY2F0ZSBzdG9yZS4gVGhpcyB0eXBpY2FsbHkKbWVhbnMgdGhlIHNlcnZlciBpcyB1c2luZyBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLCBvciBhIGNlcnRpZmljYXRlIGF1dGhlbnRpY2F0ZWQgYnkKYW4gdW5rbm93biB0aGlyZCBwYXJ0eS48L3A+Cgo8aDQ+UmVtb3ZpbmcgYSBsaW5rIGZpbGUgZG9lcyBub3QgdW5pbnN0YWxsIHRoZSBjb3JyZXNwb25kaW5nIGV4dGVuc2lvbiBsb2NhdGlvbjwvaDQ+CjxwPklmIHlvdSBoYXZlIGFuIGV4dGVuc2lvbiBsb2NhdGlvbiBpbiBhbiBFY2xpcHNlLWJhc2VkIGFwcGxpY2F0aW9uIHRoYXQgaXMgY29ubmVjdGVkCnRvIHlvdXIgY29uZmlndXJhdGlvbiB2aWEgYSBsaW5rIGZpbGUsIHRoZSBleHRlbnNpb24gaXMgbm90IHJlbW92ZWQgd2hlbiB0aGUgbGluayBpcyBkZWxldGVkLgpUaGUgd29ya2Fyb3VuZCBpcyB0byBtb3ZlIG9yIGRlbGV0ZSB0aGUgZXh0ZW5zaW9uIGxvY2F0aW9uLCBhbmQgcmVzdGFydCB0aGUgcGxhdGZvcm0Kd2l0aCB0aGUgLWNsZWFuIGNvbW1hbmQgbGluZSBhcmd1bWVudC4gWW91IGNhbiB0aGVuIHJlc3RvcmUgb3IgbW92ZSBiYWNrIHRoZSAKZXh0ZW5zaW9uIGxvY2F0aW9uIGNvbnRlbnQgdG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uIChidWcgPEEgSFJFRj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzMjA5NCI+MjMyMDk0PC9BPikuCjwvcD4KCjxoND5FeHRlbnNpb24gbG9jYXRpb24gaXMgbG9zdCBpZiB0aGUgaW5zdGFsbCBwYXRoIGNoYW5nZXM8L2g0Pgo8UD5BIHByZXZpb3VzbHkgY29uZmlndXJlZCBleHRlbnNpb24gbG9jYXRpb24gbWF5IGJlIHRlbXBvcmFyaWx5IHJlbW92ZWQgaWYgdGhlIGluc3RhbGwgaXMgbW92ZWQgb3IgbW91bnRlZCAKdW5kZXIgYSBkaWZmZXJlbnQgcGF0aC4gVGhpcyBvbmx5IGhhcHBlbnMgd2hlbiB0aGUgbGluayBmaWxlIHRoYXQgY29uZmlndXJlcyB0aGUgCmV4dGVuc2lvbiBsb2NhdGlvbiB1c2VzIGEgcmVsYXRpdmUgcGF0aCB0aGF0IHBvaW50cyB0byBhIGRpcmVjdG9yeSB1bmRlciB0aGUgRWNsaXBzZSAKaW5zdGFsbC4gT24gYSBzZWNvbmQgc3RhcnR1cCB1c2luZyB0aGUgc2FtZSBpbnN0YWxsIHBhdGgsIHRoZSBleHRlbnNpb24gbG9jYXRpb24gCmlzIGFkZGVkIGFnYWluIChidWcgPEEgSFJFRj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTk1NDAzIj45NTQwMzwvQT4pLiA8QlI+PC9QPgoKPGg0PkZlYXR1cmUgcGF0Y2hlcyBjYW4gb25seSBiZSBpbnN0YWxsZWQgZnJvbSBFY2xpcHNlIDMuNC1iYXNlZCB1cGRhdGUgc2l0ZXM8L2g0Pgo8cD5GZWF0dXJlIHBhdGNoZXMgY2FuIG9ubHkgYmUgaW5zdGFsbGVkIGZyb20gdXBkYXRlIHNpdGVzIGRlc2lnbmVkIGZvciBFY2xpcHNlIDMuNCBvciBncmVhdGVyLgpTcGVjaWZpY2FsbHksIHRoZSB1cGRhdGUgc2l0ZSBtdXN0IGhhdmUgdGhlIG5lY2Vzc2FyeSBtZXRhZGF0YSBmb3IgRXF1aW5veCBwMiAoYSBjb250ZW50LnhtbApvciBjb250ZW50LmphciBmaWxlKS4gVGhpcyBkYXRhIGNhbiBiZSBnZW5lcmF0ZWQgYnkgYnVpbGRpbmcgYW4gdXBkYXRlIHNpdGUgdXNpbmcgRWNsaXBzZSAzLjQKb3IgbmV3ZXIsIG9yIHJ1bm5pbmcgdGhlIHAyIG1ldGFkYXRhIGdlbmVyYXRvciBvbiBhbiB1cGRhdGUgc2l0ZSBidWlsdCB1c2luZyBlYXJsaWVyIHZlcnNpb25zCm9mIHRoZSBFY2xpcHNlIFNESy4gU2VlIHRoZSBoZWxwIHRvcGljIDxpPkdlbmVyYXRpbmcgcDIgbWV0YWRhdGE8L2k+IGZvciBtb3JlIGRldGFpbHMgb24gcnVubmluZyB0aGUgcDIgbWV0YWRhdGEKZ2VuZXJhdG9yIChidWcgPEEgSFJFRj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0NDQ4MyI+MjQ0NDgzPC9BPikuCjwvcD4KCjxoMz4zLjIuOSA8YSBuYW1lPSJJLVBsYXRmb3JtLURlYnVnIj5QbGF0Zm9ybSAtIERlYnVnPC9hPjwvaDM+CjxwPk5vbmUuIChLbm93biBwcm9ibGVtcyB3aXRoIHRoZSBKYXZhIGRlYnVnZ2VyIGFwcGVhciBiZWxvdyBpbiB0aGUgPGEgaHJlZj0iI0ktSkRUIj5KRFQ8L2E+CnNlY3Rpb24uKTwvcD4KCjxoMz4zLjIuMTAgPGEgbmFtZT0iSS1QbGF0Zm9ybS1Db21wYXJlIj5QbGF0Zm9ybSAtIENvbXBhcmU8L2E+PC9oMz4KPHA+Tm9uZS48L3A+Cgo8aDM+My4zIDxhIG5hbWU9IkktSkRUIj5KYXZhIGRldmVsb3BtZW50IHRvb2xzIChKRFQpPC9hPjwvaDM+Cgo8aDQ+TXVsdGlwbGUgcmVnaW9ucyBmb3JtYXR0aW5nIGluIGEgZ2l2ZW4gc291cmNlIHNuaXBwZXQ8L2g0PgpJbiB2ZXJzaW9uIDMuNCwgdGhlIG5ldyBBUEkgbWV0aG9kIDxjb2RlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmZvcm1hdHRlci5Db2RlRm9ybWF0dGVyLmZvcm1hdChpbnQsIFN0cmluZywgSVJlZ2lvbltdLCBpbnQsIFN0cmluZyk8L2NvZGU+CmhhcyBiZWVuIGFkZGVkIHRvIGFsbG93IHRoZSBmb3JtYXR0aW5nIG9mIHNldmVyYWwgcmVnaW9ucyBpbiBhIHNvdXJjZSBzbmlwcGV0IHdpdGggYSBzaW5nbGUgcGFzcy48YnI+CkV2ZW4gaWYgc3BlY2lmaWVkLCB0aGlzIG1ldGhvZCBkb2VzIG5vdCBjdXJyZW50bHkgYWNjZXB0IGNvbW1lbnRzIG9mIHRoZSBmb2xsb3dpbmcga2luZHM6Cjx1bD4KPGxpPjxjb2RlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmZvcm1hdHRlci5Db2RlRm9ybWF0dGVyI0tfU0lOR0xFX0xJTkVfQ09NTUVOVDwvY29kZT48L2xpPgo8bGk+PGNvZGU+b3JnLmVjbGlwc2UuamR0LmNvcmUuZm9ybWF0dGVyLkNvZGVGb3JtYXR0ZXIjS19NVUxUSV9MSU5FX0NPTU1FTlQ8L2NvZGU+PC9saT4KPGxpPjxjb2RlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmZvcm1hdHRlci5Db2RlRm9ybWF0dGVyI0tfSkFWQV9ET0M8L2NvZGU+PC9saT4KPC91bD4KVGhpcyB3aWxsIGJlIGZpeGVkIGluIGEgZnV0dXJlIHJlbGVhc2UgKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjMzOTY3Ij4yMzM5Njc8L2E+KS4KCjxoND5TZWFyY2hpbmcgZm9yIGNvbnN0YW50IGZpZWxkIHJlZmVyZW5jZXM8L2g0Pgo8cD5TZWFyY2ggZG9lcyBub3QgZmluZCByZWZlcmVuY2VzIHRvIGNvbnN0YW50IGZpZWxkcyBpbnNpZGUgYmluYXJpZXMgYmVjYXVzZQp0aGUgSmF2YSBMYW5ndWFnZSBTcGVjaWZpY2F0aW9uIG1hbmRhdGVzIHRoYXQgY29uc3RhbnQgZmllbGQgdmFsdWVzIGJlIGlubGluZWQKaW4gdGhlIGNsYXNzIGZpbGUncyBieXRlIGNvZGVzLCBsZWF2aW5nIG5vIHRyYWNlIG9mIGEgZmllbGQgcmVmZXJlbmNlLiZuYnNwOyhidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEyMDQ0Ij4xMjA0NDwvYT4pPC9wPgoKPGg0PiBDdXQsIGNvcHksIHBhc3RlIG5vdCB3b3JraW5nCmZvciBsaW5rZWQgcmVzb3VyY2VzIGluIHZpZXdzIHNob3dpbmcgSmF2YSBlbGVtZW50czwvaDQ+CjxwPlRoZSBjdXQsIGNvcHksIGFuZCBwYXN0ZSBhY3Rpb25zIGRvIG5vdCB3b3JrIGZvciBsaW5rZWQgZmlsZXMgYW5kIGZvbGRlcnMKYXBwZWFyaW5nIGluIHZpZXdzIHRoYXQgc2hvdyBKYXZhIGVsZW1lbnRzLCBpbmNsdWRpbmcgdGhlIFBhY2thZ2UgRXhwbG9yZXIuIFRoZQp3b3JrYXJvdW5kIGlzIHRvIHVzZSB0aGVzZSBhY3Rpb25zIGZyb20gdGhlIE5hdmlnYXRvciB2aWV3IGluc3RlYWQuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTM0NTY4Ij4zNDU2ODwvYT4pPC9wPgo8aDQ+IEphdmEgd29ya2luZyBzZXRzIG5vdAp3b3JraW5nIGNvcnJlY3RseSBmb3IgZWxlbWVudHMgZnJvbSBKUkUgc3lzdGVtIGxpYnJhcnkgY29udGFpbmVyPC9oND4KPHA+QXBwbHlpbmcgYSB3b3JraW5nIHNldCBjb25zaXN0aW5nIGVudGlyZWx5IG9mIGVsZW1lbnRzIGZyb20gdGhlIEpSRSBTeXN0ZW0KbGlicmFyeSBjb250YWluZXIgYXMgYSBmaWx0ZXIgdG8gdGhlIHBhY2thZ2VzIHZpZXcgbWlnaHQgcmVzdWx0IGluIGFuIGVtcHR5ClBhY2thZ2UgRXhwbG9yZXIuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTM1Mzk1Ij4zNTM5NTwvYT4pPC9wPgoKPGg0PkNhbm5vdCBnZW5lcmF0ZSBKYXZhZG9jIGZvciBwYWNrYWdlcyB3aXRoIEdCMTgwMzAgY2hhcmFjdGVycyBpbiB0aGUgbmFtZTwvaDQ+CjxwPk1vc3QgY2xhc3MgbGlicmFyaWVzIGRvIG5vdCBwcm9wZXJseSBzdXBwb3J0IHRoZSBjcmVhdGlvbiBvZiBhIHN5c3RlbQpwcm9jZXNzICh2aWEgPGNvZGU+amF2YS5sYW5nLlJ1bnRpbWUuZXhlYyguLi4pPC9jb2RlPikgd2hlbiB0aGUgc3BlY2lmaWVkCmNvbW1hbmQgbGluZSBjb250YWlucyBHQjE4MDMwIGNoYXJhY3RlcnMuIFNpbmNlIEphdmFkb2MgaXMgY3JlYXRlZCB1c2luZyB0aGUKSmF2YWRvYyBleGVjdXRhYmxlIHByb3ZpZGVkIHdpdGggdGhlIEpESywgZ2VuZXJhdGluZyBKYXZhZG9jIGZhaWxzIGlmIHRoZQpwYWNrYWdlIG9yIGNsYXNzIG5hbWUgY29udGFpbnMgR0IxODAzMCBjaGFyYWN0ZXJzLiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMjIxNSI+MzIyMTU8L2E+KTwvcD4KCjxoND5TaWRlIGVmZmVjdHMgb2YgU3RlcCBpbnRvIFNlbGVjdGlvbiBhbmQgUnVuIHRvIExpbmU8L2g0Pgo8cD5UaGUgYWN0aW9ucyAmcXVvdDtTdGVwIGludG8gU2VsZWN0aW9uJnF1b3Q7IGFuZCAmcXVvdDtSdW4gdG8gTGluZSZxdW90OwpvcHRpbWlzdGljYWxseSBzZXQgYnJlYWtwb2ludHMgb24gdGhlIGxpbmUgdGhlIHVzZXIgaGFzIGNob3NlbiB0byBzdGVwIGludG8gb3IKcnVuIHRvLiBIb3dldmVyLCB0aGUgZGVidWdnZXIgY2FuIG5vdCBkZXRlcm1pbmUgaWYgb3Igd2hlbiBleGVjdXRpb24gd2lsbCBldmVyCnJlYWNoIHRoZSBjaG9zZW4gbGluZS4gVGhlIGJyZWFrcG9pbnRzIHNldCBieSB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBhcmUKbm90IHZpc2libGUgdG8gdGhlIHVzZXIgYW5kIGNhbiBjYXVzZSBleGVjdXRpb24gdG8gc3VzcGVuZCB1bmV4cGVjdGVkbHkgYXQgYQpsYXRlciB0aW1lLCB3aGVuIHRoZSBhc3NvY2lhdGVkIGxpbmUgaXMgYWN0dWFsbHkgZXhlY3V0ZWQuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTUxNTA3Ij41MTUwNzwvYT4pPC9wPgo8aDQ+RGVmYXVsdCBsb2NhbGUgaW5pdGlhbGl6YXRpb24gaW5jb3JyZWN0PC9oND4KPHA+VGhlIGRlZmF1bHQgbG9jYWxlIGlzIGdlbmVyYWxseSBpbml0aWFsaXplZCBmcm9tIHRoZSBzZXR0aW5ncyBpbiB0aGUKb3BlcmF0aW5nIHN5c3RlbSB3aGVuIGEgdGFyZ2V0IFZNIGlzIGxhdW5jaGVkLiBIb3dldmVyLCB3aGVuIHVzaW5nIGphdmF3LmV4ZSBvbgpKREsxLjQuMiwgV2luZG93cyBYUCwgdGhlIGRlZmF1bHQgbG9jYWxlIGlzIGluY29ycmVjdGx5IGluaXRpYWxpemVkIHRvIGVuX1VTLCBubwptYXR0ZXIgd2hhdCB0aGUgb3BlcmF0aW5nIHN5c3RlbSBzZXR0aW5ncyBhcmUuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTY1OTQ1Ij42NTk0NTwvYT4pPC9wPgo8aDQ+U3VzcGVuZCBvbiB1bmNhdWdodCBleGNlcHRpb24gb3ZlcnJpZGVzIGV4Y2VwdGlvbiBicmVha3BvaW50IGxvY2F0aW9uIGZpbHRlcnM8L2g0Pgo8cD5FeGNlcHRpb24gYnJlYWtwb2ludHMgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCBsb2NhdGlvbiBmaWx0ZXJzIChpbmNsdXNpdmUgYW5kIAogIGV4Y2x1c2l2ZSkuIFdoZW4gYW4gdW5jaGVja2VkIGV4Y2VwdGlvbiBpcyBjb25maWd1cmVkIHRvIDxiPm5vdDwvYj4gc3VzcGVuZCAKICBleGVjdXRpb24gaW4gYSBzcGVjaWZpYyBjbGFzcywgZXhlY3V0aW9uIHdpbGwgc3RpbGwgc3VzcGVuZCB3aGVuIHRoZSB1c2VyIHByZWZlcmVuY2UgCiAgdG8gc3VzcGVuZCBvbiB1bmNhdWdodCBleGNlcHRpb25zIGlzIG9uLiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD02Njc3MCI+NjY3NzA8L2E+KTwvcD4KCjxoND5SdW5uaW5nIEphdmEgcHJvZ3JhbXMgd2l0aCBub24tTGF0aW4tMSBjaGFyYWN0ZXJzIGluIHBhY2thZ2Ugb3IgY2xhc3MgbmFtZXM8L2g0PgpZb3UgZ2V0IGEgPGNvZGU+amF2YS5sYW5nLk5vQ2xhc3NEZWZGb3VuZEVycm9yPC9jb2RlPiB3aGVuIHJ1bm5pbmcgSmF2YQpwcm9ncmFtcyB3aXRoIG5vbi1MYXRpbiBjaGFyYWN0ZXJzIGluIHRoZSBwYWNrYWdlIG9yIGNsYXNzIG5hbWVzLiBUaGUgd29ya2Fyb3VuZAppcyB0byBwYWNrYWdlIHRoZSBjbGFzcyBmaWxlcyBhcyBhIEpBUiBmaWxlIGFuZCBydW4gdGhlIHByb2dyYW0gb3V0IG9mIHRoZSBKQVIKYW5kIG5vdCBmcm9tIHRoZSBmaWxlIHN5c3RlbSBkaXJlY3RseS4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDE4MSI+NDE4MTwvYT4pCgo8aDQ+Q2Fubm90IHJ1biBvciBkZWJ1ZyBjbGFzcyBpbgphIHByb2plY3Qgd2l0aCBHQjE4MDMwIGNoYXJhY3RlcnMgaW4gcHJvamVjdCBuYW1lPC9oND4KPHA+TW9zdCBjbGFzcyBsaWJyYXJpZXMgZG8gbm90IHByb3Blcmx5IHN1cHBvcnQgdGhlIGNyZWF0aW9uIG9mIGEgc3lzdGVtCnByb2Nlc3MgKHZpYSA8Y29kZT5qYXZhLmxhbmcuUnVudGltZS5leGVjKC4uLik8L2NvZGU+KSB3aGVuIHRoZSBzcGVjaWZpZWQKY29tbWFuZCBsaW5lIGNvbnRhaW5zIEdCMTgwMzAgY2hhcmFjdGVycy4gVGhpcyBsaW1pdGF0aW9uIG1lYW5zIHRoZSBkZWJ1Z2dlcgpjYW5ub3QgbGF1bmNoIGFwcGxpY2F0aW9ucyB3aGVuIHRoZSBjb21tYW5kIGxpbmUgaXQgZ2VuZXJhdGVzIGNvbnRhaW5zIEdCMTgwMzAKY2hhcmFjdGVycy4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzIyMDYiPjMyMjA2PC9hPik8L3A+CjxoND5DYW5ub3QgZGV0ZWN0IGluc3RhbGxlZCBKUkUgd2l0aCBHQjE4MDMwIGNoYXJhY3RlcnMgaW4gcGF0aCBuYW1lPC9oND4KPHA+QXV0b21hdGljIEpSRSBkZXRlY3Rpb24gZmFpbHMgd2hlbiB0aGUgSlJFIGlzIHN0b3JlZCBpbiBhIGRpcmVjdG9yeQpjb250YWluaW5nIEdCMTgwMzAgY2hhcmFjdGVycyBpbiBpdHMgbmFtZS4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM4NDQiPjMzODQ0PC9hPik8L3A+CjxoND4gVW5hYmxlIHRvIGRlYnVnIHN0YWNrCm92ZXJmbG93czwvaDQ+Cgo8cD5JZiBhIGRlYnVnIHNlc3Npb24gc3VzcGVuZHMgb24gYSA8Y29kZT5qYXZhLmxhbmcuU3RhY2tPdmVyZmxvd0Vycm9yPC9jb2RlPgpleGNlcHRpb24gKGR1ZSB0byBhbiBleGNlcHRpb24gYnJlYWtwb2ludCksIHRoZSBkZWJ1Z2dlciBtYXkgbm90IGJlIGFibGUgdG8KcmV0cmlldmUgYW55IGRlYnVnIGluZm9ybWF0aW9uIGZyb20gdGhlIHRhcmdldCBKVk0uIEFzIHdlbGwsIHRoZSBkZWJ1Z2dlciBtYXkKbm90IGJlIGFibGUgdG8gcmVsaWFibHkgaW50ZXJhY3Qgd2l0aCB0aGUgdGFyZ2V0IEpWTSBwYXN0IHRoaXMgcG9pbnQuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE5MjE3Ij4xOTIxNzwvYT4pPC9wPgo8aDQ+IEV2YWx1YXRpb24gbGltaXRhdGlvbjwvaDQ+CjxwPlRoZSBkZWJ1Z2dlciB1c2VzIHRocmVhZHMgaW4gdGhlIHRhcmdldCBKVk0gdG8gcGVyZm9ybSBldmFsdWF0aW9ucyAoYm90aApleHBsaWNpdCBldmFsdWF0aW9ucyB0aGF0IHRoZSB1c2VyIHJlcXVlc3RzLCBhbmQgaW1wbGljaXQgZXZhbHVhdGlvbnMgc3VjaCBhcyA8Y29kZT50b1N0cmluZygpPC9jb2RlPgppbnZvY2F0aW9ucyBpbiB0aGUgPGI+VmFyaWFibGVzPC9iPiB2aWV3KS4gVGhlIEphdmEgRGVidWcgSW50ZXJmYWNlIChKREkpCnJlcXVpcmVzIHRoYXQgdGhlIHRocmVhZCBpbiB3aGljaCBhbiBldmFsdWF0aW9uIGlzIHBlcmZvcm1lZCBiZSBzdXNwZW5kZWQgYnkgYQp1c2VyIGV2ZW50ICh0aGF0IGlzLCBhIGJyZWFrcG9pbnQgb3Igc3RlcCByZXF1ZXN0KS4gRXZhbHVhdGlvbnMgY2Fubm90IGJlCnBlcmZvcm1lZCBvbiB0aHJlYWRzIHN1c3BlbmRlZCBieSB0aGUgc3VzcGVuZCBhY3Rpb24uIEFzIHdlbGwsIHdoZW4gYSBicmVha3BvaW50CmlzIGNvbmZpZ3VyZWQgdG8gc3VzcGVuZCB0aGUgSlZNIHJhdGhlciB0aGFuIGp1c3QgdGhlIGluZGl2aWR1YWwgdGhyZWFkLCB0aGUKdGhyZWFkcyB3aGljaCBkaWQgbm90IGVuY291bnRlciB0aGUgYnJlYWtwb2ludCBhcmUgbm90IGluIGEgdmFsaWQgc3RhdGUgdG8KcGVyZm9ybSBhbiBldmFsdWF0aW9uLiBXaGVuIGFuIGV2YWx1YXRpb24gaXMgYXR0ZW1wdGVkIGluIGEgdGhyZWFkIHRoYXQgaXMgbm90CmluIGEgdmFsaWQgc3RhdGUgdG8gcGVyZm9ybSBhbiBldmFsdWF0aW9uLCBhbiBlcnJvciBtZXNzYWdlIHdpbGwgYXBwZWFyIHRvIHRoZQplZmZlY3Qgb2YgJnF1b3Q7VGhyZWFkIG11c3QgYmUgc3VzcGVuZGVkIGJ5IHN0ZXAgb3IgYnJlYWtwb2ludCB0byBwZXJmb3JtIG1ldGhvZAppbnZvY2F0aW9uJnF1b3Q7LiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zNDQ0MCI+MzQ0NDA8L2E+KTwvcD4KCjxoND4gTWlzc2luZyBkZWJ1ZyBhdHRyaWJ1dGVzPC9oND4KVGhlIGRlYnVnZ2VyIHJlcXVpcmVzIHRoYXQgY2xhc3MgZmlsZXMgYmUgY29tcGlsZWQgd2l0aCBkZWJ1ZyBhdHRyaWJ1dGVzIGlmCml0IGlzIHRvIGJlIGFibGUgdG8gZGlzcGxheSBsaW5lIG51bWJlcnMgYW5kIGxvY2FsIHZhcmlhYmxlcy4gUXVpdGUgb2Z0ZW4sIGNsYXNzCmxpYnJhcmllcyAoZm9yIGV4YW1wbGUsICZxdW90Ozxjb2RlPnJ0LmphcjwvY29kZT4mcXVvdDspIGFyZSBjb21waWxlZCB3aXRob3V0CmNvbXBsZXRlIGRlYnVnIGF0dHJpYnV0ZXMsIGFuZCB0aHVzIGxvY2FsIHZhcmlhYmxlcyBhbmQgbWV0aG9kIGFyZ3VtZW50cyBmb3IKdGhvc2UgY2xhc3NlcyBhcmUgbm90IHZpc2libGUgaW4gdGhlIGRlYnVnZ2VyLgo8aDQ+IFVzaW5nIEhvdCBDb2RlIFJlcGxhY2U8L2g0Pgo8cD5Ib3QgY29kZSByZXBsYWNlIGlzIHN1cHBvcnRlZCBvbiBKREsgMS40LnggVk1zLCBhbmQgSUJNIEo5IFZNcy4gVGhlIGRlYnVnZ2VyCndpbGwgYXR0ZW1wdCB0byByZXBsYWNlIGFsbCBjbGFzcyBmaWxlcyB0aGF0IGNoYW5nZSBpbiB0aGUgd29ya3NwYWNlIGFzIHRoZSB1c2VyCmVkaXRzIGFuZCBidWlsZHMgc291cmNlIGNvZGUuIEhvd2V2ZXIsIGhvdCBjb2RlIHJlcGxhY2UgaXMgbGltaXRlZCB0byBjaGFuZ2VzCnRoYXQgYSBwYXJ0aWN1bGFyIHZpcnR1YWwgbWFjaGluZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cy4gRm9yIGV4YW1wbGUsIGNoYW5nZXMKd2l0aGluIGV4aXN0aW5nIG1ldGhvZHMgbWF5IGJlIHN1cHBvcnRlZCwgYnV0IHRoZSBhZGRpdGlvbiBvciByZW1vdmFsIG9mIG1lbWJlcnMKbWF5IG5vdCBiZS48L3A+CjxwPk5vdGUgdGhhdCBob3QgY29kZSByZXBsYWNlIGFuZCBzdGVwcGluZyBvbiBKREsgMS40LjAgVk1zIHdhcyB1bnJlbGlhYmxlLiBUaGUKdW5kZXJseWluZyBWTSBwcm9ibGVtcyB3ZXJlIGZpeGVkIGluIEpESyAxLjQuMSwgYW5kIGxhdGVyLjwvcD4KPGg0PiBTY3JhcGJvb2s8L2g0PgpTZXR0aW5nIGEgYnJlYWtwb2ludCBpbnNpZGUgYSBzY3JhcGJvb2sgcGFnZSBpcyBub3Qgc3VwcG9ydGVkLgoKPHA+V2hlbiBhIHNuaXBwZXQgaXMgcnVuIGluIHRoZSBzY3JhcGJvb2sgd2hpY2ggZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBjYWxscyA8Y29kZT5TeXN0ZW0uZXhpdChpbnQpPC9jb2RlPiwKdGhlIGV2YWx1YXRpb24gY2Fubm90IGJlIGNvbXBsZXRlZCwgYW5kIHdpbGwgcmVzdWx0IGluIGEgc3RhY2sgdHJhY2UgZm9yIGEgPGNvZGU+Y29tLnN1bi5qZGkuVk1EaXNjb25uZWN0ZWRFeGNlcHRpb248L2NvZGU+CmJlaW5nIGRpc3BsYXllZCBpbiB0aGUgc2NyYXBib29rIGVkaXRvci48L3A+CjxwPlRlcm1pbmF0aW5nIGEgc2NyYXBib29rIHBhZ2Ugd2hpbGUgaXQgaXMgcGVyZm9ybWluZyBhbiBldmFsdWF0aW9uIHJlc3VsdHMKaW4gYSA8Y29kZT5jb20uc3VuLmpkaS5WTURpc2Nvbm5lY3RlZEV4Y2VwdGlvbjwvY29kZT4gYmVpbmcgZGlzcGxheWVkIGluIHRoZQpzY3JhcGJvb2sgZWRpdG9yLjwvcD4KPGg0PiBEZWJ1Z2dpbmcgb3ZlciBzbG93CmNvbm5lY3Rpb25zPC9oND4KQSBnbG9iYWwgSmF2YSBkZWJ1ZyBwcmVmZXJlbmNlIHNwZWNpZmllcyB0aGUgZGVidWdnZXIgdGltZW91dCwgd2hpY2ggaXMgdGhlCm1heGltdW0gYW1vdW50IG9mIHRpbWUgdGhlIGRlYnVnZ2VyIHdhaXRzIGZvciBhIHJlc3BvbnNlIGZyb20gdGhlIHRhcmdldCBWTQphZnRlciBtYWtpbmcgYSByZXF1ZXN0IG9mIHRoYXQgVk0uIFNsb3cgY29ubmVjdGlvbnMgbWF5IHJlcXVpcmUgdGhhdCB0aGlzIHZhbHVlCmJlIGluY3JlYXNlZC4gVGhlIHRpbWVvdXQgdmFsdWUgY2FuIGJlIGVkaXRlZCBmcm9tIHRoZSA8Yj5KYXZhICZndDsgRGVidWcgPC9iPnByZWZlcmVuY2UKcGFnZS4gQ2hhbmdpbmcgdGhlIHRpbWVvdXQgdmFsdWUgb25seSBlZmZlY3RzIHN1YnNlcXVlbnRseSBsYXVuY2hlZCBWTSwgbm90IFZNcwp0aGF0IGFyZSBhbHJlYWR5IHJ1bm5pbmcuCgo8aDQ+IFVwZGF0aW5nIG9mIGluc3BlY3RlZCB2YWx1ZXM8L2g0PgpXaGVuIGluc3BlY3RpbmcgdGhlIHJlc3VsdCBvZiBhbiBldmFsdWF0ZWQgZXhwcmVzc2lvbiBpbiB0aGUgZGVidWdnZXIsIGl0IGlzCmltcG9ydGFudCB0byBub3RlIHRoYXQgdGhlIHJlc3VsdCBkaXNwbGF5ZWQgaXMgdGhlIHJlc3VsdCBvZiB0aGF0IGV4cHJlc3Npb24gYXQKdGhlIHRpbWUgaXQgd2FzIGV2YWx1YXRlZC4gRm9yIGV4YW1wbGUsIHdoZW4gaW5zcGVjdGluZyBhIHNpbXBsZSBpbnRlZ2VyIGNvdW50ZXIKKHByaW1pdGl2ZSBkYXRhIHR5cGUpLCB0aGUgdmFsdWUgZGlzcGxheWVkIGluIHRoZSBFeHByZXNzaW9ucyB2aWV3IGlzIHRoZSB2YWx1ZQp3aGVuIHRoZSBleHByZXNzaW9uIHdhcyBldmFsdWF0ZWQuIEFzIHRoZSBjb3VudGVyIGlzIGNoYW5nZWQgaW4gdGhlIHJ1bm5pbmcKcHJvZ3JhbSwgdGhlIGluc3BlY3RlZCByZXN1bHQgd2lsbCBub3QgY2hhbmdlIChzaW5jZSB0aGUgdmlldyBpcyBub3QgZGlzcGxheWluZwp0aGUgdmFsdWUgYm91bmQgdG8gYSB2YXJpYWJsZSAtIGl0IGlzIGRpc3BsYXlpbmcgdGhlIHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGFuZAp0aGUgdmFsdWUgb2YgYSBwcmltaXRpdmUgZGF0YSB0eXBlIGNhbm5vdCBjaGFuZ2UpLiBIb3dldmVyLCBpZiBhbiBleHByZXNzaW9uCnJlc3VsdHMgaW4gYW4gb2JqZWN0LCBmaWVsZHMgb2YgdGhhdCBvYmplY3Qgd2lsbCBiZSB1cGRhdGVkIGluIHRoZSBpbnNwZWN0b3IgYXMKdGhleSBjaGFuZ2UgaW4gdGhlIHJ1bm5pbmcgcHJvZ3JhbSAoc2luY2UgdGhlIHZhbHVlIGJvdW5kIHRvIGZpZWxkcyBpbiBhbiBvYmplY3QKY2FuIGNoYW5nZSkuCjxoND4gU3RlcHBpbmcgb3ZlciBuYXRpdmUgbWV0aG9kcwp0aGF0IHBlcmZvcm0gSS9PPC9oND4KV2hlbiB0aGUgZGVidWdnZXIgc3RlcHMgb3ZlciBuYXRpdmUgbWV0aG9kcyB0aGF0IHBlcmZvcm0gSS9PIHRvIDxjb2RlPlN5c3RlbS5vdXQ8L2NvZGU+Cm9yIDxjb2RlPlN5c3RlbS5lcnI8L2NvZGU+LCB0aGUgb3V0cHV0IG1heSBub3QgYXBwZWFyIGltbWVkaWF0ZWx5IHVubGVzcyB0aGUKbmF0aXZlIHBlcmZvcm1zIGEgZmx1c2ggb24gdGhlIG91dHB1dCBidWZmZXIuCjxoND4gVk0gYW5kIHByb2Nlc3MgdGVybWluYXRpb24KcnVubmluZyBvbiBJQk0gMS4zIEpWTSBvbiBMaW51eCAoTGludXggb25seSk8L2g0PgpUZXJtaW5hdGluZyBhIGxhdW5jaCwgZGVidWcgdGFyZ2V0LCBvciBzeXN0ZW0gcHJvY2VzcyBhc3NvY2lhdGVkIHdpdGggYSBkZWJ1Zwp0YXJnZXQgcnVubmluZyBvbiB0aGUgSUJNIDEuMyBKVk0gb24gdGhlIExpbnV4IHBsYXRmb3JtIGRvZXMgbm90IHdvcmsgd2hlbiB0aGUKYXNzb2NpYXRlZCBkZWJ1ZyB0YXJnZXQgaGFzIGEgc3VzcGVuZGVkIHRocmVhZC4gVG8gcmVtb3ZlIHN1Y2ggZGVidWcgdGFyZ2V0cwpmcm9tIHRoZSBkZWJ1ZyBVSSwgc2VsZWN0IDxiPlRlcm1pbmF0ZSBhbmQgUmVtb3ZlPC9iPiBmcm9tIHRoZSBkZWJ1ZyB2aWV3J3MKcG9wLXVwIG1lbnUgKG9yIHVzZSB0aGUgc2hvcnRjdXQgJnF1b3Q7ZGVsZXRlJnF1b3Q7IGtleSkuIEFzc29jaWF0ZWQgc3lzdGVtCnByb2Nlc3NlcyBpbiB0aGUgT1MgbWF5IG5vdCBiZSBwcm9wZXJseSBjbGVhbmVkIHVwLiBJZiBhIGRlYnVnIHRhcmdldCBoYXMgbm8Kc3VzcGVuZGVkIHRocmVhZHMsIHRlcm1pbmF0aW9uIHdvcmtzIHByb3Blcmx5LiAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xNjMxIj4xNjMxPC9hPikKCgo8aDQ+IE1lbW9yeSBWaWV3IChMaW51eCBvbmx5KTwvaDQ+ClRoZSBmZWF0dXJlIHRvIGF1dG9tYXRpY2FsbHkgbG9hZCBzZWdtZW50cyBvZiBtZW1vcnkgd2hpbGUgc2Nyb2xsaW5nIGluIHRoZSBNZW1vcnkKdmlldyBkb2VzIG5vdCB3b3JrIG9uIExpbnV4LiBJbnN0ZWFkIHRoZSB1c2VyIG11c3QgdXNlIHRoZSAmcXVvdDtOZXh0IFBhZ2UmcXVvdDsgYW5kICZxdW90O1ByZXZpb3VzIFBhZ2UmcXVvdDsgYWN0aW9ucwp0byBtYW51YWxseSBsb2FkIG1lbW9yeSBzZWdtZW50cyAoYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD03NDU1OSI+NzQ1NTk8L2E+KQoKPGg0PkphdmEgNiBBbm5vdGF0aW9uIFByb2Nlc3Npbmc8L2g0PgpKYXZhIDYgYW5ub3RhdGlvbiBwcm9jZXNzb3JzIGFyZSBzdXBwb3J0ZWQgaW4gdGhlIGJhdGNoIGNvbXBpbGVyIGFuZCBpbiB0aGUgSURFLCB3aXRoIApzb21lIGxpbWl0YXRpb25zLiBKYXZhIDYgcHJvY2Vzc29ycyBhcmUgb25seSBleGVjdXRlZCBkdXJpbmcgYSBidWlsZCwgbm90IHdoaWxlIGVkaXRpbmcgKGJ1ZyAKPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE4ODU1OCI+MTg4NTU4PC9hPikuIFNvbWUgbWV0aG9kcwppbiB0aGUgcHJvY2Vzc2luZyBBUEkgYXJlIHVuaW1wbGVtZW50ZWQgd2hlbiBjb21waWxpbmcgd2l0aGluIHRoZSBJREUsIGFuZCB3aWxsIHRocm93ClVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgoKPGgzPjMuNCA8YSBuYW1lPSJJLVBERSI+UGx1Zy1pbiBEZXZlbG9wbWVudCBFbnZpcm9ubWVudCAoUERFKTwvYT48L2gzPgo8aDQ+RmVhdHVyZSBtYW5pZmVzdCBlZGl0b3IgZG9lcyBub3QgcHJlc2VydmUgYWxsIGNvbW1lbnRzPC9oND4KCjxwPldoZW4gYSBub24tc291cmNlIHBhZ2Ugb2YgdGhlIGZlYXR1cmUgbWFuaWZlc3QgZWRpdG9yIGlzIHVzZWQsIFBERSB3aWxsIGNvbnZlcnQKY2hhbmdlcyBiYWNrIGludG8gWE1MIGJ5IHJlZ2VuZXJhdGluZyB0aGUgZmlsZS4gQWx0aG91Z2ggdGhlIG92ZXJhbGwgY29udGVudCBhbmQKbW9zdCBvZiB0aGUgY29tbWVudHMgYXJlIHByZXNlcnZlZCwgc29tZSBjb21tZW50cyBtYXkgYmUgbG9zdC4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NTk1MDIiPjU5NTAyPC9hPik8L3A+CjxoND5QREUgd2lsbCBub3QgdW56aXAgc291cmNlIHppcHMgb2Ygc29tZSBwbHVnLWluczwvaDQ+CjxwPkluIHRoZSBwbHVnLWluIGltcG9ydCB3aXphcmQsIHdoZW4geW91IGNob29zZSB0byBpbXBvcnQgcGx1Zy1pbnMgYXMKJnF1b3Q7cHJvamVjdHMgd2l0aCBzb3VyY2UgZm9sZGVycyZxdW90OywgUERFIHdpbGwgbm90IHVuemlwIHRoZSBzb3VyY2UgZm9yIHRoZQpvcmcuYXBhY2hlLmFudCwgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmNvbXBhdGliaWxpdHkucmVnaXN0cnksIG9yZy5lY2xpcHNlLm9zZ2kudXRpbCBhbmQgb3JnLmVjbGlwc2Uub3NnaS5zZXJ2aWNlcy4gVGhpcyBpcwpiZWNhdXNlIHRoZSBzb3VyY2UgWklQcyBjb250YWlucyBjb2RlIHRoYXQgd2lsbCBub3QgY29tcGlsZSB3aGVuIHVuemlwcGVkIGFzIGl0CnJlcXVpcmVzIGFkZGl0aW9uYWwgSkFScyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgU0RLLiBUbyBhdm9pZCB0aGUgY3JlYXRpb24gb2YKcGx1Zy1pbiBwcm9qZWN0cyB0aGF0IHdvbid0IGNvbXBpbGUsIFBERSB3aWxsIGltcG9ydCB0aGVzZSBwbHVnLWlucyBhcyBiaW5hcnkKYW5kIGF0dGFjaCBzb3VyY2UsIHNvIHlvdSB3b3VsZCBzdGlsbCBiZSBhYmxlIHRvIHJlYWQgdGhlIHNvdXJjZSwgeW91IGp1c3Qgd29uJ3QKYmUgYWJsZSB0byBtb2RpZnkgaXQuIEFsc28sIFBERSB3aWxsIG5vdCB1bnppcCB0aGUgc291cmNlIGZvciB0aGUKb3JnLmVjbGlwc2Uuc3d0IHBsdWctaW5zLiBJbiB0aGlzIGNhc2UsIGl0IGlzIGJlY2F1c2UsIHdoZW4gc2hpcHBlZCwgdGhlIHN3dApjb2RlIGlzIHNwcmVhZCBhY3Jvc3MgYSBwbHVnLWluIGFuZCBhIGZyYWdtZW50LCBhbmQgd2hlbiB1bnppcHBlZCwgaXQgd2lsbApyZXF1aXJlIGNpcmN1bGFyIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHRoZSBwbHVnLWluIGFuZCBmcmFnbWVudCBwcm9qZWN0cy4gVGhlc2UKY2lyY3VsYXIgZGVwZW5kZW5jaWVzIGFyZSBhdCBtaW5pbXVtIG1hcmtlZCBhcyB3YXJuaW5ncyBieSB0aGUgSkRUIGNvbXBpbGVyIGFuZAptYXkgcmVzdWx0IGluIHVucHJlZGljdGFibGUgYnVpbGQgYmVoYXZpb3IuIFRoZXJlZm9yZSwgUERFIGFsd2F5cyBpbXBvcnRzCm9yZy5lY2xpcHNlLnN3dCBhcyBiaW5hcnkgd2l0aCBzb3VyY2UgYXR0YWNoZWQuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTY2MzE0Ij42NjMxNDwvYT4pPC9wPgoKPGg0PkVtYWNzIGtleSBiaW5kaW5ncyBkbyBub3QKd29yayBpbiBtYW5pZmVzdCBlZGl0b3IgZmllbGRzPC9oND4KPHA+Tm9uLWRlZmF1bHQga2V5IGJpbmRpbmdzIGN1cnJlbnRseSBkbyBub3Qgd29yayBpbiBmaWVsZHMgb24gbm9uLXNvdXJjZQpwYWdlcyBvZiB0aGUgUERFIG1hbmlmZXN0IGVkaXRvcnMuIChidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE5NDgyIj4xOTQ4MjwvYT4pPC9wPgo8aDQ+UGx1Zy1pbiBpbXBvcnQgd2l6YXJkIGRvZXMKbm90IGFsbG93IHBsdWctaW5zIG9mIGRpZmZlcmVudCB2ZXJzaW9ucyB0byBiZSBpbXBvcnRlZDwvaDQ+CjxwPlRoZSBFY2xpcHNlIHBsYXRmb3JtIGFsbG93cyB0d28gcGx1Zy1pbnMgd2l0aCB0aGUgc2FtZSBJRCBidXQgZGlmZmVyZW50CnZlcnNpb25zIHRvIGNvZXhpc3QgaWYgdGhlIG9ubHkgdGhpbmcgdGhleSBjb250cmlidXRlIGlzIHJ1bi10aW1lIGxpYnJhcmllcy4KSG93ZXZlciwgUERFIGNhbm5vdCBoYW5kbGUgdGhlc2UgcGx1Zy1pbnMgYmVjYXVzZSBpdCBjcmVhdGVzIHByb2plY3QgbmFtZXMgdXNpbmcKcGx1Zy1pbiBJRHMgZHVyaW5nIGJpbmFyeSBwcm9qZWN0IGltcG9ydC4gKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTg1MDAiPjE4NTAwPC9hPik8L3A+CjxoND5FeHBvcnQgb2YgcGx1Zy1pbiBtYXkgc2lsZW50bHkgZHJvcCBjbGFzc2VzPC9oND4KPHA+V2hlbiBleHBvcnRpbmcgYSBwbHVnLWluIHVzaW5nIHRoZSBwbHVnLWluLCBmZWF0dXJlIG9yIHByb2R1Y3Qgd2l6YXJkcywgc29tZSBjbGFzc2VzCm1pZ2h0IGJlIGRyb3BwZWQgZnJvbSB0aGUgcmVzdWx0aW5nIGFyY2hpdmUgaWYgdGhlaXIgZnVsbHkgcXVhbGlmaWVkIG5hbWUgaXMgdG9vIGxvbmcuClRoaXMgdHlwaWNhbCBwYXRoIGxpbWl0YXRpb24gY2FuIGJlIHdvcmtlZCBhcm91bmQgYnkgY3JlYXRpbmcgdGhlIGphciBvZiB0aGUgcHJvYmxlbWF0aWMKcGx1Zy1pbiBieSB1c2luZyB0aGUgSmFyIGV4cG9ydCB3aXphcmQuCihidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTk3MTUwIj45NzE1MDwvYT4pPC9wPgoKPGg0PkNvbXBpbGF0aW9uIGVycm9ycyB3aGVuIGV4cG9ydGluZyBwcm9qZWN0cyBub3Qgc3RvcmVkIG91dHNpZGUgb2YgdGhlIHdvcmtzcGFjZTwvaDQ+CjxwPldoZW4gZXhwb3J0aW5nIG11bHRpcGxlIHBsdWctaW5zIGFuZCBvbmUgaXMgc3RvcmVkIG91dHNpZGUgb2YgdGhlIHdvcmtzcGFjZSwKY29tcGlsZSBlcnJvcnMgb2NjdXJzIG9uIGV4cG9ydC4gVG8gd29yayBhcm91bmQgdGhlIHByb2JsZW0sIHlvdSBjYW4gZWl0aGVyIGV4cG9ydAp0aGUgcGx1Zy1pbnMgb25lIGJ5IG9uZSwgb3IgY2hhbmdlIHRoZWlyIGxvY2F0aW9uLgooYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD05ODU3OSI+OTg1Nzk8L2E+KTwvcD4KCjxoND5IZWFkbGVzcyBidWlsZCBuZWVkcyB0byBiZSBydW4gZnJvbSBhIGZ1bGx5IHF1YWxpZmllZCBwYXRoPC9oND4KPHA+V2hlbiBydW5uaW5nIGEgaGVhZGxlc3MgYnVpbGQgdXNpbmcgdGhlIHNjcmlwdHMgcHJvdmlkZWQgYnkgcGRlIGJ1aWxkLCB0aGUgcHJvcGVydGllcyA8Y29kZT5idWlsZGVyPC9jb2RlPiAKYW5kIDxjb2RlPmJ1aWxkRGlyZWN0b3J5PC9jb2RlPiBtdXN0IHJlZmVyIHRvIGEgZnVsbHkgcXVhbGlmaWVkIHBhdGguCihidWcgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTEzOTU1NCI+MTM5NTU0PC9hPikKPC9wPgoKPGg0PlRhcmdldCBQbGF0Zm9ybSBvbmx5IHNlZXMgaW5zdGFsbGVkIHBsdWctaW5zPC9oND4KPHA+V2l0aCB0aGUgbmV3IHAyIHByb3Zpc2lvbmluZyBzeXN0ZW0gaW4gMy40LCBQREUgaW50cm9kdWNlZCBhIHByZWZlcmVuY2UgdG8gY29udHJvbCBob3cgdGFyZ2V0IHBsYXRmb3JtcyBhcmUgYnVpbHQuIApCeSBkZWZhdWx0LCB0aGlzIHByZWZlcmVuY2UgaXMgb24gaWYgeW91ciB0YXJnZXQgZXF1YWxzIHlvdXIgaG9zdCwgb3RoZXJ3aXNlIGl0J3Mgb2ZmLiBXaGVuIHRoaXMgcHJlZmVyZW5jZSBpcyBlbmFibGVkLCBQREUgYXR0ZW1wdHMgdG8KcmVhZCBhIHRhcmdldCBwbGF0Zm9ybSdzIGNvbmZpZ3VyYXRpb24gYW5kIGJ1aWxkIHRoZSB0YXJnZXQgcGxhdGZvcm0gYmFzZWQgaW4gdGhlIHRhcmdldCdzIGxpc3Qgb2YgaW5zdGFsbGVkIHBsdWctaW5zLiBJZiBhIGNvbmZpZ3VyYXRpb24KY2FuJ3QgYmUgZm91bmQgKGEgYnVuZGxlcy5pbmZvIG9yIHBsYXRmb3JtLnhtbCBmaWxlKSwgUERFIHdpbGwgc2ltcGx5IG1hbnVhbGx5IHNjYW4gdGhlIHRhcmdldCBkaXJlY3RvcnkgYW5kIHBvcHVsYXRlIHRoZSB0YXJnZXQgcGxhdGZvcm0ncwpsaXN0IG9mIHBsdWctaW5zLgooYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMjYwMzciPjIyNjAzNzwvYT4gYW5kIGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MTQ4Ij4yMjUxNDg8L2E+KQo8L3A+Cgo8aDQ+RGVsdGEgcGFjayBpcyBub3Qgc2VlbiBieSBQREUgd2hlbiBpbnN0YWxsZWQ8L2g0Pgo8cD5JZiB5b3UncmUgdXNpbmcgdGhlIGRlbHRhIHBhY2ssIHRoZSB0YXJnZXQgcGxhdGZvcm0gcHJlZmVyZW5jZSBmb3IgYnVpbGRpbmcgYSB0YXJnZXQgYmFzZWQgb24gdGhlIHRhcmdldCdzIGluc3RhbGxlZCBwbHVnLWlucyBtdXN0IGJlIGNoZWNrZWQgb2ZmLgpUaGlzIGlzIGJlY2F1c2UgYSB0YXJnZXQncyBydW50aW1lIGNvbmZpZ3VyYXRpb24gb25seSBjb250YWlucyBwbHVnLWlucyBzcGVjaWZpYyB0byB0aGUgcGxhdGZvcm0gaXQncyBydW5uaW5nIG9uLgooYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMzAxNDYiPjIzMDE0NjwvYT4pCjwvcD4KCjxoMj40LiA8YSBuYW1lPSJSdW5uaW5nIEVjbGlwc2UiPlJ1bm5pbmcgRWNsaXBzZTwvYT48L2gyPgo8cD5BZnRlciBpbnN0YWxsaW5nIHRoZSBFY2xpcHNlIFNESyBpbiBhIGRpcmVjdG9yeSwgeW91IGNhbiBzdGFydCB0aGUgV29ya2JlbmNoCmJ5IHJ1bm5pbmcgdGhlIEVjbGlwc2UgZXhlY3V0YWJsZSBpbmNsdWRlZCB3aXRoIHRoZSByZWxlYXNlICh5b3UgYWxzbyBuZWVkIGEgMS40LjIKSlJFLCBub3QgaW5jbHVkZWQgd2l0aCB0aGUgRWNsaXBzZSBTREspLiBPbiBXaW5kb3dzLCB0aGUgZXhlY3V0YWJsZSBmaWxlIGlzIGNhbGxlZCA8c2FtcD5lY2xpcHNlLmV4ZTwvc2FtcD4sCmFuZCBpcyBsb2NhdGVkIGluIHRoZSA8Y29kZT5lY2xpcHNlPC9jb2RlPiBzdWItZGlyZWN0b3J5IG9mIHRoZSBpbnN0YWxsLiBJZgppbnN0YWxsZWQgYXQgPGNvZGU+YzpcZWNsaXBzZS1TREstMy40LXdpbjMyPC9jb2RlPiwgdGhlIGV4ZWN1dGFibGUgaXMgPGNvZGU+YzpcZWNsaXBzZS1TREstMy40LXdpbjMyXGVjbGlwc2VcZWNsaXBzZS5leGU8L2NvZGU+LgoKPGI+Tm90ZTo8L2I+IFNldC11cCBvbiBtb3N0IG90aGVyIG9wZXJhdGluZyBlbnZpcm9ubWVudHMgaXMgYW5hbG9nb3VzLiBTcGVjaWFsCmluc3RydWN0aW9ucyBmb3IgTWFjIE9TIFggYXJlIGxpc3RlZCA8YSBocmVmPSIjbWFjb3N4Ij5iZWxvdzwvYT4uPC9wPgoKPGgzPkFsbG9jYXRpbmcgZW5vdWdoIG1lbW9yeSBhbmQgc29sdmluZyBPdXRPZk1lbW9yeUVycm9yczwvaDM+CjxwPkJ5IGRlZmF1bHQsIEVjbGlwc2Ugd2lsbCBhbGxvY2F0ZSB1cCB0byAyNTYgbWVnYWJ5dGVzIG9mIEphdmEgaGVhcCBtZW1vcnkuIFRoaXMgc2hvdWxkCmJlIGFtcGxlIGZvciBhbGwgdHlwaWNhbCBkZXZlbG9wbWVudCB0YXNrcy4gSG93ZXZlciwgZGVwZW5kaW5nIG9uIHRoZSBKUkUKdGhhdCB5b3UgYXJlIHJ1bm5pbmcsIHRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCBwbHVnLWlucyB5b3UgYXJlIHVzaW5nLCBhbmQKdGhlIG51bWJlciBvZiBmaWxlcyB5b3Ugd2lsbCBiZSB3b3JraW5nIHdpdGgsIHlvdSBjb3VsZCBjb25jZWl2YWJseSBoYXZlIHRvIGluY3JlYXNlIHRoaXMgYW1vdW50LiAKRWNsaXBzZSBhbGxvd3MgeW91IHRvIHBhc3MgYXJndW1lbnRzIGRpcmVjdGx5IHRvIHRoZSBKYXZhIFZNIHVzaW5nIHRoZQo8Y29kZT4tdm1hcmdzPC9jb2RlPiBjb21tYW5kIGxpbmUgYXJndW1lbnQsIHdoaWNoIG11c3QgZm9sbG93IGFsbCBvdGhlciBFY2xpcHNlIHNwZWNpZmljIGFyZ3VtZW50cy4KVGh1cywgdG8gaW5jcmVhc2UgdGhlIGF2YWlsYWJsZSBoZWFwIG1lbW9yeSwgeW91IHdvdWxkIHR5cGljYWxseSB1c2U6PC9wPgo8YmxvY2txdW90ZT4KICA8cD48Y29kZT5lY2xpcHNlIC12bWFyZ3MgLVhteCZsdDttZW1vcnkgc2l6ZSZndDs8L2NvZGU+PC9wPgo8L2Jsb2NrcXVvdGU+CjxwPndpdGggdGhlIDxjb2RlPiZsdDttZW1vcnkgc2l6ZSZndDs8L2NvZGU+IHZhbHVlIHNldCB0byBncmVhdGVyIHRoYW4KJnF1b3Q7MjU2TSZxdW90OyAoMjU2IG1lZ2FieXRlcyAtLSB0aGUgZGVmYXVsdCkuIAo8L3A+CjxwPgpXaGVuIHVzaW5nIGEgU3VuIFZNLCB5b3UgbWF5IGFsc28gbmVlZCB0byBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgcGVybWFuZW50CmdlbmVyYXRpb24gbWVtb3J5LiAgVGhlIGRlZmF1bHQgbWF4aW11bSBpcyA2NCBtZWdhYnl0ZXMsIGJ1dCBtb3JlIG1heQpiZSBuZWVkZWQgZGVwZW5kaW5nIG9uIHlvdXIgcGx1Zy1pbiBjb25maWd1cmF0aW9uIGFuZCB1c2UuICBXaGVuIHRoZSBWTSBydW5zCm91dCBvZiBwZXJtYW5lbnQgZ2VuZXJhdGlvbiBtZW1vcnksIGl0IG1heSBjcmFzaCBvciBoYW5nIGR1cmluZyBjbGFzcyBsb2FkaW5nLgpUaGlzIGZhaWx1cmUgaXMgbGVzcyBjb21tb24gd2hlbiB1c2luZyBTdW4gSlJFIHZlcnNpb24gMS41LjBfMDcgb3IgZ3JlYXRlci4KVGhlIG1heGltdW0gcGVybWFuZW50IGdlbmVyYXRpb24gc2l6ZSBpcyBpbmNyZWFzZWQgdXNpbmcgdGhlIC1YWDpNYXhQZXJtU2l6ZT0mbHQ7bWVtb3J5IHNpemUmZ3Q7IGFyZ3VtZW50OjwvcD4KPGJsb2NrcXVvdGU+CiAgPHA+PGNvZGU+ZWNsaXBzZSAtdm1hcmdzIC1YWDpNYXhQZXJtU2l6ZT0mbHQ7bWVtb3J5IHNpemUmZ3Q7PC9jb2RlPjwvcD4KPC9ibG9ja3F1b3RlPgo8cD5UaGlzIGFyZ3VtZW50IG1heSBub3QgYmUgYXZhaWxhYmxlIGZvciBhbGwgVk0gdmVyc2lvbnMgYW5kIHBsYXRmb3JtczsgY29uc3VsdCB5b3VyIFZNIGRvY3VtZW50YXRpb24KZm9yIG1vcmUgZGV0YWlscy4KPC9wPgo8cD4KTm90ZSB0aGF0IHNldHRpbmcgbWVtb3J5IHNpemVzIHRvIGJlIGxhcmdlciB0aGFuIHRoZSBhbW91bnQgb2YgYXZhaWxhYmxlIHBoeXNpY2FsCm1lbW9yeSBvbiB5b3VyIG1hY2hpbmUgd2lsbCBjYXVzZSBKYXZhIHRvICZxdW90O3RocmFzaCZxdW90OyBhcyBpdCBjb3BpZXMgb2JqZWN0cwpiYWNrIGFuZCBmb3J0aCB0byB2aXJ0dWFsIG1lbW9yeSwgd2hpY2ggd2lsbCBzZXZlcmVseSBkZWdyYWRlIHlvdXIgcGVyZm9ybWFuY2UuCjwvcD4KPGgzPlNlbGVjdGluZyBhIHdvcmtzcGFjZTwvaDM+CjxwPldoZW4gdGhlIFdvcmtiZW5jaCBpcyBsYXVuY2hlZCwgdGhlIGZpcnN0IHRoaW5nIHlvdSBzZWUgaXMgYSAKZGlhbG9nIHRoYXQgYWxsb3dzIHlvdSB0byBzZWxlY3Qgd2hlcmUgdGhlIHdvcmtzcGFjZSB3aWxsIGJlIGxvY2F0ZWQuIFRoZQp3b3Jrc3BhY2UgaXMgdGhlIGRpcmVjdG9yeSB3aGVyZSB5b3VyIHdvcmsgd2lsbCBiZSBzdG9yZWQuCklmIHlvdSBkbyBub3Qgc3BlY2lmeSBvdGhlcndpc2UsIEVjbGlwc2UgY3JlYXRlcyB0aGUgd29ya3NwYWNlIGluIHlvdXIKdXNlciBkaXJlY3RvcnkuClRoaXMgd29ya3NwYWNlIGRpcmVjdG9yeSBpcyB1c2VkIGFzIHRoZSBkZWZhdWx0IGNvbnRlbnQgYXJlYSBmb3IgeW91ciBwcm9qZWN0cwphcyB3ZWxsIGFzIGZvciBob2xkaW5nIGFueSByZXF1aXJlZCBtZXRhZGF0YS4gRm9yIHNoYXJlZCBvciBtdWx0aS13b3Jrc3BhY2UKaW5zdGFsbHMgeW91IG11c3QgZXhwbGljaXRseSBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBmb3IgeW91ciB3b3Jrc3BhY2UgdXNpbmcgdGhlCmRpYWxvZyAob3IgdmlhIHRoZSAmcXVvdDs8Y29kZT4tZGF0YTwvY29kZT4mcXVvdDsgY29tbWFuZCBsaW5lIGFyZ3VtZW50KS48L3A+CjxoMz5TcGVjaWZ5aW5nIHRoZSBKYXZhIHZpcnR1YWwgbWFjaGluZTwvaDM+CjxwPkhlcmUgaXMgYSB0eXBpY2FsIEVjbGlwc2UgY29tbWFuZCBsaW5lOiZuYnNwOzwvcD4KCjxibG9ja3F1b3RlPgogIDxwPjxjb2RlPmVjbGlwc2UgLXZtIGM6XGpkazEuNC4yXGpyZVxiaW5camF2YXc8L2NvZGU+PC9wPgo8L2Jsb2NrcXVvdGU+CjxwPjxpPlRpcDo8L2k+IEl0J3MgZ2VuZXJhbGx5IGEgZ29vZCBpZGVhIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSB3aGljaCBKYXZhIFZNIHRvCnVzZSB3aGVuIHJ1bm5pbmcgRWNsaXBzZS4gVGhpcyBpcyBhY2hpZXZlZCB3aXRoIHRoZSAmcXVvdDs8Y29kZT4tdm08L2NvZGU+JnF1b3Q7CmNvbW1hbmQgbGluZSBhcmd1bWVudCBhcyBpbGx1c3RyYXRlZCBhYm92ZS4gSWYgeW91IGRvbid0IHVzZSAmcXVvdDs8Y29kZT4tdm08L2NvZGU+JnF1b3Q7LApFY2xpcHNlIHdpbGwgbG9vayBvbiB0aGUgTy9TIHBhdGguIFdoZW4geW91IGluc3RhbGwgb3RoZXIgSmF2YS1iYXNlZCBwcm9kdWN0cywKdGhleSBtYXkgY2hhbmdlIHlvdXIgcGF0aCBhbmQgY291bGQgcmVzdWx0IGluIGEgZGlmZmVyZW50IEphdmEgVk0gYmVpbmcgdXNlZAp3aGVuIHlvdSBuZXh0IGxhdW5jaCBFY2xpcHNlLjwvcD4KPHA+VG8gY3JlYXRlIGEgV2luZG93cyBzaG9ydGN1dCB0byBhbiBpbnN0YWxsZWQgRWNsaXBzZTo8L3A+CjxvbD4KICA8bGk+TmF2aWdhdGUgdG8gPGNvZGU+ZWNsaXBzZS5leGU8L2NvZGU+IGluIFdpbmRvd3MgRXhwbG9yZXIgYW5kIHVzZSBDcmVhdGUKICAgIFNob3J0Y3V0IG9uIHRoZSBjb250ZW50IG1lbnUuPC9saT4KICA8bGk+U2VsZWN0IHRoZSBzaG9ydGN1dCBhbmQgZWRpdCBpdHMgUHJvcGVydGllcy4gSW4gdGhlIFRhcmdldDogZmllbGQgYXBwZW5kCiAgICB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy48L2xpPgo8L29sPgo8cD5PcGVuaW5nIHRoaXMgc2hvcnRjdXQgbGF1bmNoZXMgRWNsaXBzZS4gKFlvdSBjYW4gZHJhZyB0aGUgc2hvcnRjdXQgdG8gdGhlIApXaW5kb3dzIERlc2t0b3AgaWYgeW91IHdhbnQgdG8ga2VlcCBpdCBpbiBlYXN5IHJlYWNoLik8L3A+Cgo8aDM+PGEgbmFtZT0ibWFjb3N4Ij5NYWMgT1MgWDwvYT48L2gzPgo8cD5PbiBNYWMgT1MgWCwgeW91IHN0YXJ0IEVjbGlwc2UgYnkgZG91YmxlIGNsaWNraW5nIHRoZSBFY2xpcHNlIGFwcGxpY2F0aW9uLiBJZiB5b3UgbmVlZCB0byAKcGFzcyBhcmd1bWVudHMgdG8gRWNsaXBzZSwgeW91J2xsIGhhdmUgdG8gZWRpdCB0aGUgPGNvZGU+ZWNsaXBzZS5pbmk8L2NvZGU+IGZpbGUKaW5zaWRlIHRoZSBFY2xpcHNlIGFwcGxpY2F0aW9uIGJ1bmRsZTogc2VsZWN0IHRoZSBFY2xpcHNlIGFwcGxpY2F0aW9uIGJ1bmRsZSBpY29uIHdoaWxlIGhvbGRpbmcgZG93biB0aGUgQ29udHJvbCBLZXkuClRoaXMgd2lsbCBwcmVzZW50IHlvdSB3aXRoIGEgcG9wdXAgbWVudS4gU2VsZWN0ICZxdW90O1Nob3cgUGFja2FnZSBDb250ZW50cyZxdW90OyBpbiB0aGUgcG9wdXAgbWVudS4KTG9jYXRlIDxjb2RlPmVjbGlwc2UuaW5pPC9jb2RlPiBmaWxlIGluIHRoZSA8Y29kZT5Db250ZW50cy9NYWNPUzwvY29kZT4gc3ViLWZvbGRlciBhbmQgb3BlbiBpdCB3aXRoIHlvdXIgZmF2b3JpdGUgdGV4dCBlZGl0b3IgdG8gZWRpdCB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMuCjwvcD4KCjxwPgpPbiBNYWNPUyBYIHlvdSBjYW4gb25seSBsYXVuY2ggYSBVSSBwcm9ncmFtIG1vcmUgdGhlbiBvbmNlIGlmIHlvdSBoYXZlIHNlcGFyYXRlCmNvcGllcyBvZiB0aGUgcHJvZ3JhbSBvbiBkaXNrLiBUaGUgcmVhc29uIGZvciB0aGlzIGJlaGF2aW9yIGlzIHRoYXQgZXZlcnkgVUkKYXBwbGljYXRpb24gb24gTWFjIGNhbiBvcGVuIG11bHRpcGxlIGRvY3VtZW50cywgc28gdHlwaWNhbGx5IHRoZXJlIGlzIG5vIG5lZWQKdG8gb3BlbiBhIHByb2dyYW0gdHdpY2UuIFNpbmNlIEVjbGlwc2UgY2Fubm90IG9wZW4gbW9yZSB0aGFuIG9uZSB3b3Jrc3BhY2UsIHRoaXMgbWVhbnMgeW91IGhhdmUgdG8gbWFrZQphIGNvcHkgb2YgdGhlIEVjbGlwc2UgaW5zdGFsbCBpZiB5b3Ugd2FudCB0byBvcGVuIG1vcmUgdGhlbiBvbmUgd29ya3NwYWNlIGF0CnRoZSBzYW1lIHRpbWUgKGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTM5MzE5Ij4xMzkzMTk8L2E+KS4KPC9wPgoKPHA+SWYgeW91IG5lZWQgdG8gbGF1bmNoIEVjbGlwc2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCB5b3UgY2FuIHVzZSB0aGUgc3ltYm9saWMgbGluayAmcXVvdDtlY2xpcHNlJnF1b3Q7IGluIHRoZQp0b3AtbGV2ZWwgZWNsaXBzZSBmb2xkZXIuIEl0IHJlZmVycyB0byB0aGUgZWNsaXBzZSBleGVjdXRhYmxlIGluc2lkZSB0aGUgYXBwbGljYXRpb24gYnVuZGxlIGFuZCB0YWtlcwp0aGUgc2FtZSBhcmd1bWVudHMgYXMgJnF1b3Q7ZWNsaXBzZS5leGUmcXVvdDsgb24gb3RoZXIgcGxhdGZvcm1zLiAKPC9wPgo8cD5PbiBNYWMgT1MgWCAxMC40IGFuZCBsYXRlciwgeW91IG1heSBub3RpY2UgYSBzbG93IGRvd24gd2hlbiB3b3JraW5nIHdpdGggc2lnbmlmaWNhbnQKbnVtYmVycyBvZiByZXNvdXJjZXMgaWYgeW91IGFsbG93IFNwb3RsaWdodCB0byBpbmRleCB5b3VyIHdvcmtzcGFjZS4gVG8gcHJldmVudCB0aGlzLCBzdGFydApTeXN0ZW0gUHJlZmVyZW5jZXMsIHNlbGVjdCB0aGUgU3BvdGxpZ2h0IGljb24sIHRoZW4gdGhlIFByaXZhY3kgdGFiLCB0aGVuIGNsaWNrIHRoZSBBZGQgYnV0dG9uCigmcXVvdDsrJnF1b3Q7KSBhbmQgZmluZCB5b3VyIHdvcmtzcGFjZSBkaXJlY3RvcnkgaW4gdGhlIGRpYWxvZyB0aGF0IGFwcGVhcnMuPC9wPgo8aDM+PGEgbmFtZT0iU2hhcmVkSW5zdGFsbCI+U2hhcmVkIEluc3RhbGw8L2E+PC9oMz4KPHA+VGhlIHN0YXJ0dXAgc3BlZWQgb2YgYSBzaGFyZWQgaW5zdGFsbCBjYW4gYmUgaW1wcm92ZWQgaWYgcHJvcGVyIGNhY2hlIGluZm9ybWF0aW9uIGlzIHN0b3JlZCBpbiB0aGUgc2hhcmVkIAppbnN0YWxsIGFyZWEuIFRvIGFjaGlldmUgdGhpcywgYWZ0ZXIgdW56aXBwaW5nIEVjbGlwc2UgZGlzdHJpYnV0aW9uLCBydW4gRWNsaXBzZSBvbmNlIHdpdGggdGhlICZxdW90Oy1pbml0aWFsaXplJnF1b3Q7IApvcHRpb24gZnJvbSBhbiBhY2NvdW50IHRoYXQgaGFzIGEgd3JpdGUgYWNjZXNzIHRvIHRoZSBpbnN0YWxsIGRpcmVjdG9yeS48L3A+CjxoMj41LiA8YSBuYW1lPSJVcGdyYWRpbmciPjwvYT5VcGdyYWRpbmcgV29ya3NwYWNlIGZyb20gYSBQcmV2aW91cyBSZWxlYXNlPC9oMj4KCjxoMz5Vc2VycyB3aG8gZG9uJ3QgdXNlICZxdW90Oy1kYXRhJnF1b3Q7PC9oMz4KPHA+SWYgeW91IHdlcmVuJ3QgcHJldmlvdXNseSB1c2luZyAmcXVvdDstZGF0YSZxdW90OyB0byBzcGVjaWZ5IHlvdXIgd29ya3NwYWNlLApmb2xsb3cgdGhlc2Ugc3RlcHMgdG8gdXBncmFkZTo8L3A+Cgo8b2w+CiAgPGxpPkZpbmQgdGhlIHdvcmtzcGFjZSBkaXJlY3RvcnkgdXNlZCBieSB5b3VyIG9sZCB2ZXJzaW9uIG9mIEVjbGlwc2UuCiAgICBUeXBpY2FsbHkgdGhpcyBpcyBsb2NhdGVkIGluc2lkZSB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIEVjbGlwc2Ugd2FzCiAgICBpbnN0YWxsZWQgaW4gYSBzdWItZGlyZWN0b3J5IGNhbGxlZCAmcXVvdDs8Y29kZT53b3Jrc3BhY2U8L2NvZGU+JnF1b3Q7LiBJZgogICAgeW91IGFyZSB1c2luZyBhIHNob3J0Y3V0IG9yIHNjcmlwdCB0byBsYXVuY2ggRWNsaXBzZSwgdGhlbiBpdCB3aWxsIGJlIHVuZGVyCiAgICB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBvZiB0aGF0IHNob3J0Y3V0IG9yIHNjcmlwdCBpbiBhIHN1Yi1kaXJlY3RvcnkKICAgIGNhbGxlZCAmcXVvdDt3b3Jrc3BhY2UmcXVvdDsuIEZvciBXaW5kb3dzIHVzZXJzLCB0aGlzIGlzIHNwZWNpZmllZCBieSB0aGUKICAgICZxdW90O1N0YXJ0IGluOiZxdW90OyBhcmd1bWVudCBpbiB5b3VyIHNob3J0Y3V0IHByb3BlcnRpZXMuPC9saT4KICA8bGk+Q29weSB0aGlzIHdvcmtzcGFjZSBkaXJlY3RvcnkgdG8gYSBuZXcsIGVtcHR5IGxvY2F0aW9uIG91dHNpZGUgb2YgYW55CiAgICBFY2xpcHNlIGluc3RhbGwgZGlyZWN0b3J5LjwvbGk+CiAgPGxpPkluc3RhbGwgdGhlIG5ldyB2ZXJzaW9uIG9mIEVjbGlwc2UgaW4gYSBuZXcgbG9jYXRpb24sIHNlcGFyYXRlIGZyb20gYW55CiAgICBvbGQgdmVyc2lvbiBvZiBFY2xpcHNlLjwvbGk+CgogIDxsaT5JZiB5b3UgaGFkIGluc3RhbGxlZCBhZGRpdGlvbmFsIGZlYXR1cmVzIGFuZCBwbHVnLWlucyBpbnRvIHlvdXIgb2xkCiAgICBFY2xpcHNlLCB5b3Ugc2hvdWxkIHJlLWluc3RhbGwgdGhlbSBpbiB0aGUgbmV3IEVjbGlwc2UuPC9saT4KICA8bGk+U3RhcnQgdGhpcyBuZXcgdmVyc2lvbiBvZiBFY2xpcHNlIGFuZCBzZWxlY3QKICAgIHRoaXMgbG9jYXRpb24gdXNpbmcgdGhlIHdvcmtzcGFjZSBjaG9vc2VyIGRpYWxvZyBhdCBzdGFydHVwIChvciB1c2UgJnF1b3Q7PGNvZGU+LWRhdGE8L2NvZGU+JnF1b3Q7CiAgICBjb21tYW5kIGxpbmUgYXJndW1lbnQgdG8gcHJlLXNlbGVjdCB0aGUgd29ya3NwYWNlIGxvY2F0aW9uKS48L2xpPgo8L29sPgo8aDM+VXNlcnMgd2hvIGRvIHVzZSAmcXVvdDstZGF0YSZxdW90OzwvaDM+CjxwPklmIHlvdSB3ZXJlIHByZXZpb3VzbHkgdXNpbmcgdGhlICZxdW90Ozxjb2RlPi1kYXRhPC9jb2RlPiZxdW90OyBhcmd1bWVudCB0bwpzdGFydCBFY2xpcHNlLCB5b3VyIHVwZ3JhZGUgcGF0aCBpcyBtdWNoIGVhc2llcjo8L3A+Cgo8b2w+CiAgPGxpPk9wdGlvbmFsbHkgY29weSB5b3VyIHdvcmtzcGFjZSBkaXJlY3RvcnkgdG8gYSBuZXcsIGVtcHR5IGxvY2F0aW9uIG91dHNpZGUgb2YgYW55CiAgICBFY2xpcHNlIGluc3RhbGwgZGlyZWN0b3J5IGFzIGEgYmFja3VwLjwvbGk+CiAgPGxpPkluc3RhbGwgdGhlIG5ldyB2ZXJzaW9uIG9mIEVjbGlwc2UgaW4gYSBuZXcgbG9jYXRpb24sIHNlcGFyYXRlIGZyb20gYW55CiAgICBvbGQgdmVyc2lvbnMgb2YgRWNsaXBzZS48L2xpPgogIDxsaT5JZiB5b3UgaGFkIGluc3RhbGxlZCBhZGRpdGlvbmFsIGZlYXR1cmVzIGFuZCBwbHVnLWlucyBpbnRvIHlvdXIgb2xkCiAgICBFY2xpcHNlLCB5b3Ugc2hvdWxkIHJlLWluc3RhbGwgdGhlbSBpbiB0aGUgbmV3IEVjbGlwc2UuPC9saT4KICA8bGk+U3RhcnQgdGhpcyBuZXcgdmVyc2lvbiBvZiBFY2xpcHNlIGFuZCBzZWxlY3QgdGhpcyBsb2NhdGlvbiB1c2luZyB0aGUgd29ya3NwYWNlIGNob29zZXIgZGlhbG9nIGF0CiAgICBzdGFydHVwIChvciB1c2UgJnF1b3Q7PGNvZGU+LWRhdGE8L2NvZGU+JnF1b3Q7CiAgICBjb21tYW5kIGxpbmUgYXJndW1lbnQgdG8gcHJlLXNlbGVjdCB0aGUgd29ya3NwYWNlIGxvY2F0aW9uKS48L2xpPgo8L29sPgo8cD48aT5Ob3RlOjwvaT4gQ29weWluZyB5b3VyIHdvcmtzcGFjZSBpcyByZWNvbW1lbmRlZCBiZWNhdXNlLAphZnRlciB5b3UndmUgdXBncmFkZWQgeW91ciB3b3Jrc3BhY2UsIHlvdSB3b24ndCBiZSBhYmxlIHRvIHVzZSBpdAphZ2FpbiB3aXRoIGFuIG9sZGVyIHZlcnNpb24gb2YgRWNsaXBzZS4gSWYgeW91IGV2ZXIgd2FudCB0byBnbyAmcXVvdDtiYWNrIGluCnRpbWUmcXVvdDsgdG8gYW4gZWFybGllciByZWxlYXNlLCB5b3Ugd2lsbCBuZWVkIHRoYXQgYmFja3VwLjwvcD4KCgo8aDI+Ni4gPGEgbmFtZT0iSW50ZXJvcGVyYWJpbGl0eSB3aXRoIFByZXZpb3VzIFJlbGVhc2VzIj5JbnRlcm9wZXJhYmlsaXR5IHdpdGgKUHJldmlvdXMgUmVsZWFzZXM8L2E+PC9oMj4KPGgzPjYuMSBJbnRlcm9wZXJhYmlsaXR5IG9mIFJlbGVhc2UgMy40IHdpdGggcHJldmlvdXMgcmVsZWFzZXM8L2gzPgo8aDQ+U2hhcmluZyBwcm9qZWN0cyBiZXR3ZWVuIGhldGVyb2dlbmVvdXMgRWNsaXBzZSAzLjQgYW5kIDMuMzwvaDQ+CjxwPlNwZWNpYWwgY2FyZSBpcyByZXF1aXJlZCB3aGVuIGEgcHJvamVjdCBpbiBhIHRlYW0gcmVwb3NpdG9yeSBpcyBiZWluZyBsb2FkZWQKYW5kIG9wZXJhdGVkIG9uIGJ5IGRldmVsb3BlcnMgdXNpbmcgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cyBiYXNlZCBvbiBkaWZmZXJlbnQKZmVhdHVyZSBvciBwbHVnLWluIHZlcnNpb25zLiBUaGUgZ2VuZXJhbCBwcm9ibGVtIGlzIHRoYXQgdGhlIGV4aXN0ZW5jZSwKY29udGVudHMsIGFuZCBpbnRlcnByZXRhdGlvbiBvZiBtZXRhZGF0YSBmaWxlcyBpbiB0aGUgd29ya3NwYWNlcyBtYXkgYmUgc3BlY2lmaWMKdG8gYSBwYXJ0aWN1bGFyIGZlYXR1cmUgb3IgcGx1Zy1pbiB2ZXJzaW9uLCBhbmQgZGlmZmVyIGJldHdlZW4gdmVyc2lvbnMuIFRoZQp3b3Jrc3BhY2UgY29tcGF0aWJpbGl0eSBndWFyYW50ZWVzIG9ubHkgY292ZXIgY2FzZXMgd2hlcmUgYWxsIGRldmVsb3BlcnMgdXBncmFkZQp0aGVpciBFY2xpcHNlIHdvcmtzcGFjZXMgaW4gbG9jayBzdGVwLiBJbiB0aG9zZSBjYXNlcyB0aGVyZSBzaG91bGQgYmUgbm8gcHJvYmxlbQp3aXRoIHNoYXJlZCBtZXRhZGF0YS4gSG93ZXZlciwgd2hlbiBzb21lIGRldmVsb3BlcnMgYXJlIHdvcmtpbmcgaW4gRWNsaXBzZSAzLjQKd2hpbGUgb3RoZXJzIGFyZSB3b3JraW5nIGluIEVjbGlwc2UgMy4zLCB0aGVyZSBhcmUgbm8gc3VjaCBndWFyYW50ZWVzLgpUaGlzIHNlY3Rpb24gcHJvdmlkZXMgYWR2aWNlIGZvciB3aGF0IHRvIGRvIGFuZCBub3QgdG8gZG8uIEl0IGFkZHJlc3NlcyB0aGUKc3BlY2lmaWMgaXNzdWVzIHdpdGggdGhlIEVjbGlwc2UgU0RLLjwvcD4KCjxwPlRoZSB0eXBpY2FsIGZhaWx1cmUgbW9kZSBpcyBub3RpY2VkIGJ5IHRoZSAzLjQgdXNlci4gMy40IG1ldGFkYXRhIGlzIGxvc3QKd2hlbiBhIDMuMyB1c2VyIHNhdmVzIGNoYW5nZXMgYW5kIHRoZW4gY29tbWl0cyB0aGUgdXBkYXRlZCBtZXRhZGF0YSBmaWxlcyB0byB0aGUKcmVwb3NpdG9yeS4gSGVyZSdzIGhvdyB0aGluZ3MgdHlwaWNhbGx5IGdvIGF3cnk6PC9wPgo8dWw+CiAgPGxpPkEgdXNlciB3b3JraW5nIGluIEVjbGlwc2UgMy40IGNyZWF0ZXMgb3IgbW9kaWZpZXMgYSBwcm9qZWN0IGluIGEgd2F5IHRoYXQKICAgIHJlc3VsdHMgaW4gY2hhbmdlcyB0byBhIHNoYXJlZCBtZXRhZGF0YSBmaWxlIHRoYXQgcmVseSBvbiAzLjQtc3BlY2lmaWMKICAgIGluZm9ybWF0aW9uLiBUaGUgdXNlciB0aGVuIGNvbW1pdHMgdGhlIHVwZGF0ZWQgcHJvamVjdCBmaWxlcywgaW5jbHVkaW5nIHRoZQogICAgc2hhcmVkIG1ldGFkYXRhIGZpbGUsIHRvIHRoZSBzaGFyZWQgcmVwb3NpdG9yeS48L2xpPgogIDxsaT5Bbm90aGVyIHVzZXIgd29ya2luZyBpbiBFY2xpcHNlIDMuMyBzaGFyZXMgdGhpcyBwcm9qZWN0IGZyb20gdGhlIHNhbWUKICAgIHJlcG9zaXRvcnkuIFRoZSAzLjQtc3BlY2lmaWMgaW5mb3JtYXRpb24gaW4gdGhlIHNoYXJlZCBtZXRhZGF0YSBmaWxlIGlzIG5vdAogICAgdW5kZXJzdG9vZCBieSBFY2xpcHNlIDMuMywgYW5kIGlzIGdlbmVyYWxseSBkaXNjYXJkZWQgb3IgaWdub3JlZCB3aXRob3V0CiAgICB3YXJuaW5nLiBUaGUgdXNlciBtb2RpZmllcyB0aGUgcHJvamVjdCBpbiBhIHdheSB0aGF0IHJlc3VsdHMgaW4gY2hhbmdlcyB0bwogICAgdGhlIHNoYXJlZCBtZXRhZGF0YSBmaWxlLCBjYXVzaW5nIHRoZSBzaGFyZWQgbWV0YWRhdGEgZmlsZSB0byBiZSByZXdyaXR0ZW4KICAgIHdpdGhvdXQgYW55IG9mIHRoZSAzLjQtc3BlY2lmaWMgaW5mb3JtYXRpb24uIFRoZSB1c2VyIGNvbW1pdHMgdGhlIHVwZGF0ZWQKICAgIHByb2plY3QgZmlsZXMsIGluY2x1ZGluZyB0aGUgc2hhcmVkIG1ldGFkYXRhIGZpbGUsIHRvIHRoZSBzaGFyZWQgcmVwb3NpdG9yeS4KICAgIFRoZSB1c2VyIGlzIGdlbmVyYWxseSB1bmF3YXJlIHRoYXQgc2hhcmVkIGluZm9ybWF0aW9uIGhhcyBqdXN0IGJlZW4gbG9zdCBhcwogICAgYSByZXN1bHQgb2YgdGhlaXIgYWN0aW9ucy48L2xpPgogIDxsaT5BIHVzZXIgd29ya2luZyBpbiBFY2xpcHNlIDMuNCBwaWNrcyB1cCB0aGUgY2hhbmdlcyB0byBhIHByb2plY3QgZnJvbSB0aGUKICAgIHNoYXJlZCByZXBvc2l0b3J5LCBpbmNsdWRpbmcgdGhlIHVwZGF0ZWQgc2hhcmVkIG1ldGFkYXRhIGZpbGUuIFRoZSB1c2VyIG1heQogICAgYmUgdW5hd2FyZSB0aGF0IHRoZXkgaGF2ZSBqdXN0IHRha2VuIGEgcmV0cm9ncmFkZSBzdGVwIHVudGlsIGxhdGVyIHdoZW4KICAgIHRoaW5ncyBzdGFydCB0byBtYWxmdW5jdGlvbi48L2xpPgo8L3VsPgo8cD5IZXJlIGFyZSBzb21lIHRoaW5ncyB0byB3YXRjaCBvdXQgZm9yIHdoZW4gc2hhcmluZyBwcm9qZWN0cyBiZXR3ZWVuCkVjbGlwc2UgMy40IGFuZCBFY2xpcHNlIDMuMSBvciBlYXJsaWVyOjwvcD4KPHVsPgogIDxsaT48Yj5MaW5rZWQgcmVzb3VyY2VzIGluIHRoZSAucHJvamVjdCBmaWxlPC9iPjxicj4KICBFY2xpcHNlIDMuNCBzdXBwb3J0cyBjcmVhdGluZyBsaW5rZWQgcmVzb3VyY2VzIGF0IGFyYml0cmFyeSBkZXB0aCB3aXRoaW4gYSBwcm9qZWN0LAogIGFuZCBzdXBwb3J0cyBjcmVhdGluZyBsaW5rZWQgcmVzb3VyY2VzIHJlZmVycmluZyB0byBvdGhlciBmaWxlIHN5c3RlbXMuIE5laXRoZXIgb2YKICB0aGVzZSBzY2VuYXJpb3MgYXJlIHN1cHBvcnRlZCBpbiBFY2xpcHNlIDMuMSBvciBlYXJsaWVyLiAgSWYgc3VjaCBsaW5rZWQgcmVzb3VyY2VzCiAgYXJlIGNyZWF0ZWQgaW4gMy40LCBhbmQgdGhlIHByb2plY3QgaXMgc3Vic2VxdWVudGx5IGxvYWRlZCBpbnRvIGFuIEVjbGlwc2UgMy4xCiAgb3IgZWFybGllciB3b3Jrc3BhY2UsIHRoZXNlIGxpbmtzIHdpbGwgbm90IGJlIHJlY29nbml6ZWQuICBSZWNvbW1lbmRhdGlvbjoKICBhdm9pZCBjcmVhdGluZyBsaW5rcyBhdCBhcmJpdHJhcnkgZGVwdGggb3IgdG8gb3RoZXIgZmlsZSBzeXN0ZW1zIHdoZXJlIHByb2plY3QKICBjb21wYXRpYmlsaXR5IHdpdGggRWNsaXBzZSAzLjEgb3IgZWFybGllciBpcyByZXF1aXJlZC48L2xpPgo8L3VsPgo8aDQ+VXNpbmcgRWNsaXBzZSAzLjQgdG8gZGV2ZWxvcCBwbHVnLWlucyB0aGF0IHdvcmsgaW4gRWNsaXBzZSAzLjM8L2g0Pgo8cD5JdCBpcyBhbHNvIHBvc3NpYmxlIChhbmQgcmVhc29uYWJsZSkgdG8gdXNlIEVjbGlwc2UgMy40IHRvIGRldmVsb3AgYSBwbHVnLWluIAogIGludGVuZGVkIHRvIHdvcmsgaW4gRWNsaXBzZSAzLjMgb3IgZWFybGllci4gVXNlIHRoZSA8Yj5QbHVnLWluIERldmVsb3BtZW50ICZndDsgCiAgVGFyZ2V0IFBsYXRmb3JtIDwvYj5wcmVmZXJlbmNlIHBhZ2UgdG8gbG9jYXRlIG5vbi13b3Jrc3BhY2UgcGx1Zy1pbnMgaW4gYW4gRWNsaXBzZSAKICAzLjMgaW5zdGFsbC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGNvZGUgZm9yIHlvdXIgcGx1Zy1pbiBpcyBiZWluZyBjb21waWxlZCBhbmQgCiAgdGVzdGVkIGFnYWluc3QgRWNsaXBzZSAzLjMgQVBJcywgZXh0ZW5zaW9uIHBvaW50cywgYW5kIHBsdWctaW5zLiAoVGhlIGFib3ZlIAogIGxpc3Qgb2YgY29uY2VybnMgZG8gbm90IGFwcGx5IHNpbmNlIHRoZXkgYWZmZWN0IHRoZSBsYXlvdXQgYW5kIGludGVycHJldGF0aW9uIAogIG9mIGZpbGVzIGluIHRoZSBwbHVnLWluIDxpPnByb2plY3Q8L2k+IGJ1dCBub25lIGFmZmVjdCB0aGUgYWN0dWFsIGRlcGxveWVkIGZvcm0gCiAgb2YgdGhlIHBsdWctaW4uKTwvcD4KCjxoMj43LiA8YSBuYW1lPSJEZWZlY3RzRml4ZWQiPjwvYT5EZWZlY3RzIEZpeGVkIGluIE1haW50ZW5hbmNlIFJlbGVhc2VzPC9oMj4KCjxoMz43LjEgRGVmZWN0cyBmaXhlZCBpbiByZWxlYXNlIDMuNC4yIHNpbmNlIDMuNC4wPC9oMz4KPHA+UmVsZWFzZSAzLjQuMiBpcyBhIG1haW50ZW5hbmNlIHJlbGVhc2UgdG8gZml4IHNlcmlvdXMgZGVmZWN0cyBwcmVzZW50IGluCnJlbGVhc2UgMy40LjEgVGhlc2UgY2hhbmdlcyBvbmx5IGFmZmVjdCBzb21lIHBsdWctaW5zIGFuZApmZWF0dXJlcy48L3A+Cgo8cD5NYWludGVuYW5jZSByZWxlYXNlIDMuNC4yIGNvbnRhaW5zIGZpeGVzIGZvciB0aGUgZm9sbG93aW5nIGRlZmVjdHMgYW5kIG90aGVyczo8L3A+CjxwPjwvcD4KCgoKPHRhYmxlIGNsYXNzPSJiel9idWdsaXN0IiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjQiIHdpZHRoPSIxMDAlIj4KICAgIDxjb2xncm91cD4KICAgICAgPGNvbCBjbGFzcz0iYnpfaWRfY29sdW1uIj4KICAgICAgPGNvbCBjbGFzcz0iYnpfc2hvcnRfZGVzY19jb2x1bW4iPgogICAgPC9jb2xncm91cD4KCiAgICA8dHIgYWxpZ249ImxlZnQiPgogICAgICA8dGggY29sc3Bhbj0iMSIgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgICAgIDxhIGhyZWY9ImJ1Z2xpc3QuY2dpP2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtidWdfc3RhdHVzPVJFU09MVkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtidWdfc3RhdHVzPUNMT1NFRCZhbXA7Y2xhc3NpZmljYXRpb249RWNsaXBzZSZhbXA7Y2xhc3NpZmljYXRpb249UlQmYW1wO2ZpZWxkLTEtMC0wPWJ1Z19zdGF0dXMmYW1wO2ZpZWxkLTEtMS0wPWNsYXNzaWZpY2F0aW9uJmFtcDtmaWVsZC0xLTItMD1wcm9kdWN0JmFtcDtmaWVsZC0xLTMtMD1yZXNvbHV0aW9uJmFtcDtmaWVsZC0xLTQtMD10YXJnZXRfbWlsZXN0b25lJmFtcDtmaWVsZDAtMC0wPW5vb3AmYW1wO2tleXdvcmRzX3R5cGU9YWxsd29yZHMmYW1wO2xvbmdfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtwcm9kdWN0PUVxdWlub3gmYW1wO3Byb2R1Y3Q9SkRUJmFtcDtwcm9kdWN0PVBERSZhbXA7cHJvZHVjdD1QbGF0Zm9ybSZhbXA7cXVlcnlfZm9ybWF0PWFkdmFuY2VkJmFtcDtyZW1hY3Rpb249JmFtcDtyZXNvbHV0aW9uPUZJWEVEJmFtcDtzaG9ydF9kZXNjPSZhbXA7c2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtzdGF0dXNfd2hpdGVib2FyZD0mYW1wO3N0YXR1c193aGl0ZWJvYXJkX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO3RhcmdldF9taWxlc3RvbmU9My40LjImYW1wO3R5cGUtMS0wLTA9YW55ZXhhY3QmYW1wO3R5cGUtMS0xLTA9YW55ZXhhY3QmYW1wO3R5cGUtMS0yLTA9YW55ZXhhY3QmYW1wO3R5cGUtMS0zLTA9YW55ZXhhY3QmYW1wO3R5cGUtMS00LTA9YW55ZXhhY3QmYW1wO3R5cGUwLTAtMD1ub29wJmFtcDt2YWx1ZS0xLTAtMD1SRVNPTFZFRCUyQ1ZFUklGSUVEJTJDQ0xPU0VEJmFtcDt2YWx1ZS0xLTEtMD1FY2xpcHNlJTJDUlQmYW1wO3ZhbHVlLTEtMi0wPUVxdWlub3glMkNKRFQlMkNQREUlMkNQbGF0Zm9ybSZhbXA7dmFsdWUtMS0zLTA9RklYRUQmYW1wO3ZhbHVlLTEtNC0wPTMuNC4yJmFtcDt2YWx1ZTAtMC0wPSU3QyZhbXA7b3JkZXI9YnVncy5idWdfaWQmYW1wO3F1ZXJ5X2Jhc2VkX29uPSI+SUQ8L2E+CiAgICAgIDwvdGg+Cgo8dGggY29sc3Bhbj0iMSI+CiAgICAgICAgCiAgICAgIDxhIGhyZWY9ImJ1Z2xpc3QuY2dpP2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtidWdfc3RhdHVzPVJFU09MVkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtidWdfc3RhdHVzPUNMT1NFRCZhbXA7Y2xhc3NpZmljYXRpb249RWNsaXBzZSZhbXA7Y2xhc3NpZmljYXRpb249UlQmYW1wO2ZpZWxkLTEtMC0wPWJ1Z19zdGF0dXMmYW1wO2ZpZWxkLTEtMS0wPWNsYXNzaWZpY2F0aW9uJmFtcDtmaWVsZC0xLTItMD1wcm9kdWN0JmFtcDtmaWVsZC0xLTMtMD1yZXNvbHV0aW9uJmFtcDtmaWVsZC0xLTQtMD10YXJnZXRfbWlsZXN0b25lJmFtcDtmaWVsZDAtMC0wPW5vb3AmYW1wO2tleXdvcmRzX3R5cGU9YWxsd29yZHMmYW1wO2xvbmdfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtwcm9kdWN0PUVxdWlub3gmYW1wO3Byb2R1Y3Q9SkRUJmFtcDtwcm9kdWN0PVBERSZhbXA7cHJvZHVjdD1QbGF0Zm9ybSZhbXA7cXVlcnlfZm9ybWF0PWFkdmFuY2VkJmFtcDtyZW1hY3Rpb249JmFtcDtyZXNvbHV0aW9uPUZJWEVEJmFtcDtzaG9ydF9kZXNjPSZhbXA7c2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtzdGF0dXNfd2hpdGVib2FyZD0mYW1wO3N0YXR1c193aGl0ZWJvYXJkX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO3RhcmdldF9taWxlc3RvbmU9My40LjImYW1wO3R5cGUtMS0wLTA9YW55ZXhhY3QmYW1wO3R5cGUtMS0xLTA9YW55ZXhhY3QmYW1wO3R5cGUtMS0yLTA9YW55ZXhhY3QmYW1wO3R5cGUtMS0zLTA9YW55ZXhhY3QmYW1wO3R5cGUtMS00LTA9YW55ZXhhY3QmYW1wO3R5cGUwLTAtMD1ub29wJmFtcDt2YWx1ZS0xLTAtMD1SRVNPTFZFRCUyQ1ZFUklGSUVEJTJDQ0xPU0VEJmFtcDt2YWx1ZS0xLTEtMD1FY2xpcHNlJTJDUlQmYW1wO3ZhbHVlLTEtMi0wPUVxdWlub3glMkNKRFQlMkNQREUlMkNQbGF0Zm9ybSZhbXA7dmFsdWUtMS0zLTA9RklYRUQmYW1wO3ZhbHVlLTEtNC0wPTMuNC4yJmFtcDt2YWx1ZTAtMC0wPSU3QyZhbXA7b3JkZXI9YnVncy5zaG9ydF9kZXNjJTJDYnVncy5idWdfaWQmYW1wO3F1ZXJ5X2Jhc2VkX29uPSI+U3VtbWFyeTwvYT4KICA8L3RoPgoKCiAgICA8L3RyPgoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjg0NTUyIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1NTIiPjg0NTUyPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlRoZSBpbWFnZSBvZiBhIGNoZWNrZWQgYWN0aW9uIGluIGEgbWVudSBvZiBhIHB1bGxkb3duIGFjdGlvbiBpcyBub3QgZGlzcGxheWVkCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIxMDYyMjEiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0xMDYyMjEiPjEwNjIyMTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bamFyIGV4cG9ydGVyXSBKYXIgZXhwb3J0ZXIgZ2VuZXJhdGVzIHVubmVjZXNzYXJ5IGR1cGxpY2F0ZSBlbnRyeSBlcnJvcnMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMTIxMjAxIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMjAxIj4xMjEyMDE8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+cG9vciBwZXJmb3JtYW5jZSBiZWhpbmQgcHJveHkvZmlyZXdhbGwKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMTc1MjI2IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTc1MjI2Ij4xNzUyMjY8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W2J1aWxkcGF0aF0gQnVpbGQgcGF0aCBjb250YWlucyBkdXBsaWNhdGUgZW50cnkKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMTg2ODU4IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MTg2ODU4Ij4xODY4NTg8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+SW50ZXJtaXR0ZW50IGZhaWx1cmUgb2Ygb3JnLmVjbGlwc2UuamR0LmNvcmUudGVzdHMubW9kZWwuRXhjbHVzaW9uUGF0dGVybnNUZXN0cyN0ZXN0Q3JlYXRlRXhjbHVkZWRQYWNrYWdlMgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel90cml2aWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjE5NzM5MSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTE5NzM5MSI+MTk3MzkxPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkhlbGxvV29ybGRTV1QgdHV0b3JpYWwgLSBpbmNvcnJlY3QgcmVmZXJlbmNlIHRvIGRvd25sb2FkCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIxNTUzMCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIxNTUzMCI+MjE1NTMwPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkFudCB0YXJnZXRzIG5vIGxvbmdlciBicmluZyB1cCAmcXVvdDtBbnQgQ29uZmlndXJhdGlvbiBTZXR0aW5ncyZxdW90OyBEaWFsb2cgYm94CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyMTc3NjEiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMTc3NjEiPjIxNzc2MTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bVmlld2Vyc10gV2lkZ2V0IGlzIGRpc3Bvc2VkIHdoZW4gRGVjb3JhdG9yTWFuYWdlciB0cmllcyB0byB1cGRhdGUgVmlld2VyIHRoYXQncyBnb25lCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMiAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIyMzg1NyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIyMzg1NyI+MjIzODU3PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltWaWV3ZXJzXSBTaG91bGQgYmUgYWJsZSB0byBzZXQgdGhlIGVuY29kaW5nIG9mIHRleHQgcGFuZSBpbiBjb21wYXJlIGVkaXRvcgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjIzOTU2IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjIzOTU2Ij4yMjM5NTY8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W1VuZG9dIFVuZG9pbmcgYSBwcm9qZWN0IGRlbGV0ZSByZS1hc3NpZ25zIG1hcmtlcnMgZnJvbSB0aGUgZmlsZSB0byB0aGUgcHJvamVjdAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyMjk5OTMiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMjk5OTMiPjIyOTk5MzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bQWN0aXZpdHlNZ210XSBEeW5hbWljYWxseSBjb250cmlidXRlZCBhY3Rpdml0eSBleHRlbnNpb25zIGFyZSBub3QgcmVnaXN0ZXJpbmcKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIzMjQ3OCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzMjQ3OCI+MjMyNDc4PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltidWlsZHBhdGhdIENsYXNzcGF0aCBmYWlsZWQgdG8gYmluZCB0byBpbnN0YWxsZWQgSlJFCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIzMzMwMyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzMzMwMyI+MjMzMzAzPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltDb250cmlidXRpb25zXSBNZW51aXRlbSBoYXMgaW5jb3JyZWN0IGxldHRlciB1bmRlcmxpbmVkCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyMzQ5MTkiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yMzQ5MTkiPjIzNDkxOTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bZXhwcmVzc2lvbnNdIGluc3RhbmNlb2YgbWFwIHNob3VsZCBjb250YWluIGNsZWFudXAgY29kZQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9tYWpvciAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIzNTE2OSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzNTE2OSI+MjM1MTY5PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltyZXN1bHRzXSBNb3N0IG9mIEpEVC9UZXh0IHRlc3RzIGRvIG5vdCBoYXZlIGFsbCByZXN1bHRzIGRpc3BsYXllZCBpbiBncmFwaCBhbmQgZGF0YSBwYWdlcwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjM1OTA2IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjM1OTA2Ij4yMzU5MDY8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+VFZUMzQ6VENUMzA2OiBEQU46IERhdGUgZm9ybWF0IHVuZGVyIHNvZnR3YXJlIHVwZGF0ZSAtIFJldmVydAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9lbmhhbmNlbWVudCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIzNjA3NyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzNjA3NyI+MjM2MDc3PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlt1aV0gRW5hYmxlIHNpdGUgd2hlbiB1c2VyIGF0dGVtcHQgdG8gYWRkIGEgZGlzYWJsZWQgc2l0ZQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjM2MTgwIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTgwIj4yMzYxODA8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+WmlwcGluZyBmaWxlcyB3aXRoIG5vIGVudHJpZXMgbGVhdmVzIGhhbmRsZSBvcGVuCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIzNzEwMiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzNzEwMiI+MjM3MTAyPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltPTEVdIE9sZUNvbnRyb2xTaXRlIHdpdGggRXhjZWwuU2hlZXQgcmVuZGVycyBkZWFjdGl2YXRlZCB2aWV3IGltcHJvcGVybHkKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfZW5oYW5jZW1lbnQgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjM3NzI0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NzI0Ij4yMzc3MjQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+KEFjY2Vzc2liaWxpdHkpIGtleWJvYXJkIHNob3J0Y3V0cyBhcmUgbm90IHJlYWQgd2l0aCBWb2ljZU92ZXIgaW4gbW9zdCBtZW51cwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9tYWpvciAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIzNzc3MiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzNzc3MiI+MjM3NzcyPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltpbXBsZW1lbnRhdGlvbl0gRGVhZGxvY2sgaW4gSkRUIGNhdXNpbmcgVUkgZnJlZXplCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X2NyaXRpY2FsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIzODgzOSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzODgzOSI+MjM4ODM5PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlVuYWJsZSB0byBmaW5kIGFuIEFudCBmaWxlIHRvIHJ1bgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9tYWpvciAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjIzOTI3MyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTIzOTI3MyI+MjM5MjczPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlsxLjVdW2NvbXBpbGVyXSBDbGFzc0Nhc3RFeGNlcHRpb24gaW4gQmluYXJ5VHlwZUJpbmRpbmcuY29udmVydE1lbWJlclZhbHVlKCkgdHJ5aW5nIHRvIGNhc3QgYW4gQXJyYXlCaW5kaW5nIGFzIGEgUmVmZXJlbmNlQmluZGluZwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDIgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjM5NjA3IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NjA3Ij4yMzk2MDc8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W2Zvcm1hdHRlcl0gSW5jb3JyZWN0IHJlbW92YWwgb2YgYXN0ZXJpc2sgKCopIHdpdGhpbiBhIGJsb2NrIGNvbW1lbnQgd2hlbiBmb3JtYXR0aW5nCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQwMDUzIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDUzIj4yNDAwNTM8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+cHJvZHVjdCBleHBvcnQgZnJvbSB0aGUgdWkgZG9lcyBub3QgZ2VuZXJhdGUgYnVuZGxlcy5pbmZvCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDAwNjIiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDAwNjIiPjI0MDA2MjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5SZWZvcm1hdC9zaW1wbGlmeSByZXNvbHZlciBzdGF0dXMgbWVzc2FnZXMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQwMjU0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjU0Ij4yNDAyNTQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+Q2F0ZWdvcnkgZ2VuZXJhdGlvbiBpcyBub3QgZG9uZSB3aGVuIGJ1aWxkaW5nIGFuIHVwZGF0ZSBzaXRlCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDExODUiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDExODUiPjI0MTE4NTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5sb3RzIG9mIGxvZyBtZXNzYWdlcyB0aGF0IGxvb2sgbGlrZSBwcm9ibGVtcywgYnV0IHdoaWNoIGFyZSBub3QKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQxNjYzIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQxNjYzIj4yNDE2NjM8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W3VzZXIgYWRtaW5dIEluY29ycmVjdCBQYXNzd29yZCBTYXZlL0xvYWQKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0MTgyMSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0MTgyMSI+MjQxODIxPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltjb21waWxlcl0gTXVsdGlwbGUgaW50ZXJmYWNlcyBhbmQgaW5jb21wYXRpYmxlIHJldHVybiB0eXBlcwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDI0NDgiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDI0NDgiPjI0MjQ0ODwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bMS41XVtjb21waWxlcl0gU3VuJ3MgamF2YWMgY29tcGlsZXMgdGhlIGZvbGxvd2luZyBidXQgamR0IGRvZXMgbm90CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDI1MTYiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDI1MTYiPjI0MjUxNjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5FeHRlbnNpb24tcG9pbnQgc2NoZW1hcyBjb21wYXRpYmlsaXR5IGJldHdlZW4gMy4zIGFuZCAzLjQKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQzMTAxIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQzMTAxIj4yNDMxMDE8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W2V4dHJhY3QgbG9jYWxdIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpbiBFeHRyYWN0VGVtcFJlZmFjdG9yaW5nCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDM2OTIiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDM2OTIiPjI0MzY5MjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bYnVpbGRwYXRoXSBDYW5ub3Qgc2V0IEF0dGFjaGVkIFNvdXJjZSBmcm9tIENsYXNzIEZpbGUgRWRpdG9yCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0MzcxMiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0MzcxMiI+MjQzNzEyPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltwcmVmZXJlbmNlc10gSW5jb25zaXN0ZW50IHNldHRpbmcgb2YgSmF2YSBDb21waWxlciBjb21wbGlhbmNlIGxldmVsIGluIHByZWZlcmVuY2VzLgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQzODIwIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQzODIwIj4yNDM4MjA8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+WzEuNV1bY29tcGlsZXJdIE1ldGhvZCBoYXMgc2FtZSBlcmFzdXJlIGFzIGFuIGludGVyZmFjZSBtZXRob2QgYnV0IGlzIG5vdCBjb25zaWRlcmVkIHRvIGltcGxlbWVudCBpdAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDQxNjQiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDQxNjQiPjI0NDE2NDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bMS41XVtjb21waWxlcl0gTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBlcnJvciB3aGVuIHJlZmVyZW5jaW5nIGEgZ2VuZXJpYyBmaWVsZCB3aXRoIGVycm9yCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMiAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDQ0MjUiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDQ0MjUiPjI0NDQyNTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5Vc2luZyBtaXhlZCB0YWdzIGNhdXNlcyBzeW5jaHJvbml6YXRpb24gZmFpbHVyZQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDQ0ODMiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDQ0ODMiPjI0NDQ4MzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bcmVhZG1lXSBQcm9ibGVtcyB3aXRoIGZlYXR1cmUgcGF0Y2hlcyBhbmQgb2xkIHN0eWxlIFVwZGF0ZSBTaXRlcwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ0NjY3IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ0NjY3Ij4yNDQ2Njc8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W2NvbnRlbnQgYXNzaXN0XSBjb2RlIGFzc2lzdCBvY2Nhc2lvbmFsbHkgZmFpbHMgd2l0aCBub24tRW5nbGlzaCBsb2NhbGUKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ1MjI3IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ1MjI3Ij4yNDUyMjc8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+UERFIEFQSXMgYW5kIEV4dGVuc2lvbiBQb2ludCBkZXNjcmlwdGlvbnMgc2hvdWxkIGJlIGluIFRPQwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ1MzE0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ1MzE0Ij4yNDUzMTQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+UG9wdWxhdGluZyB2YXJpYWJsZXMgdmlldyB3aXRoIGxvZ2ljYWwgc3RydWN0dXJlcyBpcyByZWFsbHkgc2xvdwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDU0MzUiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDU0MzUiPjI0NTQzNTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bMS41XVtjb21waWxlcl0gJnF1b3Q7VmFsdWUgZm9yIGFubm90YXRpb24gYXR0cmlidXRlIG11c3QgYmUgYSBjb25zdGFudCBleHByZXNzaW9uJnF1b3Q7IGVycm9yIG9uIHZhbGlkIGNvbnN0YW50IGV4cHJlc3Npb24KICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0NTU3NiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0NTU3NiI+MjQ1NTc2PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltidWlsZHBhdGhdIE5vIGVycm9yIG1lc3NhZ2UgZm9yIHVwZGF0aW5nIHJlYWQtb25seSAuY2xhc3NwYXRoIGZpbGUKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ1NjY3IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ1NjY3Ij4yNDU2Njc8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+SG9yaXpvbnRhbCBTYXNoIGRvZXMgbm90IHNob3cgcmVzaXplIGN1cnNvcgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ1Njg4IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ1Njg4Ij4yNDU2ODg8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W21pc2NdIE1hbGZvcm1lZFRyZWVFeGNlcHRpb24gb2NjdXJpbmcgd2hpbGUgZm9ybWF0dGluZyBtYXkgbm90IGJlIHN1cmZhY2VkIHRvIHVzZXIgaW4gYW4gZXJyb3IgZGlhbG9nCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ1NzAwIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ1NzAwIj4yNDU3MDA8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+Q2xhc3NDYXN0RXhjZXB0aW9uIGluIG9yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy5ldmFsLmFzdC5lbmdpbmUuU291cmNlQmFzZWRTb3VyY2VHZW5lcmF0b3IuZW5kVmlzaXQgd2hpbGUgZGVidWdnaW5nCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDYwMjAiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDYwMjAiPjI0NjAyMDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bY29tcGlsZXJdIEJhdGNoQ29tcGlsZXJUZXN0I3Rlc3QwNjMgZmFpbHMgaW4gdGhlIElERQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ibG9ja2VyICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ2MDU3IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2MDU3Ij4yNDYwNTc8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+U1dUX0FXVCBhcHBsaWNhdGlvbiBkb2VzIG5vdCByZWNlaXZlIG1vdXNlIGV2ZW50cwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ2MDg5IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2MDg5Ij4yNDYwODk8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+VW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gaW4gRmlsZU9iamVjdC5nZXRDaGFyQ29udGVudAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9taW5vciAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0NjI0NyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0NjI0NyI+MjQ2MjQ3PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkJhZCBoZWxwIGxpbmsgaW4gQ3JlYXRlIGEgSGVsbG8gV29ybGQgQXBwbGljYXRpb24gQ2hlYXQgU2hlZXQKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWlub3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ2Mjg1IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2Mjg1Ij4yNDYyODU8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W0hlbHBdIE51bGwgUG9pbnRlciBleGNlcHRpb25zIGluIFJldXNhYmxlSGVscFBhcnQuamF2YSBhbmQgU2VhcmNoUGFydC5qYXZhCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X2Jsb2NrZXIgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDYzMDkiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDYzMDkiPjI0NjMwOTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bQnJvd3NlciwgTWFjLCAzLjRdIERvZXNuJ3Qgb3BlbiBsb2NhbCBVUkxzIChmaWxlOi8vLykgdGhhdCBjb250YWluIHF1ZXJ5IHBhcmFtZXRlcnMgYW5kL29yIHRoYXQgYXJlIFVSTCBlbmNvZGVkLgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9tYWpvciAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDYzOTEiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDYzOTEiPjI0NjM5MTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5wcm9kdWN0IGV4cG9ydCBmcm9tIHRoZSB1aSBkb2VzIG5vdCBnZW5lcmF0ZSBidW5kbGVzLmluZm8KICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDY0NDQiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDY0NDQiPjI0NjQ0NDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5Db21wbGV0ZSBmb3IgRWNsaXBzZSBwaGFzZSBvZiBpbnN0YWxsL3VwZGF0ZSBpcyB2ZXJ5IHNsb3cgb24gMUdCIG1lbSBtYWNoaW5lcwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ2NTQxIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2NTQxIj4yNDY1NDE8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W21pc2NdIEJJREk6IEphdmEgZWRpdG9yIGRvZXMgbm90IGVuc3VyZSBMVFIgZm9yIGRlY2xhcmF0aW9ucyBhbmQgaW52b2NhdGlvbnMgd2l0aCBSVEwgbmFtZXMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDY2MTgiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDY2MTgiPjI0NjYxODwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bZmxleC1oaWVyYXJjaHldIEZpbmQgb3BlcmF0aW9uIGNhbiB1c2Ugd3JvbmcgbGFiZWwgcHJvdmlkZXIsIGFuZCBtYXkgbmV2ZXIgY29tcGxldGUuCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X3RyaXZpYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ2NjkwIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ2NjkwIj4yNDY2OTA8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W0RvY10gU21hbGwgdXBkYXRlcyBpbiBDb21wYXJlIGZyYW1ld29yayBkb2N1bWVudGF0aW9uIGFuZCBqYXZhZG9jcwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDY3NjUiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDY3NjUiPjI0Njc2NTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5FeHRlbnNpb25sb2NhdGlvbiByZXBvcyBhcmUgaW5jb3JyZWN0bHkgdGltZXN0YW1wZWQKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfYmxvY2tlciAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDcwOTUiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDcwOTUiPjI0NzA5NTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5wMiByZWNvbmNpbGVyIG5vdCBkZWxldGluZyBsaW5lcyBhc3NvY2lhdGVkIHdpdGggcmVtb3ZlZCBmZWF0dXJlcy9wbHVnaW5zL3NpdGVzIGZyb20gVVNFUi1JTkNMVURFIHNpdGVzIGluIHBsYXRmb3JtLnhtbCBmcm9tIGJ1bmRsZXMuaW5mbwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDcxMTgiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDcxMTgiPjI0NzExODwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5FbmRsZXNzIGxvb3AgaW4gU2lnbmF0dXJlLmVuY29kZVF1YWxpZmllZE5hbWUKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ3MTc2IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3MTc2Ij4yNDcxNzY8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+UDIgVW5pbnN0YWxsIERvZXNuJ3QgUmVtb3ZlIFBsdWdpbnMgRnJvbSBPU0dpIENvbmZpZ3VyYXRpb24KICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ3MTkwIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3MTkwIj4yNDcxOTA8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+VXBkYXRlIHJlYWRtZSBmb3IgMy40LjEKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0NzMwMyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0NzMwMyI+MjQ3MzAzPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlRoZSBHZW5lcmF0ZUdldHRlcnNTZXR0ZXJzVGVzdCBzb21ldGltZXMgZmFpbHMgdG8gZGVsZXRlIGZpbGVzIGR1cmluZyB0ZWFyRG93bgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDc2NjYiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDc2NjYiPjI0NzY2NjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bMS41XVtjb21waWxlcl0gQUlPT0JFIGluc2lkZSBtaXNzaW5nIHR5cGUgcmVwb3J0aW5nCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9DTE9TRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ3Njg5IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3Njg5Ij4yNDc2ODk8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+cGVyZm9ybWFuY2UgaXNzdWVzIGluIENvbnRlbnREZXNjcmlwdGlvbk1hbmFnZXIvWE1MUm9vdEhhbmRsZXIKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ3ODEyIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3ODEyIj4yNDc4MTI8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W0Zvcm1zXSBCdXN5SW5kaWNhdG9yIG11c3QgZW5zdXJlIHRoZSBkaXNwbGF5IGlzIG5vdCBkaXNwb3NlZCBiZWZvcmUgZG9pbmcgYSBzeW5jRXhlYygpCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AyICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0Nzg0MyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0Nzg0MyI+MjQ3ODQzPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltDb21tb25OYXZpZ2F0b3JdIFNXVCBFeGNlcHRpb24gZnJvbSBBYnN0cmFjdFRyZWVWaWV3ZXI6IGZhdWx0eSBhcnJheSBsb2dpYwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDc5MDYiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDc5MDYiPjI0NzkwNjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bdWldIGluc3RhbGwgd2l6YXJkIGlzIGVtcHR5CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0ODAxMCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0ODAxMCI+MjQ4MDEwPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltIZWxwXSBDQ0Ugd2hlbiBjbGlja2luZyBvbiByb290IGJyZWFkY3J1bWIgaW4gSGVscCB2aWV3IGluIFJDUCBhcHAKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ4MTYzIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ4MTYzIj4yNDgxNjM8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+TlBFIGluIEVsZW1lbnQuYXNUeXBlKCkKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0ODI0MyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0ODI0MyI+MjQ4MjQzPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkFkZCBhcHQucGx1Z2dhYmxlLmNvcmUgYXMgeC1mcmllbmQgZm9yIGpkdC5jb3JlCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0ODI1NCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0ODI1NCI+MjQ4MjU0PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltyZWZhY3RvcmluZ10gJ0FkZCBmaW5hbCBtb2RpZmllcicgc2F2ZSBhY3Rpb24gY29sbGlkZXMgd2l0aCAncmVuYW1lJyByZWZhY3RvcmluZwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ4MzM4IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ4MzM4Ij4yNDgzMzg8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+RGVhZGxvY2sgaW4gQ29uZmlnQWRtaW4gc2VydmljZQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDgzNDciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDgzNDciPjI0ODM0NzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5VcGRhdGUgc2RrLnByb2R1Y3QgYW5kIHBsYXRmb3JtLnByb2R1Y3QgdmVyc2lvbgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ4NjMxIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ4NjMxIj4yNDg2MzE8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+My40LjEgcmVhZG1lIGNvbnRhaW5zIGluY29ycmVjdCBidWd6aWxsYSBxdWVyeQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDg3NjgiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDg3NjgiPjI0ODc2ODwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5JbmNvcnJlY3QgY2xhc3NwYXRoIGdpdmVuIGZvbGRlciBzaGFwZWQgYnVuZGxlcyB3aXRoIC5jbGFzc2VzIGluIGZvbGRlcnMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfdHJpdmlhbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDg5NjYiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDg5NjYiPjI0ODk2NjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5Xcm9uZyBzcmMgc3BlY2lmaWVkIGluIEhlbGxvV29ybGRTV1QgY2hlYXRzaGVldAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNDkxNDAiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNDkxNDAiPjI0OTE0MDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bMS41XVtjb21waWxlcl0gYXN5bW1ldHJpYyBlcnJvcnMgd2l0aCBjb3ZhcmlhbnQgaW5oZXJpdGVkIG1ldGhvZHMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ5MTU1IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5MTU1Ij4yNDkxNTU8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W2NvbW1vbiBuYXZpZ2F0b3JdIFBvdGVudGlhbCBTdGFja092ZXJmbG93IGluIEphdmFOYXZpZ2F0b3JDb250ZW50UHJvdmlkZXIKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ5NDExIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NDExIj4yNDk0MTE8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+SW52YWxpZCBjb25maWcuaW5pIGZvciBmZWF0dXJlIGJhc2VkIC5wcm9kdWN0cyBub3QgaW5jbHVkaW5nIGEgY29uZmlndXJhdG9yCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0OTQ3MiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0OTQ3MiI+MjQ5NDcyPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltHbG9iYWxBY3Rpb25zXSBDaGFuZ2UgRmlsZSAmZ3Q7IFJlc3RhcnQgbW5lbW9uaWMgdG8gc29tZXRoaW5nIGVsc2UgdGhhbiBGaWxlICZndDsgUmV2ZXJ0IG1uZW1vbmljCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI0OTUyNyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI0OTUyNyI+MjQ5NTI3PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltQcmVmZXJlbmNlc10gQ2Fubm90IHBlcmZvcm0gc2Nyb2xsaW5nIHZpYSBrZXlib2FyZCBpbiBwcmVmZXJlbmNlIGRpYWxvZwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ5NjUzIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NjUzIj4yNDk2NTM8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+SGFuZGxpbmcgb2YgZmVhdHVyZXMgaW4gZXhjbHVzaXZlIHNpdGUKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjQ5OTk1IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5OTk1Ij4yNDk5OTU8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W0NvbnRleHRzXSBDb250ZXh0QWN0aW9uJ3MgbGVhayB3aGVuIGhpZGluZyBhY3Rpb25zIHNldHMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MDAxNCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MDAxNCI+MjUwMDE0PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkhhbmRsaW5nIG9mIGZlYXR1cmVzIGluIGV4Y2x1c2l2ZSBzaXRlCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MDAxNiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MDAxNiI+MjUwMDE2PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltpbXBsZW1lbnRhdGlvbl0gQSBsb3Qgb2YgRm9udCBhbmQgQ3Vyc29yIGxlYWtzIGZyb20gQWJzdHJhY3RJbmZvcm1hdGlvbkNvbnRyb2wKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUwMDQ4IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUwMDQ4Ij4yNTAwNDg8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+RGVidWdVSVBsdWdpbi5zdGFydCgpIHBvbGx1dGVzIFNXVCBEaXNwbGF5CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MDEwNyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MDEwNyI+MjUwMTA3PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkJ1aWxkIG9yZGVyIGluY29ycmVjdCB3aGVuIHByb2plY3QgaXMgZGVsZXRlZAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUwMTI3IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUwMTI3Ij4yNTAxMjc8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W0NvbW1hbmRzXSBJQWN0aW9uLnNldEltYWdlRGVzY3JpcHRvcigpIGphdmFkb2MgbmVlZHMgdG8gbm90ZSAmcXVvdDtpbWFnZSB2cy4gY2hlY2tlZCZxdW90OyBwbGF0Zm9ybSBkaXNjcmVwYW5jeQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTAxNDMiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTAxNDMiPjI1MDE0MzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5saWJ1cGRhdGUuc28gbG9hZGluZyBibG9ja2VkIGJ5IFNFTGludXgKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUwMjExIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUwMjExIj4yNTAyMTE8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W3NlYXJjaF0gT3JnYW5pemUgSW1wb3J0cyBIYW5ncwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTAyOTciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTAyOTciPjI1MDI5NzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bY29tcGlsZXJdIE5QRSBpbiBvcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuY29tcGlsZXIucHJvYmxlbS5Qcm9ibGVtUmVwb3J0ZXIubWlzc2luZ1R5cGVJbk1ldGhvZChQcm9ibGVtUmVwb3J0ZXIuamF2YTo0OTI1KQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUwMzI1IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUwMzI1Ij4yNTAzMjU8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W3VpXSBVSSBzaG93cyBkdXBsaWNhdGUgY2F0ZWdvcmllcyB3aGVuIHJlZnJlc2hpbmcKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUwMzQ5IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUwMzQ5Ij4yNTAzNDk8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W3BsYW5uZXJdIFVuZXhwZWN0ZWQgZXhjZXB0aW9uIHdoaWxlIHNvbHZpbmcgcmV0dXJucyBPSyBzdGF0dXMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDIgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUwNTA1IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUwNTA1Ij4yNTA1MDU8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W0Zvcm1zXSBBYnN0cmFjdEh5cGVybGluayBzaG91bGQgY2hlY2sgaWYgd2lkZ2V0IGlzIGRpc3Bvc2VkIGJlZm9yZSBjYWxsaW5nIHRyaWdnZXJBY2Nlc3NpYmxlCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MDk3NSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MDk3NSI+MjUwOTc1PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlsxLjVdW2NvbXBpbGVyXSBTdGFjayBvdmVyZmxvdyBvbiBzdGF0aWMgaW1wb3J0LgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ibG9ja2VyICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MTA5MSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MTA5MSI+MjUxMDkxPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkNvdmFyaWFudCByZXR1cm4gdHlwZXMgbm90IGhvbm9yZWQgZm9yIGNvbWJpbmVkIGV4dGVuc2lvbiBhbmQgaW1wbGVtZW50YXRpb24KICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUxMjMwIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUxMjMwIj4yNTEyMzA8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W3JlY29uY2lsZXJdIEFkZCB0ZXN0IHJlY29uY2lsZXIgdGVzdCBzdWl0ZSB0byAzLjQueCB0ZXN0cwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUxMjc5IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUxMjc5Ij4yNTEyNzk8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+WzEuNV1bY29tcGlsZXJdIENvdmFyaWFudCBnZW5lcmljcyBpbnRlcmZhY2VzIGNhdXNlcyBjb21waWxlIGVycm9yCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTE1MTYiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTE1MTYiPjI1MTUxNjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bQnJvd3Nlcl0gY2Fubm90IHR5cGUg3CBpbnRvIHdlYiBicm93c2VyIHRleHQgYXJlYQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUxNTYwIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUxNTYwIj4yNTE1NjA8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W3JlY29uY2lsZXJdIE1ldGFkYXRhIHJlcG9zIGZvciBjb25maWcgc2l0ZXMgbm90IHJlYWN0aW5nIHRvIGZpbGUgY2hhbmdlcwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTE2MDQiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTE2MDQiPjI1MTYwNDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bQ29udHJpYnV0aW9uc10gTWVudVNlcnZpY2UgcmVnaXN0cnkgY2hhbmdlcyBjYXVzZXMgQ01FCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MTc1OCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MTc1OCI+MjUxNzU4PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltsdGtdIFVuZG9pbmcgYSBwcm9qZWN0IGRlbGV0ZSBoYXMgcHJvYmxlbXMgd2l0aCBlbmNvZGluZyBhbmQgbWFya2VycwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTE3NzciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTE3NzciPjI1MTc3NzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5saWJzd3QtY29jb2EtY2FyYm9uIGhhcmQgbGlua3MgYWdhaW5zdCBBcHBsZSdzIDEuNS4wIGxpYmZyYW1lZW1iZWRkaW5nLmpuaWxpYgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9tYWpvciAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTE4MTciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTE4MTciPjI1MTgxNzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bY2xlYW4gdXBdIEZhaWwgdG8gaW52b2tlICZxdW90O0NsZWFuIFVwJnF1b3Q7IGF0IHByb2plY3QgbGV2ZWwKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUxODM1IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUxODM1Ij4yNTE4MzU8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+TSBidWlsZCBwZXJmb3JtYW5jZSB0ZXN0cyBhcmUgZmFpbGluZwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUxODgxIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUxODgxIj4yNTE4ODE8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+Rml4IGluIDMuNC4yIEJ1ZyAyNDk4NTAgliBbSGVscF1bU2VhcmNoXSBTZWFyY2ggcmVzdWx0cyBzaG93IEphdmFTY3JpcHQgaW5zdGVhZCBvZiBwYWdlIHRpdGxlCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MTkxMyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MTkxMyI+MjUxOTEzPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltwbGFubmVyXSBIaWdoIG1lbW9yeSB1c2UgaW4gcHJvamVjdG9yCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTE5NDYiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTE5NDYiPjI1MTk0NjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5vcmcuZWNsaXBzZS51cGRhdGUuY29yZS5pbnV4IGluIFIzXzRfbWFpbnRlbmFuY2Ugc3RyZWFtIG5lZWRzIHRvIGJlIHVwZGF0ZWQKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUxOTk0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUxOTk0Ij4yNTE5OTQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+dmVyc2lvbiBvZiBvcmcuZWNsaXBzZS5wZGUuZG9jLnVzZXIgbmVlZHMgdG8gYmUgaW5jcmVtZW50ZWQgaW4gMy40Lnggc3RyZWFtCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTIyNjciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTIyNjciPjI1MjI2NzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5Xcm9uZyBidW5kbGUgdmVyc2lvbiBzZWxlY3RlZCBvbiBleHBvcnQgKE5QRSkKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUyNDc2IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUyNDc2Ij4yNTI0NzY8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W2ltcGxlbWVudGF0aW9uXSBCcm93c2VySW5mb3JtYXRpb25Db250cm9sIGxlYWtzIFRleHRMYXlvdXQKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfY3JpdGljYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUyNDg0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUyNDg0Ij4yNTI0ODQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W1ZpZXdNZ210XSBWaWV3IGJlY29tZXMgZGlzYWJsZWQgYW5kIGNvbXBsZXRseSBub25mdW5jdGlvbmFsCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MjQ5MCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MjQ5MCI+MjUyNDkwPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlRoZSAmcXVvdDtwbGF0Zm9ybV93aGF0c25ldy5odG1sJnF1b3Q7IHBhZ2UgaW4gZWNsaXBzZSBoZWxwIGNvbnRhaW5zIGR1cGxpY2F0ZSBpZCdzIHdoaWNoIGlzIGFuIGFjY2Vzc2liaWxpdHkgaXNzdWUuCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTI1NTUiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTI1NTUiPjI1MjU1NTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bamF2YWRvY10gTlBFIG9uIGR1cGxpY2F0ZSBwYWNrYWdlLWluZm8KICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUyNTc2IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUyNTc2Ij4yNTI1NzY8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+TGF1bmNoIGNvbmZpZ3VyYXRpb24gZGlhbG9nIGVuYWJsZXMgQXBwbHkgd2l0aG91dCBhbnkgY2hhbmdlcwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUyNjA5IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUyNjA5Ij4yNTI2MDk8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+VHJhbnNpZW50IENvbnNvbGVMaW5lVHJhY2tlciB0ZXN0IGZhaWx1cmVzCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1Mjg2OCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1Mjg2OCI+MjUyODY4PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltiYXRjaF1bY29tcGlsZXJdIENvbmN1cnJlbnRNb2RpZmljYXRpb25FeGNlcHRpb24gaW4gb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmNvbXBpbGVyLmJhdGNoLkNsYXNzcGF0aEphci5mZXRjaExpbmtlZEphcnMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1Mjk5MiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1Mjk5MiI+MjUyOTkyPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPk1vdmUge3dvcmtzcGFjZV9sb2N9IHRvIGRlYnVnLmNvcmUgcGx1Zy1pbgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfVkVSSUZJRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTMxNzQiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTMxNzQiPjI1MzE3NDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bQ29udHJpYnV0aW9uc10gQ29udHJpYnV0aW9ucyB0byB0aGUgc3RhdHVzIHRyaW0gYmFyIGFyZSBuZXZlciBkaXNwb3NlZC4KICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MzI1NyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MzI1NyI+MjUzMjU3PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlNvdXJjZSBsb29rdXAgam9iIGRhdGEgZ2V0dGluZyBvdmVyd3JpdHRlbiB3aGlsZSBydW5uaW5nCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1Mzc5NCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1Mzc5NCI+MjUzNzk0PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPnAyIHBhcnNlciBlcnJvciAtIFhNTCBkb2N1bWVudCBzdHJ1Y3R1cmVzIG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoaW4gdGhlIHNhbWUgZW50aXR5CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTM4OTIiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTM4OTIiPjI1Mzg5MjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5zY3JpcHRzL2V4cG9ydHBsdWdpbi54bWwgbmVlZHMgdXBkYXRlIHRvIDMuNC40CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1MzkyOSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1MzkyOSI+MjUzOTI5PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPmphdmEubGFuZy5VbnNhdGlzZmllZExpbmtFcnJvciB3aGVuIGxhdW5jaGluZyBlY2xpcHNlIFNESyBvbiBBSVgKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1Mzk1NSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1Mzk1NSI+MjUzOTU1PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkhpdHRpbmcgYnJlYWtwb2ludCBnaXZlcyBmb2N1cyB0byB3b3JrYmVuY2ggaW5zdGVhZCBvZiBkaWFsb2cKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjUzOTU2IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjUzOTU2Ij4yNTM5NTY8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W1ZpZXdlcnNdIFRyZWVWaWV3ZXIgV2lkZ2V0IERpc3Bvc2UgRXJyb3IKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfYmxvY2tlciAgICAgICAgICAgICBiel9QMSAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTM5NzciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTM5NzciPjI1Mzk3NzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bSGVscF0gIEZvciBFY2xpcHNlIDMuNC4yICBmaXggcmVncmVzc2lvbiBjYXVzZWQgYnkgZml4IGZvciBCdWcgMjM3MzI2IC0gW0hlbHBdW0NvbnRleHRdIEYxIGFjY2Vzc2liaWxpdHkgLSBubyBpbmRpY2F0aW9uIHRoYXQgaGVscCB2aWV3IGhhcyBvcGVuZWQgKHNpbmNlIHRoZXJlIGlzIG5vIGZvY3VzIGNoYW5nZSkKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjU0NTk4IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjU0NTk4Ij4yNTQ1OTg8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+RXhjZXB0aW9uOiBTdHJpbmcgaW5jb21wYXRpYmxlIHdpdGggSUJ1ZGR5UG9saWN5CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X2NyaXRpY2FsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1NDY0MCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1NDY0MCI+MjU0NjQwPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltwbGFubmVyXSBDYW5ub3QgaW5zdGFsbCBwYXRjaCB1c2luZyBQMiBVcGRhdGVyCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1NDc2NiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1NDc2NiI+MjU0NzY2PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPkVjbGlwc2UgZG9jIC0gSmF2YSBpbmNsLi9leGNsLiBwYXR0ZXJuIHBhZ2UgdW5jbGVhciByZSBKYXZhIHNvdXJjZSB2cy4gcmVzb3VyY2UgZmlsZXMKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1NTA1MyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1NTA1MyI+MjU1MDUzPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltWaWV3ZXJzXSBOUEUgaW4gQ29sdW1uVmlld2VyVG9vbFRpcFN1cHBvcnQKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbWFqb3IgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTU0NTIiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTU0NTIiPjI1NTQ1MjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bMS41XVtjb21waWxlcl0gRWNsaXBzZSBhbGxvd3MgZm9yd2FyZCByZWZlcmVuY2UgaW4gZW51bSBjb25zdHJ1Y3RvcgogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9jcml0aWNhbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTU2MzciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTU2MzciPjI1NTYzNzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5NaXNzaW5nIHJlbW92ZUNvbXBvbmVudExpc3RlbmVyIGluIFNXVF9BV1QubmV3X1NoZWxsCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1NTcwNSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1NTcwNSI+MjU1NzA1PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltmd2tBZG1pbl0gUGF0aHMgbWlzLXJlbGF0aXZpemVkCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTU4NDAiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTU4NDAiPjI1NTg0MDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5TSU9PQkUgZHVyaW5nIHBlcmZvcm1hbmNlIHRlc3QgY29tbWl0CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjU2MTg0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjU2MTg0Ij4yNTYxODQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+Z2V0RGVjbGFyZWRUeXBlIHRocm93cyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gZm9yIGFycmF5IHR5cGVzCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1NjI5MyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1NjI5MyI+MjU2MjkzPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltDb250cmlidXRpb25zXSBbcmVncmVzc2lvbl0gSUVsZW1lbnRVcGRhdGVyLnVwZGF0ZUVsZW1lbnQoKSAtIElXb3JrYmVuY2hQYXJ0U2l0ZSBzZXJ2aWNlIG5vdCBpbiBzY29wZSBvZiBwcm92aWRlZCBVSUVsZW1lbnQKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjU2MzE0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjU2MzE0Ij4yNTYzMTQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W0NvbnRyaWJ1dGlvbnNdIEFjY2VsZXJhdG9ycyBpbiBtZW51cyBhcmUgbm90IGluc3RhbGxlZCB1bnRpbCBtZW51IHNob3duCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTY0NjQiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTY0NjQiPjI1NjQ2NDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bSW1wb3J0L0V4cG9ydF0gSUxldmVsZWRJbXBvcnRTdHJ1Y3R1cmVQcm92aWRlciBpbnRlcmZhY2UgaXMgbm90IGRlY2xhcmVkIHB1YmxpYwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTY0ODkiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTY0ODkiPjI1NjQ4OTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bbGF1bmNoZXJdIGxhdW5jaGVyIGxpYiBoYXMgZGVwZW5kZW5jeSBvbiBsaWJnY2Nfcy5zby4wCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1NjY4MCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1NjY4MCI+MjU2NjgwPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlVuYWJsZSB0byBnbyBiYWNrIHRvIG9sZCB2ZXJzaW9uCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X21ham9yICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjU2ODM5IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjU2ODM5Ij4yNTY4Mzk8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W1dvcmtiZW5jaF0gV29ya2JlbmNoLnNodXRkb3duKCkgZG9lc24ndCBjb21wbGV0ZSBkdWUgdG8gZXhjZXB0aW9uCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X2VuaGFuY2VtZW50ICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1NjkyNCIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1NjkyNCI+MjU2OTI0PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltBYm91dF0gQWJvdXQgZGlhbG9nIHRleHQgLSBBZGQgY2FwYWJpbGl0eSB0byByZWFkIHN5c3RlbSBwcm9wZXJ0aWVzCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1NjkyNiIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1NjkyNiI+MjU2OTI2PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPltBYm91dF0gQWJvdXQgZGlhbG9nIGRvZXMgbm90IGNoYW5nZSBhYm91dC5tYXBwaW5ncyBmb3IgZHluYW1pYyBwcm9kdWN0CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTY5NDYiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTY5NDYiPjI1Njk0NjwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5CYWNrcG9ydCBmaXggZm9yIDI1NTM4NCB0byAzLjQueCBzdHJlYW0KICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjU3NDM0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjU3NDM0Ij4yNTc0MzQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+WzEuNV1bY29tcGlsZXJdIFNob3VsZCBkZXRlY3QgdHlwZSBtaXNtYXRjaCBhZnRlciBjYXB0dXJlCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTc1MzciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTc1MzciPjI1NzUzNzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5Db25zb2xlUGx1Z2luIHNob3VsZCBjb25zaWRlciBtb2RpZnlpbmcgaXRzIGdldFN0YW5kYXJkRGlzcGxheSgpIG1ldGhvZAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTc4NDkiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTc4NDkiPjI1Nzg0OTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bMS41XVtjb21waWxlcl0gSW50ZXJuYWwgY29tcGlsZXIgZXJyb3IgdXNpbmcgZ2VuZXJpY3Mgdy8gYWJzdHJhY3QgY2xhc3NlcyAmYW1wOyBpbnRlcmZhY2VzCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTc4NjkiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTc4NjkiPjI1Nzg2OTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5BZGp1c3QgSmF2YSBtb2RlbCBjYWNoZSBzaXplIHVzaW5nIGEgcHJvcGVydHkKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1ZFUklGSUVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjU3OTI3IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjU3OTI3Ij4yNTc5Mjc8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W2J1aWxkIHBhdGhdIGZpbHRlcmVkIHRyZWVzIGRvbid0IHNob3cgQ2xlYXIgYnV0dG9uCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9WRVJJRklFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTgzMTQiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTgzMTQiPjI1ODMxNDwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bZXhwcmVzc2lvbnNdIGVycm9yIGluIHVubG9hZCB0ZXN0CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI1ODczMSIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI1ODczMSI+MjU4NzMxPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPi9vcHQvZWNsaXBzZS9jb25maWd1cmF0aW9uL29yZy5lY2xpcHNlLmVxdWlub3guc291cmNlL3NvdXJjZS5pbmZvIChObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5KQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjU4ODAyIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjU4ODAyIj4yNTg4MDI8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+SW52YWxpZCBpbXBsZW1lbnRhdGlvbiBvZiBnZXRTaWduZXIgbWV0aG9kIGluIExlZ2FjeVZlcmlmaWVyRmFjdG9yeS5MZWdhY3lDaGFpbiBjbGFzcwogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTg4MzkiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTg4MzkiPjI1ODgzOTwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5yZWNvbXBpbGUgc29sYXJpcy1tb3RpZiBvcyBsaWJyYXJ5CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19ldmVuICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTg5MTciCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTg5MTciPjI1ODkxNzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5banNyMjY5XSBOb3QteWV0LWltcGxlbWVudGVkIG1ldGhvZHMgaW4gSmF2YSA2IEFQVAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfb2RkICAgICAgICAgICAgICI+CgogICAgPHRkIGNsYXNzPSJmaXJzdC1jaGlsZCI+CiAgICAgIDxhIG5hbWU9ImIyNTk1NTMiCiAgICAgICAgIGhyZWY9Imh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0yNTk1NTMiPjI1OTU1MzwvYT4KICAgICAgPHNwYW4gc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvc3Bhbj4KICAgIDwvdGQ+CgogICAgPHRkID5bVGFiYmVkUHJvcGVydGllc10gZXhwZW5zaXZlIHJlZnJlc2ggb2YgdGV4dAogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjU5OTQwIgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjU5OTQwIj4yNTk5NDA8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W1ZpZXdlcnNdIERvY3VtZW50IHByb3ZpZGVycyBhcmUgbm90IHVzZWQgd2hlbiBjb21wYXJpbmcgcmV2aXNpb25zIGZyb20gQ1ZTCiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X25vcm1hbCAgICAgICAgICAgICBiel9QMyAgICAgICAgICAgICBiel9SRVNPTFZFRCAgICAgICAgICAgICBiel9GSVhFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6X3Jvd19vZGQgICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI2MDkzNyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI2MDkzNyI+MjYwOTM3PC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPk5QRSBpbiBXb3JrYmVuY2hTdGF0dXNEaWFsb2dNYW5hZ2VyLmFkZFN0YXR1c0FkYXB0ZXIoKQogICAgPC90ZD4KCiAgPC90cj4KCiAgCgoKICAKCiAgPHRyIGNsYXNzPSJiel9idWdpdGVtCiAgICAgICAgICAgICBiel9ub3JtYWwgICAgICAgICAgICAgYnpfUDMgICAgICAgICAgICAgYnpfUkVTT0xWRUQgICAgICAgICAgICAgYnpfRklYRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiel9yb3dfZXZlbiAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjYxMDQ0IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjYxMDQ0Ij4yNjEwNDQ8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+W3NlcnZlcl0gW3BsYW5dIFByb2JsZW1zIGNsZWFuaW5nIHVwIHdoZW4gdW5kZXBsb3lpbmcgU2VydmxldGJyZGlnZSBXQVIKICAgIDwvdGQ+CgogIDwvdHI+CgogIAoKCiAgCgogIDx0ciBjbGFzcz0iYnpfYnVnaXRlbQogICAgICAgICAgICAgYnpfbm9ybWFsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X29kZCAgICAgICAgICAgICAiPgoKICAgIDx0ZCBjbGFzcz0iZmlyc3QtY2hpbGQiPgogICAgICA8YSBuYW1lPSJiMjYxNjY1IgogICAgICAgICBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MjYxNjY1Ij4yNjE2NjU8L2E+CiAgICAgIDxzcGFuIHN0eWxlPSJkaXNwbGF5OiBub25lIj48L3NwYW4+CiAgICA8L3RkPgoKICAgIDx0ZCA+b3JnLmVjbGlwc2UuZXF1aW5veC5wMi51c2VyLnVpIGZlYXR1cmUgdmVyc2lvbiBzaG91bGQgaW5jcmVtZW50CiAgICA8L3RkPgoKICA8L3RyPgoKICAKCgogIAoKICA8dHIgY2xhc3M9ImJ6X2J1Z2l0ZW0KICAgICAgICAgICAgIGJ6X2NyaXRpY2FsICAgICAgICAgICAgIGJ6X1AzICAgICAgICAgICAgIGJ6X1JFU09MVkVEICAgICAgICAgICAgIGJ6X0ZJWEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpfcm93X2V2ZW4gICAgICAgICAgICAgIj4KCiAgICA8dGQgY2xhc3M9ImZpcnN0LWNoaWxkIj4KICAgICAgPGEgbmFtZT0iYjI2MTY5MyIKICAgICAgICAgaHJlZj0iaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTI2MTY5MyI+MjYxNjkzPC9hPgogICAgICA8c3BhbiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9zcGFuPgogICAgPC90ZD4KCiAgICA8dGQgPlNvbWUgZmVhdHVyZSB2ZXJzaW9ucyBuZWVkIGluY3JlbWVudGluZyBmb3IgMy40LjIKICAgIDwvdGQ+CgogIDwvdHI+CgogIAogICAgPC90YWJsZT4KCgoKCgoKPGJyPgoKCjxwPgpOb3RlOiBCdWcgZml4ZXMgc2luY2UgdGhlIDMuNC4yIHJlbGVhc2UgY2FuIGJlIG9idGFpbmVkIGJ5IHRoZSBmb2xsb3dpbmcgdGhlIEJ1Z3ppbGxhIHF1ZXJ5OiA8YSBocmVmPSJodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9idWdsaXN0LmNnaT9idWdfZmlsZV9sb2NfdHlwZT1hbGx3b3Jkc3N1YnN0cjtidWdfc3RhdHVzPVJFU09MVkVEO2J1Z19zdGF0dXM9VkVSSUZJRUQ7YnVnX3N0YXR1cz1DTE9TRUQ7Y2xhc3NpZmljYXRpb249RWNsaXBzZTtjbGFzc2lmaWNhdGlvbj1SVDtmaWVsZC0xLTAtMD1idWdfc3RhdHVzO2ZpZWxkLTEtMS0wPWNsYXNzaWZpY2F0aW9uO2ZpZWxkLTEtMi0wPXByb2R1Y3Q7ZmllbGQtMS0zLTA9cmVzb2x1dGlvbjtmaWVsZC0xLTQtMD10YXJnZXRfbWlsZXN0b25lO2ZpZWxkMC0wLTA9bm9vcDtrZXl3b3Jkc190eXBlPWFsbHdvcmRzO2xvbmdfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyO3Byb2R1Y3Q9RXF1aW5veDtwcm9kdWN0PUpEVDtwcm9kdWN0PVBERTtwcm9kdWN0PVBsYXRmb3JtO3F1ZXJ5X2Zvcm1hdD1hZHZhbmNlZDtyZW1hY3Rpb249O3Jlc29sdXRpb249RklYRUQ7c2hvcnRfZGVzYz07c2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyO3N0YXR1c193aGl0ZWJvYXJkPTtzdGF0dXNfd2hpdGVib2FyZF90eXBlPWFsbHdvcmRzc3Vic3RyO3RhcmdldF9taWxlc3RvbmU9My40LjI7dHlwZS0xLTAtMD1hbnlleGFjdDt0eXBlLTEtMS0wPWFueWV4YWN0O3R5cGUtMS0yLTA9YW55ZXhhY3Q7dHlwZS0xLTMtMD1hbnlleGFjdDt0eXBlLTEtNC0wPWFueWV4YWN0O3R5cGUwLTAtMD1ub29wO3ZhbHVlLTEtMC0wPVJFU09MVkVEJTJDVkVSSUZJRUQlMkNDTE9TRUQ7dmFsdWUtMS0xLTA9RWNsaXBzZSUyQ1JUO3ZhbHVlLTEtMi0wPUVxdWlub3glMkNKRFQlMkNQREUlMkNQbGF0Zm9ybTt2YWx1ZS0xLTMtMD1GSVhFRDt2YWx1ZS0xLTQtMD0zLjQuMjt2YWx1ZTAtMC0wPSU3QztxdWVyeV9iYXNlZF9vbj0iPmh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL2J1Z2xpc3QuY2dpP2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyO2J1Z19zdGF0dXM9UkVTT0xWRUQ7YnVnX3N0YXR1cz1WRVJJRklFRDtidWdfc3RhdHVzPUNMT1NFRDtjbGFzc2lmaWNhdGlvbj1FY2xpcHNlO2NsYXNzaWZpY2F0aW9uPVJUO2ZpZWxkLTEtMC0wPWJ1Z19zdGF0dXM7ZmllbGQtMS0xLTA9Y2xhc3NpZmljYXRpb247ZmllbGQtMS0yLTA9cHJvZHVjdDtmaWVsZC0xLTMtMD1yZXNvbHV0aW9uO2ZpZWxkLTEtNC0wPXRhcmdldF9taWxlc3RvbmU7ZmllbGQwLTAtMD1ub29wO2tleXdvcmRzX3R5cGU9YWxsd29yZHM7bG9uZ19kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHI7cHJvZHVjdD1FcXVpbm94O3Byb2R1Y3Q9SkRUO3Byb2R1Y3Q9UERFO3Byb2R1Y3Q9UGxhdGZvcm07cXVlcnlfZm9ybWF0PWFkdmFuY2VkO3JlbWFjdGlvbj07cmVzb2x1dGlvbj1GSVhFRDtzaG9ydF9kZXNjPTtzaG9ydF9kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHI7c3RhdHVzX3doaXRlYm9hcmQ9O3N0YXR1c193aGl0ZWJvYXJkX3R5cGU9YWxsd29yZHNzdWJzdHI7dGFyZ2V0X21pbGVzdG9uZT0zLjQuMjt0eXBlLTEtMC0wPWFueWV4YWN0O3R5cGUtMS0xLTA9YW55ZXhhY3Q7dHlwZS0xLTItMD1hbnlleGFjdDt0eXBlLTEtMy0wPWFueWV4YWN0O3R5cGUtMS00LTA9YW55ZXhhY3Q7dHlwZTAtMC0wPW5vb3A7dmFsdWUtMS0wLTA9UkVTT0xWRUQlMkNWRVJJRklFRCUyQ0NMT1NFRDt2YWx1ZS0xLTEtMD1FY2xpcHNlJTJDUlQ7dmFsdWUtMS0yLTA9RXF1aW5veCUyQ0pEVCUyQ1BERSUyQ1BsYXRmb3JtO3ZhbHVlLTEtMy0wPUZJWEVEO3ZhbHVlLTEtNC0wPTMuNC4yO3ZhbHVlMC0wLTA9JTdDO3F1ZXJ5X2Jhc2VkX29uPTwvYT4KCjwvcD4KCjxocj4KPHA+U3VuLCBTb2xhcmlzLCBKYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mIFN1biBNaWNyb3N5c3RlbXMsIEluYy4KaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3A+CjxwPklCTSBpcyBhIHRyYWRlbWFyayBvZiBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnBvcmF0aW9uIGluIHRoZQpVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguPC9wPgo8cD5NaWNyb3NvZnQsIFdpbmRvd3MsIFdpbmRvd3MgTlQsIFZpc3RhLCBhbmQgdGhlIFdpbmRvd3MgbG9nbyBhcmUgdHJhZGVtYXJrcyBvZgpNaWNyb3NvZnQgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3A+CjxwPkFwcGxlIGFuZCBNYWMgT1MgYXJlIHRyYWRlbWFya3Mgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4sIHJlZ2lzdGVyZWQgaW4gdGhlClUuUy4gYW5kIG90aGVyIGNvdW50cmllcy48L3A+CjxwPlFOWCwgTmV1dHJpbm8sIGFuZCBQaG90b24gYXJlIHRyYWRlbWFya3Mgb3IgcmVnaXN0ZXJlZCB0cmFkZW1hcmtzIG9mIFFOWApTb2Z0d2FyZSBTeXN0ZW1zIEx0ZC48L3A+CjxwPk90aGVyIGNvbXBhbnksIHByb2R1Y3QsIGFuZCBzZXJ2aWNlIG5hbWVzIG1heSBiZSB0cmFkZW1hcmtzIG9yIHNlcnZpY2UgbWFya3MKb2Ygb3RoZXJzLjwvcD4KPHA+KGMpIENvcHlyaWdodCBJQk0gQ29ycC4gYW5kIG90aGVycyAyMDA4PC9wPgoKPGgyPjxhIG5hbWU9IkFwcGVuZGl4MSI+QXBwZW5kaXggMTogRXhlY3V0aW9uIEVudmlyb25tZW50IGJ5IFBsdWctaW48L2E+PC9oMj4KCjxwPkluIHRoZSB0YWJsZSBiZWxvdywgdGhlICIzLjQgRUUiICgiMy40IEV4ZWN1dGlvbiBFbnZpcm9ubWVudCIpIGNvbHVtbgppbmRpY2F0ZXMgdGhlIG1pbmltdW0gSmF2YSBjbGFzcyBsaWJyYXJ5IHJlcXVpcmVtZW50cyBvZiBlYWNoIHBsdWctaW4KZm9yIHRoZSAzLjQgcmVsZWFzZSwgd2hlcmUgdGhlIHZhbHVlIGlzIG9uZSBvZjo8L3A+Cjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSI5MCUiPgogIDx0Ym9keT4KICAgIDx0cj4KICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPjxiPkVudHJ5PC9iPjwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+PGI+TWVhbmluZzwvYj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPgogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPjxzdHJvbmc+TTEuMDwvc3Ryb25nPjwvZGl2PgogICAgICA8L3RkPgogICAgICA8dGQ+T1NHaSBNaW5pbXVtIEV4ZWN1dGlvbiBFbnZpcm9ubWVudCAxLjAgLSBUaGlzIGlzIGEgc3Vic2V0IG9mCiAgICAgIHRoZSBKMk1FIEZvdW5kYXRpb24gY2xhc3MgbGlicmFyaWVzIGRlZmluZWQgYnkgT1NHaSB0byBiZSB0aGUgYmFzZQogICAgICBmb3IgZnJhbWV3b3JrIGltcGxlbWVudGF0aW9ucy4gU2VlIHRoZSBPU0dpIHNwZWNpZmljYXRpb24gZm9yIG1vcmUKICAgICAgZGV0YWlscy48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkIHdpZHRoPSI5JSI+CiAgICAgIDxkaXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz5NMS4xPC9zdHJvbmc+PC9kaXY+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZCB3aWR0aD0iOTElIj5PU0dpIE1pbmltdW0gRXhlY3V0aW9uIEVudmlyb25tZW50IDEuMSAtIFRoaXMgaXMgYQogICAgICBzdWJzZXQgb2YgdGhlIEoyTUUgRm91bmRhdGlvbiBjbGFzcyBsaWJyYXJpZXMgZGVmaW5lZCBieSBPU0dpIHRvCiAgICAgIGJlIHRoZSBiYXNlIGZvciBmcmFtZXdvcmsgaW1wbGVtZW50YXRpb25zLiBTZWUgdGhlIE9TR2kKICAgICAgc3BlY2lmaWNhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+CiAgICAgIDxkaXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz5GMS4wPC9zdHJvbmc+PC9kaXY+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD5KMk1FIEZvdW5kYXRpb24gMS4wIC0gaW5kaWNhdGVzIHRoYXQgdGhlIHBsdWctaW4gY2FuIG9ubHkgYmUKICAgICAgcnVuIG9uIEZvdW5kYXRpb24gMS4wIG9yIGdyZWF0ZXIuIE5vdGUgdGhhdCB3aXRoIHRoZSBleGNlcHRpb24gb2YKICAgICAgc29tZSBNaWNyb0VkaXRpb24gSU8gY2xhc3NlcywgRm91bmRhdGlvbiAxLjAgaXMgYSBzdWJzZXQgb2YgSjJTRQogICAgICAxLjMuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD4KICAgICAgPGRpdiBhbGlnbj0iY2VudGVyIj48c3Ryb25nPkYxLjE8L3N0cm9uZz48L2Rpdj4KICAgICAgPC90ZD4KICAgICAgPHRkPkoyTUUgRm91bmRhdGlvbiAxLjEgLSBpbmRpY2F0ZXMgdGhhdCB0aGUgcGx1Zy1pbiBjYW4gb25seSBiZQogICAgICBydW4gb24gRm91bmRhdGlvbiAxLjEgb3IgZ3JlYXRlci4gTm90ZSB0aGF0IHdpdGggdGhlIGV4Y2VwdGlvbiBvZgogICAgICBzb21lIE1pY3JvRWRpdGlvbiBJTyBjbGFzc2VzLCBGb3VuZGF0aW9uIDEuMSBpcyBhIHN1YnNldCBvZiBKMlNFCiAgICAgIDEuNC48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPgogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPjxzdHJvbmc+MS4yPC9zdHJvbmc+PC9kaXY+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD5KMlNFIDEuMiAtIGluZGljYXRlcyB0aGF0IHRoZSBwbHVnLWluIGNhbiBvbmx5IGJlIHJ1biBvbiBKU0UKICAgICAgMS4yIG9yIGdyZWF0ZXIuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD4KICAgICAgPGRpdiBhbGlnbj0iY2VudGVyIj48c3Ryb25nPjEuMzwvc3Ryb25nPjwvZGl2PgogICAgICA8L3RkPgogICAgICA8dGQ+SjJTRSAxLjMgLSBpbmRpY2F0ZXMgdGhhdCB0aGUgcGx1Zy1pbiBjYW4gb25seSBiZSBydW4gb24gSlNFCiAgICAgIDEuMyBvciBncmVhdGVyLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+CiAgICAgIDxkaXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz4xLjQ8L3N0cm9uZz48L2Rpdj4KICAgICAgPC90ZD4KICAgICAgPHRkPkoyU0UgMS40IC0gaW5kaWNhdGVzIHRoYXQgdGhlIHBsdWctaW4gY2FuIG9ubHkgYmUgcnVuIG9uIEpTRQogICAgICAxLjQgb3IgZ3JlYXRlci48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPgogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPjxzdHJvbmc+MS40LzEuNTwvc3Ryb25nPjwvZGl2PgogICAgICA8L3RkPgogICAgICA8dGQ+SW5kaWNhdGVzIHRoYXQgdGhlIHBsdWctaW4gY2FuIHJ1biBvbiBKU0UKICAgICAgMS40IG9yIGdyZWF0ZXIsIGJ1dCBwcm92aWRlcyBlbmhhbmNlZCBmdW5jdGlvbmFsaXR5IHdoZW4gcnVuIG9uIEoyU0UgNS4wLjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+CiAgICAgIDxkaXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz4xLjU8L3N0cm9uZz48L2Rpdj4KICAgICAgPC90ZD4KICAgICAgPHRkPkoyU0UgNS4wIC0gaW5kaWNhdGVzIHRoYXQgdGhlIHBsdWctaW4gY2FuIG9ubHkgYmUgcnVuIG9uIEpTRQogICAgICA1LjAgb3IgZ3JlYXRlci48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPgogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPjxzdHJvbmc+MS42PC9zdHJvbmc+PC9kaXY+CiAgICAgIDwvdGQ+CiAgICAgIDx0ZD5KMlNFIDYuMCAtIGluZGljYXRlcyB0aGF0IHRoZSBwbHVnLWluIGNhbiBvbmx5IGJlIHJ1biBvbiBKU0UKICAgICAgNi4wIG9yIGdyZWF0ZXIuPC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj48Yj5uL2E8L2I+PC90ZD4KICAgICAgPHRkPk5vdCBhcHBsaWNhYmxlIChmb3IgZXhhbXBsZSBwbHVnLWlucyB0aGF0IGRvIG5vdCBjb250YWluIEphdmEgY29kZSk8L3RkPgogICAgPC90cj4KICA8L3Rib2R5Pgo8L3RhYmxlPgo8YnI+CjxiPlRhYmxlIG9mIG1pbmltdW0gZXhlY3V0aW9uIGVudmlyb25tZW50cyBieSBwbHVnLWluLjwvYj4gPGJyPgo8dGFibGUgYm9yZGVyPSIxIj4KICA8dGJvZHk+CiAgICA8dHI+CiAgICAgIDx0ZCB3aWR0aD0iMjkwIj48c3Ryb25nPlBsdWctaW48L3N0cm9uZz48L3RkPgogICAgICA8dGQgd2lkdGg9IjYwIj48ZGl2IGFsaWduPSJjZW50ZXIiPgoKICAgICAgICAgIDxwIGFsaWduPSJjZW50ZXIiPjxiPjMuNDxicj4KICAgICAgICAgICAgbWluaW11bTxicj4KICAgICAgICAgICAgZXhlY3V0aW9uPGJyPgogICAgICAgICAgICBlbnZpcm9ubWVudCA8L2I+PC9wPgogICAgICAgIDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgoKICAgICAgPHRkPmphdmF4LnNlcnZsZXQ8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5GMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5qYXZheC5zZXJ2bGV0LmpzcDwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KCiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuYXBhY2hlLmFudDwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuMjwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmFwYWNoZS5jb21tb25zLmVsPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmFwYWNoZS5qYXNwZXI8L3RkPgoKICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmFwYWNoZS5sdWNlbmU8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5uL2E8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5hbnQuY29yZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuYW50LnVpPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuY29tcGFyZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPm4vYTwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuY29yZS5ib290PC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmNvcmUuY29tbWFuZHM8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5GMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5jb3JlLmNvbnRlbnR0eXBlPC90ZD4KCiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmNvcmUuZXhwcmVzc2lvbnM8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5GMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CgogICAgICA8dGQ+b3JnLmVjbGlwc2UuY29yZS5maWxlYnVmZmVyczwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuY29yZS5maWxlc3lzdGVtPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuY29yZS5qb2JzPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuY29yZS5uZXQ8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgoKICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlczwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMuY29tcGF0aWJpbGl0eTwvdGQ+CgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmNvcmUucnVudGltZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuY29tcGF0aWJpbGl0eTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmNvbXBhdGliaWxpdHkuYXV0aDwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KCiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuY29tcGF0aWJpbGl0eS5yZWdpc3RyeTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmNvcmUudmFyaWFibGVzPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KCiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuZGVidWcuY29yZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuZGVidWcudWk8L3RkPgoKICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5lcXVpbm94LmFwcDwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5lcXVpbm94LmNvbW1vbjwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmVxdWlub3guaHR0cC5qZXR0eTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KCiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5lcXVpbm94Lmh0dHAuc2VydmxldDwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmVxdWlub3guaHR0cC5yZWdpc3RyeTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgoKICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5lcXVpbm94LmpzcC5qYXNwZXI8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5GMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5lcXVpbm94LmpzcC5qYXNwZXIucmVnaXN0cnk8L3RkPgoKICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuZXF1aW5veC5sYXVuY2hlcjwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5lcXVpbm94LnByZWZlcmVuY2VzPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuZXF1aW5veC5yZWdpc3RyeTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KCiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5oZWxwPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5oZWxwLmFwcHNlcnZlcjwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmhlbHAuYmFzZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuaGVscC51aTwvdGQ+CgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmhlbHAud2ViYXBwPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuamR0PC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5qZHQuYXB0LmNvcmU8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjU8L2Rpdj48L3RkPgoKICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5qZHQuYXB0LnVpPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS41PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5qZHQuY29tcGlsZXIuYXB0PC90ZD4KCiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNjwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuamR0LmNvbXBpbGVyLnRvb2w8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjY8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5qZHQuY29yZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuamR0LmNvcmUubWFuaXB1bGF0aW9uPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuamR0LmRlYnVnPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5qZHQuZGVidWcudWk8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgoKICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5qZHQuZG9jLmlzdjwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPm4vYTwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuamR0LmRvYy51c2VyPC90ZD4KCiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPm4vYTwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UuamR0Lmp1bml0PC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CgogICAgICA8dGQ+b3JnLmVjbGlwc2UuamR0Lmp1bml0LnJ1bnRpbWU8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmpkdC5qdW5pdDQucnVudGltZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNTwvZGl2PjwvdGQ+CiAgICA8L3RyPgoKICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmc8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmpkdC5zb3VyY2U8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5uL2E8L2Rpdj48L3RkPgoKICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5qZHQudWk8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmpmYWNlPC90ZD4KCiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmpmYWNlLnRleHQ8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5qc2NoLmNvcmU8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLmpzY2gudWk8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KCiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5sdGsuY29yZS5yZWZhY3RvcmluZzwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UubHRrLnVpLnJlZmFjdG9yaW5nPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KCiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2Uub3NnaSAoc3lzdGVtLmJ1bmRsZSk8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5NMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5vc2dpLnNlcnZpY2VzPC90ZD4KCiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPk0xLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLm9zZ2kudXRpbDwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPk0xLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5wZGU8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnBkZS5idWlsZDwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgoKICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnBkZS5jb3JlPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5wZGUuZG9jLnVzZXI8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5uL2E8L2Rpdj48L3RkPgoKICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5wZGUuanVuaXQucnVudGltZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UucGRlLnJ1bnRpbWU8L3RkPgoKICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5wZGUuc291cmNlPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+bi9hPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CgogICAgICA8dGQ+b3JnLmVjbGlwc2UucGRlLnVpPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5wZGUudWkudGVtcGxhdGVzPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UucGxhdGZvcm08L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5GMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5wbGF0Zm9ybS5kb2MuaXN2PC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+bi9hPC9kaXY+PC90ZD4KCiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UucGxhdGZvcm0uZG9jLnVzZXI8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5uL2E8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnBsYXRmb3JtLnNvdXJjZTwvdGQ+CgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5uL2E8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnBsYXRmb3JtLnNvdXJjZS4qPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+bi9hPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CgogICAgICA8dGQ+b3JnLmVjbGlwc2UucmNwPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UucmNwLnNvdXJjZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPm4vYTwvZGl2PjwvdGQ+CiAgICA8L3RyPgoKICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnJjcC5zb3VyY2UuKjwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPm4vYTwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2Uuc2RrPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+bi9hPC9kaXY+PC90ZD4KCiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2Uuc2VhcmNoPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS5zd3Q8L3RkPgoKICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiPjxkaXYgYWxpZ249ImNlbnRlciI+TTEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2Uuc3d0Lio8L3RkPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiI+PGRpdiBhbGlnbj0iY2VudGVyIj5NMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CgogICAgICA8dGQ+b3JnLmVjbGlwc2UudGVhbS5jb3JlPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS50ZWFtLmN2cy5jb3JlPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UudGVhbS5jdnMuc3NoPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS50ZWFtLmN2cy5zc2gyPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KCiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UudGVhbS5jdnMudWk8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnRlYW0udWk8L3RkPgoKICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS50ZXh0PC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CgogICAgICA8dGQ+b3JnLmVjbGlwc2UudG9tY2F0PC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+bi9hPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KCiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS5icm93c2VyPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS5jaGVhdHNoZWV0czwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnVpLmNvbnNvbGU8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnVpLmVkaXRvcnM8L3RkPgoKICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CgogICAgICA8dGQ+b3JnLmVjbGlwc2UudWkuZm9ybXM8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnVpLmlkZTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnVpLmludHJvPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS5pbnRyby51bml2ZXJzYWw8L3RkPgoKICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS5uYXZpZ2F0b3I8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KCiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS5uYXZpZ2F0b3IucmVzb3VyY2VzPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS5uZXQ8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KCiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS5wcmVzZW50YXRpb25zLnIyMTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UudWkudmlld3M8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgoKICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51aS53aW4zMjwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UudWkud29ya2JlbmNoPC90ZD4KCiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnVpLndvcmtiZW5jaC5jb21wYXRpYmlsaXR5PC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS40PC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CgogICAgICA8dGQ+b3JnLmVjbGlwc2UudWkud29ya2JlbmNoLnRleHRlZGl0b3I8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj4xLjQ8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnVwZGF0ZS5jb25maWd1cmF0b3I8L3RkPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiI+PGRpdiBhbGlnbj0iY2VudGVyIj5GMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UudXBkYXRlLmNvcmU8L3RkPgogICAgICA8dGQgYmdjb2xvcj0iI2ZmZmZmZiI+PGRpdiBhbGlnbj0iY2VudGVyIj5GMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51cGRhdGUuY29yZS5saW51eDwvdGQ+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIj48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgoKICAgIDwvdHI+CiAgICA8dHI+CiAgICAgIDx0ZD5vcmcuZWNsaXBzZS51cGRhdGUuY29yZS53aW4zMjwvdGQ+CiAgICAgIDx0ZCBiZ2NvbG9yPSIjZmZmZmZmIj48ZGl2IGFsaWduPSJjZW50ZXIiPkYxLjA8L2Rpdj48L3RkPgogICAgPC90cj4KICAgIDx0cj4KICAgICAgPHRkPm9yZy5lY2xpcHNlLnVwZGF0ZS5zY2hlZHVsZXI8L3RkPgoKICAgICAgPHRkIGJnY29sb3I9IiNmZmZmZmYiPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmVjbGlwc2UudXBkYXRlLnVpPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+RjEuMDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgoKICAgICAgPHRkPm9yZy5qdW5pdCAob2xkKTwvdGQ+CiAgICAgIDx0ZD48ZGl2IGFsaWduPSJjZW50ZXIiPjEuNDwvZGl2PjwvdGQ+CiAgICA8L3RyPgogICAgPHRyPgogICAgICA8dGQ+b3JnLmp1bml0IChKVW5pdDQpPC90ZD4KICAgICAgPHRkPjxkaXYgYWxpZ249ImNlbnRlciI+MS41PC9kaXY+PC90ZD4KICAgIDwvdHI+CgogICAgPHRyPgogICAgICA8dGQ+b3JnLm1vcnRiYXkuamV0dHk8L3RkPgogICAgICA8dGQ+PGRpdiBhbGlnbj0iY2VudGVyIj5GMS4wPC9kaXY+PC90ZD4KICAgIDwvdHI+CiAgPC90Ym9keT4KPC90YWJsZT4KCjwvYm9keT4KPC9odG1sPg==