PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPjxodG1sPjxoZWFkPjx0aXRsZT5BcGFjaGUgUmFtcGFydC9DIC0gSW5zdGFsbGF0aW9uIEd1aWRlPC90aXRsZT48c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiPgogICAgICAgICAgQGltcG9ydCB1cmwoIi4uL3N0eWxlL21hdmVuLWJhc2UuY3NzIik7CiAgICAgICAgICAKCQkJICAgIEBpbXBvcnQgdXJsKCIuLi9zdHlsZS9tYXZlbi1jbGFzc2ljLmNzcyIpOzwvc3R5bGU+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9zdHlsZS9wcmludC5jc3MiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0icHJpbnQiPjwvbGluaz48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48L21ldGE+PC9oZWFkPjxib2R5IGNsYXNzPSJjb21wb3NpdGUiPjxkaXYgaWQ9ImJhbm5lciI+PGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyIgaWQ9Im9yZ2FuaXphdGlvbkxvZ28iPjxpbWcgYWx0PSJBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiIgc3JjPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvaW1hZ2VzL2FzZi1sb2dvLmdpZiI+PC9pbWc+PC9hPjxhIGhyZWY9Imh0dHA6Ly93cy5hcGFjaGUub3JnL3JhbXBhcnQvYyIgaWQ9InByb2plY3RMb2dvIj48aW1nIGFsdD0iQXBhY2hlIFJhbXBhcnQvQyIgc3JjPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9yYW1wYXJ0L2MvaW1hZ2VzL3JhbXBhcnRjX2xvZ28uanBnIj48L2ltZz48L2E+PGRpdiBjbGFzcz0iY2xlYXIiPjxocj48L2hyPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImJyZWFkY3J1bWJzIj48ZGl2IGNsYXNzPSJ4bGVmdCI+CiAgICAgICAgICAgICAgICAJTGFzdCBwdWJsaXNoZWQ6IDEzIE1heSAyMDA5CiAgICAgICAgICAgICAgICAgIHwgRG9jIGZvciAxLjMuMDwvZGl2PjxkaXYgY2xhc3M9InhyaWdodCI+PC9kaXY+PGRpdiBjbGFzcz0iY2xlYXIiPjxocj48L2hyPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImxlZnRDb2x1bW4iPjxkaXYgaWQ9Im5hdmNvbHVtbiI+PGRpdiBpZD0ibWVudUFwYWNoZV9SYW1wYXJ0X0MiPjxoNT5BcGFjaGUgUmFtcGFydC9DPC9oNT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi9pbmRleC5odG1sIj5BcGFjaGUgUmFtcGFydC9DIEhvbWU8L2E+PC9saT48bGkgY2xhc3M9ImV4cGFuZGVkIj48YSBocmVmPSIuLi9kb3dubG9hZC5jZ2kiPkRvd25sb2FkIFJhbXBhcnQvQzwvYT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi9kb3dubG9hZC5jZ2kiPlJlbGVhc2VzPC9hPjwvbGk+PC91bD48L2xpPjxsaSBjbGFzcz0iZXhwYW5kZWQiPjxhIGhyZWY9Ii4uL2RvY3MvaW5kZXguaHRtbCI+RG9jdW1lbnRhdGlvbjwvYT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi9kb2NzL2luc3RhbGxhdGlvbmd1aWRlLmh0bWwiPkluc3RhbGxhdGlvbiBHdWlkZTwvYT48L2xpPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iLi4vZG9jcy9yYW1wYXJ0Y19tYW51YWwuaHRtbCI+UmFtcGFydC9DIG1hbnVhbDwvYT48L2xpPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iLi4vZG9jcy9jb25maWd1cmF0aW9ucy5odG1sIj5Db25maWd1cmF0aW9ucyBndWlkZTwvYT48L2xpPjwvdWw+PC9saT48bGkgY2xhc3M9ImV4cGFuZGVkIj48YSBocmVmPSIuLi9saXN0c19pc3N1ZXMuaHRtbCI+R2V0IEludm9sdmVkPC9hPjx1bD48bGkgY2xhc3M9Im5vbmUiPjxhIGhyZWY9Ii4uL2xpc3RzX2lzc3Vlcy5odG1sIj5NYWlsaW5nIExpc3RzICZhbXA7IElzc3VlIFRyYWNraW5nPC9hPjwvbGk+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi9zdm4uaHRtbCI+Q2hlY2tvdXQgU291cmNlIENvZGU8L2E+PC9saT48L3VsPjwvbGk+PGxpIGNsYXNzPSJleHBhbmRlZCI+PGEgaHJlZj0iLi4vY29kaW5nX2NvbnZlbnRpb25zLmh0bWwiPkRldmVsb3BlciBHdWlkZWxpbmVzPC9hPjx1bD48bGkgY2xhc3M9Im5vbmUiPjxhIGhyZWY9Ii4uL2NvZGluZ19jb252ZW50aW9ucy5odG1sIj5Db2RpbmcgQ29udmVudGlvbjwvYT48L2xpPjxsaSBjbGFzcz0ibm9uZSI+PGEgaHJlZj0iLi4vdmVyc2lvbmluZy5odG1sIj5WZXJzaW9ubmluZzwvYT48L2xpPjwvdWw+PC9saT48bGkgY2xhc3M9ImV4cGFuZGVkIj48YSBocmVmPSIuLi90ZWFtLWxpc3QuaHRtbCI+UHJvamVjdCBJbmZvcm1hdGlvbjwvYT48dWw+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSIuLi90ZWFtLWxpc3QuaHRtbCI+UHJvamVjdCBUZWFtPC9hPjwvbGk+PGxpIGNsYXNzPSJub25lIj48YSBocmVmPSJodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld2N2cy5jZ2kvd2Vic2VydmljZXMvcmFtcGFydC90cnVuay9jLyIgY2xhc3M9ImV4dGVybmFsTGluayIgdGl0bGU9IkV4dGVybmFsIExpbmsiPlNvdXJjZSBDb2RlPC9hPjwvbGk+PC91bD48L2xpPjwvdWw+PC9kaXY+PGEgaHJlZj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvIiB0aXRsZT0iQnVpbHQgYnkgTWF2ZW4iIGlkPSJwb3dlcmVkQnkiPjxpbWcgYWx0PSJCdWlsdCBieSBNYXZlbiIgc3JjPSIuLi9pbWFnZXMvbG9nb3MvbWF2ZW4tYnV0dG9uLTEucG5nIj48L2ltZz48L2E+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYm9keUNvbHVtbiI+PGRpdiBjbGFzcz0iY29udGVudEJveCI+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGEgbmFtZT0iQXBhY2hlX1JhbXBhcnRfQ19JbnN0YWxsYXRpb25fR3VpZGUiPjwvYT48aDI+QXBhY2hlIFJhbXBhcnQvQyBJbnN0YWxsYXRpb24gR3VpZGU8L2gyPjxwPlRoaXMgZG9jdW1lbnQgZ3VpZGVzIHlvdSBvbiBob3cgdG8gaW5zdGFsbCBSYW1wYXJ0L0MuPC9wPjxwPllvdSBtdXN0IGhhdmUgPGEgaHJlZj0iaHR0cDovL3d3dy5vcGVuc3NsLm9yZyIgY2xhc3M9ImV4dGVybmFsTGluayIgdGl0bGU9IkV4dGVybmFsIExpbmsiPk9wZW5TU0w8L2E+IDAuOS44IChvciBhYm92ZSkgaW5zdGFsbGVkIGluIHlvdSBzeXN0ZW0uPC9wPjxwPlRoaXMgcmVsZWFzZSBjb21lcyBpbiB0d28gZm9ybXMsIHNvdXJjZSBhbmQgYmluYXJ5LiBUaGlzIGRvY3VtZW50IGNvdmVycwpib3RoIGZvcm1zLjwvcD48cD5QbGVhc2Ugc2VuZCB5b3VyIGZlZWRiYWNrIHRvIHRoZSBkZXZlbG9wZXIgbWFpbGluZyBsaXN0OiA8YSBocmVmPSJtYWlsdG86cmFtcGFydC1jLWRldkB3cy5hcGFjaGUub3JnIj5yYW1wYXJ0LWMtZGV2QHdzLmFwYWNoZS5vcmc8L2E+CihTdWJzY3JpcHRpb24gZGV0YWlscyBhcmUgYXZhaWxhYmxlIG9uIHRoZSA8YSBocmVmPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9yYW1wYXJ0L2MvbWFpbC1saXN0cy5odG1sIiBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+UmFtcGFydC9DIHNpdGU8L2E+KS48L3A+PGRpdiBjbGFzcz0ic3Vic2VjdGlvbiI+PGEgbmFtZT0iQ29udGVudHMiPjwvYT48aDM+Q29udGVudHM8L2gzPjx1bD4KICA8bGk+PGEgaHJlZj0iI2xpbnV4Ij5JbnN0YWxsaW5nIGFuZCBSdW5uaW5nIG9uIExpbnV4PC9hPgogICAgPHVsPgogICAgICA8bGk+PGEgaHJlZj0iI2xpbnV4X2JpbmFyeSI+VXNpbmcgdGhlIEJpbmFyeSBSZWxlYXNlPC9hPjwvbGk+CiAgICAgIDxsaT48YSBocmVmPSIjbGludXhfc291cmNlIj5Vc2luZyB0aGUgU291cmNlIFJlbGVhc2U8L2E+PC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+PGEgaHJlZj0iI3dpbiI+SW5zdGFsbGluZyBhbmQgUnVubmluZyBvbiBNaWNyb3NvZnQgV2luZG93cyAod2luMzIpPC9hPgogICAgPHVsPgogICAgICA8bGk+PGEgaHJlZj0iI3dpbl9iaW5hcnkiPlVzaW5nIHRoZSBCaW5hcnkgUmVsZWFzZTwvYT48L2xpPgogICAgICA8bGk+PGEgaHJlZj0iI3dpbl9zb3VyY2UiPlVzaW5nIHRoZSBTb3VyY2UgUmVsZWFzZTwvYT48L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT48YSBocmVmPSIjZW5nYWdlIj5FbmdhZ2UgUmFtcGFydC9DIHdpdGggQXhpczIvQzwvYT48L2xpPgogIAo8L3VsPjxwPjxhIGlkPSJsaW51eCI+PC9hPjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzdWJzZWN0aW9uIj48YSBuYW1lPSIxX19JbnN0YWxsaW5nX2FuZF9SdW5uaW5nX29uX0xpbnV4Ij48L2E+PGgzPjEuIEluc3RhbGxpbmcgYW5kIFJ1bm5pbmcgb24gTGludXg8L2gzPjxwPlRoaXMgY2FuIGJlIGRvbmUgdXNpbmcgYmluYXJ5IG9yIHNvdXJjZSBkaXN0cmlidXRpb25zLiAoPGEgaHJlZj0iaHR0cDovL3dzLmFwYWNoZS5vcmcvcmFtcGFydC9jL2Rvd25sb2FkLmNnaSIgY2xhc3M9ImV4dGVybmFsTGluayIgdGl0bGU9IkV4dGVybmFsIExpbmsiPkRvd25sb2FkPC9hPiB0aGUgdHdvCmRpc3RyaWJ1dGlvbnMpPC9wPjxwPjxhIGlkPSJsaW51eF9iaW5hcnkiPjwvYT48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic3Vic2VjdGlvbiI+PGEgbmFtZT0iMV8xX19JbnN0YWxsaW5nX3RoZV9CaW5hcnlfRGlzdHJpYnV0aW9uIj48L2E+PGgzPjEuMS4gSW5zdGFsbGluZyB0aGUgQmluYXJ5IERpc3RyaWJ1dGlvbjwvaDM+PHA+VGhlIGZvbGxvd2luZyBzdGVwcyBoYXZlIHRvIGJlIGZvbGxvd2VkIHRvIGluc3RhbGwgYW5kIHJ1biB0aGUgUmFtcGFydC9DCmJpbmFyeSBkaXN0cmlidXRpb24gb24gTGludXggOiA8L3A+PG9sPgogIDxsaT5FeHRyYWN0IHRoZSBiaW5hcnkgdGFyIHBhY2thZ2UgdG8gYSBmb2xkZXIuPC9saT4KICA8bGk+U2V0IHRoZSBBWElTMkNfSE9NRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBwb2ludGluZyB0byB0aGUgbG9jYXRpb24gd2hlcmUKICAgIHlvdSBoYXZlIGV4dHJhY3RlZCBBeGlzMi9DCiAgICA8dWw+CiAgICAgIDxsaT5BWElTMkNfSE9NRT0nL3lvdXJfcGF0aF90b19heGlzMmMnPC9saT4KICAgICAgPGxpPmV4cG9ydCBBWElTMkNfSE9NRTwvbGk+CiAgICA8L3VsPgogIDwvbGk+CiAgPGxpPkNvcHkgbW9kdWxlcy8qIHRvICRBWElTMkNfSE9NRS9tb2R1bGVzLwogIDwvbGk+PGxpPkNvcHkgbGliLyogdG8gJEFYSVMyQ19IT01FL2xpYgogIDwvbGk+PGxpPkNvcHkgc2VydmljZXMvKiB0byAkQVhJUzJDX0hPTUUvc2VydmljZXMvCiAgPC9saT48bGk+Q29weSBzYW1wbGVzLyogdG8gJEFYSVMyQ19IT01FL3NhbXBsZXMvLiBUaGlzIHdpbGwgY29weSBjYWxsYmFjayBtb2R1bGVzIGV0Yy4KICA8L2xpPjxsaT5FbmdhZ2UgUmFtcGFydC9DIGFzIHNwZWNpZmllZCBpbiB0aGUgc2VjdGlvbiA8YSBocmVmPSIjZW5nYWdlIj5FbmdhZ2UgUmFtcGFydC9DIHdpdGggQXhpczIvQzwvYT4KICA8L2xpPjxsaT5HbyB0byBzYW1wbGVzL3NyYy9yYW1wYXJ0Yy9jbGllbnQvIGFuZCBkZXBsb3kgdGhlIGNsaWVudCByZXBvCgk8cHJlPiVzaCBkZXBsb3lfY2xpZW50X3JlcG8uc2g8L3ByZT4KICAgPC9saT48bGk+R28gdG8gc2FtcGxlcy9zcmMvcmFtcGFydGMvc2VjcG9saWN5LyBhbmQgdHJ5IGEgc2NlbmFyaW8KCTxwcmU+ICVzaCB0ZXN0X3NjZW4uc2ggc2NlbmFyaW9YIHNlcnZlci1wb3J0PC9wcmU+CjwvbGk+PC9vbD48cD48YSBpZD0ibGludXhfc291cmNlIj48L2E+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InN1YnNlY3Rpb24iPjxhIG5hbWU9IjFfMl9fSW5zdGFsbGluZ190aGVfU291cmNlX0Rpc3RyaWJ1dGlvbiI+PC9hPjxoMz4xLjIuIEluc3RhbGxpbmcgdGhlIFNvdXJjZSBEaXN0cmlidXRpb248L2gzPjxwPlRoZSBmb2xsb3dpbmcgc3RlcHMgaGF2ZSB0byBiZSBmb2xsb3dlZCB0byBpbnN0YWxsIGFuZCBydW4gUmFtcGFydC9DIHVzaW5nCnRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uIG9uIExpbnV4IDo8L3A+PG9sPgogIDxsaT5FeHRyYWN0IHRoZSBzb3VyY2UgdGFyIHBhY2thZ2UgdG8gYSBmb2xkZXIuPC9saT4KICA8bGk+U2V0IHRoZSBBWElTMkNfSE9NRSBlbnZpcm9ubWVudCB2YXJpYWJsZSBwb2ludGluZyB0byB0aGUgbG9jYXRpb24gd2hlcmUKICAgIHlvdSB3YW50IHRvIGluc3RhbGwgQXhpczIvQwogICAgPHVsPgogICAgICA8bGk+QVhJUzJDX0hPTUU9Jy95b3VyX2Rlc2lyZWRfcGF0aF90b19heGlzMmNfaW5zdGFsbGF0aW9uJzwvbGk+CiAgICAgIDxsaT5leHBvcnQgQVhJUzJDX0hPTUU8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5UaGVuIGdvIHRvIHRoZSBmb2xkZXIgd2hlcmUgeW91IGV4dHJhY3RlZCB0aGUgc291cmNlLgogIDwvbGk+CiAgPGxpPkJ1aWxkIHRoZSBzb3VyY2UKICAgIDx1bD4KICAgICAgPGxpPlRoaXMgY2FuIGJlIGRvbmUgdXNpbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIHNlcXVlbmNlLCBpbiB0aGUKICAgICAgICBkaXJlY3Rvcnkgd2hlcmUgeW91IGhhdmUgZXh0cmFjdGVkIHRoZSBzb3VyY2U6CiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPi4vY29uZmlndXJlIC0tcHJlZml4PSR7QVhJUzJDX0hPTUV9IC0tZW5hYmxlLXN0YXRpYz1ubyAtLXdpdGgtYXhpczI9JHtBWElTMkNfSE9NRX0vaW5jbHVkZS9heGlzMi0xLjYuMDwvbGk+CiAgICAgICAgICA8bGk+bWFrZTwvbGk+CiAgICAgICAgICA8bGk+bWFrZSBpbnN0YWxsPC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2xpPgogICAgICA8bGk+UGxlYXNlIHJ1biAiLi9jb25maWd1cmUgLS1oZWxwIiBpbiB0aGUgc2FtcGxlcyBmb2xkZXIgZm9yIG1vcmUKICAgICAgICBpbmZvcm1hdGlvbiBvbiB0aGUgY29uZmlndXJlIG9wdGlvbnMuPC9saT4KICAgIDwvdWw+CiAgPC9saT4KICA8bGk+RW5nYWdlIFJhbXBhcnQvQyBhcyBzcGVjaWZpZWQgaW4gdGhlIHNlY3Rpb24gPGEgaHJlZj0iI2VuZ2FnZSI+RW5nYWdlIFJhbXBhcnQvQyB3aXRoIEF4aXMyL0M8L2E+CiAgPC9saT48bGk+SWYgeW91IG5lZWQgdG8gdHJ5IHNhbXBsZXMsZmlyc3QgeW91IG5lZWQgdG8gYnVpbGQgdGhlbS4gR28gdG8gc2FtcGxlcyBhbmQgcnVuIHRoZSBzY3JpcHQgYnVpbGQuc2gKCTxwcmU+Cgklc2ggYnVpbGQuc2gKCTwvcHJlPgogIDwvbGk+PGxpPlRoZW4gZ28gdG8gIHNhbXBsZXMvc2VjcG9saWN5IGFuZCB0cnkgYSBzY2VuYXJpbwoJPHByZT4KCSVzaCB0ZXN0X3NjZW4uc2ggc2NlbmFyaW9YIHNlcnZlci1wb3J0Cgk8L3ByZT4KPC9saT48L29sPjxwPjxhIGlkPSJ3aW4iPjwvYT48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic3Vic2VjdGlvbiI+PGEgbmFtZT0iMl9fSW5zdGFsbGluZ19hbmRfUnVubmluZ19vbl9NaWNyb3NvZnRfV2luZG93cyI+PC9hPjxoMz4yLiBJbnN0YWxsaW5nIGFuZCBSdW5uaW5nIG9uIE1pY3Jvc29mdCBXaW5kb3dzPC9oMz48cD5UaGlzIHRvbyBjYW4gYmUgZG9uZSB1c2luZyBiaW5hcnkgb3Igc291cmNlIGRpc3RyaWJ1dGlvbnMuICg8YSBocmVmPSJodHRwOi8vd3MuYXBhY2hlLm9yZy9yYW1wYXJ0L2MvZG93bmxvYWQuY2dpIiBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+RG93bmxvYWQ8L2E+IHRoZSB0d28KZGlzdHJpYnV0aW9ucy4pIDwvcD48cD48YSBpZD0id2luX2JpbmFyeSI+PC9hPjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzdWJzZWN0aW9uIj48YSBuYW1lPSIyX18xX19JbnN0YWxsaW5nX3RoZV9CaW5hcnlfRGlzdHJpYnV0aW9uIj48L2E+PGgzPjIuIDEuIEluc3RhbGxpbmcgdGhlIEJpbmFyeSBEaXN0cmlidXRpb248L2gzPjxvbD4KICA8bGk+RXh0cmFjdCB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiB0byBhIGZvbGRlciBvZiB5b3VyIGNob2ljZS4gKGV4YW1wbGU6CiAgICBDOlxyYW1wYXJ0YykuPC9saT4KCTxsaT5TZXQgdGhlIEFYSVMyQ19IT01FIGVudmlyaW9ubWVudCB2YXJpYWJsZSB0byBkaXJlY3QgdG8geW91ciBBeGlzMi9DIEluc3RhbGxhdGlvbi4gPC9saT4KCTxwcmU+U0VUIEFYSVMyQ19IT01FPVt5b3VyLXBhdGgtdG8tYXhpczJjXTwvcHJlPgogIDxsaT5SdW4gdGhlIGRlcGxveV9yYW1wYXJ0LmJhdCB0aGF0IGNvdWxkIGJlIGZvdW5kIGluIHRoZSByb290IG9mIHRoZSByYW1wYXJ0IGJpbmFyeSBkaXN0cmlidXRpb24uPC9saT4KICA8bGk+RW5nYWdlIFJhbXBhcnQvQyBhcyBzcGVjaWZpZWQgaW4gdGhlIHNlY3Rpb24gPGEgaHJlZj0iI2VuZ2FnZSI+RW5nYWdlIFJhbXBhcnQvQyB3aXRoIEF4aXMyL0M8L2E+LgogICA8L2xpPjxsaT5HbyB0byBzYW1wbGVzL3NyYy9yYW1wYXJ0Yy9zZWNwb2xpY3kvIGFuZCB0cnkgYSBzY2VuYXJpbwoJPHByZT4gdGVzdF9zY2VuLmJhdCBzY2VuYXJpb1ggc2VydmVyLXBvcnQ8L3ByZT4KPC9saT48L29sPjxwPjxhIGlkPSJiaW5fcnVuIj48L2E+PGEgaWQ9Indpbl9zb3VyY2UiPjwvYT48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic3Vic2VjdGlvbiI+PGEgbmFtZT0iMl9fMl9fSW5zdGFsbGluZ19Tb3VyY2VfRGlzdHJpYnV0aW9uIj48L2E+PGgzPjIuIDIuIEluc3RhbGxpbmcgU291cmNlIERpc3RyaWJ1dGlvbjwvaDM+PC9kaXY+PGRpdiBjbGFzcz0ic3Vic2VjdGlvbiI+PGEgbmFtZT0iMl8yXzFfX1JlcXVpcmVtZW50cyI+PC9hPjxoMz4yLjIuMS4gUmVxdWlyZW1lbnRzPC9oMz48dWw+CiAgPGxpPlRoZSBtYWtlZmlsZSBzaGlwcGVkIHdpdGggdGhpcyB2ZXJzaW9uIG5lZWRzIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCiAgICBDb21waWxlciAoY2wpIGFuZCB0aGUgbm1ha2UgYnVpbGQgdG9vbC48L2xpPgoKICA8cD4oTm90ZTogWW91IGNhbiBkb3dubG9hZCB0aGUgPGEgaHJlZj0iaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS92c3R1ZGlvL2V4cHJlc3MvZG93bmxvYWRzLyIgY2xhc3M9ImV4dGVybmFsTGluayIgdGl0bGU9IkV4dGVybmFsIExpbmsiPk1pY3Jvc29mdCBWU0V4cHJlc3MgZWRpdGlvbiBhbmQgUGxhdGZvcm0gU0RLPC9hPiBmcm9tIHRoZSBNaWNyb3NvZnQgV2ViCiAgc2l0ZS4gWW91IHdpbGwgbmVlZCB0byBhZGQgdGhlIHBhdGggdG8gdGhlIFBsYXRmb3JtIFNESyBJbmNsdWRlIGFuZCBMaWIKICBmb2xkZXJzIHRvIHRoZSBtYWtlZmlsZSk8L3A+CiAgCjwvdWw+PHA+PGEgaWQ9ImVkaXQiPjwvYT48YSBpZD0ic3JjX2NvbXBpbGUiPjwvYT48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic3Vic2VjdGlvbiI+PGEgbmFtZT0iMl8yXzJfX0NvbXBpbGluZ190aGVfU291cmNlIj48L2E+PGgzPjIuMi4yLiBDb21waWxpbmcgdGhlIFNvdXJjZTwvaDM+PHA+VGhlIGZvbGxvd2luZyBzdGVwcyB3aWxsIHRha2UgeW91IHRocm91Z2ggdGhlIHNvdXJjZSBjb21waWxhdGlvbi48L3A+PHVsPgogIDxsaT5FeHRyYWN0IHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uIHRvIGEgZm9sZGVyIG9mIHlvdXIgY2hvaWNlLiAoRXhhbXBsZToKICAgIEM6XHJhbXBhcnRjKTwvbGk+CiAgPGxpPkVkaXQgdGhlIGNvbmZpZ3VyZS5pbiBmaWxlIHRvIHNwZWNpZnkgdGhlIEF4aXMyL0MgcmVwb3NpdG9yeSBwYXRoIGFuZCB0aGUgT3BlblNTTCBpbnN0YWxsYXRpb24gcGF0aAoJPHVsPgoJICAgPGxpPkFYSVMyX0JJTl9ESVIgPSBwYXRoL3RvL3doZXJlL3lvdS9oYXZlL2luc3RhbGxlZC9heGlzMjwvbGk+CiAgICAgICAgICAgPGxpPk9QRU5TU0xfQklOX0RJUiA9IHBhdGgvdG8vd2hlcmUveW91L2hhdmUvaW5zdGFsbGVkL29wZW5zc2w8L2xpPgogICAgICAgICAgIDxsaT5ERUJVRyA9IDEgaWYgZW5hYmxlZCwgMCBvdGhlcndpc2U8L2xpPgoJPC91bD4KICAgPC9saT4KICA8bGk+T3BlbiBhIERPUyBzaGVsbDwvbGk+CiAgPGxpPmNkIEM6XHJhbXBhcnRjXGJ1aWxkXHdpbjMyPC9saT4KICA8bGk+dG8gYWNjZXNzIC5OZXQgdG9vbHMsIHJ1bgogICAgPHVsPgogICAgICA8bGk+QzpccmFtcGFydGNcYnVpbGRcd2luMzJcJmd0OyB2Y3ZhcnMzMi5iYXQ8L2xpPgogICAgPC91bD4KICAgIDxwPig8c3Ryb25nPk5vdGU8L3N0cm9uZz46IFlvdSBtYXkgaGF2ZSB0byBzZXQgdGhlIFBBVEggZW52aXJvbm1lbnQKICAgIHZhcmlhYmxlIHRvIHZjdmFyczMyLmJhdCBpZiBNUyBXaW5kb3dzIGdpdmVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBpdAogICAgY2Fubm90IGZpbmQgdGhpcyBiYXRjaCBmaWxlLiBUaGlzIGZpbGUgaXMgbG9jYXRlZCBpbiAmbHQ7eW91ciBNUyBWaXN1YWwKICAgIFN0dWRpbyBpbnN0YWxsIERpcmVjdG9yeSZndDtcVkNcYmluIGRpcmVjdG9yeS4pPC9wPgogIDwvbGk+CiAgPGxpPlRvIGJ1aWxkIHRoZSBzeXN0ZW0gYW5kIGNyZWF0ZSB0aGUgYmluYXJ5IGZpbGVzIGluIGEgZGlyZWN0b3J5IG5hbWVkCiAgICBkZXBsb3kgdW5kZXIgdGhlIGJ1aWxkIGRpcmVjdG9yeSwKICAgIDx1bD4KICAgICAgPGxpPkM6XHJhbXBhcnRjXGJ1aWxkXHdpbjMyJmd0O25tYWtlIGluc3RhbGw8L2xpPgogICAgPC91bD4KICA8L2xpPgogIDxsaT5FbmdhZ2UgUmFtcGFydC9DIGFzIHNwZWNpZmllZCBpbiB0aGUgc2VjdGlvbiA8YSBocmVmPSIjZW5nYWdlIj5FbmdhZ2UgUmFtcGFydC9DIHdpdGggQXhpczIvQzwvYT4KICA8L2xpPjxsaT5UaGVuIGdvIHRvICBzYW1wbGVzL3NlY3BvbGljeSBhbmQgdHJ5IGEgc2NlbmFyaW8KCTxwcmU+Cgl0ZXN0X3NjZW4uYmF0IHNjZW5hcmlvWCBzZXJ2ZXItcG9ydAoJPC9wcmU+CjwvbGk+PC91bD48cD48YSBpZD0ic3JjX3J1biI+PC9hPjxhIGlkPSJlbmdhZ2UiPjwvYT48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic3Vic2VjdGlvbiI+PGEgbmFtZT0iRW5nYWdlX1JhbXBhcnRfQ193aXRoX2F4aXMyX0MiPjwvYT48aDM+RW5nYWdlIFJhbXBhcnQvQyB3aXRoIGF4aXMyL0M8L2gzPjxwPllvdSBjYW4gZW5nYWdlIFJhbXBhcnQvQyBpbiBnbG9iYWwgbGV2ZWwgb3IgaW4gc2VydmljZSBsZXZlbC48L3A+PHA+SnVzdCBhZGQgdGhlIGZvbGxvd2luZyBlbnRyeSBlaXRoZXIgdG8gYXhpczIueG1sKGdsb2FibCBsZXZlbCkgb3IgaW4gc2VydmljZXMueG1sKHNlcnZpY2UgbGV2ZWwpIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNlcnZpY2UgeW91IHdhbnQgdG8gc2VjdXJlLjwvcD4KICAgIDxkaXYgY2xhc3M9InNvdXJjZSI+PHByZT4gICAKICAgJmx0O21vZHVsZSByZWY9InJhbXBhcnQiLyZndDsKCgo8L3ByZT48L2Rpdj4KICA8cD5JZiB5b3Ugd2FudCB0byBwcm92aWRlIFNlY3VyZSBUb2tlbiBTZXJ2aWNlIChTVFMpIGZ1bmN0aW9uYWxpdHkgdG8gYSBzZXJ2aWNlLCBhZGQgdGhlIGZvbGxvd2luZyBlbnRyeSB0byBzZXJ2aWNlcy54bWwuIDwvcD48cD4mbHQ7bW9kdWxlIHJlZj0icmFoYXMiLyZndDsKCjwvcD48cD5UaGVuIGFkZCBmb2xsb3dpbmcgIlNlY3VyaXR5IiBwaGFzZSB0byB0aGUgcGhhc2Ugb3JkZXIgaW4gdGhlIGluZmxvdyBhbmQgb3V0ZmxvdyBpbiB0aGUgYXhpczIueG1sLiBBbHNvIGFkZCAiUmFoYXMiIHBoYXNlIHRvIGluZmxvdy48L3A+CiAgICA8ZGl2IGNsYXNzPSJzb3VyY2UiPjxwcmU+CiAgICAmbHQ7cGhhc2VPcmRlciB0eXBlPSJpbmZsb3ciJmd0OwogICAgICAgICZsdDtwaGFzZSBuYW1lPSJUcmFuc3BvcnQiLyZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iUHJlRGlzcGF0Y2giLyZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iRGlzcGF0Y2giLyZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iUG9zdERpc3BhdGNoIi8mZ3Q7CiAgICAgICAgJmx0O3BoYXNlIG5hbWU9IlNlY3VyaXR5IiAvJmd0OwogICAgICAgICZsdDtwaGFzZSBuYW1lPSJSYWhhcyIvJmd0OwogICAgJmx0Oy9waGFzZU9yZGVyJmd0OwogICAgJmx0O3BoYXNlT3JkZXIgdHlwZT0ib3V0ZmxvdyImZ3Q7CiAgICAgICAgJmx0O3BoYXNlIG5hbWU9Ik1lc3NhZ2VPdXQiLyZndDsKICAgICAgICAmbHQ7cGhhc2UgbmFtZT0iU2VjdXJpdHkiLyZndDsKICAgICZsdDsvcGhhc2VPcmRlciZndDsKCgo8L3ByZT48L2Rpdj4KICA8cD5BcGFydCBmcm9tIHRoYXQgeW91IG11c3QgZGVmaW5lIHNlY3VyaXR5IHBvbGljaWVzIGZvciB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyLgo8L3A+PHA+PC9wPjxwPgo8YnI+PC9icj4KPHN0cm9uZz5DTElFTlQgU0lERTo8L3N0cm9uZz4KPC9wPjxwPkluIHRoZSBjbGllbnQgc2lkZSBqdXN0IGRyb3AgYSBwb2xpY3kueG1sIGZpbGUgdG8gdGhlIHNhbWUgbG9jYXRpb24oY2xpZW50LXJlcG8pIHdoZXJlIHlvdSBoYXZlIHRoZSBheGlzMi54bWwuCjwvcD48cD48L3A+PHA+Cjxicj48L2JyPgo8c3Ryb25nPlNFUlZFUiBTSURFOjwvc3Ryb25nPgo8L3A+PHA+QWRkIFdTLVNlY3VyaXR5IFBvbGljeSBhc3NlcnRpb25zIHRvIHRoZSBzZXJ2aWNlcy54bWwuCjwvcD48cD48L3A+PHA+PHN0cm9uZz5OT1RFOjwvc3Ryb25nPiBQbGVhc2UgZmluZCBzYW1wbGUgc2VjdXJpdHkgcG9saWN5IGZpbGVzIHRoYXQgYXJlIGxvY2F0ZWQgdW5kZXIgPGEgaHJlZj0iaHR0cDovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi93ZWJzZXJ2aWNlcy9yYW1wYXJ0L3RydW5rL2Mvc2FtcGxlcy9zZWNwb2xpY3kvIiBjbGFzcz0iZXh0ZXJuYWxMaW5rIiB0aXRsZT0iRXh0ZXJuYWwgTGluayI+c2FtcGxlcy9zZWNwb2xpY3k8L2E+PC9wPjxwPllvdSBtYXkgZ28gdGhyb3VnaCBlYWNoIGFuZCBldmVyeSBzY2VuYXJpbyBhbmQgc2VlIGhvdyBSYW1wYXJ0L0MgaXMgY29uZmlndXJlZCB1c2luZyB0aGUgcG9saWN5IGFzc2VydGlvbnMgYXZhaWxhYmxlIGluIHJlc3BlY3RpdmUgcG9saWN5IGZpbGVzLgo8YnI+PC9icj4KRm9yIGVhY2ggc2NlbmFyaW8gdGhlcmUgYXJlIHR3byBmaWxlczwvcD48b2w+CiAgPGxpPmNsaWVudC1wb2xpY3kueG1sIDogRGVmaW5lcyB3aGF0IHRoZSBzZWN1cml0eSBjb25maWd1cmF0aW9ucyBhcmUgZm9yIHRoZSBjbGllbnQgdXNpbmcgc2VjdXJpdHkgcG9saWNpZXM8L2xpPgogIDxsaT5zZXJ2aWNlcy54bWwgOiBEZWZpbmVzIHdoYXQgdGhlIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb25zIGFyZSBmb3IgYSBwYXJ0aWN1bGFyIHNlcnZpY2UgdXNpbmcgc2VjdXJpdHkgcG9saWNpZXM8L2xpPgo8L29sPjxwPjxzdHJvbmc+Tk9URTo8L3N0cm9uZz4gSWYgeW91IGhhdmUgY2hhbmdlZCBhIGNsaWVudCdzIHBvbGljeSBmaWxlLCBtYWtlIHN1cmUgdGhhdCB5b3UgY2hhbmdlIHRoZSBjb3JyZXNwb25kaW5nIHBvbGljeSBhc3NlcnRpb25zIGluIHRoZSBzZXJ2aWNlcy54bWwgZmlsZSBhcyB3ZWxsLCBhbmQgdmlzZSB2ZXJzYS4gPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNsZWFyIj48aHI+PC9ocj48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPjxkaXYgY2xhc3M9InhyaWdodCI+qSAyMDA1LTIwMDksIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uPC9kaXY+PGRpdiBjbGFzcz0iY2xlYXIiPjxocj48L2hyPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+