Cgo8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvbG9vc2UuZHRkIj4KICAgICAgICA8aHRtbCBsYW5nPSJlbiI+CiAgICA8IS0tIEdFTkVSQVRFRCBGSUxFLCBETyBOT1QgRURJVCwgRURJVCBUSEUgWE1MIEZJTEUgSU4geGRvY3MgSU5TVEVBRCEgLS0+CiAgICA8aGVhZD4KICAgICAgPE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+CiAgICAgICAgPHRpdGxlPkFwYWNoZSBBbnQgLSBDb250cmlidXRvcnM8L3RpdGxlPgogICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiBocmVmPSIuL3BhZ2UuY3NzIiByZWw9InN0eWxlc2hlZXQiPgogICAgICAgICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJBcGFjaGUgQW50IFBNQyI+CiAgPG1ldGEgbmFtZT0iZW1haWwiIGNvbnRlbnQ9IiI+CiAgICAgIDwvaGVhZD4KCiAgICA8Ym9keT4KICAgICAgPHAgY2xhc3M9Im5hdnBhdGgiPgogICAgICAgIDxzY3JpcHQgc3JjPSIuL2JyZWFkY3J1bWJzLmpzIiBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KICAgICAgPC9wPgoKICAgICAgPGRpdiBjbGFzcz0ibG9nb2JhciI+CiAgICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+CiAgICAgICAgICA8dHI+CiAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+PGltZyBib3JkZXI9IjAiIGFsdD0iQXBhY2hlIEFudCBzaXRlIiBzcmM9Ii4vaW1hZ2VzL2dyb3VwLWxvZ28uZ2lmIj48L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwMCUiPjxpbWcgYWx0PSJBcGFjaGUgQW50IGxvZ28iIGJvcmRlcj0iMCIgc3JjPSIuL2ltYWdlcy9wcm9qZWN0LWxvZ28uZ2lmIj48L3RkPgogICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij4KICAgICAgICAgICAgICA8Zm9ybSB0YXJnZXQ9Il9ibGFuayIgb25zdWJtaXQ9InEudmFsdWUgPSBxdWVyeS52YWx1ZSArICcgc2l0ZTphbnQuYXBhY2hlLm9yZyciIGFjdGlvbj0iaHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaCIgbWV0aG9kPSJnZXQiPgogICAgICAgICAgICAgICAgPHRhYmxlIHN1bW1hcnk9InNlYXJjaCIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJnY29sb3I9IiM0QzZDOEYiPgogICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjMiPjxpbWcgaGVpZ2h0PSIxMCIgd2lkdGg9IjEiIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL3NwYWNlci5naWYiPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+PGltZyBoZWlnaHQ9IjEiIHdpZHRoPSIxIiBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9zcGFjZXIuZ2lmIj48L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZCBub3dyYXA9Im5vd3JhcCIgY2xhc3M9InNlYXJjaGNhcHRpb24iPgogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9InEiIHR5cGU9ImhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgc2l6ZT0iMTUiIGlkPSJxdWVyeSIgdHlwZT0idGV4dCI+CiAgICAgICAgICAgICAgICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjUiIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL3NwYWNlci5naWYiPgogICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9IlNlYXJjaCIgdmFsdWU9IlNlYXJjaCIgdHlwZT0ic3VibWl0Ij4KICAgICAgICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgICAgICAgIHRoZSBBcGFjaGUgQW50IHNpdGUKICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgIDx0ZD48aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL3NwYWNlci5naWYiPjwvdGQ+CiAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICA8dGQ+PGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBoZWlnaHQ9IjEwIiB3aWR0aD0iOSIgc3JjPSIuL2ltYWdlcy9zZWFyY2gtbGVmdC5naWYiPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgPHRkPjxpbWcgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0PSIiIHNyYz0iLi9pbWFnZXMvc3BhY2VyLmdpZiI+PC90ZD4KICAgICAgICAgICAgICAgICAgICA8dGQ+PGltZyBhbHQ9IiIgYm9yZGVyPSIwIiBoZWlnaHQ9IjEwIiB3aWR0aD0iOSIgc3JjPSIuL2ltYWdlcy9zZWFyY2gtcmlnaHQuZ2lmIj48L3RkPgogICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGFibGU+CiAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFiIj4KICAgICAgICAgICAgICA8dGFibGUgc3VtbWFyeT0idGFiIGJhciIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiPgogICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHdpZHRoPSI4Ij48aW1nIGFsdD0iIiBoZWlnaHQ9IjUiIHdpZHRoPSI4IiBzcmM9Ii4vaW1hZ2VzL3NwYWNlci5naWYiPjwvdGQ+PHRkIHZhbGlnbj0iYm90dG9tIj4KICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBzdW1tYXJ5PSJzZWxlY3RlZCB0YWIiIHN0eWxlPSJoZWlnaHQ6IDEuNWVtIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0idG9wIiB3aWR0aD0iNSIgYmdjb2xvcj0iIzRDNkM4RiI+PGltZyBoZWlnaHQ9IjUiIHdpZHRoPSI1IiBhbHQ9IiIgc3JjPSIuL2ltYWdlcy90YWJTZWwtbGVmdC5naWYiPjwvdGQ+PHRkIHZhbGlnbj0ibWlkZGxlIiBiZ2NvbG9yPSIjNEM2QzhGIj48Zm9udCBjb2xvcj0iI2ZmZmZmZiIgc2l6ZT0iMiIgZmFjZT0iQXJpYWwsIEhlbHZldGljYSwgU2Fucy1zZXJpZiI+PGI+SG9tZTwvYj48L2ZvbnQ+PC90ZD48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSI1IiBiZ2NvbG9yPSIjNEM2QzhGIj48aW1nIGhlaWdodD0iNSIgd2lkdGg9IjUiIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL3RhYlNlbC1yaWdodC5naWYiPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iNSI+PGltZyBhbHQ9IiIgaGVpZ2h0PSI4IiB3aWR0aD0iOCIgc3JjPSIuL2ltYWdlcy9zcGFjZXIuZ2lmIj48L3RkPjx0ZCB2YWxpZ249ImJvdHRvbSI+CiAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgc3VtbWFyeT0ibm9uIHNlbGVjdGVkIHRhYiIgc3R5bGU9ImhlaWdodDogMS40ZW0iIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB2YWxpZ249InRvcCIgd2lkdGg9IjUiIGJnY29sb3I9IiNCMkM0RTAiPjxpbWcgaGVpZ2h0PSI1IiB3aWR0aD0iNSIgYWx0PSIiIHNyYz0iLi9pbWFnZXMvdGFiLWxlZnQuZ2lmIj48L3RkPjx0ZCB2YWxpZ249Im1pZGRsZSIgYmdjb2xvcj0iI0IyQzRFMCI+PGEgaHJlZj0iLi9wcm9qZWN0cy9pbmRleC5odG1sIj48Zm9udCBzaXplPSIyIiBmYWNlPSJBcmlhbCwgSGVsdmV0aWNhLCBTYW5zLXNlcmlmIj5Qcm9qZWN0czwvZm9udD48L2E+PC90ZD48dGQgdmFsaWduPSJ0b3AiIHdpZHRoPSI1IiBiZ2NvbG9yPSIjQjJDNEUwIj48aW1nIGhlaWdodD0iNSIgd2lkdGg9IjUiIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL3RhYi1yaWdodC5naWYiPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iYmx1ZWJhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgCiAgPGRpdiBjbGFzcz0ibWVudWNvbnRhaW5lciI+CgogICAgPGRpdiBjbGFzcz0ibWVudSI+CiAgICAgIDx1bD4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1lbnVoZWFkZXIiPkFwYWNoZSBBbnQKICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi9pbmRleC5odG1sIj5XZWxjb21lPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vbGljZW5zZS5odG1sIj5MaWNlbnNlPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vYW50bmV3cy5odG1sIj5OZXdzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJtZW51aGVhZGVyIj5Eb2N1bWVudGF0aW9uCiAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vbWFudWFsL2luZGV4Lmh0bWwiPk1hbnVhbDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuL3Byb2plY3RzLmh0bWwiPlJlbGF0ZWQgUHJvamVjdHM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi9leHRlcm5hbC5odG1sIj5FeHRlcm5hbCBUb29scyBhbmQgVGFza3M8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi9yZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vZmFxLmh0bWwiPkZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvYW50L0Zyb250UGFnZSI+V2lraTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIuL3Byb2JsZW1zLmh0bWwiPkhhdmluZyBQcm9ibGVtcz88L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1lbnVoZWFkZXIiPkRvd25sb2FkCiAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9hbnQuYXBhY2hlLm9yZy9iaW5kb3dubG9hZC5jZ2kiPkJpbmFyeSBEaXN0cmlidXRpb25zPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9hbnQuYXBhY2hlLm9yZy9zcmNkb3dubG9hZC5jZ2kiPlNvdXJjZSBEaXN0cmlidXRpb25zPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgPGxpIGNsYXNzPSJtZW51aGVhZGVyIj5Db250cmlidXRpbmcKICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi9tYWlsLmh0bWwiPk1haWxpbmcgTGlzdHM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi9jdnMuaHRtbCI+Q1ZTIFJlcG9zaXRvcmllczwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PUFudCI+QnVnIERhdGFiYXNlPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9lbnRlcl9idWcuY2dpP3Byb2R1Y3Q9QW50JmFtcDtidWdfc2V2ZXJpdHk9ZW5oYW5jZW1lbnQiPkVuaGFuY2VtZW50IFJlcXVlc3RzPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9mb3VuZGF0aW9uL2NvbnRyaWJ1dGluZy5odG1sIj5Eb25hdGlvbnM8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9saT4KICAgICAgICAgICAgICA8bGkgY2xhc3M9Im1lbnVoZWFkZXIiPlByb2plY3QgTWFuYWdlbWVudAogICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic2VsIj5Db250cmlidXRvcnM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vbWlzc2lvbi5odG1sIj5BcGFjaGUgQW50IE1pc3Npb248L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi9ieWxhd3MuaHRtbCI+UHJvamVjdCBCeWxhd3M8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLi9sZWdhbC5odG1sIj5MZWdhbDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2xpPgogICAgICAgICAgICA8L3VsPgogICAgPC9kaXY+CiAgICA8aW1nIHN0eWxlPSJmbG9hdDogbGVmdCIgaGVpZ2h0PSIxMCIgd2lkdGg9IjEwIiBib3JkZXI9IjAiIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL21lbnUtbGVmdC5naWYiPgogICAgPGltZyBzdHlsZT0iZmxvYXQ6IHJpZ2h0IiBoZWlnaHQ9IjEwIiB3aWR0aD0iMTAiIGJvcmRlcj0iMCIgYWx0PSIiIHNyYz0iLi9pbWFnZXMvbWVudS1yaWdodC5naWYiPgogIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsaWdodGJsdWViYXIiPiZuYnNwOzwvZGl2PgogIDxkaXYgY2xhc3M9Im1haW4iPgogIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgPGgxIGNsYXNzPSJ0aXRsZSI+Q29udHJpYnV0b3JzPC9oMT4KICAgICAgICAgICAgPGgzIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGEgbmFtZT0iUHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZSI+PC9hPgogICAgICBQcm9qZWN0IE1hbmFnZW1lbnQgQ29tbWl0dGVlCiAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9InN1YnNlY3Rpb24iPgogICAgICAgIDxhIG5hbWU9IkFjdGl2ZSBNZW1iZXJzIj48L2E+CiAgICAgICAgQWN0aXZlIE1lbWJlcnMKICAgICAgPC9oND4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5CcnVjZSBBdGhlcnRvbjwvYj4gKGJydWNlIGF0IGNhbGxlbmlzaC5jb20gLSA8YSBocmVmPSJodHRwOi8vd3d3LmNhbGxlbmlzaC5jb20vfmJydWNlIj5odHRwOi8vd3d3LmNhbGxlbmlzaC5jb20vfmJydWNlPC9hPikKPGJyIC8+CkN1cnJlbnRseSBhIFN5c3RlbXMgQXJjaGl0ZWN0IHdpdGggQXZ1ZSBUZWNobm9sb2dpZXMsIEJydWNlIGhhcyBiZWVuCndvcmtpbmcgd2l0aCBKYXZhIHNpbmNlIHZlcnNpb24gMS4wYTIuIEhlIGFsc28gY2xhaW1zIHRvIGJlIG9uZSBvZiB0aGUgZmlyc3QKcGVvcGxlIHRvIG1hcmsgdXAgYSBGQVEgd2l0aCBIVE1MLCBmb3IgYSB3ZWIgYnJvd3NlciBvZiB0aGUgZGlzdGFudCBwYXN0CmNhbGxlZCBDZWxsby4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+U3RlcGhhbmUgQmFpbGxpZXo8L2I+PGJyIC8+CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPk1hdHQgQmVuc29uPC9iPjxiciAvPgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5TdGVmYW4gQm9kZXdpZzwvYj4gKHN0ZWZhbi5ib2Rld2lnIGF0IGZyZWVuZXQuZGUpCjxiciAvPgpTdGVmYW4gaXMgYSBzZW5pb3IgZGV2ZWxvcGVyIGF0IEJvU1QgaW50ZXJhY3RpdmUsIHdoZXJlIGhlIGlzIG1haW5seQpyZXNwb25zaWJsZSBmb3IgYSBydWxlIGJhc2VkIGNvbmZpZ3VyYXRvciBzeXN0ZW0uIEhlIHNwZW5kcyBzb21lIHRpbWUKd29ya2luZyBvbiBPcGVuIFNvdXJjZSBwcm9qZWN0cyB3aXRoIEFudCBhbmQgR3VtcCBjdXJyZW50bHkgdGFraW5nIHRoZQpiaWdnZXN0IHNoYXJlIG9mIGl0LiAgSGUgaXMgYWxzbyBzZXJ2aW5nIGFzIHRoZSBDaGFpcm1hbiBvZiB0aGUgQXBhY2hlCkd1bXAgUE1DLgo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5FcmlrIEhhdGNoZXI8L2I+IChlaGF0Y2hlciBhdCBhcGFjaGUub3JnKQo8YnIgLz4KRXJpayBpcyB0aGUgY28tYXV0aG9yIG9mIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFubmluZy5jb20vaGF0Y2hlciI+CkphdmEgRGV2ZWxvcG1lbnQgd2l0aCBBbnQ8L2E+IGFuZCBzcGVha3Mgb24gQW50IGFuZCBvdGhlciB0b3BpY3MgYXQKPGEgaHJlZj0iaHR0cDovL3d3dy5ub2ZsdWZmanVzdHN0dWZmLmNvbSI+Tm8gRmx1ZmYsIEp1c3QgU3R1ZmYKc3ltcG9zaXVtczwvYT4gYXMgd2VsbCBhcyBvdGhlciB2ZW51ZXMuICBFcmlrIGlzIHRoZSBQcmVzaWRlbnQgb2YKPGEgaHJlZj0iaHR0cDovL3d3dy5laGF0Y2hlcnNvbHV0aW9ucy5jb20iPmVIYXRjaGVyIFNvbHV0aW9ucywgSW5jPC9hPi4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+QW50b2luZSBMZXZ5LUxhbWJlcnQ8L2I+IChhbnRvaW5lIGF0IGFwYWNoZS5vcmcpCjxiciAvPgpBbnRvaW5lIGlzIGFuIElUIGNvbnN1bHRhbnQgc3BlY2lhbGl6ZWQgaW4gZmluYW5jaWFsIElUIGFuZAppbiBhcHBsaWNhdGlvbiBtYW5hZ2VtZW50L2NvbmZpZ3VyYXRpb24gbWFuYWdlbWVudC4gSGUgaGFzIGV4cGVyaWVuY2Ugd2l0aApjb25jZWl2aW5nLCBidWlsZGluZyBhbmQgbWFuYWdpbmcgZGlzdHJpYnV0ZWQgYXBwbGljYXRpb25zLiBIaXMgY29uc3VsdGFuY3kKaXMgY2FsbGVkIDxhIGhyZWY9Imh0dHA6Ly93d3cuYW50YnVpbGQuY29tIj5hbnRidWlsZDwvYT4uCgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5TdGV2ZSBMb3VnaHJhbjwvYj48YnIgLz4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+Q29ub3IgTWFjTmVpbGw8L2I+IChjb25vciBhdCBjb3J0ZXhlYnVzaW5lc3MuY29tLmF1KQo8YnIgLz4KQ29ub3IgaXMgYSBzZW5pb3IgZGV2ZWxvcGVyIGF0IENvcnRleCBlQnVzaW5lc3MsIHdoZXJlIGhlIGRldmVsb3BzCkoyRUUgYmFzZWQgc3lzdGVtcy4gSW4gaGlzIHNwYXJlIHRpbWUgaGUgaGVscHMgd2l0aCB0aGUgZGV2ZWxvcG1lbnQgb2YKdGhlIEFudCBidWlsZCB0b29sLiAgSGUgaXMgYWxzbyBzZXJ2aW5nIGFzIHRoZSBDaGFpcm1hbiBvZiB0aGlzIFBNQy4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+SmFuIE1hdOhybmU8L2I+IChqaG0gYXQgYXBhY2hlLm9yZykKPGJyIC8+CkphbiBpcyBjb25zdWx0YW50IGZvciBPT0EvRCBpbiB0aGUgY29tcHV0ZXIgY2VudHJlIG9mIHRoZSBnb3Zlcm5tZW50Cm9mIE5vcnRocmhpbmUgV2VzdGZhbGlhIC8gR2VybWFueS4gSGUgaXMgdGhlIGNvLWF1dGhvciBvZgo8YSBocmVmPSJodHRwOi8vd3d3LmdhbGlsZW9jb21wdXRpbmcuZGUva2F0YWxvZy9idWVjaGVyL3RpdGVsL2dwL3RpdGVsSUQtMzQxPyI+ClJhdGlvbmFsIFJvc2UgdW5kIFVNTCBpbSBQcmF4aXNlaW5zYXR6PC9hPiB0aGUgZmlyc3QgR2VybWFuIGJvb2sgYWJvdXQKdGhhdCBPT0FELXRvb2wuIAogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5QZXRlciBSZWlsbHk8L2I+PGJyIC8+CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuaW50ZXJ0d2luZ2x5Lm5ldC8iPlNhbSBSdWJ5PC9hPgogICAgICAgICAgICAgICAgPC9iPgogICAgICAgICAgICAgICAgKHJ1YnlzIGF0IHVzLmlibS5jb20pCjxiciAvPgpTYW0gdGFrZXMgYSBwZXJ2ZXJzZSBwbGVhc3VyZSBpbiBpbnRlZ3JhdGluZyBkaXNwYXJhdGUgdGhpbmdzLiAgSGUgaXMKYSBtZW1iZXIgb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9jcmVkaXRzLnBocCI+UEhQIGdyb3VwPC9hPiwgQXBhY2hlCjxhIGhyZWY9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy93aG93ZWFyZS5odG1sIj5YTUwgUE1DPC9hPiwgQXBhY2hlCnNwb25zb3IgZm9yIHRoZSA8YSBocmVmPSJodHRwOi8veG1sLmFwYWNoZS5vcmcvc29hcCI+eG1sLXNvYXA8L2E+IHN1YnByb2plY3QKYW5kIGNvbnZlbmVyIG9mIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNtYS5jaCI+RUNNQTwvYT4gVEMzOSBURzMuCjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPk1hZ2VzaCBVbWFzYW5rYXI8L2I+ICh1bWFnZXNoIGF0IGFwYWNoZS5vcmcpCjxiciAvPgpNYWdlc2ggaXMgYSBsZWFkIHNvZnR3YXJlIGRldmVsb3BlciBhdAo8YSBocmVmPSJodHRwOi8vd3d3Lm1hbnVnaXN0aWNzLmNvbSI+TWFudWdpc3RpY3M8L2E+LCB3aGVyZQpoZSBpcyByZXNwb25zaWJsZSBmb3Igc29tZSBvZiB0aGUgUmV2ZW51ZSBPcHRpbWl6YXRpb24Kc29sdXRpb25zLgo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5DaHJpc3RvcGggV2lsaGVsbXM8L2I+IChjaHJpc3RvcGgud2lsaGVsbXMgYXQgdC1vbmxpbmUuZGUpCjxiciAvPgpDaHJpc3RvcGggd29ya3MgYXMgc29mdHdhcmUgZW5naW5lZXIgYXQgdGhlIHdvcmxkJ3MgYmlnZ2VzdCB0cmF2ZWwgY29tcGFueQo8YSBocmVmPSJodHRwOi8vd3d3LnR1aS5jb20iPlRVSTwvYT4uIEhpcyBwYXNzaW9uIGFyZSBhbGwgVUkgcmVsYXRlZCB0aGluZ3Mgc28KYXQgdGhlIEFudC1Qcm9qZWN0IGhlIHRha2VzIGNhcmUgb2YgQW50aWRvdGUgLSB0aGUgQW50IEdVSS4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJzdWJzZWN0aW9uIj4KICAgICAgICA8YSBuYW1lPSJFbWVyaXR1cyBNZW1iZXJzIj48L2E+CiAgICAgICAgRW1lcml0dXMgTWVtYmVycwogICAgICA8L2g0PgogICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPkphbWVzIER1bmNhbiBEYXZpZHNvbjwvYj4gKGR1bmNhbiBhdCB4MTgwLm5ldCAtIDxhIGhyZWY9Imh0dHA6Ly94MTgwLm5ldC8iPmh0dHA6Ly94MTgwLm5ldC88L2E+KQo8YnIgLz4KCkJ5IGRheSwgRHVuY2FuIHdvcmtzIGluIHRoZSBPcGVuIFNvdXJjZSBQcm9ncmFtIE9mZmljZSBhdCBTdW4KTWljcm9zeXN0ZW1zIHdoZXJlIGhlIGhlbHBzIHZhcmlvdXMgT3BlbiBTb3VyY2UgZWZmb3J0cyB3aXRoaW4gU3VuCiJkbyB0aGUgcmlnaHQgdGhpbmciLiBQcmV2aW91c2x5IGF0IFN1biBoZSB3YXMgcmVzcG9uc2libGUKZm9yIHRoZSBTZXJ2bGV0IEFQSSBTcGVjaWZpY2F0aW9ucyAyLjEgYW5kIDIuMiBhcyB3ZWxsIGFzIHRoZSBKYXZhIEFQSQpmb3IgWE1MIFBhcnNpbmcgMS4wIGFuZCB3YXMgdGhlIG9yaWdpbmFsIGF1dGhvciBvZiBUb21jYXQgYW5kIEFudC4gSGUKd2FzIG9uZSBvZiB0aGUgcmFiYmxlLXJvdXNlcnMgd2l0aGluIFN1biB0aGF0IGhlbHBlZCBtYWtlIHRoZSBKYWthcnRhClByb2plY3QgYSByZWFsaXR5IGFuZCBzZXJ2ZWQgYXMgdGhlIGZpcnN0IENoYWlybWFuIG9mIHRoZSBKYWthcnRhIFBNQy4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+RGlhbmUgSG9sdDwvYj48YnIgLz4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+RG9uYWxkIExlc2xpZTwvYj48YnIgLz4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+Q29zdGluIE1vbm9sYWNoZTwvYj48YnIgLz4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+Sm9uIFNrZWV0PC9iPjxiciAvPgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGEgbmFtZT0iQ29tbWl0dGVycyI+PC9hPgogICAgICBDb21taXR0ZXJzCiAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQgY2xhc3M9InN1YnNlY3Rpb24iPgogICAgICAgIDxhIG5hbWU9IkFjdGl2ZSBDb21taXR0ZXJzIj48L2E+CiAgICAgICAgQWN0aXZlIENvbW1pdHRlcnMKICAgICAgPC9oND4KICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5TdGV2ZSBDb2hlbjwvYj4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+RG9taW5pcXVlIERldmllbm5lPC9iPiAoZGRldmllbm5lIGF0IGFwYWNoZS5vcmcpCjxiciAvPgpEb21pbmlxdWUgaGFzIGJlZW4gaW52b2x2ZWQgbm9uLXN0b3Agd2l0aCB0aGUgQW50IHVzZXIgY29tbXVuaXR5IHNpbmNlCnRoZSAxLjQgZGF5cywgdHJ5aW5nIHdpdGhvdXQgc3VjY2VzcyB0byBhbnN3ZXIgcG9zdHMgYXMgd2VsbCBvciBhcyBvZnRlbgphcyBEaWFuZSBIb2x0IGFmdGVyIHNoZSBsZWZ0IHRoZSB1c2VyIGxpc3QuIEhlIGlzIG9waW5pYXRlZCAodG8gYSBmYXVsdApzb21ldGltZXMpLCBidXQgYWx3YXlzIHN0cml2aW5nIGZvciB0aGUgYmVzdCBwb3NzaWJsZSBkZXNpZ24uIERvbWluaXF1ZQpjdXJyZW50bHkgd29ya3MgZm9yIDxhIGhyZWY9Imh0dHA6Ly93d3cubGdjLmNvbSI+TGFuZG1hcmsgR3JhcGhpY3M8L2E+Lgo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5Kb3NlIEFsYmVydG8gRmVybmFuZGV6PC9iPgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5KZXNzZSBHbGljazwvYj4gKGplc3NlIGRvdCBnbGljayBhdCBzdW4gZG90IGNvbSkKPGJyIC8+Ckplc3NlIGhhcyBiZWVuIHVzaW5nIEphdmEgc2luY2UgMTk5OCBhbmQgam9pbmVkIFN1biBNaWNyb3N5c3RlbXMgYXMKcGFydCBvZiB0aGUgY29tcGFueSB0aGF0IHByb2R1Y2VkIHRoZSBOZXRCZWFucyBJREUuIEFmdGVyIGRpc2NvdmVyaW5nCkFudCBpbiB0aGUgMS4yIGRheXMsIGhlIHdyb3RlIG1vc3Qgb2YgTmV0QmVhbnMnIEFudCBpbnRlZ3JhdGlvbi4KUmVjZW50bHkgaGUgaGFzIHdvcmtlZCBvbiB0aGUgTmV0QmVhbnMgNC4wIHByb2plY3Qgc3lzdGVtLCBiYXNlZCBoZWF2aWx5Cm9uIEFudCBhcyBhIGJ1aWxkIHRvb2wuCjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPk1hcnRpam4gKEouTS4pIEtydWl0aG9mPC9iPiAoYW50IGF0IGtydWl0aG9mIHhzNGFsbCBubCkKPGJyIC8+Ck1hcnRpam4gS3J1aXRob2YgaXMgYSBzeXN0ZW0gZW5naW5lZXIgd29ya2luZyB3aXRoIGFuZCBvbiBKYXZhIHByb2R1Y3RzIAppbiBhIHRlbGVjb21tdW5pY2F0aW9uIG5ldHdvcmsgc2V0dGluZy4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPSJzdWJzZWN0aW9uIj4KICAgICAgICA8YSBuYW1lPSJFbWVyaXR1cyBDb21taXR0ZXJzIj48L2E+CiAgICAgICAgRW1lcml0dXMgQ29tbWl0dGVycwogICAgICA8L2g0PgogICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPlByZXN0b24gQmFubmlzdGVyPC9iPjxiciAvPgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5OaWNrIERhdmlzPC9iPjxiciAvPgogICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5EYXJyZWxsIERlQm9lcjwvYj48YnIgLz4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+UGV0ZXIgRG9uYWxkPC9iPiAocGV0ZXIgYXQgYXBhY2hlLm9yZykKPGJyIC8+CgpQZXRlciBpcyBhbiBhdmlkIGphdmEgZGV2ZWxvcGVyIHdobyBpcyBhY3RpdmUgaW4gdGhlCjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYXZhbG9uLyI+QXZhbG9uPC9hPiBhbmQKPGEgaHJlZj0iaHR0cDovL2FudC5hcGFjaGUub3JnLyI+QW50PC9hPiBwcm9qZWN0cy4KSW4gaGlzIHNwYXJlIHRpbWUgaGUgZGV2ZWxvcHMgYSBkaXN0cmlidXRlZCB2aXJ0dWFsIGVudmlyb25tZW50CihpZSBtaWxpdGFyeSBzaW11bGF0b3Igb3IgM0QgZ2FtZSkgdXNpbmcgamF2YSB0ZWNobm9sb2dpZXMuCjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPkRhbm5vIEZlcnJpbjwvYj4gKHNoZW1ub24gYXQgeWFob28uY29tKQo8YnIgLz4KRGFubm8gaGFzIGJlZW4gcHJvZ3JhbW1pbmcgaW4gSmF2YSBzaW5jZSBTdW1tZXIgOTYuIERhbm5vIHdyb3RlIGEgSlNQCmVuZ2luZSBvbiBoaXMgb3duIGFuZCByZWxlYXNlZCBpdCB0aGUgdmVyeSBzYW1lIGRheSBKYWthcnRhIHdhcwphbm5vdW5jZWQgYXQgSmF2YU9uZS4gU2luY2UgdGhlbiwgaGUgZGVjaWRlZCB0byBqb2luIHRoZSBKYWthcnRhCnByb2plY3QgaW4gYSBzcGlyaXQgb2YgY28tb3BlcmF0aW9uIG92ZXIgY29tcGV0aXRpb24uCjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPlNpbWVvbiBILksuIEZpdGNoPC9iPiAoc2ltZW9uLmZpdGNoIGF0IG1zZWVkc29mdC5jb20pCjxiciAvPgpTaW1lb24gaXMgb3duZXIgb2YgTXVzdGFyZCBTZWVkIFNvZnR3YXJlLCB3aGljaCBzcGVjaWFsaXplcyBpbiBkZXZlbG9waW5nCmRpc3RyaWJ1dGVkIGFwcGxpY2F0aW9ucyBhbmQgdXNlciBpbnRlcmZhY2VzIGZvciB0aGUgc2NpZW5jZSwgZW5naW5lZXJpbmcsCmFuZCByZXNlYXJjaCBvcmllbnRlZCBjbGllbnRzLiBIZSBpcyB0aGUgbGVhZCBhcmNoaXRlY3QgYW5kIGRldmVsb3BlciBmb3IKQW50aWRvdGUsIHRoZSBHVUkgZm9yIEFudC4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+VGhvbWFzIEhhYXM8L2I+ICh0aGEgYXQgd2hpdGVzdGVpbi5jb20pCjxiciAvPgpUb20gaXMgaW50ZXJlc3RlZCBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCBKYXZhIG1pZGRsZXdhcmUgYW5kIHdvcmtlZCBvbiBhbgppbXBsZW1lbnRhdGlvbiBvZiB0aGUgSk1TIHNwZWNpZmljYXRpb24uIEF0IFdoaXRlc3RlaW4gVGVjaG5vbG9naWVzIGhlIGlzCndvcmtpbmcgb24gYnJpbmdpbmcgc29mdHdhcmUgYWdlbnQgdGVjaG5vbG9neSBhbmQgSjJFRSB0b2dldGhlci4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgoKICAgICAgICAgICAgICAgIDxiPkphc29uIEh1bnRlcjwvYj4gKGpoIGF0IHNlcnZsZXRzLmNvbSkKPGJyIC8+Ckphc29uIGlzIGF1dGhvciBvZiAiSmF2YSBTZXJ2bGV0IFByb2dyYW1taW5nIiAoTydSZWlsbHkpIGFuZCBwdWJsaXNoZXIKb2YgPGEgaHJlZj0iaHR0cDovL3d3dy5zZXJ2bGV0cy5jb20vIj5odHRwOi8vd3d3LnNlcnZsZXRzLmNvbS88L2E+LgpIZSB3b3JrcyBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmNvbGxhYi5uZXQiPkNvbGxhYk5ldDwvYT4uCjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPkp1c3R5bmEgSG9yd2F0PC9iPiAoaG9yd2F0IGF0IGFwYWNoZS5vcmcpCjxiciAvPgo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5BcnVuIEphbXdhbDwvYj4KPGJyIC8+CjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPkFybm91dCBKLiBLdWlwZXI8L2I+IChhamt1aXBlciBhdCBwbGFuZXQubmwpCjxiciAvPgoKQXJub3V0IEouIEt1aXBlciBpcyBhIEphdmEgQXJjaGl0ZWN0IHdpdGggdGhlIFN1biBKYXZhIENlbnRlciBhdCBTdW4KTWljcm9zeXN0ZW1zLiBIaXMgbWFpbiBmb2N1cyBpcyB3ZWItcmVsYXRlZCB0ZWNobm9sb2dpZXMgb24gdGhlIEphdmEKcGxhdGZvcm0gKEoyRUUsIFhNTCwgLi4uKS4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+U3RlZmFubyBNYXp6b2NjaGk8L2I+IChzdGVmYW5vIGF0IGFwYWNoZS5vcmcpCjxiciAvPgpTdGVmYW5vIGlzIGFkZGljdGVkIHRvIHNvZnR3YXJlIGRlc2lnbiwgSmF2YSBwcm9ncmFtbWluZyBhbmQKb3BlbiBkZXZlbG9wbWVudC4gSW4gdGhlIGxhc3QgNCB5ZWFycywgaGUgaGFzIGNvbnRyaWJ1dGVkIHdheSB0b28gbXVjaAp0aW1lIHRvIEFwYWNoZSwgZXhwZWNpYWxseSBvbiBKU2VydiwgSk1ldGVyLCBBdmFsb24sIEpBTUVTLCBBbnQsIENvY29vbgphbmQgaGVscGluZyB0byBicmluZyBtb3JlIHByb2plY3RzIGludG8gQXBhY2hlLWxhbmQsIHN1Y2ggYXMgRk9QLCBCYXRpaywKUE9JIGFuZCBYaW5kaWNlLiBUaGUgcHJvYmxlbSBpcyB0aGF0IGhlJ3MgdG9vIHBpY2t5IHRvIGJlIHNhdGlzZmllZCA6LSkKPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+R2xlbm4gTWNBbGxpc3RlcjwvYj4gKGdsZW5uIGF0IHNvbWFuZXR3b3Jrcy5jb20pCjxiciAvPgpHbGVubiBNY0FsbGlzdGVyIGlzIGEgc29mdHdhcmUgZGV2ZWxvcGVyIGF0IFNPTUEgTmV0d29ya3MsIHdhcyBmb3JtZXJseQp0aGUgc2FtZSBhdCBJQk0gKHBsdXMgdGVjaCB3cml0ZXIgcGx1cyBidWlsZCBndXkpLCBhbmQgZG9lcyBzb21lIHdyaXRpbmcKb24gdGhlIHNpZGUgZm9yIHRoZSBWQUREIFRlY2huaWNhbCBKb3VybmFsLgo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5DcmFpZyBNY0NsYW5haGFuPC9iPiAoQ3JhaWcuTWNDbGFuYWhhbiBhdCBlbmcuc3VuLmNvbSkKPGJyIC8+CkNyYWlnIHdhcyBpbnZvbHZlZCBpbiB0aGUgQXBhY2hlIEpTZXJ2IHByb2plY3QsIGZvY3VzZWQgb24gaW1wbGVtZW50aW5nCmEgbmV4dCBnZW5lcmF0aW9uIGFyY2hpdGVjdHVyZSBhbmQgZmVhdHVyZSBzZXQgZm9yIHRoZSBjb3JlIHNlcnZsZXQKZW5naW5lLiAgSGUgaGFzIHJlY2VudGx5IGpvaW5lZCBTdW4gYXMgdGVjaG5pY2FsIGxlYWQgZm9yIHRoZSBzZXJ2bGV0CmFuZCBKU1AgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLgogICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+QWRhbSBNdXJkb2NoPC9iPgo8YnIgLz4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+SGFyaXNoIFByYWJoYW5kaGFtPC9iPiAoaGFyaXNocCBhdCBvbmVib3guY29tKQo8YnIgLz4KSGFyaXNoIGlzIGFuIGVuZ2luZWVyIHdpdGggdGhlIEoyRUUgdGVhbSBhdCBTdW4sIHByaW1hcmlseSByZXNwb25zaWJsZQpmb3IgaW1wbGVtZW50aW5nIHNlY3VyaXR5IGluIHRoZSBKMkVFIFJlZmVyZW5jZSBJbXBsZW1lbnRhdGlvbgooUkkpLiBIZSBpbnRlZ3JhdGVkIHZhcmlvdXMgdGVjaG5vbG9naWVzIGluY2x1ZGluZyBzZXJ2bGV0L0pTUAppbXBsZW1lbnRhdGlvbnMgZnJvbSBUb21jYXQgaW50byB0aGUgSjJFRSBSSS4gVGhlc2UgZGF5cywgaGUgaGFja3MgUEhQCmNvZGUgZHVyaW5nIHRoZSBkYXkuCjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPk5pY28gU2Vlc3NsZTwvYj48YnIgLz4KICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+R2FsIFNoYWNob3I8L2I+IChzaGFjaG9yIGF0IGlsLmlibS5jb20pCjxiciAvPgpHYWwgU2hhY2hvciBpcyBhIHJlc2VhcmNoIHN0YWZmIG1lbWJlciBhdCBJQk0uIEhlIHdyb3RlIGhpcyBmaXJzdApTZXJ2bGV0IGNvbnRhaW5lciAoU2VydmxldEV4cHJlc3MpIGF0IHRoZSBiZWdpbm5pbmcgb2YgMTk5Ny4gTGF0ZXIgb24KU2VydmxldEV4cHJlc3MgKGFuZCBHYWwpIG1lcmdlZCBpbnRvIFdlYlNwaGVyZSwgYW5kIEdhbCBwYXJ0aWNpcGF0ZWQKaW4gdGhlIGRldmVsb3BtZW50IG9mIFdlYlNwaGVyZSAxLCAyIGFuZCAzLgo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5Kb24gUy4gU3RldmVuczwvYj4gKGpvbiBhdCBjb2xsYWIubmV0KQo8YnIgLz4KCkpvbiBpcyBhIENvLUZvdW5kZXIgb2YgPGEgaHJlZj0iaHR0cDovL3d3dy5jbGVhcmluay5jb20vIj5DbGVhciBJbmsKQ29ycDwvYT4gYW5kIHJlY2VudGx5IGxlZnQgdG8gd29yayBvbiA8YSBocmVmPSJodHRwOi8vc2NhcmFiLnRpZ3Jpcy5vcmcvIj5TY2FyYWI8L2E+IGEgbmV4dCBnZW5lcmF0aW9uIE9wZW4KU291cmNlIEphdmEgU2VydmxldCBiYXNlZCBJc3N1ZS9CdWcgdHJhY2tpbmcgc3lzdGVtIGZvciA8YSBocmVmPSJodHRwOi8vd3d3LmNvbGxhYi5uZXQvIj5Db2xsYWJOZXQ8L2E+LiBIZSBpcyBhbiBhY3RpdmUgZGV2ZWxvcGVyCm9mIHRoZSA8YSBocmVmPSJodHRwOi8vamF2YS5hcGFjaGUub3JnL2pzZXJ2LyI+QXBhY2hlIEpTZXJ2IFNlcnZsZXQKRW5naW5lPC9hPiBmb3IgdGhlIEFwYWNoZSBXZWIgU2VydmVyIGFuZCBDby1BdXRob3Igb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLmFwYWNoZS5vcmcvZWNzLyI+RWxlbWVudCBDb25zdHJ1Y3Rpb24gU2V0PC9hPiBhcwp3ZWxsIGFzIHRoZSB3ZWIgYXBwbGljYXRpb24gZnJhbWV3b3JrLCA8YSBocmVmPSJodHRwOi8vamF2YS5hcGFjaGUub3JnL3R1cmJpbmUvIj5UdXJiaW5lPC9hPi4KPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgPGI+SmVzc2UgU3RvY2thbGw8L2I+PGJyIC8+CiAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPkphbWVzIFRvZGQ8L2I+IChqd3RvZGQgYXQgcGFjYmVsbC5uZXQpCjxiciAvPgpKYW1lcyBoYXMgZGV2ZWxvcGVkIHJlYWwgdGltZSBjdXN0b21lciBvcmllbnRlZCBhcHBzIGZvciByb3VnaGx5IDEwCnllYXJzIHRoZSBsYXN0IDUgb2Ygd2hpY2ggaGF2ZSBwcmVkb21pbmF0ZWx5IGJlZW4gZnVsbHkgaW50ZWdyYXRlZCwKZnJvbnQgYW5kIGJhY2ssIGV4dHJhTmV0IGltcGxlbWVudGF0aW9ucyB3aGljaCBoYXZlIGJlZW4gYmFzZWQgb24KQXBhY2hlLCBKYXZhIGFuZCBUY2wuCjwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgIDxiPkFuaWwgVmlqZW5kcmFuPC9iPiAoYWt2IGF0IGVuZy5zdW4uY29tKQo8YnIgLz4KQW5pbCBWaWplbmRyYW4gaXMgdGhlIHByaW5jaXBhbCBkZXZlbG9wZXIgb2YgdGhlIEpTUCBlbmdpbmUgaW4KVG9tY2F0LiBIZSdzIGRvbmUgc29tZSBwcmV0dHkgc2NhcnkgdGhpbmdzIGluIGhpcyBwYXN0IGxpZmUgLS0KaW1wbGVtZW50aW5nIHRoZSBDT1JCQSBJREwgdG8gQysrIDIuMCBtYXBwaW5nLCBza3lkaXZpbmcsIElETCB0byBKYXZhCmNvbXBpbGVycywgT2JqZWN0IERhdGFiYXNlcyAoU0lHU0VWLCB5b3UgZGEgbWFuISkgZm9yIEMrKywgSmF2YSBPUkIKYW5kIEVKQiBydW50aW1lIGVudmlyb25tZW50cyAtLSBpbiB0aGF0IG9yZGVyLgo8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSJzZWN0aW9uIj4KICAgICAgPGEgbmFtZT0iTG9nbyI+PC9hPgogICAgICBMb2dvCiAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8cD5BbnQncyBsb2dvIGlzIHRoZSByZXN1bHQgb2YgYSBsb2dvIGNvbnRlc3QsIGl0IGhhcyBiZWVuCiAgICAgICAgZGVzaWduZWQgYnk8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICA8Yj5OaWNrIEtpbmc8L2I+CjxiciAvPgo8L3A+CiAgICAgICAgICAgICAgICAKICAgIDwvZGl2PgogIDwvZGl2PgoKICAgICAgICA8cCBjbGFzcz0iY29weXJpZ2h0Ij4KICAgICAgICBDb3B5cmlnaHQgJmNvcHk7IDIwMDAtMjAwNSZuYnNwO1RoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPjwhLS0KICAgICAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCIgLSAiKyJMYXN0IFB1Ymxpc2hlZDogIiArIGRvY3VtZW50Lmxhc3RNb2RpZmllZCk7CiAgICAgICAgICAgICAgLy8gIC0tPgogICAgICAgIDwvc2NyaXB0PgogICAgICA8L3A+CiAgICA8L2JvZHk+CiAgPC9odG1sPgoKCgoKCgoKCgoK