PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IS0tCiAgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZSBvciBtb3JlCiAgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZSBkaXN0cmlidXRlZCB3aXRoCiAgdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLgogIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlIHRvIFlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wCiAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgKICB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogIAogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogIAogIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS0+CjwhLS0gJElkJCAtLT4KPGZvOnJvb3QgeG1sbnM6Zm89Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML0Zvcm1hdCIKICB4bWxuczpmb3g9Imh0dHA6Ly94bWxncmFwaGljcy5hcGFjaGUub3JnL2ZvcC9leHRlbnNpb25zIgogIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjlwdCI+CgogIDxmbzpsYXlvdXQtbWFzdGVyLXNldD4KICAgIDxmbzpzaW1wbGUtcGFnZS1tYXN0ZXIgbWFzdGVyLW5hbWU9ImJ1c2luZXNzLWNhcmQiCiAgICAgICAgICBwYWdlLXdpZHRoPSI4NG1tIiBwYWdlLWhlaWdodD0iNTNtbSIKICAgICAgICAgIGZveDpibGVlZD0iM21tIiBmb3g6Y3JvcC1ib3g9Im1lZGlhLWJveCIgZm94OmNyb3Atb2Zmc2V0PSIxMG1tIiBmb3g6c2NhbGU9IjQiPgogICAgICAgPGZvOnJlZ2lvbi1ib2R5IG1hcmdpbi1ib3R0b209IjNtbSIgbWFyZ2luLWxlZnQ9IjNtbSIgbWFyZ2luLXJpZ2h0PSIzbW0iLz4KICAgIDwvZm86c2ltcGxlLXBhZ2UtbWFzdGVyPgogIDwvZm86bGF5b3V0LW1hc3Rlci1zZXQ+CgogIDxmbzpwYWdlLXNlcXVlbmNlIG1hc3Rlci1yZWZlcmVuY2U9ImJ1c2luZXNzLWNhcmQiPgogICAgPGZvOmZsb3cgZmxvdy1uYW1lPSJ4c2wtcmVnaW9uLWJvZHkiPgogICAgICA8Zm86YmxvY2stY29udGFpbmVyIGlkPSJjcm9wLW1hcmtzIiBhYnNvbHV0ZS1wb3NpdGlvbj0iZml4ZWQiPgogICAgICAgIDxmbzpibG9jayBsaW5lLWhlaWdodD0iMSIgZm9udC1zaXplPSIwcHQiPgogICAgICAgICAgPGZvOmluc3RyZWFtLWZvcmVpZ24tb2JqZWN0PgogICAgICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIgogICAgICAgICAgICAgICAgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiCiAgICAgICAgICAgICAgICB3aWR0aD0iODRtbSIgaGVpZ2h0PSI1M21tIiB2aWV3Qm94PSIwIDAgODQgNTMiIG92ZXJmbG93PSJ2aXNpYmxlIj4KICAgICAgICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWwogICAgLmxpbmUgeyBmaWxsOm5vbmU7IHN0cm9rZTpibGFjazsgc3Ryb2tlLXdpZHRoOjAuMSB9CiAgICAuY29sb3Jib3ggeyBzdHJva2U6YmxhY2s7IHN0cm9rZS13aWR0aDowLjEgfQpdXT48L3N0eWxlPgogICAgICAgICAgICAgIAogICAgICAgICAgICAgIDxkZWZzPgogICAgICAgICAgICAgICAgPHJlY3QgaWQ9ImJveCIgY2xhc3M9ImNvbG9yYm94IiB3aWR0aD0iNSIgaGVpZ2h0PSI0Ii8+CiAgICAgICAgICAgICAgPC9kZWZzPgogICAgICAgICAgICAgIDxnIGlkPSJjdXQtbWFya3MiPgogICAgICAgICAgICAgICAgPHBvbHlsaW5lIGNsYXNzPSJsaW5lIiBwb2ludHM9IjAsLTMgMCwtMTAiIC8+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgY2xhc3M9ImxpbmUiIHBvaW50cz0iODQsLTMgODQsLTEwIiAvPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8cG9seWxpbmUgY2xhc3M9ImxpbmUiIHBvaW50cz0iLTMsMCAtMTAsMCIgLz4KICAgICAgICAgICAgICAgIDxwb2x5bGluZSBjbGFzcz0ibGluZSIgcG9pbnRzPSItMyw1MyAtMTAsNTMiIC8+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxwb2x5bGluZSBjbGFzcz0ibGluZSIgcG9pbnRzPSIwLDU2IDAsNjMiIC8+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgY2xhc3M9ImxpbmUiIHBvaW50cz0iODQsNTYgODQsNjMiIC8+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDxwb2x5bGluZSBjbGFzcz0ibGluZSIgcG9pbnRzPSI4NywwIDk0LDAiIC8+CiAgICAgICAgICAgICAgICA8cG9seWxpbmUgY2xhc3M9ImxpbmUiIHBvaW50cz0iODcsNTMgOTQsNTMiIC8+CiAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgIAogICAgICAgICAgICAgIDxnIGlkPSJncmF5cyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODgsNCkiPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSIwIiBzdHlsZT0iZmlsbDpyZ2IoMCUsMCUsMCUpIi8+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNib3giIHk9IjQiIHN0eWxlPSJmaWxsOnJnYigxMCUsMTAlLDEwJSkiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeT0iOCIgc3R5bGU9ImZpbGw6cmdiKDIwJSwyMCUsMjAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSIxMiIgc3R5bGU9ImZpbGw6cmdiKDMwJSwzMCUsMzAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSIxNiIgc3R5bGU9ImZpbGw6cmdiKDQwJSw0MCUsNDAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSIyMCIgc3R5bGU9ImZpbGw6cmdiKDUwJSw1MCUsNTAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSIyNCIgc3R5bGU9ImZpbGw6cmdiKDYwJSw2MCUsNjAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSIyOCIgc3R5bGU9ImZpbGw6cmdiKDcwJSw3MCUsNzAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSIzMiIgc3R5bGU9ImZpbGw6cmdiKDgwJSw4MCUsODAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSIzNiIgc3R5bGU9ImZpbGw6cmdiKDkwJSw5MCUsOTAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB5PSI0MCIgc3R5bGU9ImZpbGw6cmdiKDEwMCUsMTAwJSwxMDAlKSIvPgogICAgICAgICAgICAgIDwvZz4KCiAgICAgICAgICAgICAgPGcgaWQ9ImN5YW4iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQsLTkpIj4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMCIgc3R5bGU9ImZpbGw6cmdiKDAlLDEwMCUsMTAwJSkiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iNSIgc3R5bGU9ImZpbGw6cmdiKDUlLDEwMCUsMTAwJSkiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMTAiIHN0eWxlPSJmaWxsOnJnYigyNSUsMTAwJSwxMDAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB4PSIxNSIgc3R5bGU9ImZpbGw6cmdiKDUwJSwxMDAlLDEwMCUpIi8+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNib3giIHg9IjIwIiBzdHlsZT0iZmlsbDpyZ2IoNzUlLDEwMCUsMTAwJSkiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMjUiIHN0eWxlPSJmaWxsOnJnYig5NSUsMTAwJSwxMDAlKSIvPgogICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICA8ZyBpZD0ibWFnZW50YSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTAsLTkpIj4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMCIgc3R5bGU9ImZpbGw6cmdiKDEwMCUsMCUsMTAwJSkiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iNSIgc3R5bGU9ImZpbGw6cmdiKDEwMCUsNSUsMTAwJSkiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMTAiIHN0eWxlPSJmaWxsOnJnYigxMDAlLDI1JSwxMDAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB4PSIxNSIgc3R5bGU9ImZpbGw6cmdiKDEwMCUsNTAlLDEwMCUpIi8+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNib3giIHg9IjIwIiBzdHlsZT0iZmlsbDpyZ2IoMTAwJSw3NSUsMTAwJSkiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMjUiIHN0eWxlPSJmaWxsOnJnYigxMDAlLDk1JSwxMDAlKSIvPgogICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICA8ZyBpZD0ieWVsbG93IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0LDU4KSI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNib3giIHg9IjAiIHN0eWxlPSJmaWxsOnJnYigxMDAlLDEwMCUsMCUpIi8+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNib3giIHg9IjUiIHN0eWxlPSJmaWxsOnJnYigxMDAlLDEwMCUsNSUpIi8+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNib3giIHg9IjEwIiBzdHlsZT0iZmlsbDpyZ2IoMTAwJSwxMDAlLDI1JSkiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMTUiIHN0eWxlPSJmaWxsOnJnYigxMDAlLDEwMCUsNTAlKSIvPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB4PSIyMCIgc3R5bGU9ImZpbGw6cmdiKDEwMCUsMTAwJSw3NSUpIi8+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNib3giIHg9IjI1IiBzdHlsZT0iZmlsbDpyZ2IoMTAwJSwxMDAlLDk1JSkiLz4KICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgPGcgaWQ9ImJhc2UtY29sb3JzIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MCw1OCkiPgogICAgICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYm94IiB4PSIwIiBzdHlsZT0iZmlsbDpyZWQiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iNSIgc3R5bGU9ImZpbGw6Z3JlZW4iLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMTAiIHN0eWxlPSJmaWxsOmJsdWUiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMTUiIHN0eWxlPSJmaWxsOmN5YW4iLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMjAiIHN0eWxlPSJmaWxsOm1hZ2VudGEiLz4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2JveCIgeD0iMjUiIHN0eWxlPSJmaWxsOnllbGxvdyIvPgogICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2ZvOmluc3RyZWFtLWZvcmVpZ24tb2JqZWN0PgogICAgICAgIDwvZm86YmxvY2s+CiAgICAgIDwvZm86YmxvY2stY29udGFpbmVyPgogICAgICAKICAgICAgPGZvOmJsb2NrLWNvbnRhaW5lciBpZD0iYmFja2dyb3VuZCIgYWJzb2x1dGUtcG9zaXRpb249ImZpeGVkIgogICAgICAgIGlubGluZS1wcm9ncmVzc2lvbi1kaW1lbnNpb249Ijg0bW0iIGJsb2NrLXByb2dyZXNzaW9uLWRpbWVuc2lvbj0iMTRtbSIKICAgICAgICBvdmVyZmxvdz0idmlzaWJsZSI+CiAgICAgICAgPGZvOmJsb2NrIGxpbmUtaGVpZ2h0PSIxIiBmb250LXNpemU9IjBwdCI+CiAgICAgICAgICA8Zm86aW5zdHJlYW0tZm9yZWlnbi1vYmplY3Q+CiAgICAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiCiAgICAgICAgICAgICAgd2lkdGg9Ijg0bW0iIGhlaWdodD0iMTRtbSIgdmlld0JveD0iMCAwIDg0IDE0IiBvdmVyZmxvdz0idmlzaWJsZSI+CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgPGRlZnM+CiAgICAgICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9Ik15R3JhZGllbnQiPgogICAgICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjRkYwMDAwIi8+CiAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMzAlIiBzdG9wLWNvbG9yPSIjRkYwMDAwIi8+CiAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iNTUlIiBzdG9wLWNvbG9yPSIjRkZGRkZGIi8+CiAgICAgICAgICAgICAgICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI0ZGRkZGRiIvPgogICAgICAgICAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgICAgICAgICA8L2RlZnM+CiAgICAgICAgICAgICAgPHJlY3QgeD0iLTMiIHk9Ii0zIiB3aWR0aD0iODciIGhlaWdodD0iMTciIHN0eWxlPSJmaWxsOnVybCgjTXlHcmFkaWVudCk7IHN0cm9rZTpub25lIi8+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9mbzppbnN0cmVhbS1mb3JlaWduLW9iamVjdD4KICAgICAgICA8L2ZvOmJsb2NrPgogICAgICA8L2ZvOmJsb2NrLWNvbnRhaW5lcj4KICAgICAgCiAgICAgIDxmbzpibG9jay1jb250YWluZXIgYmxvY2stcHJvZ3Jlc3Npb24tZGltZW5zaW9uPSIxNG1tIiBkaXNwbGF5LWFsaWduPSJjZW50ZXIiPgogICAgICAgIDxmbzpibG9jayBmb250LXdlaWdodD0iYm9sZCIgZm9udC1zaXplPSI5bW0iIGxpbmUtaGVpZ2h0PSIxLjUiIGNvbG9yPSJ3aGl0ZSI+QUNNRTwvZm86YmxvY2s+CiAgICAgIDwvZm86YmxvY2stY29udGFpbmVyPgogICAgICA8Zm86YmxvY2sgc3RhcnQtaW5kZW50PSIzbW0iIGVuZC1pbmRlbnQ9IjNtbSIvPgogICAgICA8Zm86YmxvY2sgdGV4dC1hbGlnbj0iZW5kIiBzcGFjZS1iZWZvcmU9IjNtbSIgc3BhY2UtYmVmb3JlLmNvbmRpdGlvbmFsaXR5PSJyZXRhaW4iPgogICAgICAgIDxmbzpibG9jayBmb250LXNpemU9IjE0cHQiIGZvbnQtd2VpZ2h0PSJib2xkIiBzcGFjZS1hZnRlcj0iMm1tIj4KICAgICAgICAgIFBlcOkgTGUgUGV3CiAgICAgICAgPC9mbzpibG9jaz4KICAgICAgICA8Zm86YmxvY2sgZm9udC1zaXplPSIxMnB0IiBzcGFjZS1hZnRlcj0iNG1tIj4KICAgICAgICAgIEV4cGVydCBkJ0Ftb3VyCiAgICAgICAgPC9mbzpibG9jaz4KICAgICAgPC9mbzpibG9jaz4KICAgICAgPGZvOmJsb2NrPgogICAgICAgIDxmbzpibG9jaz4xMyBQbGVhc2FudHN0cmVldDwvZm86YmxvY2s+CiAgICAgICAgPGZvOmJsb2NrPkFjbWUgQWNyZXM8L2ZvOmJsb2NrPgogICAgICAgIDxmbzpibG9jaz4rMSAoMjMpIDQ1Ni03ODkwPC9mbzpibG9jaz4KICAgICAgICA8Zm86YmxvY2s+cGVwZUBsb29uZXkudG9vbjwvZm86YmxvY2s+CiAgICAgIDwvZm86YmxvY2s+CiAgICA8L2ZvOmZsb3c+CiAgIDwvZm86cGFnZS1zZXF1ZW5jZT4KPC9mbzpyb290Pgo=